nicholai e3e3a91bdf
Some checks failed
Build and Push to Docker Hub / Push Docker image to Docker Hub (push) Has been cancelled
Build and Push Docker Image / build-and-push (push) Has been cancelled
1.6-7-8 implemented
2025-09-24 19:23:57 -06:00

4200 lines
6.6 MiB
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.

/*
* 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/next";
exports.ids = ["vendor-chunks/next"];
exports.modules = {
/***/ "(instrument)/./node_modules/next/dist/api/constants.js":
/*!*************************************************!*\
!*** ./node_modules/next/dist/api/constants.js ***!
\*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/constants */ \"(instrument)/./node_modules/next/dist/shared/lib/constants.js\");\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGluc3RydW1lbnQpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9hcGkvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3Qzs7QUFFeEMiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi9zaGFyZWQvbGliL2NvbnN0YW50cyc7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(instrument)/./node_modules/next/dist/api/constants.js\n");
/***/ }),
/***/ "(instrument)/./node_modules/next/dist/shared/lib/constants.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/shared/lib/constants.js ***!
\********************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n APP_BUILD_MANIFEST: function() {\n return APP_BUILD_MANIFEST;\n },\n APP_CLIENT_INTERNALS: function() {\n return APP_CLIENT_INTERNALS;\n },\n APP_PATHS_MANIFEST: function() {\n return APP_PATHS_MANIFEST;\n },\n APP_PATH_ROUTES_MANIFEST: function() {\n return APP_PATH_ROUTES_MANIFEST;\n },\n BARREL_OPTIMIZATION_PREFIX: function() {\n return BARREL_OPTIMIZATION_PREFIX;\n },\n BLOCKED_PAGES: function() {\n return BLOCKED_PAGES;\n },\n BUILD_ID_FILE: function() {\n return BUILD_ID_FILE;\n },\n BUILD_MANIFEST: function() {\n return BUILD_MANIFEST;\n },\n CLIENT_PUBLIC_FILES_PATH: function() {\n return CLIENT_PUBLIC_FILES_PATH;\n },\n CLIENT_REFERENCE_MANIFEST: function() {\n return CLIENT_REFERENCE_MANIFEST;\n },\n CLIENT_STATIC_FILES_PATH: function() {\n return CLIENT_STATIC_FILES_PATH;\n },\n CLIENT_STATIC_FILES_RUNTIME_AMP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_AMP;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN_APP;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\n },\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: function() {\n return CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH;\n },\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK: function() {\n return CLIENT_STATIC_FILES_RUNTIME_WEBPACK;\n },\n COMPILER_INDEXES: function() {\n return COMPILER_INDEXES;\n },\n COMPILER_NAMES: function() {\n return COMPILER_NAMES;\n },\n CONFIG_FILES: function() {\n return CONFIG_FILES;\n },\n DEFAULT_RUNTIME_WEBPACK: function() {\n return DEFAULT_RUNTIME_WEBPACK;\n },\n DEFAULT_SANS_SERIF_FONT: function() {\n return DEFAULT_SANS_SERIF_FONT;\n },\n DEFAULT_SERIF_FONT: function() {\n return DEFAULT_SERIF_FONT;\n },\n DEV_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return DEV_CLIENT_MIDDLEWARE_MANIFEST;\n },\n DEV_CLIENT_PAGES_MANIFEST: function() {\n return DEV_CLIENT_PAGES_MANIFEST;\n },\n DYNAMIC_CSS_MANIFEST: function() {\n return DYNAMIC_CSS_MANIFEST;\n },\n EDGE_RUNTIME_WEBPACK: function() {\n return EDGE_RUNTIME_WEBPACK;\n },\n EDGE_UNSUPPORTED_NODE_APIS: function() {\n return EDGE_UNSUPPORTED_NODE_APIS;\n },\n EXPORT_DETAIL: function() {\n return EXPORT_DETAIL;\n },\n EXPORT_MARKER: function() {\n return EXPORT_MARKER;\n },\n FUNCTIONS_CONFIG_MANIFEST: function() {\n return FUNCTIONS_CONFIG_MANIFEST;\n },\n IMAGES_MANIFEST: function() {\n return IMAGES_MANIFEST;\n },\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: function() {\n return INTERCEPTION_ROUTE_REWRITE_MANIFEST;\n },\n MIDDLEWARE_BUILD_MANIFEST: function() {\n return MIDDLEWARE_BUILD_MANIFEST;\n },\n MIDDLEWARE_MANIFEST: function() {\n return MIDDLEWARE_MANIFEST;\n },\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: function() {\n return MIDDLEWARE_REACT_LOADABLE_MANIFEST;\n },\n MODERN_BROWSERSLIST_TARGET: function() {\n return _modernbrowserslisttarget.default;\n },\n NEXT_BUILTIN_DOCUMENT: function() {\n return NEXT_BUILTIN_DOCUMENT;\n },\n NEXT_FONT_MANIFEST: function() {\n return NEXT_FONT_MANIFEST;\n },\n PAGES_MANIFEST: function() {\n return PAGES_MANIFEST;\n },\n PHASE_DEVELOPMENT_SERVER: function() {\n return PHASE_DEVELOPMENT_SERVER;\n },\n PHASE_EXPORT: function() {\n return PHASE_EXPORT;\n },\n PHASE_INFO: function() {\n return PHASE_INFO;\n },\n PHASE_PRODUCTION_BUILD: function() {\n return PHASE_PRODUCTION_BUILD;\n },\n PHASE_PRODUCTION_SERVER: function() {\n return PHASE_PRODUCTION_SERVER;\n },\n PHASE_TEST: function() {\n return PHASE_TEST;\n },\n PRERENDER_MANIFEST: function() {\n return PRERENDER_MANIFEST;\n },\n REACT_LOADABLE_MANIFEST: function() {\n return REACT_LOADABLE_MANIFEST;\n },\n ROUTES_MANIFEST: function() {\n return ROUTES_MANIFEST;\n },\n RSC_MODULE_TYPES: function() {\n return RSC_MODULE_TYPES;\n },\n SERVER_DIRECTORY: function() {\n return SERVER_DIRECTORY;\n },\n SERVER_FILES_MANIFEST: function() {\n return SERVER_FILES_MANIFEST;\n },\n SERVER_PROPS_ID: function() {\n return SERVER_PROPS_ID;\n },\n SERVER_REFERENCE_MANIFEST: function() {\n return SERVER_REFERENCE_MANIFEST;\n },\n STATIC_PROPS_ID: function() {\n return STATIC_PROPS_ID;\n },\n STATIC_STATUS_PAGES: function() {\n return STATIC_STATUS_PAGES;\n },\n STRING_LITERAL_DROP_BUNDLE: function() {\n return STRING_LITERAL_DROP_BUNDLE;\n },\n SUBRESOURCE_INTEGRITY_MANIFEST: function() {\n return SUBRESOURCE_INTEGRITY_MANIFEST;\n },\n SYSTEM_ENTRYPOINTS: function() {\n return SYSTEM_ENTRYPOINTS;\n },\n TRACE_OUTPUT_VERSION: function() {\n return TRACE_OUTPUT_VERSION;\n },\n TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST;\n },\n TURBO_TRACE_DEFAULT_MEMORY_LIMIT: function() {\n return TURBO_TRACE_DEFAULT_MEMORY_LIMIT;\n },\n UNDERSCORE_NOT_FOUND_ROUTE: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE;\n },\n UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE_ENTRY;\n },\n WEBPACK_STATS: function() {\n return WEBPACK_STATS;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(instrument)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./modern-browserslist-target */ \"(instrument)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\"));\nconst COMPILER_NAMES = {\n client: 'client',\n server: 'server',\n edgeServer: 'edge-server'\n};\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\nconst UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found';\nconst UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = \"\" + UNDERSCORE_NOT_FOUND_ROUTE + \"/page\";\nconst PHASE_EXPORT = 'phase-export';\nconst PHASE_PRODUCTION_BUILD = 'phase-production-build';\nconst PHASE_PRODUCTION_SERVER = 'phase-production-server';\nconst PHASE_DEVELOPMENT_SERVER = 'phase-development-server';\nconst PHASE_TEST = 'phase-test';\nconst PHASE_INFO = 'phase-info';\nconst PAGES_MANIFEST = 'pages-manifest.json';\nconst WEBPACK_STATS = 'webpack-stats.json';\nconst APP_PATHS_MANIFEST = 'app-paths-manifest.json';\nconst APP_PATH_ROUTES_MANIFEST = 'app-path-routes-manifest.json';\nconst BUILD_MANIFEST = 'build-manifest.json';\nconst APP_BUILD_MANIFEST = 'app-build-manifest.json';\nconst FUNCTIONS_CONFIG_MANIFEST = 'functions-config-manifest.json';\nconst SUBRESOURCE_INTEGRITY_MANIFEST = 'subresource-integrity-manifest';\nconst NEXT_FONT_MANIFEST = 'next-font-manifest';\nconst EXPORT_MARKER = 'export-marker.json';\nconst EXPORT_DETAIL = 'export-detail.json';\nconst PRERENDER_MANIFEST = 'prerender-manifest.json';\nconst ROUTES_MANIFEST = 'routes-manifest.json';\nconst IMAGES_MANIFEST = 'images-manifest.json';\nconst SERVER_FILES_MANIFEST = 'required-server-files.json';\nconst DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json';\nconst MIDDLEWARE_MANIFEST = 'middleware-manifest.json';\nconst TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST = '_clientMiddlewareManifest.json';\nconst DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json';\nconst REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json';\nconst SERVER_DIRECTORY = 'server';\nconst CONFIG_FILES = [\n 'next.config.js',\n 'next.config.mjs',\n 'next.config.ts'\n];\nconst BUILD_ID_FILE = 'BUILD_ID';\nconst BLOCKED_PAGES = [\n '/_document',\n '/_app',\n '/_error'\n];\nconst CLIENT_PUBLIC_FILES_PATH = 'public';\nconst CLIENT_STATIC_FILES_PATH = 'static';\nconst STRING_LITERAL_DROP_BUNDLE = '__NEXT_DROP_CLIENT_FILE__';\nconst NEXT_BUILTIN_DOCUMENT = '__NEXT_BUILTIN_DOCUMENT__';\nconst BARREL_OPTIMIZATION_PREFIX = '__barrel_optimize__';\nconst CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest';\nconst SERVER_REFERENCE_MANIFEST = 'server-reference-manifest';\nconst MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest';\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = 'middleware-react-loadable-manifest';\nconst INTERCEPTION_ROUTE_REWRITE_MANIFEST = 'interception-route-rewrite-manifest';\nconst DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest';\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\nconst APP_CLIENT_INTERNALS = 'app-pages-internals';\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills';\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\nconst DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime';\nconst EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack';\nconst STATIC_PROPS_ID = '__N_SSG';\nconst SERVER_PROPS_ID = '__N_SSP';\nconst DEFAULT_SERIF_FONT = {\n name: 'Times New Roman',\n xAvgCharWidth: 821,\n azAvgWidth: 854.3953488372093,\n unitsPerEm: 2048\n};\nconst DEFAULT_SANS_SERIF_FONT = {\n name: 'Arial',\n xAvgCharWidth: 904,\n azAvgWidth: 934.5116279069767,\n unitsPerEm: 2048\n};\nconst STATIC_STATUS_PAGES = [\n '/500'\n];\nconst TRACE_OUTPUT_VERSION = 1;\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: 'client',\n server: 'server'\n};\nconst EDGE_UNSUPPORTED_NODE_APIS = [\n 'clearImmediate',\n 'setImmediate',\n 'BroadcastChannel',\n 'ByteLengthQueuingStrategy',\n 'CompressionStream',\n 'CountQueuingStrategy',\n 'DecompressionStream',\n 'DomException',\n 'MessageChannel',\n 'MessageEvent',\n 'MessagePort',\n 'ReadableByteStreamController',\n 'ReadableStreamBYOBRequest',\n 'ReadableStreamDefaultController',\n 'TransformStreamDefaultController',\n 'WritableStreamDefaultController'\n];\nconst SYSTEM_ENTRYPOINTS = new Set([\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP\n]);\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGluc3RydW1lbnQpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFtQ2FBLGtCQUFrQjtlQUFsQkE7O0lBaURBQyxvQkFBb0I7ZUFBcEJBOztJQXBEQUMsa0JBQWtCO2VBQWxCQTs7SUFDQUMsd0JBQXdCO2VBQXhCQTs7SUE4QkFDLDBCQUEwQjtlQUExQkE7O0lBTEFDLGFBQWE7ZUFBYkE7O0lBREFDLGFBQWE7ZUFBYkE7O0lBdkJBQyxjQUFjO2VBQWRBOztJQXlCQUMsd0JBQXdCO2VBQXhCQTs7SUFPQUMseUJBQXlCO2VBQXpCQTs7SUFOQUMsd0JBQXdCO2VBQXhCQTs7SUE0QkFDLCtCQUErQjtlQUEvQkE7O0lBUEFDLGdDQUFnQztlQUFoQ0E7O0lBQ0FDLG9DQUFvQztlQUFwQ0E7O0lBVUFDLHFDQUFxQztlQUFyQ0E7O0lBQ0FDLDRDQUE0QztlQUE1Q0E7O0lBUEFDLHlDQUF5QztlQUF6Q0E7O0lBSUFDLG1DQUFtQztlQUFuQ0E7O0lBNUVBQyxnQkFBZ0I7ZUFBaEJBOztJQVJBQyxjQUFjO2VBQWRBOztJQThDQUMsWUFBWTtlQUFaQTs7SUE0Q0FDLHVCQUF1QjtlQUF2QkE7O0lBVUFDLHVCQUF1QjtlQUF2QkE7O0lBTkFDLGtCQUFrQjtlQUFsQkE7O0lBbkRBQyw4QkFBOEI7ZUFBOUJBOztJQUpBQyx5QkFBeUI7ZUFBekJBOztJQWlDQUMsb0JBQW9CO2VBQXBCQTs7SUFtQkFDLG9CQUFvQjtlQUFwQkE7O0lBNkJBQywwQkFBMEI7ZUFBMUJBOztJQXRGQUMsYUFBYTtlQUFiQTs7SUFEQUMsYUFBYTtlQUFiQTs7SUFIQUMseUJBQXlCO2VBQXpCQTs7SUFPQUMsZUFBZTtlQUFmQTs7SUFnQ0FDLG1DQUFtQztlQUFuQ0E7O0lBTEFDLHlCQUF5QjtlQUF6QkE7O0lBeEJBQyxtQkFBbUI7ZUFBbkJBOztJQTBCQUMsa0NBQWtDO2VBQWxDQTs7SUF0RUpDLDBCQUEwQjtlQUExQkEs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TUgsd0NBQXdDO0FBQzlDLE1BQU1DLCtDQUErQ3NELE9BQzFEdkQ7QUFFSyxNQUFNTywwQkFBMEI7QUFDaEMsTUFBTU0sdUJBQXVCO0FBQzdCLE1BQU00QixrQkFBa0I7QUFDeEIsTUFBTUYsa0JBQWtCO0FBQ3hCLE1BQU05QixxQkFBcUI7SUFDaEMrQyxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2Q7QUFDTyxNQUFNbkQsMEJBQTBCO0lBQ3JDZ0QsTUFBTTtJQUNOQyxlQUFlO0lBQ2ZDLFlBQVk7SUFDWkMsWUFBWTtBQUNkO0FBQ08sTUFBTWpCLHNCQUFzQjtJQUFDO0NBQU87QUFDcEMsTUFBTUksdUJBQXVCO0FBRTdCLE1BQU1FLG1DQUFtQztBQUV6QyxNQUFNWixtQkFBbUI7SUFDOUJnQixRQUFRO0lBQ1JDLFFBQVE7QUFDVjtBQU1PLE1BQU12Qyw2QkFBNkI7SUFDeEM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVNLE1BQU0rQixxQkFBcUIsSUFBSWUsSUFBWTtJQUNoRDlEO0lBQ0FJO0lBQ0FMO0lBQ0FFO0NBQ0QiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2NvbnN0YW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgZnJvbSAnLi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldCdcblxuZXhwb3J0IHsgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgfVxuXG5leHBvcnQgdHlwZSBWYWx1ZU9mPFQ+ID0gUmVxdWlyZWQ8VD5ba2V5b2YgVF1cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX05BTUVTID0ge1xuICBjbGllbnQ6ICdjbGllbnQnLFxuICBzZXJ2ZXI6ICdzZXJ2ZXInLFxuICBlZGdlU2VydmVyOiAnZWRnZS1zZXJ2ZXInLFxufSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBDb21waWxlck5hbWVWYWx1ZXMgPSBWYWx1ZU9mPHR5cGVvZiBDT01QSUxFUl9OQU1FUz5cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX0lOREVYRVM6IHtcbiAgW2NvbXBpbGVyS2V5IGluIENvbXBpbGVyTmFtZVZhbHVlc106IG51bWJlclxufSA9IHtcbiAgW0NPTVBJTEVSX05BTUVTLmNsaWVudF06IDAsXG4gIFtDT01QSUxFUl9OQU1FUy5zZXJ2ZXJdOiAxLFxuICBbQ09NUElMRVJfTkFNRVMuZWRnZVNlcnZlcl06IDIsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURSA9ICcvX25vdC1mb3VuZCdcbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSA9IGAke1VOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFfS9wYWdlYFxuZXhwb3J0IGNvbnN0IFBIQVNFX0VYUE9SVCA9ICdwaGFzZS1leHBvcnQnXG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9CVUlMRCA9ICdwaGFzZS1wcm9kdWN0aW9uLWJ1aWxkJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX1BST0RVQ1RJT05fU0VSVkVSID0gJ3BoYXNlLXByb2R1Y3Rpb24tc2VydmVyJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiA9ICdwaGFzZS1kZXZlbG9wbWVudC1zZXJ2ZXInXG5leHBvcnQgY29uc3QgUEhBU0VfVEVTVCA9ICdwaGFzZS10ZXN0J1xuZXhwb3J0IGNvbnN0IFBIQVNFX0lORk8gPSAncGhhc2UtaW5mbydcbmV4cG9ydCBjb25zdCBQQUdFU19NQU5JRkVTVCA9ICdwYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFdFQlBBQ0tfU1RBVFMgPSAnd2VicGFjay1zdGF0cy5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIU19NQU5JRkVTVCA9ICdhcHAtcGF0aHMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfUEFUSF9ST1VURVNfTUFOSUZFU1QgPSAnYXBwLXBhdGgtcm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgQlVJTERfTUFOSUZFU1QgPSAnYnVpbGQtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfQlVJTERfTUFOSUZFU1QgPSAnYXBwLWJ1aWxkLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCA9ICdmdW5jdGlvbnMtY29uZmlnLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUID0gJ3N1YnJlc291cmNlLWludGVncml0eS1tYW5pZmVzdCdcbmV4cG9ydCBjb25zdCBORVhUX0ZPTlRfTUFOSUZFU1QgPSAnbmV4dC1mb250LW1hbmlmZXN0J1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVJLRVIgPSAnZXhwb3J0LW1hcmtlci5qc29uJ1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9ERVRBSUwgPSAnZXhwb3J0LWRldGFpbC5qc29uJ1xuZXhwb3J0IGNvbnN0IFBSRVJFTkRFUl9NQU5JRkVTVCA9ICdwcmVyZW5kZXItbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBST1VURVNfTUFOSUZFU1QgPSAncm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgSU1BR0VTX01BTklGRVNUID0gJ2ltYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9GSUxFU19NQU5JRkVTVCA9ICdyZXF1aXJlZC1zZXJ2ZXItZmlsZXMuanNvbidcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUID0gJ19kZXZQYWdlc01hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgVFVSQk9QQUNLX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUID1cbiAgJ19jbGllbnRNaWRkbGV3YXJlTWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QgPSAnX2Rldk1pZGRsZXdhcmVNYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFJFQUNUX0xPQURBQkxFX01BTklGRVNUID0gJ3JlYWN0LWxvYWRhYmxlLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU0VSVkVSX0RJUkVDVE9SWSA9ICdzZXJ2ZXInXG5leHBvcnQgY29uc3QgQ09ORklHX0ZJTEVTID0gW1xuICAnbmV4dC5jb25maWcuanMnLFxuICAnbmV4dC5jb25maWcubWpzJyxcbiAgJ25leHQuY29uZmlnLnRzJyxcbl1cbmV4cG9ydCBjb25zdCBCVUlMRF9JRF9GSUxFID0gJ0JVSUxEX0lEJ1xuZXhwb3J0IGNvbnN0IEJMT0NLRURfUEFHRVMgPSBbJy9fZG9jdW1lbnQnLCAnL19hcHAnLCAnL19lcnJvciddXG5leHBvcnQgY29uc3QgQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIID0gJ3B1YmxpYydcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1BBVEggPSAnc3RhdGljJ1xuZXhwb3J0IGNvbnN0IFNUUklOR19MSVRFUkFMX0RST1BfQlVORExFID0gJ19fTkVYVF9EUk9QX0NMSUVOVF9GSUxFX18nXG5leHBvcnQgY29uc3QgTkVYVF9CVUlMVElOX0RPQ1VNRU5UID0gJ19fTkVYVF9CVUlMVElOX0RPQ1VNRU5UX18nXG5leHBvcnQgY29uc3QgQkFSUkVMX09QVElNSVpBVElPTl9QUkVGSVggPSAnX19iYXJyZWxfb3B0aW1pemVfXydcblxuLy8gc2VydmVyL1tlbnRyeV0vcGFnZV9jbGllbnQtcmVmZXJlbmNlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCA9ICdjbGllbnQtcmVmZXJlbmNlLW1hbmlmZXN0J1xuLy8gc2VydmVyL3NlcnZlci1yZWZlcmVuY2UtbWFuaWZlc3RcbmV4cG9ydCBjb25zdCBTRVJWRVJfUkVGRVJFTkNFX01BTklGRVNUID0gJ3NlcnZlci1yZWZlcmVuY2UtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvbWlkZGxld2FyZS1idWlsZC1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IE1JRERMRVdBUkVfQlVJTERfTUFOSUZFU1QgPSAnbWlkZGxld2FyZS1idWlsZC1tYW5pZmVzdCdcbi8vIHNlcnZlci9taWRkbGV3YXJlLXJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCA9XG4gICdtaWRkbGV3YXJlLXJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0J1xuLy8gc2VydmVyL2ludGVyY2VwdGlvbi1yb3V0ZS1yZXdyaXRlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgSU5URVJDRVBUSU9OX1JPVVRFX1JFV1JJVEVfTUFOSUZFU1QgPVxuICAnaW50ZXJjZXB0aW9uLXJvdXRlLXJld3JpdGUtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvZHluYW1pYy1jc3MtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBEWU5BTUlDX0NTU19NQU5JRkVTVCA9ICdkeW5hbWljLWNzcy1tYW5pZmVzdCdcblxuLy8gc3RhdGljL3J1bnRpbWUvbWFpbi5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOID0gYG1haW5gXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQID0gYCR7Q0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU59LWFwcGBcbi8vIG5leHQgaW50ZXJuYWwgY2xpZW50IGNvbXBvbmVudHMgY2h1bmsgZm9yIGxheW91dHNcbmV4cG9ydCBjb25zdCBBUFBfQ0xJRU5UX0lOVEVSTkFMUyA9ICdhcHAtcGFnZXMtaW50ZXJuYWxzJ1xuLy8gc3RhdGljL3J1bnRpbWUvcmVhY3QtcmVmcmVzaC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNIID0gYHJlYWN0LXJlZnJlc2hgXG4vLyBzdGF0aWMvcnVudGltZS9hbXAuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QID0gYGFtcGBcbi8vIHN0YXRpYy9ydW50aW1lL3dlYnBhY2suanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfV0VCUEFDSyA9IGB3ZWJwYWNrYFxuLy8gc3RhdGljL3J1bnRpbWUvcG9seWZpbGxzLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMUyA9ICdwb2x5ZmlsbHMnXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU19TWU1CT0wgPSBTeW1ib2woXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFNcbilcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JVTlRJTUVfV0VCUEFDSyA9ICd3ZWJwYWNrLXJ1bnRpbWUnXG5leHBvcnQgY29uc3QgRURHRV9SVU5USU1FX1dFQlBBQ0sgPSAnZWRnZS1ydW50aW1lLXdlYnBhY2snXG5leHBvcnQgY29uc3QgU1RBVElDX1BST1BTX0lEID0gJ19fTl9TU0cnXG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1BTX0lEID0gJ19fTl9TU1AnXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVJJRl9GT05UID0ge1xuICBuYW1lOiAnVGltZXMgTmV3IFJvbWFuJyxcbiAgeEF2Z0NoYXJXaWR0aDogODIxLFxuICBhekF2Z1dpZHRoOiA4NTQuMzk1MzQ4ODM3MjA5MyxcbiAgdW5pdHNQZXJFbTogMjA0OCxcbn1cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NBTlNfU0VSSUZfRk9OVCA9IHtcbiAgbmFtZTogJ0FyaWFsJyxcbiAgeEF2Z0NoYXJXaWR0aDogOTA0LFxuICBhekF2Z1dpZHRoOiA5MzQuNTExNjI3OTA2OTc2NyxcbiAgdW5pdHNQZXJFbTogMjA0OCxcbn1cbmV4cG9ydCBjb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VTID0gWycvNTAwJ11cbmV4cG9ydCBjb25zdCBUUkFDRV9PVVRQVVRfVkVSU0lPTiA9IDFcbi8vIGluIGBNQmBcbmV4cG9ydCBjb25zdCBUVVJCT19UUkFDRV9ERUZBVUxUX01FTU9SWV9MSU1JVCA9IDYwMDBcblxuZXhwb3J0IGNvbnN0IFJTQ19NT0RVTEVfVFlQRVMgPSB7XG4gIGNsaWVudDogJ2NsaWVudCcsXG4gIHNlcnZlcjogJ3NlcnZlcicsXG59IGFzIGNvbnN0XG5cbi8vIGNvbXBhcmluZ1xuLy8gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9lZGdlLXJ1bnRpbWVcbi8vIHdpdGhcbi8vIGh0dHBzOi8vbm9kZWpzLm9yZy9kb2NzL2xhdGVzdC9hcGkvZ2xvYmFscy5odG1sXG5leHBvcnQgY29uc3QgRURHRV9VTlNVUFBPUlRFRF9OT0RFX0FQSVMgPSBbXG4gICdjbGVhckltbWVkaWF0ZScsXG4gICdzZXRJbW1lZGlhdGUnLFxuICAnQnJvYWRjYXN0Q2hhbm5lbCcsXG4gICdCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5JyxcbiAgJ0NvbXByZXNzaW9uU3RyZWFtJyxcbiAgJ0NvdW50UXVldWluZ1N0cmF0ZWd5JyxcbiAgJ0RlY29tcHJlc3Npb25TdHJlYW0nLFxuICAnRG9tRXhjZXB0aW9uJyxcbiAgJ01lc3NhZ2VDaGFubmVsJyxcbiAgJ01lc3NhZ2VFdmVudCcsXG4gICdNZXNzYWdlUG9ydCcsXG4gICdSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyJyxcbiAgJ1JlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QnLFxuICAnUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcicsXG4gICdUcmFuc2Zvcm1TdHJlYW1EZWZhdWx0Q29udHJvbGxlcicsXG4gICdXcml0YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbl1cblxuZXhwb3J0IGNvbnN0IFNZU1RFTV9FTlRSWVBPSU5UUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOLFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCxcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX0FNUCxcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQLFxuXSlcbiJdLCJuYW1lcyI6WyJBUFBfQlVJTERfTUFOSUZFU1QiLCJBUFBfQ0xJRU5UX0lOVEVSTkFMUyIsIkFQUF9QQVRIU19NQU5JRkVTVCIsIkFQUF9QQVRIX1JPVVRFU19NQU5JRkVTVCIsIkJBUlJFTF9PUFRJTUlaQVRJT05fUFJFRklYIiwiQkxPQ0tFRF9QQUdFUyIsIkJVSUxEX0lEX0ZJTEUiLCJCVUlMRF9NQU5JRkVTVCIsIkNMSUVOVF9QVUJMSUNfRklMRVNfUEFUSCIsIkNMSUVOVF9SRUZFUkVOQ0VfTUFOSUZFU1QiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1BBVEgiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4iLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU19TWU1CT0wiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9XRUJQQUNLIiwiQ09NUElMRVJfSU5ERVhFUyIsIkNPTVBJTEVSX05BTUVTIiwiQ09ORklHX0ZJTEVTIiwiREVGQVVMVF9SVU5USU1FX1dFQlBBQ0siLCJERUZBVUxUX1NBTlNfU0VSSUZfRk9OVCIsIkRFRkFVTFRfU0VSSUZfRk9OVCIsIkRFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIkRFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QiLCJEWU5BTUlDX0NTU19NQU5JRkVTVCIsIkVER0VfUlVOVElNRV9XRUJQQUNLIiwiRURHRV9VTlNVUFBPUlRFRF9OT0RFX0FQSVMiLCJFWFBPUlRfREVUQUlMIiwiRVhQT1JUX01BUktFUiIsIkZVTkNUSU9OU19DT05GSUdfTUFOSUZFU1QiLCJJTUFHRVNfTUFOSUZFU1QiLCJJTlRFUkNFUFRJT05fUk9VVEVfUkVXUklURV9NQU5JRkVTVCIsIk1JRERMRVdBUkVfQlVJTERfTUFOSUZFU1QiLCJNSURETEVXQVJFX01BTklGRVNUIiwiTUlERExFV0FSRV9SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCIsIk1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUIiwiTkVYVF9CVUlMVElOX0RPQ1VNRU5UIiwiTkVYVF9GT05UX01BTklGRVNUIiwiUEFHRVNfTUFOSUZFU1QiLCJQSEFTRV9ERVZFTE9QTUVOVF9TRVJWRVIiLCJQSEFTRV9FWFBPUlQiLCJQSEFTRV9JTkZPIiwiUEhBU0VfUFJPRFVDVElPTl9CVUlMRCIsIlBIQVNFX1BST0RVQ1RJT05fU0VSVkVSIiwiUEhBU0VfVEVTVCIsIlBSRVJFTkRFUl9NQU5JRkVTVCIsIlJFQUNUX0xPQURBQkxFX01BTklGRVNUIiwiUk9VVEVTX01BTklGRVNUIiwiUlNDX01PRFVMRV9UWVBFUyIsIlNFUlZFUl9ESVJFQ1RPUlkiLCJTRVJWRVJfRklMRVNfTUFOSUZFU1QiLCJTRVJWRVJfUFJPUFNfSUQiLCJTRVJWRVJfUkVGRVJFTkNFX01BTklGRVNUIiwiU1RBVElDX1BST1BTX0lEIiwiU1RBVElDX1NUQVRVU19QQUdFUyIsIlNUUklOR19MSVRFUkFMX0RST1BfQlVORExFIiwiU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUIiwiU1lTVEVNX0VOVFJZUE9JTlRTIiwiVFJBQ0VfT1VUUFVUX1ZFUlNJT04iLCJUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QiLCJUVVJCT19UUkFDRV9ERUZBVUxUX01FTU9SWV9MSU1JVCIsIlVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFIiwiVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEVfRU5UUlkiLCJXRUJQQUNLX1NUQVRTIiwiY2xpZW50Iiwic2VydmVyIiwiZWRnZVNlcnZlciIsIlN5bWJvbCIsIm5hbWUiLCJ4QXZnQ2hhcldpZHRoIiwiYXpBdmdXaWR0aCIsInVuaXRzUGVyRW0iLCJTZXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(instrument)/./node_modules/next/dist/shared/lib/constants.js\n");
/***/ }),
/***/ "(instrument)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/modern-browserslist-target.js ***!
\*************************************************************************/
/***/ ((module) => {
"use strict";
eval("// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS.\n// Keep file changes in sync with the corresponding `.d.ts` files.\n/**\n * These are the browser versions that support all of the following:\n * static import: https://caniuse.com/es6-module\n * dynamic import: https://caniuse.com/es6-module-dynamic-import\n * import.meta: https://caniuse.com/mdn-javascript_operators_import_meta\n */ \nconst MODERN_BROWSERSLIST_TARGET = [\n 'chrome 64',\n 'edge 79',\n 'firefox 67',\n 'opera 51',\n 'safari 12'\n];\nmodule.exports = MODERN_BROWSERSLIST_TARGET; //# sourceMappingURL=modern-browserslist-target.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGluc3RydW1lbnQpLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zaGFyZWQvbGliL21vZGVybi1icm93c2Vyc2xpc3QtdGFyZ2V0LmpzIiwibWFwcGluZ3MiOiJBQUFBLG9GQUFvRjtBQUNwRixrRUFBa0U7QUFDbEU7Ozs7O0NBS0M7QUFDRCxNQUFNQSw2QkFBNkI7SUFDakM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRURDLE9BQU9DLE9BQU8sR0FBR0YiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9zaGFyZWQvbGliL21vZGVybi1icm93c2Vyc2xpc3QtdGFyZ2V0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIE5vdGU6IFRoaXMgZmlsZSBpcyBKUyBiZWNhdXNlIGl0J3MgdXNlZCBieSB0aGUgdGFza2ZpbGUtc3djLmpzIGZpbGUsIHdoaWNoIGlzIEpTLlxuLy8gS2VlcCBmaWxlIGNoYW5nZXMgaW4gc3luYyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGAuZC50c2AgZmlsZXMuXG4vKipcbiAqIFRoZXNlIGFyZSB0aGUgYnJvd3NlciB2ZXJzaW9ucyB0aGF0IHN1cHBvcnQgYWxsIG9mIHRoZSBmb2xsb3dpbmc6XG4gKiBzdGF0aWMgaW1wb3J0OiBodHRwczovL2Nhbml1c2UuY29tL2VzNi1tb2R1bGVcbiAqIGR5bmFtaWMgaW1wb3J0OiBodHRwczovL2Nhbml1c2UuY29tL2VzNi1tb2R1bGUtZHluYW1pYy1pbXBvcnRcbiAqIGltcG9ydC5tZXRhOiBodHRwczovL2Nhbml1c2UuY29tL21kbi1qYXZhc2NyaXB0X29wZXJhdG9yc19pbXBvcnRfbWV0YVxuICovXG5jb25zdCBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCA9IFtcbiAgJ2Nocm9tZSA2NCcsXG4gICdlZGdlIDc5JyxcbiAgJ2ZpcmVmb3ggNjcnLFxuICAnb3BlcmEgNTEnLFxuICAnc2FmYXJpIDEyJyxcbl1cblxubW9kdWxlLmV4cG9ydHMgPSBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVFxuIl0sIm5hbWVzIjpbIk1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(instrument)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/api/constants.js":
/*!*************************************************!*\
!*** ./node_modules/next/dist/api/constants.js ***!
\*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/constants */ \"(rsc)/./node_modules/next/dist/shared/lib/constants.js\");\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXdDOztBQUV4QyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9hcGkvY29uc3RhbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4uL3NoYXJlZC9saWIvY29uc3RhbnRzJztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/api/constants.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/api/server.js":
/*!**********************************************!*\
!*** ./node_modules/next/dist/api/server.js ***!
\**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../server/web/exports/index */ \"(rsc)/./node_modules/next/dist/server/web/exports/index.js\");\n/* harmony import */ var _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=server.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9zZXJ2ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRDOztBQUU1QyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9hcGkvc2VydmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4uL3NlcnZlci93ZWIvZXhwb3J0cy9pbmRleCc7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlcnZlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/api/server.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/build/output/log.js":
/*!****************************************************!*\
!*** ./node_modules/next/dist/build/output/log.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n bootstrap: function() {\n return bootstrap;\n },\n error: function() {\n return error;\n },\n event: function() {\n return event;\n },\n info: function() {\n return info;\n },\n prefixes: function() {\n return prefixes;\n },\n ready: function() {\n return ready;\n },\n trace: function() {\n return trace;\n },\n wait: function() {\n return wait;\n },\n warn: function() {\n return warn;\n },\n warnOnce: function() {\n return warnOnce;\n }\n});\nconst _picocolors = __webpack_require__(/*! ../../lib/picocolors */ \"(rsc)/./node_modules/next/dist/lib/picocolors.js\");\nconst _lrucache = __webpack_require__(/*! ../../server/lib/lru-cache */ \"(rsc)/./node_modules/next/dist/server/lib/lru-cache.js\");\nconst prefixes = {\n wait: (0, _picocolors.white)((0, _picocolors.bold)('○')),\n error: (0, _picocolors.red)((0, _picocolors.bold)('')),\n warn: (0, _picocolors.yellow)((0, _picocolors.bold)('⚠')),\n ready: '▲',\n info: (0, _picocolors.white)((0, _picocolors.bold)(' ')),\n event: (0, _picocolors.green)((0, _picocolors.bold)('✓')),\n trace: (0, _picocolors.magenta)((0, _picocolors.bold)('»'))\n};\nconst LOGGING_METHOD = {\n log: 'log',\n warn: 'warn',\n error: 'error'\n};\nfunction prefixedLog(prefixType, ...message) {\n if ((message[0] === '' || message[0] === undefined) && message.length === 1) {\n message.shift();\n }\n const consoleMethod = prefixType in LOGGING_METHOD ? LOGGING_METHOD[prefixType] : 'log';\n const prefix = prefixes[prefixType];\n // If there's no message, don't print the prefix but a new line\n if (message.length === 0) {\n console[consoleMethod]('');\n } else {\n // Ensure if there's ANSI escape codes it's concatenated into one string.\n // Chrome DevTool can only handle color if it's in one string.\n if (message.length === 1 && typeof message[0] === 'string') {\n console[consoleMethod](' ' + prefix + ' ' + message[0]);\n } else {\n console[consoleMethod](' ' + prefix, ...message);\n }\n }\n}\nfunction bootstrap(...message) {\n // logging format: ' <prefix> <message>'\n // e.g. ' ✓ Compiled successfully'\n // Add spaces to align with the indent of other logs\n console.log(' ' + message.join(' '));\n}\nfunction wait(...message) {\n prefixedLog('wait', ...message);\n}\nfunction error(...message) {\n prefixedLog('error', ...message);\n}\nfunction warn(...message) {\n prefixedLog('warn', ...message);\n}\nfunction ready(...message) {\n prefixedLog('ready', ...message);\n}\nfunction info(...message) {\n prefixedLog('info', ...message);\n}\nfunction event(...message) {\n prefixedLog('event', ...message);\n}\nfunction trace(...message) {\n prefixedLog('trace', ...message);\n}\nconst warnOnceCache = new _lrucache.LRUCache(10000, (value)=>value.length);\nfunction warnOnce(...message) {\n const key = message.join(' ');\n if (!warnOnceCache.has(key)) {\n warnOnceCache.set(key, key);\n warn(...message);\n }\n}\n\n//# sourceMappingURL=log.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL291dHB1dC9sb2cuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBV0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG9CQUFvQixtQkFBTyxDQUFDLDhFQUFzQjtBQUNsRCxrQkFBa0IsbUJBQU8sQ0FBQywwRkFBNEI7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvb3V0cHV0L2xvZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGJvb3RzdHJhcDogbnVsbCxcbiAgICBlcnJvcjogbnVsbCxcbiAgICBldmVudDogbnVsbCxcbiAgICBpbmZvOiBudWxsLFxuICAgIHByZWZpeGVzOiBudWxsLFxuICAgIHJlYWR5OiBudWxsLFxuICAgIHRyYWNlOiBudWxsLFxuICAgIHdhaXQ6IG51bGwsXG4gICAgd2FybjogbnVsbCxcbiAgICB3YXJuT25jZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBib290c3RyYXA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYm9vdHN0cmFwO1xuICAgIH0sXG4gICAgZXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfSxcbiAgICBldmVudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBldmVudDtcbiAgICB9LFxuICAgIGluZm86IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW5mbztcbiAgICB9LFxuICAgIHByZWZpeGVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHByZWZpeGVzO1xuICAgIH0sXG4gICAgcmVhZHk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVhZHk7XG4gICAgfSxcbiAgICB0cmFjZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0cmFjZTtcbiAgICB9LFxuICAgIHdhaXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2FpdDtcbiAgICB9LFxuICAgIHdhcm46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2FybjtcbiAgICB9LFxuICAgIHdhcm5PbmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdhcm5PbmNlO1xuICAgIH1cbn0pO1xuY29uc3QgX3BpY29jb2xvcnMgPSByZXF1aXJlKFwiLi4vLi4vbGliL3BpY29jb2xvcnNcIik7XG5jb25zdCBfbHJ1Y2FjaGUgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL2xpYi9scnUtY2FjaGVcIik7XG5jb25zdCBwcmVmaXhlcyA9IHtcbiAgICB3YWl0OiAoMCwgX3BpY29jb2xvcnMud2hpdGUpKCgwLCBfcGljb2NvbG9ycy5ib2xkKSgn4peLJykpLFxuICAgIGVycm9yOiAoMCwgX3BpY29jb2xvcnMucmVkKSgoMCwgX3BpY29jb2xvcnMuYm9sZCkoJ+KorycpKSxcbiAgICB3YXJuOiAoMCwgX3BpY29jb2xvcnMueWVsbG93KSgoMCwgX3BpY29jb2xvcnMuYm9sZCkoJ+KaoCcpKSxcbiAgICByZWFkeTogJ+KWsicsXG4gICAgaW5mbzogKDAsIF9waWNvY29sb3JzLndoaXRlKSgoMCwgX3BpY29jb2xvcnMuYm9sZCkoJyAnKSksXG4gICAgZXZlbnQ6ICgwLCBfcGljb2NvbG9ycy5ncmVlbikoKDAsIF9waWNvY29sb3JzLmJvbGQpKCfinJMnKSksXG4gICAgdHJhY2U6ICgwLCBfcGljb2NvbG9ycy5tYWdlbnRhKSgoMCwgX3BpY29jb2xvcnMuYm9sZCkoJ8K7JykpXG59O1xuY29uc3QgTE9HR0lOR19NRVRIT0QgPSB7XG4gICAgbG9nOiAnbG9nJyxcbiAgICB3YXJuOiAnd2FybicsXG4gICAgZXJyb3I6ICdlcnJvcidcbn07XG5mdW5jdGlvbiBwcmVmaXhlZExvZyhwcmVmaXhUeXBlLCAuLi5tZXNzYWdlKSB7XG4gICAgaWYgKChtZXNzYWdlWzBdID09PSAnJyB8fCBtZXNzYWdlWzBdID09PSB1bmRlZmluZWQpICYmIG1lc3NhZ2UubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIG1lc3NhZ2Uuc2hpZnQoKTtcbiAgICB9XG4gICAgY29uc3QgY29uc29sZU1ldGhvZCA9IHByZWZpeFR5cGUgaW4gTE9HR0lOR19NRVRIT0QgPyBMT0dHSU5HX01FVEhPRFtwcmVmaXhUeXBlXSA6ICdsb2cnO1xuICAgIGNvbnN0IHByZWZpeCA9IHByZWZpeGVzW3ByZWZpeFR5cGVdO1xuICAgIC8vIElmIHRoZXJlJ3Mgbm8gbWVzc2FnZSwgZG9uJ3QgcHJpbnQgdGhlIHByZWZpeCBidXQgYSBuZXcgbGluZVxuICAgIGlmIChtZXNzYWdlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zb2xlW2NvbnNvbGVNZXRob2RdKCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBFbnN1cmUgaWYgdGhlcmUncyBBTlNJIGVzY2FwZSBjb2RlcyBpdCdzIGNvbmNhdGVuYXRlZCBpbnRvIG9uZSBzdHJpbmcuXG4gICAgICAgIC8vIENocm9tZSBEZXZUb29sIGNhbiBvbmx5IGhhbmRsZSBjb2xvciBpZiBpdCdzIGluIG9uZSBzdHJpbmcuXG4gICAgICAgIGlmIChtZXNzYWdlLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgbWVzc2FnZVswXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnNvbGVbY29uc29sZU1ldGhvZF0oJyAnICsgcHJlZml4ICsgJyAnICsgbWVzc2FnZVswXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlW2NvbnNvbGVNZXRob2RdKCcgJyArIHByZWZpeCwgLi4ubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBib290c3RyYXAoLi4ubWVzc2FnZSkge1xuICAgIC8vIGxvZ2dpbmcgZm9ybWF0OiAnIDxwcmVmaXg+IDxtZXNzYWdlPidcbiAgICAvLyBlLmcuICcg4pyTIENvbXBpbGVkIHN1Y2Nlc3NmdWxseSdcbiAgICAvLyBBZGQgc3BhY2VzIHRvIGFsaWduIHdpdGggdGhlIGluZGVudCBvZiBvdGhlciBsb2dzXG4gICAgY29uc29sZS5sb2coJyAgICcgKyBtZXNzYWdlLmpvaW4oJyAnKSk7XG59XG5mdW5jdGlvbiB3YWl0KC4uLm1lc3NhZ2UpIHtcbiAgICBwcmVmaXhlZExvZygnd2FpdCcsIC4uLm1lc3NhZ2UpO1xufVxuZnVuY3Rpb24gZXJyb3IoLi4ubWVzc2FnZSkge1xuICAgIHByZWZpeGVkTG9nKCdlcnJvcicsIC4uLm1lc3NhZ2UpO1xufVxuZnVuY3Rpb24gd2FybiguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coJ3dhcm4nLCAuLi5tZXNzYWdlKTtcbn1cbmZ1bmN0aW9uIHJlYWR5KC4uLm1lc3NhZ2UpIHtcbiAgICBwcmVmaXhlZExvZygncmVhZHknLCAuLi5tZXNzYWdlKTtcbn1cbmZ1bmN0aW9uIGluZm8oLi4ubWVzc2FnZSkge1xuICAgIHByZWZpeGVkTG9nKCdpbmZvJywgLi4ubWVzc2FnZSk7XG59XG5mdW5jdGlvbiBldmVudCguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coJ2V2ZW50JywgLi4ubWVzc2FnZSk7XG59XG5mdW5jdGlvbiB0cmFjZSguLi5tZXNzYWdlKSB7XG4gICAgcHJlZml4ZWRMb2coJ3RyYWNlJywgLi4ubWVzc2FnZSk7XG59XG5jb25zdCB3YXJuT25jZUNhY2hlID0gbmV3IF9scnVjYWNoZS5MUlVDYWNoZSgxMDAwMCwgKHZhbHVlKT0+dmFsdWUubGVuZ3RoKTtcbmZ1bmN0aW9uIHdhcm5PbmNlKC4uLm1lc3NhZ2UpIHtcbiAgICBjb25zdCBrZXkgPSBtZXNzYWdlLmpvaW4oJyAnKTtcbiAgICBpZiAoIXdhcm5PbmNlQ2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgd2Fybk9uY2VDYWNoZS5zZXQoa2V5LCBrZXkpO1xuICAgICAgICB3YXJuKC4uLm1lc3NhZ2UpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG9nLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/output/log.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js ***!
\*****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("/* eslint-disable import/no-extraneous-dependencies */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createProxy\", ({\n enumerable: true,\n get: function() {\n return createProxy;\n }\n}));\nconst _server = __webpack_require__(/*! react-server-dom-webpack/server */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\");\nconst createProxy = _server.createClientModuleProxy;\n\n//# sourceMappingURL=module-proxy.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5LmpzIiwibWFwcGluZ3MiOiJBQUFBLHVEQUFvRTtBQUNwRSw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwrQ0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixnQkFBZ0IsbUJBQU8sQ0FBQyxxSkFBaUM7QUFDekQ7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWxvYWRlci9tb2R1bGUtcHJveHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY3JlYXRlUHJveHlcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVByb3h5O1xuICAgIH1cbn0pO1xuY29uc3QgX3NlcnZlciA9IHJlcXVpcmUoXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svc2VydmVyXCIpO1xuY29uc3QgY3JlYXRlUHJveHkgPSBfc2VydmVyLmNyZWF0ZUNsaWVudE1vZHVsZVByb3h5O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUtcHJveHkuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/app-dir/link.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/client/app-dir/link.js ***!
\*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js")
module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/app-dir/link.js")
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/app-router-headers.js":
/*!************************************************************************!*\
!*** ./node_modules/next/dist/client/components/app-router-headers.js ***!
\************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_HEADER: function() {\n return ACTION_HEADER;\n },\n FLIGHT_HEADERS: function() {\n return FLIGHT_HEADERS;\n },\n NEXT_ACTION_NOT_FOUND_HEADER: function() {\n return NEXT_ACTION_NOT_FOUND_HEADER;\n },\n NEXT_DID_POSTPONE_HEADER: function() {\n return NEXT_DID_POSTPONE_HEADER;\n },\n NEXT_HMR_REFRESH_HASH_COOKIE: function() {\n return NEXT_HMR_REFRESH_HASH_COOKIE;\n },\n NEXT_HMR_REFRESH_HEADER: function() {\n return NEXT_HMR_REFRESH_HEADER;\n },\n NEXT_IS_PRERENDER_HEADER: function() {\n return NEXT_IS_PRERENDER_HEADER;\n },\n NEXT_REWRITTEN_PATH_HEADER: function() {\n return NEXT_REWRITTEN_PATH_HEADER;\n },\n NEXT_REWRITTEN_QUERY_HEADER: function() {\n return NEXT_REWRITTEN_QUERY_HEADER;\n },\n NEXT_ROUTER_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_PREFETCH_HEADER;\n },\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_SEGMENT_PREFETCH_HEADER;\n },\n NEXT_ROUTER_STALE_TIME_HEADER: function() {\n return NEXT_ROUTER_STALE_TIME_HEADER;\n },\n NEXT_ROUTER_STATE_TREE_HEADER: function() {\n return NEXT_ROUTER_STATE_TREE_HEADER;\n },\n NEXT_RSC_UNION_QUERY: function() {\n return NEXT_RSC_UNION_QUERY;\n },\n NEXT_URL: function() {\n return NEXT_URL;\n },\n RSC_CONTENT_TYPE_HEADER: function() {\n return RSC_CONTENT_TYPE_HEADER;\n },\n RSC_HEADER: function() {\n return RSC_HEADER;\n }\n});\nconst RSC_HEADER = 'RSC';\nconst ACTION_HEADER = 'Next-Action';\nconst NEXT_ROUTER_STATE_TREE_HEADER = 'Next-Router-State-Tree';\nconst NEXT_ROUTER_PREFETCH_HEADER = 'Next-Router-Prefetch';\nconst NEXT_ROUTER_SEGMENT_PREFETCH_HEADER = 'Next-Router-Segment-Prefetch';\nconst NEXT_HMR_REFRESH_HEADER = 'Next-HMR-Refresh';\nconst NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__';\nconst NEXT_URL = 'Next-Url';\nconst RSC_CONTENT_TYPE_HEADER = 'text/x-component';\nconst FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER\n];\nconst NEXT_RSC_UNION_QUERY = '_rsc';\nconst NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time';\nconst NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed';\nconst NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path';\nconst NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query';\nconst NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender';\nconst NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDYUEsYUFBYTtlQUFiQTs7SUFpQkFDLGNBQWM7ZUFBZEE7O0lBZUFDLDRCQUE0QjtlQUE1QkE7O0lBSkFDLHdCQUF3QjtlQUF4QkE7O0lBZkFDLDRCQUE0QjtlQUE1QkE7O0lBREFDLHVCQUF1QjtlQUF2QkE7O0lBbUJBQyx3QkFBd0I7ZUFBeEJBOztJQUZBQywwQkFBMEI7ZUFBMUJBOztJQUNBQywyQkFBMkI7ZUFBM0JBOztJQXpCQUMsMkJBQTJCO2VBQTNCQTs7SUFLQUMsbUNBQW1DO2VBQW5DQTs7SUFpQkFDLDZCQUE2QjtlQUE3QkE7O0lBdkJBQyw2QkFBNkI7ZUFBN0JBOztJQXFCQUMsb0JBQW9CO2VBQXBCQTs7SUFYQUMsUUFBUTtlQUFSQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFoQkFDLFVBQVU7ZUFBVkE7OztBQUFOLE1BQU1BLGFBQWE7QUFDbkIsTUFBTWhCLGdCQUFnQjtBQUl0QixNQUFNWSxnQ0FBZ0M7QUFDdEMsTUFBTUgsOEJBQThCO0FBS3BDLE1BQU1DLHNDQUNYO0FBQ0ssTUFBTUwsMEJBQTBCO0FBQ2hDLE1BQU1ELCtCQUErQjtBQUNyQyxNQUFNVSxXQUFXO0FBQ2pCLE1BQU1DLDBCQUEwQjtBQUVoQyxNQUFNZCxpQkFBaUI7SUFDNUJlO0lBQ0FKO0lBQ0FIO0lBQ0FKO0lBQ0FLO0NBQ0Q7QUFFTSxNQUFNRyx1QkFBdUI7QUFFN0IsTUFBTUYsZ0NBQWdDO0FBQ3RDLE1BQU1SLDJCQUEyQjtBQUNqQyxNQUFNSSw2QkFBNkI7QUFDbkMsTUFBTUMsOEJBQThCO0FBQ3BDLE1BQU1GLDJCQUEyQjtBQUNqQyxNQUFNSiwrQkFBK0IiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJTQ19IRUFERVIgPSAnUlNDJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IEFDVElPTl9IRUFERVIgPSAnTmV4dC1BY3Rpb24nIGFzIGNvbnN0XG4vLyBUT0RPOiBJbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIGZ1bGwgcm91dGVyIHN0YXRlLCB3ZSBvbmx5IG5lZWQgdG8gc2VuZCB0aGVcbi8vIHNlZ21lbnQgcGF0aC4gU2F2ZXMgYnl0ZXMuIFRoZW4gd2UgY291bGQgYWxzbyB1c2UgdGhpcyBmaWVsZCBmb3Igc2VnbWVudFxuLy8gcHJlZmV0Y2hlcywgd2hpY2ggYWxzbyBuZWVkIHRvIHNwZWNpZnkgYSBwYXJ0aWN1bGFyIHNlZ21lbnQuXG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIgPSAnTmV4dC1Sb3V0ZXItU3RhdGUtVHJlZScgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIgPSAnTmV4dC1Sb3V0ZXItUHJlZmV0Y2gnIGFzIGNvbnN0XG4vLyBUaGlzIGNvbnRhaW5zIHRoZSBwYXRoIHRvIHRoZSBzZWdtZW50IGJlaW5nIHByZWZldGNoZWQuXG4vLyBUT0RPOiBJZiB3ZSBjaGFuZ2UgTmV4dC1Sb3V0ZXItU3RhdGUtVHJlZSB0byBiZSBhIHNlZ21lbnQgcGF0aCwgd2UgY2FuIHVzZVxuLy8gdGhhdCBpbnN0ZWFkLiBUaGVuIE5leHQtUm91dGVyLVByZWZldGNoIGFuZCBOZXh0LVJvdXRlci1TZWdtZW50LVByZWZldGNoIGNhblxuLy8gYmUgbWVyZ2VkIGludG8gYSBzaW5nbGUgZW51bS5cbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUiA9XG4gICdOZXh0LVJvdXRlci1TZWdtZW50LVByZWZldGNoJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSE1SX1JFRlJFU0hfSEVBREVSID0gJ05leHQtSE1SLVJlZnJlc2gnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRSA9ICdfX25leHRfaG1yX3JlZnJlc2hfaGFzaF9fJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfVVJMID0gJ05leHQtVXJsJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IFJTQ19DT05URU5UX1RZUEVfSEVBREVSID0gJ3RleHQveC1jb21wb25lbnQnIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBGTElHSFRfSEVBREVSUyA9IFtcbiAgUlNDX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTkVYVF9SU0NfVU5JT05fUVVFUlkgPSAnX3JzYycgYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSID0gJ3gtbmV4dGpzLXN0YWxlLXRpbWUnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSID0gJ3gtbmV4dGpzLXBvc3Rwb25lZCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiA9ICd4LW5leHRqcy1yZXdyaXR0ZW4tcGF0aCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9RVUVSWV9IRUFERVIgPSAneC1uZXh0anMtcmV3cml0dGVuLXF1ZXJ5JyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSVNfUFJFUkVOREVSX0hFQURFUiA9ICd4LW5leHRqcy1wcmVyZW5kZXInIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9BQ1RJT05fTk9UX0ZPVU5EX0hFQURFUiA9ICd4LW5leHRqcy1hY3Rpb24tbm90LWZvdW5kJyBhcyBjb25zdFxuIl0sIm5hbWVzIjpbIkFDVElPTl9IRUFERVIiLCJGTElHSFRfSEVBREVSUyIsIk5FWFRfQUNUSU9OX05PVF9GT1VORF9IRUFERVIiLCJORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIiLCJORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFIiwiTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIiLCJORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIiLCJORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiIsIk5FWFRfUkVXUklUVEVOX1FVRVJZX0hFQURFUiIsIk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSIiwiTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUiIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiTkVYVF9VUkwiLCJSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiIsIlJTQ19IRUFERVIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/builtin/forbidden.js":
/*!***********************************************************************!*\
!*** ./node_modules/next/dist/client/components/builtin/forbidden.js ***!
\***********************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Forbidden;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _errorfallback = __webpack_require__(/*! ../http-access-fallback/error-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\");\nfunction Forbidden() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, {\n status: 403,\n message: \"This page could not be accessed.\"\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=forbidden.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZm9yYmlkZGVuLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBRUE7OztlQUF3QkE7Ozs7MkNBRmdCO0FBRXpCLFNBQVNBO0lBQ3RCLHFCQUNFLHFCQUFDQyxlQUFBQSx1QkFBdUI7UUFDdEJDLFFBQVE7UUFDUkMsU0FBUTs7QUFHZCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZm9yYmlkZGVuLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayB9IGZyb20gJy4uL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBGb3JiaWRkZW4oKSB7XG4gIHJldHVybiAoXG4gICAgPEhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrXG4gICAgICBzdGF0dXM9ezQwM31cbiAgICAgIG1lc3NhZ2U9XCJUaGlzIHBhZ2UgY291bGQgbm90IGJlIGFjY2Vzc2VkLlwiXG4gICAgLz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkZvcmJpZGRlbiIsIkhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrIiwic3RhdHVzIiwibWVzc2FnZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/builtin/forbidden.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/builtin/not-found.js":
/*!***********************************************************************!*\
!*** ./node_modules/next/dist/client/components/builtin/not-found.js ***!
\***********************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return NotFound;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _errorfallback = __webpack_require__(/*! ../http-access-fallback/error-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\");\nfunction NotFound() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, {\n status: 404,\n message: \"This page could not be found.\"\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=not-found.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vbm90LWZvdW5kLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBRUE7OztlQUF3QkE7Ozs7MkNBRmdCO0FBRXpCLFNBQVNBO0lBQ3RCLHFCQUNFLHFCQUFDQyxlQUFBQSx1QkFBdUI7UUFDdEJDLFFBQVE7UUFDUkMsU0FBUTs7QUFHZCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vbm90LWZvdW5kLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayB9IGZyb20gJy4uL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBOb3RGb3VuZCgpIHtcbiAgcmV0dXJuIChcbiAgICA8SFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2tcbiAgICAgIHN0YXR1cz17NDA0fVxuICAgICAgbWVzc2FnZT1cIlRoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQuXCJcbiAgICAvPlxuICApXG59XG4iXSwibmFtZXMiOlsiTm90Rm91bmQiLCJIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayIsInN0YXR1cyIsIm1lc3NhZ2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/builtin/not-found.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/builtin/unauthorized.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/client/components/builtin/unauthorized.js ***!
\**************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Unauthorized;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _errorfallback = __webpack_require__(/*! ../http-access-fallback/error-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\");\nfunction Unauthorized() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, {\n status: 401,\n message: \"You're not authorized to access this page.\"\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unauthorized.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vdW5hdXRob3JpemVkLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBRUE7OztlQUF3QkE7Ozs7MkNBRmdCO0FBRXpCLFNBQVNBO0lBQ3RCLHFCQUNFLHFCQUFDQyxlQUFBQSx1QkFBdUI7UUFDdEJDLFFBQVE7UUFDUkMsU0FBUTs7QUFHZCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vdW5hdXRob3JpemVkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayB9IGZyb20gJy4uL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBVbmF1dGhvcml6ZWQoKSB7XG4gIHJldHVybiAoXG4gICAgPEhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrXG4gICAgICBzdGF0dXM9ezQwMX1cbiAgICAgIG1lc3NhZ2U9XCJZb3UncmUgbm90IGF1dGhvcml6ZWQgdG8gYWNjZXNzIHRoaXMgcGFnZS5cIlxuICAgIC8+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJVbmF1dGhvcml6ZWQiLCJIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayIsInN0YXR1cyIsIm1lc3NhZ2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/builtin/unauthorized.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/client-page.js":
/*!*****************************************************************!*\
!*** ./node_modules/next/dist/client/components/client-page.js ***!
\*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js")
module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/client-page.js")
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/client-segment.js":
/*!********************************************************************!*\
!*** ./node_modules/next/dist/client/components/client-segment.js ***!
\********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js")
module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/client-segment.js")
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/client/components/hooks-server-context.js ***!
\**************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DynamicServerError: function() {\n return DynamicServerError;\n },\n isDynamicServerError: function() {\n return isDynamicServerError;\n }\n});\nconst DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE';\nclass DynamicServerError extends Error {\n constructor(description){\n super(\"Dynamic server usage: \" + description), this.description = description, this.digest = DYNAMIC_ERROR_CODE;\n }\n}\nfunction isDynamicServerError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') {\n return false;\n }\n return err.digest === DYNAMIC_ERROR_CODE;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hooks-server-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxrQkFBa0I7ZUFBbEJBOztJQVFHQyxvQkFBb0I7ZUFBcEJBOzs7QUFWaEIsTUFBTUMscUJBQXFCO0FBRXBCLE1BQU1GLDJCQUEyQkc7SUFHdENDLFlBQTRCQyxXQUFtQixDQUFFO1FBQy9DLEtBQUssQ0FBRSwyQkFBd0JBLGNBQUFBLElBQUFBLENBRExBLFdBQUFBLEdBQUFBLGFBQUFBLElBQUFBLENBRjVCQyxNQUFBQSxHQUFvQ0o7SUFJcEM7QUFDRjtBQUVPLFNBQVNELHFCQUFxQk0sR0FBWTtJQUMvQyxJQUNFLE9BQU9BLFFBQVEsWUFDZkEsUUFBUSxRQUNSLENBQUUsYUFBWUEsR0FBQUEsQ0FBRSxJQUNoQixPQUFPQSxJQUFJRCxNQUFNLEtBQUssVUFDdEI7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxJQUFJRCxNQUFNLEtBQUtKO0FBQ3hCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFlOQU1JQ19FUlJPUl9DT0RFID0gJ0RZTkFNSUNfU0VSVkVSX1VTQUdFJ1xuXG5leHBvcnQgY2xhc3MgRHluYW1pY1NlcnZlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBkaWdlc3Q6IHR5cGVvZiBEWU5BTUlDX0VSUk9SX0NPREUgPSBEWU5BTUlDX0VSUk9SX0NPREVcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZykge1xuICAgIHN1cGVyKGBEeW5hbWljIHNlcnZlciB1c2FnZTogJHtkZXNjcmlwdGlvbn1gKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNTZXJ2ZXJFcnJvcihlcnI6IHVua25vd24pOiBlcnIgaXMgRHluYW1pY1NlcnZlckVycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8XG4gICAgZXJyID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnIpIHx8XG4gICAgdHlwZW9mIGVyci5kaWdlc3QgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIGVyci5kaWdlc3QgPT09IERZTkFNSUNfRVJST1JfQ09ERVxufVxuIl0sIm5hbWVzIjpbIkR5bmFtaWNTZXJ2ZXJFcnJvciIsImlzRHluYW1pY1NlcnZlckVycm9yIiwiRFlOQU1JQ19FUlJPUl9DT0RFIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImRlc2NyaXB0aW9uIiwiZGlnZXN0IiwiZXJyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js ***!
\*****************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js")
module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js")
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js ***!
\*****************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTTPAccessErrorFallback\", ({\n enumerable: true,\n get: function() {\n return HTTPAccessErrorFallback;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _accesserrorstyles = __webpack_require__(/*! ../styles/access-error-styles */ \"(rsc)/./node_modules/next/dist/client/components/styles/access-error-styles.js\");\nfunction HTTPAccessErrorFallback(param) {\n let { status, message } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: status + \": \" + message\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: _accesserrorstyles.styles.error,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* Minified CSS from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n @media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: _accesserrorstyles.styles.h1,\n children: status\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: _accesserrorstyles.styles.desc,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h2\", {\n style: _accesserrorstyles.styles.h2,\n children: message\n })\n })\n ]\n })\n })\n ]\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=error-fallback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkRBRWdCQTs7O2VBQUFBOzs7OytDQUZPO0FBRWhCLFNBQVNBLHdCQUF3QixLQU12QztJQU51QyxNQUN0Q0MsTUFBTSxFQUNOQyxPQUFPLEVBSVIsR0FOdUM7SUFPdEMscUJBQ0U7OzBCQUVFLHFCQUFDQyxTQUFBQTswQkFBVUYsU0FBTyxPQUFJQzs7MEJBRXRCLHFCQUFDRSxPQUFBQTtnQkFBSUMsT0FBT0MsbUJBQUFBLE1BQU0sQ0FBQ0MsS0FBSzswQkFDdEIsb0NBQUNILE9BQUFBOztzQ0FDQyxxQkFBQ0MsU0FBQUE7NEJBQ0NHLHlCQUF5QjtnQ0FDdkI7Ozs7Ozs7Ozs7OztjQVlBLEdBQ0FDLFFBQVM7NEJBQ1g7O3NDQUVGLHFCQUFDQyxNQUFBQTs0QkFBR0MsV0FBVTs0QkFBZ0JOLE9BQU9DLG1CQUFBQSxNQUFNLENBQUNJLEVBQUU7c0NBQzNDVDs7c0NBRUgscUJBQUNHLE9BQUFBOzRCQUFJQyxPQUFPQyxtQkFBQUEsTUFBTSxDQUFDTSxJQUFJO3NDQUNyQixtQ0FBQ0MsTUFBQUE7Z0NBQUdSLE9BQU9DLG1CQUFBQSxNQUFNLENBQUNPLEVBQUU7MENBQUdYOzs7Ozs7OztBQU1uQyIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWZhbGxiYWNrLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHlsZXMgfSBmcm9tICcuLi9zdHlsZXMvYWNjZXNzLWVycm9yLXN0eWxlcydcblxuZXhwb3J0IGZ1bmN0aW9uIEhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrKHtcbiAgc3RhdHVzLFxuICBtZXNzYWdlLFxufToge1xuICBzdGF0dXM6IG51bWJlclxuICBtZXNzYWdlOiBzdHJpbmdcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgey8qIDxoZWFkPiAqL31cbiAgICAgIDx0aXRsZT57YCR7c3RhdHVzfTogJHttZXNzYWdlfWB9PC90aXRsZT5cbiAgICAgIHsvKiA8L2hlYWQ+ICovfVxuICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmVycm9yfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIC8qIE1pbmlmaWVkIENTUyBmcm9tXG4gICAgICAgICAgICAgICAgYm9keSB7IG1hcmdpbjogMDsgY29sb3I6ICMwMDA7IGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgICAgICAgICAgICAubmV4dC1lcnJvci1oMSB7XG4gICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIC4zKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgICAgICBib2R5IHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6ICMwMDA7IH1cbiAgICAgICAgICAgICAgICAgIC5uZXh0LWVycm9yLWgxIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAuMyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBfX2h0bWw6IGBib2R5e2NvbG9yOiMwMDA7YmFja2dyb3VuZDojZmZmO21hcmdpbjowfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgwLDAsMCwuMyl9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMDAwfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyl9fWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm5leHQtZXJyb3ItaDFcIiBzdHlsZT17c3R5bGVzLmgxfT5cbiAgICAgICAgICAgIHtzdGF0dXN9XG4gICAgICAgICAgPC9oMT5cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZGVzY30+XG4gICAgICAgICAgICA8aDIgc3R5bGU9e3N0eWxlcy5oMn0+e21lc3NhZ2V9PC9oMj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrIiwic3RhdHVzIiwibWVzc2FnZSIsInRpdGxlIiwiZGl2Iiwic3R5bGUiLCJzdHlsZXMiLCJlcnJvciIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiaDEiLCJjbGFzc05hbWUiLCJkZXNjIiwiaDIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js":
/*!***********************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js ***!
\***********************************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTTPAccessErrorStatus: function() {\n return HTTPAccessErrorStatus;\n },\n HTTP_ERROR_FALLBACK_ERROR_CODE: function() {\n return HTTP_ERROR_FALLBACK_ERROR_CODE;\n },\n getAccessFallbackErrorTypeByStatus: function() {\n return getAccessFallbackErrorTypeByStatus;\n },\n getAccessFallbackHTTPStatus: function() {\n return getAccessFallbackHTTPStatus;\n },\n isHTTPAccessFallbackError: function() {\n return isHTTPAccessFallbackError;\n }\n});\nconst HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401\n};\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));\nconst HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';\nfunction isHTTPAccessFallbackError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const [prefix, httpStatus] = error.digest.split(';');\n return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));\n}\nfunction getAccessFallbackHTTPStatus(error) {\n const httpStatus = error.digest.split(';')[1];\n return Number(httpStatus);\n}\nfunction getAccessFallbackErrorTypeByStatus(status) {\n switch(status){\n case 401:\n return 'unauthorized';\n case 403:\n return 'forbidden';\n case 404:\n return 'not-found';\n default:\n return;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=http-access-fallback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2h0dHAtYWNjZXNzLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxxQkFBcUI7ZUFBckJBOztJQVFBQyw4QkFBOEI7ZUFBOUJBOztJQXVDR0Msa0NBQWtDO2VBQWxDQTs7SUFQQUMsMkJBQTJCO2VBQTNCQTs7SUFuQkFDLHlCQUF5QjtlQUF6QkE7OztBQXJCVCxNQUFNSix3QkFBd0I7SUFDbkNLLFdBQVc7SUFDWEMsV0FBVztJQUNYQyxjQUFjO0FBQ2hCO0FBRUEsTUFBTUMsZ0JBQWdCLElBQUlDLElBQUlDLE9BQU9DLE1BQU0sQ0FBQ1g7QUFFckMsTUFBTUMsaUNBQWlDO0FBYXZDLFNBQVNHLDBCQUNkUSxLQUFjO0lBRWQsSUFDRSxPQUFPQSxVQUFVLFlBQ2pCQSxVQUFVLFFBQ1YsQ0FBRSxhQUFZQSxLQUFBQSxDQUFJLElBQ2xCLE9BQU9BLE1BQU1DLE1BQU0sS0FBSyxVQUN4QjtRQUNBLE9BQU87SUFDVDtJQUNBLE1BQU0sQ0FBQ0MsUUFBUUMsV0FBVyxHQUFHSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUVoRCxPQUNFRixXQUFXYixrQ0FDWE8sY0FBY1MsR0FBRyxDQUFDQyxPQUFPSDtBQUU3QjtBQUVPLFNBQVNaLDRCQUNkUyxLQUE4QjtJQUU5QixNQUFNRyxhQUFhSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUM3QyxPQUFPRSxPQUFPSDtBQUNoQjtBQUVPLFNBQVNiLG1DQUNkaUIsTUFBYztJQUVkLE9BQVFBO1FBQ04sS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1Q7WUFDRTtJQUNKO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSFRUUEFjY2Vzc0Vycm9yU3RhdHVzID0ge1xuICBOT1RfRk9VTkQ6IDQwNCxcbiAgRk9SQklEREVOOiA0MDMsXG4gIFVOQVVUSE9SSVpFRDogNDAxLFxufVxuXG5jb25zdCBBTExPV0VEX0NPREVTID0gbmV3IFNldChPYmplY3QudmFsdWVzKEhUVFBBY2Nlc3NFcnJvclN0YXR1cykpXG5cbmV4cG9ydCBjb25zdCBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUgPSAnTkVYVF9IVFRQX0VSUk9SX0ZBTExCQUNLJ1xuXG5leHBvcnQgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciA9IEVycm9yICYge1xuICBkaWdlc3Q6IGAke3R5cGVvZiBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREV9OyR7c3RyaW5nfWBcbn1cblxuLyoqXG4gKiBDaGVja3MgYW4gZXJyb3IgdG8gZGV0ZXJtaW5lIGlmIGl0J3MgYW4gZXJyb3IgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgSFRUUCBuYXZpZ2F0aW9uIEFQSXMgYG5vdEZvdW5kKClgLCBgZm9yYmlkZGVuKClgIG9yIGB1bmF1dGhvcml6ZWQoKWAuXG4gKlxuICogQHBhcmFtIGVycm9yIHRoZSBlcnJvciB0aGF0IG1heSByZWZlcmVuY2UgYSBIVFRQIGFjY2VzcyBlcnJvclxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXJyb3IgaXMgYSBIVFRQIGFjY2VzcyBlcnJvclxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnJvciAhPT0gJ29iamVjdCcgfHxcbiAgICBlcnJvciA9PT0gbnVsbCB8fFxuICAgICEoJ2RpZ2VzdCcgaW4gZXJyb3IpIHx8XG4gICAgdHlwZW9mIGVycm9yLmRpZ2VzdCAhPT0gJ3N0cmluZydcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgW3ByZWZpeCwgaHR0cFN0YXR1c10gPSBlcnJvci5kaWdlc3Quc3BsaXQoJzsnKVxuXG4gIHJldHVybiAoXG4gICAgcHJlZml4ID09PSBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUgJiZcbiAgICBBTExPV0VEX0NPREVTLmhhcyhOdW1iZXIoaHR0cFN0YXR1cykpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyhcbiAgZXJyb3I6IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4pOiBudW1iZXIge1xuICBjb25zdCBodHRwU3RhdHVzID0gZXJyb3IuZGlnZXN0LnNwbGl0KCc7JylbMV1cbiAgcmV0dXJuIE51bWJlcihodHRwU3RhdHVzKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyhcbiAgc3RhdHVzOiBudW1iZXJcbik6ICdub3QtZm91bmQnIHwgJ2ZvcmJpZGRlbicgfCAndW5hdXRob3JpemVkJyB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgY2FzZSA0MDE6XG4gICAgICByZXR1cm4gJ3VuYXV0aG9yaXplZCdcbiAgICBjYXNlIDQwMzpcbiAgICAgIHJldHVybiAnZm9yYmlkZGVuJ1xuICAgIGNhc2UgNDA0OlxuICAgICAgcmV0dXJuICdub3QtZm91bmQnXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVyblxuICB9XG59XG4iXSwibmFtZXMiOlsiSFRUUEFjY2Vzc0Vycm9yU3RhdHVzIiwiSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFIiwiZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyIsImdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyIsImlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IiLCJOT1RfRk9VTkQiLCJGT1JCSURERU4iLCJVTkFVVEhPUklaRUQiLCJBTExPV0VEX0NPREVTIiwiU2V0IiwiT2JqZWN0IiwidmFsdWVzIiwiZXJyb3IiLCJkaWdlc3QiLCJwcmVmaXgiLCJodHRwU3RhdHVzIiwic3BsaXQiLCJoYXMiLCJOdW1iZXIiLCJzdGF0dXMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/is-next-router-error.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/client/components/is-next-router-error.js ***!
\**************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isNextRouterError\", ({\n enumerable: true,\n get: function() {\n return isNextRouterError;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(rsc)/./node_modules/next/dist/client/components/redirect-error.js\");\nfunction isNextRouterError(error) {\n return (0, _redirecterror.isRedirectError)(error) || (0, _httpaccessfallback.isHTTPAccessFallbackError)(error);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=is-next-router-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBV2dCQTs7O2VBQUFBOzs7Z0RBUlQ7MkNBQzZDO0FBTzdDLFNBQVNBLGtCQUNkQyxLQUFjO0lBRWQsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsZUFBQUEsRUFBZ0JELFVBQVVFLENBQUFBLEdBQUFBLG9CQUFBQSx5QkFBQUEsRUFBMEJGO0FBQzdEIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcbmltcG9ydCB7IGlzUmVkaXJlY3RFcnJvciwgdHlwZSBSZWRpcmVjdEVycm9yIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgbmF2aWdhdGlvbiBzaWduYWwgZXJyb3IuIFRoZXNlIGVycm9ycyBhcmVcbiAqIHRocm93biBieSB1c2VyIGNvZGUgdG8gcGVyZm9ybSBuYXZpZ2F0aW9uIG9wZXJhdGlvbnMgYW5kIGludGVycnVwdCB0aGUgUmVhY3RcbiAqIHJlbmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dFJvdXRlckVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgUmVkaXJlY3RFcnJvciB8IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgcmV0dXJuIGlzUmVkaXJlY3RFcnJvcihlcnJvcikgfHwgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihlcnJvcilcbn1cbiJdLCJuYW1lcyI6WyJpc05leHRSb3V0ZXJFcnJvciIsImVycm9yIiwiaXNSZWRpcmVjdEVycm9yIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/is-next-router-error.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/layout-router.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/client/components/layout-router.js ***!
\*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js")
module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/layout-router.js")
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/match-segments.js":
/*!********************************************************************!*\
!*** ./node_modules/next/dist/client/components/match-segments.js ***!
\********************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"matchSegment\", ({\n enumerable: true,\n get: function() {\n return matchSegment;\n }\n}));\nconst matchSegment = (existingSegment, segment)=>{\n // segment is either Array or string\n if (typeof existingSegment === 'string') {\n if (typeof segment === 'string') {\n // Common case: segment is just a string\n return existingSegment === segment;\n }\n return false;\n }\n if (typeof segment === 'string') {\n return false;\n }\n return existingSegment[0] === segment[0] && existingSegment[1] === segment[1];\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=match-segments.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21hdGNoLXNlZ21lbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBRWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLGVBQWUsQ0FDMUJDLGlCQUNBQztJQUVBLG9DQUFvQztJQUNwQyxJQUFJLE9BQU9ELG9CQUFvQixVQUFVO1FBQ3ZDLElBQUksT0FBT0MsWUFBWSxVQUFVO1lBQy9CLHdDQUF3QztZQUN4QyxPQUFPRCxvQkFBb0JDO1FBQzdCO1FBQ0EsT0FBTztJQUNUO0lBRUEsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsT0FBTztJQUNUO0lBQ0EsT0FBT0QsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUUsSUFBSUQsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUU7QUFDL0UiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9tYXRjaC1zZWdtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuZXhwb3J0IGNvbnN0IG1hdGNoU2VnbWVudCA9IChcbiAgZXhpc3RpbmdTZWdtZW50OiBTZWdtZW50LFxuICBzZWdtZW50OiBTZWdtZW50XG4pOiBib29sZWFuID0+IHtcbiAgLy8gc2VnbWVudCBpcyBlaXRoZXIgQXJyYXkgb3Igc3RyaW5nXG4gIGlmICh0eXBlb2YgZXhpc3RpbmdTZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIENvbW1vbiBjYXNlOiBzZWdtZW50IGlzIGp1c3QgYSBzdHJpbmdcbiAgICAgIHJldHVybiBleGlzdGluZ1NlZ21lbnQgPT09IHNlZ21lbnRcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIGV4aXN0aW5nU2VnbWVudFswXSA9PT0gc2VnbWVudFswXSAmJiBleGlzdGluZ1NlZ21lbnRbMV0gPT09IHNlZ21lbnRbMV1cbn1cbiJdLCJuYW1lcyI6WyJtYXRjaFNlZ21lbnQiLCJleGlzdGluZ1NlZ21lbnQiLCJzZWdtZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/match-segments.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/metadata/async-metadata.js":
/*!*****************************************************************************!*\
!*** ./node_modules/next/dist/client/components/metadata/async-metadata.js ***!
\*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js")
module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/metadata/async-metadata.js")
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js":
/*!********************************************************************************!*\
!*** ./node_modules/next/dist/client/components/metadata/metadata-boundary.js ***!
\********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js")
module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/metadata/metadata-boundary.js")
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/redirect-error.js":
/*!********************************************************************!*\
!*** ./node_modules/next/dist/client/components/redirect-error.js ***!
\********************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n REDIRECT_ERROR_CODE: function() {\n return REDIRECT_ERROR_CODE;\n },\n RedirectType: function() {\n return RedirectType;\n },\n isRedirectError: function() {\n return isRedirectError;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ./redirect-status-code */ \"(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst REDIRECT_ERROR_CODE = 'NEXT_REDIRECT';\nvar RedirectType = /*#__PURE__*/ function(RedirectType) {\n RedirectType[\"push\"] = \"push\";\n RedirectType[\"replace\"] = \"replace\";\n return RedirectType;\n}({});\nfunction isRedirectError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const digest = error.digest.split(';');\n const [errorCode, type] = digest;\n const destination = digest.slice(2, -2).join(';');\n const status = digest.at(-2);\n const statusCode = Number(status);\n return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxtQkFBbUI7ZUFBbkJBOztJQUVEQyxZQUFZO2VBQVpBOztJQWdCSUMsZUFBZTtlQUFmQTs7O2dEQXBCbUI7QUFFNUIsTUFBTUYsc0JBQXNCO0FBRTVCLElBQUtDLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7V0FBQUE7O0FBZ0JMLFNBQVNDLGdCQUFnQkMsS0FBYztJQUM1QyxJQUNFLE9BQU9BLFVBQVUsWUFDakJBLFVBQVUsUUFDVixDQUFFLGFBQVlBLEtBQUFBLENBQUksSUFDbEIsT0FBT0EsTUFBTUMsTUFBTSxLQUFLLFVBQ3hCO1FBQ0EsT0FBTztJQUNUO0lBRUEsTUFBTUEsU0FBU0QsTUFBTUMsTUFBTSxDQUFDQyxLQUFLLENBQUM7SUFDbEMsTUFBTSxDQUFDQyxXQUFXQyxLQUFLLEdBQUdIO0lBQzFCLE1BQU1JLGNBQWNKLE9BQU9LLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBR0MsSUFBSSxDQUFDO0lBQzdDLE1BQU1DLFNBQVNQLE9BQU9RLEVBQUUsQ0FBQyxDQUFDO0lBRTFCLE1BQU1DLGFBQWFDLE9BQU9IO0lBRTFCLE9BQ0VMLGNBQWNOLHVCQUNiTyxDQUFBQSxTQUFTLGFBQWFBLFNBQVMsT0FBSyxJQUNyQyxPQUFPQyxnQkFBZ0IsWUFDdkIsQ0FBQ08sTUFBTUYsZUFDUEEsY0FBY0csb0JBQUFBLGtCQUFrQjtBQUVwQyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZGlyZWN0U3RhdHVzQ29kZSB9IGZyb20gJy4vcmVkaXJlY3Qtc3RhdHVzLWNvZGUnXG5cbmV4cG9ydCBjb25zdCBSRURJUkVDVF9FUlJPUl9DT0RFID0gJ05FWFRfUkVESVJFQ1QnXG5cbmV4cG9ydCBlbnVtIFJlZGlyZWN0VHlwZSB7XG4gIHB1c2ggPSAncHVzaCcsXG4gIHJlcGxhY2UgPSAncmVwbGFjZScsXG59XG5cbmV4cG9ydCB0eXBlIFJlZGlyZWN0RXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBgJHt0eXBlb2YgUkVESVJFQ1RfRVJST1JfQ09ERX07JHtSZWRpcmVjdFR5cGV9OyR7c3RyaW5nfTske1JlZGlyZWN0U3RhdHVzQ29kZX07YFxufVxuXG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlXG4gKiBgcmVkaXJlY3QodXJsKWAgaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgcmVkaXJlY3QgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3RFcnJvcihlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIFJlZGlyZWN0RXJyb3Ige1xuICBpZiAoXG4gICAgdHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fFxuICAgIGVycm9yID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnJvcikgfHxcbiAgICB0eXBlb2YgZXJyb3IuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGRpZ2VzdCA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpXG4gIGNvbnN0IFtlcnJvckNvZGUsIHR5cGVdID0gZGlnZXN0XG4gIGNvbnN0IGRlc3RpbmF0aW9uID0gZGlnZXN0LnNsaWNlKDIsIC0yKS5qb2luKCc7JylcbiAgY29uc3Qgc3RhdHVzID0gZGlnZXN0LmF0KC0yKVxuXG4gIGNvbnN0IHN0YXR1c0NvZGUgPSBOdW1iZXIoc3RhdHVzKVxuXG4gIHJldHVybiAoXG4gICAgZXJyb3JDb2RlID09PSBSRURJUkVDVF9FUlJPUl9DT0RFICYmXG4gICAgKHR5cGUgPT09ICdyZXBsYWNlJyB8fCB0eXBlID09PSAncHVzaCcpICYmXG4gICAgdHlwZW9mIGRlc3RpbmF0aW9uID09PSAnc3RyaW5nJyAmJlxuICAgICFpc05hTihzdGF0dXNDb2RlKSAmJlxuICAgIHN0YXR1c0NvZGUgaW4gUmVkaXJlY3RTdGF0dXNDb2RlXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSRURJUkVDVF9FUlJPUl9DT0RFIiwiUmVkaXJlY3RUeXBlIiwiaXNSZWRpcmVjdEVycm9yIiwiZXJyb3IiLCJkaWdlc3QiLCJzcGxpdCIsImVycm9yQ29kZSIsInR5cGUiLCJkZXN0aW5hdGlvbiIsInNsaWNlIiwiam9pbiIsInN0YXR1cyIsImF0Iiwic3RhdHVzQ29kZSIsIk51bWJlciIsImlzTmFOIiwiUmVkaXJlY3RTdGF0dXNDb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/redirect-error.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/client/components/redirect-status-code.js ***!
\**************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBQVlBOzs7ZUFBQUE7OztBQUFMLElBQUtBLHFCQUFBQSxXQUFBQSxHQUFBQSxTQUFBQSxrQkFBQUE7Ozs7V0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZWRpcmVjdFN0YXR1c0NvZGUge1xuICBTZWVPdGhlciA9IDMwMyxcbiAgVGVtcG9yYXJ5UmVkaXJlY3QgPSAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0ID0gMzA4LFxufVxuIl0sIm5hbWVzIjpbIlJlZGlyZWN0U3RhdHVzQ29kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js":
/*!**********************************************************************************!*\
!*** ./node_modules/next/dist/client/components/render-from-template-context.js ***!
\**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js")
module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/render-from-template-context.js")
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js ***!
\*****************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n computeChangedPath: function() {\n return computeChangedPath;\n },\n extractPathFromFlightRouterState: function() {\n return extractPathFromFlightRouterState;\n },\n getSelectedParams: function() {\n return getSelectedParams;\n }\n});\nconst _interceptionroutes = __webpack_require__(/*! ../../../shared/lib/router/utils/interception-routes */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _matchsegments = __webpack_require__(/*! ../match-segments */ \"(rsc)/./node_modules/next/dist/client/components/match-segments.js\");\nconst removeLeadingSlash = (segment)=>{\n return segment[0] === '/' ? segment.slice(1) : segment;\n};\nconst segmentToPathname = (segment)=>{\n if (typeof segment === 'string') {\n // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page\n // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense.\n if (segment === 'children') return '';\n return segment;\n }\n return segment[1];\n};\nfunction normalizeSegments(segments) {\n return segments.reduce((acc, segment)=>{\n segment = removeLeadingSlash(segment);\n if (segment === '' || (0, _segment.isGroupSegment)(segment)) {\n return acc;\n }\n return acc + \"/\" + segment;\n }, '') || '/';\n}\nfunction extractPathFromFlightRouterState(flightRouterState) {\n const segment = Array.isArray(flightRouterState[0]) ? flightRouterState[0][1] : flightRouterState[0];\n if (segment === _segment.DEFAULT_SEGMENT_KEY || _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m))) return undefined;\n if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) return '';\n const segments = [\n segmentToPathname(segment)\n ];\n var _flightRouterState_;\n const parallelRoutes = (_flightRouterState_ = flightRouterState[1]) != null ? _flightRouterState_ : {};\n const childrenPath = parallelRoutes.children ? extractPathFromFlightRouterState(parallelRoutes.children) : undefined;\n if (childrenPath !== undefined) {\n segments.push(childrenPath);\n } else {\n for (const [key, value] of Object.entries(parallelRoutes)){\n if (key === 'children') continue;\n const childPath = extractPathFromFlightRouterState(value);\n if (childPath !== undefined) {\n segments.push(childPath);\n }\n }\n }\n return normalizeSegments(segments);\n}\nfunction computeChangedPathImpl(treeA, treeB) {\n const [segmentA, parallelRoutesA] = treeA;\n const [segmentB, parallelRoutesB] = treeB;\n const normalizedSegmentA = segmentToPathname(segmentA);\n const normalizedSegmentB = segmentToPathname(segmentB);\n if (_interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m))) {\n return '';\n }\n if (!(0, _matchsegments.matchSegment)(segmentA, segmentB)) {\n var _extractPathFromFlightRouterState;\n // once we find where the tree changed, we compute the rest of the path by traversing the tree\n return (_extractPathFromFlightRouterState = extractPathFromFlightRouterState(treeB)) != null ? _extractPathFromFlightRouterState : '';\n }\n for(const parallelRouterKey in parallelRoutesA){\n if (parallelRoutesB[parallelRouterKey]) {\n const changedPath = computeChangedPathImpl(parallelRoutesA[parallelRouterKey], parallelRoutesB[parallelRouterKey]);\n if (changedPath !== null) {\n return segmentToPathname(segmentB) + \"/\" + changedPath;\n }\n }\n }\n return null;\n}\nfunction computeChangedPath(treeA, treeB) {\n const changedPath = computeChangedPathImpl(treeA, treeB);\n if (changedPath == null || changedPath === '/') {\n return changedPath;\n }\n // lightweight normalization to remove route groups\n return normalizeSegments(changedPath.split('/'));\n}\nfunction getSelectedParams(currentTree, params) {\n if (params === void 0) params = {};\n const parallelRoutes = currentTree[1];\n for (const parallelRoute of Object.values(parallelRoutes)){\n const segment = parallelRoute[0];\n const isDynamicParameter = Array.isArray(segment);\n const segmentValue = isDynamicParameter ? segment[1] : segment;\n if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) continue;\n // Ensure catchAll and optional catchall are turned into an array\n const isCatchAll = isDynamicParameter && (segment[2] === 'c' || segment[2] === 'oc');\n if (isCatchAll) {\n params[segment[0]] = segment[1].split('/');\n } else if (isDynamicParameter) {\n params[segment[0]] = segment[1];\n }\n params = getSelectedParams(parallelRoute, params);\n }\n return params;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=compute-changed-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NvbXB1dGUtY2hhbmdlZC1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXdIZ0JBLGtCQUFrQjtlQUFsQkE7O0lBOUVBQyxnQ0FBZ0M7ZUFBaENBOztJQStGQUMsaUJBQWlCO2VBQWpCQTs7O2dEQXJJMkI7cUNBTXBDOzJDQUNzQjtBQUU3QixNQUFNQyxxQkFBcUIsQ0FBQ0M7SUFDMUIsT0FBT0EsT0FBTyxDQUFDLEVBQUUsS0FBSyxNQUFNQSxRQUFRQyxLQUFLLENBQUMsS0FBS0Q7QUFDakQ7QUFFQSxNQUFNRSxvQkFBb0IsQ0FBQ0Y7SUFDekIsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsdUhBQXVIO1FBQ3ZILGdIQUFnSDtRQUNoSCxJQUFJQSxZQUFZLFlBQVksT0FBTztRQUVuQyxPQUFPQTtJQUNUO0lBRUEsT0FBT0EsT0FBTyxDQUFDLEVBQUU7QUFDbkI7QUFFQSxTQUFTRyxrQkFBa0JDLFFBQWtCO0lBQzNDLE9BQ0VBLFNBQVNDLE1BQU0sQ0FBQyxDQUFDQyxLQUFLTjtRQUNwQkEsVUFBVUQsbUJBQW1CQztRQUM3QixJQUFJQSxZQUFZLE1BQU1PLENBQUFBLEdBQUFBLFNBQUFBLGNBQUFBLEVBQWVQLFVBQVU7WUFDN0MsT0FBT007UUFDVDtRQUVBLE9BQVVBLE1BQUksTUFBR047SUFDbkIsR0FBRyxPQUFPO0FBRWQ7QUFFTyxTQUFTSCxpQ0FDZFcsaUJBQW9DO0lBRXBDLE1BQU1SLFVBQVVTLE1BQU1DLE9BQU8sQ0FBQ0YsaUJBQWlCLENBQUMsRUFBRSxJQUM5Q0EsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FDdkJBLGlCQUFpQixDQUFDLEVBQUU7SUFFeEIsSUFDRVIsWUFBWVcsU0FBQUEsbUJBQW1CLElBQy9CQyxvQkFBQUEsMEJBQTBCLENBQUNDLElBQUksQ0FBQyxDQUFDQyxJQUFNZCxRQUFRZSxVQUFVLENB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QUc7UUFFakUsSUFBSThDLFlBQVk7WUFDZEwsTUFBTSxDQUFDekMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHQSxPQUFPLENBQUMsRUFBRSxDQUFDdUMsS0FBSyxDQUFDO1FBQ3hDLE9BQU8sSUFBSUssb0JBQW9CO1lBQzdCSCxNQUFNLENBQUN6QyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUdBLE9BQU8sQ0FBQyxFQUFFO1FBQ2pDO1FBRUF5QyxTQUFTM0Msa0JBQWtCNEMsZUFBZUQ7SUFDNUM7SUFFQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY29tcHV0ZS1jaGFuZ2VkLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgU2VnbWVudCxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgeyBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcbmltcG9ydCB7XG4gIGlzR3JvdXBTZWdtZW50LFxuICBERUZBVUxUX1NFR01FTlRfS0VZLFxuICBQQUdFX1NFR01FTlRfS0VZLFxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5pbXBvcnQgeyBtYXRjaFNlZ21lbnQgfSBmcm9tICcuLi9tYXRjaC1zZWdtZW50cydcblxuY29uc3QgcmVtb3ZlTGVhZGluZ1NsYXNoID0gKHNlZ21lbnQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnLycgPyBzZWdtZW50LnNsaWNlKDEpIDogc2VnbWVudFxufVxuXG5jb25zdCBzZWdtZW50VG9QYXRobmFtZSA9IChzZWdtZW50OiBTZWdtZW50KTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIC8vICdjaGlsZHJlbicgaXMgbm90IGEgdmFsaWQgcGF0aCAtLSBpdCdzIHRlY2huaWNhbGx5IGEgcGFyYWxsZWwgcm91dGUgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBjdXJyZW50IHNlZ21lbnQncyBwYWdlXG4gICAgLy8gaWYgd2UgZG9uJ3Qgc2tpcCBpdCwgdGhlbiB0aGUgY29tcHV0ZWQgcGF0aG5hbWUgbWlnaHQgYmUgc29tZXRoaW5nIGxpa2UgYC9jaGlsZHJlbmAgd2hpY2ggZG9lc24ndCBtYWtlIHNlbnNlLlxuICAgIGlmIChzZWdtZW50ID09PSAnY2hpbGRyZW4nKSByZXR1cm4gJydcblxuICAgIHJldHVybiBzZWdtZW50XG4gIH1cblxuICByZXR1cm4gc2VnbWVudFsxXVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVTZWdtZW50cyhzZWdtZW50czogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgIHNlZ21lbnRzLnJlZHVjZSgoYWNjLCBzZWdtZW50KSA9PiB7XG4gICAgICBzZWdtZW50ID0gcmVtb3ZlTGVhZGluZ1NsYXNoKHNlZ21lbnQpXG4gICAgICBpZiAoc2VnbWVudCA9PT0gJycgfHwgaXNHcm91cFNlZ21lbnQoc2VnbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7YWNjfS8ke3NlZ21lbnR9YFxuICAgIH0sICcnKSB8fCAnLydcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUoXG4gIGZsaWdodFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc2VnbWVudCA9IEFycmF5LmlzQXJyYXkoZmxpZ2h0Um91dGVyU3RhdGVbMF0pXG4gICAgPyBmbGlnaHRSb3V0ZXJTdGF0ZVswXVsxXVxuICAgIDogZmxpZ2h0Um91dGVyU3RhdGVbMF1cblxuICBpZiAoXG4gICAgc2VnbWVudCA9PT0gREVGQVVMVF9TRUdNRU5UX0tFWSB8fFxuICAgIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoKG0pID0+IHNlZ21lbnQuc3RhcnRzV2l0aChtKSlcbiAgKVxuICAgIHJldHVybiB1bmRlZmluZWRcblxuICBpZiAoc2VnbWVudC5zdGFydHNXaXRoKFBBR0VfU0VHTUVOVF9LRVkpKSByZXR1cm4gJydcblxuICBjb25zdCBzZWdtZW50cyA9IFtzZWdtZW50VG9QYXRobmFtZShzZWdtZW50KV1cbiAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSBmbGlnaHRSb3V0ZXJTdGF0ZVsxXSA/PyB7fVxuXG4gIGNvbnN0IGNoaWxkcmVuUGF0aCA9IHBhcmFsbGVsUm91dGVzLmNoaWxkcmVuXG4gICAgPyBleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZShwYXJhbGxlbFJvdXRlcy5jaGlsZHJlbilcbiAgICA6IHVuZGVmaW5lZFxuXG4gIGlmIChjaGlsZHJlblBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgIHNlZ21lbnRzLnB1c2goY2hpbGRyZW5QYXRoKVxuICB9IGVsc2Uge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFsbGVsUm91dGVzKSkge1xuICAgICAgaWYgKGtleSA9PT0gJ2NoaWxkcmVuJykgY29udGludWVcblxuICAgICAgY29uc3QgY2hpbGRQYXRoID0gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUodmFsdWUpXG5cbiAgICAgIGlmIChjaGlsZFBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzZWdtZW50cy5wdXNoKGNoaWxkUGF0aClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbm9ybWFsaXplU2VnbWVudHMoc2VnbWVudHMpXG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVDaGFuZ2VkUGF0aEltcGwoXG4gIHRyZWVBOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgdHJlZUI6IEZsaWdodFJvdXRlclN0YXRlXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgW3NlZ21lbnRBLCBwYXJhbGxlbFJvdXRlc0FdID0gdHJlZUFcbiAgY29uc3QgW3NlZ21lbnRCLCBwYXJhbGxlbFJvdXRlc0JdID0gdHJlZUJcblxuICBjb25zdCBub3JtYWxpemVkU2VnbWVudEEgPSBzZWdtZW50VG9QYXRobmFtZShzZWdtZW50QSlcbiAgY29uc3Qgbm9ybWFsaXplZFNlZ21lbnRCID0gc2VnbWVudFRvUGF0aG5hbWUoc2VnbWVudEIpXG5cbiAgaWYgKFxuICAgIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoXG4gICAgICAobSkgPT5cbiAgICAgICAgbm9ybWFsaXplZFNlZ21lbnRBLnN0YXJ0c1dpdGgobSkgfHwgbm9ybWFsaXplZFNlZ21lbnRCLnN0YXJ0c1dpdGgobSlcbiAgICApXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKCFtYXRjaFNlZ21lbnQoc2VnbWVudEEsIHNlZ21lbnRCKSkge1xuICAgIC8vIG9uY2Ugd2UgZmluZCB3aGVyZSB0aGUgdHJlZSBjaGFuZ2VkLCB3ZSBjb21wdXRlIHRoZSByZXN0IG9mIHRoZSBwYXRoIGJ5IHRyYXZlcnNpbmcgdGhlIHRyZWVcbiAgICByZXR1cm4gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUodHJlZUIpID8/ICcnXG4gIH1cblxuICBmb3IgKGNvbnN0IHBhcmFsbGVsUm91dGVyS2V5IGluIHBhcmFsbGVsUm91dGVzQSkge1xuICAgIGlmIChwYXJhbGxlbFJvdXRlc0JbcGFyYWxsZWxSb3V0ZXJLZXldKSB7XG4gICAgICBjb25zdCBjaGFuZ2VkUGF0aCA9IGNvbXB1dGVDaGFuZ2VkUGF0aEltcGwoXG4gICAgICAgIHBhcmFsbGVsUm91dGVzQVtwYXJhbGxlbFJvdXRlcktleV0sXG4gICAgICAgIHBhcmFsbGVsUm91dGVzQltwYXJhbGxlbFJvdXRlcktleV1cbiAgICAgIClcbiAgICAgIGlmIChjaGFuZ2VkUGF0aCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gYCR7c2VnbWVudFRvUGF0aG5hbWUoc2VnbWVudEIpfS8ke2NoYW5nZWRQYXRofWBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUNoYW5nZWRQYXRoKFxuICB0cmVlQTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHRyZWVCOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGNoYW5nZWRQYXRoID0gY29tcHV0ZUNoYW5nZWRQYXRoSW1wbCh0cmVlQSwgdHJlZUIpXG5cbiAgaWYgKGNoYW5nZWRQYXRoID09IG51bGwgfHwgY2hhbmdlZFBhdGggPT09ICcvJykge1xuICAgIHJldHVybiBjaGFuZ2VkUGF0aFxuICB9XG5cbiAgLy8gbGlnaHR3ZWlnaHQgbm9ybWFsaXphdGlvbiB0byByZW1vdmUgcm91dGUgZ3JvdXBzXG4gIHJldHVybiBub3JtYWxpemVTZWdtZW50cyhjaGFuZ2VkUGF0aC5zcGxpdCgnLycpKVxufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGV4dHJhY3RzIGR5bmFtaWMgcGFyYW1ldGVycyBmcm9tIEZsaWdodFJvdXRlclN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0ZWRQYXJhbXMoXG4gIGN1cnJlbnRUcmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgcGFyYW1zOiBQYXJhbXMgPSB7fVxuKTogUGFyYW1zIHtcbiAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSBjdXJyZW50VHJlZVsxXVxuXG4gIGZvciAoY29uc3QgcGFyYWxsZWxSb3V0ZSBvZiBPYmplY3QudmFsdWVzKHBhcmFsbGVsUm91dGVzKSkge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBwYXJhbGxlbFJvdXRlWzBdXG4gICAgY29uc3QgaXNEeW5hbWljUGFyYW1ldGVyID0gQXJyYXkuaXNBcnJheShzZWdtZW50KVxuICAgIGNvbnN0IHNlZ21lbnRWYWx1ZSA9IGlzRHluYW1pY1BhcmFtZXRlciA/IHNlZ21lbnRbMV0gOiBzZWdtZW50XG4gICAgaWYgKCFzZWdtZW50VmFsdWUgfHwgc2VnbWVudFZhbHVlLnN0YXJ0c1dpdGgoUEFHRV9TRUdNRU5UX0tFWSkpIGNvbnRpbnVlXG5cbiAgICAvLyBFbnN1cmUgY2F0Y2hBbGwgYW5kIG9wdGlvbmFsIGNhdGNoYWxsIGFyZSB0dXJuZWQgaW50byBhbiBhcnJheVxuICAgIGNvbnN0IGlzQ2F0Y2hBbGwgPVxuICAgICAgaXNEeW5hbWljUGFyYW1ldGVyICYmIChzZWdtZW50WzJdID09PSAnYycgfHwgc2VnbWVudFsyXSA9PT0gJ29jJylcblxuICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICBwYXJhbXNbc2VnbWVudFswXV0gPSBzZWdtZW50WzFdLnNwbGl0KCcvJylcbiAgICB9IGVsc2UgaWYgKGlzRHluYW1pY1BhcmFtZXRlcikge1xuICAgICAgcGFyYW1zW3NlZ21lbnRbMF1dID0gc2VnbWVudFsxXVxuICAgIH1cblxuICAgIHBhcmFtcyA9IGdldFNlbGVjdGVkUGFyYW1zKHBhcmFsbGVsUm91dGUsIHBhcmFtcylcbiAgfVxuXG4gIHJldHVybiBwYXJhbXNcbn1cbiJdLCJuYW1lcyI6WyJjb21wdXRlQ2hhbmdlZFBhdGgiLCJleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSIsImdldFNlbGVjdGVkUGFyYW1zIiwicmVtb3ZlTGVhZGluZ1NsYXNoIiwic2VnbWVudCIsInNsaWNlIiwic2VnbWVudFRvUGF0aG5hbWUiLCJub3JtYWxpemVTZWdtZW50cyIsInNlZ21lbnRzIiwicmVkdWNlIiwiYWNjIiwiaXNHcm91cFNlZ21lbnQiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIkFycmF5IiwiaXNBcnJheSIsIkRFRkFVTFRfU0VHTUVOVF9LRVkiLCJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsInNvbWUiLCJtIiwic3RhcnRzV2l0aCIsInVuZGVmaW5lZCIsIlBBR0VfU0VHTUVOVF9LRVkiLCJwYXJhbGxlbFJvdXRlcyIsImNoaWxkcmVuUGF0aCIsImNoaWxkcmVuIiwicHVzaCIsImtleSIsInZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyIsImNoaWxkUGF0aCIsImNvbXB1dGVDaGFuZ2VkUGF0aEltcGwiLCJ0cmVlQSIsInRyZWVCIiwic2VnbWVudEEiLCJwYXJhbGxlbFJvdXRlc0EiLCJzZWdtZW50QiIsInBhcmFsbGVsUm91dGVzQiIsIm5vcm1hbGl6ZWRTZWdtZW50QSIsIm5vcm1hbGl6ZWRTZWdtZW50QiIsIm1hdGNoU2VnbWVudCIsInBhcmFsbGVsUm91dGVyS2V5IiwiY2hhbmdlZFBhdGgiLCJzcGxpdCIsImN1cnJlbnRUcmVlIiwicGFyYW1zIiwicGFyYWxsZWxSb3V0ZSIsInZhbHVlcyIsImlzRHluYW1pY1BhcmFtZXRlciIsInNlZ21lbnRWYWx1ZSIsImlzQ2F0Y2hBbGwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js":
/*!*******************************************************************************!*\
!*** ./node_modules/next/dist/client/components/static-generation-bailout.js ***!
\*******************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n StaticGenBailoutError: function() {\n return StaticGenBailoutError;\n },\n isStaticGenBailoutError: function() {\n return isStaticGenBailoutError;\n }\n});\nconst NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT';\nclass StaticGenBailoutError extends Error {\n constructor(...args){\n super(...args), this.code = NEXT_STATIC_GEN_BAILOUT;\n }\n}\nfunction isStaticGenBailoutError(error) {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false;\n }\n return error.code === NEXT_STATIC_GEN_BAILOUT;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=static-generation-bailout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWFBLHFCQUFxQjtlQUFyQkE7O0lBSUdDLHVCQUF1QjtlQUF2QkE7OztBQU5oQixNQUFNQywwQkFBMEI7QUFFekIsTUFBTUYsOEJBQThCRzs7UUFBcEMscUJBQ1dDLElBQUFBLEdBQU9GOztBQUN6QjtBQUVPLFNBQVNELHdCQUNkSSxLQUFjO0lBRWQsSUFBSSxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxDQUFFLFdBQVVBLEtBQUFBLENBQUksRUFBSTtRQUNyRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQSxNQUFNRCxJQUFJLEtBQUtGO0FBQ3hCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCA9ICdORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCdcblxuZXhwb3J0IGNsYXNzIFN0YXRpY0dlbkJhaWxvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGNvZGUgPSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gIGVycm9yOiB1bmtub3duXG4pOiBlcnJvciBpcyBTdGF0aWNHZW5CYWlsb3V0RXJyb3Ige1xuICBpZiAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fCBlcnJvciA9PT0gbnVsbCB8fCAhKCdjb2RlJyBpbiBlcnJvcikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnJvci5jb2RlID09PSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuIl0sIm5hbWVzIjpbIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsImlzU3RhdGljR2VuQmFpbG91dEVycm9yIiwiTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQiLCJFcnJvciIsImNvZGUiLCJlcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/styles/access-error-styles.js":
/*!********************************************************************************!*\
!*** ./node_modules/next/dist/client/components/styles/access-error-styles.js ***!
\********************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"styles\", ({\n enumerable: true,\n get: function() {\n return styles;\n }\n}));\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n desc: {\n display: 'inline-block'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n padding: '0 23px 0 0',\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top',\n lineHeight: '49px'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '49px',\n margin: 0\n }\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=access-error-styles.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0eWxlcy9hY2Nlc3MtZXJyb3Itc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MENBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLFNBQThDO0lBQ3pEQyxPQUFPO1FBQ0wsMEZBQTBGO1FBQzFGQyxZQUNFO1FBQ0ZDLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLGVBQWU7UUFDZkMsWUFBWTtRQUNaQyxnQkFBZ0I7SUFDbEI7SUFFQUMsTUFBTTtRQUNKSixTQUFTO0lBQ1g7SUFFQUssSUFBSTtRQUNGTCxTQUFTO1FBQ1RNLFFBQVE7UUFDUkMsU0FBUztRQUNUQyxVQUFVO1FBQ1ZDLFlBQVk7UUFDWkMsZUFBZTtRQUNmQyxZQUFZO0lBQ2Q7SUFFQUMsSUFBSTtRQUNGSixVQUFVO1FBQ1ZDLFlBQVk7UUFDWkUsWUFBWTtRQUNaTCxRQUFRO0lBQ1Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL3N0eWxlcy9hY2Nlc3MtZXJyb3Itc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBzdHlsZXM6IFJlY29yZDxzdHJpbmcsIFJlYWN0LkNTU1Byb3BlcnRpZXM+ID0ge1xuICBlcnJvcjoge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9ibG9iL21haW4vbW9kZXJuLW5vcm1hbGl6ZS5jc3MjTDM4LUw1MlxuICAgIGZvbnRGYW1pbHk6XG4gICAgICAnc3lzdGVtLXVpLFwiU2Vnb2UgVUlcIixSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIicsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgfSxcblxuICBkZXNjOiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gIH0sXG5cbiAgaDE6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICBtYXJnaW46ICcwIDIwcHggMCAwJyxcbiAgICBwYWRkaW5nOiAnMCAyM3B4IDAgMCcsXG4gICAgZm9udFNpemU6IDI0LFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcbiAgICBsaW5lSGVpZ2h0OiAnNDlweCcsXG4gIH0sXG5cbiAgaDI6IHtcbiAgICBmb250U2l6ZTogMTQsXG4gICAgZm9udFdlaWdodDogNDAwLFxuICAgIGxpbmVIZWlnaHQ6ICc0OXB4JyxcbiAgICBtYXJnaW46IDAsXG4gIH0sXG59XG4iXSwibmFtZXMiOlsic3R5bGVzIiwiZXJyb3IiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJkZXNjIiwiaDEiLCJtYXJnaW4iLCJwYWRkaW5nIiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwidmVydGljYWxBbGlnbiIsImxpbmVIZWlnaHQiLCJoMiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/styles/access-error-styles.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js":
/*!************************************************************************!*\
!*** ./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js ***!
\************************************************************************/
/***/ ((module) => {
"use strict";
eval("\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n RequestCookies: () => RequestCookies,\n ResponseCookies: () => ResponseCookies,\n parseCookie: () => parseCookie,\n parseSetCookie: () => parseSetCookie,\n stringifyCookie: () => stringifyCookie\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/serialize.ts\nfunction stringifyCookie(c) {\n var _a;\n const attrs = [\n \"path\" in c && c.path && `Path=${c.path}`,\n \"expires\" in c && (c.expires || c.expires === 0) && `Expires=${(typeof c.expires === \"number\" ? new Date(c.expires) : c.expires).toUTCString()}`,\n \"maxAge\" in c && typeof c.maxAge === \"number\" && `Max-Age=${c.maxAge}`,\n \"domain\" in c && c.domain && `Domain=${c.domain}`,\n \"secure\" in c && c.secure && \"Secure\",\n \"httpOnly\" in c && c.httpOnly && \"HttpOnly\",\n \"sameSite\" in c && c.sameSite && `SameSite=${c.sameSite}`,\n \"partitioned\" in c && c.partitioned && \"Partitioned\",\n \"priority\" in c && c.priority && `Priority=${c.priority}`\n ].filter(Boolean);\n const stringified = `${c.name}=${encodeURIComponent((_a = c.value) != null ? _a : \"\")}`;\n return attrs.length === 0 ? stringified : `${stringified}; ${attrs.join(\"; \")}`;\n}\nfunction parseCookie(cookie) {\n const map = /* @__PURE__ */ new Map();\n for (const pair of cookie.split(/; */)) {\n if (!pair)\n continue;\n const splitAt = pair.indexOf(\"=\");\n if (splitAt === -1) {\n map.set(pair, \"true\");\n continue;\n }\n const [key, value] = [pair.slice(0, splitAt), pair.slice(splitAt + 1)];\n try {\n map.set(key, decodeURIComponent(value != null ? value : \"true\"));\n } catch {\n }\n }\n return map;\n}\nfunction parseSetCookie(setCookie) {\n if (!setCookie) {\n return void 0;\n }\n const [[name, value], ...attributes] = parseCookie(setCookie);\n const {\n domain,\n expires,\n httponly,\n maxage,\n path,\n samesite,\n secure,\n partitioned,\n priority\n } = Object.fromEntries(\n attributes.map(([key, value2]) => [\n key.toLowerCase().replace(/-/g, \"\"),\n value2\n ])\n );\n const cookie = {\n name,\n value: decodeURIComponent(value),\n domain,\n ...expires && { expires: new Date(expires) },\n ...httponly && { httpOnly: true },\n ...typeof maxage === \"string\" && { maxAge: Number(maxage) },\n path,\n ...samesite && { sameSite: parseSameSite(samesite) },\n ...secure && { secure: true },\n ...priority && { priority: parsePriority(priority) },\n ...partitioned && { partitioned: true }\n };\n return compact(cookie);\n}\nfunction compact(t) {\n const newT = {};\n for (const key in t) {\n if (t[key]) {\n newT[key] = t[key];\n }\n }\n return newT;\n}\nvar SAME_SITE = [\"strict\", \"lax\", \"none\"];\nfunction parseSameSite(string) {\n string = string.toLowerCase();\n return SAME_SITE.includes(string) ? string : void 0;\n}\nvar PRIORITY = [\"low\", \"medium\", \"high\"];\nfunction parsePriority(string) {\n string = string.toLowerCase();\n return PRIORITY.includes(string) ? string : void 0;\n}\nfunction splitCookiesString(cookiesString) {\n if (!cookiesString)\n return [];\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n cookiesSeparatorFound = true;\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\n\n// src/request-cookies.ts\nvar RequestCookies = class {\n constructor(requestHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n this._headers = requestHeaders;\n const header = requestHeaders.get(\"cookie\");\n if (header) {\n const parsed = parseCookie(header);\n for (const [name, value] of parsed) {\n this._parsed.set(name, { name, value });\n }\n }\n }\n [Symbol.iterator]() {\n return this._parsed[Symbol.iterator]();\n }\n /**\n * The amount of cookies received from the client\n */\n get size() {\n return this._parsed.size;\n }\n get(...args) {\n const name = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(name);\n }\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed);\n if (!args.length) {\n return all.map(([_, value]) => value);\n }\n const name = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter(([n]) => n === name).map(([_, value]) => value);\n }\n has(name) {\n return this._parsed.has(name);\n }\n set(...args) {\n const [name, value] = args.length === 1 ? [args[0].name, args[0].value] : args;\n const map = this._parsed;\n map.set(name, { name, value });\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value2]) => stringifyCookie(value2)).join(\"; \")\n );\n return this;\n }\n /**\n * Delete the cookies matching the passed name or names in the request.\n */\n delete(names) {\n const map = this._parsed;\n const result = !Array.isArray(names) ? map.delete(names) : names.map((name) => map.delete(name));\n this._headers.set(\n \"cookie\",\n Array.from(map).map(([_, value]) => stringifyCookie(value)).join(\"; \")\n );\n return result;\n }\n /**\n * Delete all the cookies in the cookies in the request.\n */\n clear() {\n this.delete(Array.from(this._parsed.keys()));\n return this;\n }\n /**\n * Format the cookies in the request as a string for logging\n */\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map((v) => `${v.name}=${encodeURIComponent(v.value)}`).join(\"; \");\n }\n};\n\n// src/response-cookies.ts\nvar ResponseCookies = class {\n constructor(responseHeaders) {\n /** @internal */\n this._parsed = /* @__PURE__ */ new Map();\n var _a, _b, _c;\n this._headers = responseHeaders;\n const setCookie = (_c = (_b = (_a = responseHeaders.getSetCookie) == null ? void 0 : _a.call(responseHeaders)) != null ? _b : responseHeaders.get(\"set-cookie\")) != null ? _c : [];\n const cookieStrings = Array.isArray(setCookie) ? setCookie : splitCookiesString(setCookie);\n for (const cookieString of cookieStrings) {\n const parsed = parseSetCookie(cookieString);\n if (parsed)\n this._parsed.set(parsed.name, parsed);\n }\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-get CookieStore#get} without the Promise.\n */\n get(...args) {\n const key = typeof args[0] === \"string\" ? args[0] : args[0].name;\n return this._parsed.get(key);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-getAll CookieStore#getAll} without the Promise.\n */\n getAll(...args) {\n var _a;\n const all = Array.from(this._parsed.values());\n if (!args.length) {\n return all;\n }\n const key = typeof args[0] === \"string\" ? args[0] : (_a = args[0]) == null ? void 0 : _a.name;\n return all.filter((c) => c.name === key);\n }\n has(name) {\n return this._parsed.has(name);\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-set CookieStore#set} without the Promise.\n */\n set(...args) {\n const [name, value, cookie] = args.length === 1 ? [args[0].name, args[0].value, args[0]] : args;\n const map = this._parsed;\n map.set(name, normalizeCookie({ name, value, ...cookie }));\n replace(map, this._headers);\n return this;\n }\n /**\n * {@link https://wicg.github.io/cookie-store/#CookieStore-delete CookieStore#delete} without the Promise.\n */\n delete(...args) {\n const [name, options] = typeof args[0] === \"string\" ? [args[0]] : [args[0].name, args[0]];\n return this.set({ ...options, name, value: \"\", expires: /* @__PURE__ */ new Date(0) });\n }\n [Symbol.for(\"edge-runtime.inspect.custom\")]() {\n return `ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`;\n }\n toString() {\n return [...this._parsed.values()].map(stringifyCookie).join(\"; \");\n }\n};\nfunction replace(bag, headers) {\n headers.delete(\"set-cookie\");\n for (const [, value] of bag) {\n const serialized = stringifyCookie(value);\n headers.append(\"set-cookie\", serialized);\n }\n}\nfunction normalizeCookie(cookie = { name: \"\", value: \"\" }) {\n if (typeof cookie.expires === \"number\") {\n cookie.expires = new Date(cookie.expires);\n }\n if (cookie.maxAge) {\n cookie.expires = new Date(Date.now() + cookie.maxAge * 1e3);\n }\n if (cookie.path === null || cookie.path === void 0) {\n cookie.path = \"/\";\n }\n return cookie;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (0);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixrQ0FBa0M7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qiw0RkFBNEY7QUFDekg7QUFDQTtBQUNBO0FBQ0Esb0RBQW9ELGtCQUFrQixhQUFhOztBQUVuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLE9BQU87QUFDNUMsbUVBQW1FLGdGQUFnRjtBQUNuSixnRUFBZ0UsU0FBUztBQUN6RSwyQ0FBMkMsU0FBUztBQUNwRDtBQUNBO0FBQ0EsaURBQWlELFdBQVc7QUFDNUQ7QUFDQSxpREFBaUQsV0FBVztBQUM1RDtBQUNBLHlCQUF5QixPQUFPLEdBQUcscURBQXFEO0FBQ3hGLCtDQUErQyxjQUFjLEVBQUUsY0FBYyxHQUFHO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNEJBQTRCO0FBQ2hELHFCQUFxQixnQkFBZ0I7QUFDckMsdUNBQXVDLHdCQUF3QjtBQUMvRDtBQUNBLHFCQUFxQixtQ0FBbUM7QUFDeEQsbUJBQW1CLGNBQWM7QUFDakMscUJBQXFCLG1DQUFtQztBQUN4RCx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsYUFBYTtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixhQUFhO0FBQ2pDO0FBQ0E7QUFDQSw0RUFBNEU7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBFQUEwRTtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGlEQUFpRDtBQUM5RTtBQUNBO0FBQ0Esb0RBQW9ELE9BQU8sR0FBRyw0QkFBNEIsV0FBVztBQUNyRztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSw0RUFBNEU7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxrRkFBa0Y7QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sNEVBQTRFO0FBQ2xGO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLHdCQUF3QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sa0ZBQWtGO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtRUFBbUU7QUFDekY7QUFDQTtBQUNBLDhCQUE4QixpREFBaUQ7QUFDL0U7QUFDQTtBQUNBLG1FQUFtRTtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MscUJBQXFCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sQ0FNTCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9AZWRnZS1ydW50aW1lL2Nvb2tpZXMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xudmFyIF9fZ2V0T3duUHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7XG52YXIgX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbnZhciBfX2V4cG9ydCA9ICh0YXJnZXQsIGFsbCkgPT4ge1xuICBmb3IgKHZhciBuYW1lIGluIGFsbClcbiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pO1xufTtcbnZhciBfX2NvcHlQcm9wcyA9ICh0bywgZnJvbSwgZXhjZXB0LCBkZXNjKSA9PiB7XG4gIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBmcm9tID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBmb3IgKGxldCBrZXkgb2YgX19nZXRPd25Qcm9wTmFtZXMoZnJvbSkpXG4gICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KVxuICAgICAgICBfX2RlZlByb3AodG8sIGtleSwgeyBnZXQ6ICgpID0+IGZyb21ba2V5XSwgZW51bWVyYWJsZTogIShkZXNjID0gX19nZXRPd25Qcm9wRGVzYyhmcm9tLCBrZXkpKSB8fCBkZXNjLmVudW1lcmFibGUgfSk7XG4gIH1cbiAgcmV0dXJuIHRvO1xufTtcbnZhciBfX3RvQ29tbW9uSlMgPSAobW9kKSA9PiBfX2NvcHlQcm9wcyhfX2RlZlByb3Aoe30sIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pLCBtb2QpO1xuXG4vLyBzcmMvaW5kZXgudHNcbnZhciBzcmNfZXhwb3J0cyA9IHt9O1xuX19leHBvcnQoc3JjX2V4cG9ydHMsIHtcbiAgUmVxdWVzdENvb2tpZXM6ICgpID0+IFJlcXVlc3RDb29raWVzLFxuICBSZXNwb25zZUNvb2tpZXM6ICgpID0+IFJlc3BvbnNlQ29va2llcyxcbiAgcGFyc2VDb29raWU6ICgpID0+IHBhcnNlQ29va2llLFxuICBwYXJzZVNldENvb2tpZTogKCkgPT4gcGFyc2VTZXRDb29raWUsXG4gIHN0cmluZ2lmeUNvb2tpZTogKCkgPT4gc3RyaW5naWZ5Q29va2llXG59KTtcbm1vZHVsZS5leHBvcnRzID0gX190b0NvbW1vbkpTKHNyY19leHBvcnRzKTtcblxuLy8gc3JjL3NlcmlhbGl6ZS50c1xuZnVuY3Rpb24gc3RyaW5naWZ5Q29va2llKGMpIHtcbiAgdmFyIF9hO1xuICBjb25zdCBhdHRycyA9IFtcbiAgICBcInBhdGhcIiBpbiBjICYmIGMucGF0aCAmJiBgUGF0aD0ke2MucGF0aH1gLFxuICAgIFwiZXhwaXJlc1wiIGluIGMgJiYgKGMuZXhwaXJlcyB8fCBjLmV4cGlyZXMgPT09IDApICYmIGBFeHBpcmVzPSR7KHR5cGVvZiBjLmV4cGlyZXMgPT09IFwibnVtYmVyXCIgPyBuZXcgRGF0ZShjLmV4cGlyZXMpIDogYy5leHBpcmVzKS50b1VUQ1N0cmluZygpfWAsXG4gICAgXCJtYXhBZ2VcIiBpbiBjICYmIHR5cGVvZiBjLm1heEFnZSA9PT0gXCJudW1iZXJcIiAmJiBgTWF4LUFnZT0ke2MubWF4QWdlfWAsXG4gICAgXCJkb21haW5cIiBpbiBjICYmIGMuZG9tYWluICYmIGBEb21haW49JHtjLmRvbWFpbn1gLFxuICAgIFwic2VjdXJlXCIgaW4gYyAmJiBjLnNlY3VyZSAmJiBcIlNlY3VyZVwiLFxuICAgIFwiaHR0cE9ubHlcIiBpbiBjICYmIGMuaHR0cE9ubHkgJiYgXCJIdHRwT25seVwiLFxuICAgIFwic2FtZVNpdGVcIiBpbiBjICYmIGMuc2FtZVNpdGUgJiYgYFNhbWVTaXRlPSR7Yy5zYW1lU2l0ZX1gLFxuICAgIFwicGFydGl0aW9uZWRcIiBpbiBjICYmIGMucGFydGl0aW9uZWQgJiYgXCJQYXJ0aXRpb25lZFwiLFxuICAgIFwicHJpb3JpdHlcIiBpbiBjICYmIGMucHJpb3JpdHkgJiYgYFByaW9yaXR5PSR7Yy5wcmlvcml0eX1gXG4gIF0uZmlsdGVyKEJvb2xlYW4pO1xuICBjb25zdCBzdHJpbmdpZmllZCA9IGAke2MubmFtZX09JHtlbmNvZGVVUklDb21wb25lbnQoKF9hID0gYy52YWx1ZSkgIT0gbnVsbCA/IF9hIDogXCJcIil9YDtcbiAgcmV0dXJuIGF0dHJzLmxlbmd0aCA9PT0gMCA/IHN0cmluZ2lmaWVkIDogYCR7c3RyaW5naWZpZWR9OyAke2F0dHJzLmpvaW4oXCI7IFwiKX1gO1xufVxuZnVuY3Rpb24gcGFyc2VDb29raWUoY29va2llKSB7XG4gIGNvbnN0IG1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7XG4gIGZvciAoY29uc3QgcGFpciBvZiBjb29raWUuc3BsaXQoLzsgKi8pKSB7XG4gICAgaWYgKCFwYWlyKVxuICAgICAgY29udGludWU7XG4gICAgY29uc3Qgc3BsaXRBdCA9IHBhaXIuaW5kZXhPZihcIj1cIik7XG4gICAgaWYgKHNwbGl0QXQgPT09IC0xKSB7XG4gICAgICBtYXAuc2V0KHBhaXIsIFwidHJ1ZVwiKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCBba2V5LCB2YWx1ZV0gPSBbcGFpci5zbGljZSgwLCBzcGxpdEF0KSwgcGFpci5zbGljZShzcGxpdEF0ICsgMSldO1xuICAgIHRyeSB7XG4gICAgICBtYXAuc2V0KGtleSwgZGVjb2RlVVJJQ29tcG9uZW50KHZhbHVlICE9IG51bGwgPyB2YWx1ZSA6IFwidHJ1ZVwiKSk7XG4gICAgfSBjYXRjaCB7XG4gICAgfVxuICB9XG4gIHJldHVybiBtYXA7XG59XG5mdW5jdGlvbiBwYXJzZVNldENvb2tpZShzZXRDb29raWUpIHtcbiAgaWYgKCFzZXRDb29raWUpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIGNvbnN0IFtbbmFtZSwgdmFsdWVdLCAuLi5hdHRyaWJ1dGVzXSA9IHBhcnNlQ29va2llKHNldENvb2tpZSk7XG4gIGNvbnN0IHtcbiAgICBkb21haW4sXG4gICAgZXhwaXJlcyxcbiAgICBodHRwb25seSxcbiAgICBtYXhhZ2UsXG4gICAgcGF0aCxcbiAgICBzYW1lc2l0ZSxcbiAgICBzZWN1cmUsXG4gICAgcGFydGl0aW9uZWQsXG4gICAgcHJpb3JpdHlcbiAgfSA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBhdHRyaWJ1dGVzLm1hcCgoW2tleSwgdmFsdWUyXSkgPT4gW1xuICAgICAga2V5LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvLS9nLCBcIlwiKSxcbiAgICAgIHZhbHVlMlxuICAgIF0pXG4gICk7XG4gIGNvbnN0IGNvb2tpZSA9IHtcbiAgICBuYW1lLFxuICAgIHZhbHVlOiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpLFxuICAgIGRvbWFpbixcbiAgICAuLi5leHBpcmVzICYmIHsgZXhwaXJlczogbmV3IERhdGUoZXhwaXJlcykgfSxcbiAgICAuLi5odHRwb25seSAmJiB7IGh0dHBPbmx5OiB0cnVlIH0sXG4gICAgLi4udHlwZW9mIG1heGFnZSA9PT0gXCJzdHJpbmdcIiAmJiB7IG1heEFnZTogTnVtYmVyKG1heGFnZSkgfSxcbiAgICBwYXRoLFxuICAgIC4uLnNhbWVzaXRlICYmIHsgc2FtZVNpdGU6IHBhcnNlU2FtZVNpdGUoc2FtZXNpdGUpIH0sXG4gICAgLi4uc2VjdXJlICYmIHsgc2VjdXJlOiB0cnVlIH0sXG4gICAgLi4ucHJpb3JpdHkgJiYgeyBwcmlvcml0eTogcGFyc2VQcmlvcml0eShwcmlvcml0eSkgfSxcbiAgICAuLi5wYXJ0aXRpb25lZCAmJiB7IHBhcnRpdGlvbmVkOiB0cnVlIH1cbiAgfTtcbiAgcmV0dXJuIGNvbXBhY3QoY29va2llKTtcbn1cbmZ1bmN0aW9uIGNvbXBhY3QodCkge1xuICBjb25zdCBuZXdUID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHQpIHtcbiAgICBpZiAodFtrZXldKSB7XG4gICAgICBuZXdUW2tleV0gPSB0W2tleV07XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXdUO1xufVxudmFyIFNBTUVfU0lURSA9IFtcInN0cmljdFwiLCBcImxheFwiLCBcIm5vbmVcIl07XG5mdW5jdGlvbiBwYXJzZVNhbWVTaXRlKHN0cmluZykge1xuICBzdHJpbmcgPSBzdHJpbmcudG9Mb3dlckNhc2UoKTtcbiAgcmV0dXJuIFNBTUVfU0lURS5pbmNsdWRlcyhzdHJpbmcpID8gc3RyaW5nIDogdm9pZCAwO1xufVxudmFyIFBSSU9SSVRZID0gW1wibG93XCIsIFwibWVkaXVtXCIsIFwiaGlnaFwiXTtcbmZ1bmN0aW9uIHBhcnNlUHJpb3JpdHkoc3RyaW5nKSB7XG4gIHN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gUFJJT1JJVFkuaW5jbHVkZXMoc3RyaW5nKSA/IHN0cmluZyA6IHZvaWQgMDtcbn1cbmZ1bmN0aW9uIHNwbGl0Q29va2llc1N0cmluZyhjb29raWVzU3RyaW5nKSB7XG4gIGlmICghY29va2llc1N0cmluZylcbiAgICByZXR1cm4gW107XG4gIHZhciBjb29raWVzU3RyaW5ncyA9IFtdO1xuICB2YXIgcG9zID0gMDtcbiAgdmFyIHN0YXJ0O1xuICB2YXIgY2g7XG4gIHZhciBsYXN0Q29tbWE7XG4gIHZhciBuZXh0U3RhcnQ7XG4gIHZhciBjb29raWVzU2VwYXJhdG9yRm91bmQ7XG4gIGZ1bmN0aW9uIHNraXBXaGl0ZXNwYWNlKCkge1xuICAgIHdoaWxlIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiAvXFxzLy50ZXN0KGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykpKSB7XG4gICAgICBwb3MgKz0gMTtcbiAgICB9XG4gICAgcmV0dXJuIHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoO1xuICB9XG4gIGZ1bmN0aW9uIG5vdFNwZWNpYWxDaGFyKCkge1xuICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICByZXR1cm4gY2ggIT09IFwiPVwiICYmIGNoICE9PSBcIjtcIiAmJiBjaCAhPT0gXCIsXCI7XG4gIH1cbiAgd2hpbGUgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoKSB7XG4gICAgc3RhcnQgPSBwb3M7XG4gICAgY29va2llc1NlcGFyYXRvckZvdW5kID0gZmFsc2U7XG4gICAgd2hpbGUgKHNraXBXaGl0ZXNwYWNlKCkpIHtcbiAgICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICAgIGlmIChjaCA9PT0gXCIsXCIpIHtcbiAgICAgICAgbGFzdENvbW1hID0gcG9zO1xuICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgc2tpcFdoaXRlc3BhY2UoKTtcbiAgICAgICAgbmV4dFN0YXJ0ID0gcG9zO1xuICAgICAgICB3aGlsZSAocG9zIDwgY29va2llc1N0cmluZy5sZW5ndGggJiYgbm90U3BlY2lhbENoYXIoKSkge1xuICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiBjb29raWVzU3RyaW5nLmNoYXJBdChwb3MpID09PSBcIj1cIikge1xuICAgICAgICAgIGNvb2tpZXNTZXBhcmF0b3JGb3VuZCA9IHRydWU7XG4gICAgICAgICAgcG9zID0gbmV4dFN0YXJ0O1xuICAgICAgICAgIGNvb2tpZXNTdHJpbmdzLnB1c2goY29va2llc1N0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGxhc3RDb21tYSkpO1xuICAgICAgICAgIHN0YXJ0ID0gcG9zO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBvcyA9IGxhc3RDb21tYSArIDE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvcyArPSAxO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWNvb2tpZXNTZXBhcmF0b3JGb3VuZCB8fCBwb3MgPj0gY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICAgIGNvb2tpZXNTdHJpbmdzLnB1c2goY29va2llc1N0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGNvb2tpZXNTdHJpbmcubGVuZ3RoKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBjb29raWVzU3RyaW5ncztcbn1cblxuLy8gc3JjL3JlcXVlc3QtY29va2llcy50c1xudmFyIFJlcXVlc3RDb29raWVzID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcihyZXF1ZXN0SGVhZGVycykge1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLl9wYXJzZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpO1xuICAgIHRoaXMuX2hlYWRlcnMgPSByZXF1ZXN0SGVhZGVycztcbiAgICBjb25zdCBoZWFkZXIgPSByZXF1ZXN0SGVhZGVycy5nZXQoXCJjb29raWVcIik7XG4gICAgaWYgKGhlYWRlcikge1xuICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VDb29raWUoaGVhZGVyKTtcbiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBwYXJzZWQpIHtcbiAgICAgICAgdGhpcy5fcGFyc2VkLnNldChuYW1lLCB7IG5hbWUsIHZhbHVlIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBbU3ltYm9sLml0ZXJhdG9yXSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgfVxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBjb29raWVzIHJlY2VpdmVkIGZyb20gdGhlIGNsaWVudFxuICAgKi9cbiAgZ2V0IHNpemUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5zaXplO1xuICB9XG4gIGdldCguLi5hcmdzKSB7XG4gICAgY29uc3QgbmFtZSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gYXJnc1swXSA6IGFyZ3NbMF0ubmFtZTtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmdldChuYW1lKTtcbiAgfVxuICBnZXRBbGwoLi4uYXJncykge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBhbGwgPSBBcnJheS5mcm9tKHRoaXMuX3BhcnNlZCk7XG4gICAgaWYgKCFhcmdzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGFsbC5tYXAoKFtfLCB2YWx1ZV0pID0+IHZhbHVlKTtcbiAgICB9XG4gICAgY29uc3QgbmFtZSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gYXJnc1swXSA6IChfYSA9IGFyZ3NbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfYS5uYW1lO1xuICAgIHJldHVybiBhbGwuZmlsdGVyKChbbl0pID0+IG4gPT09IG5hbWUpLm1hcCgoW18sIHZhbHVlXSkgPT4gdmFsdWUpO1xuICB9XG4gIGhhcyhuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlZC5oYXMobmFtZSk7XG4gIH1cbiAgc2V0KC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbbmFtZSwgdmFsdWVdID0gYXJncy5sZW5ndGggPT09IDEgPyBbYXJnc1swXS5uYW1lLCBhcmdzWzBdLnZhbHVlXSA6IGFyZ3M7XG4gICAgY29uc3QgbWFwID0gdGhpcy5fcGFyc2VkO1xuICAgIG1hcC5zZXQobmFtZSwgeyBuYW1lLCB2YWx1ZSB9KTtcbiAgICB0aGlzLl9oZWFkZXJzLnNldChcbiAgICAgIFwiY29va2llXCIsXG4gICAgICBBcnJheS5mcm9tKG1hcCkubWFwKChbXywgdmFsdWUyXSkgPT4gc3RyaW5naWZ5Q29va2llKHZhbHVlMikpLmpvaW4oXCI7IFwiKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgLyoqXG4gICAqIERlbGV0ZSB0aGUgY29va2llcyBtYXRjaGluZyB0aGUgcGFzc2VkIG5hbWUgb3IgbmFtZXMgaW4gdGhlIHJlcXVlc3QuXG4gICAqL1xuICBkZWxldGUobmFtZXMpIHtcbiAgICBjb25zdCBtYXAgPSB0aGlzLl9wYXJzZWQ7XG4gICAgY29uc3QgcmVzdWx0ID0gIUFycmF5LmlzQXJyYXkobmFtZXMpID8gbWFwLmRlbGV0ZShuYW1lcykgOiBuYW1lcy5tYXAoKG5hbWUpID0+IG1hcC5kZWxldGUobmFtZSkpO1xuICAgIHRoaXMuX2hlYWRlcnMuc2V0KFxuICAgICAgXCJjb29raWVcIixcbiAgICAgIEFycmF5LmZyb20obWFwKS5tYXAoKFtfLCB2YWx1ZV0pID0+IHN0cmluZ2lmeUNvb2tpZSh2YWx1ZSkpLmpvaW4oXCI7IFwiKVxuICAgICk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICAvKipcbiAgICogRGVsZXRlIGFsbCB0aGUgY29va2llcyBpbiB0aGUgY29va2llcyBpbiB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuZGVsZXRlKEFycmF5LmZyb20odGhpcy5fcGFyc2VkLmtleXMoKSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIC8qKlxuICAgKiBGb3JtYXQgdGhlIGNvb2tpZXMgaW4gdGhlIHJlcXVlc3QgYXMgYSBzdHJpbmcgZm9yIGxvZ2dpbmdcbiAgICovXG4gIFtTeW1ib2wuZm9yKFwiZWRnZS1ydW50aW1lLmluc3BlY3QuY3VzdG9tXCIpXSgpIHtcbiAgICByZXR1cm4gYFJlcXVlc3RDb29raWVzICR7SlNPTi5zdHJpbmdpZnkoT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuX3BhcnNlZCkpfWA7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9wYXJzZWQudmFsdWVzKCldLm1hcCgodikgPT4gYCR7di5uYW1lfT0ke2VuY29kZVVSSUNvbXBvbmVudCh2LnZhbHVlKX1gKS5qb2luKFwiOyBcIik7XG4gIH1cbn07XG5cbi8vIHNyYy9yZXNwb25zZS1jb29raWVzLnRzXG52YXIgUmVzcG9uc2VDb29raWVzID0gY2xhc3Mge1xuICBjb25zdHJ1Y3RvcihyZXNwb25zZUhlYWRlcnMpIHtcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5fcGFyc2VkID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICB0aGlzLl9oZWFkZXJzID0gcmVzcG9uc2VIZWFkZXJzO1xuICAgIGNvbnN0IHNldENvb2tpZSA9IChfYyA9IChfYiA9IChfYSA9IHJlc3BvbnNlSGVhZGVycy5nZXRTZXRDb29raWUpID09IG51bGwgPyB2b2lkIDAgOiBfYS5jYWxsKHJlc3BvbnNlSGVhZGVycykpICE9IG51bGwgPyBfYiA6IHJlc3BvbnNlSGVhZGVycy5nZXQoXCJzZXQtY29va2llXCIpKSAhPSBudWxsID8gX2MgOiBbXTtcbiAgICBjb25zdCBjb29raWVTdHJpbmdzID0gQXJyYXkuaXNBcnJheShzZXRDb29raWUpID8gc2V0Q29va2llIDogc3BsaXRDb29raWVzU3RyaW5nKHNldENvb2tpZSk7XG4gICAgZm9yIChjb25zdCBjb29raWVTdHJpbmcgb2YgY29va2llU3RyaW5ncykge1xuICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VTZXRDb29raWUoY29va2llU3RyaW5nKTtcbiAgICAgIGlmIChwYXJzZWQpXG4gICAgICAgIHRoaXMuX3BhcnNlZC5zZXQocGFyc2VkLm5hbWUsIHBhcnNlZCk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLWdldCBDb29raWVTdG9yZSNnZXR9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBnZXQoLi4uYXJncykge1xuICAgIGNvbnN0IGtleSA9IHR5cGVvZiBhcmdzWzBdID09PSBcInN0cmluZ1wiID8gYXJnc1swXSA6IGFyZ3NbMF0ubmFtZTtcbiAgICByZXR1cm4gdGhpcy5fcGFyc2VkLmdldChrZXkpO1xuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLWdldEFsbCBDb29raWVTdG9yZSNnZXRBbGx9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBnZXRBbGwoLi4uYXJncykge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCBhbGwgPSBBcnJheS5mcm9tKHRoaXMuX3BhcnNlZC52YWx1ZXMoKSk7XG4gICAgaWYgKCFhcmdzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGFsbDtcbiAgICB9XG4gICAgY29uc3Qga2V5ID0gdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgPyBhcmdzWzBdIDogKF9hID0gYXJnc1swXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hLm5hbWU7XG4gICAgcmV0dXJuIGFsbC5maWx0ZXIoKGMpID0+IGMubmFtZSA9PT0ga2V5KTtcbiAgfVxuICBoYXMobmFtZSkge1xuICAgIHJldHVybiB0aGlzLl9wYXJzZWQuaGFzKG5hbWUpO1xuICB9XG4gIC8qKlxuICAgKiB7QGxpbmsgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb29raWUtc3RvcmUvI0Nvb2tpZVN0b3JlLXNldCBDb29raWVTdG9yZSNzZXR9IHdpdGhvdXQgdGhlIFByb21pc2UuXG4gICAqL1xuICBzZXQoLi4uYXJncykge1xuICAgIGNvbnN0IFtuYW1lLCB2YWx1ZSwgY29va2llXSA9IGFyZ3MubGVuZ3RoID09PSAxID8gW2FyZ3NbMF0ubmFtZSwgYXJnc1swXS52YWx1ZSwgYXJnc1swXV0gOiBhcmdzO1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuX3BhcnNlZDtcbiAgICBtYXAuc2V0KG5hbWUsIG5vcm1hbGl6ZUNvb2tpZSh7IG5hbWUsIHZhbHVlLCAuLi5jb29raWUgfSkpO1xuICAgIHJlcGxhY2UobWFwLCB0aGlzLl9oZWFkZXJzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICAvKipcbiAgICoge0BsaW5rIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vY29va2llLXN0b3JlLyNDb29raWVTdG9yZS1kZWxldGUgQ29va2llU3RvcmUjZGVsZXRlfSB3aXRob3V0IHRoZSBQcm9taXNlLlxuICAgKi9cbiAgZGVsZXRlKC4uLmFyZ3MpIHtcbiAgICBjb25zdCBbbmFtZSwgb3B0aW9uc10gPSB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IFthcmdzWzBdXSA6IFthcmdzWzBdLm5hbWUsIGFyZ3NbMF1dO1xuICAgIHJldHVybiB0aGlzLnNldCh7IC4uLm9wdGlvbnMsIG5hbWUsIHZhbHVlOiBcIlwiLCBleHBpcmVzOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoMCkgfSk7XG4gIH1cbiAgW1N5bWJvbC5mb3IoXCJlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b21cIildKCkge1xuICAgIHJldHVybiBgUmVzcG9uc2VDb29raWVzICR7SlNPTi5zdHJpbmdpZnkoT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuX3BhcnNlZCkpfWA7XG4gIH1cbiAgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9wYXJzZWQudmFsdWVzKCldLm1hcChzdHJpbmdpZnlDb29raWUpLmpvaW4oXCI7IFwiKTtcbiAgfVxufTtcbmZ1bmN0aW9uIHJlcGxhY2UoYmFnLCBoZWFkZXJzKSB7XG4gIGhlYWRlcnMuZGVsZXRlKFwic2V0LWNvb2tpZVwiKTtcbiAgZm9yIChjb25zdCBbLCB2YWx1ZV0gb2YgYmFnKSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZCA9IHN0cmluZ2lmeUNvb2tpZSh2YWx1ZSk7XG4gICAgaGVhZGVycy5hcHBlbmQoXCJzZXQtY29va2llXCIsIHNlcmlhbGl6ZWQpO1xuICB9XG59XG5mdW5jdGlvbiBub3JtYWxpemVDb29raWUoY29va2llID0geyBuYW1lOiBcIlwiLCB2YWx1ZTogXCJcIiB9KSB7XG4gIGlmICh0eXBlb2YgY29va2llLmV4cGlyZXMgPT09IFwibnVtYmVyXCIpIHtcbiAgICBjb29raWUuZXhwaXJlcyA9IG5ldyBEYXRlKGNvb2tpZS5leHBpcmVzKTtcbiAgfVxuICBpZiAoY29va2llLm1heEFnZSkge1xuICAgIGNvb2tpZS5leHBpcmVzID0gbmV3IERhdGUoRGF0ZS5ub3coKSArIGNvb2tpZS5tYXhBZ2UgKiAxZTMpO1xuICB9XG4gIGlmIChjb29raWUucGF0aCA9PT0gbnVsbCB8fCBjb29raWUucGF0aCA9PT0gdm9pZCAwKSB7XG4gICAgY29va2llLnBhdGggPSBcIi9cIjtcbiAgfVxuICByZXR1cm4gY29va2llO1xufVxuLy8gQW5ub3RhdGUgdGhlIENvbW1vbkpTIGV4cG9ydCBuYW1lcyBmb3IgRVNNIGltcG9ydCBpbiBub2RlOlxuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gIFJlcXVlc3RDb29raWVzLFxuICBSZXNwb25zZUNvb2tpZXMsXG4gIHBhcnNlQ29va2llLFxuICBwYXJzZVNldENvb2tpZSxcbiAgc3RyaW5naWZ5Q29va2llXG59KTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js":
/*!*********************************************************************!*\
!*** ./node_modules/next/dist/compiled/@opentelemetry/api/index.js ***!
\*********************************************************************/
/***/ ((module) => {
eval("(()=>{\"use strict\";var e={491:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ContextAPI=void 0;const n=r(223);const a=r(172);const o=r(930);const i=\"context\";const c=new n.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(i)||c}disable(){this._getContextManager().disable();(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.ContextAPI=ContextAPI},930:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagAPI=void 0;const n=r(56);const a=r(912);const o=r(957);const i=r(172);const c=\"diag\";class DiagAPI{constructor(){function _logProxy(e){return function(...t){const r=(0,i.getGlobal)(\"diag\");if(!r)return;return r[e](...t)}}const e=this;const setLogger=(t,r={logLevel:o.DiagLogLevel.INFO})=>{var n,c,s;if(t===e){const t=new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");e.error((n=t.stack)!==null&&n!==void 0?n:t.message);return false}if(typeof r===\"number\"){r={logLevel:r}}const u=(0,i.getGlobal)(\"diag\");const l=(0,a.createLogLevelDiagLogger)((c=r.logLevel)!==null&&c!==void 0?c:o.DiagLogLevel.INFO,t);if(u&&!r.suppressOverrideMessage){const e=(s=(new Error).stack)!==null&&s!==void 0?s:\"<failed to generate stacktrace>\";u.warn(`Current logger will be overwritten from ${e}`);l.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,i.registerGlobal)(\"diag\",l,e,true)};e.setLogger=setLogger;e.disable=()=>{(0,i.unregisterGlobal)(c,e)};e.createComponentLogger=e=>new n.DiagComponentLogger(e);e.verbose=_logProxy(\"verbose\");e.debug=_logProxy(\"debug\");e.info=_logProxy(\"info\");e.warn=_logProxy(\"warn\");e.error=_logProxy(\"error\")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}t.DiagAPI=DiagAPI},653:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.MetricsAPI=void 0;const n=r(660);const a=r(172);const o=r(930);const i=\"metrics\";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(i)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.MetricsAPI=MetricsAPI},181:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.PropagationAPI=void 0;const n=r(172);const a=r(874);const o=r(194);const i=r(277);const c=r(369);const s=r(930);const u=\"propagation\";const l=new a.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=c.createBaggage;this.getBaggage=i.getBaggage;this.getActiveBaggage=i.getActiveBaggage;this.setBaggage=i.setBaggage;this.deleteBaggage=i.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,s.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,s.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||l}}t.PropagationAPI=PropagationAPI},997:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceAPI=void 0;const n=r(172);const a=r(846);const o=r(139);const i=r(607);const c=r(930);const s=\"trace\";class TraceAPI{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider;this.wrapSpanContext=o.wrapSpanContext;this.isSpanContextValid=o.isSpanContextValid;this.deleteSpan=i.deleteSpan;this.getSpan=i.getSpan;this.getActiveSpan=i.getActiveSpan;this.getSpanContext=i.getSpanContext;this.setSpan=i.setSpan;this.setSpanContext=i.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(e){const t=(0,n.registerGlobal)(s,this._proxyTracerProvider,c.DiagAPI.instance());if(t){this._proxyTracerProvider.setDelegate(e)}return t}getTracerProvider(){return(0,n.getGlobal)(s)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(s,c.DiagAPI.instance());this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=TraceAPI},277:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;const n=r(491);const a=r(780);const o=(0,a.createContextKey)(\"OpenTelemetry Baggage Key\");function getBaggage(e){return e.getValue(o)||undefined}t.getBaggage=getBaggage;function getActiveBaggage(){return getBaggage(n.ContextAPI.getInstance().active())}t.getActiveBaggage=getActiveBaggage;function setBaggage(e,t){return e.setValue(o,t)}t.setBaggage=setBaggage;function deleteBaggage(e){return e.deleteValue(o)}t.deleteBaggage=deleteBaggage},993:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.BaggageImpl=void 0;class BaggageImpl{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){const t=this._entries.get(e);if(!t){return undefined}return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map((([e,t])=>[e,t]))}setEntry(e,t){const r=new BaggageImpl(this._entries);r._entries.set(e,t);return r}removeEntry(e){const t=new BaggageImpl(this._entries);t._entries.delete(e);return t}removeEntries(...e){const t=new BaggageImpl(this._entries);for(const r of e){t._entries.delete(r)}return t}clear(){return new BaggageImpl}}t.BaggageImpl=BaggageImpl},830:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataSymbol=void 0;t.baggageEntryMetadataSymbol=Symbol(\"BaggageEntryMetadata\")},369:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataFromString=t.createBaggage=void 0;const n=r(930);const a=r(993);const o=r(830);const i=n.DiagAPI.instance();function createBaggage(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))}t.createBaggage=createBaggage;function baggageEntryMetadataFromString(e){if(typeof e!==\"string\"){i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);e=\"\"}return{__TYPE__:o.baggageEntryMetadataSymbol,toString(){return e}}}t.baggageEntryMetadataFromString=baggageEntryMetadataFromString},67:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.context=void 0;const n=r(491);t.context=n.ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopContextManager=void 0;const n=r(780);class NoopContextManager{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=NoopContextManager},780:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ROOT_CONTEXT=t.createContextKey=void 0;function createContextKey(e){return Symbol.for(e)}t.createContextKey=createContextKey;class BaseContext{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map;t.getValue=e=>t._currentContext.get(e);t.setValue=(e,r)=>{const n=new BaseContext(t._currentContext);n._currentContext.set(e,r);return n};t.deleteValue=e=>{const r=new BaseContext(t._currentContext);r._currentContext.delete(e);return r}}}t.ROOT_CONTEXT=new BaseContext},506:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.diag=void 0;const n=r(930);t.diag=n.DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagComponentLogger=void 0;const n=r(172);class DiagComponentLogger{constructor(e){this._namespace=e.namespace||\"DiagComponentLogger\"}debug(...e){return logProxy(\"debug\",this._namespace,e)}error(...e){return logProxy(\"error\",this._namespace,e)}info(...e){return logProxy(\"info\",this._namespace,e)}warn(...e){return logProxy(\"warn\",this._namespace,e)}verbose(...e){return logProxy(\"verbose\",this._namespace,e)}}t.DiagComponentLogger=DiagComponentLogger;function logProxy(e,t,r){const a=(0,n.getGlobal)(\"diag\");if(!a){return}r.unshift(t);return a[e](...r)}},972:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagConsoleLogger=void 0;const r=[{n:\"error\",c:\"error\"},{n:\"warn\",c:\"warn\"},{n:\"info\",c:\"info\"},{n:\"debug\",c:\"debug\"},{n:\"verbose\",c:\"trace\"}];class DiagConsoleLogger{constructor(){function _consoleFunc(e){return function(...t){if(console){let r=console[e];if(typeof r!==\"function\"){r=console.log}if(typeof r===\"function\"){return r.apply(console,t)}}}}for(let e=0;e<r.length;e++){this[r[e].n]=_consoleFunc(r[e].c)}}}t.DiagConsoleLogger=DiagConsoleLogger},912:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createLogLevelDiagLogger=void 0;const n=r(957);function createLogLevelDiagLogger(e,t){if(e<n.DiagLogLevel.NONE){e=n.DiagLogLevel.NONE}else if(e>n.DiagLogLevel.ALL){e=n.DiagLogLevel.ALL}t=t||{};function _filterFunc(r,n){const a=t[r];if(typeof a===\"function\"&&e>=n){return a.bind(t)}return function(){}}return{error:_filterFunc(\"error\",n.DiagLogLevel.ERROR),warn:_filterFunc(\"warn\",n.DiagLogLevel.WARN),info:_filterFunc(\"info\",n.DiagLogLevel.INFO),debug:_filterFunc(\"debug\",n.DiagLogLevel.DEBUG),verbose:_filterFunc(\"verbose\",n.DiagLogLevel.VERBOSE)}}t.createLogLevelDiagLogger=createLogLevelDiagLogger},957:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagLogLevel=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"ERROR\"]=30]=\"ERROR\";e[e[\"WARN\"]=50]=\"WARN\";e[e[\"INFO\"]=60]=\"INFO\";e[e[\"DEBUG\"]=70]=\"DEBUG\";e[e[\"VERBOSE\"]=80]=\"VERBOSE\";e[e[\"ALL\"]=9999]=\"ALL\"})(r=t.DiagLogLevel||(t.DiagLogLevel={}))},172:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;const n=r(200);const a=r(521);const o=r(130);const i=a.VERSION.split(\".\")[0];const c=Symbol.for(`opentelemetry.js.api.${i}`);const s=n._globalThis;function registerGlobal(e,t,r,n=false){var o;const i=s[c]=(o=s[c])!==null&&o!==void 0?o:{version:a.VERSION};if(!n&&i[e]){const t=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);r.error(t.stack||t.message);return false}if(i.version!==a.VERSION){const t=new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);r.error(t.stack||t.message);return false}i[e]=t;r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);return true}t.registerGlobal=registerGlobal;function getGlobal(e){var t,r;const n=(t=s[c])===null||t===void 0?void 0:t.version;if(!n||!(0,o.isCompatible)(n)){return}return(r=s[c])===null||r===void 0?void 0:r[e]}t.getGlobal=getGlobal;function unregisterGlobal(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);const r=s[c];if(r){delete r[e]}}t.unregisterGlobal=unregisterGlobal},130:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.isCompatible=t._makeCompatibilityCheck=void 0;const n=r(521);const a=/^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){const t=new Set([e]);const r=new Set;const n=e.match(a);if(!n){return()=>false}const o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(o.prerelease!=null){return function isExactmatch(t){return t===e}}function _reject(e){r.add(e);return false}function _accept(e){t.add(e);return true}return function isCompatible(e){if(t.has(e)){return true}if(r.has(e)){return false}const n=e.match(a);if(!n){return _reject(e)}const i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null){return _reject(e)}if(o.major!==i.major){return _reject(e)}if(o.major===0){if(o.minor===i.minor&&o.patch<=i.patch){return _accept(e)}return _reject(e)}if(o.minor<=i.minor){return _accept(e)}return _reject(e)}}t._makeCompatibilityCheck=_makeCompatibilityCheck;t.isCompatible=_makeCompatibilityCheck(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.metrics=void 0;const n=r(653);t.metrics=n.MetricsAPI.getInstance()},901:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ValueType=void 0;var r;(function(e){e[e[\"INT\"]=0]=\"INT\";e[e[\"DOUBLE\"]=1]=\"DOUBLE\"})(r=t.ValueType||(t.ValueType={}))},102:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class NoopMeter{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=NoopMeter;class NoopMetric{}t.NoopMetric=NoopMetric;class NoopCounterMetric extends NoopMetric{add(e,t){}}t.NoopCounterMetric=NoopCounterMetric;class NoopUpDownCounterMetric extends NoopMetric{add(e,t){}}t.NoopUpDownCounterMetric=NoopUpDownCounterMetric;class NoopHistogramMetric extends NoopMetric{record(e,t){}}t.NoopHistogramMetric=NoopHistogramMetric;class NoopObservableMetric{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=NoopObservableMetric;class NoopObservableCounterMetric extends NoopObservableMetric{}t.NoopObservableCounterMetric=NoopObservableCounterMetric;class NoopObservableGaugeMetric extends NoopObservableMetric{}t.NoopObservableGaugeMetric=NoopObservableGaugeMetric;class NoopObservableUpDownCounterMetric extends NoopObservableMetric{}t.NoopObservableUpDownCounterMetric=NoopObservableUpDownCounterMetric;t.NOOP_METER=new NoopMeter;t.NOOP_COUNTER_METRIC=new NoopCounterMetric;t.NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric;t.NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric;t.NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric;t.NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric;t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return t.NOOP_METER}t.createNoopMeter=createNoopMeter},660:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;const n=r(102);class NoopMeterProvider{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=NoopMeterProvider;t.NOOP_METER_PROVIDER=new NoopMeterProvider},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(46),t)},651:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t._globalThis=void 0;t._globalThis=typeof globalThis===\"object\"?globalThis:global},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.propagation=void 0;const n=r(181);t.propagation=n.PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTextMapPropagator=void 0;class NoopTextMapPropagator{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=NoopTextMapPropagator},194:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.defaultTextMapSetter=t.defaultTextMapGetter=void 0;t.defaultTextMapGetter={get(e,t){if(e==null){return undefined}return e[t]},keys(e){if(e==null){return[]}return Object.keys(e)}};t.defaultTextMapSetter={set(e,t,r){if(e==null){return}e[t]=r}}},845:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.trace=void 0;const n=r(997);t.trace=n.TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NonRecordingSpan=void 0;const n=r(476);class NonRecordingSpan{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return false}recordException(e,t){}}t.NonRecordingSpan=NonRecordingSpan},614:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracer=void 0;const n=r(491);const a=r(607);const o=r(403);const i=r(139);const c=n.ContextAPI.getInstance();class NoopTracer{startSpan(e,t,r=c.active()){const n=Boolean(t===null||t===void 0?void 0:t.root);if(n){return new o.NonRecordingSpan}const s=r&&(0,a.getSpanContext)(r);if(isSpanContext(s)&&(0,i.isSpanContextValid)(s)){return new o.NonRecordingSpan(s)}else{return new o.NonRecordingSpan}}startActiveSpan(e,t,r,n){let o;let i;let s;if(arguments.length<2){return}else if(arguments.length===2){s=t}else if(arguments.length===3){o=t;s=r}else{o=t;i=r;s=n}const u=i!==null&&i!==void 0?i:c.active();const l=this.startSpan(e,o,u);const g=(0,a.setSpan)(u,l);return c.with(g,s,undefined,l)}}t.NoopTracer=NoopTracer;function isSpanContext(e){return typeof e===\"object\"&&typeof e[\"spanId\"]===\"string\"&&typeof e[\"traceId\"]===\"string\"&&typeof e[\"traceFlags\"]===\"number\"}},124:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracerProvider=void 0;const n=r(614);class NoopTracerProvider{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=NoopTracerProvider},125:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracer=void 0;const n=r(614);const a=new n.NoopTracer;class ProxyTracer{constructor(e,t,r,n){this._provider=e;this.name=t;this.version=r;this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){const a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate){return this._delegate}const e=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!e){return a}this._delegate=e;return this._delegate}}t.ProxyTracer=ProxyTracer},846:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracerProvider=void 0;const n=r(125);const a=r(124);const o=new a.NoopTracerProvider;class ProxyTracerProvider{getTracer(e,t,r){var a;return(a=this.getDelegateTracer(e,t,r))!==null&&a!==void 0?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return(n=this._delegate)===null||n===void 0?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=ProxyTracerProvider},996:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SamplingDecision=void 0;var r;(function(e){e[e[\"NOT_RECORD\"]=0]=\"NOT_RECORD\";e[e[\"RECORD\"]=1]=\"RECORD\";e[e[\"RECORD_AND_SAMPLED\"]=2]=\"RECORD_AND_SAMPLED\"})(r=t.SamplingDecision||(t.SamplingDecision={}))},607:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;const n=r(780);const a=r(403);const o=r(491);const i=(0,n.createContextKey)(\"OpenTelemetry Context Key SPAN\");function getSpan(e){return e.getValue(i)||undefined}t.getSpan=getSpan;function getActiveSpan(){return getSpan(o.ContextAPI.getInstance().active())}t.getActiveSpan=getActiveSpan;function setSpan(e,t){return e.setValue(i,t)}t.setSpan=setSpan;function deleteSpan(e){return e.deleteValue(i)}t.deleteSpan=deleteSpan;function setSpanContext(e,t){return setSpan(e,new a.NonRecordingSpan(t))}t.setSpanContext=setSpanContext;function getSpanContext(e){var t;return(t=getSpan(e))===null||t===void 0?void 0:t.spanContext()}t.getSpanContext=getSpanContext},325:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceStateImpl=void 0;const n=r(564);const a=32;const o=512;const i=\",\";const c=\"=\";class TraceStateImpl{constructor(e){this._internalState=new Map;if(e)this._parse(e)}set(e,t){const r=this._clone();if(r._internalState.has(e)){r._internalState.delete(e)}r._internalState.set(e,t);return r}unset(e){const t=this._clone();t._internalState.delete(e);return t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce(((e,t)=>{e.push(t+c+this.get(t));return e}),[]).join(i)}_parse(e){if(e.length>o)return;this._internalState=e.split(i).reverse().reduce(((e,t)=>{const r=t.trim();const a=r.indexOf(c);if(a!==-1){const o=r.slice(0,a);const i=r.slice(a+1,t.length);if((0,n.validateKey)(o)&&(0,n.validateValue)(i)){e.set(o,i)}else{}}return e}),new Map);if(this._internalState.size>a){this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,a))}}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){const e=new TraceStateImpl;e._internalState=new Map(this._internalState);return e}}t.TraceStateImpl=TraceStateImpl},564:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.validateValue=t.validateKey=void 0;const r=\"[_0-9a-z-*/]\";const n=`[a-z]${r}{0,255}`;const a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;const o=new RegExp(`^(?:${n}|${a})$`);const i=/^[ -~]{0,255}[!-~]$/;const c=/,|=/;function validateKey(e){return o.test(e)}t.validateKey=validateKey;function validateValue(e){return i.test(e)&&!c.test(e)}t.validateValue=validateValue},98:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createTraceState=void 0;const n=r(325);function createTraceState(e){return new n.TraceStateImpl(e)}t.createTraceState=createTraceState},476:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;const n=r(475);t.INVALID_SPANID=\"0000000000000000\";t.INVALID_TRACEID=\"00000000000000000000000000000000\";t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanKind=void 0;var r;(function(e){e[e[\"INTERNAL\"]=0]=\"INTERNAL\";e[e[\"SERVER\"]=1]=\"SERVER\";e[e[\"CLIENT\"]=2]=\"CLIENT\";e[e[\"PRODUCER\"]=3]=\"PRODUCER\";e[e[\"CONSUMER\"]=4]=\"CONSUMER\"})(r=t.SpanKind||(t.SpanKind={}))},139:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;const n=r(476);const a=r(403);const o=/^([0-9a-f]{32})$/i;const i=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return o.test(e)&&e!==n.INVALID_TRACEID}t.isValidTraceId=isValidTraceId;function isValidSpanId(e){return i.test(e)&&e!==n.INVALID_SPANID}t.isValidSpanId=isValidSpanId;function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}t.isSpanContextValid=isSpanContextValid;function wrapSpanContext(e){return new a.NonRecordingSpan(e)}t.wrapSpanContext=wrapSpanContext},847:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanStatusCode=void 0;var r;(function(e){e[e[\"UNSET\"]=0]=\"UNSET\";e[e[\"OK\"]=1]=\"OK\";e[e[\"ERROR\"]=2]=\"ERROR\"})(r=t.SpanStatusCode||(t.SpanStatusCode={}))},475:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceFlags=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"SAMPLED\"]=1]=\"SAMPLED\"})(r=t.TraceFlags||(t.TraceFlags={}))},521:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.VERSION=void 0;t.VERSION=\"1.6.0\"}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={exports:{}};var o=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:true});e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var t=__nccwpck_require__(369);Object.defineProperty(e,\"baggageEntryMetadataFromString\",{enumerable:true,get:function(){return t.baggageEntryMetadataFromString}});var n=__nccwpck_require__(780);Object.defineProperty(e,\"createContextKey\",{enumerable:true,get:function(){return n.createContextKey}});Object.defineProperty(e,\"ROOT_CONTEXT\",{enumerable:true,get:function(){return n.ROOT_CONTEXT}});var a=__nccwpck_require__(972);Object.defineProperty(e,\"DiagConsoleLogger\",{enumerable:true,get:function(){return a.DiagConsoleLogger}});var o=__nccwpck_require__(957);Object.defineProperty(e,\"DiagLogLevel\",{enumerable:true,get:function(){return o.DiagLogLevel}});var i=__nccwpck_require__(102);Object.defineProperty(e,\"createNoopMeter\",{enumerable:true,get:function(){return i.createNoopMeter}});var c=__nccwpck_require__(901);Object.defineProperty(e,\"ValueType\",{enumerable:true,get:function(){return c.ValueType}});var s=__nccwpck_require__(194);Object.defineProperty(e,\"defaultTextMapGetter\",{enumerable:true,get:function(){return s.defaultTextMapGetter}});Object.defineProperty(e,\"defaultTextMapSetter\",{enumerable:true,get:function(){return s.defaultTextMapSetter}});var u=__nccwpck_require__(125);Object.defineProperty(e,\"ProxyTracer\",{enumerable:true,get:function(){return u.ProxyTracer}});var l=__nccwpck_require__(846);Object.defineProperty(e,\"ProxyTracerProvider\",{enumerable:true,get:function(){return l.ProxyTracerProvider}});var g=__nccwpck_require__(996);Object.defineProperty(e,\"SamplingDecision\",{enumerable:true,get:function(){return g.SamplingDecision}});var p=__nccwpck_require__(357);Object.defineProperty(e,\"SpanKind\",{enumerable:true,get:function(){return p.SpanKind}});var d=__nccwpck_require__(847);Object.defineProperty(e,\"SpanStatusCode\",{enumerable:true,get:function(){return d.SpanStatusCode}});var _=__nccwpck_require__(475);Object.defineProperty(e,\"TraceFlags\",{enumerable:true,get:function(){return _.TraceFlags}});var f=__nccwpck_require__(98);Object.defineProperty(e,\"createTraceState\",{enumerable:true,get:function(){return f.createTraceState}});var b=__nccwpck_require__(139);Object.defineProperty(e,\"isSpanContextValid\",{enumerable:true,get:function(){return b.isSpanContextValid}});Object.defineProperty(e,\"isValidTraceId\",{enumerable:true,get:function(){return b.isValidTraceId}});Object.defineProperty(e,\"isValidSpanId\",{enumerable:true,get:function(){return b.isValidSpanId}});var v=__nccwpck_require__(476);Object.defineProperty(e,\"INVALID_SPANID\",{enumerable:true,get:function(){return v.INVALID_SPANID}});Object.defineProperty(e,\"INVALID_TRACEID\",{enumerable:true,get:function(){return v.INVALID_TRACEID}});Object.defineProperty(e,\"INVALID_SPAN_CONTEXT\",{enumerable:true,get:function(){return v.INVALID_SPAN_CONTEXT}});const O=__nccwpck_require__(67);Object.defineProperty(e,\"context\",{enumerable:true,get:function(){return O.context}});const P=__nccwpck_require__(506);Object.defineProperty(e,\"diag\",{enumerable:true,get:function(){return P.diag}});const N=__nccwpck_require__(886);Object.defineProperty(e,\"metrics\",{enumerable:true,get:function(){return N.metrics}});const S=__nccwpck_require__(939);Object.defineProperty(e,\"propagation\",{enumerable:true,get:function(){return S.propagation}});const C=__nccwpck_require__(845);Object.defineProperty(e,\"trace\",{enumerable:true,get:function(){return C.trace}});e[\"default\"]={context:O.context,diag:P.diag,metrics:N.metrics,propagation:S.propagation,trace:C.trace}})();module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BvcGVudGVsZW1ldHJ5L2FwaS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsT0FBTyxjQUFjLHNDQUFzQyxXQUFXLEVBQUUsb0JBQW9CLGVBQWUsZUFBZSxlQUFlLGtCQUFrQixpQ0FBaUMsaUJBQWlCLGVBQWUscUJBQXFCLG9CQUFvQiw4QkFBOEIsc0JBQXNCLDJCQUEyQixxREFBcUQsU0FBUywwQ0FBMEMsaUJBQWlCLGtEQUFrRCxVQUFVLDJDQUEyQyxxQkFBcUIsNEJBQTRCLFVBQVUsb0NBQW9DLGdEQUFnRCx3QkFBd0IsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLGlCQUFpQixjQUFjLGVBQWUsZUFBZSxlQUFlLGVBQWUsY0FBYyxjQUFjLHNCQUFzQixzQkFBc0IsZ0NBQWdDLGFBQWEsbUJBQW1CLGFBQWEsc0JBQXNCLDZCQUE2QixJQUFJLFVBQVUsVUFBVSx3SkFBd0osb0RBQW9ELGFBQWEsd0JBQXdCLEdBQUcsWUFBWSxnQ0FBZ0Msa0dBQWtHLGtDQUFrQyxxRkFBcUYsa0RBQWtELEVBQUUsR0FBRyxvRUFBb0UsRUFBRSxHQUFHLDZDQUE2QyxzQkFBc0IsZUFBZSw2QkFBNkIsd0RBQXdELCtCQUErQiwyQkFBMkIseUJBQXlCLHlCQUF5QiwyQkFBMkIsa0JBQWtCLG9CQUFvQiwyQkFBMkIsdUJBQXVCLGtCQUFrQixlQUFlLHNDQUFzQyxXQUFXLEVBQUUsb0JBQW9CLGVBQWUsZUFBZSxlQUFlLGtCQUFrQixpQkFBaUIsZUFBZSxxQkFBcUIsb0JBQW9CLDhCQUE4QixzQkFBc0IsMEJBQTBCLHFEQUFxRCxtQkFBbUIsZ0RBQWdELGdCQUFnQiwrQ0FBK0MsVUFBVSxnREFBZ0Qsd0JBQXdCLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSx3QkFBd0IsZUFBZSxlQUFlLGVBQWUsZUFBZSxlQUFlLGVBQWUsc0JBQXNCLG9DQUFvQyxxQkFBcUIsY0FBYyxtQ0FBbUMsNkJBQTZCLHlDQUF5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RSxnQ0FBZ0MsbUNBQW1DLCtCQUErQixrQkFBa0IsRUFBRSxpQ0FBaUMsZ0NBQWdDLCtCQUErQixlQUFlLEVBQUUsaUNBQWlDLG1DQUFtQywrQkFBK0Isa0JBQWtCLEVBQUUsaUNBQWlDLHVDQUF1QywrQkFBK0Isc0JBQXNCLEVBQUUsaUNBQWlDLGlDQUFpQywrQkFBK0IsZ0JBQWdCLEVBQUUsY0FBYyx5RkFBeUYsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXs0OTE6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Db250ZXh0QVBJPXZvaWQgMDtjb25zdCBuPXIoMjIzKTtjb25zdCBhPXIoMTcyKTtjb25zdCBvPXIoOTMwKTtjb25zdCBpPVwiY29udGV4dFwiO2NvbnN0IGM9bmV3IG4uTm9vcENvbnRleHRNYW5hZ2VyO2NsYXNzIENvbnRleHRBUEl7Y29uc3RydWN0b3IoKXt9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgQ29udGV4dEFQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsQ29udGV4dE1hbmFnZXIoZSl7cmV0dXJuKDAsYS5yZWdpc3Rlckdsb2JhbCkoaSxlLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX1hY3RpdmUoKXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5hY3RpdmUoKX13aXRoKGUsdCxyLC4uLm4pe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLndpdGgoZSx0LHIsLi4ubil9YmluZChlLHQpe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmJpbmQoZSx0KX1fZ2V0Q29udGV4dE1hbmFnZXIoKXtyZXR1cm4oMCxhLmdldEdsb2JhbCkoaSl8fGN9ZGlzYWJsZSgpe3RoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuZGlzYWJsZSgpOygwLGEudW5yZWdpc3Rlckdsb2JhbCkoaSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9fXQuQ29udGV4dEFQST1Db250ZXh0QVBJfSw5MzA6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnQVBJPXZvaWQgMDtjb25zdCBuPXIoNTYpO2NvbnN0IGE9cig5MTIpO2NvbnN0IG89cig5NTcpO2NvbnN0IGk9cigxNzIpO2NvbnN0IGM9XCJkaWFnXCI7Y2xhc3MgRGlhZ0FQSXtjb25zdHJ1Y3Rvcigpe2Z1bmN0aW9uIF9sb2dQcm94eShlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7Y29uc3Qgcj0oMCxpLmdldEdsb2JhbCkoXCJkaWFnXCIpO2lmKCFyKXJldHVybjtyZXR1cm4gcltlXSguLi50KX19Y29uc3QgZT10aGlzO2NvbnN0IHNldExvZ2dlcj0odCxyPXtsb2dMZXZlbDpvLkRpYWdMb2dMZXZlbC5JTkZPfSk9Pnt2YXIgbixjLHM7aWYodD09PWUpe2NvbnN0IHQ9bmV3IEVycm9yKFwiQ2Fubm90IHVzZSBkaWFnIGFzIHRoZSBsb2dnZXIgZm9yIGl0c2VsZi4gUGxlYXNlIHVzZSBhIERpYWdMb2dnZXIgaW1wbGVtZW50YXRpb24gbGlrZSBDb25zb2xlRGlhZ0xvZ2dlciBvciBhIGN1c3RvbSBpbXBsZW1lbnRhdGlvblwiKTtlLmVycm9yKChuPXQuc3RhY2spIT09bnVsbCYmbiE9PXZvaWQgMD9uOnQubWVzc2FnZSk7cmV0dXJuIGZhbHNlfWlmKHR5cGVvZiByPT09XCJudW1iZXJcIil7cj17bG9nTGV2ZWw6cn19Y29uc3QgdT0oMCxpLmdldEdsb2JhbCkoXCJkaWFnXCIpO2NvbnN0IGw9KDAsYS5jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXIpKChjPXIubG9nTGV2ZWwpIT09bnVsbCYmYyE9PXZvaWQgMD9jOm8uRGlhZ0xvZ0xldmVsLklORk8sdCk7aWYodSYmIXIuc3VwcHJlc3NPdmVycmlkZU1lc3NhZ2Upe2NvbnN0IGU9KHM9KG5ldyBFcnJvcikuc3RhY2spIT09bnVsbCYmcyE9PXZvaWQgMD9zOlwiPGZhaWxlZCB0byBnZW5lcmF0ZSBzdGFja3RyYWNlPlwiO3Uud2FybihgQ3VycmVudCBsb2dnZXIgd2lsbCBiZSBvdmVyd3JpdHRlbiBmcm9tICR7ZX1gKTtsLndhcm4oYEN1cnJlbnQgbG9nZ2VyIHdpbGwgb3ZlcndyaXRlIG9uZSBhbHJlYWR5IHJlZ2lzdGVyZWQgZnJvbSAke2V9YCl9cmV0dXJuKDAsaS5yZWdpc3Rlckdsb2JhbCkoXCJkaWFnXCIsbCxlLHRydWUpfTtlLnNldExvZ2dlcj1zZXRMb2dnZXI7ZS5kaXNhYmxlPSgpPT57KDAsaS51bnJlZ2lzdGVyR2xvYmFsKShjLGUpfTtlLmNyZWF0ZUNvbXBvbmVudExvZ2dlcj1lPT5uZXcgbi5EaWFnQ29tcG9uZW50TG9nZ2VyKGUpO2UudmVyYm9zZT1fbG9nUHJveHkoXCJ2ZXJib3NlXCIpO2UuZGVidWc9X2xvZ1Byb3h5KFwiZGVidWdcIik7ZS5pbmZvPV9sb2dQcm94eShcImluZm9cIik7ZS53YXJuPV9sb2dQcm94eShcIndhcm5cIik7ZS5lcnJvcj1fbG9nUHJveHkoXCJlcnJvclwiKX1zdGF0aWMgaW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBEaWFnQVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX19dC5EaWFnQVBJPURpYWdBUEl9LDY1MzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk1ldHJpY3NBUEk9dm9pZCAwO2NvbnN0IG49cig2NjApO2NvbnN0IGE9cigxNzIpO2NvbnN0IG89cig5MzApO2NvbnN0IGk9XCJtZXRyaWNzXCI7Y2xhc3MgTWV0cmljc0FQSXtjb25zdHJ1Y3Rvcigpe31zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBNZXRyaWNzQVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxNZXRlclByb3ZpZGVyKGUpe3JldHVybigwLGEucmVnaXN0ZXJHbG9iYWwpKGksZSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9Z2V0TWV0ZXJQcm92aWRlcigpe3JldHVybigwLGEuZ2V0R2xvYmFsKShpKXx8bi5OT09QX01FVEVSX1BST1ZJREVSfWdldE1ldGVyKGUsdCxyKXtyZXR1cm4gdGhpcy5nZXRNZXRlclByb3ZpZGVyKCkuZ2V0TWV0ZXIoZSx0LHIpfWRpc2FibGUoKXsoMCxhLnVucmVnaXN0ZXJHbG9iYWwpKGksby5EaWFnQVBJLmluc3RhbmNlKCkpfX10Lk1ldHJpY3NBUEk9TWV0cmljc0FQSX0sMTgxOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuUHJvcGFnYXRpb25BUEk9dm9pZCAwO2NvbnN0IG49cigxNzIpO2NvbnN0IGE9cig4NzQpO2NvbnN0IG89cigxOTQpO2NvbnN0IGk9cigyNzcpO2NvbnN0IGM9cigzNjkpO2NvbnN0IHM9cig5MzApO2NvbnN0IHU9XCJwcm9wYWdhdGlvblwiO2NvbnN0IGw9bmV3IGEuTm9vcFRleHRNYXBQcm9wYWdhdG9yO2NsYXNzIFByb3BhZ2F0aW9uQVBJe2NvbnN0cnVjdG9yKCl7dGhpcy5jcmVhdGVCYWdnYWdlPWMuY3JlYXRlQmFnZ2FnZTt0aGlzLmdldEJhZ2dhZ2U9aS5nZXRCYWdnYWdlO3RoaXMuZ2V0QWN0aXZlQmFnZ2FnZT1pLmdldEFjdGl2ZUJhZ2dhZ2U7dGhpcy5zZXRCYWdnYWdlPWkuc2V0QmFnZ2FnZTt0aGlzLmRlbGV0ZUJhZ2dhZ2U9aS5kZWxldGVCYWdnYWdlfXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IFByb3BhZ2F0aW9uQVBJfXJldHVybiB0aGlzLl9pbnN0YW5jZX1zZXRHbG9iYWxQcm9wYWdhdG9yKGUpe3JldHVybigwLG4ucmVnaXN0ZXJHbG9iYWwpKHUsZSxzLkRpYWdBUEkuaW5zdGFuY2UoKSl9aW5qZWN0KGUsdCxyPW8uZGVmYXVsdFRleHRNYXBTZXR0ZXIpe3JldHVybiB0aGlzLl9nZXRHbG9iYWxQcm9wYWdhdG9yKCkuaW5qZWN0KGUsdCxyKX1leHRyYWN0KGUsdCxyPW8uZGVmYXVsdFRleHRNYXBHZXR0ZXIpe3JldHVybiB0aGlzLl9nZXRHbG9iYWxQcm9wYWdhdG9yKCkuZXh0cmFjdChlLHQscil9ZmllbGRzKCl7cmV0dXJuIHRoaXMuX2dldEdsb2JhbFByb3BhZ2F0b3IoKS5maWVsZHMoKX1kaXNhYmxlKCl7KDAsbi51bnJlZ2lzdGVyR2xvYmFsKSh1LHMuRGlhZ0FQSS5pbnN0YW5jZSgpKX1fZ2V0R2xvYmFsUHJvcGFnYXRvcigpe3JldHVybigwLG4uZ2V0R2xvYmFsKSh1KXx8bH19dC5Qcm9wYWdhdGlvbkFQST1Qcm9wYWdhdGlvbkFQSX0sOTk3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVHJhY2VBUEk9dm9pZCAwO2NvbnN0IG49cigxNzIpO2NvbnN0IGE9cig4NDYpO2NvbnN0IG89cigxMzkpO2NvbnN0IGk9cig2MDcpO2NvbnN0IGM9cig5MzApO2NvbnN0IHM9XCJ0cmFjZVwiO2NsYXNzIFRyYWNlQVBJe2NvbnN0cnVjdG9yKCl7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcj1uZXcgYS5Qcm94eVRyYWNlclByb3ZpZGVyO3RoaXMud3JhcFNwYW5Db250ZXh0PW8ud3JhcFNwYW5Db250ZXh0O3RoaXMuaXNTcGFuQ29udGV4dFZhbGlkPW8uaXNTcGFuQ29udGV4dFZhbGlkO3RoaXMuZGVsZXRlU3Bhbj1pLmRlbGV0ZVNwYW47dGhpcy5nZXRTcGFuPWkuZ2V0U3Bhbjt0aGlzLmdldEFjdGl2ZVNwYW49aS5nZXRBY3RpdmVTcGFuO3RoaXMuZ2V0U3BhbkNvbnRleHQ9aS5nZXRTcGFuQ29udGV4dDt0aGlzLnNldFNwYW49aS5zZXRTcGFuO3RoaXMuc2V0U3BhbkNvbnRleHQ9aS5zZXRTcGFuQ29udGV4dH1zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBUcmFjZUFQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsVHJhY2VyUHJvdmlkZXIoZSl7Y29uc3QgdD0oMCxuLnJlZ2lzdGVyR2xvYmFsKShzLHRoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXIsYy5EaWFnQVBJLmluc3RhbmNlKCkpO2lmKHQpe3RoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXIuc2V0RGVsZWdhdGUoZSl9cmV0dXJuIHR9Z2V0VHJhY2VyUHJvdmlkZXIoKXtyZXR1cm4oMCxuLmdldEdsb2JhbCkocyl8fHRoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXJ9Z2V0VHJhY2VyKGUsdCl7cmV0dXJuIHRoaXMuZ2V0VHJhY2VyUHJvdmlkZXIoKS5nZXRUcmFjZXIoZSx0KX1kaXNhYmxlKCl7KDAsbi51bnJlZ2lzdGVyR2xvYmFsKShzLGMuRGlhZ0FQSS5pbnN0YW5jZSgpKTt0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyPW5ldyBhLlByb3h5VHJhY2VyUHJvdmlkZXJ9fXQuVHJhY2VBUEk9VHJhY2VBUEl9LDI3NzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmRlbGV0ZUJhZ2dhZ2U9dC5zZXRCYWdnYWdlPXQuZ2V0QWN0aXZlQmFnZ2FnZT10LmdldEJhZ2dhZ2U9dm9pZCAwO2NvbnN0IG49cig0OTEpO2NvbnN0IGE9cig3ODApO2NvbnN0IG89KDAsYS5jcmVhdGVDb250ZXh0S2V5KShcIk9wZW5UZWxlbWV0cnkgQmFnZ2FnZSBLZXlcIik7ZnVuY3Rpb24gZ2V0QmFnZ2FnZShlKXtyZXR1cm4gZS5nZXRWYWx1ZShvKXx8dW5kZWZpbmVkfXQuZ2V0QmFnZ2FnZT1nZXRCYWdnYWdlO2Z1bmN0aW9uIGdldEFjdGl2ZUJhZ2dhZ2UoKXtyZXR1cm4gZ2V0QmFnZ2FnZShuLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKS5hY3RpdmUoKSl9dC5nZXRBY3RpdmVCYWdnYWdlPWdldEFjdGl2ZUJhZ2dhZ2U7ZnVuY3Rpb24gc2V0QmFnZ2FnZShlLHQpe3JldHVybiBlLnNldFZhbHVlKG8sdCl9dC5zZXRCYWdnYWdlPXNldEJhZ2dhZ2U7ZnVuY3Rpb24gZGVsZXRlQmFnZ2FnZShlKXtyZXR1cm4gZS5kZWxldGVWYWx1ZShvKX10LmRlbGV0ZUJhZ2dhZ2U9ZGVsZXRlQmFnZ2FnZX0sOTkzOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkJhZ2dhZ2VJbXBsPXZvaWQgMDtjbGFzcyBCYWdnYWdlSW1wbHtjb25zdHJ1Y3RvcihlKXt0aGlzLl9lbnRyaWVzPWU/bmV3IE1hcChlKTpuZXcgTWFwfWdldEVudHJ5KGUpe2NvbnN0IHQ9dGhpcy5fZW50cmllcy5nZXQoZSk7aWYoIXQpe3JldHVybiB1bmRlZmluZWR9cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sdCl9Z2V0QWxsRW50cmllcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2VudHJpZXMuZW50cmllcygpKS5tYXAoKChbZSx0XSk9PltlLHRdKSl9c2V0RW50cnkoZSx0KXtjb25zdCByPW5ldyBCYWdnYWdlSW1wbCh0aGlzLl9lbnRyaWVzKTtyLl9lbnRyaWVzLnNldChlLHQpO3JldHVybiByfXJlbW92ZUVudHJ5KGUpe2NvbnN0IHQ9bmV3IEJhZ2dhZ2VJbXBsKHRoaXMuX2VudHJpZXMpO3QuX2VudHJpZXMuZGVsZXRlKGUpO3JldHVybiB0fXJlbW92ZUVudHJpZXMoLi4uZSl7Y29uc3QgdD1uZXcgQmFnZ2FnZUltcGwodGhpcy5fZW50cmllcyk7Zm9yKGNvbnN0IHIgb2YgZSl7dC5fZW50cmllcy5kZWxldGUocil9cmV0dXJuIHR9Y2xlYXIoKXtyZXR1cm4gbmV3IEJhZ2dhZ2VJbXBsfX10LkJhZ2dhZ2VJbXBsPUJhZ2dhZ2VJbXBsfSw4MzA6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuYmFnZ2FnZUVudHJ5TWV0YWRhdGFTeW1ib2w9dm9pZCAwO3QuYmFnZ2FnZUVudHJ5TWV0YWRhdGFTeW1ib2w9U3ltYm9sKFwiQmFnZ2FnZUVudHJ5TWV0YWRhdGFcIil9LDM2OTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZz10LmNyZWF0ZUJhZ2dhZ2U9dm9pZCAwO2NvbnN0IG49cig5MzApO2NvbnN0IGE9cig5OTMpO2NvbnN0IG89cig4MzApO2NvbnN0IGk9bi5EaWFnQVBJLmluc3RhbmNlKCk7ZnVuY3Rpb24gY3JlYXRlQmFnZ2FnZShlPXt9KXtyZXR1cm4gbmV3IGEuQmFnZ2FnZUltcGwobmV3IE1hcChPYmplY3QuZW50cmllcyhlKSkpfXQuY3JlYXRlQmFnZ2FnZT1jcmVhdGVCYWdnYWdlO2Z1bmN0aW9uIGJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZyhlKXtpZih0eXBlb2YgZSE9PVwic3RyaW5nXCIpe2kuZXJyb3IoYENhbm5vdCBjcmVhdGUgYmFnZ2FnZSBtZXRhZGF0YSBmcm9tIHVua25vd24gdHlwZTogJHt0eXBlb2YgZX1gKTtlPVwiXCJ9cmV0dXJue19fVFlQRV9fOm8uYmFnZ2FnZUVudHJ5TWV0YWRhdGFTeW1ib2wsdG9TdHJpbmcoKXtyZXR1cm4gZX19fXQuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nPWJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ30sNjc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5jb250ZXh0PXZvaWQgMDtjb25zdCBuPXIoNDkxKTt0LmNvbnRleHQ9bi5Db250ZXh0QVBJLmdldEluc3RhbmNlKCl9LDIyMzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BDb250ZXh0TWFuYWdlcj12b2lkIDA7Y29uc3Qgbj1yKDc4MCk7Y2xhc3MgTm9vcENvbnRleHRNYW5hZ2Vye2FjdGl2ZSgpe3JldHVybiBuLlJPT1RfQ09OVEVYVH13aXRoKGUsdCxyLC4uLm4pe3JldHVybiB0LmNhbGwociwuLi5uKX1iaW5kKGUsdCl7cmV0dXJuIHR9ZW5hYmxlKCl7cmV0dXJuIHRoaXN9ZGlzYWJsZSgpe3JldHVybiB0aGlzfX10Lk5vb3BDb250ZXh0TWFuYWdlcj1Ob29wQ29udGV4dE1hbmFnZXJ9LDc4MDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5ST09UX0NPTlRFWFQ9dC5jcmVhdGVDb250ZXh0S2V5PXZvaWQgMDtmdW5jdGlvbiBjcmVhdGVDb250ZXh0S2V5KGUpe3JldHVybiBTeW1ib2wuZm9yKGUpfXQuY3JlYXRlQ29udGV4dEtleT1jcmVhdGVDb250ZXh0S2V5O2NsYXNzIEJhc2VDb250ZXh0e2NvbnN0cnVjdG9yKGUpe2NvbnN0IHQ9dGhpczt0Ll9jdXJyZW50Q29udGV4dD1lP25ldyBNYXAoZSk6bmV3IE1hcDt0LmdldFZhbHVlPWU9PnQuX2N1cnJlbnRDb250ZXh0LmdldChlKTt0LnNldFZhbHVlPShlLHIpPT57Y29uc3Qgbj1uZXcgQmFzZUNvbnRleHQodC5fY3VycmVudENvbnRleHQpO24uX2N1cnJlbnRDb250ZXh0LnNldChlLHIpO3JldHVybiBufTt0LmRlbGV0ZVZhbHVlPWU9Pntjb25zdCByPW5ldyBCYXNlQ29udGV4dCh0Ll9jdXJyZW50Q29udGV4dCk7ci5fY3VycmVudENvbnRleHQuZGVsZXRlKGUpO3JldHVybiByfX19dC5ST09UX0NPTlRFWFQ9bmV3IEJhc2VDb250ZXh0fSw1MDY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5kaWFnPXZvaWQgMDtjb25zdCBuPXIoOTMwKTt0LmRpYWc9bi5EaWFnQVBJLmluc3RhbmNlKCl9LDU2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0NvbXBvbmVudExvZ2dlcj12b2lkIDA7Y29uc3Qgbj1yKDE3Mik7Y2xhc3MgRGlhZ0NvbXBvbmVudExvZ2dlcntjb25zdHJ1Y3RvcihlKXt0aGlzLl9uYW1lc3BhY2U9ZS5uYW1lc3BhY2V8fFwiRGlhZ0NvbXBvbmVudExvZ2dlclwifWRlYnVnKC4uLmUpe3JldHVybiBsb2dQcm94eShcImRlYnVnXCIsdGhpcy5fbmFtZXNwYWNlLGUpfWVycm9yKC4uLmUpe3JldHVybiBsb2dQcm94eShcImVycm9yXCIsdGhpcy5fbmFtZXNwYWNlLGUpfWluZm8oLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwiaW5mb1wiLHRoaXMuX25hbWVzcGFjZSxlKX13YXJuKC4uLmUpe3JldHVybiBsb2dQcm94eShcIndhcm5cIix0aGlzLl9uYW1lc3BhY2UsZSl9dmVyYm9zZSguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJ2ZXJib3NlXCIsdGhpcy5fbmFtZXNwYWNlLGUpfX10LkRpYWdDb21wb25lbnRMb2dnZXI9RGlhZ0NvbXBvbmVudExvZ2dlcjtmdW5jdGlvbiBsb2dQcm94eShlLHQscil7Y29uc3QgYT0oMCxuLmdldEdsb2JhbCkoXCJkaWFnXCIpO2lmKCFhKXtyZXR1cm59ci51bnNoaWZ0KHQpO3JldHVybiBhW2VdKC4uLnIpfX0sOTcyOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdDb25zb2xlTG9nZ2VyPXZvaWQgMDtjb25zdCByPVt7bjpcImVycm9yXCIsYzpcImVycm9yXCJ9LHtuOlwid2FyblwiLGM6XCJ3YXJuXCJ9LHtuOlwiaW5mb1wiLGM6XCJpbmZvXCJ9LHtuOlwiZGVidWdcIixjOlwiZGVidWdcIn0se246XCJ2ZXJib3NlXCIsYzpcInRyYWNlXCJ9XTtjbGFzcyBEaWFnQ29uc29sZUxvZ2dlcntjb25zdHJ1Y3Rvcigpe2Z1bmN0aW9uIF9jb25zb2xlRnVuYyhlKXtyZXR1cm4gZnVuY3Rpb24oLi4udCl7aWYoY29uc29sZSl7bGV0IHI9Y29uc29sZVtlXTtpZih0eXBlb2YgciE9PVwiZnVuY3Rpb25cIil7cj1jb25zb2xlLmxvZ31pZih0eXBlb2Ygcj09PVwiZnVuY3Rpb25cIil7cmV0dXJuIHIuYXBwbHkoY29uc29sZSx0KX19fX1mb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKyl7dGhpc1tyW2VdLm5dPV9jb25zb2xlRnVuYyhyW2VdLmMpfX19dC5EaWFnQ29uc29sZUxvZ2dlcj1EaWFnQ29uc29sZUxvZ2dlcn0sOTEyOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyPXZvaWQgMDtjb25zdCBuPXIoOTU3KTtmdW5jdGlvbiBjcmVhdGVMb2dMZXZlbERpYWdMb2dnZXIoZSx0KXtpZihlPG4uRGlhZ0xvZ0xldmVsLk5PTkUpe2U9bi5EaWFnTG9nTGV2ZWwuTk9ORX1lbHNlIGlmKGU+bi5EaWFnTG9nTGV2ZWwuQUxMKXtlPW4uRGlhZ0xvZ0xldmVsLkFMTH10PXR8fHt9O2Z1bmN0aW9uIF9maWx0ZXJGdW5jKHIsbil7Y29uc3QgYT10W3JdO2lmKHR5cGVvZiBhPT09XCJmdW5jdGlvblwiJiZlPj1uKXtyZXR1cm4gYS5iaW5kKHQpfXJldHVybiBmdW5jdGlvbigpe319cmV0dXJue2Vycm9yOl9maWx0ZXJGdW5jKFwiZXJyb3JcIixuLkRpYWdMb2dMZXZlbC5FUlJPUiksd2FybjpfZmlsdGVyRnVuYyhcIndhcm5cIixuLkRpYWdMb2dMZXZlbC5XQVJOKSxpbmZvOl9maWx0ZXJGdW5jKFwiaW5mb1wiLG4uRGlhZ0xvZ0xldmVsLklORk8pLGRlYnVnOl9maWx0ZXJGdW5jKFwiZGVidWdcIixuLkRpYWdMb2dMZXZlbC5ERUJVRyksdmVyYm9zZTpfZmlsdGVyRnVuYyhcInZlcmJvc2VcIixuLkRpYWdMb2dMZXZlbC5WRVJCT1NFKX19dC5jcmVhdGVMb2dMZXZlbERpYWdMb2dnZXI9Y3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyfSw5NTc6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0xvZ0xldmVsPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiTk9ORVwiXT0wXT1cIk5PTkVcIjtlW2VbXCJFUlJPUlwiXT0zMF09XCJFUlJPUlwiO2VbZVtcIldBUk5cIl09NTBdPVwiV0FSTlwiO2VbZVtcIklORk9cIl09NjBdPVwiSU5GT1wiO2VbZVtcIkRFQlVHXCJdPTcwXT1cIkRFQlVHXCI7ZVtlW1wiVkVSQk9TRVwiXT04MF09XCJWRVJCT1NFXCI7ZVtlW1wiQUxMXCJdPTk5OTldPVwiQUxMXCJ9KShyPXQuRGlhZ0xvZ0xldmVsfHwodC5EaWFnTG9nTGV2ZWw9e30pKX0sMTcyOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QudW5yZWdpc3Rlckdsb2JhbD10LmdldEdsb2JhbD10LnJlZ2lzdGVyR2xvYmFsPXZvaWQgMDtjb25zdCBuPXIoMjAwKTtjb25zdCBhPXIoNTIxKTtjb25zdCBvPXIoMTMwKTtjb25zdCBpPWEuVkVSU0lPTi5zcGxpdChcIi5cIilbMF07Y29uc3QgYz1TeW1ib2wuZm9yKGBvcGVudGVsZW1ldHJ5LmpzLmFwaS4ke2l9YCk7Y29uc3Qgcz1uLl9nbG9iYWxUaGlzO2Z1bmN0aW9uIHJlZ2lzdGVyR2xvYmFsKGUsdCxyLG49ZmFsc2Upe3ZhciBvO2NvbnN0IGk9c1tjXT0obz1zW2NdKSE9PW51bGwmJm8hPT12b2lkIDA/bzp7dmVyc2lvbjphLlZFUlNJT059O2lmKCFuJiZpW2VdKXtjb25zdCB0PW5ldyBFcnJvcihgQG9wZW50ZWxlbWV0cnkvYXBpOiBBdHRlbXB0ZWQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiBvZiBBUEk6ICR7ZX1gKTtyLmVycm9yKHQuc3RhY2t8fHQubWVzc2FnZSk7cmV0dXJuIGZhbHNlfWlmKGkudmVyc2lvbiE9PWEuVkVSU0lPTil7Y29uc3QgdD1uZXcgRXJyb3IoYEBvcGVudGVsZW1ldHJ5L2FwaTogUmVnaXN0cmF0aW9uIG9mIHZlcnNpb24gdiR7aS52ZXJzaW9ufSBmb3IgJHtlfSBkb2VzIG5vdCBtYXRjaCBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgQVBJIHYke2EuVkVSU0lPTn1gKTtyLmVycm9yKHQuc3RhY2t8fHQubWVzc2FnZSk7cmV0dXJuIGZhbHNlfWlbZV09dDtyLmRlYnVnKGBAb3BlbnRlbGVtZXRyeS9hcGk6IFJlZ2lzdGVyZWQgYSBnbG9iYWwgZm9yICR7ZX0gdiR7YS5WRVJTSU9OfS5gKTtyZXR1cm4gdHJ1ZX10LnJlZ2lzdGVyR2xvYmFsPXJlZ2lzdGVyR2xvYmFsO2Z1bmN0aW9uIGdldEdsb2JhbChlKXt2YXIgdCxyO2NvbnN0IG49KHQ9c1tjXSk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnZlcnNpb247aWYoIW58fCEoMCxvLmlzQ29tcGF0aWJsZSkobikpe3JldHVybn1yZXR1cm4ocj1zW2NdKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnJbZV19dC5nZXRHbG9iYWw9Z2V0R2xvYmFsO2Z1bmN0aW9uIHVucmVnaXN0ZXJHbG9iYWwoZSx0KXt0LmRlYnVnKGBAb3BlbnRlbGVtZXRyeS9hcGk6IFVucmVnaXN0ZXJpbmcgYSBnbG9iYWwgZm9yICR7ZX0gdiR7YS5WRVJTSU9OfS5gKTtjb25zdCByPXNbY107aWYocil7ZGVsZXRlIHJbZV19fXQudW5yZWdpc3Rlckdsb2JhbD11bnJlZ2lzdGVyR2xvYmFsfSwxMzA6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5pc0NvbXBhdGlibGU9dC5fbWFrZUNvbXBhdGliaWxpdHlDaGVjaz12b2lkIDA7Y29uc3Qgbj1yKDUyMSk7Y29uc3QgYT0vXihcXGQrKVxcLihcXGQrKVxcLihcXGQrKSgtKC4rKSk/JC87ZnVuY3Rpb24gX21ha2VDb21wYXRpYmlsaXR5Q2hlY2soZSl7Y29uc3QgdD1uZXcgU2V0KFtlXSk7Y29uc3Qgcj1uZXcgU2V0O2NvbnN0IG49ZS5tYXRjaChhKTtpZighbil7cmV0dXJuKCk9PmZhbHNlfWNvbnN0IG89e21ham9yOituWzFdLG1pbm9yOituWzJdLHBhdGNoOituWzNdLHByZXJlbGVhc2U6bls0XX07aWYoby5wcmVyZWxlYXNlIT1udWxsKXtyZXR1cm4gZnVuY3Rpb24gaXNFeGFjdG1hdGNoKHQpe3JldHVybiB0PT09ZX19ZnVuY3Rpb24gX3JlamVjdChlKXtyLmFkZChlKTtyZXR1cm4gZmFsc2V9ZnVuY3Rpb24gX2FjY2VwdChlKXt0LmFkZChlKTtyZXR1cm4gdHJ1ZX1yZXR1cm4gZnVuY3Rpb24gaXNDb21wYXRpYmxlKGUpe2lmKHQuaGFzKGUpKXtyZXR1cm4gdHJ1ZX1pZihyLmhhcyhlKSl7cmV0dXJuIGZhbHNlfWNvbnN0IG49ZS5tYXRjaChhKTtpZighbil7cmV0dXJuIF9yZWplY3QoZSl9Y29uc3QgaT17bWFqb3I6K25bMV0sbWlub3I6K25bMl0scGF0Y2g6K25bM10scHJlcmVsZWFzZTpuWzRdfTtpZihpLnByZXJlbGVhc2UhPW51bGwpe3JldHVybiBfcmVqZWN0KGUpfWlmKG8ubWFqb3IhPT1pLm1ham9yKXtyZXR1cm4gX3JlamVjdChlKX1pZihvLm1ham9yPT09MCl7aWYoby5taW5vcj09PWkubWlub3ImJm8ucGF0Y2g8PWkucGF0Y2gpe3JldHVybiBfYWNjZXB0KGUpfXJldHVybiBfcmVqZWN0KGUpfWlmKG8ubWlub3I8PWkubWlub3Ipe3JldHVybiBfYWNjZXB0KGUpfXJldHVybiBfcmVqZWN0KGUpfX10Ll9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrPV9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrO3QuaXNDb21wYXRpYmxlPV9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrKG4uVkVSU0lPTil9LDg4NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lm1ldHJpY3M9dm9pZCAwO2NvbnN0IG49cig2NTMpO3QubWV0cmljcz1uLk1ldHJpY3NBUEkuZ2V0SW5zdGFuY2UoKX0sOTAxOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlZhbHVlVHlwZT12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIklOVFwiXT0wXT1cIklOVFwiO2VbZVtcIkRPVUJMRVwiXT0xXT1cIkRPVUJMRVwifSkocj10LlZhbHVlVHlwZXx8KHQuVmFsdWVUeXBlPXt9KSl9LDEwMjooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5jcmVhdGVOb29wTWV0ZXI9dC5OT09QX09CU0VSVkFCTEVfVVBfRE9XTl9DT1VOVEVSX01FVFJJQz10Lk5PT1BfT0JTRVJWQUJMRV9HQVVHRV9NRVRSSUM9dC5OT09QX09CU0VSVkFCTEVfQ09VTlRFUl9NRVRSSUM9dC5OT09QX1VQX0RPV05fQ09VTlRFUl9NRVRSSUM9dC5OT09QX0hJU1RPR1JBTV9NRVRSSUM9dC5OT09QX0NPVU5URVJfTUVUUklDPXQuTk9PUF9NRVRFUj10Lk5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYz10Lk5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM9dC5Ob29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWM9dC5Ob29wT2JzZXJ2YWJsZU1ldHJpYz10Lk5vb3BIaXN0b2dyYW1NZXRyaWM9dC5Ob29wVXBEb3duQ291bnRlck1ldHJpYz10Lk5vb3BDb3VudGVyTWV0cmljPXQuTm9vcE1ldHJpYz10Lk5vb3BNZXRlcj12b2lkIDA7Y2xhc3MgTm9vcE1ldGVye2NvbnN0cnVjdG9yKCl7fWNyZWF0ZUhpc3RvZ3JhbShlLHIpe3JldHVybiB0Lk5PT1BfSElTVE9HUkFNX01FVFJJQ31jcmVhdGVDb3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9DT1VOVEVSX01FVFJJQ31jcmVhdGVVcERvd25Db3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDfWNyZWF0ZU9ic2VydmFibGVHYXVnZShlLHIpe3JldHVybiB0Lk5PT1BfT0JTRVJWQUJMRV9HQVVHRV9NRVRSSUN9Y3JlYXRlT2JzZXJ2YWJsZUNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX09CU0VSVkFCTEVfQ09VTlRFUl9NRVRSSUN9Y3JlYXRlT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXIoZSxyKXtyZXR1cm4gdC5OT09QX09CU0VSVkFCTEVfVVBfRE9XTl9DT1VOVEVSX01FVFJJQ31hZGRCYXRjaE9ic2VydmFibGVDYWxsYmFjayhlLHQpe31yZW1vdmVCYXRjaE9ic2VydmFibGVDYWxsYmFjayhlKXt9fXQuTm9vcE1ldGVyPU5vb3BNZXRlcjtjbGFzcyBOb29wTWV0cmlje310Lk5vb3BNZXRyaWM9Tm9vcE1ldHJpYztjbGFzcyBOb29wQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BNZXRyaWN7YWRkKGUsdCl7fX10Lk5vb3BDb3VudGVyTWV0cmljPU5vb3BDb3VudGVyTWV0cmljO2NsYXNzIE5vb3BVcERvd25Db3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE1ldHJpY3thZGQoZSx0KXt9fXQuTm9vcFVwRG93bkNvdW50ZXJNZXRyaWM9Tm9vcFVwRG93bkNvdW50ZXJNZXRyaWM7Y2xhc3MgTm9vcEhpc3RvZ3JhbU1ldHJpYyBleHRlbmRzIE5vb3BNZXRyaWN7cmVjb3JkKGUsdCl7fX10Lk5vb3BIaXN0b2dyYW1NZXRyaWM9Tm9vcEhpc3RvZ3JhbU1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3thZGRDYWxsYmFjayhlKXt9cmVtb3ZlQ2FsbGJhY2soZSl7fX10Lk5vb3BPYnNlcnZhYmxlTWV0cmljPU5vb3BPYnNlcnZhYmxlTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BPYnNlcnZhYmxlTWV0cmlje310Lk5vb3BPYnNlcnZhYmxlQ291bnRlck1ldHJpYz1Ob29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYyBleHRlbmRzIE5vb3BPYnNlcnZhYmxlTWV0cmlje310Lk5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM9Tm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3t9dC5Ob29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM9Tm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljO3QuTk9PUF9NRVRFUj1uZXcgTm9vcE1ldGVyO3QuTk9PUF9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcENvdW50ZXJNZXRyaWM7dC5OT09QX0hJU1RPR1JBTV9NRVRSSUM9bmV3IE5vb3BIaXN0b2dyYW1NZXRyaWM7dC5OT09QX1VQX0RPV05fQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BVcERvd25Db3VudGVyTWV0cmljO3QuTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDPW5ldyBOb29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWM7dC5OT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDPW5ldyBOb29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljO3QuTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYztmdW5jdGlvbiBjcmVhdGVOb29wTWV0ZXIoKXtyZXR1cm4gdC5OT09QX01FVEVSfXQuY3JlYXRlTm9vcE1ldGVyPWNyZWF0ZU5vb3BNZXRlcn0sNjYwOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTk9PUF9NRVRFUl9QUk9WSURFUj10Lk5vb3BNZXRlclByb3ZpZGVyPXZvaWQgMDtjb25zdCBuPXIoMTAyKTtjbGFzcyBOb29wTWV0ZXJQcm92aWRlcntnZXRNZXRlcihlLHQscil7cmV0dXJuIG4uTk9PUF9NRVRFUn19dC5Ob29wTWV0ZXJQcm92aWRlcj1Ob29wTWV0ZXJQcm92aWRlcjt0Lk5PT1BfTUVURVJfUFJPVklERVI9bmV3IE5vb3BNZXRlclByb3ZpZGVyfSwyMDA6ZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbcl19fSl9OmZ1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO2Vbbl09dFtyXX0pO3ZhciBhPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKWlmKHIhPT1cImRlZmF1bHRcIiYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LHIpKW4odCxlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO2Eocig0NiksdCl9LDY1MTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5fZ2xvYmFsVGhpcz12b2lkIDA7dC5fZ2xvYmFsVGhpcz10eXBlb2YgZ2xvYmFsVGhpcz09PVwib2JqZWN0XCI/Z2xvYmFsVGhpczpnbG9iYWx9LDQ2OmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pfTpmdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtlW25dPXRbcl19KTt2YXIgYT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gZSlpZihyIT09XCJkZWZhdWx0XCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSluKHQsZSxyKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTthKHIoNjUxKSx0KX0sOTM5OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QucHJvcGFnYXRpb249dm9pZCAwO2NvbnN0IG49cigxODEpO3QucHJvcGFnYXRpb249bi5Qcm9wYWdhdGlvbkFQSS5nZXRJbnN0YW5jZSgpfSw4NzQ6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcFRleHRNYXBQcm9wYWdhdG9yPXZvaWQgMDtjbGFzcyBOb29wVGV4dE1hcFByb3BhZ2F0b3J7aW5qZWN0KGUsdCl7fWV4dHJhY3QoZSx0KXtyZXR1cm4gZX1maWVsZHMoKXtyZXR1cm5bXX19dC5Ob29wVGV4dE1hcFByb3BhZ2F0b3I9Tm9vcFRleHRNYXBQcm9wYWdhdG9yfSwxOTQ6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZGVmYXVsdFRleHRNYXBTZXR0ZXI9dC5kZWZhdWx0VGV4dE1hcEdldHRlcj12b2lkIDA7dC5kZWZhdWx0VGV4dE1hcEdldHRlcj17Z2V0KGUsdCl7aWYoZT09bnVsbCl7cmV0dXJuIHVuZGVmaW5lZH1yZXR1cm4gZVt0XX0sa2V5cyhlKXtpZihlPT1udWxsKXtyZXR1cm5bXX1yZXR1cm4gT2JqZWN0LmtleXMoZSl9fTt0LmRlZmF1bHRUZXh0TWFwU2V0dGVyPXtzZXQoZSx0LHIpe2lmKGU9PW51bGwpe3JldHVybn1lW3RdPXJ9fX0sODQ1OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QudHJhY2U9dm9pZCAwO2NvbnN0IG49cig5OTcpO3QudHJhY2U9bi5UcmFjZUFQSS5nZXRJbnN0YW5jZSgpfSw0MDM6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob25SZWNvcmRpbmdTcGFuPXZvaWQgMDtjb25zdCBuPXIoNDc2KTtjbGFzcyBOb25SZWNvcmRpbmdTcGFue2NvbnN0cnVjdG9yKGU9bi5JTlZBTElEX1NQQU5fQ09OVEVYVCl7dGhpcy5fc3BhbkNvbnRleHQ9ZX1zcGFuQ29udGV4dCgpe3JldHVybiB0aGlzLl9zcGFuQ29udGV4dH1zZXRBdHRyaWJ1dGUoZSx0KXtyZXR1cm4gdGhpc31zZXRBdHRyaWJ1dGVzKGUpe3JldHVybiB0aGlzfWFkZEV2ZW50KGUsdCl7cmV0dXJuIHRoaXN9c2V0U3RhdHVzKGUpe3JldHVybiB0aGlzfXVwZGF0ZU5hbWUoZSl7cmV0dXJuIHRoaXN9ZW5kKGUpe31pc1JlY29yZGluZygpe3JldHVybiBmYWxzZX1yZWNvcmRFeGNlcHRpb24oZSx0KXt9fXQuTm9uUmVjb3JkaW5nU3Bhbj1Ob25SZWNvcmRpbmdTcGFufSw2MTQ6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wVHJhY2VyPXZvaWQgMDtjb25zdCBuPXIoNDkxKTtjb25zdCBhPXIoNjA3KTtjb25zdCBvPXIoNDAzKTtjb25zdCBpPXIoMTM5KTtjb25zdCBjPW4uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpO2NsYXNzIE5vb3BUcmFjZXJ7c3RhcnRTcGFuKGUsdCxyPWMuYWN0aXZlKCkpe2NvbnN0IG49Qm9vbGVhbih0PT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5yb290KTtpZihuKXtyZXR1cm4gbmV3IG8uTm9uUmVjb3JkaW5nU3Bhbn1jb25zdCBzPXImJigwLGEuZ2V0U3BhbkNvbnRleHQpKHIpO2lmKGlzU3BhbkNvbnRleHQocykmJigwLGkuaXNTcGFuQ29udGV4dFZhbGlkKShzKSl7cmV0dXJuIG5ldyBvLk5vblJlY29yZGluZ1NwYW4ocyl9ZWxzZXtyZXR1cm4gbmV3IG8uTm9uUmVjb3JkaW5nU3Bhbn19c3RhcnRBY3RpdmVTcGFuKGUsdCxyLG4pe2xldCBvO2xldCBpO2xldCBzO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7cmV0dXJufWVsc2UgaWYoYXJndW1lbnRzLmxlbmd0aD09PTIpe3M9dH1lbHNlIGlmKGFyZ3VtZW50cy5sZW5ndGg9PT0zKXtvPXQ7cz1yfWVsc2V7bz10O2k9cjtzPW59Y29uc3QgdT1pIT09bnVsbCYmaSE9PXZvaWQgMD9pOmMuYWN0aXZlKCk7Y29uc3QgbD10aGlzLnN0YXJ0U3BhbihlLG8sdSk7Y29uc3QgZz0oMCxhLnNldFNwYW4pKHUsbCk7cmV0dXJuIGMud2l0aChnLHMsdW5kZWZpbmVkLGwpfX10Lk5vb3BUcmFjZXI9Tm9vcFRyYWNlcjtmdW5jdGlvbiBpc1NwYW5Db250ZXh0KGUpe3JldHVybiB0eXBlb2YgZT09PVwib2JqZWN0XCImJnR5cGVvZiBlW1wic3BhbklkXCJdPT09XCJzdHJpbmdcIiYmdHlwZW9mIGVbXCJ0cmFjZUlkXCJdPT09XCJzdHJpbmdcIiYmdHlwZW9mIGVbXCJ0cmFjZUZsYWdzXCJdPT09XCJudW1iZXJcIn19LDEyNDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BUcmFjZXJQcm92aWRlcj12b2lkIDA7Y29uc3Qgbj1yKDYxNCk7Y2xhc3MgTm9vcFRyYWNlclByb3ZpZGVye2dldFRyYWNlcihlLHQscil7cmV0dXJuIG5ldyBuLk5vb3BUcmFjZXJ9fXQuTm9vcFRyYWNlclByb3ZpZGVyPU5vb3BUcmFjZXJQcm92aWRlcn0sMTI1OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuUHJveHlUcmFjZXI9dm9pZCAwO2NvbnN0IG49cig2MTQpO2NvbnN0IGE9bmV3IG4uTm9vcFRyYWNlcjtjbGFzcyBQcm94eVRyYWNlcntjb25zdHJ1Y3RvcihlLHQscixuKXt0aGlzLl9wcm92aWRlcj1lO3RoaXMubmFtZT10O3RoaXMudmVyc2lvbj1yO3RoaXMub3B0aW9ucz1ufXN0YXJ0U3BhbihlLHQscil7cmV0dXJuIHRoaXMuX2dldFRyYWNlcigpLnN0YXJ0U3BhbihlLHQscil9c3RhcnRBY3RpdmVTcGFuKGUsdCxyLG4pe2NvbnN0IGE9dGhpcy5fZ2V0VHJhY2VyKCk7cmV0dXJuIFJlZmxlY3QuYXBwbHkoYS5zdGFydEFjdGl2ZVNwYW4sYSxhcmd1bWVudHMpfV9nZXRUcmFjZXIoKXtpZih0aGlzLl9kZWxlZ2F0ZSl7cmV0dXJuIHRoaXMuX2RlbGVnYXRlfWNvbnN0IGU9dGhpcy5fcHJvdmlkZXIuZ2V0RGVsZWdhdGVUcmFjZXIodGhpcy5uYW1lLHRoaXMudmVyc2lvbix0aGlzLm9wdGlvbnMpO2lmKCFlKXtyZXR1cm4gYX10aGlzLl9kZWxlZ2F0ZT1lO3JldHVybiB0aGlzLl9kZWxlZ2F0ZX19dC5Qcm94eVRyYWNlcj1Qcm94eVRyYWNlcn0sODQ2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuUHJveHlUcmFjZXJQcm92aWRlcj12b2lkIDA7Y29uc3Qgbj1yKDEyNSk7Y29uc3QgYT1yKDEyNCk7Y29uc3Qgbz1uZXcgYS5Ob29wVHJhY2VyUHJvdmlkZXI7Y2xhc3MgUHJveHlUcmFjZXJQcm92aWRlcntnZXRUcmFjZXIoZSx0LHIpe3ZhciBhO3JldHVybihhPXRoaXMuZ2V0RGVsZWdhdGVUcmFjZXIoZSx0LHIpKSE9PW51bGwmJmEhPT12b2lkIDA/YTpuZXcgbi5Qcm94eVRyYWNlcih0aGlzLGUsdCxyKX1nZXREZWxlZ2F0ZSgpe3ZhciBlO3JldHVybihlPXRoaXMuX2RlbGVnYXRlKSE9PW51bGwmJmUhPT12b2lkIDA/ZTpvfXNldERlbGVnYXRlKGUpe3RoaXMuX2RlbGVnYXRlPWV9Z2V0RGVsZWdhdGVUcmFjZXIoZSx0LHIpe3ZhciBuO3JldHVybihuPXRoaXMuX2RlbGVnYXRlKT09PW51bGx8fG49PT12b2lkIDA/dm9pZCAwOm4uZ2V0VHJhY2VyKGUsdCxyKX19dC5Qcm94eVRyYWNlclByb3ZpZGVyPVByb3h5VHJhY2VyUHJvdmlkZXJ9LDk5NjooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5TYW1wbGluZ0RlY2lzaW9uPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiTk9UX1JFQ09SRFwiXT0wXT1cIk5PVF9SRUNPUkRcIjtlW2VbXCJSRUNPUkRcIl09MV09XCJSRUNPUkRcIjtlW2VbXCJSRUNPUkRfQU5EX1NBTVBMRURcIl09Ml09XCJSRUNPUkRfQU5EX1NBTVBMRURcIn0pKHI9dC5TYW1wbGluZ0RlY2lzaW9ufHwodC5TYW1wbGluZ0RlY2lzaW9uPXt9KSl9LDYwNzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmdldFNwYW5Db250ZXh0PXQuc2V0U3BhbkNvbnRleHQ9dC5kZWxldGVTcGFuPXQuc2V0U3Bhbj10LmdldEFjdGl2ZVNwYW49dC5nZXRTcGFuPXZvaWQgMDtjb25zdCBuPXIoNzgwKTtjb25zdCBhPXIoNDAzKTtjb25zdCBvPXIoNDkxKTtjb25zdCBpPSgwLG4uY3JlYXRlQ29udGV4dEtleSkoXCJPcGVuVGVsZW1ldHJ5IENvbnRleHQgS2V5IFNQQU5cIik7ZnVuY3Rpb24gZ2V0U3BhbihlKXtyZXR1cm4gZS5nZXRWYWx1ZShpKXx8dW5kZWZpbmVkfXQuZ2V0U3Bhbj1nZXRTcGFuO2Z1bmN0aW9uIGdldEFjdGl2ZVNwYW4oKXtyZXR1cm4gZ2V0U3BhbihvLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKS5hY3RpdmUoKSl9dC5nZXRBY3RpdmVTcGFuPWdldEFjdGl2ZVNwYW47ZnVuY3Rpb24gc2V0U3BhbihlLHQpe3JldHVybiBlLnNldFZhbHVlKGksdCl9dC5zZXRTcGFuPXNldFNwYW47ZnVuY3Rpb24gZGVsZXRlU3BhbihlKXtyZXR1cm4gZS5kZWxldGVWYWx1ZShpKX10LmRlbGV0ZVNwYW49ZGVsZXRlU3BhbjtmdW5jdGlvbiBzZXRTcGFuQ29udGV4dChlLHQpe3JldHVybiBzZXRTcGFuKGUsbmV3IGEuTm9uUmVjb3JkaW5nU3Bhbih0KSl9dC5zZXRTcGFuQ29udGV4dD1zZXRTcGFuQ29udGV4dDtmdW5jdGlvbiBnZXRTcGFuQ29udGV4dChlKXt2YXIgdDtyZXR1cm4odD1nZXRTcGFuKGUpKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQuc3BhbkNvbnRleHQoKX10LmdldFNwYW5Db250ZXh0PWdldFNwYW5Db250ZXh0fSwzMjU6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5UcmFjZVN0YXRlSW1wbD12b2lkIDA7Y29uc3Qgbj1yKDU2NCk7Y29uc3QgYT0zMjtjb25zdCBvPTUxMjtjb25zdCBpPVwiLFwiO2NvbnN0IGM9XCI9XCI7Y2xhc3MgVHJhY2VTdGF0ZUltcGx7Y29uc3RydWN0b3IoZSl7dGhpcy5faW50ZXJuYWxTdGF0ZT1uZXcgTWFwO2lmKGUpdGhpcy5fcGFyc2UoZSl9c2V0KGUsdCl7Y29uc3Qgcj10aGlzLl9jbG9uZSgpO2lmKHIuX2ludGVybmFsU3RhdGUuaGFzKGUpKXtyLl9pbnRlcm5hbFN0YXRlLmRlbGV0ZShlKX1yLl9pbnRlcm5hbFN0YXRlLnNldChlLHQpO3JldHVybiByfXVuc2V0KGUpe2NvbnN0IHQ9dGhpcy5fY2xvbmUoKTt0Ll9pbnRlcm5hbFN0YXRlLmRlbGV0ZShlKTtyZXR1cm4gdH1nZXQoZSl7cmV0dXJuIHRoaXMuX2ludGVybmFsU3RhdGUuZ2V0KGUpfXNlcmlhbGl6ZSgpe3JldHVybiB0aGlzLl9rZXlzKCkucmVkdWNlKCgoZSx0KT0+e2UucHVzaCh0K2MrdGhpcy5nZXQodCkpO3JldHVybiBlfSksW10pLmpvaW4oaSl9X3BhcnNlKGUpe2lmKGUubGVuZ3RoPm8pcmV0dXJuO3RoaXMuX2ludGVybmFsU3RhdGU9ZS5zcGxpdChpKS5yZXZlcnNlKCkucmVkdWNlKCgoZSx0KT0+e2NvbnN0IHI9dC50cmltKCk7Y29uc3QgYT1yLmluZGV4T2YoYyk7aWYoYSE9PS0xKXtjb25zdCBvPXIuc2xpY2UoMCxhKTtjb25zdCBpPXIuc2xpY2UoYSsxLHQubGVuZ3RoKTtpZigoMCxuLnZhbGlkYXRlS2V5KShvKSYmKDAsbi52YWxpZGF0ZVZhbHVlKShpKSl7ZS5zZXQobyxpKX1lbHNle319cmV0dXJuIGV9KSxuZXcgTWFwKTtpZih0aGlzLl9pbnRlcm5hbFN0YXRlLnNpemU+YSl7dGhpcy5faW50ZXJuYWxTdGF0ZT1uZXcgTWFwKEFycmF5LmZyb20odGhpcy5faW50ZXJuYWxTdGF0ZS5lbnRyaWVzKCkpLnJldmVyc2UoKS5zbGljZSgwLGEpKX19X2tleXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9pbnRlcm5hbFN0YXRlLmtleXMoKSkucmV2ZXJzZSgpfV9jbG9uZSgpe2NvbnN0IGU9bmV3IFRyYWNlU3RhdGVJbXBsO2UuX2ludGVybmFsU3RhdGU9bmV3IE1hcCh0aGlzLl9pbnRlcm5hbFN0YXRlKTtyZXR1cm4gZX19dC5UcmFjZVN0YXRlSW1wbD1UcmFjZVN0YXRlSW1wbH0sNTY0OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnZhbGlkYXRlVmFsdWU9dC52YWxpZGF0ZUtleT12b2lkIDA7Y29uc3Qgcj1cIltfMC05YS16LSovXVwiO2NvbnN0IG49YFthLXpdJHtyfXswLDI1NX1gO2NvbnN0IGE9YFthLXowLTldJHtyfXswLDI0MH1AW2Etel0ke3J9ezAsMTN9YDtjb25zdCBvPW5ldyBSZWdFeHAoYF4oPzoke259fCR7YX0pJGApO2NvbnN0IGk9L15bIC1+XXswLDI1NX1bIS1+XSQvO2NvbnN0IGM9Lyx8PS87ZnVuY3Rpb24gdmFsaWRhdGVLZXkoZSl7cmV0dXJuIG8udGVzdChlKX10LnZhbGlkYXRlS2V5PXZhbGlkYXRlS2V5O2Z1bmN0aW9uIHZhbGlkYXRlVmFsdWUoZSl7cmV0dXJuIGkudGVzdChlKSYmIWMudGVzdChlKX10LnZhbGlkYXRlVmFsdWU9dmFsaWRhdGVWYWx1ZX0sOTg6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5jcmVhdGVUcmFjZVN0YXRlPXZvaWQgMDtjb25zdCBuPXIoMzI1KTtmdW5jdGlvbiBjcmVhdGVUcmFjZVN0YXRlKGUpe3JldHVybiBuZXcgbi5UcmFjZVN0YXRlSW1wbChlKX10LmNyZWF0ZVRyYWNlU3RhdGU9Y3JlYXRlVHJhY2VTdGF0ZX0sNDc2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9dC5JTlZBTElEX1RSQUNFSUQ9dC5JTlZBTElEX1NQQU5JRD12b2lkIDA7Y29uc3Qgbj1yKDQ3NSk7dC5JTlZBTElEX1NQQU5JRD1cIjAwMDAwMDAwMDAwMDAwMDBcIjt0LklOVkFMSURfVFJBQ0VJRD1cIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCI7dC5JTlZBTElEX1NQQU5fQ09OVEVYVD17dHJhY2VJZDp0LklOVkFMSURfVFJBQ0VJRCxzcGFuSWQ6dC5JTlZBTElEX1NQQU5JRCx0cmFjZUZsYWdzOm4uVHJhY2VGbGFncy5OT05FfX0sMzU3OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlNwYW5LaW5kPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiSU5URVJOQUxcIl09MF09XCJJTlRFUk5BTFwiO2VbZVtcIlNFUlZFUlwiXT0xXT1cIlNFUlZFUlwiO2VbZVtcIkNMSUVOVFwiXT0yXT1cIkNMSUVOVFwiO2VbZVtcIlBST0RVQ0VSXCJdPTNdPVwiUFJPRFVDRVJcIjtlW2VbXCJDT05TVU1FUlwiXT00XT1cIkNPTlNVTUVSXCJ9KShyPXQuU3BhbktpbmR8fCh0LlNwYW5LaW5kPXt9KSl9LDEzOTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LndyYXBTcGFuQ29udGV4dD10LmlzU3BhbkNvbnRleHRWYWxpZD10LmlzVmFsaWRTcGFuSWQ9dC5pc1ZhbGlkVHJhY2VJZD12b2lkIDA7Y29uc3Qgbj1yKDQ3Nik7Y29uc3QgYT1yKDQwMyk7Y29uc3Qgbz0vXihbMC05YS1mXXszMn0pJC9pO2NvbnN0IGk9L15bMC05YS1mXXsxNn0kL2k7ZnVuY3Rpb24gaXNWYWxpZFRyYWNlSWQoZSl7cmV0dXJuIG8udGVzdChlKSYmZSE9PW4uSU5WQUxJRF9UUkFDRUlEfXQuaXNWYWxpZFRyYWNlSWQ9aXNWYWxpZFRyYWNlSWQ7ZnVuY3Rpb24gaXNWYWxpZFNwYW5JZChlKXtyZXR1cm4gaS50ZXN0KGUpJiZlIT09bi5JTlZBTElEX1NQQU5JRH10LmlzVmFsaWRTcGFuSWQ9aXNWYWxpZFNwYW5JZDtmdW5jdGlvbiBpc1NwYW5Db250ZXh0VmFsaWQoZSl7cmV0dXJuIGlzVmFsaWRUcmFjZUlkKGUudHJhY2VJZCkmJmlzVmFsaWRTcGFuSWQoZS5zcGFuSWQpfXQuaXNTcGFuQ29udGV4dFZhbGlkPWlzU3BhbkNvbnRleHRWYWxpZDtmdW5jdGlvbiB3cmFwU3BhbkNvbnRleHQoZSl7cmV0dXJuIG5ldyBhLk5vblJlY29yZGluZ1NwYW4oZSl9dC53cmFwU3BhbkNvbnRleHQ9d3JhcFNwYW5Db250ZXh0fSw4NDc6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuU3BhblN0YXR1c0NvZGU9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJVTlNFVFwiXT0wXT1cIlVOU0VUXCI7ZVtlW1wiT0tcIl09MV09XCJPS1wiO2VbZVtcIkVSUk9SXCJdPTJdPVwiRVJST1JcIn0pKHI9dC5TcGFuU3RhdHVzQ29kZXx8KHQuU3BhblN0YXR1c0NvZGU9e30pKX0sNDc1OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlRyYWNlRmxhZ3M9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJOT05FXCJdPTBdPVwiTk9ORVwiO2VbZVtcIlNBTVBMRURcIl09MV09XCJTQU1QTEVEXCJ9KShyPXQuVHJhY2VGbGFnc3x8KHQuVHJhY2VGbGFncz17fSkpfSw1MjE6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVkVSU0lPTj12b2lkIDA7dC5WRVJTSU9OPVwiMS42LjBcIn19O3ZhciB0PXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18ocil7dmFyIG49dFtyXTtpZihuIT09dW5kZWZpbmVkKXtyZXR1cm4gbi5leHBvcnRzfXZhciBhPXRbcl09e2V4cG9ydHM6e319O3ZhciBvPXRydWU7dHJ5e2Vbcl0uY2FsbChhLmV4cG9ydHMsYSxhLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7bz1mYWxzZX1maW5hbGx5e2lmKG8pZGVsZXRlIHRbcl19cmV0dXJuIGEuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIHI9e307KCgpPT57dmFyIGU9cjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO2UudHJhY2U9ZS5wcm9wYWdhdGlvbj1lLm1ldHJpY3M9ZS5kaWFnPWUuY29udGV4dD1lLklOVkFMSURfU1BBTl9DT05URVhUPWUuSU5WQUxJRF9UUkFDRUlEPWUuSU5WQUxJRF9TUEFOSUQ9ZS5pc1ZhbGlkU3BhbklkPWUuaXNWYWxpZFRyYWNlSWQ9ZS5pc1NwYW5Db250ZXh0VmFsaWQ9ZS5jcmVhdGVUcmFjZVN0YXRlPWUuVHJhY2VGbGFncz1lLlNwYW5TdGF0dXNDb2RlPWUuU3BhbktpbmQ9ZS5TYW1wbGluZ0RlY2lzaW9uPWUuUHJveHlUcmFjZXJQcm92aWRlcj1lLlByb3h5VHJhY2VyPWUuZGVmYXVsdFRleHRNYXBTZXR0ZXI9ZS5kZWZhdWx0VGV4dE1hcEdldHRlcj1lLlZhbHVlVHlwZT1lLmNyZWF0ZU5vb3BNZXRlcj1lLkRpYWdMb2dMZXZlbD1lLkRpYWdDb25zb2xlTG9nZ2VyPWUuUk9PVF9DT05URVhUPWUuY3JlYXRlQ29udGV4dEtleT1lLmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZz12b2lkIDA7dmFyIHQ9X19uY2N3cGNrX3JlcXVpcmVfXygzNjkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmd9fSk7dmFyIG49X19uY2N3cGNrX3JlcXVpcmVfXyg3ODApO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY3JlYXRlQ29udGV4dEtleVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uY3JlYXRlQ29udGV4dEtleX19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlJPT1RfQ09OVEVYVFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uUk9PVF9DT05URVhUfX0pO3ZhciBhPV9fbmNjd3Bja19yZXF1aXJlX18oOTcyKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIkRpYWdDb25zb2xlTG9nZ2VyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYS5EaWFnQ29uc29sZUxvZ2dlcn19KTt2YXIgbz1fX25jY3dwY2tfcmVxdWlyZV9fKDk1Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJEaWFnTG9nTGV2ZWxcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBvLkRpYWdMb2dMZXZlbH19KTt2YXIgaT1fX25jY3dwY2tfcmVxdWlyZV9fKDEwMik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjcmVhdGVOb29wTWV0ZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBpLmNyZWF0ZU5vb3BNZXRlcn19KTt2YXIgYz1fX25jY3dwY2tfcmVxdWlyZV9fKDkwMSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJWYWx1ZVR5cGVcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBjLlZhbHVlVHlwZX19KTt2YXIgcz1fX25jY3dwY2tfcmVxdWlyZV9fKDE5NCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkZWZhdWx0VGV4dE1hcEdldHRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHMuZGVmYXVsdFRleHRNYXBHZXR0ZXJ9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkZWZhdWx0VGV4dE1hcFNldHRlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHMuZGVmYXVsdFRleHRNYXBTZXR0ZXJ9fSk7dmFyIHU9X19uY2N3cGNrX3JlcXVpcmVfXygxMjUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiUHJveHlUcmFjZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB1LlByb3h5VHJhY2VyfX0pO3ZhciBsPV9fbmNjd3Bja19yZXF1aXJlX18oODQ2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlByb3h5VHJhY2VyUHJvdmlkZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBsLlByb3h5VHJhY2VyUHJvdmlkZXJ9fSk7dmFyIGc9X19uY2N3cGNrX3JlcXVpcmVfXyg5OTYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiU2FtcGxpbmdEZWNpc2lvblwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGcuU2FtcGxpbmdEZWNpc2lvbn19KTt2YXIgcD1fX25jY3dwY2tfcmVxdWlyZV9fKDM1Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJTcGFuS2luZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHAuU3BhbktpbmR9fSk7dmFyIGQ9X19uY2N3cGNrX3JlcXVpcmVfXyg4NDcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiU3BhblN0YXR1c0NvZGVcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBkLlNwYW5TdGF0dXNDb2RlfX0pO3ZhciBfPV9fbmNjd3Bja19yZXF1aXJlX18oNDc1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlRyYWNlRmxhZ3NcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBfLlRyYWNlRmxhZ3N9fSk7dmFyIGY9X19uY2N3cGNrX3JlcXVpcmVfXyg5OCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJjcmVhdGVUcmFjZVN0YXRlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZi5jcmVhdGVUcmFjZVN0YXRlfX0pO3ZhciBiPV9fbmNjd3Bja19yZXF1aXJlX18oMTM5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImlzU3BhbkNvbnRleHRWYWxpZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGIuaXNTcGFuQ29udGV4dFZhbGlkfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiaXNWYWxpZFRyYWNlSWRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBiLmlzVmFsaWRUcmFjZUlkfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiaXNWYWxpZFNwYW5JZFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGIuaXNWYWxpZFNwYW5JZH19KTt2YXIgdj1fX25jY3dwY2tfcmVxdWlyZV9fKDQ3Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJJTlZBTElEX1NQQU5JRFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9TUEFOSUR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJJTlZBTElEX1RSQUNFSURcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfVFJBQ0VJRH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIklOVkFMSURfU1BBTl9DT05URVhUXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1NQQU5fQ09OVEVYVH19KTtjb25zdCBPPV9fbmNjd3Bja19yZXF1aXJlX18oNjcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY29udGV4dFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE8uY29udGV4dH19KTtjb25zdCBQPV9fbmNjd3Bja19yZXF1aXJlX18oNTA2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImRpYWdcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBQLmRpYWd9fSk7Y29uc3QgTj1fX25jY3dwY2tfcmVxdWlyZV9fKDg4Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJtZXRyaWNzXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTi5tZXRyaWNzfX0pO2NvbnN0IFM9X19uY2N3cGNrX3JlcXVpcmVfXyg5MzkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwicHJvcGFnYXRpb25cIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBTLnByb3BhZ2F0aW9ufX0pO2NvbnN0IEM9X19uY2N3cGNrX3JlcXVpcmVfXyg4NDUpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwidHJhY2VcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBDLnRyYWNlfX0pO2VbXCJkZWZhdWx0XCJdPXtjb250ZXh0Ok8uY29udGV4dCxkaWFnOlAuZGlhZyxtZXRyaWNzOk4ubWV0cmljcyxwcm9wYWdhdGlvbjpTLnByb3BhZ2F0aW9uLHRyYWNlOkMudHJhY2V9fSkoKTttb2R1bGUuZXhwb3J0cz1yfSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/cookie/index.js":
/*!*********************************************************!*\
!*** ./node_modules/next/dist/compiled/cookie/index.js ***!
\*********************************************************/
/***/ ((module) => {
eval("(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p<o.length;p++){var f=o[p];var u=f.indexOf(\"=\");if(u<0){continue}var v=f.substr(0,u).trim();var c=f.substr(++u,f.length).trim();if('\"'==c[0]){c=c.slice(1,-1)}if(undefined==t[v]){t[v]=tryDecode(c,s)}}return t}function serialize(e,r,i){var a=i||{};var o=a.encode||t;if(typeof o!==\"function\"){throw new TypeError(\"option encode is invalid\")}if(!n.test(e)){throw new TypeError(\"argument name is invalid\")}var s=o(r);if(s&&!n.test(s)){throw new TypeError(\"argument val is invalid\")}var p=e+\"=\"+s;if(null!=a.maxAge){var f=a.maxAge-0;if(isNaN(f)||!isFinite(f)){throw new TypeError(\"option maxAge is invalid\")}p+=\"; Max-Age=\"+Math.floor(f)}if(a.domain){if(!n.test(a.domain)){throw new TypeError(\"option domain is invalid\")}p+=\"; Domain=\"+a.domain}if(a.path){if(!n.test(a.path)){throw new TypeError(\"option path is invalid\")}p+=\"; Path=\"+a.path}if(a.expires){if(typeof a.expires.toUTCString!==\"function\"){throw new TypeError(\"option expires is invalid\")}p+=\"; Expires=\"+a.expires.toUTCString()}if(a.httpOnly){p+=\"; HttpOnly\"}if(a.secure){p+=\"; Secure\"}if(a.sameSite){var u=typeof a.sameSite===\"string\"?a.sameSite.toLowerCase():a.sameSite;switch(u){case true:p+=\"; SameSite=Strict\";break;case\"lax\":p+=\"; SameSite=Lax\";break;case\"strict\":p+=\"; SameSite=Strict\";break;case\"none\":p+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return p}function tryDecode(e,r){try{return r(e)}catch(r){return e}}})();module.exports=e})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2Nvb2tpZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsaUZBQWlGLFNBQVMsTUFBTTtBQUNuSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHNCQUFzQix5QkFBeUIseUJBQXlCLFNBQVMsR0FBRyw4Q0FBOEMsb0JBQW9CLHdCQUF3QixxREFBcUQsU0FBUyxZQUFZLGlCQUFpQixrQkFBa0IsWUFBWSxXQUFXLEtBQUssV0FBVyxxQkFBcUIsUUFBUSxTQUFTLDJCQUEyQixvQ0FBb0MsY0FBYyxnQkFBZ0Isb0JBQW9CLHFCQUFxQixTQUFTLDBCQUEwQixZQUFZLGtCQUFrQiwwQkFBMEIsZ0RBQWdELGVBQWUsZ0RBQWdELFdBQVcsa0JBQWtCLCtDQUErQyxjQUFjLG1CQUFtQixpQkFBaUIsMkJBQTJCLGdEQUFnRCxNQUFNLHdCQUF3QixhQUFhLHNCQUFzQixnREFBZ0QsTUFBTSxrQkFBa0IsV0FBVyxvQkFBb0IsOENBQThDLE1BQU0sY0FBYyxjQUFjLDhDQUE4QyxpREFBaUQsTUFBTSxrQ0FBa0MsZUFBZSxNQUFNLFVBQVUsYUFBYSxNQUFNLFFBQVEsZUFBZSx1RUFBdUUsVUFBVSxnQkFBZ0IsaUJBQWlCLE1BQU0sZ0JBQWdCLGNBQWMsTUFBTSxtQkFBbUIsaUJBQWlCLE1BQU0saUJBQWlCLGVBQWUsTUFBTSwyREFBMkQsU0FBUyx3QkFBd0IsSUFBSSxZQUFZLFNBQVMsV0FBVyxJQUFJLGlCQUFpQiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9jb29raWUvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBlPXt9OygoKT0+e3ZhciByPWU7XG4vKiFcbiAqIGNvb2tpZVxuICogQ29weXJpZ2h0KGMpIDIwMTItMjAxNCBSb21hbiBTaHR5bG1hblxuICogQ29weXJpZ2h0KGMpIDIwMTUgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovci5wYXJzZT1wYXJzZTtyLnNlcmlhbGl6ZT1zZXJpYWxpemU7dmFyIGk9ZGVjb2RlVVJJQ29tcG9uZW50O3ZhciB0PWVuY29kZVVSSUNvbXBvbmVudDt2YXIgYT0vOyAqLzt2YXIgbj0vXltcXHUwMDA5XFx1MDAyMC1cXHUwMDdlXFx1MDA4MC1cXHUwMGZmXSskLztmdW5jdGlvbiBwYXJzZShlLHIpe2lmKHR5cGVvZiBlIT09XCJzdHJpbmdcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IHN0ciBtdXN0IGJlIGEgc3RyaW5nXCIpfXZhciB0PXt9O3ZhciBuPXJ8fHt9O3ZhciBvPWUuc3BsaXQoYSk7dmFyIHM9bi5kZWNvZGV8fGk7Zm9yKHZhciBwPTA7cDxvLmxlbmd0aDtwKyspe3ZhciBmPW9bcF07dmFyIHU9Zi5pbmRleE9mKFwiPVwiKTtpZih1PDApe2NvbnRpbnVlfXZhciB2PWYuc3Vic3RyKDAsdSkudHJpbSgpO3ZhciBjPWYuc3Vic3RyKCsrdSxmLmxlbmd0aCkudHJpbSgpO2lmKCdcIic9PWNbMF0pe2M9Yy5zbGljZSgxLC0xKX1pZih1bmRlZmluZWQ9PXRbdl0pe3Rbdl09dHJ5RGVjb2RlKGMscyl9fXJldHVybiB0fWZ1bmN0aW9uIHNlcmlhbGl6ZShlLHIsaSl7dmFyIGE9aXx8e307dmFyIG89YS5lbmNvZGV8fHQ7aWYodHlwZW9mIG8hPT1cImZ1bmN0aW9uXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJvcHRpb24gZW5jb2RlIGlzIGludmFsaWRcIil9aWYoIW4udGVzdChlKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcImFyZ3VtZW50IG5hbWUgaXMgaW52YWxpZFwiKX12YXIgcz1vKHIpO2lmKHMmJiFuLnRlc3Qocykpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJhcmd1bWVudCB2YWwgaXMgaW52YWxpZFwiKX12YXIgcD1lK1wiPVwiK3M7aWYobnVsbCE9YS5tYXhBZ2Upe3ZhciBmPWEubWF4QWdlLTA7aWYoaXNOYU4oZil8fCFpc0Zpbml0ZShmKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBtYXhBZ2UgaXMgaW52YWxpZFwiKX1wKz1cIjsgTWF4LUFnZT1cIitNYXRoLmZsb29yKGYpfWlmKGEuZG9tYWluKXtpZighbi50ZXN0KGEuZG9tYWluKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBkb21haW4gaXMgaW52YWxpZFwiKX1wKz1cIjsgRG9tYWluPVwiK2EuZG9tYWlufWlmKGEucGF0aCl7aWYoIW4udGVzdChhLnBhdGgpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIHBhdGggaXMgaW52YWxpZFwiKX1wKz1cIjsgUGF0aD1cIithLnBhdGh9aWYoYS5leHBpcmVzKXtpZih0eXBlb2YgYS5leHBpcmVzLnRvVVRDU3RyaW5nIT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwib3B0aW9uIGV4cGlyZXMgaXMgaW52YWxpZFwiKX1wKz1cIjsgRXhwaXJlcz1cIithLmV4cGlyZXMudG9VVENTdHJpbmcoKX1pZihhLmh0dHBPbmx5KXtwKz1cIjsgSHR0cE9ubHlcIn1pZihhLnNlY3VyZSl7cCs9XCI7IFNlY3VyZVwifWlmKGEuc2FtZVNpdGUpe3ZhciB1PXR5cGVvZiBhLnNhbWVTaXRlPT09XCJzdHJpbmdcIj9hLnNhbWVTaXRlLnRvTG93ZXJDYXNlKCk6YS5zYW1lU2l0ZTtzd2l0Y2godSl7Y2FzZSB0cnVlOnArPVwiOyBTYW1lU2l0ZT1TdHJpY3RcIjticmVhaztjYXNlXCJsYXhcIjpwKz1cIjsgU2FtZVNpdGU9TGF4XCI7YnJlYWs7Y2FzZVwic3RyaWN0XCI6cCs9XCI7IFNhbWVTaXRlPVN0cmljdFwiO2JyZWFrO2Nhc2VcIm5vbmVcIjpwKz1cIjsgU2FtZVNpdGU9Tm9uZVwiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IFR5cGVFcnJvcihcIm9wdGlvbiBzYW1lU2l0ZSBpcyBpbnZhbGlkXCIpfX1yZXR1cm4gcH1mdW5jdGlvbiB0cnlEZWNvZGUoZSxyKXt0cnl7cmV0dXJuIHIoZSl9Y2F0Y2gocil7cmV0dXJuIGV9fX0pKCk7bW9kdWxlLmV4cG9ydHM9ZX0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/cookie/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/fresh/index.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/compiled/fresh/index.js ***!
\********************************************************/
/***/ ((module) => {
eval("(()=>{\"use strict\";var e={695:e=>{\n/*!\n * fresh\n * Copyright(c) 2012 TJ Holowaychuk\n * Copyright(c) 2016-2017 Douglas Christopher Wilson\n * MIT Licensed\n */\nvar r=/(?:^|,)\\s*?no-cache\\s*?(?:,|$)/;e.exports=fresh;function fresh(e,a){var t=e[\"if-modified-since\"];var s=e[\"if-none-match\"];if(!t&&!s){return false}var i=e[\"cache-control\"];if(i&&r.test(i)){return false}if(s&&s!==\"*\"){var f=a[\"etag\"];if(!f){return false}var n=true;var u=parseTokenList(s);for(var _=0;_<u.length;_++){var o=u[_];if(o===f||o===\"W/\"+f||\"W/\"+o===f){n=false;break}}if(n){return false}}if(t){var p=a[\"last-modified\"];var v=!p||!(parseHttpDate(p)<=parseHttpDate(t));if(v){return false}}return true}function parseHttpDate(e){var r=e&&Date.parse(e);return typeof r===\"number\"?r:NaN}function parseTokenList(e){var r=0;var a=[];var t=0;for(var s=0,i=e.length;s<i;s++){switch(e.charCodeAt(s)){case 32:if(t===r){t=r=s+1}break;case 44:a.push(e.substring(t,r));t=r=s+1;break;default:r=s+1;break}}a.push(e.substring(t,r));return a}}};var r={};function __nccwpck_require__(a){var t=r[a];if(t!==undefined){return t.exports}var s=r[a]={exports:{}};var i=true;try{e[a](s,s.exports,__nccwpck_require__);i=false}finally{if(i)delete r[a]}return s.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var a=__nccwpck_require__(695);module.exports=a})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2ZyZXNoL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxnQkFBZ0Isb0JBQW9CLDZCQUE2Qix5QkFBeUIsV0FBVyxhQUFhLHlCQUF5QixpQkFBaUIsYUFBYSxlQUFlLGdCQUFnQixPQUFPLGFBQWEsV0FBVyx3QkFBd0IsWUFBWSxXQUFXLEtBQUssV0FBVyxrQ0FBa0MsUUFBUSxPQUFPLE1BQU0sY0FBYyxNQUFNLHlCQUF5QixnREFBZ0QsTUFBTSxjQUFjLFlBQVksMEJBQTBCLHVCQUF1QixpQ0FBaUMsMkJBQTJCLFFBQVEsU0FBUyxRQUFRLHVCQUF1QixJQUFJLEtBQUssd0JBQXdCLGtCQUFrQixRQUFRLE1BQU0saUNBQWlDLFFBQVEsTUFBTSxjQUFjLE9BQU8seUJBQXlCLFlBQVksU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRiwrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2ZyZXNoL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXs2OTU6ZT0+e1xuLyohXG4gKiBmcmVzaFxuICogQ29weXJpZ2h0KGMpIDIwMTIgVEogSG9sb3dheWNodWtcbiAqIENvcHlyaWdodChjKSAyMDE2LTIwMTcgRG91Z2xhcyBDaHJpc3RvcGhlciBXaWxzb25cbiAqIE1JVCBMaWNlbnNlZFxuICovXG52YXIgcj0vKD86XnwsKVxccyo/bm8tY2FjaGVcXHMqPyg/Oix8JCkvO2UuZXhwb3J0cz1mcmVzaDtmdW5jdGlvbiBmcmVzaChlLGEpe3ZhciB0PWVbXCJpZi1tb2RpZmllZC1zaW5jZVwiXTt2YXIgcz1lW1wiaWYtbm9uZS1tYXRjaFwiXTtpZighdCYmIXMpe3JldHVybiBmYWxzZX12YXIgaT1lW1wiY2FjaGUtY29udHJvbFwiXTtpZihpJiZyLnRlc3QoaSkpe3JldHVybiBmYWxzZX1pZihzJiZzIT09XCIqXCIpe3ZhciBmPWFbXCJldGFnXCJdO2lmKCFmKXtyZXR1cm4gZmFsc2V9dmFyIG49dHJ1ZTt2YXIgdT1wYXJzZVRva2VuTGlzdChzKTtmb3IodmFyIF89MDtfPHUubGVuZ3RoO18rKyl7dmFyIG89dVtfXTtpZihvPT09Znx8bz09PVwiVy9cIitmfHxcIlcvXCIrbz09PWYpe249ZmFsc2U7YnJlYWt9fWlmKG4pe3JldHVybiBmYWxzZX19aWYodCl7dmFyIHA9YVtcImxhc3QtbW9kaWZpZWRcIl07dmFyIHY9IXB8fCEocGFyc2VIdHRwRGF0ZShwKTw9cGFyc2VIdHRwRGF0ZSh0KSk7aWYodil7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX1mdW5jdGlvbiBwYXJzZUh0dHBEYXRlKGUpe3ZhciByPWUmJkRhdGUucGFyc2UoZSk7cmV0dXJuIHR5cGVvZiByPT09XCJudW1iZXJcIj9yOk5hTn1mdW5jdGlvbiBwYXJzZVRva2VuTGlzdChlKXt2YXIgcj0wO3ZhciBhPVtdO3ZhciB0PTA7Zm9yKHZhciBzPTAsaT1lLmxlbmd0aDtzPGk7cysrKXtzd2l0Y2goZS5jaGFyQ29kZUF0KHMpKXtjYXNlIDMyOmlmKHQ9PT1yKXt0PXI9cysxfWJyZWFrO2Nhc2UgNDQ6YS5wdXNoKGUuc3Vic3RyaW5nKHQscikpO3Q9cj1zKzE7YnJlYWs7ZGVmYXVsdDpyPXMrMTticmVha319YS5wdXNoKGUuc3Vic3RyaW5nKHQscikpO3JldHVybiBhfX19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18oYSl7dmFyIHQ9clthXTtpZih0IT09dW5kZWZpbmVkKXtyZXR1cm4gdC5leHBvcnRzfXZhciBzPXJbYV09e2V4cG9ydHM6e319O3ZhciBpPXRydWU7dHJ5e2VbYV0ocyxzLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7aT1mYWxzZX1maW5hbGx5e2lmKGkpZGVsZXRlIHJbYV19cmV0dXJuIHMuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIGE9X19uY2N3cGNrX3JlcXVpcmVfXyg2OTUpO21vZHVsZS5leHBvcnRzPWF9KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/fresh/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js":
/*!*****************************************************************!*\
!*** ./node_modules/next/dist/compiled/path-to-regexp/index.js ***!
\*****************************************************************/
/***/ ((module) => {
eval("(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;Object.defineProperty(r,\"__esModule\",{value:true});function lexer(e){var r=[];var n=0;while(n<e.length){var t=e[n];if(t===\"*\"||t===\"+\"||t===\"?\"){r.push({type:\"MODIFIER\",index:n,value:e[n++]});continue}if(t===\"\\\\\"){r.push({type:\"ESCAPED_CHAR\",index:n++,value:e[n++]});continue}if(t===\"{\"){r.push({type:\"OPEN\",index:n,value:e[n++]});continue}if(t===\"}\"){r.push({type:\"CLOSE\",index:n,value:e[n++]});continue}if(t===\":\"){var i=\"\";var a=n+1;while(a<e.length){var o=e.charCodeAt(a);if(o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122||o===95){i+=e[a++];continue}break}if(!i)throw new TypeError(\"Missing parameter name at \"+n);r.push({type:\"NAME\",index:n,value:i});n=a;continue}if(t===\"(\"){var f=1;var u=\"\";var a=n+1;if(e[a]===\"?\"){throw new TypeError('Pattern cannot start with \"?\" at '+a)}while(a<e.length){if(e[a]===\"\\\\\"){u+=e[a++]+e[a++];continue}if(e[a]===\")\"){f--;if(f===0){a++;break}}else if(e[a]===\"(\"){f++;if(e[a+1]!==\"?\"){throw new TypeError(\"Capturing groups are not allowed at \"+a)}}u+=e[a++]}if(f)throw new TypeError(\"Unbalanced pattern at \"+n);if(!u)throw new TypeError(\"Missing pattern at \"+n);r.push({type:\"PATTERN\",index:n,value:u});n=a;continue}r.push({type:\"CHAR\",index:n,value:e[n++]})}r.push({type:\"END\",index:n,value:\"\"});return r}function parse(e,r){if(r===void 0){r={}}var n=lexer(e);var t=r.prefixes,i=t===void 0?\"./\":t;var a=\"[^\"+escapeString(r.delimiter||\"/#?\")+\"]+?\";var o=[];var f=0;var u=0;var p=\"\";var tryConsume=function(e){if(u<n.length&&n[u].type===e)return n[u++].value};var mustConsume=function(e){var r=tryConsume(e);if(r!==undefined)return r;var t=n[u],i=t.type,a=t.index;throw new TypeError(\"Unexpected \"+i+\" at \"+a+\", expected \"+e)};var consumeText=function(){var e=\"\";var r;while(r=tryConsume(\"CHAR\")||tryConsume(\"ESCAPED_CHAR\")){e+=r}return e};while(u<n.length){var v=tryConsume(\"CHAR\");var c=tryConsume(\"NAME\");var s=tryConsume(\"PATTERN\");if(c||s){var d=v||\"\";if(i.indexOf(d)===-1){p+=d;d=\"\"}if(p){o.push(p);p=\"\"}o.push({name:c||f++,prefix:d,suffix:\"\",pattern:s||a,modifier:tryConsume(\"MODIFIER\")||\"\"});continue}var g=v||tryConsume(\"ESCAPED_CHAR\");if(g){p+=g;continue}if(p){o.push(p);p=\"\"}var x=tryConsume(\"OPEN\");if(x){var d=consumeText();var l=tryConsume(\"NAME\")||\"\";var h=tryConsume(\"PATTERN\")||\"\";var m=consumeText();mustConsume(\"CLOSE\");o.push({name:l||(h?f++:\"\"),pattern:l&&!h?a:h,prefix:d,suffix:m,modifier:tryConsume(\"MODIFIER\")||\"\"});continue}mustConsume(\"END\")}return o}r.parse=parse;function compile(e,r){return tokensToFunction(parse(e,r),r)}r.compile=compile;function tokensToFunction(e,r){if(r===void 0){r={}}var n=flags(r);var t=r.encode,i=t===void 0?function(e){return e}:t,a=r.validate,o=a===void 0?true:a;var f=e.map((function(e){if(typeof e===\"object\"){return new RegExp(\"^(?:\"+e.pattern+\")$\",n)}}));return function(r){var n=\"\";for(var t=0;t<e.length;t++){var a=e[t];if(typeof a===\"string\"){n+=a;continue}var u=r?r[a.name]:undefined;var p=a.modifier===\"?\"||a.modifier===\"*\";var v=a.modifier===\"*\"||a.modifier===\"+\";if(Array.isArray(u)){if(!v){throw new TypeError('Expected \"'+a.name+'\" to not repeat, but got an array')}if(u.length===0){if(p)continue;throw new TypeError('Expected \"'+a.name+'\" to not be empty')}for(var c=0;c<u.length;c++){var s=i(u[c],a);if(o&&!f[t].test(s)){throw new TypeError('Expected all \"'+a.name+'\" to match \"'+a.pattern+'\", but got \"'+s+'\"')}n+=a.prefix+s+a.suffix}continue}if(typeof u===\"string\"||typeof u===\"number\"){var s=i(String(u),a);if(o&&!f[t].test(s)){throw new TypeError('Expected \"'+a.name+'\" to match \"'+a.pattern+'\", but got \"'+s+'\"')}n+=a.prefix+s+a.suffix;continue}if(p)continue;var d=v?\"an array\":\"a string\";throw new TypeError('Expected \"'+a.name+'\" to be '+d)}return n}}r.tokensToFunction=tokensToFunction;function match(e,r){var n=[];var t=pathToRegexp(e,n,r);return regexpToFunction(t,n,r)}r.match=match;function regexpToFunction(e,r,n){if(n===void 0){n={}}var t=n.decode,i=t===void 0?function(e){return e}:t;return function(n){var t=e.exec(n);if(!t)return false;var a=t[0],o=t.index;var f=Object.create(null);var _loop_1=function(e){if(t[e]===undefined)return\"continue\";var n=r[e-1];if(n.modifier===\"*\"||n.modifier===\"+\"){f[n.name]=t[e].split(n.prefix+n.suffix).map((function(e){return i(e,n)}))}else{f[n.name]=i(t[e],n)}};for(var u=1;u<t.length;u++){_loop_1(u)}return{path:a,index:o,params:f}}}r.regexpToFunction=regexpToFunction;function escapeString(e){return e.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g,\"\\\\$1\")}function flags(e){return e&&e.sensitive?\"\":\"i\"}function regexpToRegexp(e,r){if(!r)return e;var n=e.source.match(/\\((?!\\?)/g);if(n){for(var t=0;t<n.length;t++){r.push({name:t,prefix:\"\",suffix:\"\",modifier:\"\",pattern:\"\"})}}return e}function arrayToRegexp(e,r,n){var t=e.map((function(e){return pathToRegexp(e,r,n).source}));return new RegExp(\"(?:\"+t.join(\"|\")+\")\",flags(n))}function stringToRegexp(e,r,n){return tokensToRegexp(parse(e,n),r,n)}function tokensToRegexp(e,r,n){if(n===void 0){n={}}var t=n.strict,i=t===void 0?false:t,a=n.start,o=a===void 0?true:a,f=n.end,u=f===void 0?true:f,p=n.encode,v=p===void 0?function(e){return e}:p;var c=\"[\"+escapeString(n.endsWith||\"\")+\"]|$\";var s=\"[\"+escapeString(n.delimiter||\"/#?\")+\"]\";var d=o?\"^\":\"\";for(var g=0,x=e;g<x.length;g++){var l=x[g];if(typeof l===\"string\"){d+=escapeString(v(l))}else{var h=escapeString(v(l.prefix));var m=escapeString(v(l.suffix));if(l.pattern){if(r)r.push(l);if(h||m){if(l.modifier===\"+\"||l.modifier===\"*\"){var E=l.modifier===\"*\"?\"?\":\"\";d+=\"(?:\"+h+\"((?:\"+l.pattern+\")(?:\"+m+h+\"(?:\"+l.pattern+\"))*)\"+m+\")\"+E}else{d+=\"(?:\"+h+\"(\"+l.pattern+\")\"+m+\")\"+l.modifier}}else{d+=\"(\"+l.pattern+\")\"+l.modifier}}else{d+=\"(?:\"+h+m+\")\"+l.modifier}}}if(u){if(!i)d+=s+\"?\";d+=!n.endsWith?\"$\":\"(?=\"+c+\")\"}else{var T=e[e.length-1];var y=typeof T===\"string\"?s.indexOf(T[T.length-1])>-1:T===undefined;if(!i){d+=\"(?:\"+s+\"(?=\"+c+\"))?\"}if(!y){d+=\"(?=\"+s+\"|\"+c+\")\"}}return new RegExp(d,flags(n))}r.tokensToRegexp=tokensToRegexp;function pathToRegexp(e,r,n){if(e instanceof RegExp)return regexpToRegexp(e,r);if(Array.isArray(e))return arrayToRegexp(e,r,n);return stringToRegexp(e,r,n)}r.pathToRegexp=pathToRegexp})();module.exports=e})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtdG8tcmVnZXhwL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxpRkFBaUYsU0FBUyxNQUFNLFFBQVEsc0NBQXNDLFdBQVcsRUFBRSxrQkFBa0IsU0FBUyxRQUFRLGtCQUFrQixXQUFXLDhCQUE4QixRQUFRLHFDQUFxQyxFQUFFLFNBQVMsYUFBYSxRQUFRLDJDQUEyQyxFQUFFLFNBQVMsU0FBUyxHQUFHLFFBQVEsaUNBQWlDLEVBQUUsU0FBUyxTQUFTLEdBQUcsUUFBUSxrQ0FBa0MsRUFBRSxTQUFTLFlBQVksU0FBUyxVQUFVLGtCQUFrQixzQkFBc0Isc0RBQXNELFVBQVUsU0FBUyxNQUFNLDBEQUEwRCxRQUFRLDRCQUE0QixFQUFFLElBQUksU0FBUyxZQUFZLFFBQVEsU0FBUyxVQUFVLGVBQWUsMkRBQTJELGtCQUFrQixnQkFBZ0IsaUJBQWlCLFNBQVMsZUFBZSxJQUFJLFVBQVUsSUFBSSxPQUFPLG9CQUFvQixJQUFJLGlCQUFpQiwrREFBK0QsVUFBVSxxREFBcUQsbURBQW1ELFFBQVEsK0JBQStCLEVBQUUsSUFBSSxTQUFTLFFBQVEsaUNBQWlDLEVBQUUsUUFBUSw0QkFBNEIsRUFBRSxTQUFTLG9CQUFvQixlQUFlLEtBQUssZUFBZSxxQ0FBcUMsa0RBQWtELFNBQVMsUUFBUSxRQUFRLFNBQVMsMkJBQTJCLGtEQUFrRCw0QkFBNEIsb0JBQW9CLDBCQUEwQiw4QkFBOEIsK0RBQStELDJCQUEyQixTQUFTLE1BQU0sd0RBQXdELEtBQUssVUFBVSxrQkFBa0IseUJBQXlCLHlCQUF5Qiw0QkFBNEIsU0FBUyxZQUFZLHNCQUFzQixLQUFLLEtBQUssTUFBTSxVQUFVLEtBQUssUUFBUSxnRkFBZ0YsRUFBRSxTQUFTLG9DQUFvQyxNQUFNLEtBQUssU0FBUyxNQUFNLFVBQVUsS0FBSyx5QkFBeUIsTUFBTSxvQkFBb0IsNkJBQTZCLGdDQUFnQyxvQkFBb0IscUJBQXFCLFFBQVEsMkZBQTJGLEVBQUUsU0FBUyxtQkFBbUIsU0FBUyxjQUFjLHNCQUFzQixzQ0FBc0Msa0JBQWtCLCtCQUErQixlQUFlLEtBQUssZUFBZSx3Q0FBd0MsU0FBUyxvQ0FBb0MseUJBQXlCLHdCQUF3Qiw0Q0FBNEMsR0FBRyxtQkFBbUIsU0FBUyxZQUFZLFdBQVcsS0FBSyxXQUFXLHdCQUF3QixLQUFLLFNBQVMsNEJBQTRCLHlDQUF5Qyx5Q0FBeUMscUJBQXFCLE9BQU8sNkVBQTZFLGlCQUFpQixjQUFjLDZEQUE2RCxZQUFZLFdBQVcsS0FBSyxnQkFBZ0IscUJBQXFCLDJGQUEyRix1QkFBdUIsU0FBUyw2Q0FBNkMscUJBQXFCLHFCQUFxQix1RkFBdUYsdUJBQXVCLFNBQVMsY0FBYyw4QkFBOEIsc0RBQXNELFVBQVUsb0NBQW9DLG9CQUFvQixTQUFTLDBCQUEwQiwrQkFBK0IsY0FBYyxpQ0FBaUMsZUFBZSxLQUFLLHdDQUF3QyxTQUFTLEdBQUcsbUJBQW1CLGdCQUFnQixtQkFBbUIscUJBQXFCLDBCQUEwQix3QkFBd0IscUNBQXFDLGFBQWEsdUNBQXVDLHlEQUF5RCxjQUFjLEdBQUcsS0FBSyxzQkFBc0IsWUFBWSxXQUFXLEtBQUssV0FBVyxPQUFPLDBCQUEwQixvQ0FBb0MseUJBQXlCLCtCQUErQixzQkFBc0Isa0JBQWtCLDZCQUE2Qiw2QkFBNkIsZUFBZSxrQ0FBa0MsTUFBTSxZQUFZLFdBQVcsS0FBSyxRQUFRLGtEQUFrRCxHQUFHLFNBQVMsOEJBQThCLHlCQUF5QixrQ0FBa0MsR0FBRyxrREFBa0QsK0JBQStCLHNDQUFzQywrQkFBK0IsZUFBZSxLQUFLLGtJQUFrSSxTQUFTLEdBQUcsNkNBQTZDLCtDQUErQyxlQUFlLGdCQUFnQixXQUFXLEtBQUssV0FBVyx3QkFBd0Isc0JBQXNCLEtBQUssZ0NBQWdDLGdDQUFnQyxjQUFjLGVBQWUsU0FBUyx1Q0FBdUMsOEJBQThCLHNFQUFzRSxLQUFLLCtDQUErQyxLQUFLLGlDQUFpQyxLQUFLLDhCQUE4QixNQUFNLGVBQWUsK0JBQStCLEtBQUssb0JBQW9CLG9FQUFvRSxPQUFPLHlCQUF5QixPQUFPLHNCQUFzQiw4QkFBOEIsZ0NBQWdDLDZCQUE2QixrREFBa0QsZ0RBQWdELDZCQUE2Qiw0QkFBNEIsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC10by1yZWdleHAvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBlPXt9OygoKT0+e3ZhciByPWU7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTtmdW5jdGlvbiBsZXhlcihlKXt2YXIgcj1bXTt2YXIgbj0wO3doaWxlKG48ZS5sZW5ndGgpe3ZhciB0PWVbbl07aWYodD09PVwiKlwifHx0PT09XCIrXCJ8fHQ9PT1cIj9cIil7ci5wdXNoKHt0eXBlOlwiTU9ESUZJRVJcIixpbmRleDpuLHZhbHVlOmVbbisrXX0pO2NvbnRpbnVlfWlmKHQ9PT1cIlxcXFxcIil7ci5wdXNoKHt0eXBlOlwiRVNDQVBFRF9DSEFSXCIsaW5kZXg6bisrLHZhbHVlOmVbbisrXX0pO2NvbnRpbnVlfWlmKHQ9PT1cIntcIil7ci5wdXNoKHt0eXBlOlwiT1BFTlwiLGluZGV4Om4sdmFsdWU6ZVtuKytdfSk7Y29udGludWV9aWYodD09PVwifVwiKXtyLnB1c2goe3R5cGU6XCJDTE9TRVwiLGluZGV4Om4sdmFsdWU6ZVtuKytdfSk7Y29udGludWV9aWYodD09PVwiOlwiKXt2YXIgaT1cIlwiO3ZhciBhPW4rMTt3aGlsZShhPGUubGVuZ3RoKXt2YXIgbz1lLmNoYXJDb2RlQXQoYSk7aWYobz49NDgmJm88PTU3fHxvPj02NSYmbzw9OTB8fG8+PTk3JiZvPD0xMjJ8fG89PT05NSl7aSs9ZVthKytdO2NvbnRpbnVlfWJyZWFrfWlmKCFpKXRocm93IG5ldyBUeXBlRXJyb3IoXCJNaXNzaW5nIHBhcmFtZXRlciBuYW1lIGF0IFwiK24pO3IucHVzaCh7dHlwZTpcIk5BTUVcIixpbmRleDpuLHZhbHVlOml9KTtuPWE7Y29udGludWV9aWYodD09PVwiKFwiKXt2YXIgZj0xO3ZhciB1PVwiXCI7dmFyIGE9bisxO2lmKGVbYV09PT1cIj9cIil7dGhyb3cgbmV3IFR5cGVFcnJvcignUGF0dGVybiBjYW5ub3Qgc3RhcnQgd2l0aCBcIj9cIiBhdCAnK2EpfXdoaWxlKGE8ZS5sZW5ndGgpe2lmKGVbYV09PT1cIlxcXFxcIil7dSs9ZVthKytdK2VbYSsrXTtjb250aW51ZX1pZihlW2FdPT09XCIpXCIpe2YtLTtpZihmPT09MCl7YSsrO2JyZWFrfX1lbHNlIGlmKGVbYV09PT1cIihcIil7ZisrO2lmKGVbYSsxXSE9PVwiP1wiKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2FwdHVyaW5nIGdyb3VwcyBhcmUgbm90IGFsbG93ZWQgYXQgXCIrYSl9fXUrPWVbYSsrXX1pZihmKXRocm93IG5ldyBUeXBlRXJyb3IoXCJVbmJhbGFuY2VkIHBhdHRlcm4gYXQgXCIrbik7aWYoIXUpdGhyb3cgbmV3IFR5cGVFcnJvcihcIk1pc3NpbmcgcGF0dGVybiBhdCBcIituKTtyLnB1c2goe3R5cGU6XCJQQVRURVJOXCIsaW5kZXg6bix2YWx1ZTp1fSk7bj1hO2NvbnRpbnVlfXIucHVzaCh7dHlwZTpcIkNIQVJcIixpbmRleDpuLHZhbHVlOmVbbisrXX0pfXIucHVzaCh7dHlwZTpcIkVORFwiLGluZGV4Om4sdmFsdWU6XCJcIn0pO3JldHVybiByfWZ1bmN0aW9uIHBhcnNlKGUscil7aWYocj09PXZvaWQgMCl7cj17fX12YXIgbj1sZXhlcihlKTt2YXIgdD1yLnByZWZpeGVzLGk9dD09PXZvaWQgMD9cIi4vXCI6dDt2YXIgYT1cIlteXCIrZXNjYXBlU3RyaW5nKHIuZGVsaW1pdGVyfHxcIi8jP1wiKStcIl0rP1wiO3ZhciBvPVtdO3ZhciBmPTA7dmFyIHU9MDt2YXIgcD1cIlwiO3ZhciB0cnlDb25zdW1lPWZ1bmN0aW9uKGUpe2lmKHU8bi5sZW5ndGgmJm5bdV0udHlwZT09PWUpcmV0dXJuIG5bdSsrXS52YWx1ZX07dmFyIG11c3RDb25zdW1lPWZ1bmN0aW9uKGUpe3ZhciByPXRyeUNvbnN1bWUoZSk7aWYociE9PXVuZGVmaW5lZClyZXR1cm4gcjt2YXIgdD1uW3VdLGk9dC50eXBlLGE9dC5pbmRleDt0aHJvdyBuZXcgVHlwZUVycm9yKFwiVW5leHBlY3RlZCBcIitpK1wiIGF0IFwiK2ErXCIsIGV4cGVjdGVkIFwiK2UpfTt2YXIgY29uc3VtZVRleHQ9ZnVuY3Rpb24oKXt2YXIgZT1cIlwiO3ZhciByO3doaWxlKHI9dHJ5Q29uc3VtZShcIkNIQVJcIil8fHRyeUNvbnN1bWUoXCJFU0NBUEVEX0NIQVJcIikpe2UrPXJ9cmV0dXJuIGV9O3doaWxlKHU8bi5sZW5ndGgpe3ZhciB2PXRyeUNvbnN1bWUoXCJDSEFSXCIpO3ZhciBjPXRyeUNvbnN1bWUoXCJOQU1FXCIpO3ZhciBzPXRyeUNvbnN1bWUoXCJQQVRURVJOXCIpO2lmKGN8fHMpe3ZhciBkPXZ8fFwiXCI7aWYoaS5pbmRleE9mKGQpPT09LTEpe3ArPWQ7ZD1cIlwifWlmKHApe28ucHVzaChwKTtwPVwiXCJ9by5wdXNoKHtuYW1lOmN8fGYrKyxwcmVmaXg6ZCxzdWZmaXg6XCJcIixwYXR0ZXJuOnN8fGEsbW9kaWZpZXI6dHJ5Q29uc3VtZShcIk1PRElGSUVSXCIpfHxcIlwifSk7Y29udGludWV9dmFyIGc9dnx8dHJ5Q29uc3VtZShcIkVTQ0FQRURfQ0hBUlwiKTtpZihnKXtwKz1nO2NvbnRpbnVlfWlmKHApe28ucHVzaChwKTtwPVwiXCJ9dmFyIHg9dHJ5Q29uc3VtZShcIk9QRU5cIik7aWYoeCl7dmFyIGQ9Y29uc3VtZVRleHQoKTt2YXIgbD10cnlDb25zdW1lKFwiTkFNRVwiKXx8XCJcIjt2YXIgaD10cnlDb25zdW1lKFwiUEFUVEVSTlwiKXx8XCJcIjt2YXIgbT1jb25zdW1lVGV4dCgpO211c3RDb25zdW1lKFwiQ0xPU0VcIik7by5wdXNoKHtuYW1lOmx8fChoP2YrKzpcIlwiKSxwYXR0ZXJuOmwmJiFoP2E6aCxwcmVmaXg6ZCxzdWZmaXg6bSxtb2RpZmllcjp0cnlDb25zdW1lKFwiTU9ESUZJRVJcIil8fFwiXCJ9KTtjb250aW51ZX1tdXN0Q29uc3VtZShcIkVORFwiKX1yZXR1cm4gb31yLnBhcnNlPXBhcnNlO2Z1bmN0aW9uIGNvbXBpbGUoZSxyKXtyZXR1cm4gdG9rZW5zVG9GdW5jdGlvbihwYXJzZShlLHIpLHIpfXIuY29tcGlsZT1jb21waWxlO2Z1bmN0aW9uIHRva2Vuc1RvRnVuY3Rpb24oZSxyKXtpZihyPT09dm9pZCAwKXtyPXt9fXZhciBuPWZsYWdzKHIpO3ZhciB0PXIuZW5jb2RlLGk9dD09PXZvaWQgMD9mdW5jdGlvbihlKXtyZXR1cm4gZX06dCxhPXIudmFsaWRhdGUsbz1hPT09dm9pZCAwP3RydWU6YTt2YXIgZj1lLm1hcCgoZnVuY3Rpb24oZSl7aWYodHlwZW9mIGU9PT1cIm9iamVjdFwiKXtyZXR1cm4gbmV3IFJlZ0V4cChcIl4oPzpcIitlLnBhdHRlcm4rXCIpJFwiLG4pfX0pKTtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49XCJcIjtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIGE9ZVt0XTtpZih0eXBlb2YgYT09PVwic3RyaW5nXCIpe24rPWE7Y29udGludWV9dmFyIHU9cj9yW2EubmFtZV06dW5kZWZpbmVkO3ZhciBwPWEubW9kaWZpZXI9PT1cIj9cInx8YS5tb2RpZmllcj09PVwiKlwiO3ZhciB2PWEubW9kaWZpZXI9PT1cIipcInx8YS5tb2RpZmllcj09PVwiK1wiO2lmKEFycmF5LmlzQXJyYXkodSkpe2lmKCF2KXt0aHJvdyBuZXcgVHlwZUVycm9yKCdFeHBlY3RlZCBcIicrYS5uYW1lKydcIiB0byBub3QgcmVwZWF0LCBidXQgZ290IGFuIGFycmF5Jyl9aWYodS5sZW5ndGg9PT0wKXtpZihwKWNvbnRpbnVlO3Rocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIFwiJythLm5hbWUrJ1wiIHRvIG5vdCBiZSBlbXB0eScpfWZvcih2YXIgYz0wO2M8dS5sZW5ndGg7YysrKXt2YXIgcz1pKHVbY10sYSk7aWYobyYmIWZbdF0udGVzdChzKSl7dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYWxsIFwiJythLm5hbWUrJ1wiIHRvIG1hdGNoIFwiJythLnBhdHRlcm4rJ1wiLCBidXQgZ290IFwiJytzKydcIicpfW4rPWEucHJlZml4K3MrYS5zdWZmaXh9Y29udGludWV9aWYodHlwZW9mIHU9PT1cInN0cmluZ1wifHx0eXBlb2YgdT09PVwibnVtYmVyXCIpe3ZhciBzPWkoU3RyaW5nKHUpLGEpO2lmKG8mJiFmW3RdLnRlc3Qocykpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIFwiJythLm5hbWUrJ1wiIHRvIG1hdGNoIFwiJythLnBhdHRlcm4rJ1wiLCBidXQgZ290IFwiJytzKydcIicpfW4rPWEucHJlZml4K3MrYS5zdWZmaXg7Y29udGludWV9aWYocCljb250aW51ZTt2YXIgZD12P1wiYW4gYXJyYXlcIjpcImEgc3RyaW5nXCI7dGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgXCInK2EubmFtZSsnXCIgdG8gYmUgJytkKX1yZXR1cm4gbn19ci50b2tlbnNUb0Z1bmN0aW9uPXRva2Vuc1RvRnVuY3Rpb247ZnVuY3Rpb24gbWF0Y2goZSxyKXt2YXIgbj1bXTt2YXIgdD1wYXRoVG9SZWdleHAoZSxuLHIpO3JldHVybiByZWdleHBUb0Z1bmN0aW9uKHQsbixyKX1yLm1hdGNoPW1hdGNoO2Z1bmN0aW9uIHJlZ2V4cFRvRnVuY3Rpb24oZSxyLG4pe2lmKG49PT12b2lkIDApe249e319dmFyIHQ9bi5kZWNvZGUsaT10PT09dm9pZCAwP2Z1bmN0aW9uKGUpe3JldHVybiBlfTp0O3JldHVybiBmdW5jdGlvbihuKXt2YXIgdD1lLmV4ZWMobik7aWYoIXQpcmV0dXJuIGZhbHNlO3ZhciBhPXRbMF0sbz10LmluZGV4O3ZhciBmPU9iamVjdC5jcmVhdGUobnVsbCk7dmFyIF9sb29wXzE9ZnVuY3Rpb24oZSl7aWYodFtlXT09PXVuZGVmaW5lZClyZXR1cm5cImNvbnRpbnVlXCI7dmFyIG49cltlLTFdO2lmKG4ubW9kaWZpZXI9PT1cIipcInx8bi5tb2RpZmllcj09PVwiK1wiKXtmW24ubmFtZV09dFtlXS5zcGxpdChuLnByZWZpeCtuLnN1ZmZpeCkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gaShlLG4pfSkpfWVsc2V7ZltuLm5hbWVdPWkodFtlXSxuKX19O2Zvcih2YXIgdT0xO3U8dC5sZW5ndGg7dSsrKXtfbG9vcF8xKHUpfXJldHVybntwYXRoOmEsaW5kZXg6byxwYXJhbXM6Zn19fXIucmVnZXhwVG9GdW5jdGlvbj1yZWdleHBUb0Z1bmN0aW9uO2Z1bmN0aW9uIGVzY2FwZVN0cmluZyhlKXtyZXR1cm4gZS5yZXBsYWNlKC8oWy4rKj89XiE6JHt9KClbXFxdfC9cXFxcXSkvZyxcIlxcXFwkMVwiKX1mdW5jdGlvbiBmbGFncyhlKXtyZXR1cm4gZSYmZS5zZW5zaXRpdmU/XCJcIjpcImlcIn1mdW5jdGlvbiByZWdleHBUb1JlZ2V4cChlLHIpe2lmKCFyKXJldHVybiBlO3ZhciBuPWUuc291cmNlLm1hdGNoKC9cXCgoPyFcXD8pL2cpO2lmKG4pe2Zvcih2YXIgdD0wO3Q8bi5sZW5ndGg7dCsrKXtyLnB1c2goe25hbWU6dCxwcmVmaXg6XCJcIixzdWZmaXg6XCJcIixtb2RpZmllcjpcIlwiLHBhdHRlcm46XCJcIn0pfX1yZXR1cm4gZX1mdW5jdGlvbiBhcnJheVRvUmVnZXhwKGUscixuKXt2YXIgdD1lLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHBhdGhUb1JlZ2V4cChlLHIsbikuc291cmNlfSkpO3JldHVybiBuZXcgUmVnRXhwKFwiKD86XCIrdC5qb2luKFwifFwiKStcIilcIixmbGFncyhuKSl9ZnVuY3Rpb24gc3RyaW5nVG9SZWdleHAoZSxyLG4pe3JldHVybiB0b2tlbnNUb1JlZ2V4cChwYXJzZShlLG4pLHIsbil9ZnVuY3Rpb24gdG9rZW5zVG9SZWdleHAoZSxyLG4pe2lmKG49PT12b2lkIDApe249e319dmFyIHQ9bi5zdHJpY3QsaT10PT09dm9pZCAwP2ZhbHNlOnQsYT1uLnN0YXJ0LG89YT09PXZvaWQgMD90cnVlOmEsZj1uLmVuZCx1PWY9PT12b2lkIDA/dHJ1ZTpmLHA9bi5lbmNvZGUsdj1wPT09dm9pZCAwP2Z1bmN0aW9uKGUpe3JldHVybiBlfTpwO3ZhciBjPVwiW1wiK2VzY2FwZVN0cmluZyhuLmVuZHNXaXRofHxcIlwiKStcIl18JFwiO3ZhciBzPVwiW1wiK2VzY2FwZVN0cmluZyhuLmRlbGltaXRlcnx8XCIvIz9cIikrXCJdXCI7dmFyIGQ9bz9cIl5cIjpcIlwiO2Zvcih2YXIgZz0wLHg9ZTtnPHgubGVuZ3RoO2crKyl7dmFyIGw9eFtnXTtpZih0eXBlb2YgbD09PVwic3RyaW5nXCIpe2QrPWVzY2FwZVN0cmluZyh2KGwpKX1lbHNle3ZhciBoPWVzY2FwZVN0cmluZyh2KGwucHJlZml4KSk7dmFyIG09ZXNjYXBlU3RyaW5nKHYobC5zdWZmaXgpKTtpZihsLnBhdHRlcm4pe2lmKHIpci5wdXNoKGwpO2lmKGh8fG0pe2lmKGwubW9kaWZpZXI9PT1cIitcInx8bC5tb2RpZmllcj09PVwiKlwiKXt2YXIgRT1sLm1vZGlmaWVyPT09XCIqXCI/XCI/XCI6XCJcIjtkKz1cIig/OlwiK2grXCIoKD86XCIrbC5wYXR0ZXJuK1wiKSg/OlwiK20raCtcIig/OlwiK2wucGF0dGVybitcIikpKilcIittK1wiKVwiK0V9ZWxzZXtkKz1cIig/OlwiK2grXCIoXCIrbC5wYXR0ZXJuK1wiKVwiK20rXCIpXCIrbC5tb2RpZmllcn19ZWxzZXtkKz1cIihcIitsLnBhdHRlcm4rXCIpXCIrbC5tb2RpZmllcn19ZWxzZXtkKz1cIig/OlwiK2grbStcIilcIitsLm1vZGlmaWVyfX19aWYodSl7aWYoIWkpZCs9cytcIj9cIjtkKz0hbi5lbmRzV2l0aD9cIiRcIjpcIig/PVwiK2MrXCIpXCJ9ZWxzZXt2YXIgVD1lW2UubGVuZ3RoLTFdO3ZhciB5PXR5cGVvZiBUPT09XCJzdHJpbmdcIj9zLmluZGV4T2YoVFtULmxlbmd0aC0xXSk+LTE6VD09PXVuZGVmaW5lZDtpZighaSl7ZCs9XCIoPzpcIitzK1wiKD89XCIrYytcIikpP1wifWlmKCF5KXtkKz1cIig/PVwiK3MrXCJ8XCIrYytcIilcIn19cmV0dXJuIG5ldyBSZWdFeHAoZCxmbGFncyhuKSl9ci50b2tlbnNUb1JlZ2V4cD10b2tlbnNUb1JlZ2V4cDtmdW5jdGlvbiBwYXRoVG9SZWdleHAoZSxyLG4pe2lmKGUgaW5zdGFuY2VvZiBSZWdFeHApcmV0dXJuIHJlZ2V4cFRvUmVnZXhwKGUscik7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gYXJyYXlUb1JlZ2V4cChlLHIsbik7cmV0dXJuIHN0cmluZ1RvUmVnZXhwKGUscixuKX1yLnBhdGhUb1JlZ2V4cD1wYXRoVG9SZWdleHB9KSgpO21vZHVsZS5leHBvcnRzPWV9KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js":
/*!**************************************************************************************************************************!*\
!*** ./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js ***!
\**************************************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("/**\n * @license React\n * react-server-dom-webpack-client.node.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */ \n true && function() {\n function resolveClientReference(bundlerConfig, metadata) {\n if (bundlerConfig) {\n var moduleExports = bundlerConfig[metadata[0]];\n if (bundlerConfig = moduleExports && moduleExports[metadata[2]]) moduleExports = bundlerConfig.name;\n else {\n bundlerConfig = moduleExports && moduleExports[\"*\"];\n if (!bundlerConfig) throw Error('Could not find the module \"' + metadata[0] + '\" in the React Server Consumer Manifest. This is probably a bug in the React Server Components bundler.');\n moduleExports = metadata[2];\n }\n return 4 === metadata.length ? [\n bundlerConfig.id,\n bundlerConfig.chunks,\n moduleExports,\n 1\n ] : [\n bundlerConfig.id,\n bundlerConfig.chunks,\n moduleExports\n ];\n }\n return metadata;\n }\n function resolveServerReference(bundlerConfig, id) {\n var name = \"\", resolvedModuleData = bundlerConfig[id];\n if (resolvedModuleData) name = resolvedModuleData.name;\n else {\n var idx = id.lastIndexOf(\"#\");\n -1 !== idx && (name = id.slice(idx + 1), resolvedModuleData = bundlerConfig[id.slice(0, idx)]);\n if (!resolvedModuleData) throw Error('Could not find the module \"' + id + '\" in the React Server Manifest. This is probably a bug in the React Server Components bundler.');\n }\n return resolvedModuleData.async ? [\n resolvedModuleData.id,\n resolvedModuleData.chunks,\n name,\n 1\n ] : [\n resolvedModuleData.id,\n resolvedModuleData.chunks,\n name\n ];\n }\n function requireAsyncModule(id) {\n var promise = globalThis.__next_require__(id);\n if (\"function\" !== typeof promise.then || \"fulfilled\" === promise.status) return null;\n promise.then(function(value) {\n promise.status = \"fulfilled\";\n promise.value = value;\n }, function(reason) {\n promise.status = \"rejected\";\n promise.reason = reason;\n });\n return promise;\n }\n function ignoreReject() {}\n function preloadModule(metadata) {\n for(var chunks = metadata[1], promises = [], i = 0; i < chunks.length;){\n var chunkId = chunks[i++];\n chunks[i++];\n var entry = chunkCache.get(chunkId);\n if (void 0 === entry) {\n entry = __webpack_require__.e(chunkId);\n promises.push(entry);\n var resolve = chunkCache.set.bind(chunkCache, chunkId, null);\n entry.then(resolve, ignoreReject);\n chunkCache.set(chunkId, entry);\n } else null !== entry && promises.push(entry);\n }\n return 4 === metadata.length ? 0 === promises.length ? requireAsyncModule(metadata[0]) : Promise.all(promises).then(function() {\n return requireAsyncModule(metadata[0]);\n }) : 0 < promises.length ? Promise.all(promises) : null;\n }\n function requireModule(metadata) {\n var moduleExports = globalThis.__next_require__(metadata[0]);\n if (4 === metadata.length && \"function\" === typeof moduleExports.then) if (\"fulfilled\" === moduleExports.status) moduleExports = moduleExports.value;\n else throw moduleExports.reason;\n return \"*\" === metadata[2] ? moduleExports : \"\" === metadata[2] ? moduleExports.__esModule ? moduleExports.default : moduleExports : moduleExports[metadata[2]];\n }\n function prepareDestinationWithChunks(moduleLoading, chunks, nonce$jscomp$0) {\n if (null !== moduleLoading) for(var i = 1; i < chunks.length; i += 2){\n var nonce = nonce$jscomp$0, JSCompiler_temp_const = ReactDOMSharedInternals.d, JSCompiler_temp_const$jscomp$0 = JSCompiler_temp_const.X, JSCompiler_temp_const$jscomp$1 = moduleLoading.prefix + chunks[i];\n var JSCompiler_inline_result = moduleLoading.crossOrigin;\n JSCompiler_inline_result = \"string\" === typeof JSCompiler_inline_result ? \"use-credentials\" === JSCompiler_inline_result ? JSCompiler_inline_result : \"\" : void 0;\n JSCompiler_temp_const$jscomp$0.call(JSCompiler_temp_const, JSCompiler_temp_const$jscomp$1, {\n crossOrigin: JSCompiler_inline_result,\n nonce: nonce\n });\n }\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function isObjectPrototype(object) {\n if (!object) return !1;\n var ObjectPrototype = Object.prototype;\n if (object === ObjectPrototype) return !0;\n if (getPrototypeOf(object)) return !1;\n object = Object.getOwnPropertyNames(object);\n for(var i = 0; i < object.length; i++)if (!(object[i] in ObjectPrototype)) return !1;\n return !0;\n }\n function isSimpleObject(object) {\n if (!isObjectPrototype(getPrototypeOf(object))) return !1;\n for(var names = Object.getOwnPropertyNames(object), i = 0; i < names.length; i++){\n var descriptor = Object.getOwnPropertyDescriptor(object, names[i]);\n if (!descriptor || !descriptor.enumerable && (\"key\" !== names[i] && \"ref\" !== names[i] || \"function\" !== typeof descriptor.get)) return !1;\n }\n return !0;\n }\n function objectName(object) {\n object = Object.prototype.toString.call(object);\n return object.slice(8, object.length - 1);\n }\n function describeKeyForErrorMessage(key) {\n var encodedKey = JSON.stringify(key);\n return '\"' + key + '\"' === encodedKey ? key : encodedKey;\n }\n function describeValueForErrorMessage(value) {\n switch(typeof value){\n case \"string\":\n return JSON.stringify(10 >= value.length ? value : value.slice(0, 10) + \"...\");\n case \"object\":\n if (isArrayImpl(value)) return \"[...]\";\n if (null !== value && value.$$typeof === CLIENT_REFERENCE_TAG) return \"client\";\n value = objectName(value);\n return \"Object\" === value ? \"{...}\" : value;\n case \"function\":\n return value.$$typeof === CLIENT_REFERENCE_TAG ? \"client\" : (value = value.displayName || value.name) ? \"function \" + value : \"function\";\n default:\n return String(value);\n }\n }\n function describeElementType(type) {\n if (\"string\" === typeof type) return type;\n switch(type){\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type) switch(type.$$typeof){\n case REACT_FORWARD_REF_TYPE:\n return describeElementType(type.render);\n case REACT_MEMO_TYPE:\n return describeElementType(type.type);\n case REACT_LAZY_TYPE:\n var payload = type._payload;\n type = type._init;\n try {\n return describeElementType(type(payload));\n } catch (x) {}\n }\n return \"\";\n }\n function describeObjectForErrorMessage(objectOrArray, expandedName) {\n var objKind = objectName(objectOrArray);\n if (\"Object\" !== objKind && \"Array\" !== objKind) return objKind;\n var start = -1, length = 0;\n if (isArrayImpl(objectOrArray)) if (jsxChildrenParents.has(objectOrArray)) {\n var type = jsxChildrenParents.get(objectOrArray);\n objKind = \"<\" + describeElementType(type) + \">\";\n for(var i = 0; i < objectOrArray.length; i++){\n var value = objectOrArray[i];\n value = \"string\" === typeof value ? value : \"object\" === typeof value && null !== value ? \"{\" + describeObjectForErrorMessage(value) + \"}\" : \"{\" + describeValueForErrorMessage(value) + \"}\";\n \"\" + i === expandedName ? (start = objKind.length, length = value.length, objKind += value) : objKind = 15 > value.length && 40 > objKind.length + value.length ? objKind + value : objKind + \"{...}\";\n }\n objKind += \"</\" + describeElementType(type) + \">\";\n } else {\n objKind = \"[\";\n for(type = 0; type < objectOrArray.length; type++)0 < type && (objKind += \", \"), i = objectOrArray[type], i = \"object\" === typeof i && null !== i ? describeObjectForErrorMessage(i) : describeValueForErrorMessage(i), \"\" + type === expandedName ? (start = objKind.length, length = i.length, objKind += i) : objKind = 10 > i.length && 40 > objKind.length + i.length ? objKind + i : objKind + \"...\";\n objKind += \"]\";\n }\n else if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE) objKind = \"<\" + describeElementType(objectOrArray.type) + \"/>\";\n else {\n if (objectOrArray.$$typeof === CLIENT_REFERENCE_TAG) return \"client\";\n if (jsxPropsParents.has(objectOrArray)) {\n objKind = jsxPropsParents.get(objectOrArray);\n objKind = \"<\" + (describeElementType(objKind) || \"...\");\n type = Object.keys(objectOrArray);\n for(i = 0; i < type.length; i++){\n objKind += \" \";\n value = type[i];\n objKind += describeKeyForErrorMessage(value) + \"=\";\n var _value2 = objectOrArray[value];\n var _substr2 = value === expandedName && \"object\" === typeof _value2 && null !== _value2 ? describeObjectForErrorMessage(_value2) : describeValueForErrorMessage(_value2);\n \"string\" !== typeof _value2 && (_substr2 = \"{\" + _substr2 + \"}\");\n value === expandedName ? (start = objKind.length, length = _substr2.length, objKind += _substr2) : objKind = 10 > _substr2.length && 40 > objKind.length + _substr2.length ? objKind + _substr2 : objKind + \"...\";\n }\n objKind += \">\";\n } else {\n objKind = \"{\";\n type = Object.keys(objectOrArray);\n for(i = 0; i < type.length; i++)0 < i && (objKind += \", \"), value = type[i], objKind += describeKeyForErrorMessage(value) + \": \", _value2 = objectOrArray[value], _value2 = \"object\" === typeof _value2 && null !== _value2 ? describeObjectForErrorMessage(_value2) : describeValueForErrorMessage(_value2), value === expandedName ? (start = objKind.length, length = _value2.length, objKind += _value2) : objKind = 10 > _value2.length && 40 > objKind.length + _value2.length ? objKind + _value2 : objKind + \"...\";\n objKind += \"}\";\n }\n }\n return void 0 === expandedName ? objKind : -1 < start && 0 < length ? (objectOrArray = \" \".repeat(start) + \"^\".repeat(length), \"\\n \" + objKind + \"\\n \" + objectOrArray) : \"\\n \" + objKind;\n }\n function serializeNumber(number) {\n return Number.isFinite(number) ? 0 === number && -Infinity === 1 / number ? \"$-0\" : number : Infinity === number ? \"$Infinity\" : -Infinity === number ? \"$-Infinity\" : \"$NaN\";\n }\n function processReply(root, formFieldPrefix, temporaryReferences, resolve, reject) {\n function serializeTypedArray(tag, typedArray) {\n typedArray = new Blob([\n new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength)\n ]);\n var blobId = nextPartId++;\n null === formData && (formData = new FormData());\n formData.append(formFieldPrefix + blobId, typedArray);\n return \"$\" + tag + blobId.toString(16);\n }\n function serializeBinaryReader(reader) {\n function progress(entry) {\n entry.done ? (entry = nextPartId++, data.append(formFieldPrefix + entry, new Blob(buffer)), data.append(formFieldPrefix + streamId, '\"$o' + entry.toString(16) + '\"'), data.append(formFieldPrefix + streamId, \"C\"), pendingParts--, 0 === pendingParts && resolve(data)) : (buffer.push(entry.value), reader.read(new Uint8Array(1024)).then(progress, reject));\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++, buffer = [];\n reader.read(new Uint8Array(1024)).then(progress, reject);\n return \"$r\" + streamId.toString(16);\n }\n function serializeReader(reader) {\n function progress(entry) {\n if (entry.done) data.append(formFieldPrefix + streamId, \"C\"), pendingParts--, 0 === pendingParts && resolve(data);\n else try {\n var partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, partJSON);\n reader.read().then(progress, reject);\n } catch (x) {\n reject(x);\n }\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++;\n reader.read().then(progress, reject);\n return \"$R\" + streamId.toString(16);\n }\n function serializeReadableStream(stream) {\n try {\n var binaryReader = stream.getReader({\n mode: \"byob\"\n });\n } catch (x) {\n return serializeReader(stream.getReader());\n }\n return serializeBinaryReader(binaryReader);\n }\n function serializeAsyncIterable(iterable, iterator) {\n function progress(entry) {\n if (entry.done) {\n if (void 0 === entry.value) data.append(formFieldPrefix + streamId, \"C\");\n else try {\n var partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, \"C\" + partJSON);\n } catch (x) {\n reject(x);\n return;\n }\n pendingParts--;\n 0 === pendingParts && resolve(data);\n } else try {\n var _partJSON = JSON.stringify(entry.value, resolveToJSON);\n data.append(formFieldPrefix + streamId, _partJSON);\n iterator.next().then(progress, reject);\n } catch (x$0) {\n reject(x$0);\n }\n }\n null === formData && (formData = new FormData());\n var data = formData;\n pendingParts++;\n var streamId = nextPartId++;\n iterable = iterable === iterator;\n iterator.next().then(progress, reject);\n return \"$\" + (iterable ? \"x\" : \"X\") + streamId.toString(16);\n }\n function resolveToJSON(key, value) {\n var originalValue = this[key];\n \"object\" !== typeof originalValue || originalValue === value || originalValue instanceof Date || (\"Object\" !== objectName(originalValue) ? console.error(\"Only plain objects can be passed to Server Functions from the Client. %s objects are not supported.%s\", objectName(originalValue), describeObjectForErrorMessage(this, key)) : console.error(\"Only plain objects can be passed to Server Functions from the Client. Objects with toJSON methods are not supported. Convert it manually to a simple value before passing it to props.%s\", describeObjectForErrorMessage(this, key)));\n if (null === value) return null;\n if (\"object\" === typeof value) {\n switch(value.$$typeof){\n case REACT_ELEMENT_TYPE:\n if (void 0 !== temporaryReferences && -1 === key.indexOf(\":\")) {\n var parentReference = writtenObjects.get(this);\n if (void 0 !== parentReference) return temporaryReferences.set(parentReference + \":\" + key, value), \"$T\";\n }\n throw Error(\"React Element cannot be passed to Server Functions from the Client without a temporary reference set. Pass a TemporaryReferenceSet to the options.\" + describeObjectForErrorMessage(this, key));\n case REACT_LAZY_TYPE:\n originalValue = value._payload;\n var init = value._init;\n null === formData && (formData = new FormData());\n pendingParts++;\n try {\n parentReference = init(originalValue);\n var lazyId = nextPartId++, partJSON = serializeModel(parentReference, lazyId);\n formData.append(formFieldPrefix + lazyId, partJSON);\n return \"$\" + lazyId.toString(16);\n } catch (x) {\n if (\"object\" === typeof x && null !== x && \"function\" === typeof x.then) {\n pendingParts++;\n var _lazyId = nextPartId++;\n parentReference = function() {\n try {\n var _partJSON2 = serializeModel(value, _lazyId), _data = formData;\n _data.append(formFieldPrefix + _lazyId, _partJSON2);\n pendingParts--;\n 0 === pendingParts && resolve(_data);\n } catch (reason) {\n reject(reason);\n }\n };\n x.then(parentReference, parentReference);\n return \"$\" + _lazyId.toString(16);\n }\n reject(x);\n return null;\n } finally{\n pendingParts--;\n }\n }\n if (\"function\" === typeof value.then) {\n null === formData && (formData = new FormData());\n pendingParts++;\n var promiseId = nextPartId++;\n value.then(function(partValue) {\n try {\n var _partJSON3 = serializeModel(partValue, promiseId);\n partValue = formData;\n partValue.append(formFieldPrefix + promiseId, _partJSON3);\n pendingParts--;\n 0 === pendingParts && resolve(partValue);\n } catch (reason) {\n reject(reason);\n }\n }, reject);\n return \"$@\" + promiseId.toString(16);\n }\n parentReference = writtenObjects.get(value);\n if (void 0 !== parentReference) if (modelRoot === value) modelRoot = null;\n else return parentReference;\n else -1 === key.indexOf(\":\") && (parentReference = writtenObjects.get(this), void 0 !== parentReference && (parentReference = parentReference + \":\" + key, writtenObjects.set(value, parentReference), void 0 !== temporaryReferences && temporaryReferences.set(parentReference, value)));\n if (isArrayImpl(value)) return value;\n if (value instanceof FormData) {\n null === formData && (formData = new FormData());\n var _data3 = formData;\n key = nextPartId++;\n var prefix = formFieldPrefix + key + \"_\";\n value.forEach(function(originalValue, originalKey) {\n _data3.append(prefix + originalKey, originalValue);\n });\n return \"$K\" + key.toString(16);\n }\n if (value instanceof Map) return key = nextPartId++, parentReference = serializeModel(Array.from(value), key), null === formData && (formData = new FormData()), formData.append(formFieldPrefix + key, parentReference), \"$Q\" + key.toString(16);\n if (value instanceof Set) return key = nextPartId++, parentReference = serializeModel(Array.from(value), key), null === formData && (formData = new FormData()), formData.append(formFieldPrefix + key, parentReference), \"$W\" + key.toString(16);\n if (value instanceof ArrayBuffer) return key = new Blob([\n value\n ]), parentReference = nextPartId++, null === formData && (formData = new FormData()), formData.append(formFieldPrefix + parentReference, key), \"$A\" + parentReference.toString(16);\n if (value instanceof Int8Array) return serializeTypedArray(\"O\", value);\n if (value instanceof Uint8Array) return serializeTypedArray(\"o\", value);\n if (value instanceof Uint8ClampedArray) return serializeTypedArray(\"U\", value);\n if (value instanceof Int16Array) return serializeTypedArray(\"S\", value);\n if (value instanceof Uint16Array) return serializeTypedArray(\"s\", value);\n if (value instanceof Int32Array) return serializeTypedArray(\"L\", value);\n if (value instanceof Uint32Array) return serializeTypedArray(\"l\", value);\n if (value instanceof Float32Array) return serializeTypedArray(\"G\", value);\n if (value instanceof Float64Array) return serializeTypedArray(\"g\", value);\n if (value instanceof BigInt64Array) return serializeTypedArray(\"M\", value);\n if (value instanceof BigUint64Array) return serializeTypedArray(\"m\", value);\n if (value instanceof DataView) return serializeTypedArray(\"V\", value);\n if (\"function\" === typeof Blob && value instanceof Blob) return null === formData && (formData = new FormData()), key = nextPartId++, formData.append(formFieldPrefix + key, value), \"$B\" + key.toString(16);\n if (parentReference = getIteratorFn(value)) return parentReference = parentReference.call(value), parentReference === value ? (key = nextPartId++, parentReference = serializeModel(Array.from(parentReference), key), null === formData && (formData = new FormData()), formData.append(formFieldPrefix + key, parentReference), \"$i\" + key.toString(16)) : Array.from(parentReference);\n if (\"function\" === typeof ReadableStream && value instanceof ReadableStream) return serializeReadableStream(value);\n parentReference = value[ASYNC_ITERATOR];\n if (\"function\" === typeof parentReference) return serializeAsyncIterable(value, parentReference.call(value));\n parentReference = getPrototypeOf(value);\n if (parentReference !== ObjectPrototype && (null === parentReference || null !== getPrototypeOf(parentReference))) {\n if (void 0 === temporaryReferences) throw Error(\"Only plain objects, and a few built-ins, can be passed to Server Functions. Classes or null prototypes are not supported.\" + describeObjectForErrorMessage(this, key));\n return \"$T\";\n }\n value.$$typeof === REACT_CONTEXT_TYPE ? console.error(\"React Context Providers cannot be passed to Server Functions from the Client.%s\", describeObjectForErrorMessage(this, key)) : \"Object\" !== objectName(value) ? console.error(\"Only plain objects can be passed to Server Functions from the Client. %s objects are not supported.%s\", objectName(value), describeObjectForErrorMessage(this, key)) : isSimpleObject(value) ? Object.getOwnPropertySymbols && (parentReference = Object.getOwnPropertySymbols(value), 0 < parentReference.length && console.error(\"Only plain objects can be passed to Server Functions from the Client. Objects with symbol properties like %s are not supported.%s\", parentReference[0].description, describeObjectForErrorMessage(this, key))) : console.error(\"Only plain objects can be passed to Server Functions from the Client. Classes or other objects with methods are not supported.%s\", describeObjectForErrorMessage(this, key));\n return value;\n }\n if (\"string\" === typeof value) {\n if (\"Z\" === value[value.length - 1] && this[key] instanceof Date) return \"$D\" + value;\n key = \"$\" === value[0] ? \"$\" + value : value;\n return key;\n }\n if (\"boolean\" === typeof value) return value;\n if (\"number\" === typeof value) return serializeNumber(value);\n if (\"undefined\" === typeof value) return \"$undefined\";\n if (\"function\" === typeof value) {\n parentReference = knownServerReferences.get(value);\n if (void 0 !== parentReference) return key = JSON.stringify({\n id: parentReference.id,\n bound: parentReference.bound\n }, resolveToJSON), null === formData && (formData = new FormData()), parentReference = nextPartId++, formData.set(formFieldPrefix + parentReference, key), \"$F\" + parentReference.toString(16);\n if (void 0 !== temporaryReferences && -1 === key.indexOf(\":\") && (parentReference = writtenObjects.get(this), void 0 !== parentReference)) return temporaryReferences.set(parentReference + \":\" + key, value), \"$T\";\n throw Error(\"Client Functions cannot be passed directly to Server Functions. Only Functions passed from the Server can be passed back again.\");\n }\n if (\"symbol\" === typeof value) {\n if (void 0 !== temporaryReferences && -1 === key.indexOf(\":\") && (parentReference = writtenObjects.get(this), void 0 !== parentReference)) return temporaryReferences.set(parentReference + \":\" + key, value), \"$T\";\n throw Error(\"Symbols cannot be passed to a Server Function without a temporary reference set. Pass a TemporaryReferenceSet to the options.\" + describeObjectForErrorMessage(this, key));\n }\n if (\"bigint\" === typeof value) return \"$n\" + value.toString(10);\n throw Error(\"Type \" + typeof value + \" is not supported as an argument to a Server Function.\");\n }\n function serializeModel(model, id) {\n \"object\" === typeof model && null !== model && (id = \"$\" + id.toString(16), writtenObjects.set(model, id), void 0 !== temporaryReferences && temporaryReferences.set(id, model));\n modelRoot = model;\n return JSON.stringify(model, resolveToJSON);\n }\n var nextPartId = 1, pendingParts = 0, formData = null, writtenObjects = new WeakMap(), modelRoot = root, json = serializeModel(root, 0);\n null === formData ? resolve(json) : (formData.set(formFieldPrefix + \"0\", json), 0 === pendingParts && resolve(formData));\n return function() {\n 0 < pendingParts && (pendingParts = 0, null === formData ? resolve(json) : resolve(formData));\n };\n }\n function encodeFormData(reference) {\n var resolve, reject, thenable = new Promise(function(res, rej) {\n resolve = res;\n reject = rej;\n });\n processReply(reference, \"\", void 0, function(body) {\n if (\"string\" === typeof body) {\n var data = new FormData();\n data.append(\"0\", body);\n body = data;\n }\n thenable.status = \"fulfilled\";\n thenable.value = body;\n resolve(body);\n }, function(e) {\n thenable.status = \"rejected\";\n thenable.reason = e;\n reject(e);\n });\n return thenable;\n }\n function defaultEncodeFormAction(identifierPrefix) {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) throw Error(\"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\");\n var data = null;\n if (null !== referenceClosure.bound) {\n data = boundCache.get(referenceClosure);\n data || (data = encodeFormData({\n id: referenceClosure.id,\n bound: referenceClosure.bound\n }), boundCache.set(referenceClosure, data));\n if (\"rejected\" === data.status) throw data.reason;\n if (\"fulfilled\" !== data.status) throw data;\n referenceClosure = data.value;\n var prefixedData = new FormData();\n referenceClosure.forEach(function(value, key) {\n prefixedData.append(\"$ACTION_\" + identifierPrefix + \":\" + key, value);\n });\n data = prefixedData;\n referenceClosure = \"$ACTION_REF_\" + identifierPrefix;\n } else referenceClosure = \"$ACTION_ID_\" + referenceClosure.id;\n return {\n name: referenceClosure,\n method: \"POST\",\n encType: \"multipart/form-data\",\n data: data\n };\n }\n function isSignatureEqual(referenceId, numberOfBoundArgs) {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) throw Error(\"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\");\n if (referenceClosure.id !== referenceId) return !1;\n var boundPromise = referenceClosure.bound;\n if (null === boundPromise) return 0 === numberOfBoundArgs;\n switch(boundPromise.status){\n case \"fulfilled\":\n return boundPromise.value.length === numberOfBoundArgs;\n case \"pending\":\n throw boundPromise;\n case \"rejected\":\n throw boundPromise.reason;\n default:\n throw \"string\" !== typeof boundPromise.status && (boundPromise.status = \"pending\", boundPromise.then(function(boundArgs) {\n boundPromise.status = \"fulfilled\";\n boundPromise.value = boundArgs;\n }, function(error) {\n boundPromise.status = \"rejected\";\n boundPromise.reason = error;\n })), boundPromise;\n }\n }\n function createFakeServerFunction(name, filename, sourceMap, line, col, environmentName, innerFunction) {\n name || (name = \"<anonymous>\");\n var encodedName = JSON.stringify(name);\n 1 >= line ? (line = encodedName.length + 7, col = \"s=>({\" + encodedName + \" \".repeat(col < line ? 0 : col - line) + \":(...args) => s(...args)})\\n/* This module is a proxy to a Server Action. Turn on Source Maps to see the server source. */\") : col = \"/* This module is a proxy to a Server Action. Turn on Source Maps to see the server source. */\" + \"\\n\".repeat(line - 2) + \"server=>({\" + encodedName + \":\\n\" + \" \".repeat(1 > col ? 0 : col - 1) + \"(...args) => server(...args)})\";\n filename.startsWith(\"/\") && (filename = \"file://\" + filename);\n sourceMap ? (col += \"\\n//# sourceURL=rsc://React/\" + encodeURIComponent(environmentName) + \"/\" + encodeURI(filename) + \"?s\" + fakeServerFunctionIdx++, col += \"\\n//# sourceMappingURL=\" + sourceMap) : filename && (col += \"\\n//# sourceURL=\" + filename);\n try {\n return (0, eval)(col)(innerFunction)[name];\n } catch (x) {\n return innerFunction;\n }\n }\n function registerBoundServerReference(reference, id, bound, encodeFormAction) {\n knownServerReferences.has(reference) || (knownServerReferences.set(reference, {\n id: id,\n originalBind: reference.bind,\n bound: bound\n }), Object.defineProperties(reference, {\n $$FORM_ACTION: {\n value: void 0 === encodeFormAction ? defaultEncodeFormAction : function() {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) throw Error(\"Tried to encode a Server Action from a different instance than the encoder is from. This is a bug in React.\");\n var boundPromise = referenceClosure.bound;\n null === boundPromise && (boundPromise = Promise.resolve([]));\n return encodeFormAction(referenceClosure.id, boundPromise);\n }\n },\n $$IS_SIGNATURE_EQUAL: {\n value: isSignatureEqual\n },\n bind: {\n value: bind\n }\n }));\n }\n function bind() {\n var referenceClosure = knownServerReferences.get(this);\n if (!referenceClosure) return FunctionBind.apply(this, arguments);\n var newFn = referenceClosure.originalBind.apply(this, arguments);\n null != arguments[0] && console.error('Cannot bind \"this\" of a Server Action. Pass null or undefined as the first argument to .bind().');\n var args = ArraySlice.call(arguments, 1), boundPromise = null;\n boundPromise = null !== referenceClosure.bound ? Promise.resolve(referenceClosure.bound).then(function(boundArgs) {\n return boundArgs.concat(args);\n }) : Promise.resolve(args);\n knownServerReferences.set(newFn, {\n id: referenceClosure.id,\n originalBind: newFn.bind,\n bound: boundPromise\n });\n Object.defineProperties(newFn, {\n $$FORM_ACTION: {\n value: this.$$FORM_ACTION\n },\n $$IS_SIGNATURE_EQUAL: {\n value: isSignatureEqual\n },\n bind: {\n value: bind\n }\n });\n return newFn;\n }\n function createBoundServerReference(metaData, callServer, encodeFormAction, findSourceMapURL) {\n function action() {\n var args = Array.prototype.slice.call(arguments);\n return bound ? \"fulfilled\" === bound.status ? callServer(id, bound.value.concat(args)) : Promise.resolve(bound).then(function(boundArgs) {\n return callServer(id, boundArgs.concat(args));\n }) : callServer(id, args);\n }\n var id = metaData.id, bound = metaData.bound, location = metaData.location;\n if (location) {\n var functionName = metaData.name || \"\", filename = location[1], line = location[2];\n location = location[3];\n metaData = metaData.env || \"Server\";\n findSourceMapURL = null == findSourceMapURL ? null : findSourceMapURL(filename, metaData);\n action = createFakeServerFunction(functionName, filename, findSourceMapURL, line, location, metaData, action);\n }\n registerBoundServerReference(action, id, bound, encodeFormAction);\n return action;\n }\n function parseStackLocation(error) {\n error = error.stack;\n error.startsWith(\"Error: react-stack-top-frame\\n\") && (error = error.slice(29));\n var endOfFirst = error.indexOf(\"\\n\");\n if (-1 !== endOfFirst) {\n var endOfSecond = error.indexOf(\"\\n\", endOfFirst + 1);\n endOfFirst = -1 === endOfSecond ? error.slice(endOfFirst + 1) : error.slice(endOfFirst + 1, endOfSecond);\n } else endOfFirst = error;\n error = v8FrameRegExp.exec(endOfFirst);\n if (!error && (error = jscSpiderMonkeyFrameRegExp.exec(endOfFirst), !error)) return null;\n endOfFirst = error[1] || \"\";\n \"<anonymous>\" === endOfFirst && (endOfFirst = \"\");\n endOfSecond = error[2] || error[5] || \"\";\n \"<anonymous>\" === endOfSecond && (endOfSecond = \"\");\n return [\n endOfFirst,\n endOfSecond,\n +(error[3] || error[6]),\n +(error[4] || error[7])\n ];\n }\n function createServerReference$1(id, callServer, encodeFormAction, findSourceMapURL, functionName) {\n function action() {\n var args = Array.prototype.slice.call(arguments);\n return callServer(id, args);\n }\n var location = parseStackLocation(Error(\"react-stack-top-frame\"));\n if (null !== location) {\n var filename = location[1], line = location[2];\n location = location[3];\n findSourceMapURL = null == findSourceMapURL ? null : findSourceMapURL(filename, \"Client\");\n action = createFakeServerFunction(functionName || \"\", filename, findSourceMapURL, line, location, \"Client\", action);\n }\n registerBoundServerReference(action, id, null, encodeFormAction);\n return action;\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type) return type.$$typeof === REACT_CLIENT_REFERENCE ? null : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch(type){\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type) switch(\"number\" === typeof type.tag && console.error(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"), type.$$typeof){\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type || (type = innerType.displayName || innerType.name || \"\", type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\");\n return type;\n case REACT_MEMO_TYPE:\n return innerType = type.displayName || null, null !== innerType ? innerType : getComponentNameFromType(type.type) || \"Memo\";\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function prepareStackTrace(error, structuredStackTrace) {\n error = (error.name || \"Error\") + \": \" + (error.message || \"\");\n for(var i = 0; i < structuredStackTrace.length; i++)error += \"\\n at \" + structuredStackTrace[i].toString();\n return error;\n }\n function ReactPromise(status, value, reason) {\n this.status = status;\n this.value = value;\n this.reason = reason;\n this._debugInfo = null;\n }\n function unwrapWeakResponse(weakResponse) {\n weakResponse = weakResponse.weak.deref();\n if (void 0 === weakResponse) throw Error(\"We did not expect to receive new data after GC:ing the response.\");\n return weakResponse;\n }\n function cleanupDebugChannel(debugChannel) {\n debugChannel(\"\");\n }\n function readChunk(chunk) {\n switch(chunk.status){\n case \"resolved_model\":\n initializeModelChunk(chunk);\n break;\n case \"resolved_module\":\n initializeModuleChunk(chunk);\n }\n switch(chunk.status){\n case \"fulfilled\":\n return chunk.value;\n case \"pending\":\n case \"blocked\":\n case \"halted\":\n throw chunk;\n default:\n throw chunk.reason;\n }\n }\n function getRoot(weakResponse) {\n weakResponse = unwrapWeakResponse(weakResponse);\n return getChunk(weakResponse, 0);\n }\n function createPendingChunk(response) {\n 0 === response._pendingChunks++ && (response._weakResponse.response = response, null !== response._pendingInitialRender && (clearTimeout(response._pendingInitialRender), response._pendingInitialRender = null));\n return new ReactPromise(\"pending\", null, null);\n }\n function releasePendingChunk(response, chunk) {\n \"pending\" === chunk.status && 0 === --response._pendingChunks && (response._weakResponse.response = null, response._pendingInitialRender = setTimeout(flushInitialRenderPerformance.bind(null, response), 100));\n }\n function wakeChunk(listeners, value) {\n for(var i = 0; i < listeners.length; i++){\n var listener = listeners[i];\n \"function\" === typeof listener ? listener(value) : fulfillReference(listener, value);\n }\n }\n function rejectChunk(listeners, error) {\n for(var i = 0; i < listeners.length; i++){\n var listener = listeners[i];\n \"function\" === typeof listener ? listener(error) : rejectReference(listener, error);\n }\n }\n function resolveBlockedCycle(resolvedChunk, reference) {\n var referencedChunk = reference.handler.chunk;\n if (null === referencedChunk) return null;\n if (referencedChunk === resolvedChunk) return reference.handler;\n reference = referencedChunk.value;\n if (null !== reference) for(referencedChunk = 0; referencedChunk < reference.length; referencedChunk++){\n var listener = reference[referencedChunk];\n if (\"function\" !== typeof listener && (listener = resolveBlockedCycle(resolvedChunk, listener), null !== listener)) return listener;\n }\n return null;\n }\n function wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners) {\n switch(chunk.status){\n case \"fulfilled\":\n wakeChunk(resolveListeners, chunk.value);\n break;\n case \"blocked\":\n for(var i = 0; i < resolveListeners.length; i++){\n var listener = resolveListeners[i];\n if (\"function\" !== typeof listener) {\n var cyclicHandler = resolveBlockedCycle(chunk, listener);\n null !== cyclicHandler && (fulfillReference(listener, cyclicHandler.value), resolveListeners.splice(i, 1), i--, null !== rejectListeners && (listener = rejectListeners.indexOf(listener), -1 !== listener && rejectListeners.splice(listener, 1)));\n }\n }\n case \"pending\":\n if (chunk.value) for(i = 0; i < resolveListeners.length; i++)chunk.value.push(resolveListeners[i]);\n else chunk.value = resolveListeners;\n if (chunk.reason) {\n if (rejectListeners) for(resolveListeners = 0; resolveListeners < rejectListeners.length; resolveListeners++)chunk.reason.push(rejectListeners[resolveListeners]);\n } else chunk.reason = rejectListeners;\n break;\n case \"rejected\":\n rejectListeners && rejectChunk(rejectListeners, chunk.reason);\n }\n }\n function triggerErrorOnChunk(response, chunk, error) {\n \"pending\" !== chunk.status && \"blocked\" !== chunk.status ? chunk.reason.error(error) : (releasePendingChunk(response, chunk), response = chunk.reason, chunk.status = \"rejected\", chunk.reason = error, null !== response && rejectChunk(response, error));\n }\n function createResolvedIteratorResultChunk(response, value, done) {\n return new ReactPromise(\"resolved_model\", (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\", response);\n }\n function resolveIteratorResultChunk(response, chunk, value, done) {\n resolveModelChunk(response, chunk, (done ? '{\"done\":true,\"value\":' : '{\"done\":false,\"value\":') + value + \"}\");\n }\n function resolveModelChunk(response, chunk, value) {\n if (\"pending\" !== chunk.status) chunk.reason.enqueueModel(value);\n else {\n releasePendingChunk(response, chunk);\n var resolveListeners = chunk.value, rejectListeners = chunk.reason;\n chunk.status = \"resolved_model\";\n chunk.value = value;\n chunk.reason = response;\n null !== resolveListeners && (initializeModelChunk(chunk), wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners));\n }\n }\n function resolveModuleChunk(response, chunk, value) {\n if (\"pending\" === chunk.status || \"blocked\" === chunk.status) {\n releasePendingChunk(response, chunk);\n response = chunk.value;\n var rejectListeners = chunk.reason;\n chunk.status = \"resolved_module\";\n chunk.value = value;\n null !== response && (initializeModuleChunk(chunk), wakeChunkIfInitialized(chunk, response, rejectListeners));\n }\n }\n function initializeModelChunk(chunk) {\n var prevHandler = initializingHandler;\n initializingHandler = null;\n var resolvedModel = chunk.value, response = chunk.reason;\n chunk.status = \"blocked\";\n chunk.value = null;\n chunk.reason = null;\n try {\n var value = JSON.parse(resolvedModel, response._fromJSON), resolveListeners = chunk.value;\n null !== resolveListeners && (chunk.value = null, chunk.reason = null, wakeChunk(resolveListeners, value));\n if (null !== initializingHandler) {\n if (initializingHandler.errored) throw initializingHandler.value;\n if (0 < initializingHandler.deps) {\n initializingHandler.value = value;\n initializingHandler.chunk = chunk;\n return;\n }\n }\n chunk.status = \"fulfilled\";\n chunk.value = value;\n } catch (error) {\n chunk.status = \"rejected\", chunk.reason = error;\n } finally{\n initializingHandler = prevHandler;\n }\n }\n function initializeModuleChunk(chunk) {\n try {\n var value = requireModule(chunk.value);\n chunk.status = \"fulfilled\";\n chunk.value = value;\n } catch (error) {\n chunk.status = \"rejected\", chunk.reason = error;\n }\n }\n function reportGlobalError(weakResponse, error) {\n if (void 0 !== weakResponse.weak.deref()) {\n var response = unwrapWeakResponse(weakResponse);\n response._closed = !0;\n response._closedReason = error;\n response._chunks.forEach(function(chunk) {\n \"pending\" === chunk.status && triggerErrorOnChunk(response, chunk, error);\n });\n weakResponse = response._debugChannel;\n void 0 !== weakResponse && (weakResponse(\"\"), response._debugChannel = void 0);\n }\n }\n function nullRefGetter() {\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\"function\" === typeof type) return '\"use client\"';\n if (\"object\" === typeof type && null !== type && type.$$typeof === REACT_LAZY_TYPE) return type._init === readChunk ? '\"use client\"' : \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function initializeElement(response, element) {\n var stack = element._debugStack, owner = element._owner;\n null === owner && (element._owner = response._debugRootOwner);\n var env = response._rootEnvironmentName;\n null !== owner && null != owner.env && (env = owner.env);\n var normalizedStackTrace = null;\n null === owner && null != response._debugRootStack ? normalizedStackTrace = response._debugRootStack : null !== stack && (normalizedStackTrace = createFakeJSXCallStackInDEV(response, stack, env));\n element._debugStack = normalizedStackTrace;\n normalizedStackTrace = null;\n supportsCreateTask && null !== stack && (normalizedStackTrace = console.createTask.bind(console, getTaskName(element.type)), stack = buildFakeCallStack(response, stack, env, !1, normalizedStackTrace), env = null === owner ? null : initializeFakeTask(response, owner), null === env ? (env = response._debugRootTask, normalizedStackTrace = null != env ? env.run(stack) : stack()) : normalizedStackTrace = env.run(stack));\n element._debugTask = normalizedStackTrace;\n null !== owner && initializeFakeStack(response, owner);\n Object.freeze(element.props);\n }\n function createLazyChunkWrapper(chunk) {\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: chunk,\n _init: readChunk\n };\n chunk = chunk._debugInfo || (chunk._debugInfo = []);\n lazyType._debugInfo = chunk;\n return lazyType;\n }\n function getChunk(response, id) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk || (chunk = response._closed ? new ReactPromise(\"rejected\", null, response._closedReason) : createPendingChunk(response), chunks.set(id, chunk));\n return chunk;\n }\n function fulfillReference(reference, value) {\n for(var response = reference.response, handler = reference.handler, parentObject = reference.parentObject, key = reference.key, map = reference.map, path = reference.path, i = 1; i < path.length; i++){\n for(; value.$$typeof === REACT_LAZY_TYPE;)if (value = value._payload, value === handler.chunk) value = handler.value;\n else {\n switch(value.status){\n case \"resolved_model\":\n initializeModelChunk(value);\n break;\n case \"resolved_module\":\n initializeModuleChunk(value);\n }\n switch(value.status){\n case \"fulfilled\":\n value = value.value;\n continue;\n case \"blocked\":\n var cyclicHandler = resolveBlockedCycle(value, reference);\n if (null !== cyclicHandler) {\n value = cyclicHandler.value;\n continue;\n }\n case \"pending\":\n path.splice(0, i - 1);\n null === value.value ? value.value = [\n reference\n ] : value.value.push(reference);\n null === value.reason ? value.reason = [\n reference\n ] : value.reason.push(reference);\n return;\n case \"halted\":\n return;\n default:\n rejectReference(reference, value.reason);\n return;\n }\n }\n value = value[path[i]];\n }\n reference = map(response, value, parentObject, key);\n parentObject[key] = reference;\n \"\" === key && null === handler.value && (handler.value = reference);\n if (parentObject[0] === REACT_ELEMENT_TYPE && \"object\" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE) switch(parentObject = handler.value, key){\n case \"3\":\n parentObject.props = reference;\n break;\n case \"4\":\n parentObject._owner = reference;\n break;\n case \"5\":\n parentObject._debugStack = reference;\n }\n handler.deps--;\n 0 === handler.deps && (key = handler.chunk, null !== key && \"blocked\" === key.status && (parentObject = key.value, key.status = \"fulfilled\", key.value = handler.value, null !== parentObject && wakeChunk(parentObject, handler.value)));\n }\n function rejectReference(reference, error) {\n var handler = reference.handler;\n reference = reference.response;\n if (!handler.errored) {\n var blockedValue = handler.value;\n handler.errored = !0;\n handler.value = error;\n handler = handler.chunk;\n if (null !== handler && \"blocked\" === handler.status) {\n if (\"object\" === typeof blockedValue && null !== blockedValue && blockedValue.$$typeof === REACT_ELEMENT_TYPE) {\n var erroredComponent = {\n name: getComponentNameFromType(blockedValue.type) || \"\",\n owner: blockedValue._owner\n };\n erroredComponent.debugStack = blockedValue._debugStack;\n supportsCreateTask && (erroredComponent.debugTask = blockedValue._debugTask);\n (handler._debugInfo || (handler._debugInfo = [])).push(erroredComponent);\n }\n triggerErrorOnChunk(reference, handler, error);\n }\n }\n }\n function waitForReference(referencedChunk, parentObject, key, response, map, path) {\n if (initializingHandler) {\n var handler = initializingHandler;\n handler.deps++;\n } else handler = initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n deps: 1,\n errored: !1\n };\n parentObject = {\n response: response,\n handler: handler,\n parentObject: parentObject,\n key: key,\n map: map,\n path: path\n };\n null === referencedChunk.value ? referencedChunk.value = [\n parentObject\n ] : referencedChunk.value.push(parentObject);\n null === referencedChunk.reason ? referencedChunk.reason = [\n parentObject\n ] : referencedChunk.reason.push(parentObject);\n return null;\n }\n function loadServerReference(response, metaData, parentObject, key) {\n if (!response._serverReferenceConfig) return createBoundServerReference(metaData, response._callServer, response._encodeFormAction, response._debugFindSourceMapURL);\n var serverReference = resolveServerReference(response._serverReferenceConfig, metaData.id), promise = preloadModule(serverReference);\n if (promise) metaData.bound && (promise = Promise.all([\n promise,\n metaData.bound\n ]));\n else if (metaData.bound) promise = Promise.resolve(metaData.bound);\n else return promise = requireModule(serverReference), registerBoundServerReference(promise, metaData.id, metaData.bound, response._encodeFormAction), promise;\n if (initializingHandler) {\n var handler = initializingHandler;\n handler.deps++;\n } else handler = initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n deps: 1,\n errored: !1\n };\n promise.then(function() {\n var resolvedValue = requireModule(serverReference);\n if (metaData.bound) {\n var boundArgs = metaData.bound.value.slice(0);\n boundArgs.unshift(null);\n resolvedValue = resolvedValue.bind.apply(resolvedValue, boundArgs);\n }\n registerBoundServerReference(resolvedValue, metaData.id, metaData.bound, response._encodeFormAction);\n parentObject[key] = resolvedValue;\n \"\" === key && null === handler.value && (handler.value = resolvedValue);\n if (parentObject[0] === REACT_ELEMENT_TYPE && \"object\" === typeof handler.value && null !== handler.value && handler.value.$$typeof === REACT_ELEMENT_TYPE) switch(boundArgs = handler.value, key){\n case \"3\":\n boundArgs.props = resolvedValue;\n break;\n case \"4\":\n boundArgs._owner = resolvedValue;\n }\n handler.deps--;\n 0 === handler.deps && (resolvedValue = handler.chunk, null !== resolvedValue && \"blocked\" === resolvedValue.status && (boundArgs = resolvedValue.value, resolvedValue.status = \"fulfilled\", resolvedValue.value = handler.value, null !== boundArgs && wakeChunk(boundArgs, handler.value)));\n }, function(error) {\n if (!handler.errored) {\n var blockedValue = handler.value;\n handler.errored = !0;\n handler.value = error;\n var chunk = handler.chunk;\n if (null !== chunk && \"blocked\" === chunk.status) {\n if (\"object\" === typeof blockedValue && null !== blockedValue && blockedValue.$$typeof === REACT_ELEMENT_TYPE) {\n var erroredComponent = {\n name: getComponentNameFromType(blockedValue.type) || \"\",\n owner: blockedValue._owner\n };\n erroredComponent.debugStack = blockedValue._debugStack;\n supportsCreateTask && (erroredComponent.debugTask = blockedValue._debugTask);\n (chunk._debugInfo || (chunk._debugInfo = [])).push(erroredComponent);\n }\n triggerErrorOnChunk(response, chunk, error);\n }\n }\n });\n return null;\n }\n function getOutlinedModel(response, reference, parentObject, key, map) {\n reference = reference.split(\":\");\n var id = parseInt(reference[0], 16);\n id = getChunk(response, id);\n switch(id.status){\n case \"resolved_model\":\n initializeModelChunk(id);\n break;\n case \"resolved_module\":\n initializeModuleChunk(id);\n }\n switch(id.status){\n case \"fulfilled\":\n for(var value = id.value, i = 1; i < reference.length; i++){\n for(; value.$$typeof === REACT_LAZY_TYPE;){\n value = value._payload;\n switch(value.status){\n case \"resolved_model\":\n initializeModelChunk(value);\n break;\n case \"resolved_module\":\n initializeModuleChunk(value);\n }\n switch(value.status){\n case \"fulfilled\":\n value = value.value;\n break;\n case \"blocked\":\n case \"pending\":\n return waitForReference(value, parentObject, key, response, map, reference.slice(i - 1));\n case \"halted\":\n return initializingHandler ? (response = initializingHandler, response.deps++) : initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n deps: 1,\n errored: !1\n }, null;\n default:\n return initializingHandler ? (initializingHandler.errored = !0, initializingHandler.value = value.reason) : initializingHandler = {\n parent: null,\n chunk: null,\n value: value.reason,\n deps: 0,\n errored: !0\n }, null;\n }\n }\n value = value[reference[i]];\n }\n response = map(response, value, parentObject, key);\n id._debugInfo && (\"object\" !== typeof response || null === response || !isArrayImpl(response) && \"function\" !== typeof response[ASYNC_ITERATOR] && response.$$typeof !== REACT_ELEMENT_TYPE || response._debugInfo || Object.defineProperty(response, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: id._debugInfo\n }));\n return response;\n case \"pending\":\n case \"blocked\":\n return waitForReference(id, parentObject, key, response, map, reference);\n case \"halted\":\n return initializingHandler ? (response = initializingHandler, response.deps++) : initializingHandler = {\n parent: null,\n chunk: null,\n value: null,\n deps: 1,\n errored: !1\n }, null;\n default:\n return initializingHandler ? (initializingHandler.errored = !0, initializingHandler.value = id.reason) : initializingHandler = {\n parent: null,\n chunk: null,\n value: id.reason,\n deps: 0,\n errored: !0\n }, null;\n }\n }\n function createMap(response, model) {\n return new Map(model);\n }\n function createSet(response, model) {\n return new Set(model);\n }\n function createBlob(response, model) {\n return new Blob(model.slice(1), {\n type: model[0]\n });\n }\n function createFormData(response, model) {\n response = new FormData();\n for(var i = 0; i < model.length; i++)response.append(model[i][0], model[i][1]);\n return response;\n }\n function applyConstructor(response, model, parentObject) {\n Object.setPrototypeOf(parentObject, model.prototype);\n }\n function defineLazyGetter(response, chunk, parentObject, key) {\n Object.defineProperty(parentObject, key, {\n get: function() {\n \"resolved_model\" === chunk.status && initializeModelChunk(chunk);\n switch(chunk.status){\n case \"fulfilled\":\n return chunk.value;\n case \"rejected\":\n throw chunk.reason;\n }\n return \"This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.\";\n },\n enumerable: !0,\n configurable: !1\n });\n return null;\n }\n function extractIterator(response, model) {\n return model[Symbol.iterator]();\n }\n function createModel(response, model) {\n return model;\n }\n function parseModelString(response, parentObject, key, value) {\n if (\"$\" === value[0]) {\n if (\"$\" === value) return null !== initializingHandler && \"0\" === key && (initializingHandler = {\n parent: initializingHandler,\n chunk: null,\n value: null,\n deps: 0,\n errored: !1\n }), REACT_ELEMENT_TYPE;\n switch(value[1]){\n case \"$\":\n return value.slice(1);\n case \"L\":\n return parentObject = parseInt(value.slice(2), 16), response = getChunk(response, parentObject), createLazyChunkWrapper(response);\n case \"@\":\n return parentObject = parseInt(value.slice(2), 16), getChunk(response, parentObject);\n case \"S\":\n return Symbol.for(value.slice(2));\n case \"F\":\n var ref = value.slice(2);\n return getOutlinedModel(response, ref, parentObject, key, loadServerReference);\n case \"T\":\n parentObject = \"$\" + value.slice(2);\n response = response._tempRefs;\n if (null == response) throw Error(\"Missing a temporary reference set but the RSC response returned a temporary reference. Pass a temporaryReference option with the set that was used with the reply.\");\n return response.get(parentObject);\n case \"Q\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createMap);\n case \"W\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createSet);\n case \"B\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createBlob);\n case \"K\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, createFormData);\n case \"Z\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, resolveErrorDev);\n case \"i\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, extractIterator);\n case \"I\":\n return Infinity;\n case \"-\":\n return \"$-0\" === value ? -0 : -Infinity;\n case \"N\":\n return NaN;\n case \"u\":\n return;\n case \"D\":\n return new Date(Date.parse(value.slice(2)));\n case \"n\":\n return BigInt(value.slice(2));\n case \"P\":\n return ref = value.slice(2), getOutlinedModel(response, ref, parentObject, key, applyConstructor);\n case \"E\":\n response = value.slice(2);\n try {\n return (0, eval)(response);\n } catch (x) {\n if (response.startsWith(\"(async function\")) {\n if (parentObject = response.indexOf(\"(\", 15), -1 !== parentObject) return response = response.slice(15, parentObject).trim(), (0, eval)(\"({\" + JSON.stringify(response) + \":async function(){}})\")[response];\n } else if (response.startsWith(\"(function\")) {\n if (parentObject = response.indexOf(\"(\", 9), -1 !== parentObject) return response = response.slice(9, parentObject).trim(), (0, eval)(\"({\" + JSON.stringify(response) + \":function(){}})\")[response];\n } else if (response.startsWith(\"(class\") && (parentObject = response.indexOf(\"{\", 6), -1 !== parentObject)) return response = response.slice(6, parentObject).trim(), (0, eval)(\"({\" + JSON.stringify(response) + \":class{}})\")[response];\n return function() {};\n }\n case \"Y\":\n if (2 < value.length && (ref = response._debugChannel)) {\n if (\"@\" === value[2]) return parentObject = value.slice(3), key = parseInt(parentObject, 16), response._chunks.has(key) || ref(\"P:\" + parentObject), getChunk(response, key);\n value = value.slice(2);\n var _id2 = parseInt(value, 16);\n response._chunks.has(_id2) || ref(\"Q:\" + value);\n ref = getChunk(response, _id2);\n return \"fulfilled\" === ref.status ? ref.value : defineLazyGetter(response, ref, parentObject, key);\n }\n Object.defineProperty(parentObject, key, {\n get: function() {\n return \"This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.\";\n },\n enumerable: !0,\n configurable: !1\n });\n return null;\n default:\n return ref = value.slice(1), getOutlinedModel(response, ref, parentObject, key, createModel);\n }\n }\n return value;\n }\n function missingCall() {\n throw Error('Trying to call a function from \"use server\" but the callServer option was not implemented in your router runtime.');\n }\n function ResponseInstance(bundlerConfig, serverReferenceConfig, moduleLoading, callServer, encodeFormAction, nonce, temporaryReferences, findSourceMapURL, replayConsole, environmentName, debugChannel) {\n var chunks = new Map();\n this._bundlerConfig = bundlerConfig;\n this._serverReferenceConfig = serverReferenceConfig;\n this._moduleLoading = moduleLoading;\n this._callServer = void 0 !== callServer ? callServer : missingCall;\n this._encodeFormAction = encodeFormAction;\n this._nonce = nonce;\n this._chunks = chunks;\n this._stringDecoder = new util.TextDecoder();\n this._fromJSON = null;\n this._closed = !1;\n this._closedReason = null;\n this._tempRefs = temporaryReferences;\n this._pendingChunks = 0;\n this._weakResponse = {\n weak: new WeakRef(this),\n response: this\n };\n this._debugRootOwner = bundlerConfig = void 0 === ReactSharedInteralsServer || null === ReactSharedInteralsServer.A ? null : ReactSharedInteralsServer.A.getOwner();\n this._debugRootStack = null !== bundlerConfig ? Error(\"react-stack-top-frame\") : null;\n environmentName = void 0 === environmentName ? \"Server\" : environmentName;\n supportsCreateTask && (this._debugRootTask = console.createTask('\"use ' + environmentName.toLowerCase() + '\"'));\n this._debugFindSourceMapURL = findSourceMapURL;\n this._debugChannel = debugChannel;\n this._replayConsole = replayConsole;\n this._rootEnvironmentName = environmentName;\n debugChannel && (null === debugChannelRegistry ? (debugChannel(\"\"), this._debugChannel = void 0) : debugChannelRegistry.register(this, debugChannel));\n this._fromJSON = createFromJSONCallback(this);\n }\n function createStreamState() {\n return {\n _rowState: 0,\n _rowID: 0,\n _rowTag: 0,\n _rowLength: 0,\n _buffer: []\n };\n }\n function resolveDebugHalt(response, id) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk || chunks.set(id, chunk = createPendingChunk(response));\n if (\"pending\" === chunk.status || \"blocked\" === chunk.status) releasePendingChunk(response, chunk), response = chunk, response.status = \"halted\", response.value = null, response.reason = null;\n }\n function resolveModel(response, id, model) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk ? resolveModelChunk(response, chunk, model) : chunks.set(id, new ReactPromise(\"resolved_model\", model, response));\n }\n function resolveText(response, id, text) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk && \"pending\" !== chunk.status ? chunk.reason.enqueueValue(text) : (chunk && releasePendingChunk(response, chunk), chunks.set(id, new ReactPromise(\"fulfilled\", text, null)));\n }\n function resolveBuffer(response, id, buffer) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk && \"pending\" !== chunk.status ? chunk.reason.enqueueValue(buffer) : (chunk && releasePendingChunk(response, chunk), chunks.set(id, new ReactPromise(\"fulfilled\", buffer, null)));\n }\n function resolveModule(response, id, model) {\n var chunks = response._chunks, chunk = chunks.get(id);\n model = JSON.parse(model, response._fromJSON);\n var clientReference = resolveClientReference(response._bundlerConfig, model);\n prepareDestinationWithChunks(response._moduleLoading, model[1], response._nonce);\n if (model = preloadModule(clientReference)) {\n if (chunk) {\n releasePendingChunk(response, chunk);\n var blockedChunk = chunk;\n blockedChunk.status = \"blocked\";\n } else blockedChunk = new ReactPromise(\"blocked\", null, null), chunks.set(id, blockedChunk);\n model.then(function() {\n return resolveModuleChunk(response, blockedChunk, clientReference);\n }, function(error) {\n return triggerErrorOnChunk(response, blockedChunk, error);\n });\n } else chunk ? resolveModuleChunk(response, chunk, clientReference) : chunks.set(id, new ReactPromise(\"resolved_module\", clientReference, null));\n }\n function resolveStream(response, id, stream, controller) {\n var chunks = response._chunks, chunk = chunks.get(id);\n chunk ? \"pending\" === chunk.status && (releasePendingChunk(response, chunk), response = chunk.value, chunk.status = \"fulfilled\", chunk.value = stream, chunk.reason = controller, null !== response && wakeChunk(response, chunk.value)) : chunks.set(id, new ReactPromise(\"fulfilled\", stream, controller));\n }\n function startReadableStream(response, id, type) {\n var controller = null;\n type = new ReadableStream({\n type: type,\n start: function(c) {\n controller = c;\n }\n });\n var previousBlockedChunk = null;\n resolveStream(response, id, type, {\n enqueueValue: function(value) {\n null === previousBlockedChunk ? controller.enqueue(value) : previousBlockedChunk.then(function() {\n controller.enqueue(value);\n });\n },\n enqueueModel: function(json) {\n if (null === previousBlockedChunk) {\n var chunk = new ReactPromise(\"resolved_model\", json, response);\n initializeModelChunk(chunk);\n \"fulfilled\" === chunk.status ? controller.enqueue(chunk.value) : (chunk.then(function(v) {\n return controller.enqueue(v);\n }, function(e) {\n return controller.error(e);\n }), previousBlockedChunk = chunk);\n } else {\n chunk = previousBlockedChunk;\n var _chunk3 = createPendingChunk(response);\n _chunk3.then(function(v) {\n return controller.enqueue(v);\n }, function(e) {\n return controller.error(e);\n });\n previousBlockedChunk = _chunk3;\n chunk.then(function() {\n previousBlockedChunk === _chunk3 && (previousBlockedChunk = null);\n resolveModelChunk(response, _chunk3, json);\n });\n }\n },\n close: function() {\n if (null === previousBlockedChunk) controller.close();\n else {\n var blockedChunk = previousBlockedChunk;\n previousBlockedChunk = null;\n blockedChunk.then(function() {\n return controller.close();\n });\n }\n },\n error: function(error) {\n if (null === previousBlockedChunk) controller.error(error);\n else {\n var blockedChunk = previousBlockedChunk;\n previousBlockedChunk = null;\n blockedChunk.then(function() {\n return controller.error(error);\n });\n }\n }\n });\n }\n function asyncIterator() {\n return this;\n }\n function createIterator(next) {\n next = {\n next: next\n };\n next[ASYNC_ITERATOR] = asyncIterator;\n return next;\n }\n function startAsyncIterable(response, id, iterator) {\n var buffer = [], closed = !1, nextWriteIndex = 0, iterable = {};\n iterable[ASYNC_ITERATOR] = function() {\n var nextReadIndex = 0;\n return createIterator(function(arg) {\n if (void 0 !== arg) throw Error(\"Values cannot be passed to next() of AsyncIterables passed to Client Components.\");\n if (nextReadIndex === buffer.length) {\n if (closed) return new ReactPromise(\"fulfilled\", {\n done: !0,\n value: void 0\n }, null);\n buffer[nextReadIndex] = createPendingChunk(response);\n }\n return buffer[nextReadIndex++];\n });\n };\n resolveStream(response, id, iterator ? iterable[ASYNC_ITERATOR]() : iterable, {\n enqueueValue: function(value) {\n if (nextWriteIndex === buffer.length) buffer[nextWriteIndex] = new ReactPromise(\"fulfilled\", {\n done: !1,\n value: value\n }, null);\n else {\n var chunk = buffer[nextWriteIndex], resolveListeners = chunk.value, rejectListeners = chunk.reason;\n chunk.status = \"fulfilled\";\n chunk.value = {\n done: !1,\n value: value\n };\n null !== resolveListeners && wakeChunkIfInitialized(chunk, resolveListeners, rejectListeners);\n }\n nextWriteIndex++;\n },\n enqueueModel: function(value) {\n nextWriteIndex === buffer.length ? buffer[nextWriteIndex] = createResolvedIteratorResultChunk(response, value, !1) : resolveIteratorResultChunk(response, buffer[nextWriteIndex], value, !1);\n nextWriteIndex++;\n },\n close: function(value) {\n closed = !0;\n nextWriteIndex === buffer.length ? buffer[nextWriteIndex] = createResolvedIteratorResultChunk(response, value, !0) : resolveIteratorResultChunk(response, buffer[nextWriteIndex], value, !0);\n for(nextWriteIndex++; nextWriteIndex < buffer.length;)resolveIteratorResultChunk(response, buffer[nextWriteIndex++], '\"$undefined\"', !0);\n },\n error: function(error) {\n closed = !0;\n for(nextWriteIndex === buffer.length && (buffer[nextWriteIndex] = createPendingChunk(response)); nextWriteIndex < buffer.length;)triggerErrorOnChunk(response, buffer[nextWriteIndex++], error);\n }\n });\n }\n function stopStream(response, id, row) {\n (response = response._chunks.get(id)) && \"fulfilled\" === response.status && response.reason.close(\"\" === row ? '\"$undefined\"' : row);\n }\n function resolveErrorDev(response, errorInfo) {\n var name = errorInfo.name, env = errorInfo.env;\n errorInfo = buildFakeCallStack(response, errorInfo.stack, env, !1, Error.bind(null, errorInfo.message || \"An error occurred in the Server Components render but no message was provided\"));\n response = getRootTask(response, env);\n response = null != response ? response.run(errorInfo) : errorInfo();\n response.name = name;\n response.environmentName = env;\n return response;\n }\n function resolveHint(response, code, model) {\n response = JSON.parse(model, response._fromJSON);\n model = ReactDOMSharedInternals.d;\n switch(code){\n case \"D\":\n model.D(response);\n break;\n case \"C\":\n \"string\" === typeof response ? model.C(response) : model.C(response[0], response[1]);\n break;\n case \"L\":\n code = response[0];\n var as = response[1];\n 3 === response.length ? model.L(code, as, response[2]) : model.L(code, as);\n break;\n case \"m\":\n \"string\" === typeof response ? model.m(response) : model.m(response[0], response[1]);\n break;\n case \"X\":\n \"string\" === typeof response ? model.X(response) : model.X(response[0], response[1]);\n break;\n case \"S\":\n \"string\" === typeof response ? model.S(response) : model.S(response[0], 0 === response[1] ? void 0 : response[1], 3 === response.length ? response[2] : void 0);\n break;\n case \"M\":\n \"string\" === typeof response ? model.M(response) : model.M(response[0], response[1]);\n }\n }\n function createFakeFunction(name, filename, sourceMap, line, col, enclosingLine, enclosingCol, environmentName) {\n name || (name = \"<anonymous>\");\n var encodedName = JSON.stringify(name);\n 1 > enclosingLine ? enclosingLine = 0 : enclosingLine--;\n 1 > enclosingCol ? enclosingCol = 0 : enclosingCol--;\n 1 > line ? line = 0 : line--;\n 1 > col ? col = 0 : col--;\n if (line < enclosingLine || line === enclosingLine && col < enclosingCol) enclosingCol = enclosingLine = 0;\n 1 > line ? (line = encodedName.length + 3, enclosingCol -= line, 0 > enclosingCol && (enclosingCol = 0), col = col - enclosingCol - line - 3, 0 > col && (col = 0), encodedName = \"({\" + encodedName + \":\" + \" \".repeat(enclosingCol) + \"_=>\" + \" \".repeat(col) + \"_()})\") : 1 > enclosingLine ? (enclosingCol -= encodedName.length + 3, 0 > enclosingCol && (enclosingCol = 0), encodedName = \"({\" + encodedName + \":\" + \" \".repeat(enclosingCol) + \"_=>\" + \"\\n\".repeat(line - enclosingLine) + \" \".repeat(col) + \"_()})\") : enclosingLine === line ? (col = col - enclosingCol - 3, 0 > col && (col = 0), encodedName = \"\\n\".repeat(enclosingLine - 1) + \"({\" + encodedName + \":\\n\" + \" \".repeat(enclosingCol) + \"_=>\" + \" \".repeat(col) + \"_()})\") : encodedName = \"\\n\".repeat(enclosingLine - 1) + \"({\" + encodedName + \":\\n\" + \" \".repeat(enclosingCol) + \"_=>\" + \"\\n\".repeat(line - enclosingLine) + \" \".repeat(col) + \"_()})\";\n encodedName = 1 > enclosingLine ? encodedName + \"\\n/* This module was rendered by a Server Component. Turn on Source Maps to see the server source. */\" : \"/* This module was rendered by a Server Component. Turn on Source Maps to see the server source. */\" + encodedName;\n filename.startsWith(\"/\") && (filename = \"file://\" + filename);\n sourceMap ? (encodedName += \"\\n//# sourceURL=rsc://React/\" + encodeURIComponent(environmentName) + \"/\" + encodeURI(filename) + \"?\" + fakeFunctionIdx++, encodedName += \"\\n//# sourceMappingURL=\" + sourceMap) : encodedName = filename ? encodedName + (\"\\n//# sourceURL=\" + encodeURI(filename)) : encodedName + \"\\n//# sourceURL=<anonymous>\";\n try {\n var fn = (0, eval)(encodedName)[name];\n } catch (x) {\n fn = function(_) {\n return _();\n };\n }\n return fn;\n }\n function buildFakeCallStack(response, stack, environmentName, useEnclosingLine, innerCall) {\n for(var i = 0; i < stack.length; i++){\n var frame = stack[i], frameKey = frame.join(\"-\") + \"-\" + environmentName + (useEnclosingLine ? \"-e\" : \"-n\"), fn = fakeFunctionCache.get(frameKey);\n if (void 0 === fn) {\n fn = frame[0];\n var filename = frame[1], line = frame[2], col = frame[3], enclosingLine = frame[4];\n frame = frame[5];\n var findSourceMapURL = response._debugFindSourceMapURL;\n findSourceMapURL = findSourceMapURL ? findSourceMapURL(filename, environmentName) : null;\n fn = createFakeFunction(fn, filename, findSourceMapURL, line, col, useEnclosingLine ? line : enclosingLine, useEnclosingLine ? col : frame, environmentName);\n fakeFunctionCache.set(frameKey, fn);\n }\n innerCall = fn.bind(null, innerCall);\n }\n return innerCall;\n }\n function getRootTask(response, childEnvironmentName) {\n var rootTask = response._debugRootTask;\n return rootTask ? response._rootEnvironmentName !== childEnvironmentName ? (response = console.createTask.bind(console, '\"use ' + childEnvironmentName.toLowerCase() + '\"'), rootTask.run(response)) : rootTask : null;\n }\n function initializeFakeTask(response, debugInfo) {\n if (!supportsCreateTask || null == debugInfo.stack) return null;\n var cachedEntry = debugInfo.debugTask;\n if (void 0 !== cachedEntry) return cachedEntry;\n var useEnclosingLine = void 0 === debugInfo.key, stack = debugInfo.stack, env = null == debugInfo.env ? response._rootEnvironmentName : debugInfo.env;\n cachedEntry = null == debugInfo.owner || null == debugInfo.owner.env ? response._rootEnvironmentName : debugInfo.owner.env;\n var ownerTask = null == debugInfo.owner ? null : initializeFakeTask(response, debugInfo.owner);\n env = env !== cachedEntry ? '\"use ' + env.toLowerCase() + '\"' : void 0 !== debugInfo.key ? \"<\" + (debugInfo.name || \"...\") + \">\" : void 0 !== debugInfo.name ? debugInfo.name || \"unknown\" : \"await \" + (debugInfo.awaited.name || \"unknown\");\n env = console.createTask.bind(console, env);\n useEnclosingLine = buildFakeCallStack(response, stack, cachedEntry, useEnclosingLine, env);\n null === ownerTask ? (response = getRootTask(response, cachedEntry), response = null != response ? response.run(useEnclosingLine) : useEnclosingLine()) : response = ownerTask.run(useEnclosingLine);\n return debugInfo.debugTask = response;\n }\n function fakeJSXCallSite() {\n return Error(\"react-stack-top-frame\");\n }\n function initializeFakeStack(response, debugInfo) {\n if (void 0 === debugInfo.debugStack) {\n null != debugInfo.stack && (debugInfo.debugStack = createFakeJSXCallStackInDEV(response, debugInfo.stack, null == debugInfo.env ? \"\" : debugInfo.env));\n var owner = debugInfo.owner;\n null != owner && (initializeFakeStack(response, owner), void 0 === owner.debugLocation && null != debugInfo.debugStack && (owner.debugLocation = debugInfo.debugStack));\n }\n }\n function resolveDebugInfo(response, id, debugInfo) {\n void 0 !== debugInfo.stack && initializeFakeTask(response, debugInfo);\n null == debugInfo.owner && null != response._debugRootOwner ? (debugInfo.owner = response._debugRootOwner, debugInfo.stack = null, debugInfo.debugStack = response._debugRootStack, debugInfo.debugTask = response._debugRootTask) : void 0 !== debugInfo.stack && initializeFakeStack(response, debugInfo);\n response = getChunk(response, id);\n (response._debugInfo || (response._debugInfo = [])).push(debugInfo);\n }\n function getCurrentStackInDEV() {\n var owner = currentOwnerInDEV;\n if (null === owner) return \"\";\n try {\n var info = \"\";\n if (owner.owner || \"string\" !== typeof owner.name) {\n for(; owner;){\n var ownerStack = owner.debugStack;\n if (null != ownerStack) {\n if (owner = owner.owner) {\n var JSCompiler_temp_const = info;\n var error = ownerStack, prevPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = prepareStackTrace;\n var stack = error.stack;\n Error.prepareStackTrace = prevPrepareStackTrace;\n stack.startsWith(\"Error: react-stack-top-frame\\n\") && (stack = stack.slice(29));\n var idx = stack.indexOf(\"\\n\");\n -1 !== idx && (stack = stack.slice(idx + 1));\n idx = stack.indexOf(\"react_stack_bottom_frame\");\n -1 !== idx && (idx = stack.lastIndexOf(\"\\n\", idx));\n var JSCompiler_inline_result = -1 !== idx ? stack = stack.slice(0, idx) : \"\";\n info = JSCompiler_temp_const + (\"\\n\" + JSCompiler_inline_result);\n }\n } else break;\n }\n var JSCompiler_inline_result$jscomp$0 = info;\n } else {\n JSCompiler_temp_const = owner.name;\n if (void 0 === prefix) try {\n throw Error();\n } catch (x) {\n prefix = (error = x.stack.trim().match(/\\n( *(at )?)/)) && error[1] || \"\", suffix = -1 < x.stack.indexOf(\"\\n at\") ? \" (<anonymous>)\" : -1 < x.stack.indexOf(\"@\") ? \"@unknown:0:0\" : \"\";\n }\n JSCompiler_inline_result$jscomp$0 = \"\\n\" + prefix + JSCompiler_temp_const + suffix;\n }\n } catch (x) {\n JSCompiler_inline_result$jscomp$0 = \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n return JSCompiler_inline_result$jscomp$0;\n }\n function resolveConsoleEntry(response, value) {\n if (response._replayConsole) {\n var payload = JSON.parse(value, response._fromJSON);\n value = payload[0];\n var stackTrace = payload[1], owner = payload[2], env = payload[3];\n payload = payload.slice(4);\n replayConsoleWithCallStackInDEV(response, value, stackTrace, owner, env, payload);\n }\n }\n function mergeBuffer(buffer, lastChunk) {\n for(var l = buffer.length, byteLength = lastChunk.length, i = 0; i < l; i++)byteLength += buffer[i].byteLength;\n byteLength = new Uint8Array(byteLength);\n for(var _i3 = i = 0; _i3 < l; _i3++){\n var chunk = buffer[_i3];\n byteLength.set(chunk, i);\n i += chunk.byteLength;\n }\n byteLength.set(lastChunk, i);\n return byteLength;\n }\n function resolveTypedArray(response, id, buffer, lastChunk, constructor, bytesPerElement) {\n buffer = 0 === buffer.length && 0 === lastChunk.byteOffset % bytesPerElement ? lastChunk : mergeBuffer(buffer, lastChunk);\n constructor = new constructor(buffer.buffer, buffer.byteOffset, buffer.byteLength / bytesPerElement);\n resolveBuffer(response, id, constructor);\n }\n function flushInitialRenderPerformance() {}\n function processFullBinaryRow(response, id, tag, buffer, chunk) {\n switch(tag){\n case 65:\n resolveBuffer(response, id, mergeBuffer(buffer, chunk).buffer);\n return;\n case 79:\n resolveTypedArray(response, id, buffer, chunk, Int8Array, 1);\n return;\n case 111:\n resolveBuffer(response, id, 0 === buffer.length ? chunk : mergeBuffer(buffer, chunk));\n return;\n case 85:\n resolveTypedArray(response, id, buffer, chunk, Uint8ClampedArray, 1);\n return;\n case 83:\n resolveTypedArray(response, id, buffer, chunk, Int16Array, 2);\n return;\n case 115:\n resolveTypedArray(response, id, buffer, chunk, Uint16Array, 2);\n return;\n case 76:\n resolveTypedArray(response, id, buffer, chunk, Int32Array, 4);\n return;\n case 108:\n resolveTypedArray(response, id, buffer, chunk, Uint32Array, 4);\n return;\n case 71:\n resolveTypedArray(response, id, buffer, chunk, Float32Array, 4);\n return;\n case 103:\n resolveTypedArray(response, id, buffer, chunk, Float64Array, 8);\n return;\n case 77:\n resolveTypedArray(response, id, buffer, chunk, BigInt64Array, 8);\n return;\n case 109:\n resolveTypedArray(response, id, buffer, chunk, BigUint64Array, 8);\n return;\n case 86:\n resolveTypedArray(response, id, buffer, chunk, DataView, 1);\n return;\n }\n for(var stringDecoder = response._stringDecoder, row = \"\", i = 0; i < buffer.length; i++)row += stringDecoder.decode(buffer[i], decoderOptions);\n row += stringDecoder.decode(chunk);\n processFullStringRow(response, id, tag, row);\n }\n function processFullStringRow(response, id, tag, row) {\n switch(tag){\n case 73:\n resolveModule(response, id, row);\n break;\n case 72:\n resolveHint(response, row[0], row.slice(1));\n break;\n case 69:\n row = JSON.parse(row);\n tag = resolveErrorDev(response, row);\n tag.digest = row.digest;\n row = response._chunks;\n var chunk = row.get(id);\n chunk ? triggerErrorOnChunk(response, chunk, tag) : row.set(id, new ReactPromise(\"rejected\", null, tag));\n break;\n case 84:\n resolveText(response, id, row);\n break;\n case 78:\n case 68:\n tag = new ReactPromise(\"resolved_model\", row, response);\n initializeModelChunk(tag);\n \"fulfilled\" === tag.status ? resolveDebugInfo(response, id, tag.value) : tag.then(function(v) {\n return resolveDebugInfo(response, id, v);\n }, function() {});\n break;\n case 74:\n case 87:\n resolveConsoleEntry(response, row);\n break;\n case 82:\n startReadableStream(response, id, void 0);\n break;\n case 114:\n startReadableStream(response, id, \"bytes\");\n break;\n case 88:\n startAsyncIterable(response, id, !1);\n break;\n case 120:\n startAsyncIterable(response, id, !0);\n break;\n case 67:\n stopStream(response, id, row);\n break;\n default:\n \"\" === row ? resolveDebugHalt(response, id) : resolveModel(response, id, row);\n }\n }\n function processBinaryChunk(weakResponse, streamState, chunk) {\n if (void 0 !== weakResponse.weak.deref()) {\n var response = unwrapWeakResponse(weakResponse), i = 0, rowState = streamState._rowState;\n weakResponse = streamState._rowID;\n for(var rowTag = streamState._rowTag, rowLength = streamState._rowLength, buffer = streamState._buffer, chunkLength = chunk.length; i < chunkLength;){\n var lastIdx = -1;\n switch(rowState){\n case 0:\n lastIdx = chunk[i++];\n 58 === lastIdx ? rowState = 1 : weakResponse = weakResponse << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 1:\n rowState = chunk[i];\n 84 === rowState || 65 === rowState || 79 === rowState || 111 === rowState || 85 === rowState || 83 === rowState || 115 === rowState || 76 === rowState || 108 === rowState || 71 === rowState || 103 === rowState || 77 === rowState || 109 === rowState || 86 === rowState ? (rowTag = rowState, rowState = 2, i++) : 64 < rowState && 91 > rowState || 35 === rowState || 114 === rowState || 120 === rowState ? (rowTag = rowState, rowState = 3, i++) : (rowTag = 0, rowState = 3);\n continue;\n case 2:\n lastIdx = chunk[i++];\n 44 === lastIdx ? rowState = 4 : rowLength = rowLength << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 3:\n lastIdx = chunk.indexOf(10, i);\n break;\n case 4:\n lastIdx = i + rowLength, lastIdx > chunk.length && (lastIdx = -1);\n }\n var offset = chunk.byteOffset + i;\n if (-1 < lastIdx) rowLength = new Uint8Array(chunk.buffer, offset, lastIdx - i), processFullBinaryRow(response, weakResponse, rowTag, buffer, rowLength), i = lastIdx, 3 === rowState && i++, rowLength = weakResponse = rowTag = rowState = 0, buffer.length = 0;\n else {\n chunk = new Uint8Array(chunk.buffer, offset, chunk.byteLength - i);\n buffer.push(chunk);\n rowLength -= chunk.byteLength;\n break;\n }\n }\n streamState._rowState = rowState;\n streamState._rowID = weakResponse;\n streamState._rowTag = rowTag;\n streamState._rowLength = rowLength;\n }\n }\n function createFromJSONCallback(response) {\n return function(key, value) {\n if (\"string\" === typeof value) return parseModelString(response, this, key, value);\n if (\"object\" === typeof value && null !== value) {\n if (value[0] === REACT_ELEMENT_TYPE) b: {\n var owner = value[4];\n key = value[5];\n var validated = value[6];\n value = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: value[1],\n key: value[2],\n props: value[3],\n _owner: void 0 === owner ? null : owner\n };\n Object.defineProperty(value, \"ref\", {\n enumerable: !1,\n get: nullRefGetter\n });\n value._store = {};\n Object.defineProperty(value._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: validated\n });\n Object.defineProperty(value, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(value, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: void 0 === key ? null : key\n });\n Object.defineProperty(value, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n if (null !== initializingHandler) {\n validated = initializingHandler;\n initializingHandler = validated.parent;\n if (validated.errored) {\n key = new ReactPromise(\"rejected\", null, validated.value);\n initializeElement(response, value);\n validated = {\n name: getComponentNameFromType(value.type) || \"\",\n owner: value._owner\n };\n validated.debugStack = value._debugStack;\n supportsCreateTask && (validated.debugTask = value._debugTask);\n key._debugInfo = [\n validated\n ];\n value = createLazyChunkWrapper(key);\n break b;\n }\n if (0 < validated.deps) {\n key = new ReactPromise(\"blocked\", null, null);\n validated.value = value;\n validated.chunk = key;\n value = initializeElement.bind(null, response, value);\n key.then(value, value);\n value = createLazyChunkWrapper(key);\n break b;\n }\n }\n initializeElement(response, value);\n }\n return value;\n }\n return value;\n };\n }\n function close(weakResponse) {\n reportGlobalError(weakResponse, Error(\"Connection closed.\"));\n }\n function noServerCall$1() {\n throw Error(\"Server Functions cannot be called during initial render. This would create a fetch waterfall. Try to use a Server Component to pass data to Client Components instead.\");\n }\n function createResponseFromOptions(options) {\n return new ResponseInstance(options.serverConsumerManifest.moduleMap, options.serverConsumerManifest.serverModuleMap, options.serverConsumerManifest.moduleLoading, noServerCall$1, options.encodeFormAction, \"string\" === typeof options.nonce ? options.nonce : void 0, options && options.temporaryReferences ? options.temporaryReferences : void 0, options && options.findSourceMapURL ? options.findSourceMapURL : void 0, options ? !0 === options.replayConsoleLogs : !1, options && options.environmentName ? options.environmentName : void 0, void 0)._weakResponse;\n }\n function startReadingFromStream(response, stream) {\n function progress(_ref) {\n var value = _ref.value;\n if (_ref.done) close(response);\n else return processBinaryChunk(response, streamState, value), reader.read().then(progress).catch(error);\n }\n function error(e) {\n reportGlobalError(response, e);\n }\n var streamState = createStreamState(), reader = stream.getReader();\n reader.read().then(progress).catch(error);\n }\n function noServerCall() {\n throw Error(\"Server Functions cannot be called during initial render. This would create a fetch waterfall. Try to use a Server Component to pass data to Client Components instead.\");\n }\n var util = __webpack_require__(/*! util */ \"util\"), ReactDOM = __webpack_require__(/*! react-dom */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js\"), React = __webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"), decoderOptions = {\n stream: !0\n }, bind$1 = Function.prototype.bind, chunkCache = new Map(), ReactDOMSharedInternals = ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"), REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"), REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"), REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"), REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"), REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"), REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"), REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"), REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"), REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"), REACT_MEMO_TYPE = Symbol.for(\"react.memo\"), REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"), REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"), MAYBE_ITERATOR_SYMBOL = Symbol.iterator, ASYNC_ITERATOR = Symbol.asyncIterator, isArrayImpl = Array.isArray, getPrototypeOf = Object.getPrototypeOf, jsxPropsParents = new WeakMap(), jsxChildrenParents = new WeakMap(), CLIENT_REFERENCE_TAG = Symbol.for(\"react.client.reference\"), ObjectPrototype = Object.prototype, knownServerReferences = new WeakMap(), boundCache = new WeakMap(), fakeServerFunctionIdx = 0, FunctionBind = Function.prototype.bind, ArraySlice = Array.prototype.slice, v8FrameRegExp = /^ {3} at (?:(.+) \\((.+):(\\d+):(\\d+)\\)|(?:async )?(.+):(\\d+):(\\d+))$/, jscSpiderMonkeyFrameRegExp = /(?:(.*)@)?(.*):(\\d+):(\\d+)/, REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"), prefix, suffix;\n new (\"function\" === typeof WeakMap ? WeakMap : Map)();\n var ReactSharedInteralsServer = React.__SERVER_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, ReactSharedInternals = React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE || ReactSharedInteralsServer;\n ReactPromise.prototype = Object.create(Promise.prototype);\n ReactPromise.prototype.then = function(resolve, reject) {\n switch(this.status){\n case \"resolved_model\":\n initializeModelChunk(this);\n break;\n case \"resolved_module\":\n initializeModuleChunk(this);\n }\n switch(this.status){\n case \"fulfilled\":\n \"function\" === typeof resolve && resolve(this.value);\n break;\n case \"pending\":\n case \"blocked\":\n \"function\" === typeof resolve && (null === this.value && (this.value = []), this.value.push(resolve));\n \"function\" === typeof reject && (null === this.reason && (this.reason = []), this.reason.push(reject));\n break;\n case \"halted\":\n break;\n default:\n \"function\" === typeof reject && reject(this.reason);\n }\n };\n var debugChannelRegistry = \"function\" === typeof FinalizationRegistry ? new FinalizationRegistry(cleanupDebugChannel) : null, initializingHandler = null, supportsCreateTask = !!console.createTask, fakeFunctionCache = new Map(), fakeFunctionIdx = 0, createFakeJSXCallStack = {\n react_stack_bottom_frame: function(response, stack, environmentName) {\n return buildFakeCallStack(response, stack, environmentName, !1, fakeJSXCallSite)();\n }\n }, createFakeJSXCallStackInDEV = createFakeJSXCallStack.react_stack_bottom_frame.bind(createFakeJSXCallStack), currentOwnerInDEV = null, replayConsoleWithCallStack = {\n react_stack_bottom_frame: function(response, methodName, stackTrace, owner, env, args) {\n var prevStack = ReactSharedInternals.getCurrentStack;\n ReactSharedInternals.getCurrentStack = getCurrentStackInDEV;\n currentOwnerInDEV = null === owner ? response._debugRootOwner : owner;\n try {\n a: {\n var offset = 0;\n switch(methodName){\n case \"dir\":\n case \"dirxml\":\n case \"groupEnd\":\n case \"table\":\n var JSCompiler_inline_result = bind$1.apply(console[methodName], [\n console\n ].concat(args));\n break a;\n case \"assert\":\n offset = 1;\n }\n var newArgs = args.slice(0);\n \"string\" === typeof newArgs[offset] ? newArgs.splice(offset, 1, \"\\u001b[0m\\u001b[7m%c%s\\u001b[0m%c \" + newArgs[offset], \"background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px\", \" \" + env + \" \", \"\") : newArgs.splice(offset, 0, \"\\u001b[0m\\u001b[7m%c%s\\u001b[0m%c \", \"background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px\", \" \" + env + \" \", \"\");\n newArgs.unshift(console);\n JSCompiler_inline_result = bind$1.apply(console[methodName], newArgs);\n }\n var callStack = buildFakeCallStack(response, stackTrace, env, !1, JSCompiler_inline_result);\n if (null != owner) {\n var task = initializeFakeTask(response, owner);\n initializeFakeStack(response, owner);\n if (null !== task) {\n task.run(callStack);\n return;\n }\n }\n var rootTask = getRootTask(response, env);\n null != rootTask ? rootTask.run(callStack) : callStack();\n } finally{\n currentOwnerInDEV = null, ReactSharedInternals.getCurrentStack = prevStack;\n }\n }\n }, replayConsoleWithCallStackInDEV = replayConsoleWithCallStack.react_stack_bottom_frame.bind(replayConsoleWithCallStack);\n exports.createFromFetch = function(promiseForResponse, options) {\n var response = createResponseFromOptions(options);\n promiseForResponse.then(function(r) {\n startReadingFromStream(response, r.body);\n }, function(e) {\n reportGlobalError(response, e);\n });\n return getRoot(response);\n };\n exports.createFromNodeStream = function(stream, serverConsumerManifest, options) {\n var response$jscomp$0 = new ResponseInstance(serverConsumerManifest.moduleMap, serverConsumerManifest.serverModuleMap, serverConsumerManifest.moduleLoading, noServerCall, options ? options.encodeFormAction : void 0, options && \"string\" === typeof options.nonce ? options.nonce : void 0, void 0, options && options.findSourceMapURL ? options.findSourceMapURL : void 0, options ? !0 === options.replayConsoleLogs : !1, options && options.environmentName ? options.environmentName : void 0, void 0)._weakResponse, streamState = createStreamState();\n stream.on(\"data\", function(chunk) {\n if (\"string\" === typeof chunk) {\n if (void 0 !== response$jscomp$0.weak.deref()) {\n for(var response = unwrapWeakResponse(response$jscomp$0), i = 0, rowState = streamState._rowState, rowID = streamState._rowID, rowTag = streamState._rowTag, rowLength = streamState._rowLength, buffer = streamState._buffer, chunkLength = chunk.length; i < chunkLength;){\n var lastIdx = -1;\n switch(rowState){\n case 0:\n lastIdx = chunk.charCodeAt(i++);\n 58 === lastIdx ? rowState = 1 : rowID = rowID << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 1:\n rowState = chunk.charCodeAt(i);\n 84 === rowState || 65 === rowState || 79 === rowState || 111 === rowState || 85 === rowState || 83 === rowState || 115 === rowState || 76 === rowState || 108 === rowState || 71 === rowState || 103 === rowState || 77 === rowState || 109 === rowState || 86 === rowState ? (rowTag = rowState, rowState = 2, i++) : 64 < rowState && 91 > rowState || 114 === rowState || 120 === rowState ? (rowTag = rowState, rowState = 3, i++) : (rowTag = 0, rowState = 3);\n continue;\n case 2:\n lastIdx = chunk.charCodeAt(i++);\n 44 === lastIdx ? rowState = 4 : rowLength = rowLength << 4 | (96 < lastIdx ? lastIdx - 87 : lastIdx - 48);\n continue;\n case 3:\n lastIdx = chunk.indexOf(\"\\n\", i);\n break;\n case 4:\n if (84 !== rowTag) throw Error(\"Binary RSC chunks cannot be encoded as strings. This is a bug in the wiring of the React streams.\");\n if (rowLength < chunk.length || chunk.length > 3 * rowLength) throw Error(\"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\");\n lastIdx = chunk.length;\n }\n if (-1 < lastIdx) {\n if (0 < buffer.length) throw Error(\"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\");\n i = chunk.slice(i, lastIdx);\n processFullStringRow(response, rowID, rowTag, i);\n i = lastIdx;\n 3 === rowState && i++;\n rowLength = rowID = rowTag = rowState = 0;\n buffer.length = 0;\n } else if (chunk.length !== i) throw Error(\"String chunks need to be passed in their original shape. Not split into smaller string chunks. This is a bug in the wiring of the React streams.\");\n }\n streamState._rowState = rowState;\n streamState._rowID = rowID;\n streamState._rowTag = rowTag;\n streamState._rowLength = rowLength;\n }\n } else processBinaryChunk(response$jscomp$0, streamState, chunk);\n });\n stream.on(\"error\", function(error) {\n reportGlobalError(response$jscomp$0, error);\n });\n stream.on(\"end\", function() {\n return close(response$jscomp$0);\n });\n return getRoot(response$jscomp$0);\n };\n exports.createFromReadableStream = function(stream, options) {\n options = createResponseFromOptions(options);\n startReadingFromStream(options, stream);\n return getRoot(options);\n };\n exports.createServerReference = function(id) {\n return createServerReference$1(id, noServerCall$1);\n };\n exports.createTemporaryReferenceSet = function() {\n return new Map();\n };\n exports.encodeReply = function(value, options) {\n return new Promise(function(resolve, reject) {\n var abort = processReply(value, \"\", options && options.temporaryReferences ? options.temporaryReferences : void 0, resolve, reject);\n if (options && options.signal) {\n var signal = options.signal;\n if (signal.aborted) abort(signal.reason);\n else {\n var listener = function() {\n abort(signal.reason);\n signal.removeEventListener(\"abort\", listener);\n };\n signal.addEventListener(\"abort\", listener);\n }\n }\n });\n };\n exports.registerServerReference = function(reference, id, encodeFormAction) {\n registerBoundServerReference(reference, id, null, encodeFormAction);\n return reference;\n };\n}();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5ub2RlLmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztDQVFDLEdBRVk7QUFDYixLQU1NLElBTEo7SUFDRSxTQUFTQSx1QkFBdUJDLGFBQWEsRUFBRUMsUUFBUTtRQUNyRCxJQUFJRCxlQUFlO1lBQ2pCLElBQUlFLGdCQUFnQkYsYUFBYSxDQUFDQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUtELGdCQUFnQkUsaUJBQWlCQSxhQUFhLENBQUNELFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFDOURDLGdCQUFnQkYsY0FBY0csSUFBSTtpQkFDL0I7Z0JBQ0hILGdCQUFnQkUsaUJBQWlCQSxhQUFhLENBQUMsSUFBSTtnQkFDbkQsSUFBSSxDQUFDRixlQUNILE1BQU1JLE1BQ0osZ0NBQ0VILFFBQVEsQ0FBQyxFQUFFLEdBQ1g7Z0JBRU5DLGdCQUFnQkQsUUFBUSxDQUFDLEVBQUU7WUFDN0I7WUFDQSxPQUFPLE1BQU1BLFNBQVNJLE1BQU0sR0FDeEI7Z0JBQUNMLGNBQWNNLEVBQUU7Z0JBQUVOLGNBQWNPLE1BQU07Z0JBQUVMO2dCQUFlO2FBQUUsR0FDMUQ7Z0JBQUNGLGNBQWNNLEVBQUU7Z0JBQUVOLGNBQWNPLE1BQU07Z0JBQUVMO2FBQWM7UUFDN0Q7UUFDQSxPQUFPRDtJQUNUO0lBQ0EsU0FBU08sdUJBQXVCUixhQUFhLEVBQUVNLEVBQUU7UUFDL0MsSUFBSUgsT0FBTyxJQUNUTSxxQkFBcUJULGFBQWEsQ0FBQ00sR0FBRztRQUN4QyxJQUFJRyxvQkFBb0JOLE9BQU9NLG1CQUFtQk4sSUFBSTthQUNqRDtZQUNILElBQUlPLE1BQU1KLEdBQUdLLFdBQVcsQ0FBQztZQUN6QixDQUFDLE1BQU1ELE9BQ0osUUFBUUosR0FBR00sS0FBSyxDQUFDRixNQUFNLElBQ3ZC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LE1BQU1DLE9BQU8zaEIsTUFBTTtxQkFDbEM7b0JBQ0gsSUFBSW9SLFdBQVc7d0JBQ2JzUSxNQUFNQyxPQUFPM2hCLE1BQU07d0JBQ25CMmhCLE9BQU9FLG1CQUFtQixDQUFDLFNBQVN6UTtvQkFDdEM7b0JBQ0F1USxPQUFPRyxnQkFBZ0IsQ0FBQyxTQUFTMVE7Z0JBQ25DO1lBQ0Y7UUFDRjtJQUNGO0lBQ0F5UCwrQkFBK0IsR0FBRyxTQUNoQzNWLFNBQVMsRUFDVGpNLEVBQUUsRUFDRmlPLGdCQUFnQjtRQUVoQkQsNkJBQTZCL0IsV0FBV2pNLElBQUksTUFBTWlPO1FBQ2xELE9BQU9oQztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2Nqcy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50Lm5vZGUuZGV2ZWxvcG1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5ub2RlLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblwicHJvZHVjdGlvblwiICE9PSBwcm9jZXNzLmVudi5OT0RFX0VOViAmJlxuICAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIHJlc29sdmVDbGllbnRSZWZlcmVuY2UoYnVuZGxlckNvbmZpZywgbWV0YWRhdGEpIHtcbiAgICAgIGlmIChidW5kbGVyQ29uZmlnKSB7XG4gICAgICAgIHZhciBtb2R1bGVFeHBvcnRzID0gYnVuZGxlckNvbmZpZ1ttZXRhZGF0YVswXV07XG4gICAgICAgIGlmICgoYnVuZGxlckNvbmZpZyA9IG1vZHVsZUV4cG9ydHMgJiYgbW9kdWxlRXhwb3J0c1ttZXRhZGF0YVsyXV0pKVxuICAgICAgICAgIG1vZHVsZUV4cG9ydHMgPSBidW5kbGVyQ29uZmlnLm5hbWU7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGJ1bmRsZXJDb25maWcgPSBtb2R1bGVFeHBvcnRzICYmIG1vZHVsZUV4cG9ydHNbXCIqXCJdO1xuICAgICAgICAgIGlmICghYnVuZGxlckNvbmZpZylcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAnQ291bGQgbm90IGZpbmQgdGhlIG1vZHVsZSBcIicgK1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhWzBdICtcbiAgICAgICAgICAgICAgICAnXCIgaW4gdGhlIFJlYWN0IFNlcnZlciBDb25zdW1lciBNYW5pZmVzdC4gVGhpcyBpcyBwcm9iYWJseSBhIGJ1ZyBpbiB0aGUgUmVhY3QgU2VydmVyIENvbXBvbmVudHMgYnVuZGxlci4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgIG1vZHVsZUV4cG9ydHMgPSBtZXRhZGF0YVsyXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gNCA9PT0gbWV0YWRhdGEubGVuZ3RoXG4gICAgICAgICAgPyBbYnVuZGxlckNvbmZpZy5pZCwgYnVuZGxlckNvbmZpZy5jaHVua3MsIG1vZHVsZUV4cG9ydHMsIDFdXG4gICAgICAgICAgOiBbYnVuZGxlckNvbmZpZy5pZCwgYnVuZGxlckNvbmZpZy5jaHVua3MsIG1vZHVsZUV4cG9ydHNdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1ldGFkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlU2VydmVyUmVmZXJlbmNlKGJ1bmRsZXJDb25maWcsIGlkKSB7XG4gICAgICB2YXIgbmFtZSA9IFwiXCIsXG4gICAgICAgIHJlc29sdmVkTW9kdWxlRGF0YSA9IGJ1bmRsZXJDb25maWdbaWRdO1xuICAgICAgaWYgKHJlc29sdmVkTW9kdWxlRGF0YSkgbmFtZSA9IHJlc29sdmVkTW9kdWxlRGF0YS5uYW1lO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHZhciBpZHggPSBpZC5sYXN0SW5kZXhPZihcIiNcIik7XG4gICAgICAgIC0xICE9PSBpZHggJiZcbiAgICAgICAgICAoKG5hbWUgPSBpZC5zbGljZShpZHggKyAxKSksXG4gICAgICAgICAgKHJlc29sdmVkTW9kdWxlRGF0YSA9IGJ1bmRsZXJDb25maWdbaWQuc2xpY2UoMCwgaWR4KV0pKTtcbiAgICAgICAgaWYgKCFyZXNvbHZlZE1vZHVsZURhdGEpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAnQ291bGQgbm90IGZpbmQgdGhlIG1vZHVsZSBcIicgK1xuICAgICAgICAgICAgICBpZCArXG4gICAgICAgICAgICAgICdcIiBpbiB0aGUgUmVhY3QgU2VydmVyIE1hbmlmZXN0LiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIHRoZSBSZWFjdCBTZXJ2ZXIgQ29tcG9uZW50cyBidW5kbGVyLidcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmVkTW9kdWxlRGF0YS5hc3luY1xuICAgICAgICA/IFtyZXNvbHZlZE1vZHVsZURhdGEuaWQsIHJlc29sdmVkTW9kdWxlRGF0YS5jaHVua3MsIG5hbWUsIDFdXG4gICAgICAgIDogW3Jlc29sdmVkTW9kdWxlRGF0YS5pZCwgcmVzb2x2ZWRNb2R1bGVEYXRhLmNodW5rcywgbmFtZV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcXVpcmVBc3luY01vZHVsZShpZCkge1xuICAgICAgdmFyIHByb21pc2UgPSBnbG9iYWxUaGlzLl9fbmV4dF9yZXF1aXJlX18oaWQpO1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHByb21pc2UudGhlbiB8fCBcImZ1bGZpbGxlZFwiID09PSBwcm9taXNlLnN0YXR1cylcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBwcm9taXNlLnRoZW4oXG4gICAgICAgIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgIHByb21pc2Uuc3RhdHVzID0gXCJmdWxmaWxsZWRcIjtcbiAgICAgICAgICBwcm9taXNlLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgICAgICBwcm9taXNlLnN0YXR1cyA9IFwicmVqZWN0ZWRcIjtcbiAgICAgICAgICBwcm9taXNlLnJlYXNvbiA9IHJlYXNvbjtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpZ25vcmVSZWplY3QoKSB7fVxuICAgIGZ1bmN0aW9uIHByZWxvYWRNb2R1bGUobWV0YWRhdGEpIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciBjaHVua3MgPSBtZXRhZGF0YVsxXSwgcHJvbWlzZXMgPSBbXSwgaSA9IDA7XG4gICAgICAgIGkgPCBjaHVua3MubGVuZ3RoO1xuXG4gICAgICApIHtcbiAgICAgICAgdmFyIGNodW5rSWQgPSBjaHVua3NbaSsrXTtcbiAgICAgICAgY2h1bmtzW2krK107XG4gICAgICAgIHZhciBlbnRyeSA9IGNodW5rQ2FjaGUuZ2V0KGNodW5rSWQpO1xuICAgICAgICBpZiAodm9pZCAwID09PSBlbnRyeSkge1xuICAgICAgICAgIGVudHJ5ID0gX193ZWJwYWNrX2NodW5rX2xvYWRfXyhjaHVua0lkKTtcbiAgICAgICAgICBwcm9taXNlcy5wdXNoKGVudHJ5KTtcbiAgICAgICAgICB2YXIgcmVzb2x2ZSA9IGNodW5rQ2FjaGUuc2V0LmJpbmQoY2h1bmtDYWNoZSwgY2h1bmtJZCwgbnVsbCk7XG4gICAgICAgICAgZW50cnkudGhlbihyZXNvbHZlLCBpZ25vcmVSZWplY3QpO1xuICAgICAgICAgIGNodW5rQ2FjaGUuc2V0KGNodW5rSWQsIGVudHJ5KTtcbiAgICAgICAgfSBlbHNlIG51bGwgIT09IGVudHJ5ICYmIHByb21pc2VzLnB1c2goZW50cnkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIDQgPT09IG1ldGFkYXRhLmxlbmd0aFxuICAgICAgICA/IDAgPT09IHByb21pc2VzLmxlbmd0aFxuICAgICAgICAgID8gcmVxdWlyZUFzeW5jTW9kdWxlKG1ldGFkYXRhWzBdKVxuICAgICAgICAgIDogUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVxdWlyZUFzeW5jTW9kdWxlKG1ldGFkYXRhWzBdKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIDogMCA8IHByb21pc2VzLmxlbmd0aFxuICAgICAgICAgID8gUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXF1aXJlTW9kdWxlKG1ldGFkYXRhKSB7XG4gICAgICB2YXIgbW9kdWxlRXhwb3J0cyA9IGdsb2JhbFRoaXMuX19uZXh0X3JlcXVpcmVfXyhtZXRhZGF0YVswXSk7XG4gICAgICBpZiAoNCA9PT0gbWV0YWRhdGEubGVuZ3RoICYmIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG1vZHVsZUV4cG9ydHMudGhlbilcbiAgICAgICAgaWYgKFwiZnVsZmlsbGVkXCIgPT09IG1vZHVsZUV4cG9ydHMuc3RhdHVzKVxuICAgICAgICAgIG1vZHVsZUV4cG9ydHMgPSBtb2R1bGVFeHBvcnRzLnZhbHVlO1xuICAgICAgICBlbHNlIHRocm93IG1vZHVsZUV4cG9ydHMucmVhc29uO1xuICAgICAgcmV0dXJuIFwiKlwiID09PSBtZXRhZGF0YVsyXVxuICAgICAgICA/IG1vZHVsZUV4cG9ydHNcbiAgICAgICAgOiBcIlwiID09PSBtZXRhZGF0YVsyXVxuICAgICAgICAgID8gbW9kdWxlRXhwb3J0cy5fX2VzTW9kdWxlXG4gICAgICAgICAgICA/IG1vZHVsZUV4cG9ydHMuZGVmYXVsdFxuICAgICAgICAgICAgOiBtb2R1bGVFeHBvcnRzXG4gICAgICAgICAgOiBtb2R1bGVFeHBvcnRzW21ldGFkYXRhWzJdXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlcGFyZURlc3RpbmF0aW9uV2l0aENodW5rcyhcbiAgICAgIG1vZHVsZUxvYWRpbmcsXG4gICAgICBjaHVua3MsXG4gICAgICBub25jZSRqc2NvbXAkMFxuICAgICkge1xuICAgICAgaWYgKG51bGwgIT09IG1vZHVsZUxvYWRpbmcpXG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgY2h1bmtzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICAgICAgdmFyIG5vbmNlID0gbm9uY2UkanNjb21wJDAsXG4gICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5kLFxuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0JGpzY29tcCQwID0gSlNDb21waWxlcl90ZW1wX2NvbnN0LlgsXG4gICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QkanNjb21wJDEgPSBtb2R1bGVMb2FkaW5nLnByZWZpeCArIGNodW5rc1tpXTtcbiAgICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gbW9kdWxlTG9hZGluZy5jcm9zc09yaWdpbjtcbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPVxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdFxuICAgICAgICAgICAgICA/IFwidXNlLWNyZWRlbnRpYWxzXCIgPT09IEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdFxuICAgICAgICAgICAgICAgID8gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0XG4gICAgICAgICAgICAgICAgOiBcIlwiXG4gICAgICAgICAgICAgIDogdm9pZCAwO1xuICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdCRqc2NvbXAkMC5jYWxsKFxuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0LFxuICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0JGpzY29tcCQxLFxuICAgICAgICAgICAgeyBjcm9zc09yaWdpbjogSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LCBub25jZTogbm9uY2UgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SXRlcmF0b3JGbihtYXliZUl0ZXJhYmxlKSB7XG4gICAgICBpZiAobnVsbCA9PT0gbWF5YmVJdGVyYWJsZSB8fCBcIm9iamVjdFwiICE9PSB0eXBlb2YgbWF5YmVJdGVyYWJsZSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBtYXliZUl0ZXJhYmxlID1cbiAgICAgICAgKE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0pIHx8XG4gICAgICAgIG1heWJlSXRlcmFibGVbXCJAQGl0ZXJhdG9yXCJdO1xuICAgICAgcmV0dXJuIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG1heWJlSXRlcmFibGUgPyBtYXliZUl0ZXJhYmxlIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNPYmplY3RQcm90b3R5cGUob2JqZWN0KSB7XG4gICAgICBpZiAoIW9iamVjdCkgcmV0dXJuICExO1xuICAgICAgdmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG4gICAgICBpZiAob2JqZWN0ID09PSBPYmplY3RQcm90b3R5cGUpIHJldHVybiAhMDtcbiAgICAgIGlmIChnZXRQcm90b3R5cGVPZihvYmplY3QpKSByZXR1cm4gITE7XG4gICAgICBvYmplY3QgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3QubGVuZ3RoOyBpKyspXG4gICAgICAgIGlmICghKG9iamVjdFtpXSBpbiBPYmplY3RQcm90b3R5cGUpKSByZXR1cm4gITE7XG4gICAgICByZXR1cm4gITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzU2ltcGxlT2JqZWN0KG9iamVjdCkge1xuICAgICAgaWYgKCFpc09iamVjdFByb3RvdHlwZShnZXRQcm90b3R5cGVPZihvYmplY3QpKSkgcmV0dXJuICExO1xuICAgICAgZm9yIChcbiAgICAgICAgdmFyIG5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KSwgaSA9IDA7XG4gICAgICAgIGkgPCBuYW1lcy5sZW5ndGg7XG4gICAgICAgIGkrK1xuICAgICAgKSB7XG4gICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIG5hbWVzW2ldKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFkZXNjcmlwdG9yIHx8XG4gICAgICAgICAgKCFkZXNjcmlwdG9yLmVudW1lcmFibGUgJiZcbiAgICAgICAgICAgICgoXCJrZXlcIiAhPT0gbmFtZXNbaV0gJiYgXCJyZWZcIiAhPT0gbmFtZXNbaV0pIHx8XG4gICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIGRlc2NyaXB0b3IuZ2V0KSlcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gb2JqZWN0TmFtZShvYmplY3QpIHtcbiAgICAgIG9iamVjdCA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpO1xuICAgICAgcmV0dXJuIG9iamVjdC5zbGljZSg4LCBvYmplY3QubGVuZ3RoIC0gMSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlS2V5Rm9yRXJyb3JNZXNzYWdlKGtleSkge1xuICAgICAgdmFyIGVuY29kZWRLZXkgPSBKU09OLnN0cmluZ2lmeShrZXkpO1xuICAgICAgcmV0dXJuICdcIicgKyBrZXkgKyAnXCInID09PSBlbmNvZGVkS2V5ID8ga2V5IDogZW5jb2RlZEtleTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZSh2YWx1ZSkge1xuICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIDEwID49IHZhbHVlLmxlbmd0aCA/IHZhbHVlIDogdmFsdWUuc2xpY2UoMCwgMTApICsgXCIuLi5cIlxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJvYmplY3RcIjpcbiAgICAgICAgICBpZiAoaXNBcnJheUltcGwodmFsdWUpKSByZXR1cm4gXCJbLi4uXVwiO1xuICAgICAgICAgIGlmIChudWxsICE9PSB2YWx1ZSAmJiB2YWx1ZS4kJHR5cGVvZiA9PT0gQ0xJRU5UX1JFRkVSRU5DRV9UQUcpXG4gICAgICAgICAgICByZXR1cm4gXCJjbGllbnRcIjtcbiAgICAgICAgICB2YWx1ZSA9IG9iamVjdE5hbWUodmFsdWUpO1xuICAgICAgICAgIHJldHVybiBcIk9iamVjdFwiID09PSB2YWx1ZSA/IFwiey4uLn1cIiA6IHZhbHVlO1xuICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICByZXR1cm4gdmFsdWUuJCR0eXBlb2YgPT09IENMSUVOVF9SRUZFUkVOQ0VfVEFHXG4gICAgICAgICAgICA/IFwiY2xpZW50XCJcbiAgICAgICAgICAgIDogKHZhbHVlID0gdmFsdWUuZGlzcGxheU5hbWUgfHwgdmFsdWUubmFtZSlcbiAgICAgICAgICAgICAgPyBcImZ1bmN0aW9uIFwiICsgdmFsdWVcbiAgICAgICAgICAgICAgOiBcImZ1bmN0aW9uXCI7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlRWxlbWVudFR5cGUodHlwZSkge1xuICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlKSByZXR1cm4gdHlwZTtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VMaXN0XCI7XG4gICAgICB9XG4gICAgICBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUucmVuZGVyKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICAgIHJldHVybiBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUudHlwZSk7XG4gICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICB2YXIgcGF5bG9hZCA9IHR5cGUuX3BheWxvYWQ7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5faW5pdDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUocGF5bG9hZCkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKG9iamVjdE9yQXJyYXksIGV4cGFuZGVkTmFtZSkge1xuICAgICAgdmFyIG9iaktpbmQgPSBvYmplY3ROYW1lKG9iamVjdE9yQXJyYXkpO1xuICAgICAgaWYgKFwiT2JqZWN0XCIgIT09IG9iaktpbmQgJiYgXCJBcnJheVwiICE9PSBvYmpLaW5kKSByZXR1cm4gb2JqS2luZDtcbiAgICAgIHZhciBzdGFydCA9IC0xLFxuICAgICAgICBsZW5ndGggPSAwO1xuICAgICAgaWYgKGlzQXJyYXlJbXBsKG9iamVjdE9yQXJyYXkpKVxuICAgICAgICBpZiAoanN4Q2hpbGRyZW5QYXJlbnRzLmhhcyhvYmplY3RPckFycmF5KSkge1xuICAgICAgICAgIHZhciB0eXBlID0ganN4Q2hpbGRyZW5QYXJlbnRzLmdldChvYmplY3RPckFycmF5KTtcbiAgICAgICAgICBvYmpLaW5kID0gXCI8XCIgKyBkZXNjcmliZUVsZW1lbnRUeXBlKHR5cGUpICsgXCI+XCI7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmplY3RPckFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBvYmplY3RPckFycmF5W2ldO1xuICAgICAgICAgICAgdmFsdWUgPVxuICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgdmFsdWVcbiAgICAgICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAgICAgOiBcIm9iamVjdFwiID09PSB0eXBlb2YgdmFsdWUgJiYgbnVsbCAhPT0gdmFsdWVcbiAgICAgICAgICAgICAgICAgID8gXCJ7XCIgKyBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh2YWx1ZSkgKyBcIn1cIlxuICAgICAgICAgICAgICAgICAgOiBcIntcIiArIGRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UodmFsdWUpICsgXCJ9XCI7XG4gICAgICAgICAgICBcIlwiICsgaSA9PT0gZXhwYW5kZWROYW1lXG4gICAgICAgICAgICAgID8gKChzdGFydCA9IG9iaktpbmQubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAobGVuZ3RoID0gdmFsdWUubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAob2JqS2luZCArPSB2YWx1ZSkpXG4gICAgICAgICAgICAgIDogKG9iaktpbmQgPVxuICAgICAgICAgICAgICAgICAgMTUgPiB2YWx1ZS5sZW5ndGggJiYgNDAgPiBvYmpLaW5kLmxlbmd0aCArIHZhbHVlLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA/IG9iaktpbmQgKyB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IG9iaktpbmQgKyBcInsuLi59XCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvYmpLaW5kICs9IFwiPC9cIiArIGRlc2NyaWJlRWxlbWVudFR5cGUodHlwZSkgKyBcIj5cIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYmpLaW5kID0gXCJbXCI7XG4gICAgICAgICAgZm9yICh0eXBlID0gMDsgdHlwZSA8IG9iamVjdE9yQXJyYXkubGVuZ3RoOyB0eXBlKyspXG4gICAgICAgICAgICAwIDwgdHlwZSAmJiAob2JqS2luZCArPSBcIiwgXCIpLFxuICAgICAgICAgICAgICAoaSA9IG9iamVjdE9yQXJyYXlbdHlwZV0pLFxuICAgICAgICAgICAgICAoaSA9XG4gICAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGkgJiYgbnVsbCAhPT0gaVxuICAgICAgICAgICAgICAgICAgPyBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZShpKVxuICAgICAgICAgICAgICAgICAgOiBkZXNjcmliZVZhbHVlRm9yRXJyb3JNZXNzYWdlKGkpKSxcbiAgICAgICAgICAgICAgXCJcIiArIHR5cGUgPT09IGV4cGFuZGVkTmFtZVxuICAgICAgICAgICAgICAgID8gKChzdGFydCA9IG9iaktpbmQubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgIChsZW5ndGggPSBpLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAob2JqS2luZCArPSBpKSlcbiAgICAgICAgICAgICAgICA6IChvYmpLaW5kID1cbiAgICAgICAgICAgICAgICAgICAgMTAgPiBpLmxlbmd0aCAmJiA0MCA+IG9iaktpbmQubGVuZ3RoICsgaS5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICA/IG9iaktpbmQgKyBpXG4gICAgICAgICAgICAgICAgICAgICAgOiBvYmpLaW5kICsgXCIuLi5cIik7XG4gICAgICAgICAgb2JqS2luZCArPSBcIl1cIjtcbiAgICAgICAgfVxuICAgICAgZWxzZSBpZiAob2JqZWN0T3JBcnJheS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFKVxuICAgICAgICBvYmpLaW5kID0gXCI8XCIgKyBkZXNjcmliZUVsZW1lbnRUeXBlKG9iamVjdE9yQXJyYXkudHlwZSkgKyBcIi8+XCI7XG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKG9iamVjdE9yQXJyYXkuJCR0eXBlb2YgPT09IENMSUVOVF9SRUZFUkVOQ0VfVEFHKSByZXR1cm4gXCJjbGllbnRcIjtcbiAgICAgICAgaWYgKGpzeFByb3BzUGFyZW50cy5oYXMob2JqZWN0T3JBcnJheSkpIHtcbiAgICAgICAgICBvYmpLaW5kID0ganN4UHJvcHNQYXJlbnRzLmdldChvYmplY3RPckFycmF5KTtcbiAgICAgICAgICBvYmpLaW5kID0gXCI8XCIgKyAoZGVzY3JpYmVFbGVtZW50VHlwZShvYmpLaW5kKSB8fCBcIi4uLlwiKTtcbiAgICAgICAgICB0eXBlID0gT2JqZWN0LmtleXMob2JqZWN0T3JBcnJheSk7XG4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IHR5cGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIG9iaktpbmQgKz0gXCIgXCI7XG4gICAgICAgICAgICB2YWx1ZSA9IHR5cGVbaV07XG4gICAgICAgICAgICBvYmpLaW5kICs9IGRlc2NyaWJlS2V5Rm9yRXJyb3JNZXNzYWdlKHZhbHVlKSArIFwiPVwiO1xuICAgICAgICAgICAgdmFyIF92YWx1ZTIgPSBvYmplY3RPckFycmF5W3ZhbHVlXTtcbiAgICAgICAgICAgIHZhciBfc3Vic3RyMiA9XG4gICAgICAgICAgICAgIHZhbHVlID09PSBleHBhbmRlZE5hbWUgJiZcbiAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIF92YWx1ZTIgJiZcbiAgICAgICAgICAgICAgbnVsbCAhPT0gX3ZhbHVlMlxuICAgICAgICAgICAgICAgID8gZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UoX3ZhbHVlMilcbiAgICAgICAgICAgICAgICA6IGRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UoX3ZhbHVlMik7XG4gICAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2YgX3ZhbHVlMiAmJiAoX3N1YnN0cjIgPSBcIntcIiArIF9zdWJzdHIyICsgXCJ9XCIpO1xuICAgICAgICAgICAgdmFsdWUgPT09IGV4cGFuZGVkTmFtZVxuICAgICAgICAgICAgICA/ICgoc3RhcnQgPSBvYmpLaW5kLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgKGxlbmd0aCA9IF9zdWJzdHIyLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgKG9iaktpbmQgKz0gX3N1YnN0cjIpKVxuICAgICAgICAgICAgICA6IChvYmpLaW5kID1cbiAgICAgICAgICAgICAgICAgIDEwID4gX3N1YnN0cjIubGVuZ3RoICYmIDQwID4gb2JqS2luZC5sZW5ndGggKyBfc3Vic3RyMi5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgPyBvYmpLaW5kICsgX3N1YnN0cjJcbiAgICAgICAgICAgICAgICAgICAgOiBvYmpLaW5kICsgXCIuLi5cIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIG9iaktpbmQgKz0gXCI+XCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb2JqS2luZCA9IFwie1wiO1xuICAgICAgICAgIHR5cGUgPSBPYmplY3Qua2V5cyhvYmplY3RPckFycmF5KTtcbiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdHlwZS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgIDAgPCBpICYmIChvYmpLaW5kICs9IFwiLCBcIiksXG4gICAgICAgICAgICAgICh2YWx1ZSA9IHR5cGVbaV0pLFxuICAgICAgICAgICAgICAob2JqS2luZCArPSBkZXNjcmliZUtleUZvckVycm9yTWVzc2FnZSh2YWx1ZSkgKyBcIjogXCIpLFxuICAgICAgICAgICAgICAoX3ZhbHVlMiA9IG9iamVjdE9yQXJyYXlbdmFsdWVdKSxcbiAgICAgICAgICAgICAgKF92YWx1ZTIgPVxuICAgICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBfdmFsdWUyICYmIG51bGwgIT09IF92YWx1ZTJcbiAgICAgICAgICAgICAgICAgID8gZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UoX3ZhbHVlMilcbiAgICAgICAgICAgICAgICAgIDogZGVzY3JpYmVWYWx1ZUZvckVycm9yTWVzc2FnZShfdmFsdWUyKSksXG4gICAgICAgICAgICAgIHZhbHVlID09PSBleHBhbmRlZE5hbWVcbiAgICAgICAgICAgICAgICA/ICgoc3RhcnQgPSBvYmpLaW5kLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAobGVuZ3RoID0gX3ZhbHVlMi5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgKG9iaktpbmQgKz0gX3ZhbHVlMikpXG4gICAgICAgICAgICAgICAgOiAob2JqS2luZCA9XG4gICAgICAgICAgICAgICAgICAgIDEwID4gX3ZhbHVlMi5sZW5ndGggJiYgNDAgPiBvYmpLaW5kLmxlbmd0aCArIF92YWx1ZTIubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgPyBvYmpLaW5kICsgX3ZhbHVlMlxuICAgICAgICAgICAgICAgICAgICAgIDogb2JqS2luZCArIFwiLi4uXCIpO1xuICAgICAgICAgIG9iaktpbmQgKz0gXCJ9XCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB2b2lkIDAgPT09IGV4cGFuZGVkTmFtZVxuICAgICAgICA/IG9iaktpbmRcbiAgICAgICAgOiAtMSA8IHN0YXJ0ICYmIDAgPCBsZW5ndGhcbiAgICAgICAgICA/ICgob2JqZWN0T3JBcnJheSA9IFwiIFwiLnJlcGVhdChzdGFydCkgKyBcIl5cIi5yZXBlYXQobGVuZ3RoKSksXG4gICAgICAgICAgICBcIlxcbiAgXCIgKyBvYmpLaW5kICsgXCJcXG4gIFwiICsgb2JqZWN0T3JBcnJheSlcbiAgICAgICAgICA6IFwiXFxuICBcIiArIG9iaktpbmQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZU51bWJlcihudW1iZXIpIHtcbiAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobnVtYmVyKVxuICAgICAgICA/IDAgPT09IG51bWJlciAmJiAtSW5maW5pdHkgPT09IDEgLyBudW1iZXJcbiAgICAgICAgICA/IFwiJC0wXCJcbiAgICAgICAgICA6IG51bWJlclxuICAgICAgICA6IEluZmluaXR5ID09PSBudW1iZXJcbiAgICAgICAgICA/IFwiJEluZmluaXR5XCJcbiAgICAgICAgICA6IC1JbmZpbml0eSA9PT0gbnVtYmVyXG4gICAgICAgICAgICA/IFwiJC1JbmZpbml0eVwiXG4gICAgICAgICAgICA6IFwiJE5hTlwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVwbHkoXG4gICAgICByb290LFxuICAgICAgZm9ybUZpZWxkUHJlZml4LFxuICAgICAgdGVtcG9yYXJ5UmVmZXJlbmNlcyxcbiAgICAgIHJlc29sdmUsXG4gICAgICByZWplY3RcbiAgICApIHtcbiAgICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZVR5cGVkQXJyYXkodGFnLCB0eXBlZEFycmF5KSB7XG4gICAgICAgIHR5cGVkQXJyYXkgPSBuZXcgQmxvYihbXG4gICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoXG4gICAgICAgICAgICB0eXBlZEFycmF5LmJ1ZmZlcixcbiAgICAgICAgICAgIHR5cGVkQXJyYXkuYnl0ZU9mZnNldCxcbiAgICAgICAgICAgIHR5cGVkQXJyYXkuYnl0ZUxlbmd0aFxuICAgICAgICAgIClcbiAgICAgICAgXSk7XG4gICAgICAgIHZhciBibG9iSWQgPSBuZXh0UGFydElkKys7XG4gICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIGJsb2JJZCwgdHlwZWRBcnJheSk7XG4gICAgICAgIHJldHVybiBcIiRcIiArIHRhZyArIGJsb2JJZC50b1N0cmluZygxNik7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBzZXJpYWxpemVCaW5hcnlSZWFkZXIocmVhZGVyKSB7XG4gICAgICAgIGZ1bmN0aW9uIHByb2dyZXNzKGVudHJ5KSB7XG4gICAgICAgICAgZW50cnkuZG9uZVxuICAgICAgICAgICAgPyAoKGVudHJ5ID0gbmV4dFBhcnRJZCsrKSxcbiAgICAgICAgICAgICAgZGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgZW50cnksIG5ldyBCbG9iKGJ1ZmZlcikpLFxuICAgICAgICAgICAgICBkYXRhLmFwcGVuZChcbiAgICAgICAgICAgICAgICBmb3JtRmllbGRQcmVmaXggKyBzdHJlYW1JZCxcbiAgICAgICAgICAgICAgICAnXCIkbycgKyBlbnRyeS50b1N0cmluZygxNikgKyAnXCInXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGRhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHN0cmVhbUlkLCBcIkNcIiksXG4gICAgICAgICAgICAgIHBlbmRpbmdQYXJ0cy0tLFxuICAgICAgICAgICAgICAwID09PSBwZW5kaW5nUGFydHMgJiYgcmVzb2x2ZShkYXRhKSlcbiAgICAgICAgICAgIDogKGJ1ZmZlci5wdXNoKGVudHJ5LnZhbHVlKSxcbiAgICAgICAgICAgICAgcmVhZGVyLnJlYWQobmV3IFVpbnQ4QXJyYXkoMTAyNCkpLnRoZW4ocHJvZ3Jlc3MsIHJlamVjdCkpO1xuICAgICAgICB9XG4gICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKTtcbiAgICAgICAgdmFyIGRhdGEgPSBmb3JtRGF0YTtcbiAgICAgICAgcGVuZGluZ1BhcnRzKys7XG4gICAgICAgIHZhciBzdHJlYW1JZCA9IG5leHRQYXJ0SWQrKyxcbiAgICAgICAgICBidWZmZXIgPSBbXTtcbiAgICAgICAgcmVhZGVyLnJlYWQobmV3IFVpbnQ4QXJyYXkoMTAyNCkpLnRoZW4ocHJvZ3Jlc3MsIHJlamVjdCk7XG4gICAgICAgIHJldHVybiBcIiRyXCIgKyBzdHJlYW1JZC50b1N0cmluZygxNik7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBzZXJpYWxpemVSZWFkZXIocmVhZGVyKSB7XG4gICAgICAgIGZ1bmN0aW9uIHByb2dyZXNzKGVudHJ5KSB7XG4gICAgICAgICAgaWYgKGVudHJ5LmRvbmUpXG4gICAgICAgICAgICBkYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBzdHJlYW1JZCwgXCJDXCIpLFxuICAgICAgICAgICAgICBwZW5kaW5nUGFydHMtLSxcbiAgICAgICAgICAgICAgMCA9PT0gcGVuZGluZ1BhcnRzICYmIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgdmFyIHBhcnRKU09OID0gSlNPTi5zdHJpbmdpZnkoZW50cnkudmFsdWUsIHJlc29sdmVUb0pTT04pO1xuICAgICAgICAgICAgICBkYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBzdHJlYW1JZCwgcGFydEpTT04pO1xuICAgICAgICAgICAgICByZWFkZXIucmVhZCgpLnRoZW4ocHJvZ3Jlc3MsIHJlamVjdCk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgIHJlamVjdCh4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSk7XG4gICAgICAgIHZhciBkYXRhID0gZm9ybURhdGE7XG4gICAgICAgIHBlbmRpbmdQYXJ0cysrO1xuICAgICAgICB2YXIgc3RyZWFtSWQgPSBuZXh0UGFydElkKys7XG4gICAgICAgIHJlYWRlci5yZWFkKCkudGhlbihwcm9ncmVzcywgcmVqZWN0KTtcbiAgICAgICAgcmV0dXJuIFwiJFJcIiArIHN0cmVhbUlkLnRvU3RyaW5nKDE2KTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZVJlYWRhYmxlU3RyZWFtKHN0cmVhbSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciBiaW5hcnlSZWFkZXIgPSBzdHJlYW0uZ2V0UmVhZGVyKHsgbW9kZTogXCJieW9iXCIgfSk7XG4gICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICByZXR1cm4gc2VyaWFsaXplUmVhZGVyKHN0cmVhbS5nZXRSZWFkZXIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUJpbmFyeVJlYWRlcihiaW5hcnlSZWFkZXIpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc2VyaWFsaXplQXN5bmNJdGVyYWJsZShpdGVyYWJsZSwgaXRlcmF0b3IpIHtcbiAgICAgICAgZnVuY3Rpb24gcHJvZ3Jlc3MoZW50cnkpIHtcbiAgICAgICAgICBpZiAoZW50cnkuZG9uZSkge1xuICAgICAgICAgICAgaWYgKHZvaWQgMCA9PT0gZW50cnkudmFsdWUpXG4gICAgICAgICAgICAgIGRhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHN0cmVhbUlkLCBcIkNcIik7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdmFyIHBhcnRKU09OID0gSlNPTi5zdHJpbmdpZnkoZW50cnkudmFsdWUsIHJlc29sdmVUb0pTT04pO1xuICAgICAgICAgICAgICAgIGRhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHN0cmVhbUlkLCBcIkNcIiArIHBhcnRKU09OKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICAgIHJlamVjdCh4KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBlbmRpbmdQYXJ0cy0tO1xuICAgICAgICAgICAgMCA9PT0gcGVuZGluZ1BhcnRzICYmIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB2YXIgX3BhcnRKU09OID0gSlNPTi5zdHJpbmdpZnkoZW50cnkudmFsdWUsIHJlc29sdmVUb0pTT04pO1xuICAgICAgICAgICAgICBkYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBzdHJlYW1JZCwgX3BhcnRKU09OKTtcbiAgICAgICAgICAgICAgaXRlcmF0b3IubmV4dCgpLnRoZW4ocHJvZ3Jlc3MsIHJlamVjdCk7XG4gICAgICAgICAgICB9IGNhdGNoICh4JDApIHtcbiAgICAgICAgICAgICAgcmVqZWN0KHgkMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpO1xuICAgICAgICB2YXIgZGF0YSA9IGZvcm1EYXRhO1xuICAgICAgICBwZW5kaW5nUGFydHMrKztcbiAgICAgICAgdmFyIHN0cmVhbUlkID0gbmV4dFBhcnRJZCsrO1xuICAgICAgICBpdGVyYWJsZSA9IGl0ZXJhYmxlID09PSBpdGVyYXRvcjtcbiAgICAgICAgaXRlcmF0b3IubmV4dCgpLnRoZW4ocHJvZ3Jlc3MsIHJlamVjdCk7XG4gICAgICAgIHJldHVybiBcIiRcIiArIChpdGVyYWJsZSA/IFwieFwiIDogXCJYXCIpICsgc3RyZWFtSWQudG9TdHJpbmcoMTYpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gcmVzb2x2ZVRvSlNPTihrZXksIHZhbHVlKSB7XG4gICAgICAgIHZhciBvcmlnaW5hbFZhbHVlID0gdGhpc1trZXldO1xuICAgICAgICBcIm9iamVjdFwiICE9PSB0eXBlb2Ygb3JpZ2luYWxWYWx1ZSB8fFxuICAgICAgICAgIG9yaWdpbmFsVmFsdWUgPT09IHZhbHVlIHx8XG4gICAgICAgICAgb3JpZ2luYWxWYWx1ZSBpbnN0YW5jZW9mIERhdGUgfHxcbiAgICAgICAgICAoXCJPYmplY3RcIiAhPT0gb2JqZWN0TmFtZShvcmlnaW5hbFZhbHVlKVxuICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiT25seSBwbGFpbiBvYmplY3RzIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuICVzIG9iamVjdHMgYXJlIG5vdCBzdXBwb3J0ZWQuJXNcIixcbiAgICAgICAgICAgICAgICBvYmplY3ROYW1lKG9yaWdpbmFsVmFsdWUpLFxuICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiT25seSBwbGFpbiBvYmplY3RzIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuIE9iamVjdHMgd2l0aCB0b0pTT04gbWV0aG9kcyBhcmUgbm90IHN1cHBvcnRlZC4gQ29udmVydCBpdCBtYW51YWxseSB0byBhIHNpbXBsZSB2YWx1ZSBiZWZvcmUgcGFzc2luZyBpdCB0byBwcm9wcy4lc1wiLFxuICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBzd2l0Y2ggKHZhbHVlLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICAgICAgaWYgKHZvaWQgMCAhPT0gdGVtcG9yYXJ5UmVmZXJlbmNlcyAmJiAtMSA9PT0ga2V5LmluZGV4T2YoXCI6XCIpKSB7XG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudFJlZmVyZW5jZSA9IHdyaXR0ZW5PYmplY3RzLmdldCh0aGlzKTtcbiAgICAgICAgICAgICAgICBpZiAodm9pZCAwICE9PSBwYXJlbnRSZWZlcmVuY2UpXG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzLnNldChwYXJlbnRSZWZlcmVuY2UgKyBcIjpcIiArIGtleSwgdmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICBcIiRUXCJcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJSZWFjdCBFbGVtZW50IGNhbm5vdCBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQgd2l0aG91dCBhIHRlbXBvcmFyeSByZWZlcmVuY2Ugc2V0LiBQYXNzIGEgVGVtcG9yYXJ5UmVmZXJlbmNlU2V0IHRvIHRoZSBvcHRpb25zLlwiICtcbiAgICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgICBvcmlnaW5hbFZhbHVlID0gdmFsdWUuX3BheWxvYWQ7XG4gICAgICAgICAgICAgIHZhciBpbml0ID0gdmFsdWUuX2luaXQ7XG4gICAgICAgICAgICAgIG51bGwgPT09IGZvcm1EYXRhICYmIChmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpKTtcbiAgICAgICAgICAgICAgcGVuZGluZ1BhcnRzKys7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFyZW50UmVmZXJlbmNlID0gaW5pdChvcmlnaW5hbFZhbHVlKTtcbiAgICAgICAgICAgICAgICB2YXIgbGF6eUlkID0gbmV4dFBhcnRJZCsrLFxuICAgICAgICAgICAgICAgICAgcGFydEpTT04gPSBzZXJpYWxpemVNb2RlbChwYXJlbnRSZWZlcmVuY2UsIGxhenlJZCk7XG4gICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIGxhenlJZCwgcGFydEpTT04pO1xuICAgICAgICAgICAgICAgIHJldHVybiBcIiRcIiArIGxhenlJZC50b1N0cmluZygxNik7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgeCAmJlxuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0geCAmJlxuICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgeC50aGVuXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBwZW5kaW5nUGFydHMrKztcbiAgICAgICAgICAgICAgICAgIHZhciBfbGF6eUlkID0gbmV4dFBhcnRJZCsrO1xuICAgICAgICAgICAgICAgICAgcGFyZW50UmVmZXJlbmNlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgIHZhciBfcGFydEpTT04yID0gc2VyaWFsaXplTW9kZWwodmFsdWUsIF9sYXp5SWQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgX2RhdGEgPSBmb3JtRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICBfZGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgX2xhenlJZCwgX3BhcnRKU09OMik7XG4gICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1BhcnRzLS07XG4gICAgICAgICAgICAgICAgICAgICAgMCA9PT0gcGVuZGluZ1BhcnRzICYmIHJlc29sdmUoX2RhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChyZWFzb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICByZWplY3QocmVhc29uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIHgudGhlbihwYXJlbnRSZWZlcmVuY2UsIHBhcmVudFJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gXCIkXCIgKyBfbGF6eUlkLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVqZWN0KHgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHBlbmRpbmdQYXJ0cy0tO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB2YWx1ZS50aGVuKSB7XG4gICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSk7XG4gICAgICAgICAgICBwZW5kaW5nUGFydHMrKztcbiAgICAgICAgICAgIHZhciBwcm9taXNlSWQgPSBuZXh0UGFydElkKys7XG4gICAgICAgICAgICB2YWx1ZS50aGVuKGZ1bmN0aW9uIChwYXJ0VmFsdWUpIHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB2YXIgX3BhcnRKU09OMyA9IHNlcmlhbGl6ZU1vZGVsKHBhcnRWYWx1ZSwgcHJvbWlzZUlkKTtcbiAgICAgICAgICAgICAgICBwYXJ0VmFsdWUgPSBmb3JtRGF0YTtcbiAgICAgICAgICAgICAgICBwYXJ0VmFsdWUuYXBwZW5kKGZvcm1GaWVsZFByZWZpeCArIHByb21pc2VJZCwgX3BhcnRKU09OMyk7XG4gICAgICAgICAgICAgICAgcGVuZGluZ1BhcnRzLS07XG4gICAgICAgICAgICAgICAgMCA9PT0gcGVuZGluZ1BhcnRzICYmIHJlc29sdmUocGFydFZhbHVlKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAocmVhc29uKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KHJlYXNvbik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHJlamVjdCk7XG4gICAgICAgICAgICByZXR1cm4gXCIkQFwiICsgcHJvbWlzZUlkLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcGFyZW50UmVmZXJlbmNlID0gd3JpdHRlbk9iamVjdHMuZ2V0KHZhbHVlKTtcbiAgICAgICAgICBpZiAodm9pZCAwICE9PSBwYXJlbnRSZWZlcmVuY2UpXG4gICAgICAgICAgICBpZiAobW9kZWxSb290ID09PSB2YWx1ZSkgbW9kZWxSb290ID0gbnVsbDtcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIHBhcmVudFJlZmVyZW5jZTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAtMSA9PT0ga2V5LmluZGV4T2YoXCI6XCIpICYmXG4gICAgICAgICAgICAgICgocGFyZW50UmVmZXJlbmNlID0gd3JpdHRlbk9iamVjdHMuZ2V0KHRoaXMpKSxcbiAgICAgICAgICAgICAgdm9pZCAwICE9PSBwYXJlbnRSZWZlcmVuY2UgJiZcbiAgICAgICAgICAgICAgICAoKHBhcmVudFJlZmVyZW5jZSA9IHBhcmVudFJlZmVyZW5jZSArIFwiOlwiICsga2V5KSxcbiAgICAgICAgICAgICAgICB3cml0dGVuT2JqZWN0cy5zZXQodmFsdWUsIHBhcmVudFJlZmVyZW5jZSksXG4gICAgICAgICAgICAgICAgdm9pZCAwICE9PSB0ZW1wb3JhcnlSZWZlcmVuY2VzICYmXG4gICAgICAgICAgICAgICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzLnNldChwYXJlbnRSZWZlcmVuY2UsIHZhbHVlKSkpO1xuICAgICAgICAgIGlmIChpc0FycmF5SW1wbCh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpO1xuICAgICAgICAgICAgdmFyIF9kYXRhMyA9IGZvcm1EYXRhO1xuICAgICAgICAgICAga2V5ID0gbmV4dFBhcnRJZCsrO1xuICAgICAgICAgICAgdmFyIHByZWZpeCA9IGZvcm1GaWVsZFByZWZpeCArIGtleSArIFwiX1wiO1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaChmdW5jdGlvbiAob3JpZ2luYWxWYWx1ZSwgb3JpZ2luYWxLZXkpIHtcbiAgICAgICAgICAgICAgX2RhdGEzLmFwcGVuZChwcmVmaXggKyBvcmlnaW5hbEtleSwgb3JpZ2luYWxWYWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBcIiRLXCIgKyBrZXkudG9TdHJpbmcoMTYpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBNYXApXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoa2V5ID0gbmV4dFBhcnRJZCsrKSxcbiAgICAgICAgICAgICAgKHBhcmVudFJlZmVyZW5jZSA9IHNlcmlhbGl6ZU1vZGVsKEFycmF5LmZyb20odmFsdWUpLCBrZXkpKSxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpLFxuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsga2V5LCBwYXJlbnRSZWZlcmVuY2UpLFxuICAgICAgICAgICAgICBcIiRRXCIgKyBrZXkudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFNldClcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChrZXkgPSBuZXh0UGFydElkKyspLFxuICAgICAgICAgICAgICAocGFyZW50UmVmZXJlbmNlID0gc2VyaWFsaXplTW9kZWwoQXJyYXkuZnJvbSh2YWx1ZSksIGtleSkpLFxuICAgICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSksXG4gICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChmb3JtRmllbGRQcmVmaXggKyBrZXksIHBhcmVudFJlZmVyZW5jZSksXG4gICAgICAgICAgICAgIFwiJFdcIiArIGtleS50b1N0cmluZygxNilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoa2V5ID0gbmV3IEJsb2IoW3ZhbHVlXSkpLFxuICAgICAgICAgICAgICAocGFyZW50UmVmZXJlbmNlID0gbmV4dFBhcnRJZCsrKSxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpLFxuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsgcGFyZW50UmVmZXJlbmNlLCBrZXkpLFxuICAgICAgICAgICAgICBcIiRBXCIgKyBwYXJlbnRSZWZlcmVuY2UudG9TdHJpbmcoMTYpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEludDhBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwiT1wiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwib1wiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIlVcIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEludDE2QXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIlNcIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVpbnQxNkFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJzXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBJbnQzMkFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJMXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBVaW50MzJBcnJheSlcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVUeXBlZEFycmF5KFwibFwiLCB2YWx1ZSk7XG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJHXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcImdcIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXkpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplVHlwZWRBcnJheShcIk1cIiwgdmFsdWUpO1xuICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KVxuICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJtXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRhVmlldykgcmV0dXJuIHNlcmlhbGl6ZVR5cGVkQXJyYXkoXCJWXCIsIHZhbHVlKTtcbiAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgQmxvYiAmJiB2YWx1ZSBpbnN0YW5jZW9mIEJsb2IpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSksXG4gICAgICAgICAgICAgIChrZXkgPSBuZXh0UGFydElkKyspLFxuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsga2V5LCB2YWx1ZSksXG4gICAgICAgICAgICAgIFwiJEJcIiArIGtleS50b1N0cmluZygxNilcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKChwYXJlbnRSZWZlcmVuY2UgPSBnZXRJdGVyYXRvckZuKHZhbHVlKSkpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocGFyZW50UmVmZXJlbmNlID0gcGFyZW50UmVmZXJlbmNlLmNhbGwodmFsdWUpKSxcbiAgICAgICAgICAgICAgcGFyZW50UmVmZXJlbmNlID09PSB2YWx1ZVxuICAgICAgICAgICAgICAgID8gKChrZXkgPSBuZXh0UGFydElkKyspLFxuICAgICAgICAgICAgICAgICAgKHBhcmVudFJlZmVyZW5jZSA9IHNlcmlhbGl6ZU1vZGVsKFxuICAgICAgICAgICAgICAgICAgICBBcnJheS5mcm9tKHBhcmVudFJlZmVyZW5jZSksXG4gICAgICAgICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSAmJiAoZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSksXG4gICAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUZpZWxkUHJlZml4ICsga2V5LCBwYXJlbnRSZWZlcmVuY2UpLFxuICAgICAgICAgICAgICAgICAgXCIkaVwiICsga2V5LnRvU3RyaW5nKDE2KSlcbiAgICAgICAgICAgICAgICA6IEFycmF5LmZyb20ocGFyZW50UmVmZXJlbmNlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBSZWFkYWJsZVN0cmVhbSAmJlxuICAgICAgICAgICAgdmFsdWUgaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiBzZXJpYWxpemVSZWFkYWJsZVN0cmVhbSh2YWx1ZSk7XG4gICAgICAgICAgcGFyZW50UmVmZXJlbmNlID0gdmFsdWVbQVNZTkNfSVRFUkFUT1JdO1xuICAgICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwYXJlbnRSZWZlcmVuY2UpXG4gICAgICAgICAgICByZXR1cm4gc2VyaWFsaXplQXN5bmNJdGVyYWJsZSh2YWx1ZSwgcGFyZW50UmVmZXJlbmNlLmNhbGwodmFsdWUpKTtcbiAgICAgICAgICBwYXJlbnRSZWZlcmVuY2UgPSBnZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcGFyZW50UmVmZXJlbmNlICE9PSBPYmplY3RQcm90b3R5cGUgJiZcbiAgICAgICAgICAgIChudWxsID09PSBwYXJlbnRSZWZlcmVuY2UgfHxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gZ2V0UHJvdG90eXBlT2YocGFyZW50UmVmZXJlbmNlKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlmICh2b2lkIDAgPT09IHRlbXBvcmFyeVJlZmVyZW5jZXMpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiT25seSBwbGFpbiBvYmplY3RzLCBhbmQgYSBmZXcgYnVpbHQtaW5zLCBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMuIENsYXNzZXMgb3IgbnVsbCBwcm90b3R5cGVzIGFyZSBub3Qgc3VwcG9ydGVkLlwiICtcbiAgICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybiBcIiRUXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEVcbiAgICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlJlYWN0IENvbnRleHQgUHJvdmlkZXJzIGNhbm5vdCBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuJXNcIixcbiAgICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogXCJPYmplY3RcIiAhPT0gb2JqZWN0TmFtZSh2YWx1ZSlcbiAgICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJPbmx5IHBsYWluIG9iamVjdHMgY2FuIGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudC4gJXMgb2JqZWN0cyBhcmUgbm90IHN1cHBvcnRlZC4lc1wiLFxuICAgICAgICAgICAgICAgICAgb2JqZWN0TmFtZSh2YWx1ZSksXG4gICAgICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IGlzU2ltcGxlT2JqZWN0KHZhbHVlKVxuICAgICAgICAgICAgICAgID8gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyAmJlxuICAgICAgICAgICAgICAgICAgKChwYXJlbnRSZWZlcmVuY2UgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHZhbHVlKSksXG4gICAgICAgICAgICAgICAgICAwIDwgcGFyZW50UmVmZXJlbmNlLmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIFwiT25seSBwbGFpbiBvYmplY3RzIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuIE9iamVjdHMgd2l0aCBzeW1ib2wgcHJvcGVydGllcyBsaWtlICVzIGFyZSBub3Qgc3VwcG9ydGVkLiVzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgcGFyZW50UmVmZXJlbmNlWzBdLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlT2JqZWN0Rm9yRXJyb3JNZXNzYWdlKHRoaXMsIGtleSlcbiAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiT25seSBwbGFpbiBvYmplY3RzIGNhbiBiZSBwYXNzZWQgdG8gU2VydmVyIEZ1bmN0aW9ucyBmcm9tIHRoZSBDbGllbnQuIENsYXNzZXMgb3Igb3RoZXIgb2JqZWN0cyB3aXRoIG1ldGhvZHMgYXJlIG5vdCBzdXBwb3J0ZWQuJXNcIixcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmVPYmplY3RGb3JFcnJvck1lc3NhZ2UodGhpcywga2V5KVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGlmIChcIlpcIiA9PT0gdmFsdWVbdmFsdWUubGVuZ3RoIC0gMV0gJiYgdGhpc1trZXldIGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICAgIHJldHVybiBcIiREXCIgKyB2YWx1ZTtcbiAgICAgICAgICBrZXkgPSBcIiRcIiA9PT0gdmFsdWVbMF0gPyBcIiRcIiArIHZhbHVlIDogdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJib29sZWFuXCIgPT09IHR5cGVvZiB2YWx1ZSkgcmV0dXJuIHZhbHVlO1xuICAgICAgICBpZiAoXCJudW1iZXJcIiA9PT0gdHlwZW9mIHZhbHVlKSByZXR1cm4gc2VyaWFsaXplTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgaWYgKFwidW5kZWZpbmVkXCIgPT09IHR5cGVvZiB2YWx1ZSkgcmV0dXJuIFwiJHVuZGVmaW5lZFwiO1xuICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBwYXJlbnRSZWZlcmVuY2UgPSBrbm93blNlcnZlclJlZmVyZW5jZXMuZ2V0KHZhbHVlKTtcbiAgICAgICAgICBpZiAodm9pZCAwICE9PSBwYXJlbnRSZWZlcmVuY2UpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoa2V5ID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgICAgeyBpZDogcGFyZW50UmVmZXJlbmNlLmlkLCBib3VuZDogcGFyZW50UmVmZXJlbmNlLmJvdW5kIH0sXG4gICAgICAgICAgICAgICAgcmVzb2x2ZVRvSlNPTlxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gZm9ybURhdGEgJiYgKGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCkpLFxuICAgICAgICAgICAgICAocGFyZW50UmVmZXJlbmNlID0gbmV4dFBhcnRJZCsrKSxcbiAgICAgICAgICAgICAgZm9ybURhdGEuc2V0KGZvcm1GaWVsZFByZWZpeCArIHBhcmVudFJlZmVyZW5jZSwga2V5KSxcbiAgICAgICAgICAgICAgXCIkRlwiICsgcGFyZW50UmVmZXJlbmNlLnRvU3RyaW5nKDE2KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB2b2lkIDAgIT09IHRlbXBvcmFyeVJlZmVyZW5jZXMgJiZcbiAgICAgICAgICAgIC0xID09PSBrZXkuaW5kZXhPZihcIjpcIikgJiZcbiAgICAgICAgICAgICgocGFyZW50UmVmZXJlbmNlID0gd3JpdHRlbk9iamVjdHMuZ2V0KHRoaXMpKSxcbiAgICAgICAgICAgIHZvaWQgMCAhPT0gcGFyZW50UmVmZXJlbmNlKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXMuc2V0KHBhcmVudFJlZmVyZW5jZSArIFwiOlwiICsga2V5LCB2YWx1ZSksIFwiJFRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiQ2xpZW50IEZ1bmN0aW9ucyBjYW5ub3QgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIFNlcnZlciBGdW5jdGlvbnMuIE9ubHkgRnVuY3Rpb25zIHBhc3NlZCBmcm9tIHRoZSBTZXJ2ZXIgY2FuIGJlIHBhc3NlZCBiYWNrIGFnYWluLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJzeW1ib2xcIiA9PT0gdHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdm9pZCAwICE9PSB0ZW1wb3JhcnlSZWZlcmVuY2VzICYmXG4gICAgICAgICAgICAtMSA9PT0ga2V5LmluZGV4T2YoXCI6XCIpICYmXG4gICAgICAgICAgICAoKHBhcmVudFJlZmVyZW5jZSA9IHdyaXR0ZW5PYmplY3RzLmdldCh0aGlzKSksXG4gICAgICAgICAgICB2b2lkIDAgIT09IHBhcmVudFJlZmVyZW5jZSlcbiAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICB0ZW1wb3JhcnlSZWZlcmVuY2VzLnNldChwYXJlbnRSZWZlcmVuY2UgKyBcIjpcIiArIGtleSwgdmFsdWUpLCBcIiRUXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIlN5bWJvbHMgY2Fubm90IGJlIHBhc3NlZCB0byBhIFNlcnZlciBGdW5jdGlvbiB3aXRob3V0IGEgdGVtcG9yYXJ5IHJlZmVyZW5jZSBzZXQuIFBhc3MgYSBUZW1wb3JhcnlSZWZlcmVuY2VTZXQgdG8gdGhlIG9wdGlvbnMuXCIgK1xuICAgICAgICAgICAgICBkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSh0aGlzLCBrZXkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXCJiaWdpbnRcIiA9PT0gdHlwZW9mIHZhbHVlKSByZXR1cm4gXCIkblwiICsgdmFsdWUudG9TdHJpbmcoMTApO1xuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIlR5cGUgXCIgK1xuICAgICAgICAgICAgdHlwZW9mIHZhbHVlICtcbiAgICAgICAgICAgIFwiIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYW4gYXJndW1lbnQgdG8gYSBTZXJ2ZXIgRnVuY3Rpb24uXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHNlcmlhbGl6ZU1vZGVsKG1vZGVsLCBpZCkge1xuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgbW9kZWwgJiZcbiAgICAgICAgICBudWxsICE9PSBtb2RlbCAmJlxuICAgICAgICAgICgoaWQgPSBcIiRcIiArIGlkLnRvU3RyaW5nKDE2KSksXG4gICAgICAgICAgd3JpdHRlbk9iamVjdHMuc2V0KG1vZGVsLCBpZCksXG4gICAgICAgICAgdm9pZCAwICE9PSB0ZW1wb3JhcnlSZWZlcmVuY2VzICYmIHRlbXBvcmFyeVJlZmVyZW5jZXMuc2V0KGlkLCBtb2RlbCkpO1xuICAgICAgICBtb2RlbFJvb3QgPSBtb2RlbDtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG1vZGVsLCByZXNvbHZlVG9KU09OKTtcbiAgICAgIH1cbiAgICAgIHZhciBuZXh0UGFydElkID0gMSxcbiAgICAgICAgcGVuZGluZ1BhcnRzID0gMCxcbiAgICAgICAgZm9ybURhdGEgPSBudWxsLFxuICAgICAgICB3cml0dGVuT2JqZWN0cyA9IG5ldyBXZWFrTWFwKCksXG4gICAgICAgIG1vZGVsUm9vdCA9IHJvb3QsXG4gICAgICAgIGpzb24gPSBzZXJpYWxpemVNb2RlbChyb290LCAwKTtcbiAgICAgIG51bGwgPT09IGZvcm1EYXRhXG4gICAgICAgID8gcmVzb2x2ZShqc29uKVxuICAgICAgICA6IChmb3JtRGF0YS5zZXQoZm9ybUZpZWxkUHJlZml4ICsgXCIwXCIsIGpzb24pLFxuICAgICAgICAgIDAgPT09IHBlbmRpbmdQYXJ0cyAmJiByZXNvbHZlKGZvcm1EYXRhKSk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAwIDwgcGVuZGluZ1BhcnRzICYmXG4gICAgICAgICAgKChwZW5kaW5nUGFydHMgPSAwKSxcbiAgICAgICAgICBudWxsID09PSBmb3JtRGF0YSA/IHJlc29sdmUoanNvbikgOiByZXNvbHZlKGZvcm1EYXRhKSk7XG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbmNvZGVGb3JtRGF0YShyZWZlcmVuY2UpIHtcbiAgICAgIHZhciByZXNvbHZlLFxuICAgICAgICByZWplY3QsXG4gICAgICAgIHRoZW5hYmxlID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlcywgcmVqKSB7XG4gICAgICAgICAgcmVzb2x2ZSA9IHJlcztcbiAgICAgICAgICByZWplY3QgPSByZWo7XG4gICAgICAgIH0pO1xuICAgICAgcHJvY2Vzc1JlcGx5KFxuICAgICAgICByZWZlcmVuY2UsXG4gICAgICAgIFwiXCIsXG4gICAgICAgIHZvaWQgMCxcbiAgICAgICAgZnVuY3Rpb24gKGJvZHkpIHtcbiAgICAgICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGJvZHkpIHtcbiAgICAgICAgICAgIHZhciBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICBkYXRhLmFwcGVuZChcIjBcIiwgYm9keSk7XG4gICAgICAgICAgICBib2R5ID0gZGF0YTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhlbmFibGUuc3RhdHVzID0gXCJmdWxmaWxsZWRcIjtcbiAgICAgICAgICB0aGVuYWJsZS52YWx1ZSA9IGJvZHk7XG4gICAgICAgICAgcmVzb2x2ZShib2R5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICB0aGVuYWJsZS5zdGF0dXMgPSBcInJlamVjdGVkXCI7XG4gICAgICAgICAgdGhlbmFibGUucmVhc29uID0gZTtcbiAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gdGhlbmFibGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlZmF1bHRFbmNvZGVGb3JtQWN0aW9uKGlkZW50aWZpZXJQcmVmaXgpIHtcbiAgICAgIHZhciByZWZlcmVuY2VDbG9zdXJlID0ga25vd25TZXJ2ZXJSZWZlcmVuY2VzLmdldCh0aGlzKTtcbiAgICAgIGlmICghcmVmZXJlbmNlQ2xvc3VyZSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJUcmllZCB0byBlbmNvZGUgYSBTZXJ2ZXIgQWN0aW9uIGZyb20gYSBkaWZmZXJlbnQgaW5zdGFuY2UgdGhhbiB0aGUgZW5jb2RlciBpcyBmcm9tLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICk7XG4gICAgICB2YXIgZGF0YSA9IG51bGw7XG4gICAgICBpZiAobnVsbCAhPT0gcmVmZXJlbmNlQ2xvc3VyZS5ib3VuZCkge1xuICAgICAgICBkYXRhID0gYm91bmRDYWNoZS5nZXQocmVmZXJlbmNlQ2xvc3VyZSk7XG4gICAgICAgIGRhdGEgfHxcbiAgICAgICAgICAoKGRhdGEgPSBlbmNvZGVGb3JtRGF0YSh7XG4gICAgICAgICAgICBpZDogcmVmZXJlbmNlQ2xvc3VyZS5pZCxcbiAgICAgICAgICAgIGJvdW5kOiByZWZlcmVuY2VDbG9zdXJlLmJvdW5kXG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIGJvdW5kQ2FjaGUuc2V0KHJlZmVyZW5jZUNsb3N1cmUsIGRhdGEpKTtcbiAgICAgICAgaWYgKFwicmVqZWN0ZWRcIiA9PT0gZGF0YS5zdGF0dXMpIHRocm93IGRhdGEucmVhc29uO1xuICAgICAgICBpZiAoXCJmdWxmaWxsZWRcIiAhPT0gZGF0YS5zdGF0dXMpIHRocm93IGRhdGE7XG4gICAgICAgIHJlZmVyZW5jZUNsb3N1cmUgPSBkYXRhLnZhbHVlO1xuICAgICAgICB2YXIgcHJlZml4ZWREYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIHJlZmVyZW5jZUNsb3N1cmUuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgICAgICAgIHByZWZpeGVkRGF0YS5hcHBlbmQoXCIkQUNUSU9OX1wiICsgaWRlbnRpZmllclByZWZpeCArIFwiOlwiICsga2V5LCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBkYXRhID0gcHJlZml4ZWREYXRhO1xuICAgICAgICByZWZlcmVuY2VDbG9zdXJlID0gXCIkQUNUSU9OX1JFRl9cIiArIGlkZW50aWZpZXJQcmVmaXg7XG4gICAgICB9IGVsc2UgcmVmZXJlbmNlQ2xvc3VyZSA9IFwiJEFDVElPTl9JRF9cIiArIHJlZmVyZW5jZUNsb3N1cmUuaWQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiByZWZlcmVuY2VDbG9zdXJlLFxuICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICBlbmNUeXBlOiBcIm11bHRpcGFydC9mb3JtLWRhdGFcIixcbiAgICAgICAgZGF0YTogZGF0YVxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTaWduYXR1cmVFcXVhbChyZWZlcmVuY2VJZCwgbnVtYmVyT2ZCb3VuZEFyZ3MpIHtcbiAgICAgIHZhciByZWZlcmVuY2VDbG9zdXJlID0ga25vd25TZXJ2ZXJSZWZlcmVuY2VzLmdldCh0aGlzKTtcbiAgICAgIGlmICghcmVmZXJlbmNlQ2xvc3VyZSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJUcmllZCB0byBlbmNvZGUgYSBTZXJ2ZXIgQWN0aW9uIGZyb20gYSBkaWZmZXJlbnQgaW5zdGFuY2UgdGhhbiB0aGUgZW5jb2RlciBpcyBmcm9tLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICk7XG4gICAgICBpZiAocmVmZXJlbmNlQ2xvc3VyZS5pZCAhPT0gcmVmZXJlbmNlSWQpIHJldHVybiAhMTtcbiAgICAgIHZhciBib3VuZFByb21pc2UgPSByZWZlcmVuY2VDbG9zdXJlLmJvdW5kO1xuICAgICAgaWYgKG51bGwgPT09IGJvdW5kUHJvbWlzZSkgcmV0dXJuIDAgPT09IG51bWJlck9mQm91bmRBcmdzO1xuICAgICAgc3dpdGNoIChib3VuZFByb21pc2Uuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJmdWxmaWxsZWRcIjpcbiAgICAgICAgICByZXR1cm4gYm91bmRQcm9taXNlLnZhbHVlLmxlbmd0aCA9PT0gbnVtYmVyT2ZCb3VuZEFyZ3M7XG4gICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgICAgdGhyb3cgYm91bmRQcm9taXNlO1xuICAgICAgICBjYXNlIFwicmVqZWN0ZWRcIjpcbiAgICAgICAgICB0aHJvdyBib3VuZFByb21pc2UucmVhc29uO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IChcbiAgICAgICAgICAgIChcInN0cmluZ1wiICE9PSB0eXBlb2YgYm91bmRQcm9taXNlLnN0YXR1cyAmJlxuICAgICAgICAgICAgICAoKGJvdW5kUHJvbWlzZS5zdGF0dXMgPSBcInBlbmRpbmdcIiksXG4gICAgICAgICAgICAgIGJvdW5kUHJvbWlzZS50aGVuKFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChib3VuZEFyZ3MpIHtcbiAgICAgICAgICAgICAgICAgIGJvdW5kUHJvbWlzZS5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICAgICAgICAgICAgYm91bmRQcm9taXNlLnZhbHVlID0gYm91bmRBcmdzO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICBib3VuZFByb21pc2Uuc3RhdHVzID0gXCJyZWplY3RlZFwiO1xuICAgICAgICAgICAgICAgICAgYm91bmRQcm9taXNlLnJlYXNvbiA9IGVycm9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBib3VuZFByb21pc2UpXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlRmFrZVNlcnZlckZ1bmN0aW9uKFxuICAgICAgbmFtZSxcbiAgICAgIGZpbGVuYW1lLFxuICAgICAgc291cmNlTWFwLFxuICAgICAgbGluZSxcbiAgICAgIGNvbCxcbiAgICAgIGVudmlyb25tZW50TmFtZSxcbiAgICAgIGlubmVyRnVuY3Rpb25cbiAgICApIHtcbiAgICAgIG5hbWUgfHwgKG5hbWUgPSBcIjxhbm9ueW1vdXM+XCIpO1xuICAgICAgdmFyIGVuY29kZWROYW1lID0gSlNPTi5zdHJpbmdpZnkobmFtZSk7XG4gICAgICAxID49IGxpbmVcbiAgICAgICAgPyAoKGxpbmUgPSBlbmNvZGVkTmFtZS5sZW5ndGggKyA3KSxcbiAgICAgICAgICAoY29sID1cbiAgICAgICAgICAgIFwicz0+KHtcIiArXG4gICAgICAgICAgICBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICBcIiBcIi5yZXBlYXQoY29sIDwgbGluZSA/IDAgOiBjb2wgLSBsaW5lKSArXG4gICAgICAgICAgICBcIjooLi4uYXJncykgPT4gcyguLi5hcmdzKX0pXFxuLyogVGhpcyBtb2R1bGUgaXMgYSBwcm94eSB0byBhIFNlcnZlciBBY3Rpb24uIFR1cm4gb24gU291cmNlIE1hcHMgdG8gc2VlIHRoZSBzZXJ2ZXIgc291cmNlLiAqL1wiKSlcbiAgICAgICAgOiAoY29sID1cbiAgICAgICAgICAgIFwiLyogVGhpcyBtb2R1bGUgaXMgYSBwcm94eSB0byBhIFNlcnZlciBBY3Rpb24uIFR1cm4gb24gU291cmNlIE1hcHMgdG8gc2VlIHRoZSBzZXJ2ZXIgc291cmNlLiAqL1wiICtcbiAgICAgICAgICAgIFwiXFxuXCIucmVwZWF0KGxpbmUgLSAyKSArXG4gICAgICAgICAgICBcInNlcnZlcj0+KHtcIiArXG4gICAgICAgICAgICBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICBcIjpcXG5cIiArXG4gICAgICAgICAgICBcIiBcIi5yZXBlYXQoMSA+IGNvbCA/IDAgOiBjb2wgLSAxKSArXG4gICAgICAgICAgICBcIiguLi5hcmdzKSA9PiBzZXJ2ZXIoLi4uYXJncyl9KVwiKTtcbiAgICAgIGZpbGVuYW1lLnN0YXJ0c1dpdGgoXCIvXCIpICYmIChmaWxlbmFtZSA9IFwiZmlsZTovL1wiICsgZmlsZW5hbWUpO1xuICAgICAgc291cmNlTWFwXG4gICAgICAgID8gKChjb2wgKz1cbiAgICAgICAgICAgIFwiXFxuLy8jIHNvdXJjZVVSTD1yc2M6Ly9SZWFjdC9cIiArXG4gICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoZW52aXJvbm1lbnROYW1lKSArXG4gICAgICAgICAgICBcIi9cIiArXG4gICAgICAgICAgICBlbmNvZGVVUkkoZmlsZW5hbWUpICtcbiAgICAgICAgICAgIFwiP3NcIiArXG4gICAgICAgICAgICBmYWtlU2VydmVyRnVuY3Rpb25JZHgrKyksXG4gICAgICAgICAgKGNvbCArPSBcIlxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVwiICsgc291cmNlTWFwKSlcbiAgICAgICAgOiBmaWxlbmFtZSAmJiAoY29sICs9IFwiXFxuLy8jIHNvdXJjZVVSTD1cIiArIGZpbGVuYW1lKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiAoMCwgZXZhbCkoY29sKShpbm5lckZ1bmN0aW9uKVtuYW1lXTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgcmV0dXJuIGlubmVyRnVuY3Rpb247XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlZ2lzdGVyQm91bmRTZXJ2ZXJSZWZlcmVuY2UoXG4gICAgICByZWZlcmVuY2UsXG4gICAgICBpZCxcbiAgICAgIGJvdW5kLFxuICAgICAgZW5jb2RlRm9ybUFjdGlvblxuICAgICkge1xuICAgICAga25vd25TZXJ2ZXJSZWZlcmVuY2VzLmhhcyhyZWZlcmVuY2UpIHx8XG4gICAgICAgIChrbm93blNlcnZlclJlZmVyZW5jZXMuc2V0KHJlZmVyZW5jZSwge1xuICAgICAgICAgIGlkOiBpZCxcbiAgICAgICAgICBvcmlnaW5hbEJpbmQ6IHJlZmVyZW5jZS5iaW5kLFxuICAgICAgICAgIGJvdW5kOiBib3VuZFxuICAgICAgICB9KSxcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocmVmZXJlbmNlLCB7XG4gICAgICAgICAgJCRGT1JNX0FDVElPTjoge1xuICAgICAgICAgICAgdmFsdWU6XG4gICAgICAgICAgICAgIHZvaWQgMCA9PT0gZW5jb2RlRm9ybUFjdGlvblxuICAgICAgICAgICAgICAgID8gZGVmYXVsdEVuY29kZUZvcm1BY3Rpb25cbiAgICAgICAgICAgICAgICA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlZmVyZW5jZUNsb3N1cmUgPSBrbm93blNlcnZlclJlZmVyZW5jZXMuZ2V0KHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZmVyZW5jZUNsb3N1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlRyaWVkIHRvIGVuY29kZSBhIFNlcnZlciBBY3Rpb24gZnJvbSBhIGRpZmZlcmVudCBpbnN0YW5jZSB0aGFuIHRoZSBlbmNvZGVyIGlzIGZyb20uIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB2YXIgYm91bmRQcm9taXNlID0gcmVmZXJlbmNlQ2xvc3VyZS5ib3VuZDtcbiAgICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gYm91bmRQcm9taXNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgKGJvdW5kUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShbXSkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW5jb2RlRm9ybUFjdGlvbihyZWZlcmVuY2VDbG9zdXJlLmlkLCBib3VuZFByb21pc2UpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgJCRJU19TSUdOQVRVUkVfRVFVQUw6IHsgdmFsdWU6IGlzU2lnbmF0dXJlRXF1YWwgfSxcbiAgICAgICAgICBiaW5kOiB7IHZhbHVlOiBiaW5kIH1cbiAgICAgICAgfSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBiaW5kKCkge1xuICAgICAgdmFyIHJlZmVyZW5jZUNsb3N1cmUgPSBrbm93blNlcnZlclJlZmVyZW5jZXMuZ2V0KHRoaXMpO1xuICAgICAgaWYgKCFyZWZlcmVuY2VDbG9zdXJlKSByZXR1cm4gRnVuY3Rpb25CaW5kLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB2YXIgbmV3Rm4gPSByZWZlcmVuY2VDbG9zdXJlLm9yaWdpbmFsQmluZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgbnVsbCAhPSBhcmd1bWVudHNbMF0gJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnQ2Fubm90IGJpbmQgXCJ0aGlzXCIgb2YgYSBTZXJ2ZXIgQWN0aW9uLiBQYXNzIG51bGwgb3IgdW5kZWZpbmVkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byAuYmluZCgpLidcbiAgICAgICAgKTtcbiAgICAgIHZhciBhcmdzID0gQXJyYXlTbGljZS5jYWxsKGFyZ3VtZW50cywgMSksXG4gICAgICAgIGJvdW5kUHJvbWlzZSA9IG51bGw7XG4gICAgICBib3VuZFByb21pc2UgPVxuICAgICAgICBudWxsICE9PSByZWZlcmVuY2VDbG9zdXJlLmJvdW5kXG4gICAgICAgICAgPyBQcm9taXNlLnJlc29sdmUocmVmZXJlbmNlQ2xvc3VyZS5ib3VuZCkudGhlbihmdW5jdGlvbiAoYm91bmRBcmdzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBib3VuZEFyZ3MuY29uY2F0KGFyZ3MpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICA6IFByb21pc2UucmVzb2x2ZShhcmdzKTtcbiAgICAgIGtub3duU2VydmVyUmVmZXJlbmNlcy5zZXQobmV3Rm4sIHtcbiAgICAgICAgaWQ6IHJlZmVyZW5jZUNsb3N1cmUuaWQsXG4gICAgICAgIG9yaWdpbmFsQmluZDogbmV3Rm4uYmluZCxcbiAgICAgICAgYm91bmQ6IGJvdW5kUHJvbWlzZVxuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhuZXdGbiwge1xuICAgICAgICAkJEZPUk1fQUNUSU9OOiB7IHZhbHVlOiB0aGlzLiQkRk9STV9BQ1RJT04gfSxcbiAgICAgICAgJCRJU19TSUdOQVRVUkVfRVFVQUw6IHsgdmFsdWU6IGlzU2lnbmF0dXJlRXF1YWwgfSxcbiAgICAgICAgYmluZDogeyB2YWx1ZTogYmluZCB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBuZXdGbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlQm91bmRTZXJ2ZXJSZWZlcmVuY2UoXG4gICAgICBtZXRhRGF0YSxcbiAgICAgIGNhbGxTZXJ2ZXIsXG4gICAgICBlbmNvZGVGb3JtQWN0aW9uLFxuICAgICAgZmluZFNvdXJjZU1hcFVSTFxuICAgICkge1xuICAgICAgZnVuY3Rpb24gYWN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgIHJldHVybiBib3VuZFxuICAgICAgICAgID8gXCJmdWxmaWxsZWRcIiA9PT0gYm91bmQuc3RhdHVzXG4gICAgICAgICAgICA/IGNhbGxTZXJ2ZXIoaWQsIGJvdW5kLnZhbHVlLmNvbmNhdChhcmdzKSlcbiAgICAgICAgICAgIDogUHJvbWlzZS5yZXNvbHZlKGJvdW5kKS50aGVuKGZ1bmN0aW9uIChib3VuZEFyZ3MpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbFNlcnZlcihpZCwgYm91bmRBcmdzLmNvbmNhdChhcmdzKSk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBjYWxsU2VydmVyKGlkLCBhcmdzKTtcbiAgICAgIH1cbiAgICAgIHZhciBpZCA9IG1ldGFEYXRhLmlkLFxuICAgICAgICBib3VuZCA9IG1ldGFEYXRhLmJvdW5kLFxuICAgICAgICBsb2NhdGlvbiA9IG1ldGFEYXRhLmxvY2F0aW9uO1xuICAgICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICAgIHZhciBmdW5jdGlvbk5hbWUgPSBtZXRhRGF0YS5uYW1lIHx8IFwiXCIsXG4gICAgICAgICAgZmlsZW5hbWUgPSBsb2NhdGlvblsxXSxcbiAgICAgICAgICBsaW5lID0gbG9jYXRpb25bMl07XG4gICAgICAgIGxvY2F0aW9uID0gbG9jYXRpb25bM107XG4gICAgICAgIG1ldGFEYXRhID0gbWV0YURhdGEuZW52IHx8IFwiU2VydmVyXCI7XG4gICAgICAgIGZpbmRTb3VyY2VNYXBVUkwgPVxuICAgICAgICAgIG51bGwgPT0gZmluZFNvdXJjZU1hcFVSTFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IGZpbmRTb3VyY2VNYXBVUkwoZmlsZW5hbWUsIG1ldGFEYXRhKTtcbiAgICAgICAgYWN0aW9uID0gY3JlYXRlRmFrZVNlcnZlckZ1bmN0aW9uKFxuICAgICAgICAgIGZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICBmaW5kU291cmNlTWFwVVJMLFxuICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgbG9jYXRpb24sXG4gICAgICAgICAgbWV0YURhdGEsXG4gICAgICAgICAgYWN0aW9uXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZWdpc3RlckJvdW5kU2VydmVyUmVmZXJlbmNlKGFjdGlvbiwgaWQsIGJvdW5kLCBlbmNvZGVGb3JtQWN0aW9uKTtcbiAgICAgIHJldHVybiBhY3Rpb247XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBhcnNlU3RhY2tMb2NhdGlvbihlcnJvcikge1xuICAgICAgZXJyb3IgPSBlcnJvci5zdGFjaztcbiAgICAgIGVycm9yLnN0YXJ0c1dpdGgoXCJFcnJvcjogcmVhY3Qtc3RhY2stdG9wLWZyYW1lXFxuXCIpICYmXG4gICAgICAgIChlcnJvciA9IGVycm9yLnNsaWNlKDI5KSk7XG4gICAgICB2YXIgZW5kT2ZGaXJzdCA9IGVycm9yLmluZGV4T2YoXCJcXG5cIik7XG4gICAgICBpZiAoLTEgIT09IGVuZE9mRmlyc3QpIHtcbiAgICAgICAgdmFyIGVuZE9mU2Vjb25kID0gZXJyb3IuaW5kZXhPZihcIlxcblwiLCBlbmRPZkZpcnN0ICsgMSk7XG4gICAgICAgIGVuZE9mRmlyc3QgPVxuICAgICAgICAgIC0xID09PSBlbmRPZlNlY29uZFxuICAgICAgICAgICAgPyBlcnJvci5zbGljZShlbmRPZkZpcnN0ICsgMSlcbiAgICAgICAgICAgIDogZXJyb3Iuc2xpY2UoZW5kT2ZGaXJzdCArIDEsIGVuZE9mU2Vjb25kKTtcbiAgICAgIH0gZWxzZSBlbmRPZkZpcnN0ID0gZXJyb3I7XG4gICAgICBlcnJvciA9IHY4RnJhbWVSZWdFeHAuZXhlYyhlbmRPZkZpcnN0KTtcbiAgICAgIGlmIChcbiAgICAgICAgIWVycm9yICYmXG4gICAgICAgICgoZXJyb3IgPSBqc2NTcGlkZXJNb25rZXlGcmFtZVJlZ0V4cC5leGVjKGVuZE9mRmlyc3QpKSwgIWVycm9yKVxuICAgICAgKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIGVuZE9mRmlyc3QgPSBlcnJvclsxXSB8fCBcIlwiO1xuICAgICAgXCI8YW5vbnltb3VzPlwiID09PSBlbmRPZkZpcnN0ICYmIChlbmRPZkZpcnN0ID0gXCJcIik7XG4gICAgICBlbmRPZlNlY29uZCA9IGVycm9yWzJdIHx8IGVycm9yWzVdIHx8IFwiXCI7XG4gICAgICBcIjxhbm9ueW1vdXM+XCIgPT09IGVuZE9mU2Vjb25kICYmIChlbmRPZlNlY29uZCA9IFwiXCIpO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgZW5kT2ZGaXJzdCxcbiAgICAgICAgZW5kT2ZTZWNvbmQsXG4gICAgICAgICsoZXJyb3JbM10gfHwgZXJyb3JbNl0pLFxuICAgICAgICArKGVycm9yWzRdIHx8IGVycm9yWzddKVxuICAgICAgXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlU2VydmVyUmVmZXJlbmNlJDEoXG4gICAgICBpZCxcbiAgICAgIGNhbGxTZXJ2ZXIsXG4gICAgICBlbmNvZGVGb3JtQWN0aW9uLFxuICAgICAgZmluZFNvdXJjZU1hcFVSTCxcbiAgICAgIGZ1bmN0aW9uTmFtZVxuICAgICkge1xuICAgICAgZnVuY3Rpb24gYWN0aW9uKCkge1xuICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7XG4gICAgICAgIHJldHVybiBjYWxsU2VydmVyKGlkLCBhcmdzKTtcbiAgICAgIH1cbiAgICAgIHZhciBsb2NhdGlvbiA9IHBhcnNlU3RhY2tMb2NhdGlvbihFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKSk7XG4gICAgICBpZiAobnVsbCAhPT0gbG9jYXRpb24pIHtcbiAgICAgICAgdmFyIGZpbGVuYW1lID0gbG9jYXRpb25bMV0sXG4gICAgICAgICAgbGluZSA9IGxvY2F0aW9uWzJdO1xuICAgICAgICBsb2NhdGlvbiA9IGxvY2F0aW9uWzNdO1xuICAgICAgICBmaW5kU291cmNlTWFwVVJMID1cbiAgICAgICAgICBudWxsID09IGZpbmRTb3VyY2VNYXBVUkxcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiBmaW5kU291cmNlTWFwVVJMKGZpbGVuYW1lLCBcIkNsaWVudFwiKTtcbiAgICAgICAgYWN0aW9uID0gY3JlYXRlRmFrZVNlcnZlckZ1bmN0aW9uKFxuICAgICAgICAgIGZ1bmN0aW9uTmFtZSB8fCBcIlwiLFxuICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgIGZpbmRTb3VyY2VNYXBVUkwsXG4gICAgICAgICAgbGluZSxcbiAgICAgICAgICBsb2NhdGlvbixcbiAgICAgICAgICBcIkNsaWVudFwiLFxuICAgICAgICAgIGFjdGlvblxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmVnaXN0ZXJCb3VuZFNlcnZlclJlZmVyZW5jZShhY3Rpb24sIGlkLCBudWxsLCBlbmNvZGVGb3JtQWN0aW9uKTtcbiAgICAgIHJldHVybiBhY3Rpb247XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gICAgICBpZiAobnVsbCA9PSB0eXBlKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICByZXR1cm4gdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRVxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSkgcmV0dXJuIHR5cGU7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIkZyYWdtZW50XCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJQcm9maWxlclwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3RyaWN0TW9kZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VMaXN0XCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfQUNUSVZJVFlfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJBY3Rpdml0eVwiO1xuICAgICAgfVxuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICBzd2l0Y2ggKFxuICAgICAgICAgIChcIm51bWJlclwiID09PSB0eXBlb2YgdHlwZS50YWcgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKCkuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB0eXBlLiQkdHlwZW9mKVxuICAgICAgICApIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIFwiUG9ydGFsXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCBcIkNvbnRleHRcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0NPTlNVTUVSX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUuX2NvbnRleHQuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuQ29uc3VtZXJcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICB2YXIgaW5uZXJUeXBlID0gdHlwZS5yZW5kZXI7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5kaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIHR5cGUgfHxcbiAgICAgICAgICAgICAgKCh0eXBlID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8IFwiXCIpLFxuICAgICAgICAgICAgICAodHlwZSA9IFwiXCIgIT09IHR5cGUgPyBcIkZvcndhcmRSZWYoXCIgKyB0eXBlICsgXCIpXCIgOiBcIkZvcndhcmRSZWZcIikpO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoaW5uZXJUeXBlID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgPyBpbm5lclR5cGVcbiAgICAgICAgICAgICAgICA6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8IFwiTWVtb1wiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgaW5uZXJUeXBlID0gdHlwZS5fcGF5bG9hZDtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLl9pbml0O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKGlubmVyVHlwZSkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByZXBhcmVTdGFja1RyYWNlKGVycm9yLCBzdHJ1Y3R1cmVkU3RhY2tUcmFjZSkge1xuICAgICAgZXJyb3IgPSAoZXJyb3IubmFtZSB8fCBcIkVycm9yXCIpICsgXCI6IFwiICsgKGVycm9yLm1lc3NhZ2UgfHwgXCJcIik7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0cnVjdHVyZWRTdGFja1RyYWNlLmxlbmd0aDsgaSsrKVxuICAgICAgICBlcnJvciArPSBcIlxcbiAgICBhdCBcIiArIHN0cnVjdHVyZWRTdGFja1RyYWNlW2ldLnRvU3RyaW5nKCk7XG4gICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFJlYWN0UHJvbWlzZShzdGF0dXMsIHZhbHVlLCByZWFzb24pIHtcbiAgICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5yZWFzb24gPSByZWFzb247XG4gICAgICB0aGlzLl9kZWJ1Z0luZm8gPSBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1bndyYXBXZWFrUmVzcG9uc2Uod2Vha1Jlc3BvbnNlKSB7XG4gICAgICB3ZWFrUmVzcG9uc2UgPSB3ZWFrUmVzcG9uc2Uud2Vhay5kZXJlZigpO1xuICAgICAgaWYgKHZvaWQgMCA9PT0gd2Vha1Jlc3BvbnNlKVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIldlIGRpZCBub3QgZXhwZWN0IHRvIHJlY2VpdmUgbmV3IGRhdGEgYWZ0ZXIgR0M6aW5nIHRoZSByZXNwb25zZS5cIlxuICAgICAgICApO1xuICAgICAgcmV0dXJuIHdlYWtSZXNwb25zZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2xlYW51cERlYnVnQ2hhbm5lbChkZWJ1Z0NoYW5uZWwpIHtcbiAgICAgIGRlYnVnQ2hhbm5lbChcIlwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhZENodW5rKGNodW5rKSB7XG4gICAgICBzd2l0Y2ggKGNodW5rLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kZWxcIjpcbiAgICAgICAgICBpbml0aWFsaXplTW9kZWxDaHVuayhjaHVuayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2R1bGVcIjpcbiAgICAgICAgICBpbml0aWFsaXplTW9kdWxlQ2h1bmsoY2h1bmspO1xuICAgICAgfVxuICAgICAgc3dpdGNoIChjaHVuay5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgIHJldHVybiBjaHVuay52YWx1ZTtcbiAgICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgY2FzZSBcImJsb2NrZWRcIjpcbiAgICAgICAgY2FzZSBcImhhbHRlZFwiOlxuICAgICAgICAgIHRocm93IGNodW5rO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IGNodW5rLnJlYXNvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Um9vdCh3ZWFrUmVzcG9uc2UpIHtcbiAgICAgIHdlYWtSZXNwb25zZSA9IHVud3JhcFdlYWtSZXNwb25zZSh3ZWFrUmVzcG9uc2UpO1xuICAgICAgcmV0dXJuIGdldENodW5rKHdlYWtSZXNwb25zZSwgMCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVBlbmRpbmdDaHVuayhyZXNwb25zZSkge1xuICAgICAgMCA9PT0gcmVzcG9uc2UuX3BlbmRpbmdDaHVua3MrKyAmJlxuICAgICAgICAoKHJlc3BvbnNlLl93ZWFrUmVzcG9uc2UucmVzcG9uc2UgPSByZXNwb25zZSksXG4gICAgICAgIG51bGwgIT09IHJlc3BvbnNlLl9wZW5kaW5nSW5pdGlhbFJlbmRlciAmJlxuICAgICAgICAgIChjbGVhclRpbWVvdXQocmVzcG9uc2UuX3BlbmRpbmdJbml0aWFsUmVuZGVyKSxcbiAgICAgICAgICAocmVzcG9uc2UuX3BlbmRpbmdJbml0aWFsUmVuZGVyID0gbnVsbCkpKTtcbiAgICAgIHJldHVybiBuZXcgUmVhY3RQcm9taXNlKFwicGVuZGluZ1wiLCBudWxsLCBudWxsKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsZWFzZVBlbmRpbmdDaHVuayhyZXNwb25zZSwgY2h1bmspIHtcbiAgICAgIFwicGVuZGluZ1wiID09PSBjaHVuay5zdGF0dXMgJiZcbiAgICAgICAgMCA9PT0gLS1yZXNwb25zZS5fcGVuZGluZ0NodW5rcyAmJlxuICAgICAgICAoKHJlc3BvbnNlLl93ZWFrUmVzcG9uc2UucmVzcG9uc2UgPSBudWxsKSxcbiAgICAgICAgKHJlc3BvbnNlLl9wZW5kaW5nSW5pdGlhbFJlbmRlciA9IHNldFRpbWVvdXQoXG4gICAgICAgICAgZmx1c2hJbml0aWFsUmVuZGVyUGVyZm9ybWFuY2UuYmluZChudWxsLCByZXNwb25zZSksXG4gICAgICAgICAgMTAwXG4gICAgICAgICkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2FrZUNodW5rKGxpc3RlbmVycywgdmFsdWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBsaXN0ZW5lciA9IGxpc3RlbmVyc1tpXTtcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbGlzdGVuZXJcbiAgICAgICAgICA/IGxpc3RlbmVyKHZhbHVlKVxuICAgICAgICAgIDogZnVsZmlsbFJlZmVyZW5jZShsaXN0ZW5lciwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWplY3RDaHVuayhsaXN0ZW5lcnMsIGVycm9yKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgbGlzdGVuZXIgPSBsaXN0ZW5lcnNbaV07XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGxpc3RlbmVyXG4gICAgICAgICAgPyBsaXN0ZW5lcihlcnJvcilcbiAgICAgICAgICA6IHJlamVjdFJlZmVyZW5jZShsaXN0ZW5lciwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlQmxvY2tlZEN5Y2xlKHJlc29sdmVkQ2h1bmssIHJlZmVyZW5jZSkge1xuICAgICAgdmFyIHJlZmVyZW5jZWRDaHVuayA9IHJlZmVyZW5jZS5oYW5kbGVyLmNodW5rO1xuICAgICAgaWYgKG51bGwgPT09IHJlZmVyZW5jZWRDaHVuaykgcmV0dXJuIG51bGw7XG4gICAgICBpZiAocmVmZXJlbmNlZENodW5rID09PSByZXNvbHZlZENodW5rKSByZXR1cm4gcmVmZXJlbmNlLmhhbmRsZXI7XG4gICAgICByZWZlcmVuY2UgPSByZWZlcmVuY2VkQ2h1bmsudmFsdWU7XG4gICAgICBpZiAobnVsbCAhPT0gcmVmZXJlbmNlKVxuICAgICAgICBmb3IgKFxuICAgICAgICAgIHJlZmVyZW5jZWRDaHVuayA9IDA7XG4gICAgICAgICAgcmVmZXJlbmNlZENodW5rIDwgcmVmZXJlbmNlLmxlbmd0aDtcbiAgICAgICAgICByZWZlcmVuY2VkQ2h1bmsrK1xuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgbGlzdGVuZXIgPSByZWZlcmVuY2VbcmVmZXJlbmNlZENodW5rXTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBsaXN0ZW5lciAmJlxuICAgICAgICAgICAgKChsaXN0ZW5lciA9IHJlc29sdmVCbG9ja2VkQ3ljbGUocmVzb2x2ZWRDaHVuaywgbGlzdGVuZXIpKSxcbiAgICAgICAgICAgIG51bGwgIT09IGxpc3RlbmVyKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiBsaXN0ZW5lcjtcbiAgICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdha2VDaHVua0lmSW5pdGlhbGl6ZWQoY2h1bmssIHJlc29sdmVMaXN0ZW5lcnMsIHJlamVjdExpc3RlbmVycykge1xuICAgICAgc3dpdGNoIChjaHVuay5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgIHdha2VDaHVuayhyZXNvbHZlTGlzdGVuZXJzLCBjaHVuay52YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJibG9ja2VkXCI6XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNvbHZlTGlzdGVuZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgbGlzdGVuZXIgPSByZXNvbHZlTGlzdGVuZXJzW2ldO1xuICAgICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIGxpc3RlbmVyKSB7XG4gICAgICAgICAgICAgIHZhciBjeWNsaWNIYW5kbGVyID0gcmVzb2x2ZUJsb2NrZWRDeWNsZShjaHVuaywgbGlzdGVuZXIpO1xuICAgICAgICAgICAgICBudWxsICE9PSBjeWNsaWNIYW5kbGVyICYmXG4gICAgICAgICAgICAgICAgKGZ1bGZpbGxSZWZlcmVuY2UobGlzdGVuZXIsIGN5Y2xpY0hhbmRsZXIudmFsdWUpLFxuICAgICAgICAgICAgICAgIHJlc29sdmVMaXN0ZW5lcnMuc3BsaWNlKGksIDEpLFxuICAgICAgICAgICAgICAgIGktLSxcbiAgICAgICAgICAgICAgICBudWxsICE9PSByZWplY3RMaXN0ZW5lcnMgJiZcbiAgICAgICAgICAgICAgICAgICgobGlzdGVuZXIgPSByZWplY3RMaXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcikpLFxuICAgICAgICAgICAgICAgICAgLTEgIT09IGxpc3RlbmVyICYmIHJlamVjdExpc3RlbmVycy5zcGxpY2UobGlzdGVuZXIsIDEpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlIFwicGVuZGluZ1wiOlxuICAgICAgICAgIGlmIChjaHVuay52YWx1ZSlcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCByZXNvbHZlTGlzdGVuZXJzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgICBjaHVuay52YWx1ZS5wdXNoKHJlc29sdmVMaXN0ZW5lcnNbaV0pO1xuICAgICAgICAgIGVsc2UgY2h1bmsudmFsdWUgPSByZXNvbHZlTGlzdGVuZXJzO1xuICAgICAgICAgIGlmIChjaHVuay5yZWFzb24pIHtcbiAgICAgICAgICAgIGlmIChyZWplY3RMaXN0ZW5lcnMpXG4gICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAgcmVzb2x2ZUxpc3RlbmVycyA9IDA7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZUxpc3RlbmVycyA8IHJlamVjdExpc3RlbmVycy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZUxpc3RlbmVycysrXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjaHVuay5yZWFzb24ucHVzaChyZWplY3RMaXN0ZW5lcnNbcmVzb2x2ZUxpc3RlbmVyc10pO1xuICAgICAgICAgIH0gZWxzZSBjaHVuay5yZWFzb24gPSByZWplY3RMaXN0ZW5lcnM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyZWplY3RlZFwiOlxuICAgICAgICAgIHJlamVjdExpc3RlbmVycyAmJiByZWplY3RDaHVuayhyZWplY3RMaXN0ZW5lcnMsIGNodW5rLnJlYXNvbik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyaWdnZXJFcnJvck9uQ2h1bmsocmVzcG9uc2UsIGNodW5rLCBlcnJvcikge1xuICAgICAgXCJwZW5kaW5nXCIgIT09IGNodW5rLnN0YXR1cyAmJiBcImJsb2NrZWRcIiAhPT0gY2h1bmsuc3RhdHVzXG4gICAgICAgID8gY2h1bmsucmVhc29uLmVycm9yKGVycm9yKVxuICAgICAgICA6IChyZWxlYXNlUGVuZGluZ0NodW5rKHJlc3BvbnNlLCBjaHVuayksXG4gICAgICAgICAgKHJlc3BvbnNlID0gY2h1bmsucmVhc29uKSxcbiAgICAgICAgICAoY2h1bmsuc3RhdHVzID0gXCJyZWplY3RlZFwiKSxcbiAgICAgICAgICAoY2h1bmsucmVhc29uID0gZXJyb3IpLFxuICAgICAgICAgIG51bGwgIT09IHJlc3BvbnNlICYmIHJlamVjdENodW5rKHJlc3BvbnNlLCBlcnJvcikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVSZXNvbHZlZEl0ZXJhdG9yUmVzdWx0Q2h1bmsocmVzcG9uc2UsIHZhbHVlLCBkb25lKSB7XG4gICAgICByZXR1cm4gbmV3IFJlYWN0UHJvbWlzZShcbiAgICAgICAgXCJyZXNvbHZlZF9tb2RlbFwiLFxuICAgICAgICAoZG9uZSA/ICd7XCJkb25lXCI6dHJ1ZSxcInZhbHVlXCI6JyA6ICd7XCJkb25lXCI6ZmFsc2UsXCJ2YWx1ZVwiOicpICtcbiAgICAgICAgICB2YWx1ZSArXG4gICAgICAgICAgXCJ9XCIsXG4gICAgICAgIHJlc3BvbnNlXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlSXRlcmF0b3JSZXN1bHRDaHVuayhyZXNwb25zZSwgY2h1bmssIHZhbHVlLCBkb25lKSB7XG4gICAgICByZXNvbHZlTW9kZWxDaHVuayhcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgIGNodW5rLFxuICAgICAgICAoZG9uZSA/ICd7XCJkb25lXCI6dHJ1ZSxcInZhbHVlXCI6JyA6ICd7XCJkb25lXCI6ZmFsc2UsXCJ2YWx1ZVwiOicpICtcbiAgICAgICAgICB2YWx1ZSArXG4gICAgICAgICAgXCJ9XCJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVNb2RlbENodW5rKHJlc3BvbnNlLCBjaHVuaywgdmFsdWUpIHtcbiAgICAgIGlmIChcInBlbmRpbmdcIiAhPT0gY2h1bmsuc3RhdHVzKSBjaHVuay5yZWFzb24uZW5xdWV1ZU1vZGVsKHZhbHVlKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICByZWxlYXNlUGVuZGluZ0NodW5rKHJlc3BvbnNlLCBjaHVuayk7XG4gICAgICAgIHZhciByZXNvbHZlTGlzdGVuZXJzID0gY2h1bmsudmFsdWUsXG4gICAgICAgICAgcmVqZWN0TGlzdGVuZXJzID0gY2h1bmsucmVhc29uO1xuICAgICAgICBjaHVuay5zdGF0dXMgPSBcInJlc29sdmVkX21vZGVsXCI7XG4gICAgICAgIGNodW5rLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIGNodW5rLnJlYXNvbiA9IHJlc3BvbnNlO1xuICAgICAgICBudWxsICE9PSByZXNvbHZlTGlzdGVuZXJzICYmXG4gICAgICAgICAgKGluaXRpYWxpemVNb2RlbENodW5rKGNodW5rKSxcbiAgICAgICAgICB3YWtlQ2h1bmtJZkluaXRpYWxpemVkKGNodW5rLCByZXNvbHZlTGlzdGVuZXJzLCByZWplY3RMaXN0ZW5lcnMpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU1vZHVsZUNodW5rKHJlc3BvbnNlLCBjaHVuaywgdmFsdWUpIHtcbiAgICAgIGlmIChcInBlbmRpbmdcIiA9PT0gY2h1bmsuc3RhdHVzIHx8IFwiYmxvY2tlZFwiID09PSBjaHVuay5zdGF0dXMpIHtcbiAgICAgICAgcmVsZWFzZVBlbmRpbmdDaHVuayhyZXNwb25zZSwgY2h1bmspO1xuICAgICAgICByZXNwb25zZSA9IGNodW5rLnZhbHVlO1xuICAgICAgICB2YXIgcmVqZWN0TGlzdGVuZXJzID0gY2h1bmsucmVhc29uO1xuICAgICAgICBjaHVuay5zdGF0dXMgPSBcInJlc29sdmVkX21vZHVsZVwiO1xuICAgICAgICBjaHVuay52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBudWxsICE9PSByZXNwb25zZSAmJlxuICAgICAgICAgIChpbml0aWFsaXplTW9kdWxlQ2h1bmsoY2h1bmspLFxuICAgICAgICAgIHdha2VDaHVua0lmSW5pdGlhbGl6ZWQoY2h1bmssIHJlc3BvbnNlLCByZWplY3RMaXN0ZW5lcnMpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoY2h1bmspIHtcbiAgICAgIHZhciBwcmV2SGFuZGxlciA9IGluaXRpYWxpemluZ0hhbmRsZXI7XG4gICAgICBpbml0aWFsaXppbmdIYW5kbGVyID0gbnVsbDtcbiAgICAgIHZhciByZXNvbHZlZE1vZGVsID0gY2h1bmsudmFsdWUsXG4gICAgICAgIHJlc3BvbnNlID0gY2h1bmsucmVhc29uO1xuICAgICAgY2h1bmsuc3RhdHVzID0gXCJibG9ja2VkXCI7XG4gICAgICBjaHVuay52YWx1ZSA9IG51bGw7XG4gICAgICBjaHVuay5yZWFzb24gPSBudWxsO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHZhbHVlID0gSlNPTi5wYXJzZShyZXNvbHZlZE1vZGVsLCByZXNwb25zZS5fZnJvbUpTT04pLFxuICAgICAgICAgIHJlc29sdmVMaXN0ZW5lcnMgPSBjaHVuay52YWx1ZTtcbiAgICAgICAgbnVsbCAhPT0gcmVzb2x2ZUxpc3RlbmVycyAmJlxuICAgICAgICAgICgoY2h1bmsudmFsdWUgPSBudWxsKSxcbiAgICAgICAgICAoY2h1bmsucmVhc29uID0gbnVsbCksXG4gICAgICAgICAgd2FrZUNodW5rKHJlc29sdmVMaXN0ZW5lcnMsIHZhbHVlKSk7XG4gICAgICAgIGlmIChudWxsICE9PSBpbml0aWFsaXppbmdIYW5kbGVyKSB7XG4gICAgICAgICAgaWYgKGluaXRpYWxpemluZ0hhbmRsZXIuZXJyb3JlZCkgdGhyb3cgaW5pdGlhbGl6aW5nSGFuZGxlci52YWx1ZTtcbiAgICAgICAgICBpZiAoMCA8IGluaXRpYWxpemluZ0hhbmRsZXIuZGVwcykge1xuICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlci52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlci5jaHVuayA9IGNodW5rO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjaHVuay5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICBjaHVuay52YWx1ZSA9IHZhbHVlO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgKGNodW5rLnN0YXR1cyA9IFwicmVqZWN0ZWRcIiksIChjaHVuay5yZWFzb24gPSBlcnJvcik7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyID0gcHJldkhhbmRsZXI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRpYWxpemVNb2R1bGVDaHVuayhjaHVuaykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHZhbHVlID0gcmVxdWlyZU1vZHVsZShjaHVuay52YWx1ZSk7XG4gICAgICAgIGNodW5rLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCI7XG4gICAgICAgIGNodW5rLnZhbHVlID0gdmFsdWU7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAoY2h1bmsuc3RhdHVzID0gXCJyZWplY3RlZFwiKSwgKGNodW5rLnJlYXNvbiA9IGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVwb3J0R2xvYmFsRXJyb3Iod2Vha1Jlc3BvbnNlLCBlcnJvcikge1xuICAgICAgaWYgKHZvaWQgMCAhPT0gd2Vha1Jlc3BvbnNlLndlYWsuZGVyZWYoKSkge1xuICAgICAgICB2YXIgcmVzcG9uc2UgPSB1bndyYXBXZWFrUmVzcG9uc2Uod2Vha1Jlc3BvbnNlKTtcbiAgICAgICAgcmVzcG9uc2UuX2Nsb3NlZCA9ICEwO1xuICAgICAgICByZXNwb25zZS5fY2xvc2VkUmVhc29uID0gZXJyb3I7XG4gICAgICAgIHJlc3BvbnNlLl9jaHVua3MuZm9yRWFjaChmdW5jdGlvbiAoY2h1bmspIHtcbiAgICAgICAgICBcInBlbmRpbmdcIiA9PT0gY2h1bmsuc3RhdHVzICYmXG4gICAgICAgICAgICB0cmlnZ2VyRXJyb3JPbkNodW5rKHJlc3BvbnNlLCBjaHVuaywgZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgd2Vha1Jlc3BvbnNlID0gcmVzcG9uc2UuX2RlYnVnQ2hhbm5lbDtcbiAgICAgICAgdm9pZCAwICE9PSB3ZWFrUmVzcG9uc2UgJiZcbiAgICAgICAgICAod2Vha1Jlc3BvbnNlKFwiXCIpLCAocmVzcG9uc2UuX2RlYnVnQ2hhbm5lbCA9IHZvaWQgMCkpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBudWxsUmVmR2V0dGVyKCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFRhc2tOYW1lKHR5cGUpIHtcbiAgICAgIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSByZXR1cm4gXCI8PlwiO1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGUpIHJldHVybiAnXCJ1c2UgY2xpZW50XCInO1xuICAgICAgaWYgKFxuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSAmJlxuICAgICAgICBudWxsICE9PSB0eXBlICYmXG4gICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRVxuICAgICAgKVxuICAgICAgICByZXR1cm4gdHlwZS5faW5pdCA9PT0gcmVhZENodW5rID8gJ1widXNlIGNsaWVudFwiJyA6IFwiPC4uLj5cIjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgICByZXR1cm4gbmFtZSA/IFwiPFwiICsgbmFtZSArIFwiPlwiIDogXCI8Li4uPlwiO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICByZXR1cm4gXCI8Li4uPlwiO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBpbml0aWFsaXplRWxlbWVudChyZXNwb25zZSwgZWxlbWVudCkge1xuICAgICAgdmFyIHN0YWNrID0gZWxlbWVudC5fZGVidWdTdGFjayxcbiAgICAgICAgb3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgICAgIG51bGwgPT09IG93bmVyICYmIChlbGVtZW50Ll9vd25lciA9IHJlc3BvbnNlLl9kZWJ1Z1Jvb3RPd25lcik7XG4gICAgICB2YXIgZW52ID0gcmVzcG9uc2UuX3Jvb3RFbnZpcm9ubWVudE5hbWU7XG4gICAgICBudWxsICE9PSBvd25lciAmJiBudWxsICE9IG93bmVyLmVudiAmJiAoZW52ID0gb3duZXIuZW52KTtcbiAgICAgIHZhciBub3JtYWxpemVkU3RhY2tUcmFjZSA9IG51bGw7XG4gICAgICBudWxsID09PSBvd25lciAmJiBudWxsICE9IHJlc3BvbnNlLl9kZWJ1Z1Jvb3RTdGFja1xuICAgICAgICA/IChub3JtYWxpemVkU3RhY2tUcmFjZSA9IHJlc3BvbnNlLl9kZWJ1Z1Jvb3RTdGFjaylcbiAgICAgICAgOiBudWxsICE9PSBzdGFjayAmJlxuICAgICAgICAgIChub3JtYWxpemVkU3RhY2tUcmFjZSA9IGNyZWF0ZUZha2VKU1hDYWxsU3RhY2tJbkRFVihcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgICBlbnZcbiAgICAgICAgICApKTtcbiAgICAgIGVsZW1lbnQuX2RlYnVnU3RhY2sgPSBub3JtYWxpemVkU3RhY2tUcmFjZTtcbiAgICAgIG5vcm1hbGl6ZWRTdGFja1RyYWNlID0gbnVsbDtcbiAgICAgIHN1cHBvcnRzQ3JlYXRlVGFzayAmJlxuICAgICAgICBudWxsICE9PSBzdGFjayAmJlxuICAgICAgICAoKG5vcm1hbGl6ZWRTdGFja1RyYWNlID0gY29uc29sZS5jcmVhdGVUYXNrLmJpbmQoXG4gICAgICAgICAgY29uc29sZSxcbiAgICAgICAgICBnZXRUYXNrTmFtZShlbGVtZW50LnR5cGUpXG4gICAgICAgICkpLFxuICAgICAgICAoc3RhY2sgPSBidWlsZEZha2VDYWxsU3RhY2soXG4gICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgZW52LFxuICAgICAgICAgICExLFxuICAgICAgICAgIG5vcm1hbGl6ZWRTdGFja1RyYWNlXG4gICAgICAgICkpLFxuICAgICAgICAoZW52ID0gbnVsbCA9PT0gb3duZXIgPyBudWxsIDogaW5pdGlhbGl6ZUZha2VUYXNrKHJlc3BvbnNlLCBvd25lcikpLFxuICAgICAgICBudWxsID09PSBlbnZcbiAgICAgICAgICA/ICgoZW52ID0gcmVzcG9uc2UuX2RlYnVnUm9vdFRhc2spLFxuICAgICAgICAgICAgKG5vcm1hbGl6ZWRTdGFja1RyYWNlID0gbnVsbCAhPSBlbnYgPyBlbnYucnVuKHN0YWNrKSA6IHN0YWNrKCkpKVxuICAgICAgICAgIDogKG5vcm1hbGl6ZWRTdGFja1RyYWNlID0gZW52LnJ1bihzdGFjaykpKTtcbiAgICAgIGVsZW1lbnQuX2RlYnVnVGFzayA9IG5vcm1hbGl6ZWRTdGFja1RyYWNlO1xuICAgICAgbnVsbCAhPT0gb3duZXIgJiYgaW5pdGlhbGl6ZUZha2VTdGFjayhyZXNwb25zZSwgb3duZXIpO1xuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50LnByb3BzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlTGF6eUNodW5rV3JhcHBlcihjaHVuaykge1xuICAgICAgdmFyIGxhenlUeXBlID0ge1xuICAgICAgICAkJHR5cGVvZjogUkVBQ1RfTEFaWV9UWVBFLFxuICAgICAgICBfcGF5bG9hZDogY2h1bmssXG4gICAgICAgIF9pbml0OiByZWFkQ2h1bmtcbiAgICAgIH07XG4gICAgICBjaHVuayA9IGNodW5rLl9kZWJ1Z0luZm8gfHwgKGNodW5rLl9kZWJ1Z0luZm8gPSBbXSk7XG4gICAgICBsYXp5VHlwZS5fZGVidWdJbmZvID0gY2h1bms7XG4gICAgICByZXR1cm4gbGF6eVR5cGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENodW5rKHJlc3BvbnNlLCBpZCkge1xuICAgICAgdmFyIGNodW5rcyA9IHJlc3BvbnNlLl9jaHVua3MsXG4gICAgICAgIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG4gICAgICBjaHVuayB8fFxuICAgICAgICAoKGNodW5rID0gcmVzcG9uc2UuX2Nsb3NlZFxuICAgICAgICAgID8gbmV3IFJlYWN0UHJvbWlzZShcInJlamVjdGVkXCIsIG51bGwsIHJlc3BvbnNlLl9jbG9zZWRSZWFzb24pXG4gICAgICAgICAgOiBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpKSxcbiAgICAgICAgY2h1bmtzLnNldChpZCwgY2h1bmspKTtcbiAgICAgIHJldHVybiBjaHVuaztcbiAgICB9XG4gICAgZnVuY3Rpb24gZnVsZmlsbFJlZmVyZW5jZShyZWZlcmVuY2UsIHZhbHVlKSB7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgcmVzcG9uc2UgPSByZWZlcmVuY2UucmVzcG9uc2UsXG4gICAgICAgICAgaGFuZGxlciA9IHJlZmVyZW5jZS5oYW5kbGVyLFxuICAgICAgICAgIHBhcmVudE9iamVjdCA9IHJlZmVyZW5jZS5wYXJlbnRPYmplY3QsXG4gICAgICAgICAga2V5ID0gcmVmZXJlbmNlLmtleSxcbiAgICAgICAgICBtYXAgPSByZWZlcmVuY2UubWFwLFxuICAgICAgICAgIHBhdGggPSByZWZlcmVuY2UucGF0aCxcbiAgICAgICAgICBpID0gMTtcbiAgICAgICAgaSA8IHBhdGgubGVuZ3RoO1xuICAgICAgICBpKytcbiAgICAgICkge1xuICAgICAgICBmb3IgKDsgdmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRTsgKVxuICAgICAgICAgIGlmICgoKHZhbHVlID0gdmFsdWUuX3BheWxvYWQpLCB2YWx1ZSA9PT0gaGFuZGxlci5jaHVuaykpXG4gICAgICAgICAgICB2YWx1ZSA9IGhhbmRsZXIudmFsdWU7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnN0YXR1cykge1xuICAgICAgICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kZWxcIjpcbiAgICAgICAgICAgICAgICBpbml0aWFsaXplTW9kZWxDaHVuayh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2R1bGVcIjpcbiAgICAgICAgICAgICAgICBpbml0aWFsaXplTW9kdWxlQ2h1bmsodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudmFsdWU7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgIGNhc2UgXCJibG9ja2VkXCI6XG4gICAgICAgICAgICAgICAgdmFyIGN5Y2xpY0hhbmRsZXIgPSByZXNvbHZlQmxvY2tlZEN5Y2xlKHZhbHVlLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSBjeWNsaWNIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgICB2YWx1ZSA9IGN5Y2xpY0hhbmRsZXIudmFsdWU7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgICAgICAgICAgcGF0aC5zcGxpY2UoMCwgaSAtIDEpO1xuICAgICAgICAgICAgICAgIG51bGwgPT09IHZhbHVlLnZhbHVlXG4gICAgICAgICAgICAgICAgICA/ICh2YWx1ZS52YWx1ZSA9IFtyZWZlcmVuY2VdKVxuICAgICAgICAgICAgICAgICAgOiB2YWx1ZS52YWx1ZS5wdXNoKHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgbnVsbCA9PT0gdmFsdWUucmVhc29uXG4gICAgICAgICAgICAgICAgICA/ICh2YWx1ZS5yZWFzb24gPSBbcmVmZXJlbmNlXSlcbiAgICAgICAgICAgICAgICAgIDogdmFsdWUucmVhc29uLnB1c2gocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIGNhc2UgXCJoYWx0ZWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmVqZWN0UmVmZXJlbmNlKHJlZmVyZW5jZSwgdmFsdWUucmVhc29uKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IHZhbHVlW3BhdGhbaV1dO1xuICAgICAgfVxuICAgICAgcmVmZXJlbmNlID0gbWFwKHJlc3BvbnNlLCB2YWx1ZSwgcGFyZW50T2JqZWN0LCBrZXkpO1xuICAgICAgcGFyZW50T2JqZWN0W2tleV0gPSByZWZlcmVuY2U7XG4gICAgICBcIlwiID09PSBrZXkgJiYgbnVsbCA9PT0gaGFuZGxlci52YWx1ZSAmJiAoaGFuZGxlci52YWx1ZSA9IHJlZmVyZW5jZSk7XG4gICAgICBpZiAoXG4gICAgICAgIHBhcmVudE9iamVjdFswXSA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFICYmXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBoYW5kbGVyLnZhbHVlICYmXG4gICAgICAgIG51bGwgIT09IGhhbmRsZXIudmFsdWUgJiZcbiAgICAgICAgaGFuZGxlci52YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG4gICAgICApXG4gICAgICAgIHN3aXRjaCAoKChwYXJlbnRPYmplY3QgPSBoYW5kbGVyLnZhbHVlKSwga2V5KSkge1xuICAgICAgICAgIGNhc2UgXCIzXCI6XG4gICAgICAgICAgICBwYXJlbnRPYmplY3QucHJvcHMgPSByZWZlcmVuY2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiNFwiOlxuICAgICAgICAgICAgcGFyZW50T2JqZWN0Ll9vd25lciA9IHJlZmVyZW5jZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCI1XCI6XG4gICAgICAgICAgICBwYXJlbnRPYmplY3QuX2RlYnVnU3RhY2sgPSByZWZlcmVuY2U7XG4gICAgICAgIH1cbiAgICAgIGhhbmRsZXIuZGVwcy0tO1xuICAgICAgMCA9PT0gaGFuZGxlci5kZXBzICYmXG4gICAgICAgICgoa2V5ID0gaGFuZGxlci5jaHVuayksXG4gICAgICAgIG51bGwgIT09IGtleSAmJlxuICAgICAgICAgIFwiYmxvY2tlZFwiID09PSBrZXkuc3RhdHVzICYmXG4gICAgICAgICAgKChwYXJlbnRPYmplY3QgPSBrZXkudmFsdWUpLFxuICAgICAgICAgIChrZXkuc3RhdHVzID0gXCJmdWxmaWxsZWRcIiksXG4gICAgICAgICAgKGtleS52YWx1ZSA9IGhhbmRsZXIudmFsdWUpLFxuICAgICAgICAgIG51bGwgIT09IHBhcmVudE9iamVjdCAmJiB3YWtlQ2h1bmsocGFyZW50T2JqZWN0LCBoYW5kbGVyLnZhbHVlKSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWplY3RSZWZlcmVuY2UocmVmZXJlbmNlLCBlcnJvcikge1xuICAgICAgdmFyIGhhbmRsZXIgPSByZWZlcmVuY2UuaGFuZGxlcjtcbiAgICAgIHJlZmVyZW5jZSA9IHJlZmVyZW5jZS5yZXNwb25zZTtcbiAgICAgIGlmICghaGFuZGxlci5lcnJvcmVkKSB7XG4gICAgICAgIHZhciBibG9ja2VkVmFsdWUgPSBoYW5kbGVyLnZhbHVlO1xuICAgICAgICBoYW5kbGVyLmVycm9yZWQgPSAhMDtcbiAgICAgICAgaGFuZGxlci52YWx1ZSA9IGVycm9yO1xuICAgICAgICBoYW5kbGVyID0gaGFuZGxlci5jaHVuaztcbiAgICAgICAgaWYgKG51bGwgIT09IGhhbmRsZXIgJiYgXCJibG9ja2VkXCIgPT09IGhhbmRsZXIuc3RhdHVzKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGJsb2NrZWRWYWx1ZSAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gYmxvY2tlZFZhbHVlICYmXG4gICAgICAgICAgICBibG9ja2VkVmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdmFyIGVycm9yZWRDb21wb25lbnQgPSB7XG4gICAgICAgICAgICAgIG5hbWU6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShibG9ja2VkVmFsdWUudHlwZSkgfHwgXCJcIixcbiAgICAgICAgICAgICAgb3duZXI6IGJsb2NrZWRWYWx1ZS5fb3duZXJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBlcnJvcmVkQ29tcG9uZW50LmRlYnVnU3RhY2sgPSBibG9ja2VkVmFsdWUuX2RlYnVnU3RhY2s7XG4gICAgICAgICAgICBzdXBwb3J0c0NyZWF0ZVRhc2sgJiZcbiAgICAgICAgICAgICAgKGVycm9yZWRDb21wb25lbnQuZGVidWdUYXNrID0gYmxvY2tlZFZhbHVlLl9kZWJ1Z1Rhc2spO1xuICAgICAgICAgICAgKGhhbmRsZXIuX2RlYnVnSW5mbyB8fCAoaGFuZGxlci5fZGVidWdJbmZvID0gW10pKS5wdXNoKFxuICAgICAgICAgICAgICBlcnJvcmVkQ29tcG9uZW50XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0cmlnZ2VyRXJyb3JPbkNodW5rKHJlZmVyZW5jZSwgaGFuZGxlciwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhaXRGb3JSZWZlcmVuY2UoXG4gICAgICByZWZlcmVuY2VkQ2h1bmssXG4gICAgICBwYXJlbnRPYmplY3QsXG4gICAgICBrZXksXG4gICAgICByZXNwb25zZSxcbiAgICAgIG1hcCxcbiAgICAgIHBhdGhcbiAgICApIHtcbiAgICAgIGlmIChpbml0aWFsaXppbmdIYW5kbGVyKSB7XG4gICAgICAgIHZhciBoYW5kbGVyID0gaW5pdGlhbGl6aW5nSGFuZGxlcjtcbiAgICAgICAgaGFuZGxlci5kZXBzKys7XG4gICAgICB9IGVsc2VcbiAgICAgICAgaGFuZGxlciA9IGluaXRpYWxpemluZ0hhbmRsZXIgPSB7XG4gICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgIGNodW5rOiBudWxsLFxuICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgIGRlcHM6IDEsXG4gICAgICAgICAgZXJyb3JlZDogITFcbiAgICAgICAgfTtcbiAgICAgIHBhcmVudE9iamVjdCA9IHtcbiAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLFxuICAgICAgICBoYW5kbGVyOiBoYW5kbGVyLFxuICAgICAgICBwYXJlbnRPYmplY3Q6IHBhcmVudE9iamVjdCxcbiAgICAgICAga2V5OiBrZXksXG4gICAgICAgIG1hcDogbWFwLFxuICAgICAgICBwYXRoOiBwYXRoXG4gICAgICB9O1xuICAgICAgbnVsbCA9PT0gcmVmZXJlbmNlZENodW5rLnZhbHVlXG4gICAgICAgID8gKHJlZmVyZW5jZWRDaHVuay52YWx1ZSA9IFtwYXJlbnRPYmplY3RdKVxuICAgICAgICA6IHJlZmVyZW5jZWRDaHVuay52YWx1ZS5wdXNoKHBhcmVudE9iamVjdCk7XG4gICAgICBudWxsID09PSByZWZlcmVuY2VkQ2h1bmsucmVhc29uXG4gICAgICAgID8gKHJlZmVyZW5jZWRDaHVuay5yZWFzb24gPSBbcGFyZW50T2JqZWN0XSlcbiAgICAgICAgOiByZWZlcmVuY2VkQ2h1bmsucmVhc29uLnB1c2gocGFyZW50T2JqZWN0KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb2FkU2VydmVyUmVmZXJlbmNlKHJlc3BvbnNlLCBtZXRhRGF0YSwgcGFyZW50T2JqZWN0LCBrZXkpIHtcbiAgICAgIGlmICghcmVzcG9uc2UuX3NlcnZlclJlZmVyZW5jZUNvbmZpZylcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUJvdW5kU2VydmVyUmVmZXJlbmNlKFxuICAgICAgICAgIG1ldGFEYXRhLFxuICAgICAgICAgIHJlc3BvbnNlLl9jYWxsU2VydmVyLFxuICAgICAgICAgIHJlc3BvbnNlLl9lbmNvZGVGb3JtQWN0aW9uLFxuICAgICAgICAgIHJlc3BvbnNlLl9kZWJ1Z0ZpbmRTb3VyY2VNYXBVUkxcbiAgICAgICAgKTtcbiAgICAgIHZhciBzZXJ2ZXJSZWZlcmVuY2UgPSByZXNvbHZlU2VydmVyUmVmZXJlbmNlKFxuICAgICAgICAgIHJlc3BvbnNlLl9zZXJ2ZXJSZWZlcmVuY2VDb25maWcsXG4gICAgICAgICAgbWV0YURhdGEuaWRcbiAgICAgICAgKSxcbiAgICAgICAgcHJvbWlzZSA9IHByZWxvYWRNb2R1bGUoc2VydmVyUmVmZXJlbmNlKTtcbiAgICAgIGlmIChwcm9taXNlKVxuICAgICAgICBtZXRhRGF0YS5ib3VuZCAmJiAocHJvbWlzZSA9IFByb21pc2UuYWxsKFtwcm9taXNlLCBtZXRhRGF0YS5ib3VuZF0pKTtcbiAgICAgIGVsc2UgaWYgKG1ldGFEYXRhLmJvdW5kKSBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKG1ldGFEYXRhLmJvdW5kKTtcbiAgICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAocHJvbWlzZSA9IHJlcXVpcmVNb2R1bGUoc2VydmVyUmVmZXJlbmNlKSksXG4gICAgICAgICAgcmVnaXN0ZXJCb3VuZFNlcnZlclJlZmVyZW5jZShcbiAgICAgICAgICAgIHByb21pc2UsXG4gICAgICAgICAgICBtZXRhRGF0YS5pZCxcbiAgICAgICAgICAgIG1ldGFEYXRhLmJvdW5kLFxuICAgICAgICAgICAgcmVzcG9uc2UuX2VuY29kZUZvcm1BY3Rpb25cbiAgICAgICAgICApLFxuICAgICAgICAgIHByb21pc2VcbiAgICAgICAgKTtcbiAgICAgIGlmIChpbml0aWFsaXppbmdIYW5kbGVyKSB7XG4gICAgICAgIHZhciBoYW5kbGVyID0gaW5pdGlhbGl6aW5nSGFuZGxlcjtcbiAgICAgICAgaGFuZGxlci5kZXBzKys7XG4gICAgICB9IGVsc2VcbiAgICAgICAgaGFuZGxlciA9IGluaXRpYWxpemluZ0hhbmRsZXIgPSB7XG4gICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgIGNodW5rOiBudWxsLFxuICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgIGRlcHM6IDEsXG4gICAgICAgICAgZXJyb3JlZDogITFcbiAgICAgICAgfTtcbiAgICAgIHByb21pc2UudGhlbihcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciByZXNvbHZlZFZhbHVlID0gcmVxdWlyZU1vZHVsZShzZXJ2ZXJSZWZlcmVuY2UpO1xuICAgICAgICAgIGlmIChtZXRhRGF0YS5ib3VuZCkge1xuICAgICAgICAgICAgdmFyIGJvdW5kQXJncyA9IG1ldGFEYXRhLmJvdW5kLnZhbHVlLnNsaWNlKDApO1xuICAgICAgICAgICAgYm91bmRBcmdzLnVuc2hpZnQobnVsbCk7XG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlID0gcmVzb2x2ZWRWYWx1ZS5iaW5kLmFwcGx5KHJlc29sdmVkVmFsdWUsIGJvdW5kQXJncyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlZ2lzdGVyQm91bmRTZXJ2ZXJSZWZlcmVuY2UoXG4gICAgICAgICAgICByZXNvbHZlZFZhbHVlLFxuICAgICAgICAgICAgbWV0YURhdGEuaWQsXG4gICAgICAgICAgICBtZXRhRGF0YS5ib3VuZCxcbiAgICAgICAgICAgIHJlc3BvbnNlLl9lbmNvZGVGb3JtQWN0aW9uXG4gICAgICAgICAgKTtcbiAgICAgICAgICBwYXJlbnRPYmplY3Rba2V5XSA9IHJlc29sdmVkVmFsdWU7XG4gICAgICAgICAgXCJcIiA9PT0ga2V5ICYmXG4gICAgICAgICAgICBudWxsID09PSBoYW5kbGVyLnZhbHVlICYmXG4gICAgICAgICAgICAoaGFuZGxlci52YWx1ZSA9IHJlc29sdmVkVmFsdWUpO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHBhcmVudE9iamVjdFswXSA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFICYmXG4gICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgaGFuZGxlci52YWx1ZSAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gaGFuZGxlci52YWx1ZSAmJlxuICAgICAgICAgICAgaGFuZGxlci52YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG4gICAgICAgICAgKVxuICAgICAgICAgICAgc3dpdGNoICgoKGJvdW5kQXJncyA9IGhhbmRsZXIudmFsdWUpLCBrZXkpKSB7XG4gICAgICAgICAgICAgIGNhc2UgXCIzXCI6XG4gICAgICAgICAgICAgICAgYm91bmRBcmdzLnByb3BzID0gcmVzb2x2ZWRWYWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBcIjRcIjpcbiAgICAgICAgICAgICAgICBib3VuZEFyZ3MuX293bmVyID0gcmVzb2x2ZWRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBoYW5kbGVyLmRlcHMtLTtcbiAgICAgICAgICAwID09PSBoYW5kbGVyLmRlcHMgJiZcbiAgICAgICAgICAgICgocmVzb2x2ZWRWYWx1ZSA9IGhhbmRsZXIuY2h1bmspLFxuICAgICAgICAgICAgbnVsbCAhPT0gcmVzb2x2ZWRWYWx1ZSAmJlxuICAgICAgICAgICAgICBcImJsb2NrZWRcIiA9PT0gcmVzb2x2ZWRWYWx1ZS5zdGF0dXMgJiZcbiAgICAgICAgICAgICAgKChib3VuZEFyZ3MgPSByZXNvbHZlZFZhbHVlLnZhbHVlKSxcbiAgICAgICAgICAgICAgKHJlc29sdmVkVmFsdWUuc3RhdHVzID0gXCJmdWxmaWxsZWRcIiksXG4gICAgICAgICAgICAgIChyZXNvbHZlZFZhbHVlLnZhbHVlID0gaGFuZGxlci52YWx1ZSksXG4gICAgICAgICAgICAgIG51bGwgIT09IGJvdW5kQXJncyAmJiB3YWtlQ2h1bmsoYm91bmRBcmdzLCBoYW5kbGVyLnZhbHVlKSkpO1xuICAgICAgICB9LFxuICAgICAgICBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICBpZiAoIWhhbmRsZXIuZXJyb3JlZCkge1xuICAgICAgICAgICAgdmFyIGJsb2NrZWRWYWx1ZSA9IGhhbmRsZXIudmFsdWU7XG4gICAgICAgICAgICBoYW5kbGVyLmVycm9yZWQgPSAhMDtcbiAgICAgICAgICAgIGhhbmRsZXIudmFsdWUgPSBlcnJvcjtcbiAgICAgICAgICAgIHZhciBjaHVuayA9IGhhbmRsZXIuY2h1bms7XG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gY2h1bmsgJiYgXCJibG9ja2VkXCIgPT09IGNodW5rLnN0YXR1cykge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGJsb2NrZWRWYWx1ZSAmJlxuICAgICAgICAgICAgICAgIG51bGwgIT09IGJsb2NrZWRWYWx1ZSAmJlxuICAgICAgICAgICAgICAgIGJsb2NrZWRWYWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHZhciBlcnJvcmVkQ29tcG9uZW50ID0ge1xuICAgICAgICAgICAgICAgICAgbmFtZTogZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGJsb2NrZWRWYWx1ZS50eXBlKSB8fCBcIlwiLFxuICAgICAgICAgICAgICAgICAgb3duZXI6IGJsb2NrZWRWYWx1ZS5fb3duZXJcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGVycm9yZWRDb21wb25lbnQuZGVidWdTdGFjayA9IGJsb2NrZWRWYWx1ZS5fZGVidWdTdGFjaztcbiAgICAgICAgICAgICAgICBzdXBwb3J0c0NyZWF0ZVRhc2sgJiZcbiAgICAgICAgICAgICAgICAgIChlcnJvcmVkQ29tcG9uZW50LmRlYnVnVGFzayA9IGJsb2NrZWRWYWx1ZS5fZGVidWdUYXNrKTtcbiAgICAgICAgICAgICAgICAoY2h1bmsuX2RlYnVnSW5mbyB8fCAoY2h1bmsuX2RlYnVnSW5mbyA9IFtdKSkucHVzaChcbiAgICAgICAgICAgICAgICAgIGVycm9yZWRDb21wb25lbnRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRyaWdnZXJFcnJvck9uQ2h1bmsocmVzcG9uc2UsIGNodW5rLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE91dGxpbmVkTW9kZWwocmVzcG9uc2UsIHJlZmVyZW5jZSwgcGFyZW50T2JqZWN0LCBrZXksIG1hcCkge1xuICAgICAgcmVmZXJlbmNlID0gcmVmZXJlbmNlLnNwbGl0KFwiOlwiKTtcbiAgICAgIHZhciBpZCA9IHBhcnNlSW50KHJlZmVyZW5jZVswXSwgMTYpO1xuICAgICAgaWQgPSBnZXRDaHVuayhyZXNwb25zZSwgaWQpO1xuICAgICAgc3dpdGNoIChpZC5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcInJlc29sdmVkX21vZGVsXCI6XG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsoaWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kdWxlXCI6XG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZHVsZUNodW5rKGlkKTtcbiAgICAgIH1cbiAgICAgIHN3aXRjaCAoaWQuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJmdWxmaWxsZWRcIjpcbiAgICAgICAgICBmb3IgKHZhciB2YWx1ZSA9IGlkLnZhbHVlLCBpID0gMTsgaSA8IHJlZmVyZW5jZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZm9yICg7IHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEU7ICkge1xuICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLl9wYXlsb2FkO1xuICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnN0YXR1cykge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2RlbFwiOlxuICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcInJlc29sdmVkX21vZHVsZVwiOlxuICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZU1vZHVsZUNodW5rKHZhbHVlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLnN0YXR1cykge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJmdWxmaWxsZWRcIjpcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudmFsdWU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiYmxvY2tlZFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgICAgICAgICAgICAgICByZXR1cm4gd2FpdEZvclJlZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudE9iamVjdCxcbiAgICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgbWFwLFxuICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2Uuc2xpY2UoaSAtIDEpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJoYWx0ZWRcIjpcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXJcbiAgICAgICAgICAgICAgICAgICAgICA/ICgocmVzcG9uc2UgPSBpbml0aWFsaXppbmdIYW5kbGVyKSwgcmVzcG9uc2UuZGVwcysrKVxuICAgICAgICAgICAgICAgICAgICAgIDogKGluaXRpYWxpemluZ0hhbmRsZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2h1bms6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBzOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcmVkOiAhMVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXJcbiAgICAgICAgICAgICAgICAgICAgICA/ICgoaW5pdGlhbGl6aW5nSGFuZGxlci5lcnJvcmVkID0gITApLFxuICAgICAgICAgICAgICAgICAgICAgICAgKGluaXRpYWxpemluZ0hhbmRsZXIudmFsdWUgPSB2YWx1ZS5yZWFzb24pKVxuICAgICAgICAgICAgICAgICAgICAgIDogKGluaXRpYWxpemluZ0hhbmRsZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2h1bms6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZS5yZWFzb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHM6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yZWQ6ICEwXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVtyZWZlcmVuY2VbaV1dO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNwb25zZSA9IG1hcChyZXNwb25zZSwgdmFsdWUsIHBhcmVudE9iamVjdCwga2V5KTtcbiAgICAgICAgICBpZC5fZGVidWdJbmZvICYmXG4gICAgICAgICAgICAoXCJvYmplY3RcIiAhPT0gdHlwZW9mIHJlc3BvbnNlIHx8XG4gICAgICAgICAgICAgIG51bGwgPT09IHJlc3BvbnNlIHx8XG4gICAgICAgICAgICAgICghaXNBcnJheUltcGwocmVzcG9uc2UpICYmXG4gICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgcmVzcG9uc2VbQVNZTkNfSVRFUkFUT1JdICYmXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuJCR0eXBlb2YgIT09IFJFQUNUX0VMRU1FTlRfVFlQRSkgfHxcbiAgICAgICAgICAgICAgcmVzcG9uc2UuX2RlYnVnSW5mbyB8fFxuICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzcG9uc2UsIFwiX2RlYnVnSW5mb1wiLCB7XG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGlkLl9kZWJ1Z0luZm9cbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgY2FzZSBcImJsb2NrZWRcIjpcbiAgICAgICAgICByZXR1cm4gd2FpdEZvclJlZmVyZW5jZShcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgcGFyZW50T2JqZWN0LFxuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICByZWZlcmVuY2VcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIFwiaGFsdGVkXCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGluaXRpYWxpemluZ0hhbmRsZXJcbiAgICAgICAgICAgICAgPyAoKHJlc3BvbnNlID0gaW5pdGlhbGl6aW5nSGFuZGxlciksIHJlc3BvbnNlLmRlcHMrKylcbiAgICAgICAgICAgICAgOiAoaW5pdGlhbGl6aW5nSGFuZGxlciA9IHtcbiAgICAgICAgICAgICAgICAgIHBhcmVudDogbnVsbCxcbiAgICAgICAgICAgICAgICAgIGNodW5rOiBudWxsLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgICBkZXBzOiAxLFxuICAgICAgICAgICAgICAgICAgZXJyb3JlZDogITFcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG51bGxcbiAgICAgICAgICApO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBpbml0aWFsaXppbmdIYW5kbGVyXG4gICAgICAgICAgICAgID8gKChpbml0aWFsaXppbmdIYW5kbGVyLmVycm9yZWQgPSAhMCksXG4gICAgICAgICAgICAgICAgKGluaXRpYWxpemluZ0hhbmRsZXIudmFsdWUgPSBpZC5yZWFzb24pKVxuICAgICAgICAgICAgICA6IChpbml0aWFsaXppbmdIYW5kbGVyID0ge1xuICAgICAgICAgICAgICAgICAgcGFyZW50OiBudWxsLFxuICAgICAgICAgICAgICAgICAgY2h1bms6IG51bGwsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogaWQucmVhc29uLFxuICAgICAgICAgICAgICAgICAgZGVwczogMCxcbiAgICAgICAgICAgICAgICAgIGVycm9yZWQ6ICEwXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlTWFwKHJlc3BvbnNlLCBtb2RlbCkge1xuICAgICAgcmV0dXJuIG5ldyBNYXAobW9kZWwpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVTZXQocmVzcG9uc2UsIG1vZGVsKSB7XG4gICAgICByZXR1cm4gbmV3IFNldChtb2RlbCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUJsb2IocmVzcG9uc2UsIG1vZGVsKSB7XG4gICAgICByZXR1cm4gbmV3IEJsb2IobW9kZWwuc2xpY2UoMSksIHsgdHlwZTogbW9kZWxbMF0gfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZvcm1EYXRhKHJlc3BvbnNlLCBtb2RlbCkge1xuICAgICAgcmVzcG9uc2UgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWwubGVuZ3RoOyBpKyspXG4gICAgICAgIHJlc3BvbnNlLmFwcGVuZChtb2RlbFtpXVswXSwgbW9kZWxbaV1bMV0pO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhcHBseUNvbnN0cnVjdG9yKHJlc3BvbnNlLCBtb2RlbCwgcGFyZW50T2JqZWN0KSB7XG4gICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YocGFyZW50T2JqZWN0LCBtb2RlbC5wcm90b3R5cGUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWZpbmVMYXp5R2V0dGVyKHJlc3BvbnNlLCBjaHVuaywgcGFyZW50T2JqZWN0LCBrZXkpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwYXJlbnRPYmplY3QsIGtleSwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBcInJlc29sdmVkX21vZGVsXCIgPT09IGNodW5rLnN0YXR1cyAmJiBpbml0aWFsaXplTW9kZWxDaHVuayhjaHVuayk7XG4gICAgICAgICAgc3dpdGNoIChjaHVuay5zdGF0dXMpIHtcbiAgICAgICAgICAgIGNhc2UgXCJmdWxmaWxsZWRcIjpcbiAgICAgICAgICAgICAgcmV0dXJuIGNodW5rLnZhbHVlO1xuICAgICAgICAgICAgY2FzZSBcInJlamVjdGVkXCI6XG4gICAgICAgICAgICAgIHRocm93IGNodW5rLnJlYXNvbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFwiVGhpcyBvYmplY3QgaGFzIGJlZW4gb21pdHRlZCBieSBSZWFjdCBpbiB0aGUgY29uc29sZSBsb2cgdG8gYXZvaWQgc2VuZGluZyB0b28gbXVjaCBkYXRhIGZyb20gdGhlIHNlcnZlci4gVHJ5IGxvZ2dpbmcgc21hbGxlciBvciBtb3JlIHNwZWNpZmljIG9iamVjdHMuXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6ICEwLFxuICAgICAgICBjb25maWd1cmFibGU6ICExXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBleHRyYWN0SXRlcmF0b3IocmVzcG9uc2UsIG1vZGVsKSB7XG4gICAgICByZXR1cm4gbW9kZWxbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVNb2RlbChyZXNwb25zZSwgbW9kZWwpIHtcbiAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcGFyc2VNb2RlbFN0cmluZyhyZXNwb25zZSwgcGFyZW50T2JqZWN0LCBrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoXCIkXCIgPT09IHZhbHVlWzBdKSB7XG4gICAgICAgIGlmIChcIiRcIiA9PT0gdmFsdWUpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIG51bGwgIT09IGluaXRpYWxpemluZ0hhbmRsZXIgJiZcbiAgICAgICAgICAgICAgXCIwXCIgPT09IGtleSAmJlxuICAgICAgICAgICAgICAoaW5pdGlhbGl6aW5nSGFuZGxlciA9IHtcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IGluaXRpYWxpemluZ0hhbmRsZXIsXG4gICAgICAgICAgICAgICAgY2h1bms6IG51bGwsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgICAgICAgZGVwczogMCxcbiAgICAgICAgICAgICAgICBlcnJvcmVkOiAhMVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgICAgICk7XG4gICAgICAgIHN3aXRjaCAodmFsdWVbMV0pIHtcbiAgICAgICAgICBjYXNlIFwiJFwiOlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnNsaWNlKDEpO1xuICAgICAgICAgIGNhc2UgXCJMXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocGFyZW50T2JqZWN0ID0gcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDE2KSksXG4gICAgICAgICAgICAgIChyZXNwb25zZSA9IGdldENodW5rKHJlc3BvbnNlLCBwYXJlbnRPYmplY3QpKSxcbiAgICAgICAgICAgICAgY3JlYXRlTGF6eUNodW5rV3JhcHBlcihyZXNwb25zZSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBcIkBcIjpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChwYXJlbnRPYmplY3QgPSBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMTYpKSxcbiAgICAgICAgICAgICAgZ2V0Q2h1bmsocmVzcG9uc2UsIHBhcmVudE9iamVjdClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBcIlNcIjpcbiAgICAgICAgICAgIHJldHVybiBTeW1ib2wuZm9yKHZhbHVlLnNsaWNlKDIpKTtcbiAgICAgICAgICBjYXNlIFwiRlwiOlxuICAgICAgICAgICAgdmFyIHJlZiA9IHZhbHVlLnNsaWNlKDIpO1xuICAgICAgICAgICAgcmV0dXJuIGdldE91dGxpbmVkTW9kZWwoXG4gICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgIHBhcmVudE9iamVjdCxcbiAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICBsb2FkU2VydmVyUmVmZXJlbmNlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJUXCI6XG4gICAgICAgICAgICBwYXJlbnRPYmplY3QgPSBcIiRcIiArIHZhbHVlLnNsaWNlKDIpO1xuICAgICAgICAgICAgcmVzcG9uc2UgPSByZXNwb25zZS5fdGVtcFJlZnM7XG4gICAgICAgICAgICBpZiAobnVsbCA9PSByZXNwb25zZSlcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJNaXNzaW5nIGEgdGVtcG9yYXJ5IHJlZmVyZW5jZSBzZXQgYnV0IHRoZSBSU0MgcmVzcG9uc2UgcmV0dXJuZWQgYSB0ZW1wb3JhcnkgcmVmZXJlbmNlLiBQYXNzIGEgdGVtcG9yYXJ5UmVmZXJlbmNlIG9wdGlvbiB3aXRoIHRoZSBzZXQgdGhhdCB3YXMgdXNlZCB3aXRoIHRoZSByZXBseS5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmdldChwYXJlbnRPYmplY3QpO1xuICAgICAgICAgIGNhc2UgXCJRXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCByZWYsIHBhcmVudE9iamVjdCwga2V5LCBjcmVhdGVNYXApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJXXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCByZWYsIHBhcmVudE9iamVjdCwga2V5LCBjcmVhdGVTZXQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJCXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKHJlc3BvbnNlLCByZWYsIHBhcmVudE9iamVjdCwga2V5LCBjcmVhdGVCbG9iKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiS1wiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHJlZiA9IHZhbHVlLnNsaWNlKDIpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChyZXNwb25zZSwgcmVmLCBwYXJlbnRPYmplY3QsIGtleSwgY3JlYXRlRm9ybURhdGEpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJaXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIHJlc29sdmVFcnJvckRldlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJpXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGV4dHJhY3RJdGVyYXRvclxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJJXCI6XG4gICAgICAgICAgICByZXR1cm4gSW5maW5pdHk7XG4gICAgICAgICAgY2FzZSBcIi1cIjpcbiAgICAgICAgICAgIHJldHVybiBcIiQtMFwiID09PSB2YWx1ZSA/IC0wIDogLUluZmluaXR5O1xuICAgICAgICAgIGNhc2UgXCJOXCI6XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICAgIGNhc2UgXCJ1XCI6XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSBcIkRcIjpcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLnBhcnNlKHZhbHVlLnNsaWNlKDIpKSk7XG4gICAgICAgICAgY2FzZSBcIm5cIjpcbiAgICAgICAgICAgIHJldHVybiBCaWdJbnQodmFsdWUuc2xpY2UoMikpO1xuICAgICAgICAgIGNhc2UgXCJQXCI6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocmVmID0gdmFsdWUuc2xpY2UoMikpLFxuICAgICAgICAgICAgICBnZXRPdXRsaW5lZE1vZGVsKFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgICAgICBwYXJlbnRPYmplY3QsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGFwcGx5Q29uc3RydWN0b3JcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiRVwiOlxuICAgICAgICAgICAgcmVzcG9uc2UgPSB2YWx1ZS5zbGljZSgyKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiAoMCwgZXZhbCkocmVzcG9uc2UpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhcnRzV2l0aChcIihhc3luYyBmdW5jdGlvblwiKSkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICgocGFyZW50T2JqZWN0ID0gcmVzcG9uc2UuaW5kZXhPZihcIihcIiwgMTUpKSxcbiAgICAgICAgICAgICAgICAgIC0xICE9PSBwYXJlbnRPYmplY3QpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlID0gcmVzcG9uc2Uuc2xpY2UoMTUsIHBhcmVudE9iamVjdCkudHJpbSgpKSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIGV2YWwpKFxuICAgICAgICAgICAgICAgICAgICAgIFwiKHtcIiArIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlKSArIFwiOmFzeW5jIGZ1bmN0aW9uKCl7fX0pXCJcbiAgICAgICAgICAgICAgICAgICAgKVtyZXNwb25zZV1cbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhcnRzV2l0aChcIihmdW5jdGlvblwiKSkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICgocGFyZW50T2JqZWN0ID0gcmVzcG9uc2UuaW5kZXhPZihcIihcIiwgOSkpLFxuICAgICAgICAgICAgICAgICAgLTEgIT09IHBhcmVudE9iamVjdClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UgPSByZXNwb25zZS5zbGljZSg5LCBwYXJlbnRPYmplY3QpLnRyaW0oKSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBldmFsKShcbiAgICAgICAgICAgICAgICAgICAgICBcIih7XCIgKyBKU09OLnN0cmluZ2lmeShyZXNwb25zZSkgKyBcIjpmdW5jdGlvbigpe319KVwiXG4gICAgICAgICAgICAgICAgICAgIClbcmVzcG9uc2VdXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLnN0YXJ0c1dpdGgoXCIoY2xhc3NcIikgJiZcbiAgICAgICAgICAgICAgICAoKHBhcmVudE9iamVjdCA9IHJlc3BvbnNlLmluZGV4T2YoXCJ7XCIsIDYpKSwgLTEgIT09IHBhcmVudE9iamVjdClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAocmVzcG9uc2UgPSByZXNwb25zZS5zbGljZSg2LCBwYXJlbnRPYmplY3QpLnRyaW0oKSksXG4gICAgICAgICAgICAgICAgICAoMCwgZXZhbCkoXCIoe1wiICsgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpICsgXCI6Y2xhc3N7fX0pXCIpW1xuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFwiWVwiOlxuICAgICAgICAgICAgaWYgKDIgPCB2YWx1ZS5sZW5ndGggJiYgKHJlZiA9IHJlc3BvbnNlLl9kZWJ1Z0NoYW5uZWwpKSB7XG4gICAgICAgICAgICAgIGlmIChcIkBcIiA9PT0gdmFsdWVbMl0pXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIChwYXJlbnRPYmplY3QgPSB2YWx1ZS5zbGljZSgzKSksXG4gICAgICAgICAgICAgICAgICAoa2V5ID0gcGFyc2VJbnQocGFyZW50T2JqZWN0LCAxNikpLFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuX2NodW5rcy5oYXMoa2V5KSB8fCByZWYoXCJQOlwiICsgcGFyZW50T2JqZWN0KSxcbiAgICAgICAgICAgICAgICAgIGdldENodW5rKHJlc3BvbnNlLCBrZXkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgyKTtcbiAgICAgICAgICAgICAgdmFyIF9pZDIgPSBwYXJzZUludCh2YWx1ZSwgMTYpO1xuICAgICAgICAgICAgICByZXNwb25zZS5fY2h1bmtzLmhhcyhfaWQyKSB8fCByZWYoXCJROlwiICsgdmFsdWUpO1xuICAgICAgICAgICAgICByZWYgPSBnZXRDaHVuayhyZXNwb25zZSwgX2lkMik7XG4gICAgICAgICAgICAgIHJldHVybiBcImZ1bGZpbGxlZFwiID09PSByZWYuc3RhdHVzXG4gICAgICAgICAgICAgICAgPyByZWYudmFsdWVcbiAgICAgICAgICAgICAgICA6IGRlZmluZUxhenlHZXR0ZXIocmVzcG9uc2UsIHJlZiwgcGFyZW50T2JqZWN0LCBrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHBhcmVudE9iamVjdCwga2V5LCB7XG4gICAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBcIlRoaXMgb2JqZWN0IGhhcyBiZWVuIG9taXR0ZWQgYnkgUmVhY3QgaW4gdGhlIGNvbnNvbGUgbG9nIHRvIGF2b2lkIHNlbmRpbmcgdG9vIG11Y2ggZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuIFRyeSBsb2dnaW5nIHNtYWxsZXIgb3IgbW9yZSBzcGVjaWZpYyBvYmplY3RzLlwiO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlbnVtZXJhYmxlOiAhMCxcbiAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiAhMVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHJlZiA9IHZhbHVlLnNsaWNlKDEpKSxcbiAgICAgICAgICAgICAgZ2V0T3V0bGluZWRNb2RlbChyZXNwb25zZSwgcmVmLCBwYXJlbnRPYmplY3QsIGtleSwgY3JlYXRlTW9kZWwpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1pc3NpbmdDYWxsKCkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdUcnlpbmcgdG8gY2FsbCBhIGZ1bmN0aW9uIGZyb20gXCJ1c2Ugc2VydmVyXCIgYnV0IHRoZSBjYWxsU2VydmVyIG9wdGlvbiB3YXMgbm90IGltcGxlbWVudGVkIGluIHlvdXIgcm91dGVyIHJ1bnRpbWUuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gUmVzcG9uc2VJbnN0YW5jZShcbiAgICAgIGJ1bmRsZXJDb25maWcsXG4gICAgICBzZXJ2ZXJSZWZlcmVuY2VDb25maWcsXG4gICAgICBtb2R1bGVMb2FkaW5nLFxuICAgICAgY2FsbFNlcnZlcixcbiAgICAgIGVuY29kZUZvcm1BY3Rpb24sXG4gICAgICBub25jZSxcbiAgICAgIHRlbXBvcmFyeVJlZmVyZW5jZXMsXG4gICAgICBmaW5kU291cmNlTWFwVVJMLFxuICAgICAgcmVwbGF5Q29uc29sZSxcbiAgICAgIGVudmlyb25tZW50TmFtZSxcbiAgICAgIGRlYnVnQ2hhbm5lbFxuICAgICkge1xuICAgICAgdmFyIGNodW5rcyA9IG5ldyBNYXAoKTtcbiAgICAgIHRoaXMuX2J1bmRsZXJDb25maWcgPSBidW5kbGVyQ29uZmlnO1xuICAgICAgdGhpcy5fc2VydmVyUmVmZXJlbmNlQ29uZmlnID0gc2VydmVyUmVmZXJlbmNlQ29uZmlnO1xuICAgICAgdGhpcy5fbW9kdWxlTG9hZGluZyA9IG1vZHVsZUxvYWRpbmc7XG4gICAgICB0aGlzLl9jYWxsU2VydmVyID0gdm9pZCAwICE9PSBjYWxsU2VydmVyID8gY2FsbFNlcnZlciA6IG1pc3NpbmdDYWxsO1xuICAgICAgdGhpcy5fZW5jb2RlRm9ybUFjdGlvbiA9IGVuY29kZUZvcm1BY3Rpb247XG4gICAgICB0aGlzLl9ub25jZSA9IG5vbmNlO1xuICAgICAgdGhpcy5fY2h1bmtzID0gY2h1bmtzO1xuICAgICAgdGhpcy5fc3RyaW5nRGVjb2RlciA9IG5ldyB1dGlsLlRleHREZWNvZGVyKCk7XG4gICAgICB0aGlzLl9mcm9tSlNPTiA9IG51bGw7XG4gICAgICB0aGlzLl9jbG9zZWQgPSAhMTtcbiAgICAgIHRoaXMuX2Nsb3NlZFJlYXNvbiA9IG51bGw7XG4gICAgICB0aGlzLl90ZW1wUmVmcyA9IHRlbXBvcmFyeVJlZmVyZW5jZXM7XG4gICAgICB0aGlzLl9wZW5kaW5nQ2h1bmtzID0gMDtcbiAgICAgIHRoaXMuX3dlYWtSZXNwb25zZSA9IHsgd2VhazogbmV3IFdlYWtSZWYodGhpcyksIHJlc3BvbnNlOiB0aGlzIH07XG4gICAgICB0aGlzLl9kZWJ1Z1Jvb3RPd25lciA9IGJ1bmRsZXJDb25maWcgPVxuICAgICAgICB2b2lkIDAgPT09IFJlYWN0U2hhcmVkSW50ZXJhbHNTZXJ2ZXIgfHxcbiAgICAgICAgbnVsbCA9PT0gUmVhY3RTaGFyZWRJbnRlcmFsc1NlcnZlci5BXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiBSZWFjdFNoYXJlZEludGVyYWxzU2VydmVyLkEuZ2V0T3duZXIoKTtcbiAgICAgIHRoaXMuX2RlYnVnUm9vdFN0YWNrID1cbiAgICAgICAgbnVsbCAhPT0gYnVuZGxlckNvbmZpZyA/IEVycm9yKFwicmVhY3Qtc3RhY2stdG9wLWZyYW1lXCIpIDogbnVsbDtcbiAgICAgIGVudmlyb25tZW50TmFtZSA9IHZvaWQgMCA9PT0gZW52aXJvbm1lbnROYW1lID8gXCJTZXJ2ZXJcIiA6IGVudmlyb25tZW50TmFtZTtcbiAgICAgIHN1cHBvcnRzQ3JlYXRlVGFzayAmJlxuICAgICAgICAodGhpcy5fZGVidWdSb290VGFzayA9IGNvbnNvbGUuY3JlYXRlVGFzayhcbiAgICAgICAgICAnXCJ1c2UgJyArIGVudmlyb25tZW50TmFtZS50b0xvd2VyQ2FzZSgpICsgJ1wiJ1xuICAgICAgICApKTtcbiAgICAgIHRoaXMuX2RlYnVnRmluZFNvdXJjZU1hcFVSTCA9IGZpbmRTb3VyY2VNYXBVUkw7XG4gICAgICB0aGlzLl9kZWJ1Z0NoYW5uZWwgPSBkZWJ1Z0NoYW5uZWw7XG4gICAgICB0aGlzLl9yZXBsYXlDb25zb2xlID0gcmVwbGF5Q29uc29sZTtcbiAgICAgIHRoaXMuX3Jvb3RFbnZpcm9ubWVudE5hbWUgPSBlbnZpcm9ubWVudE5hbWU7XG4gICAgICBkZWJ1Z0NoYW5uZWwgJiZcbiAgICAgICAgKG51bGwgPT09IGRlYnVnQ2hhbm5lbFJlZ2lzdHJ5XG4gICAgICAgICAgPyAoZGVidWdDaGFubmVsKFwiXCIpLCAodGhpcy5fZGVidWdDaGFubmVsID0gdm9pZCAwKSlcbiAgICAgICAgICA6IGRlYnVnQ2hhbm5lbFJlZ2lzdHJ5LnJlZ2lzdGVyKHRoaXMsIGRlYnVnQ2hhbm5lbCkpO1xuICAgICAgdGhpcy5fZnJvbUpTT04gPSBjcmVhdGVGcm9tSlNPTkNhbGxiYWNrKHRoaXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVTdHJlYW1TdGF0ZSgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIF9yb3dTdGF0ZTogMCxcbiAgICAgICAgX3Jvd0lEOiAwLFxuICAgICAgICBfcm93VGFnOiAwLFxuICAgICAgICBfcm93TGVuZ3RoOiAwLFxuICAgICAgICBfYnVmZmVyOiBbXVxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZURlYnVnSGFsdChyZXNwb25zZSwgaWQpIHtcbiAgICAgIHZhciBjaHVua3MgPSByZXNwb25zZS5fY2h1bmtzLFxuICAgICAgICBjaHVuayA9IGNodW5rcy5nZXQoaWQpO1xuICAgICAgY2h1bmsgfHwgY2h1bmtzLnNldChpZCwgKGNodW5rID0gY3JlYXRlUGVuZGluZ0NodW5rKHJlc3BvbnNlKSkpO1xuICAgICAgaWYgKFwicGVuZGluZ1wiID09PSBjaHVuay5zdGF0dXMgfHwgXCJibG9ja2VkXCIgPT09IGNodW5rLnN0YXR1cylcbiAgICAgICAgcmVsZWFzZVBlbmRpbmdDaHVuayhyZXNwb25zZSwgY2h1bmspLFxuICAgICAgICAgIChyZXNwb25zZSA9IGNodW5rKSxcbiAgICAgICAgICAocmVzcG9uc2Uuc3RhdHVzID0gXCJoYWx0ZWRcIiksXG4gICAgICAgICAgKHJlc3BvbnNlLnZhbHVlID0gbnVsbCksXG4gICAgICAgICAgKHJlc3BvbnNlLnJlYXNvbiA9IG51bGwpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlTW9kZWwocmVzcG9uc2UsIGlkLCBtb2RlbCkge1xuICAgICAgdmFyIGNodW5rcyA9IHJlc3BvbnNlLl9jaHVua3MsXG4gICAgICAgIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG4gICAgICBjaHVua1xuICAgICAgICA/IHJlc29sdmVNb2RlbENodW5rKHJlc3BvbnNlLCBjaHVuaywgbW9kZWwpXG4gICAgICAgIDogY2h1bmtzLnNldChpZCwgbmV3IFJlYWN0UHJvbWlzZShcInJlc29sdmVkX21vZGVsXCIsIG1vZGVsLCByZXNwb25zZSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlVGV4dChyZXNwb25zZSwgaWQsIHRleHQpIHtcbiAgICAgIHZhciBjaHVua3MgPSByZXNwb25zZS5fY2h1bmtzLFxuICAgICAgICBjaHVuayA9IGNodW5rcy5nZXQoaWQpO1xuICAgICAgY2h1bmsgJiYgXCJwZW5kaW5nXCIgIT09IGNodW5rLnN0YXR1c1xuICAgICAgICA/IGNodW5rLnJlYXNvbi5lbnF1ZXVlVmFsdWUodGV4dClcbiAgICAgICAgOiAoY2h1bmsgJiYgcmVsZWFzZVBlbmRpbmdDaHVuayhyZXNwb25zZSwgY2h1bmspLFxuICAgICAgICAgIGNodW5rcy5zZXQoaWQsIG5ldyBSZWFjdFByb21pc2UoXCJmdWxmaWxsZWRcIiwgdGV4dCwgbnVsbCkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUJ1ZmZlcihyZXNwb25zZSwgaWQsIGJ1ZmZlcikge1xuICAgICAgdmFyIGNodW5rcyA9IHJlc3BvbnNlLl9jaHVua3MsXG4gICAgICAgIGNodW5rID0gY2h1bmtzLmdldChpZCk7XG4gICAgICBjaHVuayAmJiBcInBlbmRpbmdcIiAhPT0gY2h1bmsuc3RhdHVzXG4gICAgICAgID8gY2h1bmsucmVhc29uLmVucXVldWVWYWx1ZShidWZmZXIpXG4gICAgICAgIDogKGNodW5rICYmIHJlbGVhc2VQZW5kaW5nQ2h1bmsocmVzcG9uc2UsIGNodW5rKSxcbiAgICAgICAgICBjaHVua3Muc2V0KGlkLCBuZXcgUmVhY3RQcm9taXNlKFwiZnVsZmlsbGVkXCIsIGJ1ZmZlciwgbnVsbCkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU1vZHVsZShyZXNwb25zZSwgaWQsIG1vZGVsKSB7XG4gICAgICB2YXIgY2h1bmtzID0gcmVzcG9uc2UuX2NodW5rcyxcbiAgICAgICAgY2h1bmsgPSBjaHVua3MuZ2V0KGlkKTtcbiAgICAgIG1vZGVsID0gSlNPTi5wYXJzZShtb2RlbCwgcmVzcG9uc2UuX2Zyb21KU09OKTtcbiAgICAgIHZhciBjbGllbnRSZWZlcmVuY2UgPSByZXNvbHZlQ2xpZW50UmVmZXJlbmNlKFxuICAgICAgICByZXNwb25zZS5fYnVuZGxlckNvbmZpZyxcbiAgICAgICAgbW9kZWxcbiAgICAgICk7XG4gICAgICBwcmVwYXJlRGVzdGluYXRpb25XaXRoQ2h1bmtzKFxuICAgICAgICByZXNwb25zZS5fbW9kdWxlTG9hZGluZyxcbiAgICAgICAgbW9kZWxbMV0sXG4gICAgICAgIHJlc3BvbnNlLl9ub25jZVxuICAgICAgKTtcbiAgICAgIGlmICgobW9kZWwgPSBwcmVsb2FkTW9kdWxlKGNsaWVudFJlZmVyZW5jZSkpKSB7XG4gICAgICAgIGlmIChjaHVuaykge1xuICAgICAgICAgIHJlbGVhc2VQZW5kaW5nQ2h1bmsocmVzcG9uc2UsIGNodW5rKTtcbiAgICAgICAgICB2YXIgYmxvY2tlZENodW5rID0gY2h1bms7XG4gICAgICAgICAgYmxvY2tlZENodW5rLnN0YXR1cyA9IFwiYmxvY2tlZFwiO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICAoYmxvY2tlZENodW5rID0gbmV3IFJlYWN0UHJvbWlzZShcImJsb2NrZWRcIiwgbnVsbCwgbnVsbCkpLFxuICAgICAgICAgICAgY2h1bmtzLnNldChpZCwgYmxvY2tlZENodW5rKTtcbiAgICAgICAgbW9kZWwudGhlbihcbiAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZU1vZHVsZUNodW5rKHJlc3BvbnNlLCBibG9ja2VkQ2h1bmssIGNsaWVudFJlZmVyZW5jZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0cmlnZ2VyRXJyb3JPbkNodW5rKHJlc3BvbnNlLCBibG9ja2VkQ2h1bmssIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgY2h1bmtcbiAgICAgICAgICA/IHJlc29sdmVNb2R1bGVDaHVuayhyZXNwb25zZSwgY2h1bmssIGNsaWVudFJlZmVyZW5jZSlcbiAgICAgICAgICA6IGNodW5rcy5zZXQoXG4gICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICBuZXcgUmVhY3RQcm9taXNlKFwicmVzb2x2ZWRfbW9kdWxlXCIsIGNsaWVudFJlZmVyZW5jZSwgbnVsbClcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVTdHJlYW0ocmVzcG9uc2UsIGlkLCBzdHJlYW0sIGNvbnRyb2xsZXIpIHtcbiAgICAgIHZhciBjaHVua3MgPSByZXNwb25zZS5fY2h1bmtzLFxuICAgICAgICBjaHVuayA9IGNodW5rcy5nZXQoaWQpO1xuICAgICAgY2h1bmtcbiAgICAgICAgPyBcInBlbmRpbmdcIiA9PT0gY2h1bmsuc3RhdHVzICYmXG4gICAgICAgICAgKHJlbGVhc2VQZW5kaW5nQ2h1bmsocmVzcG9uc2UsIGNodW5rKSxcbiAgICAgICAgICAocmVzcG9uc2UgPSBjaHVuay52YWx1ZSksXG4gICAgICAgICAgKGNodW5rLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCIpLFxuICAgICAgICAgIChjaHVuay52YWx1ZSA9IHN0cmVhbSksXG4gICAgICAgICAgKGNodW5rLnJlYXNvbiA9IGNvbnRyb2xsZXIpLFxuICAgICAgICAgIG51bGwgIT09IHJlc3BvbnNlICYmIHdha2VDaHVuayhyZXNwb25zZSwgY2h1bmsudmFsdWUpKVxuICAgICAgICA6IGNodW5rcy5zZXQoaWQsIG5ldyBSZWFjdFByb21pc2UoXCJmdWxmaWxsZWRcIiwgc3RyZWFtLCBjb250cm9sbGVyKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0UmVhZGFibGVTdHJlYW0ocmVzcG9uc2UsIGlkLCB0eXBlKSB7XG4gICAgICB2YXIgY29udHJvbGxlciA9IG51bGw7XG4gICAgICB0eXBlID0gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uIChjKSB7XG4gICAgICAgICAgY29udHJvbGxlciA9IGM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdmFyIHByZXZpb3VzQmxvY2tlZENodW5rID0gbnVsbDtcbiAgICAgIHJlc29sdmVTdHJlYW0ocmVzcG9uc2UsIGlkLCB0eXBlLCB7XG4gICAgICAgIGVucXVldWVWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgbnVsbCA9PT0gcHJldmlvdXNCbG9ja2VkQ2h1bmtcbiAgICAgICAgICAgID8gY29udHJvbGxlci5lbnF1ZXVlKHZhbHVlKVxuICAgICAgICAgICAgOiBwcmV2aW91c0Jsb2NrZWRDaHVuay50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUodmFsdWUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5xdWV1ZU1vZGVsOiBmdW5jdGlvbiAoanNvbikge1xuICAgICAgICAgIGlmIChudWxsID09PSBwcmV2aW91c0Jsb2NrZWRDaHVuaykge1xuICAgICAgICAgICAgdmFyIGNodW5rID0gbmV3IFJlYWN0UHJvbWlzZShcInJlc29sdmVkX21vZGVsXCIsIGpzb24sIHJlc3BvbnNlKTtcbiAgICAgICAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKGNodW5rKTtcbiAgICAgICAgICAgIFwiZnVsZmlsbGVkXCIgPT09IGNodW5rLnN0YXR1c1xuICAgICAgICAgICAgICA/IGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuay52YWx1ZSlcbiAgICAgICAgICAgICAgOiAoY2h1bmsudGhlbihcbiAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVyLmVucXVldWUodik7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAocHJldmlvdXNCbG9ja2VkQ2h1bmsgPSBjaHVuaykpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaHVuayA9IHByZXZpb3VzQmxvY2tlZENodW5rO1xuICAgICAgICAgICAgdmFyIF9jaHVuazMgPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpO1xuICAgICAgICAgICAgX2NodW5rMy50aGVuKFxuICAgICAgICAgICAgICBmdW5jdGlvbiAodikge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVyLmVucXVldWUodik7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBwcmV2aW91c0Jsb2NrZWRDaHVuayA9IF9jaHVuazM7XG4gICAgICAgICAgICBjaHVuay50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcHJldmlvdXNCbG9ja2VkQ2h1bmsgPT09IF9jaHVuazMgJiYgKHByZXZpb3VzQmxvY2tlZENodW5rID0gbnVsbCk7XG4gICAgICAgICAgICAgIHJlc29sdmVNb2RlbENodW5rKHJlc3BvbnNlLCBfY2h1bmszLCBqc29uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAobnVsbCA9PT0gcHJldmlvdXNCbG9ja2VkQ2h1bmspIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBibG9ja2VkQ2h1bmsgPSBwcmV2aW91c0Jsb2NrZWRDaHVuaztcbiAgICAgICAgICAgIHByZXZpb3VzQmxvY2tlZENodW5rID0gbnVsbDtcbiAgICAgICAgICAgIGJsb2NrZWRDaHVuay50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgIGlmIChudWxsID09PSBwcmV2aW91c0Jsb2NrZWRDaHVuaykgY29udHJvbGxlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB2YXIgYmxvY2tlZENodW5rID0gcHJldmlvdXNCbG9ja2VkQ2h1bms7XG4gICAgICAgICAgICBwcmV2aW91c0Jsb2NrZWRDaHVuayA9IG51bGw7XG4gICAgICAgICAgICBibG9ja2VkQ2h1bmsudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVyLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFzeW5jSXRlcmF0b3IoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlSXRlcmF0b3IobmV4dCkge1xuICAgICAgbmV4dCA9IHsgbmV4dDogbmV4dCB9O1xuICAgICAgbmV4dFtBU1lOQ19JVEVSQVRPUl0gPSBhc3luY0l0ZXJhdG9yO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0QXN5bmNJdGVyYWJsZShyZXNwb25zZSwgaWQsIGl0ZXJhdG9yKSB7XG4gICAgICB2YXIgYnVmZmVyID0gW10sXG4gICAgICAgIGNsb3NlZCA9ICExLFxuICAgICAgICBuZXh0V3JpdGVJbmRleCA9IDAsXG4gICAgICAgIGl0ZXJhYmxlID0ge307XG4gICAgICBpdGVyYWJsZVtBU1lOQ19JVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBuZXh0UmVhZEluZGV4ID0gMDtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUl0ZXJhdG9yKGZ1bmN0aW9uIChhcmcpIHtcbiAgICAgICAgICBpZiAodm9pZCAwICE9PSBhcmcpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgXCJWYWx1ZXMgY2Fubm90IGJlIHBhc3NlZCB0byBuZXh0KCkgb2YgQXN5bmNJdGVyYWJsZXMgcGFzc2VkIHRvIENsaWVudCBDb21wb25lbnRzLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmIChuZXh0UmVhZEluZGV4ID09PSBidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoY2xvc2VkKVxuICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlYWN0UHJvbWlzZShcbiAgICAgICAgICAgICAgICBcImZ1bGZpbGxlZFwiLFxuICAgICAgICAgICAgICAgIHsgZG9uZTogITAsIHZhbHVlOiB2b2lkIDAgfSxcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBidWZmZXJbbmV4dFJlYWRJbmRleF0gPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYnVmZmVyW25leHRSZWFkSW5kZXgrK107XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHJlc29sdmVTdHJlYW0oXG4gICAgICAgIHJlc3BvbnNlLFxuICAgICAgICBpZCxcbiAgICAgICAgaXRlcmF0b3IgPyBpdGVyYWJsZVtBU1lOQ19JVEVSQVRPUl0oKSA6IGl0ZXJhYmxlLFxuICAgICAgICB7XG4gICAgICAgICAgZW5xdWV1ZVZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChuZXh0V3JpdGVJbmRleCA9PT0gYnVmZmVyLmxlbmd0aClcbiAgICAgICAgICAgICAgYnVmZmVyW25leHRXcml0ZUluZGV4XSA9IG5ldyBSZWFjdFByb21pc2UoXG4gICAgICAgICAgICAgICAgXCJmdWxmaWxsZWRcIixcbiAgICAgICAgICAgICAgICB7IGRvbmU6ICExLCB2YWx1ZTogdmFsdWUgfSxcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgdmFyIGNodW5rID0gYnVmZmVyW25leHRXcml0ZUluZGV4XSxcbiAgICAgICAgICAgICAgICByZXNvbHZlTGlzdGVuZXJzID0gY2h1bmsudmFsdWUsXG4gICAgICAgICAgICAgICAgcmVqZWN0TGlzdGVuZXJzID0gY2h1bmsucmVhc29uO1xuICAgICAgICAgICAgICBjaHVuay5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICAgICAgICBjaHVuay52YWx1ZSA9IHsgZG9uZTogITEsIHZhbHVlOiB2YWx1ZSB9O1xuICAgICAgICAgICAgICBudWxsICE9PSByZXNvbHZlTGlzdGVuZXJzICYmXG4gICAgICAgICAgICAgICAgd2FrZUNodW5rSWZJbml0aWFsaXplZChcbiAgICAgICAgICAgICAgICAgIGNodW5rLFxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZUxpc3RlbmVycyxcbiAgICAgICAgICAgICAgICAgIHJlamVjdExpc3RlbmVyc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0V3JpdGVJbmRleCsrO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZW5xdWV1ZU1vZGVsOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIG5leHRXcml0ZUluZGV4ID09PSBidWZmZXIubGVuZ3RoXG4gICAgICAgICAgICAgID8gKGJ1ZmZlcltuZXh0V3JpdGVJbmRleF0gPSBjcmVhdGVSZXNvbHZlZEl0ZXJhdG9yUmVzdWx0Q2h1bmsoXG4gICAgICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICA6IHJlc29sdmVJdGVyYXRvclJlc3VsdENodW5rKFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICBidWZmZXJbbmV4dFdyaXRlSW5kZXhdLFxuICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBuZXh0V3JpdGVJbmRleCsrO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgY2xvc2VkID0gITA7XG4gICAgICAgICAgICBuZXh0V3JpdGVJbmRleCA9PT0gYnVmZmVyLmxlbmd0aFxuICAgICAgICAgICAgICA/IChidWZmZXJbbmV4dFdyaXRlSW5kZXhdID0gY3JlYXRlUmVzb2x2ZWRJdGVyYXRvclJlc3VsdENodW5rKFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICEwXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgOiByZXNvbHZlSXRlcmF0b3JSZXN1bHRDaHVuayhcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgYnVmZmVyW25leHRXcml0ZUluZGV4XSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgITBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgZm9yIChuZXh0V3JpdGVJbmRleCsrOyBuZXh0V3JpdGVJbmRleCA8IGJ1ZmZlci5sZW5ndGg7IClcbiAgICAgICAgICAgICAgcmVzb2x2ZUl0ZXJhdG9yUmVzdWx0Q2h1bmsoXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgYnVmZmVyW25leHRXcml0ZUluZGV4KytdLFxuICAgICAgICAgICAgICAgICdcIiR1bmRlZmluZWRcIicsXG4gICAgICAgICAgICAgICAgITBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNsb3NlZCA9ICEwO1xuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgbmV4dFdyaXRlSW5kZXggPT09IGJ1ZmZlci5sZW5ndGggJiZcbiAgICAgICAgICAgICAgKGJ1ZmZlcltuZXh0V3JpdGVJbmRleF0gPSBjcmVhdGVQZW5kaW5nQ2h1bmsocmVzcG9uc2UpKTtcbiAgICAgICAgICAgICAgbmV4dFdyaXRlSW5kZXggPCBidWZmZXIubGVuZ3RoO1xuXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHRyaWdnZXJFcnJvck9uQ2h1bmsocmVzcG9uc2UsIGJ1ZmZlcltuZXh0V3JpdGVJbmRleCsrXSwgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RvcFN0cmVhbShyZXNwb25zZSwgaWQsIHJvdykge1xuICAgICAgKHJlc3BvbnNlID0gcmVzcG9uc2UuX2NodW5rcy5nZXQoaWQpKSAmJlxuICAgICAgICBcImZ1bGZpbGxlZFwiID09PSByZXNwb25zZS5zdGF0dXMgJiZcbiAgICAgICAgcmVzcG9uc2UucmVhc29uLmNsb3NlKFwiXCIgPT09IHJvdyA/ICdcIiR1bmRlZmluZWRcIicgOiByb3cpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlRXJyb3JEZXYocmVzcG9uc2UsIGVycm9ySW5mbykge1xuICAgICAgdmFyIG5hbWUgPSBlcnJvckluZm8ubmFtZSxcbiAgICAgICAgZW52ID0gZXJyb3JJbmZvLmVudjtcbiAgICAgIGVycm9ySW5mbyA9IGJ1aWxkRmFrZUNhbGxTdGFjayhcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgIGVycm9ySW5mby5zdGFjayxcbiAgICAgICAgZW52LFxuICAgICAgICAhMSxcbiAgICAgICAgRXJyb3IuYmluZChcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIGVycm9ySW5mby5tZXNzYWdlIHx8XG4gICAgICAgICAgICBcIkFuIGVycm9yIG9jY3VycmVkIGluIHRoZSBTZXJ2ZXIgQ29tcG9uZW50cyByZW5kZXIgYnV0IG5vIG1lc3NhZ2Ugd2FzIHByb3ZpZGVkXCJcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIHJlc3BvbnNlID0gZ2V0Um9vdFRhc2socmVzcG9uc2UsIGVudik7XG4gICAgICByZXNwb25zZSA9IG51bGwgIT0gcmVzcG9uc2UgPyByZXNwb25zZS5ydW4oZXJyb3JJbmZvKSA6IGVycm9ySW5mbygpO1xuICAgICAgcmVzcG9uc2UubmFtZSA9IG5hbWU7XG4gICAgICByZXNwb25zZS5lbnZpcm9ubWVudE5hbWUgPSBlbnY7XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVIaW50KHJlc3BvbnNlLCBjb2RlLCBtb2RlbCkge1xuICAgICAgcmVzcG9uc2UgPSBKU09OLnBhcnNlKG1vZGVsLCByZXNwb25zZS5fZnJvbUpTT04pO1xuICAgICAgbW9kZWwgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5kO1xuICAgICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICAgIGNhc2UgXCJEXCI6XG4gICAgICAgICAgbW9kZWwuRChyZXNwb25zZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJDXCI6XG4gICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHJlc3BvbnNlXG4gICAgICAgICAgICA/IG1vZGVsLkMocmVzcG9uc2UpXG4gICAgICAgICAgICA6IG1vZGVsLkMocmVzcG9uc2VbMF0sIHJlc3BvbnNlWzFdKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIkxcIjpcbiAgICAgICAgICBjb2RlID0gcmVzcG9uc2VbMF07XG4gICAgICAgICAgdmFyIGFzID0gcmVzcG9uc2VbMV07XG4gICAgICAgICAgMyA9PT0gcmVzcG9uc2UubGVuZ3RoXG4gICAgICAgICAgICA/IG1vZGVsLkwoY29kZSwgYXMsIHJlc3BvbnNlWzJdKVxuICAgICAgICAgICAgOiBtb2RlbC5MKGNvZGUsIGFzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm1cIjpcbiAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgcmVzcG9uc2VcbiAgICAgICAgICAgID8gbW9kZWwubShyZXNwb25zZSlcbiAgICAgICAgICAgIDogbW9kZWwubShyZXNwb25zZVswXSwgcmVzcG9uc2VbMV0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiWFwiOlxuICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiByZXNwb25zZVxuICAgICAgICAgICAgPyBtb2RlbC5YKHJlc3BvbnNlKVxuICAgICAgICAgICAgOiBtb2RlbC5YKHJlc3BvbnNlWzBdLCByZXNwb25zZVsxXSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJTXCI6XG4gICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHJlc3BvbnNlXG4gICAgICAgICAgICA/IG1vZGVsLlMocmVzcG9uc2UpXG4gICAgICAgICAgICA6IG1vZGVsLlMoXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VbMF0sXG4gICAgICAgICAgICAgICAgMCA9PT0gcmVzcG9uc2VbMV0gPyB2b2lkIDAgOiByZXNwb25zZVsxXSxcbiAgICAgICAgICAgICAgICAzID09PSByZXNwb25zZS5sZW5ndGggPyByZXNwb25zZVsyXSA6IHZvaWQgMFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiTVwiOlxuICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiByZXNwb25zZVxuICAgICAgICAgICAgPyBtb2RlbC5NKHJlc3BvbnNlKVxuICAgICAgICAgICAgOiBtb2RlbC5NKHJlc3BvbnNlWzBdLCByZXNwb25zZVsxXSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZha2VGdW5jdGlvbihcbiAgICAgIG5hbWUsXG4gICAgICBmaWxlbmFtZSxcbiAgICAgIHNvdXJjZU1hcCxcbiAgICAgIGxpbmUsXG4gICAgICBjb2wsXG4gICAgICBlbmNsb3NpbmdMaW5lLFxuICAgICAgZW5jbG9zaW5nQ29sLFxuICAgICAgZW52aXJvbm1lbnROYW1lXG4gICAgKSB7XG4gICAgICBuYW1lIHx8IChuYW1lID0gXCI8YW5vbnltb3VzPlwiKTtcbiAgICAgIHZhciBlbmNvZGVkTmFtZSA9IEpTT04uc3RyaW5naWZ5KG5hbWUpO1xuICAgICAgMSA+IGVuY2xvc2luZ0xpbmUgPyAoZW5jbG9zaW5nTGluZSA9IDApIDogZW5jbG9zaW5nTGluZS0tO1xuICAgICAgMSA+IGVuY2xvc2luZ0NvbCA/IChlbmNsb3NpbmdDb2wgPSAwKSA6IGVuY2xvc2luZ0NvbC0tO1xuICAgICAgMSA+IGxpbmUgPyAobGluZSA9IDApIDogbGluZS0tO1xuICAgICAgMSA+IGNvbCA/IChjb2wgPSAwKSA6IGNvbC0tO1xuICAgICAgaWYgKFxuICAgICAgICBsaW5lIDwgZW5jbG9zaW5nTGluZSB8fFxuICAgICAgICAobGluZSA9PT0gZW5jbG9zaW5nTGluZSAmJiBjb2wgPCBlbmNsb3NpbmdDb2wpXG4gICAgICApXG4gICAgICAgIGVuY2xvc2luZ0NvbCA9IGVuY2xvc2luZ0xpbmUgPSAwO1xuICAgICAgMSA+IGxpbmVcbiAgICAgICAgPyAoKGxpbmUgPSBlbmNvZGVkTmFtZS5sZW5ndGggKyAzKSxcbiAgICAgICAgICAoZW5jbG9zaW5nQ29sIC09IGxpbmUpLFxuICAgICAgICAgIDAgPiBlbmNsb3NpbmdDb2wgJiYgKGVuY2xvc2luZ0NvbCA9IDApLFxuICAgICAgICAgIChjb2wgPSBjb2wgLSBlbmNsb3NpbmdDb2wgLSBsaW5lIC0gMyksXG4gICAgICAgICAgMCA+IGNvbCAmJiAoY29sID0gMCksXG4gICAgICAgICAgKGVuY29kZWROYW1lID1cbiAgICAgICAgICAgIFwiKHtcIiArXG4gICAgICAgICAgICBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICBcIjpcIiArXG4gICAgICAgICAgICBcIiBcIi5yZXBlYXQoZW5jbG9zaW5nQ29sKSArXG4gICAgICAgICAgICBcIl89PlwiICtcbiAgICAgICAgICAgIFwiIFwiLnJlcGVhdChjb2wpICtcbiAgICAgICAgICAgIFwiXygpfSlcIikpXG4gICAgICAgIDogMSA+IGVuY2xvc2luZ0xpbmVcbiAgICAgICAgICA/ICgoZW5jbG9zaW5nQ29sIC09IGVuY29kZWROYW1lLmxlbmd0aCArIDMpLFxuICAgICAgICAgICAgMCA+IGVuY2xvc2luZ0NvbCAmJiAoZW5jbG9zaW5nQ29sID0gMCksXG4gICAgICAgICAgICAoZW5jb2RlZE5hbWUgPVxuICAgICAgICAgICAgICBcIih7XCIgK1xuICAgICAgICAgICAgICBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICAgIFwiOlwiICtcbiAgICAgICAgICAgICAgXCIgXCIucmVwZWF0KGVuY2xvc2luZ0NvbCkgK1xuICAgICAgICAgICAgICBcIl89PlwiICtcbiAgICAgICAgICAgICAgXCJcXG5cIi5yZXBlYXQobGluZSAtIGVuY2xvc2luZ0xpbmUpICtcbiAgICAgICAgICAgICAgXCIgXCIucmVwZWF0KGNvbCkgK1xuICAgICAgICAgICAgICBcIl8oKX0pXCIpKVxuICAgICAgICAgIDogZW5jbG9zaW5nTGluZSA9PT0gbGluZVxuICAgICAgICAgICAgPyAoKGNvbCA9IGNvbCAtIGVuY2xvc2luZ0NvbCAtIDMpLFxuICAgICAgICAgICAgICAwID4gY29sICYmIChjb2wgPSAwKSxcbiAgICAgICAgICAgICAgKGVuY29kZWROYW1lID1cbiAgICAgICAgICAgICAgICBcIlxcblwiLnJlcGVhdChlbmNsb3NpbmdMaW5lIC0gMSkgK1xuICAgICAgICAgICAgICAgIFwiKHtcIiArXG4gICAgICAgICAgICAgICAgZW5jb2RlZE5hbWUgK1xuICAgICAgICAgICAgICAgIFwiOlxcblwiICtcbiAgICAgICAgICAgICAgICBcIiBcIi5yZXBlYXQoZW5jbG9zaW5nQ29sKSArXG4gICAgICAgICAgICAgICAgXCJfPT5cIiArXG4gICAgICAgICAgICAgICAgXCIgXCIucmVwZWF0KGNvbCkgK1xuICAgICAgICAgICAgICAgIFwiXygpfSlcIikpXG4gICAgICAgICAgICA6IChlbmNvZGVkTmFtZSA9XG4gICAgICAgICAgICAgICAgXCJcXG5cIi5yZXBlYXQoZW5jbG9zaW5nTGluZSAtIDEpICtcbiAgICAgICAgICAgICAgICBcIih7XCIgK1xuICAgICAgICAgICAgICAgIGVuY29kZWROYW1lICtcbiAgICAgICAgICAgICAgICBcIjpcXG5cIiArXG4gICAgICAgICAgICAgICAgXCIgXCIucmVwZWF0KGVuY2xvc2luZ0NvbCkgK1xuICAgICAgICAgICAgICAgIFwiXz0+XCIgK1xuICAgICAgICAgICAgICAgIFwiXFxuXCIucmVwZWF0KGxpbmUgLSBlbmNsb3NpbmdMaW5lKSArXG4gICAgICAgICAgICAgICAgXCIgXCIucmVwZWF0KGNvbCkgK1xuICAgICAgICAgICAgICAgIFwiXygpfSlcIik7XG4gICAgICBlbmNvZGVkTmFtZSA9XG4gICAgICAgIDEgPiBlbmNsb3NpbmdMaW5lXG4gICAgICAgICAgPyBlbmNvZGVkTmFtZSArXG4gICAgICAgICAgICBcIlxcbi8qIFRoaXMgbW9kdWxlIHdhcyByZW5kZXJlZCBieSBhIFNlcnZlciBDb21wb25lbnQuIFR1cm4gb24gU291cmNlIE1hcHMgdG8gc2VlIHRoZSBzZXJ2ZXIgc291cmNlLiAqL1wiXG4gICAgICAgICAgOiBcIi8qIFRoaXMgbW9kdWxlIHdhcyByZW5kZXJlZCBieSBhIFNlcnZlciBDb21wb25lbnQuIFR1cm4gb24gU291cmNlIE1hcHMgdG8gc2VlIHRoZSBzZXJ2ZXIgc291cmNlLiAqL1wiICtcbiAgICAgICAgICAgIGVuY29kZWROYW1lO1xuICAgICAgZmlsZW5hbWUuc3RhcnRzV2l0aChcIi9cIikgJiYgKGZpbGVuYW1lID0gXCJmaWxlOi8vXCIgKyBmaWxlbmFtZSk7XG4gICAgICBzb3VyY2VNYXBcbiAgICAgICAgPyAoKGVuY29kZWROYW1lICs9XG4gICAgICAgICAgICBcIlxcbi8vIyBzb3VyY2VVUkw9cnNjOi8vUmVhY3QvXCIgK1xuICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KGVudmlyb25tZW50TmFtZSkgK1xuICAgICAgICAgICAgXCIvXCIgK1xuICAgICAgICAgICAgZW5jb2RlVVJJKGZpbGVuYW1lKSArXG4gICAgICAgICAgICBcIj9cIiArXG4gICAgICAgICAgICBmYWtlRnVuY3Rpb25JZHgrKyksXG4gICAgICAgICAgKGVuY29kZWROYW1lICs9IFwiXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9XCIgKyBzb3VyY2VNYXApKVxuICAgICAgICA6IChlbmNvZGVkTmFtZSA9IGZpbGVuYW1lXG4gICAgICAgICAgICA/IGVuY29kZWROYW1lICsgKFwiXFxuLy8jIHNvdXJjZVVSTD1cIiArIGVuY29kZVVSSShmaWxlbmFtZSkpXG4gICAgICAgICAgICA6IGVuY29kZWROYW1lICsgXCJcXG4vLyMgc291cmNlVVJMPTxhbm9ueW1vdXM+XCIpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIGZuID0gKDAsIGV2YWwpKGVuY29kZWROYW1lKVtuYW1lXTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgZm4gPSBmdW5jdGlvbiAoXykge1xuICAgICAgICAgIHJldHVybiBfKCk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gZm47XG4gICAgfVxuICAgIGZ1bmN0aW9uIGJ1aWxkRmFrZUNhbGxTdGFjayhcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgc3RhY2ssXG4gICAgICBlbnZpcm9ubWVudE5hbWUsXG4gICAgICB1c2VFbmNsb3NpbmdMaW5lLFxuICAgICAgaW5uZXJDYWxsXG4gICAgKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0YWNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBmcmFtZSA9IHN0YWNrW2ldLFxuICAgICAgICAgIGZyYW1lS2V5ID1cbiAgICAgICAgICAgIGZyYW1lLmpvaW4oXCItXCIpICtcbiAgICAgICAgICAgIFwiLVwiICtcbiAgICAgICAgICAgIGVudmlyb25tZW50TmFtZSArXG4gICAgICAgICAgICAodXNlRW5jbG9zaW5nTGluZSA/IFwiLWVcIiA6IFwiLW5cIiksXG4gICAgICAgICAgZm4gPSBmYWtlRnVuY3Rpb25DYWNoZS5nZXQoZnJhbWVLZXkpO1xuICAgICAgICBpZiAodm9pZCAwID09PSBmbikge1xuICAgICAgICAgIGZuID0gZnJhbWVbMF07XG4gICAgICAgICAgdmFyIGZpbGVuYW1lID0gZnJhbWVbMV0sXG4gICAgICAgICAgICBsaW5lID0gZnJhbWVbMl0sXG4gICAgICAgICAgICBjb2wgPSBmcmFtZVszXSxcbiAgICAgICAgICAgIGVuY2xvc2luZ0xpbmUgPSBmcmFtZVs0XTtcbiAgICAgICAgICBmcmFtZSA9IGZyYW1lWzVdO1xuICAgICAgICAgIHZhciBmaW5kU291cmNlTWFwVVJMID0gcmVzcG9uc2UuX2RlYnVnRmluZFNvdXJjZU1hcFVSTDtcbiAgICAgICAgICBmaW5kU291cmNlTWFwVVJMID0gZmluZFNvdXJjZU1hcFVSTFxuICAgICAgICAgICAgPyBmaW5kU291cmNlTWFwVVJMKGZpbGVuYW1lLCBlbnZpcm9ubWVudE5hbWUpXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgZm4gPSBjcmVhdGVGYWtlRnVuY3Rpb24oXG4gICAgICAgICAgICBmbixcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICAgZmluZFNvdXJjZU1hcFVSTCxcbiAgICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgICBjb2wsXG4gICAgICAgICAgICB1c2VFbmNsb3NpbmdMaW5lID8gbGluZSA6IGVuY2xvc2luZ0xpbmUsXG4gICAgICAgICAgICB1c2VFbmNsb3NpbmdMaW5lID8gY29sIDogZnJhbWUsXG4gICAgICAgICAgICBlbnZpcm9ubWVudE5hbWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGZha2VGdW5jdGlvbkNhY2hlLnNldChmcmFtZUtleSwgZm4pO1xuICAgICAgICB9XG4gICAgICAgIGlubmVyQ2FsbCA9IGZuLmJpbmQobnVsbCwgaW5uZXJDYWxsKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpbm5lckNhbGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFJvb3RUYXNrKHJlc3BvbnNlLCBjaGlsZEVudmlyb25tZW50TmFtZSkge1xuICAgICAgdmFyIHJvb3RUYXNrID0gcmVzcG9uc2UuX2RlYnVnUm9vdFRhc2s7XG4gICAgICByZXR1cm4gcm9vdFRhc2tcbiAgICAgICAgPyByZXNwb25zZS5fcm9vdEVudmlyb25tZW50TmFtZSAhPT0gY2hpbGRFbnZpcm9ubWVudE5hbWVcbiAgICAgICAgICA/ICgocmVzcG9uc2UgPSBjb25zb2xlLmNyZWF0ZVRhc2suYmluZChcbiAgICAgICAgICAgICAgY29uc29sZSxcbiAgICAgICAgICAgICAgJ1widXNlICcgKyBjaGlsZEVudmlyb25tZW50TmFtZS50b0xvd2VyQ2FzZSgpICsgJ1wiJ1xuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICByb290VGFzay5ydW4ocmVzcG9uc2UpKVxuICAgICAgICAgIDogcm9vdFRhc2tcbiAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbml0aWFsaXplRmFrZVRhc2socmVzcG9uc2UsIGRlYnVnSW5mbykge1xuICAgICAgaWYgKCFzdXBwb3J0c0NyZWF0ZVRhc2sgfHwgbnVsbCA9PSBkZWJ1Z0luZm8uc3RhY2spIHJldHVybiBudWxsO1xuICAgICAgdmFyIGNhY2hlZEVudHJ5ID0gZGVidWdJbmZvLmRlYnVnVGFzaztcbiAgICAgIGlmICh2b2lkIDAgIT09IGNhY2hlZEVudHJ5KSByZXR1cm4gY2FjaGVkRW50cnk7XG4gICAgICB2YXIgdXNlRW5jbG9zaW5nTGluZSA9IHZvaWQgMCA9PT0gZGVidWdJbmZvLmtleSxcbiAgICAgICAgc3RhY2sgPSBkZWJ1Z0luZm8uc3RhY2ssXG4gICAgICAgIGVudiA9XG4gICAgICAgICAgbnVsbCA9PSBkZWJ1Z0luZm8uZW52ID8gcmVzcG9uc2UuX3Jvb3RFbnZpcm9ubWVudE5hbWUgOiBkZWJ1Z0luZm8uZW52O1xuICAgICAgY2FjaGVkRW50cnkgPVxuICAgICAgICBudWxsID09IGRlYnVnSW5mby5vd25lciB8fCBudWxsID09IGRlYnVnSW5mby5vd25lci5lbnZcbiAgICAgICAgICA/IHJlc3BvbnNlLl9yb290RW52aXJvbm1lbnROYW1lXG4gICAgICAgICAgOiBkZWJ1Z0luZm8ub3duZXIuZW52O1xuICAgICAgdmFyIG93bmVyVGFzayA9XG4gICAgICAgIG51bGwgPT0gZGVidWdJbmZvLm93bmVyXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiBpbml0aWFsaXplRmFrZVRhc2socmVzcG9uc2UsIGRlYnVnSW5mby5vd25lcik7XG4gICAgICBlbnYgPVxuICAgICAgICBlbnYgIT09IGNhY2hlZEVudHJ5XG4gICAgICAgICAgPyAnXCJ1c2UgJyArIGVudi50b0xvd2VyQ2FzZSgpICsgJ1wiJ1xuICAgICAgICAgIDogdm9pZCAwICE9PSBkZWJ1Z0luZm8ua2V5XG4gICAgICAgICAgICA/IFwiPFwiICsgKGRlYnVnSW5mby5uYW1lIHx8IFwiLi4uXCIpICsgXCI+XCJcbiAgICAgICAgICAgIDogdm9pZCAwICE9PSBkZWJ1Z0luZm8ubmFtZVxuICAgICAgICAgICAgICA/IGRlYnVnSW5mby5uYW1lIHx8IFwidW5rbm93blwiXG4gICAgICAgICAgICAgIDogXCJhd2FpdCBcIiArIChkZWJ1Z0luZm8uYXdhaXRlZC5uYW1lIHx8IFwidW5rbm93blwiKTtcbiAgICAgIGVudiA9IGNvbnNvbGUuY3JlYXRlVGFzay5iaW5kKGNvbnNvbGUsIGVudik7XG4gICAgICB1c2VFbmNsb3NpbmdMaW5lID0gYnVpbGRGYWtlQ2FsbFN0YWNrKFxuICAgICAgICByZXNwb25zZSxcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIGNhY2hlZEVudHJ5LFxuICAgICAgICB1c2VFbmNsb3NpbmdMaW5lLFxuICAgICAgICBlbnZcbiAgICAgICk7XG4gICAgICBudWxsID09PSBvd25lclRhc2tcbiAgICAgICAgPyAoKHJlc3BvbnNlID0gZ2V0Um9vdFRhc2socmVzcG9uc2UsIGNhY2hlZEVudHJ5KSksXG4gICAgICAgICAgKHJlc3BvbnNlID1cbiAgICAgICAgICAgIG51bGwgIT0gcmVzcG9uc2VcbiAgICAgICAgICAgICAgPyByZXNwb25zZS5ydW4odXNlRW5jbG9zaW5nTGluZSlcbiAgICAgICAgICAgICAgOiB1c2VFbmNsb3NpbmdMaW5lKCkpKVxuICAgICAgICA6IChyZXNwb25zZSA9IG93bmVyVGFzay5ydW4odXNlRW5jbG9zaW5nTGluZSkpO1xuICAgICAgcmV0dXJuIChkZWJ1Z0luZm8uZGVidWdUYXNrID0gcmVzcG9uc2UpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmYWtlSlNYQ2FsbFNpdGUoKSB7XG4gICAgICByZXR1cm4gRXJyb3IoXCJyZWFjdC1zdGFjay10b3AtZnJhbWVcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRpYWxpemVGYWtlU3RhY2socmVzcG9uc2UsIGRlYnVnSW5mbykge1xuICAgICAgaWYgKHZvaWQgMCA9PT0gZGVidWdJbmZvLmRlYnVnU3RhY2spIHtcbiAgICAgICAgbnVsbCAhPSBkZWJ1Z0luZm8uc3RhY2sgJiZcbiAgICAgICAgICAoZGVidWdJbmZvLmRlYnVnU3RhY2sgPSBjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrSW5ERVYoXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIGRlYnVnSW5mby5zdGFjayxcbiAgICAgICAgICAgIG51bGwgPT0gZGVidWdJbmZvLmVudiA/IFwiXCIgOiBkZWJ1Z0luZm8uZW52XG4gICAgICAgICAgKSk7XG4gICAgICAgIHZhciBvd25lciA9IGRlYnVnSW5mby5vd25lcjtcbiAgICAgICAgbnVsbCAhPSBvd25lciAmJlxuICAgICAgICAgIChpbml0aWFsaXplRmFrZVN0YWNrKHJlc3BvbnNlLCBvd25lciksXG4gICAgICAgICAgdm9pZCAwID09PSBvd25lci5kZWJ1Z0xvY2F0aW9uICYmXG4gICAgICAgICAgICBudWxsICE9IGRlYnVnSW5mby5kZWJ1Z1N0YWNrICYmXG4gICAgICAgICAgICAob3duZXIuZGVidWdMb2NhdGlvbiA9IGRlYnVnSW5mby5kZWJ1Z1N0YWNrKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVEZWJ1Z0luZm8ocmVzcG9uc2UsIGlkLCBkZWJ1Z0luZm8pIHtcbiAgICAgIHZvaWQgMCAhPT0gZGVidWdJbmZvLnN0YWNrICYmIGluaXRpYWxpemVGYWtlVGFzayhyZXNwb25zZSwgZGVidWdJbmZvKTtcbiAgICAgIG51bGwgPT0gZGVidWdJbmZvLm93bmVyICYmIG51bGwgIT0gcmVzcG9uc2UuX2RlYnVnUm9vdE93bmVyXG4gICAgICAgID8gKChkZWJ1Z0luZm8ub3duZXIgPSByZXNwb25zZS5fZGVidWdSb290T3duZXIpLFxuICAgICAgICAgIChkZWJ1Z0luZm8uc3RhY2sgPSBudWxsKSxcbiAgICAgICAgICAoZGVidWdJbmZvLmRlYnVnU3RhY2sgPSByZXNwb25zZS5fZGVidWdSb290U3RhY2spLFxuICAgICAgICAgIChkZWJ1Z0luZm8uZGVidWdUYXNrID0gcmVzcG9uc2UuX2RlYnVnUm9vdFRhc2spKVxuICAgICAgICA6IHZvaWQgMCAhPT0gZGVidWdJbmZvLnN0YWNrICYmXG4gICAgICAgICAgaW5pdGlhbGl6ZUZha2VTdGFjayhyZXNwb25zZSwgZGVidWdJbmZvKTtcbiAgICAgIHJlc3BvbnNlID0gZ2V0Q2h1bmsocmVzcG9uc2UsIGlkKTtcbiAgICAgIChyZXNwb25zZS5fZGVidWdJbmZvIHx8IChyZXNwb25zZS5fZGVidWdJbmZvID0gW10pKS5wdXNoKGRlYnVnSW5mbyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEN1cnJlbnRTdGFja0luREVWKCkge1xuICAgICAgdmFyIG93bmVyID0gY3VycmVudE93bmVySW5ERVY7XG4gICAgICBpZiAobnVsbCA9PT0gb3duZXIpIHJldHVybiBcIlwiO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIGluZm8gPSBcIlwiO1xuICAgICAgICBpZiAob3duZXIub3duZXIgfHwgXCJzdHJpbmdcIiAhPT0gdHlwZW9mIG93bmVyLm5hbWUpIHtcbiAgICAgICAgICBmb3IgKDsgb3duZXI7ICkge1xuICAgICAgICAgICAgdmFyIG93bmVyU3RhY2sgPSBvd25lci5kZWJ1Z1N0YWNrO1xuICAgICAgICAgICAgaWYgKG51bGwgIT0gb3duZXJTdGFjaykge1xuICAgICAgICAgICAgICBpZiAoKG93bmVyID0gb3duZXIub3duZXIpKSB7XG4gICAgICAgICAgICAgICAgdmFyIEpTQ29tcGlsZXJfdGVtcF9jb25zdCA9IGluZm87XG4gICAgICAgICAgICAgICAgdmFyIGVycm9yID0gb3duZXJTdGFjayxcbiAgICAgICAgICAgICAgICAgIHByZXZQcmVwYXJlU3RhY2tUcmFjZSA9IEVycm9yLnByZXBhcmVTdGFja1RyYWNlO1xuICAgICAgICAgICAgICAgIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gcHJlcGFyZVN0YWNrVHJhY2U7XG4gICAgICAgICAgICAgICAgdmFyIHN0YWNrID0gZXJyb3Iuc3RhY2s7XG4gICAgICAgICAgICAgICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2UHJlcGFyZVN0YWNrVHJhY2U7XG4gICAgICAgICAgICAgICAgc3RhY2suc3RhcnRzV2l0aChcIkVycm9yOiByZWFjdC1zdGFjay10b3AtZnJhbWVcXG5cIikgJiZcbiAgICAgICAgICAgICAgICAgIChzdGFjayA9IHN0YWNrLnNsaWNlKDI5KSk7XG4gICAgICAgICAgICAgICAgdmFyIGlkeCA9IHN0YWNrLmluZGV4T2YoXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgLTEgIT09IGlkeCAmJiAoc3RhY2sgPSBzdGFjay5zbGljZShpZHggKyAxKSk7XG4gICAgICAgICAgICAgICAgaWR4ID0gc3RhY2suaW5kZXhPZihcInJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZVwiKTtcbiAgICAgICAgICAgICAgICAtMSAhPT0gaWR4ICYmIChpZHggPSBzdGFjay5sYXN0SW5kZXhPZihcIlxcblwiLCBpZHgpKTtcbiAgICAgICAgICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID1cbiAgICAgICAgICAgICAgICAgIC0xICE9PSBpZHggPyAoc3RhY2sgPSBzdGFjay5zbGljZSgwLCBpZHgpKSA6IFwiXCI7XG4gICAgICAgICAgICAgICAgaW5mbyA9XG4gICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QgKyAoXCJcXG5cIiArIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMCA9IGluZm87XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgSlNDb21waWxlcl90ZW1wX2NvbnN0ID0gb3duZXIubmFtZTtcbiAgICAgICAgICBpZiAodm9pZCAwID09PSBwcmVmaXgpXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICAocHJlZml4ID1cbiAgICAgICAgICAgICAgICAoKGVycm9yID0geC5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKSkgJiYgZXJyb3JbMV0pIHx8XG4gICAgICAgICAgICAgICAgXCJcIiksXG4gICAgICAgICAgICAgICAgKHN1ZmZpeCA9XG4gICAgICAgICAgICAgICAgICAtMSA8IHguc3RhY2suaW5kZXhPZihcIlxcbiAgICBhdFwiKVxuICAgICAgICAgICAgICAgICAgICA/IFwiICg8YW5vbnltb3VzPilcIlxuICAgICAgICAgICAgICAgICAgICA6IC0xIDwgeC5zdGFjay5pbmRleE9mKFwiQFwiKVxuICAgICAgICAgICAgICAgICAgICAgID8gXCJAdW5rbm93bjowOjBcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwID1cbiAgICAgICAgICAgIFwiXFxuXCIgKyBwcmVmaXggKyBKU0NvbXBpbGVyX3RlbXBfY29uc3QgKyBzdWZmaXg7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwID1cbiAgICAgICAgICBcIlxcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IFwiICsgeC5tZXNzYWdlICsgXCJcXG5cIiArIHguc3RhY2s7XG4gICAgICB9XG4gICAgICByZXR1cm4gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlQ29uc29sZUVudHJ5KHJlc3BvbnNlLCB2YWx1ZSkge1xuICAgICAgaWYgKHJlc3BvbnNlLl9yZXBsYXlDb25zb2xlKSB7XG4gICAgICAgIHZhciBwYXlsb2FkID0gSlNPTi5wYXJzZSh2YWx1ZSwgcmVzcG9uc2UuX2Zyb21KU09OKTtcbiAgICAgICAgdmFsdWUgPSBwYXlsb2FkWzBdO1xuICAgICAgICB2YXIgc3RhY2tUcmFjZSA9IHBheWxvYWRbMV0sXG4gICAgICAgICAgb3duZXIgPSBwYXlsb2FkWzJdLFxuICAgICAgICAgIGVudiA9IHBheWxvYWRbM107XG4gICAgICAgIHBheWxvYWQgPSBwYXlsb2FkLnNsaWNlKDQpO1xuICAgICAgICByZXBsYXlDb25zb2xlV2l0aENhbGxTdGFja0luREVWKFxuICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIHN0YWNrVHJhY2UsXG4gICAgICAgICAgb3duZXIsXG4gICAgICAgICAgZW52LFxuICAgICAgICAgIHBheWxvYWRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbWVyZ2VCdWZmZXIoYnVmZmVyLCBsYXN0Q2h1bmspIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciBsID0gYnVmZmVyLmxlbmd0aCwgYnl0ZUxlbmd0aCA9IGxhc3RDaHVuay5sZW5ndGgsIGkgPSAwO1xuICAgICAgICBpIDwgbDtcbiAgICAgICAgaSsrXG4gICAgICApXG4gICAgICAgIGJ5dGVMZW5ndGggKz0gYnVmZmVyW2ldLmJ5dGVMZW5ndGg7XG4gICAgICBieXRlTGVuZ3RoID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZUxlbmd0aCk7XG4gICAgICBmb3IgKHZhciBfaTMgPSAoaSA9IDApOyBfaTMgPCBsOyBfaTMrKykge1xuICAgICAgICB2YXIgY2h1bmsgPSBidWZmZXJbX2kzXTtcbiAgICAgICAgYnl0ZUxlbmd0aC5zZXQoY2h1bmssIGkpO1xuICAgICAgICBpICs9IGNodW5rLmJ5dGVMZW5ndGg7XG4gICAgICB9XG4gICAgICBieXRlTGVuZ3RoLnNldChsYXN0Q2h1bmssIGkpO1xuICAgICAgcmV0dXJuIGJ5dGVMZW5ndGg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVUeXBlZEFycmF5KFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBpZCxcbiAgICAgIGJ1ZmZlcixcbiAgICAgIGxhc3RDaHVuayxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICAgYnl0ZXNQZXJFbGVtZW50XG4gICAgKSB7XG4gICAgICBidWZmZXIgPVxuICAgICAgICAwID09PSBidWZmZXIubGVuZ3RoICYmIDAgPT09IGxhc3RDaHVuay5ieXRlT2Zmc2V0ICUgYnl0ZXNQZXJFbGVtZW50XG4gICAgICAgICAgPyBsYXN0Q2h1bmtcbiAgICAgICAgICA6IG1lcmdlQnVmZmVyKGJ1ZmZlciwgbGFzdENodW5rKTtcbiAgICAgIGNvbnN0cnVjdG9yID0gbmV3IGNvbnN0cnVjdG9yKFxuICAgICAgICBidWZmZXIuYnVmZmVyLFxuICAgICAgICBidWZmZXIuYnl0ZU9mZnNldCxcbiAgICAgICAgYnVmZmVyLmJ5dGVMZW5ndGggLyBieXRlc1BlckVsZW1lbnRcbiAgICAgICk7XG4gICAgICByZXNvbHZlQnVmZmVyKHJlc3BvbnNlLCBpZCwgY29uc3RydWN0b3IpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmbHVzaEluaXRpYWxSZW5kZXJQZXJmb3JtYW5jZSgpIHt9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc0Z1bGxCaW5hcnlSb3cocmVzcG9uc2UsIGlkLCB0YWcsIGJ1ZmZlciwgY2h1bmspIHtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgNjU6XG4gICAgICAgICAgcmVzb2x2ZUJ1ZmZlcihyZXNwb25zZSwgaWQsIG1lcmdlQnVmZmVyKGJ1ZmZlciwgY2h1bmspLmJ1ZmZlcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDc5OlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgSW50OEFycmF5LCAxKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTExOlxuICAgICAgICAgIHJlc29sdmVCdWZmZXIoXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgMCA9PT0gYnVmZmVyLmxlbmd0aCA/IGNodW5rIDogbWVyZ2VCdWZmZXIoYnVmZmVyLCBjaHVuaylcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSA4NTpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIFVpbnQ4Q2xhbXBlZEFycmF5LCAxKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgODM6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBJbnQxNkFycmF5LCAyKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTE1OlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgVWludDE2QXJyYXksIDIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSA3NjpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIEludDMyQXJyYXksIDQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSAxMDg6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBVaW50MzJBcnJheSwgNCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIDcxOlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgRmxvYXQzMkFycmF5LCA0KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTAzOlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgRmxvYXQ2NEFycmF5LCA4KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgNzc6XG4gICAgICAgICAgcmVzb2x2ZVR5cGVkQXJyYXkocmVzcG9uc2UsIGlkLCBidWZmZXIsIGNodW5rLCBCaWdJbnQ2NEFycmF5LCA4KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgMTA5OlxuICAgICAgICAgIHJlc29sdmVUeXBlZEFycmF5KHJlc3BvbnNlLCBpZCwgYnVmZmVyLCBjaHVuaywgQmlnVWludDY0QXJyYXksIDgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSA4NjpcbiAgICAgICAgICByZXNvbHZlVHlwZWRBcnJheShyZXNwb25zZSwgaWQsIGJ1ZmZlciwgY2h1bmssIERhdGFWaWV3LCAxKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgc3RyaW5nRGVjb2RlciA9IHJlc3BvbnNlLl9zdHJpbmdEZWNvZGVyLCByb3cgPSBcIlwiLCBpID0gMDtcbiAgICAgICAgaSA8IGJ1ZmZlci5sZW5ndGg7XG4gICAgICAgIGkrK1xuICAgICAgKVxuICAgICAgICByb3cgKz0gc3RyaW5nRGVjb2Rlci5kZWNvZGUoYnVmZmVyW2ldLCBkZWNvZGVyT3B0aW9ucyk7XG4gICAgICByb3cgKz0gc3RyaW5nRGVjb2Rlci5kZWNvZGUoY2h1bmspO1xuICAgICAgcHJvY2Vzc0Z1bGxTdHJpbmdSb3cocmVzcG9uc2UsIGlkLCB0YWcsIHJvdyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NGdWxsU3RyaW5nUm93KHJlc3BvbnNlLCBpZCwgdGFnLCByb3cpIHtcbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgNzM6XG4gICAgICAgICAgcmVzb2x2ZU1vZHVsZShyZXNwb25zZSwgaWQsIHJvdyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNzI6XG4gICAgICAgICAgcmVzb2x2ZUhpbnQocmVzcG9uc2UsIHJvd1swXSwgcm93LnNsaWNlKDEpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2OTpcbiAgICAgICAgICByb3cgPSBKU09OLnBhcnNlKHJvdyk7XG4gICAgICAgICAgdGFnID0gcmVzb2x2ZUVycm9yRGV2KHJlc3BvbnNlLCByb3cpO1xuICAgICAgICAgIHRhZy5kaWdlc3QgPSByb3cuZGlnZXN0O1xuICAgICAgICAgIHJvdyA9IHJlc3BvbnNlLl9jaHVua3M7XG4gICAgICAgICAgdmFyIGNodW5rID0gcm93LmdldChpZCk7XG4gICAgICAgICAgY2h1bmtcbiAgICAgICAgICAgID8gdHJpZ2dlckVycm9yT25DaHVuayhyZXNwb25zZSwgY2h1bmssIHRhZylcbiAgICAgICAgICAgIDogcm93LnNldChpZCwgbmV3IFJlYWN0UHJvbWlzZShcInJlamVjdGVkXCIsIG51bGwsIHRhZykpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDg0OlxuICAgICAgICAgIHJlc29sdmVUZXh0KHJlc3BvbnNlLCBpZCwgcm93KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3ODpcbiAgICAgICAgY2FzZSA2ODpcbiAgICAgICAgICB0YWcgPSBuZXcgUmVhY3RQcm9taXNlKFwicmVzb2x2ZWRfbW9kZWxcIiwgcm93LCByZXNwb25zZSk7XG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZGVsQ2h1bmsodGFnKTtcbiAgICAgICAgICBcImZ1bGZpbGxlZFwiID09PSB0YWcuc3RhdHVzXG4gICAgICAgICAgICA/IHJlc29sdmVEZWJ1Z0luZm8ocmVzcG9uc2UsIGlkLCB0YWcudmFsdWUpXG4gICAgICAgICAgICA6IHRhZy50aGVuKFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh2KSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZURlYnVnSW5mbyhyZXNwb25zZSwgaWQsIHYpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkge31cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA3NDpcbiAgICAgICAgY2FzZSA4NzpcbiAgICAgICAgICByZXNvbHZlQ29uc29sZUVudHJ5KHJlc3BvbnNlLCByb3cpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDgyOlxuICAgICAgICAgIHN0YXJ0UmVhZGFibGVTdHJlYW0ocmVzcG9uc2UsIGlkLCB2b2lkIDApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExNDpcbiAgICAgICAgICBzdGFydFJlYWRhYmxlU3RyZWFtKHJlc3BvbnNlLCBpZCwgXCJieXRlc1wiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA4ODpcbiAgICAgICAgICBzdGFydEFzeW5jSXRlcmFibGUocmVzcG9uc2UsIGlkLCAhMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTIwOlxuICAgICAgICAgIHN0YXJ0QXN5bmNJdGVyYWJsZShyZXNwb25zZSwgaWQsICEwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA2NzpcbiAgICAgICAgICBzdG9wU3RyZWFtKHJlc3BvbnNlLCBpZCwgcm93KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBcIlwiID09PSByb3dcbiAgICAgICAgICAgID8gcmVzb2x2ZURlYnVnSGFsdChyZXNwb25zZSwgaWQpXG4gICAgICAgICAgICA6IHJlc29sdmVNb2RlbChyZXNwb25zZSwgaWQsIHJvdyk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NCaW5hcnlDaHVuayh3ZWFrUmVzcG9uc2UsIHN0cmVhbVN0YXRlLCBjaHVuaykge1xuICAgICAgaWYgKHZvaWQgMCAhPT0gd2Vha1Jlc3BvbnNlLndlYWsuZGVyZWYoKSkge1xuICAgICAgICB2YXIgcmVzcG9uc2UgPSB1bndyYXBXZWFrUmVzcG9uc2Uod2Vha1Jlc3BvbnNlKSxcbiAgICAgICAgICBpID0gMCxcbiAgICAgICAgICByb3dTdGF0ZSA9IHN0cmVhbVN0YXRlLl9yb3dTdGF0ZTtcbiAgICAgICAgd2Vha1Jlc3BvbnNlID0gc3RyZWFtU3RhdGUuX3Jvd0lEO1xuICAgICAgICBmb3IgKFxuICAgICAgICAgIHZhciByb3dUYWcgPSBzdHJlYW1TdGF0ZS5fcm93VGFnLFxuICAgICAgICAgICAgcm93TGVuZ3RoID0gc3RyZWFtU3RhdGUuX3Jvd0xlbmd0aCxcbiAgICAgICAgICAgIGJ1ZmZlciA9IHN0cmVhbVN0YXRlLl9idWZmZXIsXG4gICAgICAgICAgICBjaHVua0xlbmd0aCA9IGNodW5rLmxlbmd0aDtcbiAgICAgICAgICBpIDwgY2h1bmtMZW5ndGg7XG5cbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIGxhc3RJZHggPSAtMTtcbiAgICAgICAgICBzd2l0Y2ggKHJvd1N0YXRlKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIGxhc3RJZHggPSBjaHVua1tpKytdO1xuICAgICAgICAgICAgICA1OCA9PT0gbGFzdElkeFxuICAgICAgICAgICAgICAgID8gKHJvd1N0YXRlID0gMSlcbiAgICAgICAgICAgICAgICA6ICh3ZWFrUmVzcG9uc2UgPVxuICAgICAgICAgICAgICAgICAgICAod2Vha1Jlc3BvbnNlIDw8IDQpIHxcbiAgICAgICAgICAgICAgICAgICAgKDk2IDwgbGFzdElkeCA/IGxhc3RJZHggLSA4NyA6IGxhc3RJZHggLSA0OCkpO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgcm93U3RhdGUgPSBjaHVua1tpXTtcbiAgICAgICAgICAgICAgODQgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDY1ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICA3OSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgMTExID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICA4NSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgODMgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDExNSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgNzYgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDEwOCA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgNzEgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDEwMyA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgNzcgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgIDEwOSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgODYgPT09IHJvd1N0YXRlXG4gICAgICAgICAgICAgICAgPyAoKHJvd1RhZyA9IHJvd1N0YXRlKSwgKHJvd1N0YXRlID0gMiksIGkrKylcbiAgICAgICAgICAgICAgICA6ICg2NCA8IHJvd1N0YXRlICYmIDkxID4gcm93U3RhdGUpIHx8XG4gICAgICAgICAgICAgICAgICAgIDM1ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgICAxMTQgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICAgIDEyMCA9PT0gcm93U3RhdGVcbiAgICAgICAgICAgICAgICAgID8gKChyb3dUYWcgPSByb3dTdGF0ZSksIChyb3dTdGF0ZSA9IDMpLCBpKyspXG4gICAgICAgICAgICAgICAgICA6ICgocm93VGFnID0gMCksIChyb3dTdGF0ZSA9IDMpKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIGxhc3RJZHggPSBjaHVua1tpKytdO1xuICAgICAgICAgICAgICA0NCA9PT0gbGFzdElkeFxuICAgICAgICAgICAgICAgID8gKHJvd1N0YXRlID0gNClcbiAgICAgICAgICAgICAgICA6IChyb3dMZW5ndGggPVxuICAgICAgICAgICAgICAgICAgICAocm93TGVuZ3RoIDw8IDQpIHxcbiAgICAgICAgICAgICAgICAgICAgKDk2IDwgbGFzdElkeCA/IGxhc3RJZHggLSA4NyA6IGxhc3RJZHggLSA0OCkpO1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgbGFzdElkeCA9IGNodW5rLmluZGV4T2YoMTAsIGkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgKGxhc3RJZHggPSBpICsgcm93TGVuZ3RoKSxcbiAgICAgICAgICAgICAgICBsYXN0SWR4ID4gY2h1bmsubGVuZ3RoICYmIChsYXN0SWR4ID0gLTEpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB2YXIgb2Zmc2V0ID0gY2h1bmsuYnl0ZU9mZnNldCArIGk7XG4gICAgICAgICAgaWYgKC0xIDwgbGFzdElkeClcbiAgICAgICAgICAgIChyb3dMZW5ndGggPSBuZXcgVWludDhBcnJheShjaHVuay5idWZmZXIsIG9mZnNldCwgbGFzdElkeCAtIGkpKSxcbiAgICAgICAgICAgICAgcHJvY2Vzc0Z1bGxCaW5hcnlSb3coXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgd2Vha1Jlc3BvbnNlLFxuICAgICAgICAgICAgICAgIHJvd1RhZyxcbiAgICAgICAgICAgICAgICBidWZmZXIsXG4gICAgICAgICAgICAgICAgcm93TGVuZ3RoXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIChpID0gbGFzdElkeCksXG4gICAgICAgICAgICAgIDMgPT09IHJvd1N0YXRlICYmIGkrKyxcbiAgICAgICAgICAgICAgKHJvd0xlbmd0aCA9IHdlYWtSZXNwb25zZSA9IHJvd1RhZyA9IHJvd1N0YXRlID0gMCksXG4gICAgICAgICAgICAgIChidWZmZXIubGVuZ3RoID0gMCk7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjaHVuayA9IG5ldyBVaW50OEFycmF5KGNodW5rLmJ1ZmZlciwgb2Zmc2V0LCBjaHVuay5ieXRlTGVuZ3RoIC0gaSk7XG4gICAgICAgICAgICBidWZmZXIucHVzaChjaHVuayk7XG4gICAgICAgICAgICByb3dMZW5ndGggLT0gY2h1bmsuYnl0ZUxlbmd0aDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdHJlYW1TdGF0ZS5fcm93U3RhdGUgPSByb3dTdGF0ZTtcbiAgICAgICAgc3RyZWFtU3RhdGUuX3Jvd0lEID0gd2Vha1Jlc3BvbnNlO1xuICAgICAgICBzdHJlYW1TdGF0ZS5fcm93VGFnID0gcm93VGFnO1xuICAgICAgICBzdHJlYW1TdGF0ZS5fcm93TGVuZ3RoID0gcm93TGVuZ3RoO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGcm9tSlNPTkNhbGxiYWNrKHJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB2YWx1ZSlcbiAgICAgICAgICByZXR1cm4gcGFyc2VNb2RlbFN0cmluZyhyZXNwb25zZSwgdGhpcywga2V5LCB2YWx1ZSk7XG4gICAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdmFsdWUgJiYgbnVsbCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICBpZiAodmFsdWVbMF0gPT09IFJFQUNUX0VMRU1FTlRfVFlQRSlcbiAgICAgICAgICAgIGI6IHtcbiAgICAgICAgICAgICAgdmFyIG93bmVyID0gdmFsdWVbNF07XG4gICAgICAgICAgICAgIGtleSA9IHZhbHVlWzVdO1xuICAgICAgICAgICAgICB2YXIgdmFsaWRhdGVkID0gdmFsdWVbNl07XG4gICAgICAgICAgICAgIHZhbHVlID0ge1xuICAgICAgICAgICAgICAgICQkdHlwZW9mOiBSRUFDVF9FTEVNRU5UX1RZUEUsXG4gICAgICAgICAgICAgICAgdHlwZTogdmFsdWVbMV0sXG4gICAgICAgICAgICAgICAga2V5OiB2YWx1ZVsyXSxcbiAgICAgICAgICAgICAgICBwcm9wczogdmFsdWVbM10sXG4gICAgICAgICAgICAgICAgX293bmVyOiB2b2lkIDAgPT09IG93bmVyID8gbnVsbCA6IG93bmVyXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgXCJyZWZcIiwge1xuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICAgICAgICAgIGdldDogbnVsbFJlZkdldHRlclxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdmFsdWUuX3N0b3JlID0ge307XG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZS5fc3RvcmUsIFwidmFsaWRhdGVkXCIsIHtcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICAgICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsaWRhdGVkXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsdWUsIFwiX2RlYnVnSW5mb1wiLCB7XG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgICAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWx1ZSwgXCJfZGVidWdTdGFja1wiLCB7XG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZvaWQgMCA9PT0ga2V5ID8gbnVsbCA6IGtleVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHZhbHVlLCBcIl9kZWJ1Z1Rhc2tcIiwge1xuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgICAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gaW5pdGlhbGl6aW5nSGFuZGxlcikge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRlZCA9IGluaXRpYWxpemluZ0hhbmRsZXI7XG4gICAgICAgICAgICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlciA9IHZhbGlkYXRlZC5wYXJlbnQ7XG4gICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRlZC5lcnJvcmVkKSB7XG4gICAgICAgICAgICAgICAgICBrZXkgPSBuZXcgUmVhY3RQcm9taXNlKFwicmVqZWN0ZWRcIiwgbnVsbCwgdmFsaWRhdGVkLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVFbGVtZW50KHJlc3BvbnNlLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB2YWxpZGF0ZWQgPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh2YWx1ZS50eXBlKSB8fCBcIlwiLFxuICAgICAgICAgICAgICAgICAgICBvd25lcjogdmFsdWUuX293bmVyXG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgdmFsaWRhdGVkLmRlYnVnU3RhY2sgPSB2YWx1ZS5fZGVidWdTdGFjaztcbiAgICAgICAgICAgICAgICAgIHN1cHBvcnRzQ3JlYXRlVGFzayAmJlxuICAgICAgICAgICAgICAgICAgICAodmFsaWRhdGVkLmRlYnVnVGFzayA9IHZhbHVlLl9kZWJ1Z1Rhc2spO1xuICAgICAgICAgICAgICAgICAga2V5Ll9kZWJ1Z0luZm8gPSBbdmFsaWRhdGVkXTtcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gY3JlYXRlTGF6eUNodW5rV3JhcHBlcihrZXkpO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKDAgPCB2YWxpZGF0ZWQuZGVwcykge1xuICAgICAgICAgICAgICAgICAga2V5ID0gbmV3IFJlYWN0UHJvbWlzZShcImJsb2NrZWRcIiwgbnVsbCwgbnVsbCk7XG4gICAgICAgICAgICAgICAgICB2YWxpZGF0ZWQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgIHZhbGlkYXRlZC5jaHVuayA9IGtleTtcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gaW5pdGlhbGl6ZUVsZW1lbnQuYmluZChudWxsLCByZXNwb25zZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAga2V5LnRoZW4odmFsdWUsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIHZhbHVlID0gY3JlYXRlTGF6eUNodW5rV3JhcHBlcihrZXkpO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaW5pdGlhbGl6ZUVsZW1lbnQocmVzcG9uc2UsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2xvc2Uod2Vha1Jlc3BvbnNlKSB7XG4gICAgICByZXBvcnRHbG9iYWxFcnJvcih3ZWFrUmVzcG9uc2UsIEVycm9yKFwiQ29ubmVjdGlvbiBjbG9zZWQuXCIpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm9TZXJ2ZXJDYWxsJDEoKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgXCJTZXJ2ZXIgRnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgZHVyaW5nIGluaXRpYWwgcmVuZGVyLiBUaGlzIHdvdWxkIGNyZWF0ZSBhIGZldGNoIHdhdGVyZmFsbC4gVHJ5IHRvIHVzZSBhIFNlcnZlciBDb21wb25lbnQgdG8gcGFzcyBkYXRhIHRvIENsaWVudCBDb21wb25lbnRzIGluc3RlYWQuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVJlc3BvbnNlRnJvbU9wdGlvbnMob3B0aW9ucykge1xuICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZUluc3RhbmNlKFxuICAgICAgICBvcHRpb25zLnNlcnZlckNvbnN1bWVyTWFuaWZlc3QubW9kdWxlTWFwLFxuICAgICAgICBvcHRpb25zLnNlcnZlckNvbnN1bWVyTWFuaWZlc3Quc2VydmVyTW9kdWxlTWFwLFxuICAgICAgICBvcHRpb25zLnNlcnZlckNvbnN1bWVyTWFuaWZlc3QubW9kdWxlTG9hZGluZyxcbiAgICAgICAgbm9TZXJ2ZXJDYWxsJDEsXG4gICAgICAgIG9wdGlvbnMuZW5jb2RlRm9ybUFjdGlvbixcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMubm9uY2UgPyBvcHRpb25zLm5vbmNlIDogdm9pZCAwLFxuICAgICAgICBvcHRpb25zICYmIG9wdGlvbnMudGVtcG9yYXJ5UmVmZXJlbmNlc1xuICAgICAgICAgID8gb3B0aW9ucy50ZW1wb3JhcnlSZWZlcmVuY2VzXG4gICAgICAgICAgOiB2b2lkIDAsXG4gICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5maW5kU291cmNlTWFwVVJMID8gb3B0aW9ucy5maW5kU291cmNlTWFwVVJMIDogdm9pZCAwLFxuICAgICAgICBvcHRpb25zID8gITAgPT09IG9wdGlvbnMucmVwbGF5Q29uc29sZUxvZ3MgOiAhMSxcbiAgICAgICAgb3B0aW9ucyAmJiBvcHRpb25zLmVudmlyb25tZW50TmFtZSA/IG9wdGlvbnMuZW52aXJvbm1lbnROYW1lIDogdm9pZCAwLFxuICAgICAgICB2b2lkIDBcbiAgICAgICkuX3dlYWtSZXNwb25zZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhcnRSZWFkaW5nRnJvbVN0cmVhbShyZXNwb25zZSwgc3RyZWFtKSB7XG4gICAgICBmdW5jdGlvbiBwcm9ncmVzcyhfcmVmKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IF9yZWYudmFsdWU7XG4gICAgICAgIGlmIChfcmVmLmRvbmUpIGNsb3NlKHJlc3BvbnNlKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBwcm9jZXNzQmluYXJ5Q2h1bmsocmVzcG9uc2UsIHN0cmVhbVN0YXRlLCB2YWx1ZSksXG4gICAgICAgICAgICByZWFkZXIucmVhZCgpLnRoZW4ocHJvZ3Jlc3MpLmNhdGNoKGVycm9yKVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBlcnJvcihlKSB7XG4gICAgICAgIHJlcG9ydEdsb2JhbEVycm9yKHJlc3BvbnNlLCBlKTtcbiAgICAgIH1cbiAgICAgIHZhciBzdHJlYW1TdGF0ZSA9IGNyZWF0ZVN0cmVhbVN0YXRlKCksXG4gICAgICAgIHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgICAgIHJlYWRlci5yZWFkKCkudGhlbihwcm9ncmVzcykuY2F0Y2goZXJyb3IpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub1NlcnZlckNhbGwoKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgXCJTZXJ2ZXIgRnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgZHVyaW5nIGluaXRpYWwgcmVuZGVyLiBUaGlzIHdvdWxkIGNyZWF0ZSBhIGZldGNoIHdhdGVyZmFsbC4gVHJ5IHRvIHVzZSBhIFNlcnZlciBDb21wb25lbnQgdG8gcGFzcyBkYXRhIHRvIENsaWVudCBDb21wb25lbnRzIGluc3RlYWQuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHZhciB1dGlsID0gcmVxdWlyZShcInV0aWxcIiksXG4gICAgICBSZWFjdERPTSA9IHJlcXVpcmUoXCJyZWFjdC1kb21cIiksXG4gICAgICBSZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKSxcbiAgICAgIGRlY29kZXJPcHRpb25zID0geyBzdHJlYW06ICEwIH0sXG4gICAgICBiaW5kJDEgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZCxcbiAgICAgIGNodW5rQ2FjaGUgPSBuZXcgTWFwKCksXG4gICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscyA9XG4gICAgICAgIFJlYWN0RE9NLl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxcbiAgICAgIFJFQUNUX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKSxcbiAgICAgIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxcbiAgICAgIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksXG4gICAgICBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLFxuICAgICAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSxcbiAgICAgIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIiksXG4gICAgICBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxcbiAgICAgIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksXG4gICAgICBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxcbiAgICAgIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpLFxuICAgICAgUkVBQ1RfQUNUSVZJVFlfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5hY3Rpdml0eVwiKSxcbiAgICAgIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvcixcbiAgICAgIEFTWU5DX0lURVJBVE9SID0gU3ltYm9sLmFzeW5jSXRlcmF0b3IsXG4gICAgICBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksXG4gICAgICBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZixcbiAgICAgIGpzeFByb3BzUGFyZW50cyA9IG5ldyBXZWFrTWFwKCksXG4gICAgICBqc3hDaGlsZHJlblBhcmVudHMgPSBuZXcgV2Vha01hcCgpLFxuICAgICAgQ0xJRU5UX1JFRkVSRU5DRV9UQUcgPSBTeW1ib2wuZm9yKFwicmVhY3QuY2xpZW50LnJlZmVyZW5jZVwiKSxcbiAgICAgIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGUsXG4gICAgICBrbm93blNlcnZlclJlZmVyZW5jZXMgPSBuZXcgV2Vha01hcCgpLFxuICAgICAgYm91bmRDYWNoZSA9IG5ldyBXZWFrTWFwKCksXG4gICAgICBmYWtlU2VydmVyRnVuY3Rpb25JZHggPSAwLFxuICAgICAgRnVuY3Rpb25CaW5kID0gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQsXG4gICAgICBBcnJheVNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLFxuICAgICAgdjhGcmFtZVJlZ0V4cCA9XG4gICAgICAgIC9eIHszfSBhdCAoPzooLispIFxcKCguKyk6KFxcZCspOihcXGQrKVxcKXwoPzphc3luYyApPyguKyk6KFxcZCspOihcXGQrKSkkLyxcbiAgICAgIGpzY1NwaWRlck1vbmtleUZyYW1lUmVnRXhwID0gLyg/OiguKilAKT8oLiopOihcXGQrKTooXFxkKykvLFxuICAgICAgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpLFxuICAgICAgcHJlZml4LFxuICAgICAgc3VmZml4O1xuICAgIG5ldyAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgV2Vha01hcCA/IFdlYWtNYXAgOiBNYXApKCk7XG4gICAgdmFyIFJlYWN0U2hhcmVkSW50ZXJhbHNTZXJ2ZXIgPVxuICAgICAgICBSZWFjdC5fX1NFUlZFUl9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsXG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscyA9XG4gICAgICAgIFJlYWN0Ll9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSB8fFxuICAgICAgICBSZWFjdFNoYXJlZEludGVyYWxzU2VydmVyO1xuICAgIFJlYWN0UHJvbWlzZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFByb21pc2UucHJvdG90eXBlKTtcbiAgICBSZWFjdFByb21pc2UucHJvdG90eXBlLnRoZW4gPSBmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgXCJyZXNvbHZlZF9tb2RlbFwiOlxuICAgICAgICAgIGluaXRpYWxpemVNb2RlbENodW5rKHRoaXMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmVzb2x2ZWRfbW9kdWxlXCI6XG4gICAgICAgICAgaW5pdGlhbGl6ZU1vZHVsZUNodW5rKHRoaXMpO1xuICAgICAgfVxuICAgICAgc3dpdGNoICh0aGlzLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcmVzb2x2ZSAmJiByZXNvbHZlKHRoaXMudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicGVuZGluZ1wiOlxuICAgICAgICBjYXNlIFwiYmxvY2tlZFwiOlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlc29sdmUgJiZcbiAgICAgICAgICAgIChudWxsID09PSB0aGlzLnZhbHVlICYmICh0aGlzLnZhbHVlID0gW10pLFxuICAgICAgICAgICAgdGhpcy52YWx1ZS5wdXNoKHJlc29sdmUpKTtcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZWplY3QgJiZcbiAgICAgICAgICAgIChudWxsID09PSB0aGlzLnJlYXNvbiAmJiAodGhpcy5yZWFzb24gPSBbXSksXG4gICAgICAgICAgICB0aGlzLnJlYXNvbi5wdXNoKHJlamVjdCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaGFsdGVkXCI6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcmVqZWN0ICYmIHJlamVjdCh0aGlzLnJlYXNvbik7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgZGVidWdDaGFubmVsUmVnaXN0cnkgPVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBGaW5hbGl6YXRpb25SZWdpc3RyeVxuICAgICAgICAgID8gbmV3IEZpbmFsaXphdGlvblJlZ2lzdHJ5KGNsZWFudXBEZWJ1Z0NoYW5uZWwpXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgaW5pdGlhbGl6aW5nSGFuZGxlciA9IG51bGwsXG4gICAgICBzdXBwb3J0c0NyZWF0ZVRhc2sgPSAhIWNvbnNvbGUuY3JlYXRlVGFzayxcbiAgICAgIGZha2VGdW5jdGlvbkNhY2hlID0gbmV3IE1hcCgpLFxuICAgICAgZmFrZUZ1bmN0aW9uSWR4ID0gMCxcbiAgICAgIGNyZWF0ZUZha2VKU1hDYWxsU3RhY2sgPSB7XG4gICAgICAgIHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZTogZnVuY3Rpb24gKHJlc3BvbnNlLCBzdGFjaywgZW52aXJvbm1lbnROYW1lKSB7XG4gICAgICAgICAgcmV0dXJuIGJ1aWxkRmFrZUNhbGxTdGFjayhcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgICBlbnZpcm9ubWVudE5hbWUsXG4gICAgICAgICAgICAhMSxcbiAgICAgICAgICAgIGZha2VKU1hDYWxsU2l0ZVxuICAgICAgICAgICkoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNyZWF0ZUZha2VKU1hDYWxsU3RhY2tJbkRFViA9XG4gICAgICAgIGNyZWF0ZUZha2VKU1hDYWxsU3RhY2sucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoXG4gICAgICAgICAgY3JlYXRlRmFrZUpTWENhbGxTdGFja1xuICAgICAgICApLFxuICAgICAgY3VycmVudE93bmVySW5ERVYgPSBudWxsLFxuICAgICAgcmVwbGF5Q29uc29sZVdpdGhDYWxsU3RhY2sgPSB7XG4gICAgICAgIHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZTogZnVuY3Rpb24gKFxuICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgIG1ldGhvZE5hbWUsXG4gICAgICAgICAgc3RhY2tUcmFjZSxcbiAgICAgICAgICBvd25lcixcbiAgICAgICAgICBlbnYsXG4gICAgICAgICAgYXJnc1xuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgcHJldlN0YWNrID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuZ2V0Q3VycmVudFN0YWNrO1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmdldEN1cnJlbnRTdGFjayA9IGdldEN1cnJlbnRTdGFja0luREVWO1xuICAgICAgICAgIGN1cnJlbnRPd25lckluREVWID0gbnVsbCA9PT0gb3duZXIgPyByZXNwb25zZS5fZGVidWdSb290T3duZXIgOiBvd25lcjtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYToge1xuICAgICAgICAgICAgICB2YXIgb2Zmc2V0ID0gMDtcbiAgICAgICAgICAgICAgc3dpdGNoIChtZXRob2ROYW1lKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRpclwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJkaXJ4bWxcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiZ3JvdXBFbmRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwidGFibGVcIjpcbiAgICAgICAgICAgICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBiaW5kJDEuYXBwbHkoXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGVbbWV0aG9kTmFtZV0sXG4gICAgICAgICAgICAgICAgICAgIFtjb25zb2xlXS5jb25jYXQoYXJncylcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJhc3NlcnRcIjpcbiAgICAgICAgICAgICAgICAgIG9mZnNldCA9IDE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIG5ld0FyZ3MgPSBhcmdzLnNsaWNlKDApO1xuICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgbmV3QXJnc1tvZmZzZXRdXG4gICAgICAgICAgICAgICAgPyBuZXdBcmdzLnNwbGljZShcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgICAgICBcIlxcdTAwMWJbMG1cXHUwMDFiWzdtJWMlc1xcdTAwMWJbMG0lYyBcIiArIG5ld0FyZ3Nbb2Zmc2V0XSxcbiAgICAgICAgICAgICAgICAgICAgXCJiYWNrZ3JvdW5kOiAjZTZlNmU2O2JhY2tncm91bmQ6IGxpZ2h0LWRhcmsocmdiYSgwLDAsMCwwLjEpLCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpKTtjb2xvcjogIzAwMDAwMDtjb2xvcjogbGlnaHQtZGFyaygjMDAwMDAwLCAjZmZmZmZmKTtib3JkZXItcmFkaXVzOiAycHhcIixcbiAgICAgICAgICAgICAgICAgICAgXCIgXCIgKyBlbnYgKyBcIiBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogbmV3QXJncy5zcGxpY2UoXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgXCJcXHUwMDFiWzBtXFx1MDAxYls3bSVjJXNcXHUwMDFiWzBtJWMgXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFja2dyb3VuZDogI2U2ZTZlNjtiYWNrZ3JvdW5kOiBsaWdodC1kYXJrKHJnYmEoMCwwLDAsMC4xKSwgcmdiYSgyNTUsMjU1LDI1NSwwLjI1KSk7Y29sb3I6ICMwMDAwMDA7Y29sb3I6IGxpZ2h0LWRhcmsoIzAwMDAwMCwgI2ZmZmZmZik7Ym9yZGVyLXJhZGl1czogMnB4XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiIFwiICsgZW52ICsgXCIgXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIG5ld0FyZ3MudW5zaGlmdChjb25zb2xlKTtcbiAgICAgICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gYmluZCQxLmFwcGx5KFxuICAgICAgICAgICAgICAgIGNvbnNvbGVbbWV0aG9kTmFtZV0sXG4gICAgICAgICAgICAgICAgbmV3QXJnc1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGNhbGxTdGFjayA9IGJ1aWxkRmFrZUNhbGxTdGFjayhcbiAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgIHN0YWNrVHJhY2UsXG4gICAgICAgICAgICAgIGVudixcbiAgICAgICAgICAgICAgITEsXG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChudWxsICE9IG93bmVyKSB7XG4gICAgICAgICAgICAgIHZhciB0YXNrID0gaW5pdGlhbGl6ZUZha2VUYXNrKHJlc3BvbnNlLCBvd25lcik7XG4gICAgICAgICAgICAgIGluaXRpYWxpemVGYWtlU3RhY2socmVzcG9uc2UsIG93bmVyKTtcbiAgICAgICAgICAgICAgaWYgKG51bGwgIT09IHRhc2spIHtcbiAgICAgICAgICAgICAgICB0YXNrLnJ1bihjYWxsU3RhY2spO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIHJvb3RUYXNrID0gZ2V0Um9vdFRhc2socmVzcG9uc2UsIGVudik7XG4gICAgICAgICAgICBudWxsICE9IHJvb3RUYXNrID8gcm9vdFRhc2sucnVuKGNhbGxTdGFjaykgOiBjYWxsU3RhY2soKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgKGN1cnJlbnRPd25lckluREVWID0gbnVsbCksXG4gICAgICAgICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy5nZXRDdXJyZW50U3RhY2sgPSBwcmV2U3RhY2spO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJlcGxheUNvbnNvbGVXaXRoQ2FsbFN0YWNrSW5ERVYgPVxuICAgICAgICByZXBsYXlDb25zb2xlV2l0aENhbGxTdGFjay5yZWFjdF9zdGFja19ib3R0b21fZnJhbWUuYmluZChcbiAgICAgICAgICByZXBsYXlDb25zb2xlV2l0aENhbGxTdGFja1xuICAgICAgICApO1xuICAgIGV4cG9ydHMuY3JlYXRlRnJvbUZldGNoID0gZnVuY3Rpb24gKHByb21pc2VGb3JSZXNwb25zZSwgb3B0aW9ucykge1xuICAgICAgdmFyIHJlc3BvbnNlID0gY3JlYXRlUmVzcG9uc2VGcm9tT3B0aW9ucyhvcHRpb25zKTtcbiAgICAgIHByb21pc2VGb3JSZXNwb25zZS50aGVuKFxuICAgICAgICBmdW5jdGlvbiAocikge1xuICAgICAgICAgIHN0YXJ0UmVhZGluZ0Zyb21TdHJlYW0ocmVzcG9uc2UsIHIuYm9keSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgcmVwb3J0R2xvYmFsRXJyb3IocmVzcG9uc2UsIGUpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIGdldFJvb3QocmVzcG9uc2UpO1xuICAgIH07XG4gICAgZXhwb3J0cy5jcmVhdGVGcm9tTm9kZVN0cmVhbSA9IGZ1bmN0aW9uIChcbiAgICAgIHN0cmVhbSxcbiAgICAgIHNlcnZlckNvbnN1bWVyTWFuaWZlc3QsXG4gICAgICBvcHRpb25zXG4gICAgKSB7XG4gICAgICB2YXIgcmVzcG9uc2UkanNjb21wJDAgPSBuZXcgUmVzcG9uc2VJbnN0YW5jZShcbiAgICAgICAgICBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0Lm1vZHVsZU1hcCxcbiAgICAgICAgICBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0LnNlcnZlck1vZHVsZU1hcCxcbiAgICAgICAgICBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0Lm1vZHVsZUxvYWRpbmcsXG4gICAgICAgICAgbm9TZXJ2ZXJDYWxsLFxuICAgICAgICAgIG9wdGlvbnMgPyBvcHRpb25zLmVuY29kZUZvcm1BY3Rpb24gOiB2b2lkIDAsXG4gICAgICAgICAgb3B0aW9ucyAmJiBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5ub25jZSA/IG9wdGlvbnMubm9uY2UgOiB2b2lkIDAsXG4gICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5maW5kU291cmNlTWFwVVJMXG4gICAgICAgICAgICA/IG9wdGlvbnMuZmluZFNvdXJjZU1hcFVSTFxuICAgICAgICAgICAgOiB2b2lkIDAsXG4gICAgICAgICAgb3B0aW9ucyA/ICEwID09PSBvcHRpb25zLnJlcGxheUNvbnNvbGVMb2dzIDogITEsXG4gICAgICAgICAgb3B0aW9ucyAmJiBvcHRpb25zLmVudmlyb25tZW50TmFtZSA/IG9wdGlvbnMuZW52aXJvbm1lbnROYW1lIDogdm9pZCAwLFxuICAgICAgICAgIHZvaWQgMFxuICAgICAgICApLl93ZWFrUmVzcG9uc2UsXG4gICAgICAgIHN0cmVhbVN0YXRlID0gY3JlYXRlU3RyZWFtU3RhdGUoKTtcbiAgICAgIHN0cmVhbS5vbihcImRhdGFcIiwgZnVuY3Rpb24gKGNodW5rKSB7XG4gICAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgY2h1bmspIHtcbiAgICAgICAgICBpZiAodm9pZCAwICE9PSByZXNwb25zZSRqc2NvbXAkMC53ZWFrLmRlcmVmKCkpIHtcbiAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHVud3JhcFdlYWtSZXNwb25zZShyZXNwb25zZSRqc2NvbXAkMCksXG4gICAgICAgICAgICAgICAgaSA9IDAsXG4gICAgICAgICAgICAgICAgcm93U3RhdGUgPSBzdHJlYW1TdGF0ZS5fcm93U3RhdGUsXG4gICAgICAgICAgICAgICAgcm93SUQgPSBzdHJlYW1TdGF0ZS5fcm93SUQsXG4gICAgICAgICAgICAgICAgcm93VGFnID0gc3RyZWFtU3RhdGUuX3Jvd1RhZyxcbiAgICAgICAgICAgICAgICByb3dMZW5ndGggPSBzdHJlYW1TdGF0ZS5fcm93TGVuZ3RoLFxuICAgICAgICAgICAgICAgIGJ1ZmZlciA9IHN0cmVhbVN0YXRlLl9idWZmZXIsXG4gICAgICAgICAgICAgICAgY2h1bmtMZW5ndGggPSBjaHVuay5sZW5ndGg7XG4gICAgICAgICAgICAgIGkgPCBjaHVua0xlbmd0aDtcblxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHZhciBsYXN0SWR4ID0gLTE7XG4gICAgICAgICAgICAgIHN3aXRjaCAocm93U3RhdGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICBsYXN0SWR4ID0gY2h1bmsuY2hhckNvZGVBdChpKyspO1xuICAgICAgICAgICAgICAgICAgNTggPT09IGxhc3RJZHhcbiAgICAgICAgICAgICAgICAgICAgPyAocm93U3RhdGUgPSAxKVxuICAgICAgICAgICAgICAgICAgICA6IChyb3dJRCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAocm93SUQgPDwgNCkgfFxuICAgICAgICAgICAgICAgICAgICAgICAgKDk2IDwgbGFzdElkeCA/IGxhc3RJZHggLSA4NyA6IGxhc3RJZHggLSA0OCkpO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgcm93U3RhdGUgPSBjaHVuay5jaGFyQ29kZUF0KGkpO1xuICAgICAgICAgICAgICAgICAgODQgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICA2NSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDc5ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgMTExID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgODUgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICA4MyA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDExNSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDc2ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgMTA4ID09PSByb3dTdGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgNzEgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICAxMDMgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICA3NyA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDEwOSA9PT0gcm93U3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIDg2ID09PSByb3dTdGF0ZVxuICAgICAgICAgICAgICAgICAgICA/ICgocm93VGFnID0gcm93U3RhdGUpLCAocm93U3RhdGUgPSAyKSwgaSsrKVxuICAgICAgICAgICAgICAgICAgICA6ICg2NCA8IHJvd1N0YXRlICYmIDkxID4gcm93U3RhdGUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAxMTQgPT09IHJvd1N0YXRlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAxMjAgPT09IHJvd1N0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgPyAoKHJvd1RhZyA9IHJvd1N0YXRlKSwgKHJvd1N0YXRlID0gMyksIGkrKylcbiAgICAgICAgICAgICAgICAgICAgICA6ICgocm93VGFnID0gMCksIChyb3dTdGF0ZSA9IDMpKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgIGxhc3RJZHggPSBjaHVuay5jaGFyQ29kZUF0KGkrKyk7XG4gICAgICAgICAgICAgICAgICA0NCA9PT0gbGFzdElkeFxuICAgICAgICAgICAgICAgICAgICA/IChyb3dTdGF0ZSA9IDQpXG4gICAgICAgICAgICAgICAgICAgIDogKHJvd0xlbmd0aCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAocm93TGVuZ3RoIDw8IDQpIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICg5NiA8IGxhc3RJZHggPyBsYXN0SWR4IC0gODcgOiBsYXN0SWR4IC0gNDgpKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgIGxhc3RJZHggPSBjaHVuay5pbmRleE9mKFwiXFxuXCIsIGkpO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgaWYgKDg0ICE9PSByb3dUYWcpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIFwiQmluYXJ5IFJTQyBjaHVua3MgY2Fubm90IGJlIGVuY29kZWQgYXMgc3RyaW5ncy4gVGhpcyBpcyBhIGJ1ZyBpbiB0aGUgd2lyaW5nIG9mIHRoZSBSZWFjdCBzdHJlYW1zLlwiXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBpZiAocm93TGVuZ3RoIDwgY2h1bmsubGVuZ3RoIHx8IGNodW5rLmxlbmd0aCA+IDMgKiByb3dMZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIFwiU3RyaW5nIGNodW5rcyBuZWVkIHRvIGJlIHBhc3NlZCBpbiB0aGVpciBvcmlnaW5hbCBzaGFwZS4gTm90IHNwbGl0IGludG8gc21hbGxlciBzdHJpbmcgY2h1bmtzLiBUaGlzIGlzIGEgYnVnIGluIHRoZSB3aXJpbmcgb2YgdGhlIFJlYWN0IHN0cmVhbXMuXCJcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGxhc3RJZHggPSBjaHVuay5sZW5ndGg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKC0xIDwgbGFzdElkeCkge1xuICAgICAgICAgICAgICAgIGlmICgwIDwgYnVmZmVyLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIlN0cmluZyBjaHVua3MgbmVlZCB0byBiZSBwYXNzZWQgaW4gdGhlaXIgb3JpZ2luYWwgc2hhcGUuIE5vdCBzcGxpdCBpbnRvIHNtYWxsZXIgc3RyaW5nIGNodW5rcy4gVGhpcyBpcyBhIGJ1ZyBpbiB0aGUgd2lyaW5nIG9mIHRoZSBSZWFjdCBzdHJlYW1zLlwiXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGkgPSBjaHVuay5zbGljZShpLCBsYXN0SWR4KTtcbiAgICAgICAgICAgICAgICBwcm9jZXNzRnVsbFN0cmluZ1JvdyhyZXNwb25zZSwgcm93SUQsIHJvd1RhZywgaSk7XG4gICAgICAgICAgICAgICAgaSA9IGxhc3RJZHg7XG4gICAgICAgICAgICAgICAgMyA9PT0gcm93U3RhdGUgJiYgaSsrO1xuICAgICAgICAgICAgICAgIHJvd0xlbmd0aCA9IHJvd0lEID0gcm93VGFnID0gcm93U3RhdGUgPSAwO1xuICAgICAgICAgICAgICAgIGJ1ZmZlci5sZW5ndGggPSAwO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNodW5rLmxlbmd0aCAhPT0gaSlcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiU3RyaW5nIGNodW5rcyBuZWVkIHRvIGJlIHBhc3NlZCBpbiB0aGVpciBvcmlnaW5hbCBzaGFwZS4gTm90IHNwbGl0IGludG8gc21hbGxlciBzdHJpbmcgY2h1bmtzLiBUaGlzIGlzIGEgYnVnIGluIHRoZSB3aXJpbmcgb2YgdGhlIFJlYWN0IHN0cmVhbXMuXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RyZWFtU3RhdGUuX3Jvd1N0YXRlID0gcm93U3RhdGU7XG4gICAgICAgICAgICBzdHJlYW1TdGF0ZS5fcm93SUQgPSByb3dJRDtcbiAgICAgICAgICAgIHN0cmVhbVN0YXRlLl9yb3dUYWcgPSByb3dUYWc7XG4gICAgICAgICAgICBzdHJlYW1TdGF0ZS5fcm93TGVuZ3RoID0gcm93TGVuZ3RoO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHByb2Nlc3NCaW5hcnlDaHVuayhyZXNwb25zZSRqc2NvbXAkMCwgc3RyZWFtU3RhdGUsIGNodW5rKTtcbiAgICAgIH0pO1xuICAgICAgc3RyZWFtLm9uKFwiZXJyb3JcIiwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgIHJlcG9ydEdsb2JhbEVycm9yKHJlc3BvbnNlJGpzY29tcCQwLCBlcnJvcik7XG4gICAgICB9KTtcbiAgICAgIHN0cmVhbS5vbihcImVuZFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBjbG9zZShyZXNwb25zZSRqc2NvbXAkMCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBnZXRSb290KHJlc3BvbnNlJGpzY29tcCQwKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtID0gZnVuY3Rpb24gKHN0cmVhbSwgb3B0aW9ucykge1xuICAgICAgb3B0aW9ucyA9IGNyZWF0ZVJlc3BvbnNlRnJvbU9wdGlvbnMob3B0aW9ucyk7XG4gICAgICBzdGFydFJlYWRpbmdGcm9tU3RyZWFtKG9wdGlvbnMsIHN0cmVhbSk7XG4gICAgICByZXR1cm4gZ2V0Um9vdChvcHRpb25zKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuY3JlYXRlU2VydmVyUmVmZXJlbmNlID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgICByZXR1cm4gY3JlYXRlU2VydmVyUmVmZXJlbmNlJDEoaWQsIG5vU2VydmVyQ2FsbCQxKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIG5ldyBNYXAoKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuZW5jb2RlUmVwbHkgPSBmdW5jdGlvbiAodmFsdWUsIG9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIHZhciBhYm9ydCA9IHByb2Nlc3NSZXBseShcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBcIlwiLFxuICAgICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy50ZW1wb3JhcnlSZWZlcmVuY2VzXG4gICAgICAgICAgICA/IG9wdGlvbnMudGVtcG9yYXJ5UmVmZXJlbmNlc1xuICAgICAgICAgICAgOiB2b2lkIDAsXG4gICAgICAgICAgcmVzb2x2ZSxcbiAgICAgICAgICByZWplY3RcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zaWduYWwpIHtcbiAgICAgICAgICB2YXIgc2lnbmFsID0gb3B0aW9ucy5zaWduYWw7XG4gICAgICAgICAgaWYgKHNpZ25hbC5hYm9ydGVkKSBhYm9ydChzaWduYWwucmVhc29uKTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhciBsaXN0ZW5lciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgYWJvcnQoc2lnbmFsLnJlYXNvbik7XG4gICAgICAgICAgICAgIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgbGlzdGVuZXIpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgbGlzdGVuZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcbiAgICBleHBvcnRzLnJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlID0gZnVuY3Rpb24gKFxuICAgICAgcmVmZXJlbmNlLFxuICAgICAgaWQsXG4gICAgICBlbmNvZGVGb3JtQWN0aW9uXG4gICAgKSB7XG4gICAgICByZWdpc3RlckJvdW5kU2VydmVyUmVmZXJlbmNlKHJlZmVyZW5jZSwgaWQsIG51bGwsIGVuY29kZUZvcm1BY3Rpb24pO1xuICAgICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgICB9O1xuICB9KSgpO1xuIl0sIm5hbWVzIjpbInJlc29sdmVDbGllbnRSZWZlcmVuY2UiLCJidW5kbGVyQ29uZmlnIiwibWV0YWRhdGEiLCJtb2R1bGVFeHBvcnRzIiwibmFtZSIsIkVycm9yIiwibGVuZ3RoIiwiaWQiLCJjaHVua3MiLCJyZXNvbHZlU2VydmVyUmVmZXJlbmNlIiwicmVzb2x2ZWRNb2R1bGVEYXRhIiwiaWR4IiwibGFzdEluZGV4T2YiLCJzbGljZSIsImFzeW5jIiwicmVxdWlyZUFzeW5jTW9kdWxlIiwicHJvbWlzZSIsImdsb2JhbFRoaXMiLCJfX25leHRfcmVxdWlyZV9fIiwidGhlbiIsInN0YXR1cyIsInZhbHVlIiwicmVhc29uIiwiaWdub3JlUmVqZWN0IiwicHJlbG9hZE1vZHVsZSIsInByb21pc2VzIiwiaSIsImNodW5rSWQiLCJlbnRyeSIsImNodW5rQ2FjaGUiLCJnZXQiLCJfX3dlYnBhY2tfY2h1bmtfbG9hZF9fIiwicHVzaCIsInJlc29sdmUiLCJzZXQiLCJiaW5kIiwiUHJvbWlzZSIsImFsbCIsInJlcXVpcmVNb2R1bGUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInByZXBhcmVEZXN0aW5hdGlvbldpdGhDaHVua3MiLCJtb2R1bGVMb2FkaW5nIiwibm9uY2UkanNjb21wJDAiLCJub25jZSIsIkpTQ29tcGlsZXJfdGVtcF9jb25zdCIsIlJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzIiwiZCIsIkpTQ29tcGlsZXJfdGVtcF9jb25zdCRqc2NvbXAkMCIsIlgiLCJKU0NvbXBpbGVyX3RlbXBfY29uc3QkanNjb21wJDEiLCJwcmVmaXgiLCJKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQiLCJjcm9zc09yaWdpbiIsImNhbGwiLCJnZXRJdGVyYXRvckZuIiwibWF5YmVJdGVyYWJsZSIsIk1BWUJFX0lURVJBVE9SX1NZTUJPTCIsImlzT2JqZWN0UHJvdG90eXBlIiwib2JqZWN0IiwiT2JqZWN0UHJvdG90eXBlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiZ2V0UHJvdG90eXBlT2YiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiaXNTaW1wbGVPYmplY3QiLCJuYW1lcyIsImRlc2NyaXB0b3IiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwib2JqZWN0TmFtZSIsInRvU3RyaW5nIiwiZGVzY3JpYmVLZXlGb3JFcnJvck1lc3NhZ2UiLCJrZXkiLCJlbmNvZGVkS2V5IiwiSlNPTiIsInN0cmluZ2lmeSIsImRlc2NyaWJlVmFsdWVGb3JFcnJvck1lc3NhZ2UiLCJpc0FycmF5SW1wbCIsIiQkdHlwZW9mIiwiQ0xJRU5UX1JFRkVSRU5DRV9UQUciLCJkaXNwbGF5TmFtZSIsIlN0cmluZyIsImRlc2NyaWJlRWxlbWVudFR5cGUiLCJ0eXBlIiwiUkVBQ1RfU1VTUEVOU0VfVFlQRSIsIlJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSIsIlJFQUNUX0ZPUldBUkRfUkVGX1RZUEUiLCJyZW5kZXIiLCJSRUFDVF9NRU1PX1RZUEUiLCJSRUFDVF9MQVpZX1RZUEUiLCJwYXlsb2FkIiwiX3BheWxvYWQiLCJfaW5pdCIsIngiLCJkZXNjcmliZU9iamVjdEZvckVycm9yTWVzc2FnZSIsIm9iamVjdE9yQXJyYXkiLCJleHBhbmRlZE5hbWUiLCJvYmpLaW5kIiwic3RhcnQiLCJqc3hDaGlsZHJlblBhcmVudHMiLCJoYXMiLCJSRUFDVF9FTEVNRU5UX1RZUEUiLCJqc3hQcm9wc1BhcmVudHMiLCJrZXlzIiwiX3ZhbHVlMiIsIl9zdWJzdHIyIiwicmVwZWF0Iiwic2VyaWFsaXplTnVtYmVyIiwibnVtYmVyIiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJJbmZpbml0eSIsInByb2Nlc3NSZXBseSIsInJvb3QiLCJmb3JtRmllbGRQcmVmaXgiLCJ0ZW1wb3JhcnlSZWZlcmVuY2VzIiwicmVqZWN0Iiwic2VyaWFsaXplVHlwZWRBcnJheSIsInRhZyIsInR5cGVkQXJyYXkiLCJCbG9iIiwiVWludDhBcnJheSIsImJ1ZmZlciIsImJ5dGVPZmZzZXQiLCJieXRlTGVuZ3RoIiwiYmxvYklkIiwibmV4dFBhcnRJZCIsImZvcm1EYXRhIiwiRm9ybURhdGEiLCJhcHBlbmQiLCJzZXJpYWxpemVCaW5hcnlSZWFkZXIiLCJyZWFkZXIiLCJwcm9ncmVzcyIsImRvbmUiLCJkYXRhIiwic3RyZWFtSWQiLCJwZW5kaW5nUGFydHMiLCJyZWFkIiwic2VyaWFsaXplUmVhZGVyIiwicGFydEpTT04iLCJyZXNvbHZlVG9KU09OIiwic2VyaWFsaXplUmVhZGFibGVTdHJlYW0iLCJzdHJlYW0iLCJiaW5hcnlSZWFkZXIiLCJnZXRSZWFkZXIiLCJtb2RlIiwic2VyaWFsaXplQXN5bmNJdGVyYWJsZSIsIml0ZXJhYmxlIiwiaXRlcmF0b3IiLCJfcGFydEpTT04iLCJuZXh0IiwieCQwIiwib3JpZ2luYWxWYWx1ZSIsIkRhdGUiLCJjb25zb2xlIiwiZXJyb3IiLCJpbmRleE9mIiwicGFyZW50UmVmZXJlbmNlIiwid3JpdHRlbk9iamVjdHMiLCJpbml0IiwibGF6eUlkIiwic2VyaWFsaXplTW9kZWwiLCJfbGF6eUlkIiwiX3BhcnRKU09OMiIsIl9kYXRhIiwicHJvbWlzZUlkIiwicGFydFZhbHVlIiwiX3BhcnRKU09OMyIsIm1vZGVsUm9vdCIsIl9kYXRhMyIsImZvckVhY2giLCJvcmlnaW5hbEtleSIsIk1hcCIsIkFycmF5IiwiZnJvbSIsIlNldCIsIkFycmF5QnVmZmVyIiwiSW50OEFycmF5IiwiVWludDhDbGFtcGVkQXJyYXkiLCJJbnQxNkFycmF5IiwiVWludDE2QXJyYXkiLCJJbnQzMkFycmF5IiwiVWludDMyQXJyYXkiLCJGbG9hdDMyQXJyYXkiLCJGbG9hdDY0QXJyYXkiLCJCaWdJbnQ2NEFycmF5IiwiQmlnVWludDY0QXJyYXkiLCJEYXRhVmlldyIsIlJlYWRhYmxlU3RyZWFtIiwiQVNZTkNfSVRFUkFUT1IiLCJSRUFDVF9DT05URVhUX1RZUEUiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJkZXNjcmlwdGlvbiIsImtub3duU2VydmVyUmVmZXJlbmNlcyIsImJvdW5kIiwibW9kZWwiLCJXZWFrTWFwIiwianNvbiIsImVuY29kZUZvcm1EYXRhIiwicmVmZXJlbmNlIiwidGhlbmFibGUiLCJyZXMiLCJyZWoiLCJib2R5IiwiZSIsImRlZmF1bHRFbmNvZGVGb3JtQWN0aW9uIiwiaWRlbnRpZmllclByZWZpeCIsInJlZmVyZW5jZUNsb3N1cmUiLCJib3VuZENhY2hlIiwicHJlZml4ZWREYXRhIiwibWV0aG9kIiwiZW5jVHlwZSIsImlzU2lnbmF0dXJlRXF1YWwiLCJyZWZlcmVuY2VJZCIsIm51bWJlck9mQm91bmRBcmdzIiwiYm91bmRQcm9taXNlIiwiYm91bmRBcmdzIiwiY3JlYXRlRmFrZVNlcnZlckZ1bmN0aW9uIiwiZmlsZW5hbWUiLCJzb3VyY2VNYXAiLCJsaW5lIiwiY29sIiwiZW52aXJvbm1lbnROYW1lIiwiaW5uZXJGdW5jdGlvbiIsImVuY29kZWROYW1lIiwic3RhcnRzV2l0aCIsImVuY29kZVVSSUNvbXBvbmVudCIsImVuY29kZVVSSSIsImZha2VTZXJ2ZXJGdW5jdGlvbklkeCIsImV2YWwiLCJyZWdpc3RlckJvdW5kU2VydmVyUmVmZXJlbmNlIiwiZW5jb2RlRm9ybUFjdGlvbiIsIm9yaWdpbmFsQmluZCIsImRlZmluZVByb3BlcnRpZXMiLCIkJEZPUk1fQUNUSU9OIiwiJCRJU19TSUdOQVRVUkVfRVFVQUwiLCJGdW5jdGlvbkJpbmQiLCJhcHBseSIsImFyZ3VtZW50cyIsIm5ld0ZuIiwiYXJncyIsIkFycmF5U2xpY2UiLCJjb25jYXQiLCJjcmVhdGVCb3VuZFNlcnZlclJlZmVyZW5jZSIsIm1ldGFEYXRhIiwiY2FsbFNlcnZlciIsImZpbmRTb3VyY2VNYXBVUkwiLCJhY3Rpb24iLCJsb2NhdGlvbiIsImZ1bmN0aW9uTmFtZSIsImVudiIsInBhcnNlU3RhY2tMb2NhdGlvbiIsInN0YWNrIiwiZW5kT2ZGaXJzdCIsImVuZE9mU2Vjb25kIiwidjhGcmFtZVJlZ0V4cCIsImV4ZWMiLCJqc2NTcGlkZXJNb25rZXlGcmFtZVJlZ0V4cCIsImNyZWF0ZVNlcnZlclJlZmVyZW5jZSQxIiwiZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlIiwiUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSIsIlJFQUNUX0ZSQUdNRU5UX1RZUEUiLCJSRUFDVF9QUk9GSUxFUl9UWVBFIiwiUkVBQ1RfU1RSSUNUX01PREVfVFlQRSIsIlJFQUNUX0FDVElWSVRZX1RZUEUiLCJSRUFDVF9QT1JUQUxfVFlQRSIsIlJFQUNUX0NPTlNVTUVSX1RZUEUiLCJfY29udGV4dCIsImlubmVyVHlwZSIsInByZXBhcmVTdGFja1RyYWNlIiwic3RydWN0dXJlZFN0YWNrVHJhY2UiLCJtZXNzYWdlIiwiUmVhY3RQcm9taXNlIiwiX2RlYnVnSW5mbyIsInVud3JhcFdlYWtSZXNwb25zZSIsIndlYWtSZXNwb25zZSIsIndlYWsiLCJkZXJlZiIsImNsZWFudXBEZWJ1Z0NoYW5uZWwiLCJkZWJ1Z0NoYW5uZWwiLCJyZWFkQ2h1bmsiLCJjaHVuayIsImluaXRpYWxpemVNb2RlbENodW5rIiwiaW5pdGlhbGl6ZU1vZHVsZUNodW5rIiwiZ2V0Um9vdCIsImdldENodW5rIiwiY3JlYXRlUGVuZGluZ0NodW5rIiwicmVzcG9uc2UiLCJfcGVuZGluZ0NodW5rcyIsIl93ZWFrUmVzcG9uc2UiLCJfcGVuZGluZ0luaXRpYWxSZW5kZXIiLCJjbGVhclRpbWVvdXQiLCJyZWxlYXNlUGVuZGluZ0NodW5rIiwic2V0VGltZW91dCIsImZsdXNoSW5pdGlhbFJlbmRlclBlcmZvcm1hbmNlIiwid2FrZUNodW5rIiwibGlzdGVuZXJzIiwibGlzdGVuZXIiLCJmdWxmaWxsUmVmZXJlbmNlIiwicmVqZWN0Q2h1bmsiLCJyZWplY3RSZWZlcmVuY2UiLCJyZXNvbHZlQmxvY2tlZEN5Y2xlIiwicmVzb2x2ZWRDaHVuayIsInJlZmVyZW5jZWRDaHVuayIsImhhbmRsZXIiLCJ3YWtlQ2h1bmtJZkluaXRpYWxpemVkIiwicmVzb2x2ZUxpc3RlbmVycyIsInJlamVjdExpc3RlbmVycyIsImN5Y2xpY0hhbmRsZXIiLCJzcGxpY2UiLCJ0cmlnZ2VyRXJyb3JPbkNodW5rIiwiY3JlYXRlUmVzb2x2ZWRJdGVyYXRvclJlc3VsdENodW5rIiwicmVzb2x2ZUl0ZXJhdG9yUmVzdWx0Q2h1bmsiLCJyZXNvbHZlTW9kZWxDaHVuayIsImVucXVldWVNb2RlbCIsInJlc29sdmVNb2R1bGVDaHVuayIsInByZXZIYW5kbGVyIiwiaW5pdGlhbGl6aW5nSGFuZGxlciIsInJlc29sdmVkTW9kZWwiLCJwYXJzZSIsIl9mcm9tSlNPTiIsImVycm9yZWQiLCJkZXBzIiwicmVwb3J0R2xvYmFsRXJyb3IiLCJfY2xvc2VkIiwiX2Nsb3NlZFJlYXNvbiIsIl9jaHVua3MiLCJfZGVidWdDaGFubmVsIiwibnVsbFJlZkdldHRlciIsImdldFRhc2tOYW1lIiwiaW5pdGlhbGl6ZUVsZW1lbnQiLCJlbGVtZW50IiwiX2RlYnVnU3RhY2siLCJvd25lciIsIl9vd25lciIsIl9kZWJ1Z1Jvb3RPd25lciIsIl9yb290RW52aXJvbm1lbnROYW1lIiwibm9ybWFsaXplZFN0YWNrVHJhY2UiLCJfZGVidWdSb290U3RhY2siLCJjcmVhdGVGYWtlSlNYQ2FsbFN0YWNrSW5ERVYiLCJzdXBwb3J0c0NyZWF0ZVRhc2siLCJjcmVhdGVUYXNrIiwiYnVpbGRGYWtlQ2FsbFN0YWNrIiwiaW5pdGlhbGl6ZUZha2VUYXNrIiwiX2RlYnVnUm9vdFRhc2siLCJydW4iLCJfZGVidWdUYXNrIiwiaW5pdGlhbGl6ZUZha2VTdGFjayIsImZyZWV6ZSIsInByb3BzIiwiY3JlYXRlTGF6eUNodW5rV3JhcHBlciIsImxhenlUeXBlIiwicGFyZW50T2JqZWN0IiwibWFwIiwicGF0aCIsImJsb2NrZWRWYWx1ZSIsImVycm9yZWRDb21wb25lbnQiLCJkZWJ1Z1N0YWNrIiwiZGVidWdUYXNrIiwid2FpdEZvclJlZmVyZW5jZSIsInBhcmVudCIsImxvYWRTZXJ2ZXJSZWZlcmVuY2UiLCJfc2VydmVyUmVmZXJlbmNlQ29uZmlnIiwiX2NhbGxTZXJ2ZXIiLCJfZW5jb2RlRm9ybUFjdGlvbiIsIl9kZWJ1Z0ZpbmRTb3VyY2VNYXBVUkwiLCJzZXJ2ZXJSZWZlcmVuY2UiLCJyZXNvbHZlZFZhbHVlIiwidW5zaGlmdCIsImdldE91dGxpbmVkTW9kZWwiLCJzcGxpdCIsInBhcnNlSW50IiwiZGVmaW5lUHJvcGVydHkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImNyZWF0ZU1hcCIsImNyZWF0ZVNldCIsImNyZWF0ZUJsb2IiLCJjcmVhdGVGb3JtRGF0YSIsImFwcGx5Q29uc3RydWN0b3IiLCJzZXRQcm90b3R5cGVPZiIsImRlZmluZUxhenlHZXR0ZXIiLCJleHRyYWN0SXRlcmF0b3IiLCJTeW1ib2wiLCJjcmVhdGVNb2RlbCIsInBhcnNlTW9kZWxTdHJpbmciLCJmb3IiLCJyZWYiLCJfdGVtcFJlZnMiLCJyZXNvbHZlRXJyb3JEZXYiLCJOYU4iLCJCaWdJbnQiLCJ0cmltIiwiX2lkMiIsIm1pc3NpbmdDYWxsIiwiUmVzcG9uc2VJbnN0YW5jZSIsInNlcnZlclJlZmVyZW5jZUNvbmZpZyIsInJlcGxheUNvbnNvbGUiLCJfYnVuZGxlckNvbmZpZyIsIl9tb2R1bGVMb2FkaW5nIiwiX25vbmNlIiwiX3N0cmluZ0RlY29kZXIiLCJ1dGlsIiwiVGV4dERlY29kZXIiLCJXZWFrUmVmIiwiUmVhY3RTaGFyZWRJbnRlcmFsc1NlcnZlciIsIkEiLCJnZXRPd25lciIsInRvTG93ZXJDYXNlIiwiX3JlcGxheUNvbnNvbGUiLCJkZWJ1Z0NoYW5uZWxSZWdpc3RyeSIsInJlZ2lzdGVyIiwiY3JlYXRlRnJvbUpTT05DYWxsYmFjayIsImNyZWF0ZVN0cmVhbVN0YXRlIiwiX3Jvd1N0YXRlIiwiX3Jvd0lEIiwiX3Jvd1RhZyIsIl9yb3dMZW5ndGgiLCJfYnVmZmVyIiwicmVzb2x2ZURlYnVnSGFsdCIsInJlc29sdmVNb2RlbCIsInJlc29sdmVUZXh0IiwidGV4dCIsImVucXVldWVWYWx1ZSIsInJlc29sdmVCdWZmZXIiLCJyZXNvbHZlTW9kdWxlIiwiY2xpZW50UmVmZXJlbmNlIiwiYmxvY2tlZENodW5rIiwicmVzb2x2ZVN0cmVhbSIsImNvbnRyb2xsZXIiLCJzdGFydFJlYWRhYmxlU3RyZWFtIiwiYyIsInByZXZpb3VzQmxvY2tlZENodW5rIiwiZW5xdWV1ZSIsInYiLCJfY2h1bmszIiwiY2xvc2UiLCJhc3luY0l0ZXJhdG9yIiwiY3JlYXRlSXRlcmF0b3IiLCJzdGFydEFzeW5jSXRlcmFibGUiLCJjbG9zZWQiLCJuZXh0V3JpdGVJbmRleCIsIm5leHRSZWFkSW5kZXgiLCJhcmciLCJzdG9wU3RyZWFtIiwicm93IiwiZXJyb3JJbmZvIiwiZ2V0Um9vdFRhc2siLCJyZXNvbHZlSGludCIsImNvZGUiLCJEIiwiQyIsImFzIiwiTCIsIm0iLCJTIiwiTSIsImNyZWF0ZUZha2VGdW5jdGlvbiIsImVuY2xvc2luZ0xpbmUiLCJlbmNsb3NpbmdDb2wiLCJmYWtlRnVuY3Rpb25JZHgiLCJmbiIsIl8iLCJ1c2VFbmNsb3NpbmdMaW5lIiwiaW5uZXJDYWxsIiwiZnJhbWUiLCJmcmFtZUtleSIsImpvaW4iLCJmYWtlRnVuY3Rpb25DYWNoZSIsImNoaWxkRW52aXJvbm1lbnROYW1lIiwicm9vdFRhc2siLCJkZWJ1Z0luZm8iLCJjYWNoZWRFbnRyeSIsIm93bmVyVGFzayIsImF3YWl0ZWQiLCJmYWtlSlNYQ2FsbFNpdGUiLCJkZWJ1Z0xvY2F0aW9uIiwicmVzb2x2ZURlYnVnSW5mbyIsImdldEN1cnJlbnRTdGFja0luREVWIiwiY3VycmVudE93bmVySW5ERVYiLCJpbmZvIiwib3duZXJTdGFjayIsInByZXZQcmVwYXJlU3RhY2tUcmFjZSIsIkpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMCIsIm1hdGNoIiwic3VmZml4IiwicmVzb2x2ZUNvbnNvbGVFbnRyeSIsInN0YWNrVHJhY2UiLCJyZXBsYXlDb25zb2xlV2l0aENhbGxTdGFja0luREVWIiwibWVyZ2VCdWZmZXIiLCJsYXN0Q2h1bmsiLCJsIiwiX2kzIiwicmVzb2x2ZVR5cGVkQXJyYXkiLCJjb25zdHJ1Y3RvciIsImJ5dGVzUGVyRWxlbWVudCIsInByb2Nlc3NGdWxsQmluYXJ5Um93Iiwic3RyaW5nRGVjb2RlciIsImRlY29kZSIsImRlY29kZXJPcHRpb25zIiwicHJvY2Vzc0Z1bGxTdHJpbmdSb3ciLCJkaWdlc3QiLCJwcm9jZXNzQmluYXJ5Q2h1bmsiLCJzdHJlYW1TdGF0ZSIsInJvd1N0YXRlIiwicm93VGFnIiwicm93TGVuZ3RoIiwiY2h1bmtMZW5ndGgiLCJsYXN0SWR4Iiwib2Zmc2V0IiwiYiIsInZhbGlkYXRlZCIsIl9zdG9yZSIsIm5vU2VydmVyQ2FsbCQxIiwiY3JlYXRlUmVzcG9uc2VGcm9tT3B0aW9ucyIsIm9wdGlvbnMiLCJzZXJ2ZXJDb25zdW1lck1hbmlmZXN0IiwibW9kdWxlTWFwIiwic2VydmVyTW9kdWxlTWFwIiwicmVwbGF5Q29uc29sZUxvZ3MiLCJzdGFydFJlYWRpbmdGcm9tU3RyZWFtIiwiX3JlZiIsImNhdGNoIiwibm9TZXJ2ZXJDYWxsIiwicmVxdWlyZSIsIlJlYWN0RE9NIiwiUmVhY3QiLCJiaW5kJDEiLCJGdW5jdGlvbiIsIl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSIsImlzQXJyYXkiLCJfX1NFUlZFUl9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUiLCJSZWFjdFNoYXJlZEludGVybmFscyIsIl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSIsImNyZWF0ZSIsIkZpbmFsaXphdGlvblJlZ2lzdHJ5IiwiY3JlYXRlRmFrZUpTWENhbGxTdGFjayIsInJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZSIsInJlcGxheUNvbnNvbGVXaXRoQ2FsbFN0YWNrIiwibWV0aG9kTmFtZSIsInByZXZTdGFjayIsImdldEN1cnJlbnRTdGFjayIsImEiLCJuZXdBcmdzIiwiY2FsbFN0YWNrIiwidGFzayIsImV4cG9ydHMiLCJjcmVhdGVGcm9tRmV0Y2giLCJwcm9taXNlRm9yUmVzcG9uc2UiLCJyIiwiY3JlYXRlRnJvbU5vZGVTdHJlYW0iLCJyZXNwb25zZSRqc2NvbXAkMCIsIm9uIiwicm93SUQiLCJjaGFyQ29kZUF0IiwiY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtIiwiY3JlYXRlU2VydmVyUmVmZXJlbmNlIiwiY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0IiwiZW5jb2RlUmVwbHkiLCJhYm9ydCIsInNpZ25hbCIsImFib3J0ZWQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlIl0sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js":
/*!*********************************************************************************!*\
!*** ./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js ***!
\*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-server-dom-webpack-client.node.development.js */ \"(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQubm9kZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixJQUFJLEtBQXFDLEVBQUUsRUFFMUMsQ0FBQztBQUNGLEVBQUUsaU9BQXFGO0FBQ3ZGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQubm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5ub2RlLnByb2R1Y3Rpb24uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5ub2RlLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/server-only/empty.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/compiled/server-only/empty.js ***!
\**************************************************************/
/***/ (() => {
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/string-hash/index.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/compiled/string-hash/index.js ***!
\**************************************************************/
/***/ ((module) => {
eval("(()=>{\"use strict\";var e={328:e=>{function hash(e){var r=5381,_=e.length;while(_){r=r*33^e.charCodeAt(--_)}return r>>>0}e.exports=hash}};var r={};function __nccwpck_require__(_){var a=r[_];if(a!==undefined){return a.exports}var t=r[_]={exports:{}};var i=true;try{e[_](t,t.exports,__nccwpck_require__);i=false}finally{if(i)delete r[_]}return t.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var _=__nccwpck_require__(328);module.exports=_})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmluZy1oYXNoL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBLE1BQU0sYUFBYSxPQUFPLFFBQVEsaUJBQWlCLHNCQUFzQixTQUFTLHlCQUF5QixhQUFhLGlCQUFpQixTQUFTLGdDQUFnQyxXQUFXLGtCQUFrQixpQkFBaUIsWUFBWSxZQUFZLFdBQVcsSUFBSSxzQ0FBc0MsUUFBUSxRQUFRLGlCQUFpQixpQkFBaUIsaUZBQWlGLCtCQUErQixpQkFBaUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RyaW5nLWhhc2gvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezMyODplPT57ZnVuY3Rpb24gaGFzaChlKXt2YXIgcj01MzgxLF89ZS5sZW5ndGg7d2hpbGUoXyl7cj1yKjMzXmUuY2hhckNvZGVBdCgtLV8pfXJldHVybiByPj4+MH1lLmV4cG9ydHM9aGFzaH19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18oXyl7dmFyIGE9cltfXTtpZihhIT09dW5kZWZpbmVkKXtyZXR1cm4gYS5leHBvcnRzfXZhciB0PXJbX109e2V4cG9ydHM6e319O3ZhciBpPXRydWU7dHJ5e2VbX10odCx0LmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7aT1mYWxzZX1maW5hbGx5e2lmKGkpZGVsZXRlIHJbX119cmV0dXJuIHQuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXygzMjgpO21vZHVsZS5leHBvcnRzPV99KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/string-hash/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/superstruct/index.cjs":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/compiled/superstruct/index.cjs ***!
\***************************************************************/
/***/ ((module) => {
eval("(()=>{var e={318:function(e,t){(function(e,n){ true?n(t):0})(this,(function(e){\"use strict\";class StructError extends TypeError{constructor(e,t){let n;const{message:r,explanation:i,...c}=e;const{path:o}=e;const a=o.length===0?r:`At path: ${o.join(\".\")} -- ${r}`;super(i??a);if(i!=null)this.cause=a;Object.assign(this,c);this.name=this.constructor.name;this.failures=()=>n??(n=[e,...t()])}}function isIterable(e){return isObject(e)&&typeof e[Symbol.iterator]===\"function\"}function isObject(e){return typeof e===\"object\"&&e!=null}function isPlainObject(e){if(Object.prototype.toString.call(e)!==\"[object Object]\"){return false}const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function print(e){if(typeof e===\"symbol\"){return e.toString()}return typeof e===\"string\"?JSON.stringify(e):`${e}`}function shiftIterator(e){const{done:t,value:n}=e.next();return t?undefined:n}function toFailure(e,t,n,r){if(e===true){return}else if(e===false){e={}}else if(typeof e===\"string\"){e={message:e}}const{path:i,branch:c}=t;const{type:o}=n;const{refinement:a,message:s=`Expected a value of type \\`${o}\\`${a?` with refinement \\`${a}\\``:\"\"}, but received: \\`${print(r)}\\``}=e;return{value:r,type:o,refinement:a,key:i[i.length-1],path:i,branch:c,...e,message:s}}function*toFailures(e,t,n,r){if(!isIterable(e)){e=[e]}for(const i of e){const e=toFailure(i,t,n,r);if(e){yield e}}}function*run(e,t,n={}){const{path:r=[],branch:i=[e],coerce:c=false,mask:o=false}=n;const a={path:r,branch:i};if(c){e=t.coercer(e,a);if(o&&t.type!==\"type\"&&isObject(t.schema)&&isObject(e)&&!Array.isArray(e)){for(const n in e){if(t.schema[n]===undefined){delete e[n]}}}}let s=\"valid\";for(const r of t.validator(e,a)){r.explanation=n.message;s=\"not_valid\";yield[r,undefined]}for(let[u,f,l]of t.entries(e,a)){const t=run(f,l,{path:u===undefined?r:[...r,u],branch:u===undefined?i:[...i,f],coerce:c,mask:o,message:n.message});for(const n of t){if(n[0]){s=n[0].refinement!=null?\"not_refined\":\"not_valid\";yield[n[0],undefined]}else if(c){f=n[1];if(u===undefined){e=f}else if(e instanceof Map){e.set(u,f)}else if(e instanceof Set){e.add(f)}else if(isObject(e)){if(f!==undefined||u in e)e[u]=f}}}}if(s!==\"not_valid\"){for(const r of t.refiner(e,a)){r.explanation=n.message;s=\"not_refined\";yield[r,undefined]}}if(s===\"valid\"){yield[undefined,e]}}class Struct{constructor(e){const{type:t,schema:n,validator:r,refiner:i,coercer:c=(e=>e),entries:o=function*(){}}=e;this.type=t;this.schema=n;this.entries=o;this.coercer=c;if(r){this.validator=(e,t)=>{const n=r(e,t);return toFailures(n,t,this,e)}}else{this.validator=()=>[]}if(i){this.refiner=(e,t)=>{const n=i(e,t);return toFailures(n,t,this,e)}}else{this.refiner=()=>[]}}assert(e,t){return assert(e,this,t)}create(e,t){return create(e,this,t)}is(e){return is(e,this)}mask(e,t){return mask(e,this,t)}validate(e,t={}){return validate(e,this,t)}}function assert(e,t,n){const r=validate(e,t,{message:n});if(r[0]){throw r[0]}}function create(e,t,n){const r=validate(e,t,{coerce:true,message:n});if(r[0]){throw r[0]}else{return r[1]}}function mask(e,t,n){const r=validate(e,t,{coerce:true,mask:true,message:n});if(r[0]){throw r[0]}else{return r[1]}}function is(e,t){const n=validate(e,t);return!n[0]}function validate(e,t,n={}){const r=run(e,t,n);const i=shiftIterator(r);if(i[0]){const e=new StructError(i[0],(function*(){for(const e of r){if(e[0]){yield e[0]}}}));return[e,undefined]}else{const e=i[1];return[undefined,e]}}function assign(...e){const t=e[0].type===\"type\";const n=e.map((e=>e.schema));const r=Object.assign({},...n);return t?type(r):object(r)}function define(e,t){return new Struct({type:e,schema:null,validator:t})}function deprecated(e,t){return new Struct({...e,refiner:(t,n)=>t===undefined||e.refiner(t,n),validator(n,r){if(n===undefined){return true}else{t(n,r);return e.validator(n,r)}}})}function dynamic(e){return new Struct({type:\"dynamic\",schema:null,*entries(t,n){const r=e(t,n);yield*r.entries(t,n)},validator(t,n){const r=e(t,n);return r.validator(t,n)},coercer(t,n){const r=e(t,n);return r.coercer(t,n)},refiner(t,n){const r=e(t,n);return r.refiner(t,n)}})}function lazy(e){let t;return new Struct({type:\"lazy\",schema:null,*entries(n,r){t??(t=e());yield*t.entries(n,r)},validator(n,r){t??(t=e());return t.validator(n,r)},coercer(n,r){t??(t=e());return t.coercer(n,r)},refiner(n,r){t??(t=e());return t.refiner(n,r)}})}function omit(e,t){const{schema:n}=e;const r={...n};for(const e of t){delete r[e]}switch(e.type){case\"type\":return type(r);default:return object(r)}}function partial(e){const t=e instanceof Struct?{...e.schema}:{...e};for(const e in t){t[e]=optional(t[e])}return object(t)}function pick(e,t){const{schema:n}=e;const r={};for(const e of t){r[e]=n[e]}return object(r)}function struct(e,t){console.warn(\"superstruct@0.11 - The `struct` helper has been renamed to `define`.\");return define(e,t)}function any(){return define(\"any\",(()=>true))}function array(e){return new Struct({type:\"array\",schema:e,*entries(t){if(e&&Array.isArray(t)){for(const[n,r]of t.entries()){yield[n,r,e]}}},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||`Expected an array value, but received: ${print(e)}`}})}function bigint(){return define(\"bigint\",(e=>typeof e===\"bigint\"))}function boolean(){return define(\"boolean\",(e=>typeof e===\"boolean\"))}function date(){return define(\"date\",(e=>e instanceof Date&&!isNaN(e.getTime())||`Expected a valid \\`Date\\` object, but received: ${print(e)}`))}function enums(e){const t={};const n=e.map((e=>print(e))).join();for(const n of e){t[n]=n}return new Struct({type:\"enums\",schema:t,validator(t){return e.includes(t)||`Expected one of \\`${n}\\`, but received: ${print(t)}`}})}function func(){return define(\"func\",(e=>typeof e===\"function\"||`Expected a function, but received: ${print(e)}`))}function instance(e){return define(\"instance\",(t=>t instanceof e||`Expected a \\`${e.name}\\` instance, but received: ${print(t)}`))}function integer(){return define(\"integer\",(e=>typeof e===\"number\"&&!isNaN(e)&&Number.isInteger(e)||`Expected an integer, but received: ${print(e)}`))}function intersection(e){return new Struct({type:\"intersection\",schema:null,*entries(t,n){for(const r of e){yield*r.entries(t,n)}},*validator(t,n){for(const r of e){yield*r.validator(t,n)}},*refiner(t,n){for(const r of e){yield*r.refiner(t,n)}}})}function literal(e){const t=print(e);const n=typeof e;return new Struct({type:\"literal\",schema:n===\"string\"||n===\"number\"||n===\"boolean\"?e:null,validator(n){return n===e||`Expected the literal \\`${t}\\`, but received: ${print(n)}`}})}function map(e,t){return new Struct({type:\"map\",schema:null,*entries(n){if(e&&t&&n instanceof Map){for(const[r,i]of n.entries()){yield[r,r,e];yield[r,i,t]}}},coercer(e){return e instanceof Map?new Map(e):e},validator(e){return e instanceof Map||`Expected a \\`Map\\` object, but received: ${print(e)}`}})}function never(){return define(\"never\",(()=>false))}function nullable(e){return new Struct({...e,validator:(t,n)=>t===null||e.validator(t,n),refiner:(t,n)=>t===null||e.refiner(t,n)})}function number(){return define(\"number\",(e=>typeof e===\"number\"&&!isNaN(e)||`Expected a number, but received: ${print(e)}`))}function object(e){const t=e?Object.keys(e):[];const n=never();return new Struct({type:\"object\",schema:e?e:null,*entries(r){if(e&&isObject(r)){const i=new Set(Object.keys(r));for(const n of t){i.delete(n);yield[n,r[n],e[n]]}for(const e of i){yield[e,r[e],n]}}},validator(e){return isObject(e)||`Expected an object, but received: ${print(e)}`},coercer(e){return isObject(e)?{...e}:e}})}function optional(e){return new Struct({...e,validator:(t,n)=>t===undefined||e.validator(t,n),refiner:(t,n)=>t===undefined||e.refiner(t,n)})}function record(e,t){return new Struct({type:\"record\",schema:null,*entries(n){if(isObject(n)){for(const r in n){const i=n[r];yield[r,r,e];yield[r,i,t]}}},validator(e){return isObject(e)||`Expected an object, but received: ${print(e)}`}})}function regexp(){return define(\"regexp\",(e=>e instanceof RegExp))}function set(e){return new Struct({type:\"set\",schema:null,*entries(t){if(e&&t instanceof Set){for(const n of t){yield[n,n,e]}}},coercer(e){return e instanceof Set?new Set(e):e},validator(e){return e instanceof Set||`Expected a \\`Set\\` object, but received: ${print(e)}`}})}function string(){return define(\"string\",(e=>typeof e===\"string\"||`Expected a string, but received: ${print(e)}`))}function tuple(e){const t=never();return new Struct({type:\"tuple\",schema:null,*entries(n){if(Array.isArray(n)){const r=Math.max(e.length,n.length);for(let i=0;i<r;i++){yield[i,n[i],e[i]||t]}}},validator(e){return Array.isArray(e)||`Expected an array, but received: ${print(e)}`}})}function type(e){const t=Object.keys(e);return new Struct({type:\"type\",schema:e,*entries(n){if(isObject(n)){for(const r of t){yield[r,n[r],e[r]]}}},validator(e){return isObject(e)||`Expected an object, but received: ${print(e)}`},coercer(e){return isObject(e)?{...e}:e}})}function union(e){const t=e.map((e=>e.type)).join(\" | \");return new Struct({type:\"union\",schema:null,coercer(t){for(const n of e){const[e,r]=n.validate(t,{coerce:true});if(!e){return r}}return t},validator(n,r){const i=[];for(const t of e){const[...e]=run(n,t,r);const[c]=e;if(!c[0]){return[]}else{for(const[t]of e){if(t){i.push(t)}}}}return[`Expected the value to satisfy a union of \\`${t}\\`, but received: ${print(n)}`,...i]}})}function unknown(){return define(\"unknown\",(()=>true))}function coerce(e,t,n){return new Struct({...e,coercer:(r,i)=>is(r,t)?e.coercer(n(r,i),i):e.coercer(r,i)})}function defaulted(e,t,n={}){return coerce(e,unknown(),(e=>{const r=typeof t===\"function\"?t():t;if(e===undefined){return r}if(!n.strict&&isPlainObject(e)&&isPlainObject(r)){const t={...e};let n=false;for(const e in r){if(t[e]===undefined){t[e]=r[e];n=true}}if(n){return t}}return e}))}function trimmed(e){return coerce(e,string(),(e=>e.trim()))}function empty(e){return refine(e,\"empty\",(t=>{const n=getSize(t);return n===0||`Expected an empty ${e.type} but received one with a size of \\`${n}\\``}))}function getSize(e){if(e instanceof Map||e instanceof Set){return e.size}else{return e.length}}function max(e,t,n={}){const{exclusive:r}=n;return refine(e,\"max\",(n=>r?n<t:n<=t||`Expected a ${e.type} less than ${r?\"\":\"or equal to \"}${t} but received \\`${n}\\``))}function min(e,t,n={}){const{exclusive:r}=n;return refine(e,\"min\",(n=>r?n>t:n>=t||`Expected a ${e.type} greater than ${r?\"\":\"or equal to \"}${t} but received \\`${n}\\``))}function nonempty(e){return refine(e,\"nonempty\",(t=>{const n=getSize(t);return n>0||`Expected a nonempty ${e.type} but received an empty one`}))}function pattern(e,t){return refine(e,\"pattern\",(n=>t.test(n)||`Expected a ${e.type} matching \\`/${t.source}/\\` but received \"${n}\"`))}function size(e,t,n=t){const r=`Expected a ${e.type}`;const i=t===n?`of \\`${t}\\``:`between \\`${t}\\` and \\`${n}\\``;return refine(e,\"size\",(e=>{if(typeof e===\"number\"||e instanceof Date){return t<=e&&e<=n||`${r} ${i} but received \\`${e}\\``}else if(e instanceof Map||e instanceof Set){const{size:c}=e;return t<=c&&c<=n||`${r} with a size ${i} but received one with a size of \\`${c}\\``}else{const{length:c}=e;return t<=c&&c<=n||`${r} with a length ${i} but received one with a length of \\`${c}\\``}}))}function refine(e,t,n){return new Struct({...e,*refiner(r,i){yield*e.refiner(r,i);const c=n(r,i);const o=toFailures(c,i,e,r);for(const e of o){yield{...e,refinement:t}}}})}e.Struct=Struct;e.StructError=StructError;e.any=any;e.array=array;e.assert=assert;e.assign=assign;e.bigint=bigint;e.boolean=boolean;e.coerce=coerce;e.create=create;e.date=date;e.defaulted=defaulted;e.define=define;e.deprecated=deprecated;e.dynamic=dynamic;e.empty=empty;e.enums=enums;e.func=func;e.instance=instance;e.integer=integer;e.intersection=intersection;e.is=is;e.lazy=lazy;e.literal=literal;e.map=map;e.mask=mask;e.max=max;e.min=min;e.never=never;e.nonempty=nonempty;e.nullable=nullable;e.number=number;e.object=object;e.omit=omit;e.optional=optional;e.partial=partial;e.pattern=pattern;e.pick=pick;e.record=record;e.refine=refine;e.regexp=regexp;e.set=set;e.size=size;e.string=string;e.struct=struct;e.trimmed=trimmed;e.tuple=tuple;e.type=type;e.union=union;e.unknown=unknown;e.validate=validate}))}};if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t={};e[318](0,t);module.exports=t})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N1cGVyc3RydWN0L2luZGV4LmNqcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sa0JBQWtCLGVBQWUsS0FBSSxNQUFNLENBQUMsQ0FBQyxvQkFBb0IsYUFBYSxvQ0FBb0MsaUJBQWlCLE1BQU0sTUFBTSw2QkFBNkIsR0FBRyxNQUFNLE9BQU8sR0FBRyxtQ0FBbUMsYUFBYSxLQUFLLEVBQUUsRUFBRSxZQUFZLHdCQUF3QixzQkFBc0IsZ0NBQWdDLHFDQUFxQyx1QkFBdUIsMkRBQTJELHFCQUFxQixvQ0FBb0MsMEJBQTBCLDBEQUEwRCxhQUFhLGlDQUFpQyxzQ0FBc0Msa0JBQWtCLHdCQUF3QixvQkFBb0IsZ0RBQWdELEVBQUUsRUFBRSwwQkFBMEIsTUFBTSxlQUFlLFVBQVUscUJBQXFCLDRCQUE0QixhQUFhLE9BQU8sbUJBQW1CLEtBQUssNkJBQTZCLEdBQUcsV0FBVyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sT0FBTyxHQUFHLE1BQU0scURBQXFELEVBQUUsSUFBSSx3QkFBd0IsRUFBRSxPQUFPLG9CQUFvQixTQUFTLElBQUksR0FBRyxPQUFPLDhFQUE4RSw2QkFBNkIsbUJBQW1CLE1BQU0sa0JBQWtCLDJCQUEyQixNQUFNLFVBQVUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsR0FBRyxTQUFTLGlCQUFpQixNQUFNLGlCQUFpQiwyRUFBMkUsa0JBQWtCLDRCQUE0QixlQUFlLGNBQWMsaUNBQWlDLHdCQUF3QixjQUFjLG1CQUFtQixpQ0FBaUMsaUJBQWlCLGdHQUFnRyxFQUFFLGtCQUFrQixTQUFTLGtEQUFrRCxzQkFBc0IsV0FBVyxPQUFPLGtCQUFrQixJQUFJLDBCQUEwQixXQUFXLDBCQUEwQixTQUFTLHFCQUFxQixtQ0FBbUMsb0JBQW9CLCtCQUErQix3QkFBd0IsZ0JBQWdCLG9CQUFvQixnQkFBZ0Isb0JBQW9CLGFBQWEsZUFBZSxNQUFNLCtFQUErRSxHQUFHLFlBQVksY0FBYyxlQUFl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LEVBQUUsV0FBVyxFQUFFLElBQUksNEJBQTRCLDJDQUEyQyxzQkFBc0IsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsSUFBSSw0Q0FBNEMsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLEdBQUcsY0FBYyxHQUFHLG9DQUFvQyxFQUFFLElBQUksS0FBSyxNQUFNLFNBQVMsR0FBRyxzQkFBc0IsR0FBRyxnQkFBZ0IsR0FBRyxzQ0FBc0MsRUFBRSxLQUFLLEdBQUcsdUJBQXVCLG1CQUFtQixtQkFBbUIscUJBQXFCLGVBQWUsNEJBQTRCLGtCQUFrQixNQUFNLHFCQUFxQixFQUFFLGdCQUFnQiwwQkFBMEIsVUFBVSxjQUFjLGdCQUFnQixnQkFBZ0IsZ0JBQWdCLGtCQUFrQixnQkFBZ0IsZ0JBQWdCLFlBQVksc0JBQXNCLGdCQUFnQix3QkFBd0Isa0JBQWtCLGNBQWMsY0FBYyxZQUFZLG9CQUFvQixrQkFBa0IsNEJBQTRCLFFBQVEsWUFBWSxrQkFBa0IsVUFBVSxZQUFZLFVBQVUsVUFBVSxjQUFjLG9CQUFvQixvQkFBb0IsZ0JBQWdCLGdCQUFnQixZQUFZLG9CQUFvQixrQkFBa0Isa0JBQWtCLFlBQVksZ0JBQWdCLGdCQUFnQixnQkFBZ0IsVUFBVSxZQUFZLGdCQUFnQixnQkFBZ0Isa0JBQWtCLGNBQWMsWUFBWSxjQUFjLGtCQUFrQixvQkFBb0IsS0FBSyxpRkFBaUYsU0FBUyxZQUFZLGlCQUFpQiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdXBlcnN0cnVjdC9pbmRleC5janMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57dmFyIGU9ezMxODpmdW5jdGlvbihlLHQpeyhmdW5jdGlvbihlLG4pe3RydWU/bih0KTowfSkodGhpcywoZnVuY3Rpb24oZSl7XCJ1c2Ugc3RyaWN0XCI7Y2xhc3MgU3RydWN0RXJyb3IgZXh0ZW5kcyBUeXBlRXJyb3J7Y29uc3RydWN0b3IoZSx0KXtsZXQgbjtjb25zdHttZXNzYWdlOnIsZXhwbGFuYXRpb246aSwuLi5jfT1lO2NvbnN0e3BhdGg6b309ZTtjb25zdCBhPW8ubGVuZ3RoPT09MD9yOmBBdCBwYXRoOiAke28uam9pbihcIi5cIil9IC0tICR7cn1gO3N1cGVyKGk/P2EpO2lmKGkhPW51bGwpdGhpcy5jYXVzZT1hO09iamVjdC5hc3NpZ24odGhpcyxjKTt0aGlzLm5hbWU9dGhpcy5jb25zdHJ1Y3Rvci5uYW1lO3RoaXMuZmFpbHVyZXM9KCk9Pm4/PyhuPVtlLC4uLnQoKV0pfX1mdW5jdGlvbiBpc0l0ZXJhYmxlKGUpe3JldHVybiBpc09iamVjdChlKSYmdHlwZW9mIGVbU3ltYm9sLml0ZXJhdG9yXT09PVwiZnVuY3Rpb25cIn1mdW5jdGlvbiBpc09iamVjdChlKXtyZXR1cm4gdHlwZW9mIGU9PT1cIm9iamVjdFwiJiZlIT1udWxsfWZ1bmN0aW9uIGlzUGxhaW5PYmplY3QoZSl7aWYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpIT09XCJbb2JqZWN0IE9iamVjdF1cIil7cmV0dXJuIGZhbHNlfWNvbnN0IHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybiB0PT09bnVsbHx8dD09PU9iamVjdC5wcm90b3R5cGV9ZnVuY3Rpb24gcHJpbnQoZSl7aWYodHlwZW9mIGU9PT1cInN5bWJvbFwiKXtyZXR1cm4gZS50b1N0cmluZygpfXJldHVybiB0eXBlb2YgZT09PVwic3RyaW5nXCI/SlNPTi5zdHJpbmdpZnkoZSk6YCR7ZX1gfWZ1bmN0aW9uIHNoaWZ0SXRlcmF0b3IoZSl7Y29uc3R7ZG9uZTp0LHZhbHVlOm59PWUubmV4dCgpO3JldHVybiB0P3VuZGVmaW5lZDpufWZ1bmN0aW9uIHRvRmFpbHVyZShlLHQsbixyKXtpZihlPT09dHJ1ZSl7cmV0dXJufWVsc2UgaWYoZT09PWZhbHNlKXtlPXt9fWVsc2UgaWYodHlwZW9mIGU9PT1cInN0cmluZ1wiKXtlPXttZXNzYWdlOmV9fWNvbnN0e3BhdGg6aSxicmFuY2g6Y309dDtjb25zdHt0eXBlOm99PW47Y29uc3R7cmVmaW5lbWVudDphLG1lc3NhZ2U6cz1gRXhwZWN0ZWQgYSB2YWx1ZSBvZiB0eXBlIFxcYCR7b31cXGAke2E/YCB3aXRoIHJlZmluZW1lbnQgXFxgJHthfVxcYGA6XCJcIn0sIGJ1dCByZWNlaXZlZDogXFxgJHtwcmludChyKX1cXGBgfT1lO3JldHVybnt2YWx1ZTpyLHR5cGU6byxyZWZpbmVtZW50OmEsa2V5OmlbaS5sZW5ndGgtMV0scGF0aDppLGJyYW5jaDpjLC4uLmUsbWVzc2FnZTpzfX1mdW5jdGlvbip0b0ZhaWx1cmVzKGUsdCxuLHIpe2lmKCFpc0l0ZXJhYmxlKGUpKXtlPVtlXX1mb3IoY29uc3QgaSBvZiBlKXtjb25zdCBlPXRvRmFpbHVyZShpLHQsbixyKTtpZihlKXt5aWVsZCBlfX19ZnVuY3Rpb24qcnVuKGUsdCxuPXt9KXtjb25zdHtwYXRoOnI9W10sYnJhbmNoOmk9W2VdLGNvZXJjZTpjPWZhbHNlLG1hc2s6bz1mYWxzZX09bjtjb25zdCBhPXtwYXRoOnIsYnJhbmNoOml9O2lmKGMpe2U9dC5jb2VyY2VyKGUsYSk7aWYobyYmdC50eXBlIT09XCJ0eXBlXCImJmlzT2JqZWN0KHQuc2NoZW1hKSYmaXNPYmplY3QoZSkmJiFBcnJheS5pc0FycmF5KGUpKXtmb3IoY29uc3QgbiBpbiBlKXtpZih0LnNjaGVtYVtuXT09PXVuZGVmaW5lZCl7ZGVsZXRlIGVbbl19fX19bGV0IHM9XCJ2YWxpZFwiO2Zvcihjb25zdCByIG9mIHQudmFsaWRhdG9yKGUsYSkpe3IuZXhwbGFuYXRpb249bi5tZXNzYWdlO3M9XCJub3RfdmFsaWRcIjt5aWVsZFtyLHVuZGVmaW5lZF19Zm9yKGxldFt1LGYsbF1vZiB0LmVudHJpZXMoZSxhKSl7Y29uc3QgdD1ydW4oZixsLHtwYXRoOnU9PT11bmRlZmluZWQ/cjpbLi4ucix1XSxicmFuY2g6dT09PXVuZGVmaW5lZD9pOlsuLi5pLGZdLGNvZXJjZTpjLG1hc2s6byxtZXNzYWdlOm4ubWVzc2FnZX0pO2Zvcihjb25zdCBuIG9mIHQpe2lmKG5bMF0pe3M9blswXS5yZWZpbmVtZW50IT1udWxsP1wibm90X3JlZmluZWRcIjpcIm5vdF92YWxpZFwiO3lpZWxkW25bMF0sdW5kZWZpbmVkXX1lbHNlIGlmKGMpe2Y9blsxXTtpZih1PT09dW5kZWZpbmVkKXtlPWZ9ZWxzZSBpZihlIGluc3RhbmNlb2YgTWFwKXtlLnNldCh1LGYpfWVsc2UgaWYoZSBpbnN0YW5jZW9mIFNldCl7ZS5hZGQoZil9ZWxzZSBpZihpc09iamVjdChlKSl7aWYoZiE9PXVuZGVmaW5lZHx8dSBpbiBlKWVbdV09Zn19fX1pZihzIT09XCJub3RfdmFsaWRcIil7Zm9yKGNvbnN0IHIgb2YgdC5yZWZpbmVyKGUsYSkpe3IuZXhwbGFuYXRpb249bi5tZXNzYWdlO3M9XCJub3RfcmVmaW5lZFwiO3lpZWxkW3IsdW5kZWZpbmVkXX19aWYocz09PVwidmFsaWRcIil7eWllbGRbdW5kZWZpbmVkLGVdfX1jbGFzcyBTdHJ1Y3R7Y29uc3RydWN0b3IoZSl7Y29uc3R7dHlwZTp0LHNjaGVtYTpuLHZhbGlkYXRvcjpyLHJlZmluZXI6aSxjb2VyY2VyOmM9KGU9PmUpLGVudHJpZXM6bz1mdW5jdGlvbiooKXt9fT1lO3RoaXMudHlwZT10O3RoaXMuc2NoZW1hPW47dGhpcy5lbnRyaWVzPW87dGhpcy5jb2VyY2VyPWM7aWYocil7dGhpcy52YWxpZGF0b3I9KGUsdCk9Pntjb25zdCBuPXIoZSx0KTtyZXR1cm4gdG9GYWlsdXJlcyhuLHQsdGhpcyxlKX19ZWxzZXt0aGlzLnZhbGlkYXRvcj0oKT0+W119aWYoaSl7dGhpcy5yZWZpbmVyPShlLHQpPT57Y29uc3Qgbj1pKGUsdCk7cmV0dXJuIHRvRmFpbHVyZXMobix0LHRoaXMsZSl9fWVsc2V7dGhpcy5yZWZpbmVyPSgpPT5bXX19YXNzZXJ0KGUsdCl7cmV0dXJuIGFzc2VydChlLHRoaXMsdCl9Y3JlYXRlKGUsdCl7cmV0dXJuIGNyZWF0ZShlLHRoaXMsdCl9aXMoZSl7cmV0dXJuIGlzKGUsdGhpcyl9bWFzayhlLHQpe3JldHVybiBtYXNrKGUsdGhpcyx0KX12YWxpZGF0ZShlLHQ9e30pe3JldHVybiB2YWxpZGF0ZShlLHRoaXMsdCl9fWZ1bmN0aW9uIGFzc2VydChlLHQsbil7Y29uc3Qgcj12YWxpZGF0ZShlLHQse21lc3NhZ2U6bn0pO2lmKHJbMF0pe3Rocm93IHJbMF19fWZ1bmN0aW9uIGNyZWF0ZShlLHQsbil7Y29uc3Qgcj12YWxpZGF0ZShlLHQse2NvZXJjZTp0cnVlLG1lc3NhZ2U6bn0pO2lmKHJbMF0pe3Rocm93IHJbMF19ZWxzZXtyZXR1cm4gclsxXX19ZnVuY3Rpb24gbWFzayhlLHQsbil7Y29uc3Qgcj12YWxpZGF0ZShlLHQse2NvZXJjZTp0cnVlLG1hc2s6dHJ1ZSxtZXNzYWdlOm59KTtpZihyWzBdKXt0aHJvdyByWzBdfWVsc2V7cmV0dXJuIHJbMV19fWZ1bmN0aW9uIGlzKGUsdCl7Y29uc3Qgbj12YWxpZGF0ZShlLHQpO3JldHVybiFuWzBdfWZ1bmN0aW9uIHZhbGlkYXRlKGUsdCxuPXt9KXtjb25zdCByPXJ1bihlLHQsbik7Y29uc3QgaT1zaGlmdEl0ZXJhdG9yKHIpO2lmKGlbMF0pe2NvbnN0IGU9bmV3IFN0cnVjdEVycm9yKGlbMF0sKGZ1bmN0aW9uKigpe2Zvcihjb25zdCBlIG9mIHIpe2lmKGVbMF0pe3lpZWxkIGVbMF19fX0pKTtyZXR1cm5bZSx1bmRlZmluZWRdfWVsc2V7Y29uc3QgZT1pWzFdO3JldHVyblt1bmRlZmluZWQsZV19fWZ1bmN0aW9uIGFzc2lnbiguLi5lKXtjb25zdCB0PWVbMF0udHlwZT09PVwidHlwZVwiO2NvbnN0IG49ZS5tYXAoKGU9PmUuc2NoZW1hKSk7Y29uc3Qgcj1PYmplY3QuYXNzaWduKHt9LC4uLm4pO3JldHVybiB0P3R5cGUocik6b2JqZWN0KHIpfWZ1bmN0aW9uIGRlZmluZShlLHQpe3JldHVybiBuZXcgU3RydWN0KHt0eXBlOmUsc2NoZW1hOm51bGwsdmFsaWRhdG9yOnR9KX1mdW5jdGlvbiBkZXByZWNhdGVkKGUsdCl7cmV0dXJuIG5ldyBTdHJ1Y3Qoey4uLmUscmVmaW5lcjoodCxuKT0+dD09PXVuZGVmaW5lZHx8ZS5yZWZpbmVyKHQsbiksdmFsaWRhdG9yKG4scil7aWYobj09PXVuZGVmaW5lZCl7cmV0dXJuIHRydWV9ZWxzZXt0KG4scik7cmV0dXJuIGUudmFsaWRhdG9yKG4scil9fX0pfWZ1bmN0aW9uIGR5bmFtaWMoZSl7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6XCJkeW5hbWljXCIsc2NoZW1hOm51bGwsKmVudHJpZXModCxuKXtjb25zdCByPWUodCxuKTt5aWVsZCpyLmVudHJpZXModCxuKX0sdmFsaWRhdG9yKHQsbil7Y29uc3Qgcj1lKHQsbik7cmV0dXJuIHIudmFsaWRhdG9yKHQsbil9LGNvZXJjZXIodCxuKXtjb25zdCByPWUodCxuKTtyZXR1cm4gci5jb2VyY2VyKHQsbil9LHJlZmluZXIodCxuKXtjb25zdCByPWUodCxuKTtyZXR1cm4gci5yZWZpbmVyKHQsbil9fSl9ZnVuY3Rpb24gbGF6eShlKXtsZXQgdDtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcImxhenlcIixzY2hlbWE6bnVsbCwqZW50cmllcyhuLHIpe3Q/Pyh0PWUoKSk7eWllbGQqdC5lbnRyaWVzKG4scil9LHZhbGlkYXRvcihuLHIpe3Q/Pyh0PWUoKSk7cmV0dXJuIHQudmFsaWRhdG9yKG4scil9LGNvZXJjZXIobixyKXt0Pz8odD1lKCkpO3JldHVybiB0LmNvZXJjZXIobixyKX0scmVmaW5lcihuLHIpe3Q/Pyh0PWUoKSk7cmV0dXJuIHQucmVmaW5lcihuLHIpfX0pfWZ1bmN0aW9uIG9taXQoZSx0KXtjb25zdHtzY2hlbWE6bn09ZTtjb25zdCByPXsuLi5ufTtmb3IoY29uc3QgZSBvZiB0KXtkZWxldGUgcltlXX1zd2l0Y2goZS50eXBlKXtjYXNlXCJ0eXBlXCI6cmV0dXJuIHR5cGUocik7ZGVmYXVsdDpyZXR1cm4gb2JqZWN0KHIpfX1mdW5jdGlvbiBwYXJ0aWFsKGUpe2NvbnN0IHQ9ZSBpbnN0YW5jZW9mIFN0cnVjdD97Li4uZS5zY2hlbWF9OnsuLi5lfTtmb3IoY29uc3QgZSBpbiB0KXt0W2VdPW9wdGlvbmFsKHRbZV0pfXJldHVybiBvYmplY3QodCl9ZnVuY3Rpb24gcGljayhlLHQpe2NvbnN0e3NjaGVtYTpufT1lO2NvbnN0IHI9e307Zm9yKGNvbnN0IGUgb2YgdCl7cltlXT1uW2VdfXJldHVybiBvYmplY3Qocil9ZnVuY3Rpb24gc3RydWN0KGUsdCl7Y29uc29sZS53YXJuKFwic3VwZXJzdHJ1Y3RAMC4xMSAtIFRoZSBgc3RydWN0YCBoZWxwZXIgaGFzIGJlZW4gcmVuYW1lZCB0byBgZGVmaW5lYC5cIik7cmV0dXJuIGRlZmluZShlLHQpfWZ1bmN0aW9uIGFueSgpe3JldHVybiBkZWZpbmUoXCJhbnlcIiwoKCk9PnRydWUpKX1mdW5jdGlvbiBhcnJheShlKXtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcImFycmF5XCIsc2NoZW1hOmUsKmVudHJpZXModCl7aWYoZSYmQXJyYXkuaXNBcnJheSh0KSl7Zm9yKGNvbnN0W24scl1vZiB0LmVudHJpZXMoKSl7eWllbGRbbixyLGVdfX19LGNvZXJjZXIoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ZS5zbGljZSgpOmV9LHZhbGlkYXRvcihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKXx8YEV4cGVjdGVkIGFuIGFycmF5IHZhbHVlLCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQoZSl9YH19KX1mdW5jdGlvbiBiaWdpbnQoKXtyZXR1cm4gZGVmaW5lKFwiYmlnaW50XCIsKGU9PnR5cGVvZiBlPT09XCJiaWdpbnRcIikpfWZ1bmN0aW9uIGJvb2xlYW4oKXtyZXR1cm4gZGVmaW5lKFwiYm9vbGVhblwiLChlPT50eXBlb2YgZT09PVwiYm9vbGVhblwiKSl9ZnVuY3Rpb24gZGF0ZSgpe3JldHVybiBkZWZpbmUoXCJkYXRlXCIsKGU9PmUgaW5zdGFuY2VvZiBEYXRlJiYhaXNOYU4oZS5nZXRUaW1lKCkpfHxgRXhwZWN0ZWQgYSB2YWxpZCBcXGBEYXRlXFxgIG9iamVjdCwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWApKX1mdW5jdGlvbiBlbnVtcyhlKXtjb25zdCB0PXt9O2NvbnN0IG49ZS5tYXAoKGU9PnByaW50KGUpKSkuam9pbigpO2Zvcihjb25zdCBuIG9mIGUpe3Rbbl09bn1yZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcImVudW1zXCIsc2NoZW1hOnQsdmFsaWRhdG9yKHQpe3JldHVybiBlLmluY2x1ZGVzKHQpfHxgRXhwZWN0ZWQgb25lIG9mIFxcYCR7bn1cXGAsIGJ1dCByZWNlaXZlZDogJHtwcmludCh0KX1gfX0pfWZ1bmN0aW9uIGZ1bmMoKXtyZXR1cm4gZGVmaW5lKFwiZnVuY1wiLChlPT50eXBlb2YgZT09PVwiZnVuY3Rpb25cInx8YEV4cGVjdGVkIGEgZnVuY3Rpb24sIGJ1dCByZWNlaXZlZDogJHtwcmludChlKX1gKSl9ZnVuY3Rpb24gaW5zdGFuY2UoZSl7cmV0dXJuIGRlZmluZShcImluc3RhbmNlXCIsKHQ9PnQgaW5zdGFuY2VvZiBlfHxgRXhwZWN0ZWQgYSBcXGAke2UubmFtZX1cXGAgaW5zdGFuY2UsIGJ1dCByZWNlaXZlZDogJHtwcmludCh0KX1gKSl9ZnVuY3Rpb24gaW50ZWdlcigpe3JldHVybiBkZWZpbmUoXCJpbnRlZ2VyXCIsKGU9PnR5cGVvZiBlPT09XCJudW1iZXJcIiYmIWlzTmFOKGUpJiZOdW1iZXIuaXNJbnRlZ2VyKGUpfHxgRXhwZWN0ZWQgYW4gaW50ZWdlciwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWApKX1mdW5jdGlvbiBpbnRlcnNlY3Rpb24oZSl7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6XCJpbnRlcnNlY3Rpb25cIixzY2hlbWE6bnVsbCwqZW50cmllcyh0LG4pe2Zvcihjb25zdCByIG9mIGUpe3lpZWxkKnIuZW50cmllcyh0LG4pfX0sKnZhbGlkYXRvcih0LG4pe2Zvcihjb25zdCByIG9mIGUpe3lpZWxkKnIudmFsaWRhdG9yKHQsbil9fSwqcmVmaW5lcih0LG4pe2Zvcihjb25zdCByIG9mIGUpe3lpZWxkKnIucmVmaW5lcih0LG4pfX19KX1mdW5jdGlvbiBsaXRlcmFsKGUpe2NvbnN0IHQ9cHJpbnQoZSk7Y29uc3Qgbj10eXBlb2YgZTtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcImxpdGVyYWxcIixzY2hlbWE6bj09PVwic3RyaW5nXCJ8fG49PT1cIm51bWJlclwifHxuPT09XCJib29sZWFuXCI/ZTpudWxsLHZhbGlkYXRvcihuKXtyZXR1cm4gbj09PWV8fGBFeHBlY3RlZCB0aGUgbGl0ZXJhbCBcXGAke3R9XFxgLCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQobil9YH19KX1mdW5jdGlvbiBtYXAoZSx0KXtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcIm1hcFwiLHNjaGVtYTpudWxsLCplbnRyaWVzKG4pe2lmKGUmJnQmJm4gaW5zdGFuY2VvZiBNYXApe2Zvcihjb25zdFtyLGldb2Ygbi5lbnRyaWVzKCkpe3lpZWxkW3IscixlXTt5aWVsZFtyLGksdF19fX0sY29lcmNlcihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIE1hcD9uZXcgTWFwKGUpOmV9LHZhbGlkYXRvcihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIE1hcHx8YEV4cGVjdGVkIGEgXFxgTWFwXFxgIG9iamVjdCwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWB9fSl9ZnVuY3Rpb24gbmV2ZXIoKXtyZXR1cm4gZGVmaW5lKFwibmV2ZXJcIiwoKCk9PmZhbHNlKSl9ZnVuY3Rpb24gbnVsbGFibGUoZSl7cmV0dXJuIG5ldyBTdHJ1Y3Qoey4uLmUsdmFsaWRhdG9yOih0LG4pPT50PT09bnVsbHx8ZS52YWxpZGF0b3IodCxuKSxyZWZpbmVyOih0LG4pPT50PT09bnVsbHx8ZS5yZWZpbmVyKHQsbil9KX1mdW5jdGlvbiBudW1iZXIoKXtyZXR1cm4gZGVmaW5lKFwibnVtYmVyXCIsKGU9PnR5cGVvZiBlPT09XCJudW1iZXJcIiYmIWlzTmFOKGUpfHxgRXhwZWN0ZWQgYSBudW1iZXIsIGJ1dCByZWNlaXZlZDogJHtwcmludChlKX1gKSl9ZnVuY3Rpb24gb2JqZWN0KGUpe2NvbnN0IHQ9ZT9PYmplY3Qua2V5cyhlKTpbXTtjb25zdCBuPW5ldmVyKCk7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6XCJvYmplY3RcIixzY2hlbWE6ZT9lOm51bGwsKmVudHJpZXMocil7aWYoZSYmaXNPYmplY3Qocikpe2NvbnN0IGk9bmV3IFNldChPYmplY3Qua2V5cyhyKSk7Zm9yKGNvbnN0IG4gb2YgdCl7aS5kZWxldGUobik7eWllbGRbbixyW25dLGVbbl1dfWZvcihjb25zdCBlIG9mIGkpe3lpZWxkW2UscltlXSxuXX19fSx2YWxpZGF0b3IoZSl7cmV0dXJuIGlzT2JqZWN0KGUpfHxgRXhwZWN0ZWQgYW4gb2JqZWN0LCBidXQgcmVjZWl2ZWQ6ICR7cHJpbnQoZSl9YH0sY29lcmNlcihlKXtyZXR1cm4gaXNPYmplY3QoZSk/ey4uLmV9OmV9fSl9ZnVuY3Rpb24gb3B0aW9uYWwoZSl7cmV0dXJuIG5ldyBTdHJ1Y3Qoey4uLmUsdmFsaWRhdG9yOih0LG4pPT50PT09dW5kZWZpbmVkfHxlLnZhbGlkYXRvcih0LG4pLHJlZmluZXI6KHQsbik9PnQ9PT11bmRlZmluZWR8fGUucmVmaW5lcih0LG4pfSl9ZnVuY3Rpb24gcmVjb3JkKGUsdCl7cmV0dXJuIG5ldyBTdHJ1Y3Qoe3R5cGU6XCJyZWNvcmRcIixzY2hlbWE6bnVsbCwqZW50cmllcyhuKXtpZihpc09iamVjdChuKSl7Zm9yKGNvbnN0IHIgaW4gbil7Y29uc3QgaT1uW3JdO3lpZWxkW3IscixlXTt5aWVsZFtyLGksdF19fX0sdmFsaWRhdG9yKGUpe3JldHVybiBpc09iamVjdChlKXx8YEV4cGVjdGVkIGFuIG9iamVjdCwgYnV0IHJlY2VpdmVkOiAke3ByaW50KGUpfWB9fSl9ZnVuY3Rpb24gcmVnZXhwKCl7cmV0dXJuIGRlZmluZShcInJlZ2V4cFwiLChlPT5lIGluc3RhbmNlb2YgUmVnRXhwKSl9ZnVuY3Rpb24gc2V0KGUpe3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwic2V0XCIsc2NoZW1hOm51bGwsKmVudHJpZXModCl7aWYoZSYmdCBpbnN0YW5jZW9mIFNldCl7Zm9yKGNvbnN0IG4gb2YgdCl7eWllbGRbbixuLGVdfX19LGNvZXJjZXIoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBTZXQ/bmV3IFNldChlKTplfSx2YWxpZGF0b3IoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBTZXR8fGBFeHBlY3RlZCBhIFxcYFNldFxcYCBvYmplY3QsIGJ1dCByZWNlaXZlZDogJHtwcmludChlKX1gfX0pfWZ1bmN0aW9uIHN0cmluZygpe3JldHVybiBkZWZpbmUoXCJzdHJpbmdcIiwoZT0+dHlwZW9mIGU9PT1cInN0cmluZ1wifHxgRXhwZWN0ZWQgYSBzdHJpbmcsIGJ1dCByZWNlaXZlZDogJHtwcmludChlKX1gKSl9ZnVuY3Rpb24gdHVwbGUoZSl7Y29uc3QgdD1uZXZlcigpO3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwidHVwbGVcIixzY2hlbWE6bnVsbCwqZW50cmllcyhuKXtpZihBcnJheS5pc0FycmF5KG4pKXtjb25zdCByPU1hdGgubWF4KGUubGVuZ3RoLG4ubGVuZ3RoKTtmb3IobGV0IGk9MDtpPHI7aSsrKXt5aWVsZFtpLG5baV0sZVtpXXx8dF19fX0sdmFsaWRhdG9yKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpfHxgRXhwZWN0ZWQgYW4gYXJyYXksIGJ1dCByZWNlaXZlZDogJHtwcmludChlKX1gfX0pfWZ1bmN0aW9uIHR5cGUoZSl7Y29uc3QgdD1PYmplY3Qua2V5cyhlKTtyZXR1cm4gbmV3IFN0cnVjdCh7dHlwZTpcInR5cGVcIixzY2hlbWE6ZSwqZW50cmllcyhuKXtpZihpc09iamVjdChuKSl7Zm9yKGNvbnN0IHIgb2YgdCl7eWllbGRbcixuW3JdLGVbcl1dfX19LHZhbGlkYXRvcihlKXtyZXR1cm4gaXNPYmplY3QoZSl8fGBFeHBlY3RlZCBhbiBvYmplY3QsIGJ1dCByZWNlaXZlZDogJHtwcmludChlKX1gfSxjb2VyY2VyKGUpe3JldHVybiBpc09iamVjdChlKT97Li4uZX06ZX19KX1mdW5jdGlvbiB1bmlvbihlKXtjb25zdCB0PWUubWFwKChlPT5lLnR5cGUpKS5qb2luKFwiIHwgXCIpO3JldHVybiBuZXcgU3RydWN0KHt0eXBlOlwidW5pb25cIixzY2hlbWE6bnVsbCxjb2VyY2VyKHQpe2Zvcihjb25zdCBuIG9mIGUpe2NvbnN0W2Uscl09bi52YWxpZGF0ZSh0LHtjb2VyY2U6dHJ1ZX0pO2lmKCFlKXtyZXR1cm4gcn19cmV0dXJuIHR9LHZhbGlkYXRvcihuLHIpe2NvbnN0IGk9W107Zm9yKGNvbnN0IHQgb2YgZSl7Y29uc3RbLi4uZV09cnVuKG4sdCxyKTtjb25zdFtjXT1lO2lmKCFjWzBdKXtyZXR1cm5bXX1lbHNle2Zvcihjb25zdFt0XW9mIGUpe2lmKHQpe2kucHVzaCh0KX19fX1yZXR1cm5bYEV4cGVjdGVkIHRoZSB2YWx1ZSB0byBzYXRpc2Z5IGEgdW5pb24gb2YgXFxgJHt0fVxcYCwgYnV0IHJlY2VpdmVkOiAke3ByaW50KG4pfWAsLi4uaV19fSl9ZnVuY3Rpb24gdW5rbm93bigpe3JldHVybiBkZWZpbmUoXCJ1bmtub3duXCIsKCgpPT50cnVlKSl9ZnVuY3Rpb24gY29lcmNlKGUsdCxuKXtyZXR1cm4gbmV3IFN0cnVjdCh7Li4uZSxjb2VyY2VyOihyLGkpPT5pcyhyLHQpP2UuY29lcmNlcihuKHIsaSksaSk6ZS5jb2VyY2VyKHIsaSl9KX1mdW5jdGlvbiBkZWZhdWx0ZWQoZSx0LG49e30pe3JldHVybiBjb2VyY2UoZSx1bmtub3duKCksKGU9Pntjb25zdCByPXR5cGVvZiB0PT09XCJmdW5jdGlvblwiP3QoKTp0O2lmKGU9PT11bmRlZmluZWQpe3JldHVybiByfWlmKCFuLnN0cmljdCYmaXNQbGFpbk9iamVjdChlKSYmaXNQbGFpbk9iamVjdChyKSl7Y29uc3QgdD17Li4uZX07bGV0IG49ZmFsc2U7Zm9yKGNvbnN0IGUgaW4gcil7aWYodFtlXT09PXVuZGVmaW5lZCl7dFtlXT1yW2VdO249dHJ1ZX19aWYobil7cmV0dXJuIHR9fXJldHVybiBlfSkpfWZ1bmN0aW9uIHRyaW1tZWQoZSl7cmV0dXJuIGNvZXJjZShlLHN0cmluZygpLChlPT5lLnRyaW0oKSkpfWZ1bmN0aW9uIGVtcHR5KGUpe3JldHVybiByZWZpbmUoZSxcImVtcHR5XCIsKHQ9Pntjb25zdCBuPWdldFNpemUodCk7cmV0dXJuIG49PT0wfHxgRXhwZWN0ZWQgYW4gZW1wdHkgJHtlLnR5cGV9IGJ1dCByZWNlaXZlZCBvbmUgd2l0aCBhIHNpemUgb2YgXFxgJHtufVxcYGB9KSl9ZnVuY3Rpb24gZ2V0U2l6ZShlKXtpZihlIGluc3RhbmNlb2YgTWFwfHxlIGluc3RhbmNlb2YgU2V0KXtyZXR1cm4gZS5zaXplfWVsc2V7cmV0dXJuIGUubGVuZ3RofX1mdW5jdGlvbiBtYXgoZSx0LG49e30pe2NvbnN0e2V4Y2x1c2l2ZTpyfT1uO3JldHVybiByZWZpbmUoZSxcIm1heFwiLChuPT5yP248dDpuPD10fHxgRXhwZWN0ZWQgYSAke2UudHlwZX0gbGVzcyB0aGFuICR7cj9cIlwiOlwib3IgZXF1YWwgdG8gXCJ9JHt0fSBidXQgcmVjZWl2ZWQgXFxgJHtufVxcYGApKX1mdW5jdGlvbiBtaW4oZSx0LG49e30pe2NvbnN0e2V4Y2x1c2l2ZTpyfT1uO3JldHVybiByZWZpbmUoZSxcIm1pblwiLChuPT5yP24+dDpuPj10fHxgRXhwZWN0ZWQgYSAke2UudHlwZX0gZ3JlYXRlciB0aGFuICR7cj9cIlwiOlwib3IgZXF1YWwgdG8gXCJ9JHt0fSBidXQgcmVjZWl2ZWQgXFxgJHtufVxcYGApKX1mdW5jdGlvbiBub25lbXB0eShlKXtyZXR1cm4gcmVmaW5lKGUsXCJub25lbXB0eVwiLCh0PT57Y29uc3Qgbj1nZXRTaXplKHQpO3JldHVybiBuPjB8fGBFeHBlY3RlZCBhIG5vbmVtcHR5ICR7ZS50eXBlfSBidXQgcmVjZWl2ZWQgYW4gZW1wdHkgb25lYH0pKX1mdW5jdGlvbiBwYXR0ZXJuKGUsdCl7cmV0dXJuIHJlZmluZShlLFwicGF0dGVyblwiLChuPT50LnRlc3Qobil8fGBFeHBlY3RlZCBhICR7ZS50eXBlfSBtYXRjaGluZyBcXGAvJHt0LnNvdXJjZX0vXFxgIGJ1dCByZWNlaXZlZCBcIiR7bn1cImApKX1mdW5jdGlvbiBzaXplKGUsdCxuPXQpe2NvbnN0IHI9YEV4cGVjdGVkIGEgJHtlLnR5cGV9YDtjb25zdCBpPXQ9PT1uP2BvZiBcXGAke3R9XFxgYDpgYmV0d2VlbiBcXGAke3R9XFxgIGFuZCBcXGAke259XFxgYDtyZXR1cm4gcmVmaW5lKGUsXCJzaXplXCIsKGU9PntpZih0eXBlb2YgZT09PVwibnVtYmVyXCJ8fGUgaW5zdGFuY2VvZiBEYXRlKXtyZXR1cm4gdDw9ZSYmZTw9bnx8YCR7cn0gJHtpfSBidXQgcmVjZWl2ZWQgXFxgJHtlfVxcYGB9ZWxzZSBpZihlIGluc3RhbmNlb2YgTWFwfHxlIGluc3RhbmNlb2YgU2V0KXtjb25zdHtzaXplOmN9PWU7cmV0dXJuIHQ8PWMmJmM8PW58fGAke3J9IHdpdGggYSBzaXplICR7aX0gYnV0IHJlY2VpdmVkIG9uZSB3aXRoIGEgc2l6ZSBvZiBcXGAke2N9XFxgYH1lbHNle2NvbnN0e2xlbmd0aDpjfT1lO3JldHVybiB0PD1jJiZjPD1ufHxgJHtyfSB3aXRoIGEgbGVuZ3RoICR7aX0gYnV0IHJlY2VpdmVkIG9uZSB3aXRoIGEgbGVuZ3RoIG9mIFxcYCR7Y31cXGBgfX0pKX1mdW5jdGlvbiByZWZpbmUoZSx0LG4pe3JldHVybiBuZXcgU3RydWN0KHsuLi5lLCpyZWZpbmVyKHIsaSl7eWllbGQqZS5yZWZpbmVyKHIsaSk7Y29uc3QgYz1uKHIsaSk7Y29uc3Qgbz10b0ZhaWx1cmVzKGMsaSxlLHIpO2Zvcihjb25zdCBlIG9mIG8pe3lpZWxkey4uLmUscmVmaW5lbWVudDp0fX19fSl9ZS5TdHJ1Y3Q9U3RydWN0O2UuU3RydWN0RXJyb3I9U3RydWN0RXJyb3I7ZS5hbnk9YW55O2UuYXJyYXk9YXJyYXk7ZS5hc3NlcnQ9YXNzZXJ0O2UuYXNzaWduPWFzc2lnbjtlLmJpZ2ludD1iaWdpbnQ7ZS5ib29sZWFuPWJvb2xlYW47ZS5jb2VyY2U9Y29lcmNlO2UuY3JlYXRlPWNyZWF0ZTtlLmRhdGU9ZGF0ZTtlLmRlZmF1bHRlZD1kZWZhdWx0ZWQ7ZS5kZWZpbmU9ZGVmaW5lO2UuZGVwcmVjYXRlZD1kZXByZWNhdGVkO2UuZHluYW1pYz1keW5hbWljO2UuZW1wdHk9ZW1wdHk7ZS5lbnVtcz1lbnVtcztlLmZ1bmM9ZnVuYztlLmluc3RhbmNlPWluc3RhbmNlO2UuaW50ZWdlcj1pbnRlZ2VyO2UuaW50ZXJzZWN0aW9uPWludGVyc2VjdGlvbjtlLmlzPWlzO2UubGF6eT1sYXp5O2UubGl0ZXJhbD1saXRlcmFsO2UubWFwPW1hcDtlLm1hc2s9bWFzaztlLm1heD1tYXg7ZS5taW49bWluO2UubmV2ZXI9bmV2ZXI7ZS5ub25lbXB0eT1ub25lbXB0eTtlLm51bGxhYmxlPW51bGxhYmxlO2UubnVtYmVyPW51bWJlcjtlLm9iamVjdD1vYmplY3Q7ZS5vbWl0PW9taXQ7ZS5vcHRpb25hbD1vcHRpb25hbDtlLnBhcnRpYWw9cGFydGlhbDtlLnBhdHRlcm49cGF0dGVybjtlLnBpY2s9cGljaztlLnJlY29yZD1yZWNvcmQ7ZS5yZWZpbmU9cmVmaW5lO2UucmVnZXhwPXJlZ2V4cDtlLnNldD1zZXQ7ZS5zaXplPXNpemU7ZS5zdHJpbmc9c3RyaW5nO2Uuc3RydWN0PXN0cnVjdDtlLnRyaW1tZWQ9dHJpbW1lZDtlLnR1cGxlPXR1cGxlO2UudHlwZT10eXBlO2UudW5pb249dW5pb247ZS51bmtub3duPXVua25vd247ZS52YWxpZGF0ZT12YWxpZGF0ZX0pKX19O2lmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgdD17fTtlWzMxOF0oMCx0KTttb2R1bGUuZXhwb3J0cz10fSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/superstruct/index.cjs\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js ***!
\*******************************************************************/
/***/ ((module, exports, __webpack_require__) => {
eval("var __WEBPACK_AMD_DEFINE_RESULT__;(()=>{var i={226:function(i,e){(function(o,a){\"use strict\";var r=\"1.0.35\",t=\"\",n=\"?\",s=\"function\",b=\"undefined\",w=\"object\",l=\"string\",d=\"major\",c=\"model\",u=\"name\",p=\"type\",m=\"vendor\",f=\"version\",h=\"architecture\",v=\"console\",g=\"mobile\",k=\"tablet\",x=\"smarttv\",_=\"wearable\",y=\"embedded\",q=350;var T=\"Amazon\",S=\"Apple\",z=\"ASUS\",N=\"BlackBerry\",A=\"Browser\",C=\"Chrome\",E=\"Edge\",O=\"Firefox\",U=\"Google\",j=\"Huawei\",P=\"LG\",R=\"Microsoft\",M=\"Motorola\",B=\"Opera\",V=\"Samsung\",D=\"Sharp\",I=\"Sony\",W=\"Viera\",F=\"Xiaomi\",G=\"Zebra\",H=\"Facebook\",L=\"Chromium OS\",Z=\"Mac OS\";var extend=function(i,e){var o={};for(var a in i){if(e[a]&&e[a].length%2===0){o[a]=e[a].concat(i[a])}else{o[a]=i[a]}}return o},enumerize=function(i){var e={};for(var o=0;o<i.length;o++){e[i[o].toUpperCase()]=i[o]}return e},has=function(i,e){return typeof i===l?lowerize(e).indexOf(lowerize(i))!==-1:false},lowerize=function(i){return i.toLowerCase()},majorize=function(i){return typeof i===l?i.replace(/[^\\d\\.]/g,t).split(\".\")[0]:a},trim=function(i,e){if(typeof i===l){i=i.replace(/^\\s\\s*/,t);return typeof e===b?i:i.substring(0,q)}};var rgxMapper=function(i,e){var o=0,r,t,n,b,l,d;while(o<e.length&&!l){var c=e[o],u=e[o+1];r=t=0;while(r<c.length&&!l){if(!c[r]){break}l=c[r++].exec(i);if(!!l){for(n=0;n<u.length;n++){d=l[++t];b=u[n];if(typeof b===w&&b.length>0){if(b.length===2){if(typeof b[1]==s){this[b[0]]=b[1].call(this,d)}else{this[b[0]]=b[1]}}else if(b.length===3){if(typeof b[1]===s&&!(b[1].exec&&b[1].test)){this[b[0]]=d?b[1].call(this,d,b[2]):a}else{this[b[0]]=d?d.replace(b[1],b[2]):a}}else if(b.length===4){this[b[0]]=d?b[3].call(this,d.replace(b[1],b[2])):a}}else{this[b]=d?d:a}}}}o+=2}},strMapper=function(i,e){for(var o in e){if(typeof e[o]===w&&e[o].length>0){for(var r=0;r<e[o].length;r++){if(has(e[o][r],i)){return o===n?a:o}}}else if(has(e[o],i)){return o===n?a:o}}return i};var $={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},X={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"};var K={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[f,[u,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[f,[u,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[u,f],[/opios[\\/ ]+([\\w\\.]+)/i],[f,[u,B+\" Mini\"]],[/\\bopr\\/([\\w\\.]+)/i],[f,[u,B]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(heytap|ovi)browser\\/([\\d\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[u,f],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[f,[u,\"UC\"+A]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i],[f,[u,\"WeChat(Win) Desktop\"]],[/micromessenger\\/([\\w\\.]+)/i],[f,[u,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[f,[u,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[f,[u,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[f,[u,\"Yandex\"]],[/(avast|avg)\\/([\\w\\.]+)/i],[[u,/(.+)/,\"$1 Secure \"+A],f],[/\\bfocus\\/([\\w\\.]+)/i],[f,[u,O+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[f,[u,B+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[f,[u,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[f,[u,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[f,[u,B+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[f,[u,\"MIUI \"+A]],[/fxios\\/([-\\w\\.]+)/i],[f,[u,O]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[u,\"360 \"+A]],[/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i],[[u,/(.+)/,\"$1 \"+A],f],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[u,/_/g,\" \"],f],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[u,f],[/(metasr)[\\/ ]?([\\w\\.]+)/i,/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[u],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[u,H],f],[/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(chromium|instagram)[\\/ ]([-\\w\\.]+)/i],[u,f],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[f,[u,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[f,[u,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[f,[u,C+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[u,C+\" WebView\"],f],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[f,[u,\"Android \"+A]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[u,f],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[f,[u,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[f,u],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[u,[f,strMapper,$]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[u,f],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[u,\"Netscape\"],f],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[f,[u,O+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i,/panasonic;(viera)/i],[u,f],[/(cobalt)\\/([\\w\\.]+)/i],[u,[f,/master.|lts./,\"\"]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[h,\"amd64\"]],[/(ia32(?=;))/i],[[h,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[h,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[h,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[h,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[h,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[h,/ower/,t,lowerize]],[/(sun4\\w)[;\\)]/i],[[h,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[h,lowerize]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[c,[m,V],[p,k]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[c,[m,V],[p,g]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[c,[m,S],[p,g]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[c,[m,S],[p,k]],[/(macintosh);/i],[c,[m,S]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[c,[m,D],[p,g]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[c,[m,j],[p,k]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[c,[m,j],[p,g]],[/\\b(poco[\\w ]+)(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[c,/_/g,\" \"],[m,F],[p,g]],[/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[c,/_/g,\" \"],[m,F],[p,k]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[c,[m,\"OPPO\"],[p,g]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[c,[m,\"Vivo\"],[p,g]],[/\\b(rmx[12]\\d{3})(?: bui|;|\\))/i],[c,[m,\"Realme\"],[p,g]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[c,[m,M],[p,g]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[c,[m,M],[p,k]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[c,[m,P],[p,k]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[c,[m,P],[p,g]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[c,[m,\"Lenovo\"],[p,k]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[c,/_/g,\" \"],[m,\"Nokia\"],[p,g]],[/(pixel c)\\b/i],[c,[m,U],[p,k]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[c,[m,U],[p,g]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[c,[m,I],[p,g]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[c,\"Xperia Tablet\"],[m,I],[p,k]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[c,[m,\"OnePlus\"],[p,g]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[c,[m,T],[p,k]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[c,/(.+)/g,\"Fire Phone $1\"],[m,T],[p,g]],[/(playbook);[-\\w\\),; ]+(rim)/i],[c,m,[p,k]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[c,[m,N],[p,g]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[c,[m,z],[p,k]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[c,[m,z],[p,g]],[/(nexus 9)/i],[c,[m,\"HTC\"],[p,k]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[m,[c,/_/g,\" \"],[p,g]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[c,[m,\"Acer\"],[p,k]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[c,[m,\"Meizu\"],[p,g]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[m,c,[p,g]],[/(kobo)\\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[m,c,[p,k]],[/(surface duo)/i],[c,[m,R],[p,k]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[c,[m,\"Fairphone\"],[p,g]],[/(u304aa)/i],[c,[m,\"AT&T\"],[p,g]],[/\\bsie-(\\w*)/i],[c,[m,\"Siemens\"],[p,g]],[/\\b(rct\\w+) b/i],[c,[m,\"RCA\"],[p,k]],[/\\b(venue[\\d ]{2,7}) b/i],[c,[m,\"Dell\"],[p,k]],[/\\b(q(?:mv|ta)\\w+) b/i],[c,[m,\"Verizon\"],[p,k]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[c,[m,\"Barnes & Noble\"],[p,k]],[/\\b(tm\\d{3}\\w+) b/i],[c,[m,\"NuVision\"],[p,k]],[/\\b(k88) b/i],[c,[m,\"ZTE\"],[p,k]],[/\\b(nx\\d{3}j) b/i],[c,[m,\"ZTE\"],[p,g]],[/\\b(gen\\d{3}) b.+49h/i],[c,[m,\"Swiss\"],[p,g]],[/\\b(zur\\d{3}) b/i],[c,[m,\"Swiss\"],[p,k]],[/\\b((zeki)?tb.*\\b) b/i],[c,[m,\"Zeki\"],[p,k]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[m,\"Dragon Touch\"],c,[p,k]],[/\\b(ns-?\\w{0,9}) b/i],[c,[m,\"Insignia\"],[p,k]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[c,[m,\"NextBook\"],[p,k]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[m,\"Voice\"],c,[p,g]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[m,\"LvTel\"],c,[p,g]],[/\\b(ph-1) /i],[c,[m,\"Essential\"],[p,g]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[c,[m,\"Envizen\"],[p,k]],[/\\b(trio[-\\w\\. ]+) b/i],[c,[m,\"MachSpeed\"],[p,k]],[/\\btu_(1491) b/i],[c,[m,\"Rotor\"],[p,k]],[/(shield[\\w ]+) b/i],[c,[m,\"Nvidia\"],[p,k]],[/(sprint) (\\w+)/i],[m,c,[p,g]],[/(kin\\.[onetw]{3})/i],[[c,/\\./g,\" \"],[m,R],[p,g]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[c,[m,G],[p,k]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[c,[m,G],[p,g]],[/smart-tv.+(samsung)/i],[m,[p,x]],[/hbbtv.+maple;(\\d+)/i],[[c,/^/,\"SmartTV\"],[m,V],[p,x]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[m,P],[p,x]],[/(apple) ?tv/i],[m,[c,S+\" TV\"],[p,x]],[/crkey/i],[[c,C+\"cast\"],[m,U],[p,x]],[/droid.+aft(\\w)( bui|\\))/i],[c,[m,T],[p,x]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[c,[m,D],[p,x]],[/(bravia[\\w ]+)( bui|\\))/i],[c,[m,I],[p,x]],[/(mitv-\\w{5}) bui/i],[c,[m,F],[p,x]],[/Hbbtv.*(technisat) (.*);/i],[m,c,[p,x]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[m,trim],[c,trim],[p,x]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[p,x]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[m,c,[p,v]],[/droid.+; (shield) bui/i],[c,[m,\"Nvidia\"],[p,v]],[/(playstation [345portablevi]+)/i],[c,[m,I],[p,v]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[c,[m,R],[p,v]],[/((pebble))app/i],[m,c,[p,_]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[c,[m,S],[p,_]],[/droid.+; (glass) \\d/i],[c,[m,U],[p,_]],[/droid.+; (wt63?0{2,3})\\)/i],[c,[m,G],[p,_]],[/(quest( 2| pro)?)/i],[c,[m,H],[p,_]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[m,[p,y]],[/(aeobc)\\b/i],[c,[m,T],[p,y]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i],[c,[p,g]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[c,[p,k]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[p,k]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[p,g]],[/(android[-\\w\\. ]{0,9});.+buil/i],[c,[m,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[f,[u,E+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[f,[u,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,/\\b(libweb)/i],[u,f],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[f,u]],os:[[/microsoft (windows) (vista|xp)/i],[u,f],[/(windows) nt 6\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,/(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i],[u,[f,strMapper,X]],[/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[u,\"Windows\"],[f,strMapper,X]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/ios;fbsv\\/([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[f,/_/g,\".\"],[u,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[u,Z],[f,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[f,u],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[u,f],[/\\(bb(10);/i],[f,[u,N]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[f,[u,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[f,[u,O+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[f,[u,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[f,[u,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[f,[u,C+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[u,L],f],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\\/(\\d+\\.[\\w\\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[u,f],[/(sunos) ?([\\w\\.\\d]*)/i],[[u,\"Solaris\"],f],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[u,f]]};var UAParser=function(i,e){if(typeof i===w){e=i;i=a}if(!(this instanceof UAParser)){return new UAParser(i,e).getResult()}var r=typeof o!==b&&o.navigator?o.navigator:a;var n=i||(r&&r.userAgent?r.userAgent:t);var v=r&&r.userAgentData?r.userAgentData:a;var x=e?extend(K,e):K;var _=r&&r.userAgent==n;this.getBrowser=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.browser);i[d]=majorize(i[f]);if(_&&r&&r.brave&&typeof r.brave.isBrave==s){i[u]=\"Brave\"}return i};this.getCPU=function(){var i={};i[h]=a;rgxMapper.call(i,n,x.cpu);return i};this.getDevice=function(){var i={};i[m]=a;i[c]=a;i[p]=a;rgxMapper.call(i,n,x.device);if(_&&!i[p]&&v&&v.mobile){i[p]=g}if(_&&i[c]==\"Macintosh\"&&r&&typeof r.standalone!==b&&r.maxTouchPoints&&r.maxTouchPoints>2){i[c]=\"iPad\";i[p]=k}return i};this.getEngine=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.engine);return i};this.getOS=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.os);if(_&&!i[u]&&v&&v.platform!=\"Unknown\"){i[u]=v.platform.replace(/chrome os/i,L).replace(/macos/i,Z)}return i};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return n};this.setUA=function(i){n=typeof i===l&&i.length>q?trim(i,q):i;return this};this.setUA(n);return this};UAParser.VERSION=r;UAParser.BROWSER=enumerize([u,f,d]);UAParser.CPU=enumerize([h]);UAParser.DEVICE=enumerize([c,m,p,v,g,x,k,_,y]);UAParser.ENGINE=UAParser.OS=enumerize([u,f]);if(typeof e!==b){if(\"object\"!==b&&i.exports){e=i.exports=UAParser}e.UAParser=UAParser}else{if(\"function\"===s&&__webpack_require__.amdO){!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return UAParser}).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof o!==b){o.UAParser=UAParser}}var Q=typeof o!==b&&(o.jQuery||o.Zepto);if(Q&&!Q.ua){var Y=new UAParser;Q.ua=Y.getResult();Q.ua.get=function(){return Y.getUA()};Q.ua.set=function(i){Y.setUA(i);var e=Y.getResult();for(var o in e){Q.ua[o]=e[o]}}}})(typeof window===\"object\"?window:this)}};var e={};function __nccwpck_require__(o){var a=e[o];if(a!==undefined){return a.exports}var r=e[o]={exports:{}};var t=true;try{i[o].call(r.exports,r,r.exports,__nccwpck_require__);t=false}finally{if(t)delete e[o]}return r.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var o=__nccwpck_require__(226);module.exports=o})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3VhLXBhcnNlci1qcy91YS1wYXJzZXIuanMiLCJtYXBwaW5ncyI6IkFBQUEsd0NBQU0sT0FBTyxrQkFBa0IsZUFBZSxhQUFhLHVPQUF1TyxxUUFBcVEseUJBQXlCLFNBQVMsZ0JBQWdCLDRCQUE0Qix1QkFBdUIsS0FBSyxXQUFXLFNBQVMsdUJBQXVCLFNBQVMsWUFBWSxXQUFXLEtBQUssMkJBQTJCLFNBQVMsbUJBQW1CLGdFQUFnRSxzQkFBc0IsdUJBQXVCLHNCQUFzQiw0REFBNEQsb0JBQW9CLGlCQUFpQix3QkFBd0IseUNBQXlDLDRCQUE0QixvQkFBb0Isc0JBQXNCLG9CQUFvQixNQUFNLHNCQUFzQixVQUFVLE1BQU0saUJBQWlCLFFBQVEsUUFBUSxXQUFXLEtBQUssU0FBUyxPQUFPLDZCQUE2QixpQkFBaUIsbUJBQW1CLDZCQUE2QixLQUFLLGlCQUFpQixzQkFBc0IsNkNBQTZDLHNDQUFzQyxLQUFLLHFDQUFxQyxzQkFBc0IscURBQXFELEtBQUssaUJBQWlCLE1BQU0seUJBQXlCLGdCQUFnQixtQ0FBbUMsWUFBWSxjQUFjLEtBQUssbUJBQW1CLG1CQUFtQixxQkFBcUIsa0JBQWtCLFVBQVUsT0FBTywrRkFBK0YsSUFBSSxzS0FBc0ssT0FBTywySkFBMkosSUFBSSx3M0JBQXczQixJQUFJLHEyQkFBcTJCLGdCQUFnQixraEJBQWtoQixHQUFHLHlWQUF5ViwyZkFBMmYscUhBQXFILGdDQUFnQyx5Q0FBeUMsZ0pBQWdKLElBQUksbURBQW1ELDRDQUE0Qyx5Q0FBeUMsMENBQTBDLDZIQUE2SCxJQUFJLFdBQVcsSUFBSSxvTUFBb00sZ0NBQWdDLFNBQVMsb0VBQW9FLDBDQUEwQyw2R0FBNkcsRUFBRSw4REFBOEQsc0JBQXNCLElBQUkscUdBQXFHLDhUQUE4VCxpQ0FBaUMsRUFBRSw4R0FBOEcsRUFBRSxpQkFBaUIseUNBQXlDLEVBQUUsVUFBVSxzS0FBc0ssSUFBSSw4REFBOEQsSUFBSSxrREFBa0QsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLGFBQWEsSUFBSSxxRkFBcUYseUpBQXlKLEVBQUUsV0FBVyxFQUFFLHlLQUF5SyxlQUFlLElBQUkscURBQXFELEVBQUUsV0FBVyxFQUFFLHlEQUF5RCxJQUFJLHFQQUFxUCxFQUFFLFlBQVksRUFBRSxzS0FBc0ssU0FBUyxpRUFBaUUsd0RBQXdELE1BQU0sZ0xBQWdMLElBQUksSUFBSSwwR0FBMEcsdUVBQXVFLDZEQUE2RCxpQ0FBaUMsR0FBRyxnTEFBZ0wsK1JBQStSLElBQUksNEJBQTRCLEVBQUUsNEJBQTRCLElBQUksMkdBQTJHLGlMQUFpTCxJQUFJLHNLQUFzSyxFQUFFLGdGQUFnRixFQUFFLHVDQUF1QyxFQUFFLDZDQUE2QyxFQUFFLHVGQUF1RixFQUFFLG1DQUFtQyxFQUFFLGdEQUFnRCxJQUFJLG9EQUFvRCxJQUFJLCtiQUErYixFQUFFLDRDQUE0QywwRUFBMEUsaUdBQWlHLGlEQUFpRCwwTUFBME0sNEdBQTRHLEVBQUUsbURBQW1ELDhGQUE4RixXQUFXLElBQUksSUFBSSwyRUFBMkUsa0ZBQWtGLGtIQUFrSCxXQUFXLHdIQUF3SCx5Q0FBeUMsUUFBUSxJQUFJLDZKQUE2SixJQUFJLGtFQUFrRSxJQUFJLDRFQUE0RSwwREFBMEQsMEVBQTBFLElBQUksRUFBRSxxWEFBcVgsSUFBSSwwRkFBMEYsc05BQXNOLElBQUksNkJBQTZCLGNBQWMsZ1hBQWdYLHFCQUFxQiw2Q0FBNkMsa0dBQWtHLFNBQVMsa0RBQWtELGdPQUFnTyxrSEFBa0gsWUFBWSwrRkFBK0Ysb1hBQW9YLElBQUksbUNBQW1DLElBQUksNlBBQTZQLDJCQUEyQixpQkFBaUIsSUFBSSxJQUFJLGdDQUFnQyxxQ0FBcUMsOENBQThDLHdDQUF3QywyQ0FBMkMsc0JBQXNCLHdCQUF3QiwyQkFBMkIsU0FBUyxPQUFPLE9BQU8sOEJBQThCLG9CQUFvQiw2Q0FBNkMsYUFBYSxVQUFVLHVCQUF1QixTQUFTLE9BQU8sMEJBQTBCLFVBQVUsMEJBQTBCLFNBQVMsT0FBTyxPQUFPLE9BQU8sNkJBQTZCLDBCQUEwQixPQUFPLDJGQUEyRixZQUFZLE9BQU8sVUFBVSwwQkFBMEIsU0FBUyxPQUFPLE9BQU8sNkJBQTZCLFVBQVUsc0JBQXNCLFNBQVMsT0FBTyxPQUFPLHlCQUF5Qix1Q0FBdUMsNERBQTRELFVBQVUsMEJBQTBCLE9BQU8sOEhBQThILHNCQUFzQixVQUFVLHVCQUF1Qix1Q0FBdUMsYUFBYSxjQUFjLGFBQWEsbUJBQW1CLG9DQUFvQyw0QkFBNEIsK0NBQStDLDZDQUE2QyxpQkFBaUIsNEJBQTRCLHFCQUFxQixvQkFBb0IsS0FBSyxHQUFHLFVBQWEsTUFBTSx3QkFBVSxFQUFFLG1DQUFRLFdBQVcsZ0JBQWdCO0FBQUEsa0dBQUUsQ0FBQyxzQkFBc0IscUJBQXFCLHdDQUF3QyxhQUFhLG1CQUFtQixtQkFBbUIsb0JBQW9CLGtCQUFrQixxQkFBcUIsV0FBVyxvQkFBb0IsZ0JBQWdCLGdCQUFnQiwwQ0FBMEMsU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUkscURBQXFELFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRiwrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3VhLXBhcnNlci1qcy91YS1wYXJzZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57dmFyIGk9ezIyNjpmdW5jdGlvbihpLGUpeyhmdW5jdGlvbihvLGEpe1widXNlIHN0cmljdFwiO3ZhciByPVwiMS4wLjM1XCIsdD1cIlwiLG49XCI/XCIscz1cImZ1bmN0aW9uXCIsYj1cInVuZGVmaW5lZFwiLHc9XCJvYmplY3RcIixsPVwic3RyaW5nXCIsZD1cIm1ham9yXCIsYz1cIm1vZGVsXCIsdT1cIm5hbWVcIixwPVwidHlwZVwiLG09XCJ2ZW5kb3JcIixmPVwidmVyc2lvblwiLGg9XCJhcmNoaXRlY3R1cmVcIix2PVwiY29uc29sZVwiLGc9XCJtb2JpbGVcIixrPVwidGFibGV0XCIseD1cInNtYXJ0dHZcIixfPVwid2VhcmFibGVcIix5PVwiZW1iZWRkZWRcIixxPTM1MDt2YXIgVD1cIkFtYXpvblwiLFM9XCJBcHBsZVwiLHo9XCJBU1VTXCIsTj1cIkJsYWNrQmVycnlcIixBPVwiQnJvd3NlclwiLEM9XCJDaHJvbWVcIixFPVwiRWRnZVwiLE89XCJGaXJlZm94XCIsVT1cIkdvb2dsZVwiLGo9XCJIdWF3ZWlcIixQPVwiTEdcIixSPVwiTWljcm9zb2Z0XCIsTT1cIk1vdG9yb2xhXCIsQj1cIk9wZXJhXCIsVj1cIlNhbXN1bmdcIixEPVwiU2hhcnBcIixJPVwiU29ueVwiLFc9XCJWaWVyYVwiLEY9XCJYaWFvbWlcIixHPVwiWmVicmFcIixIPVwiRmFjZWJvb2tcIixMPVwiQ2hyb21pdW0gT1NcIixaPVwiTWFjIE9TXCI7dmFyIGV4dGVuZD1mdW5jdGlvbihpLGUpe3ZhciBvPXt9O2Zvcih2YXIgYSBpbiBpKXtpZihlW2FdJiZlW2FdLmxlbmd0aCUyPT09MCl7b1thXT1lW2FdLmNvbmNhdChpW2FdKX1lbHNle29bYV09aVthXX19cmV0dXJuIG99LGVudW1lcml6ZT1mdW5jdGlvbihpKXt2YXIgZT17fTtmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKyl7ZVtpW29dLnRvVXBwZXJDYXNlKCldPWlbb119cmV0dXJuIGV9LGhhcz1mdW5jdGlvbihpLGUpe3JldHVybiB0eXBlb2YgaT09PWw/bG93ZXJpemUoZSkuaW5kZXhPZihsb3dlcml6ZShpKSkhPT0tMTpmYWxzZX0sbG93ZXJpemU9ZnVuY3Rpb24oaSl7cmV0dXJuIGkudG9Mb3dlckNhc2UoKX0sbWFqb3JpemU9ZnVuY3Rpb24oaSl7cmV0dXJuIHR5cGVvZiBpPT09bD9pLnJlcGxhY2UoL1teXFxkXFwuXS9nLHQpLnNwbGl0KFwiLlwiKVswXTphfSx0cmltPWZ1bmN0aW9uKGksZSl7aWYodHlwZW9mIGk9PT1sKXtpPWkucmVwbGFjZSgvXlxcc1xccyovLHQpO3JldHVybiB0eXBlb2YgZT09PWI/aTppLnN1YnN0cmluZygwLHEpfX07dmFyIHJneE1hcHBlcj1mdW5jdGlvbihpLGUpe3ZhciBvPTAscix0LG4sYixsLGQ7d2hpbGUobzxlLmxlbmd0aCYmIWwpe3ZhciBjPWVbb10sdT1lW28rMV07cj10PTA7d2hpbGUocjxjLmxlbmd0aCYmIWwpe2lmKCFjW3JdKXticmVha31sPWNbcisrXS5leGVjKGkpO2lmKCEhbCl7Zm9yKG49MDtuPHUubGVuZ3RoO24rKyl7ZD1sWysrdF07Yj11W25dO2lmKHR5cGVvZiBiPT09dyYmYi5sZW5ndGg+MCl7aWYoYi5sZW5ndGg9PT0yKXtpZih0eXBlb2YgYlsxXT09cyl7dGhpc1tiWzBdXT1iWzFdLmNhbGwodGhpcyxkKX1lbHNle3RoaXNbYlswXV09YlsxXX19ZWxzZSBpZihiLmxlbmd0aD09PTMpe2lmKHR5cGVvZiBiWzFdPT09cyYmIShiWzFdLmV4ZWMmJmJbMV0udGVzdCkpe3RoaXNbYlswXV09ZD9iWzFdLmNhbGwodGhpcyxkLGJbMl0pOmF9ZWxzZXt0aGlzW2JbMF1dPWQ/ZC5yZXBsYWNlKGJbMV0sYlsyXSk6YX19ZWxzZSBpZihiLmxlbmd0aD09PTQpe3RoaXNbYlswXV09ZD9iWzNdLmNhbGwodGhpcyxkLnJlcGxhY2UoYlsxXSxiWzJdKSk6YX19ZWxzZXt0aGlzW2JdPWQ/ZDphfX19fW8rPTJ9fSxzdHJNYXBwZXI9ZnVuY3Rpb24oaSxlKXtmb3IodmFyIG8gaW4gZSl7aWYodHlwZW9mIGVbb109PT13JiZlW29dLmxlbmd0aD4wKXtmb3IodmFyIHI9MDtyPGVbb10ubGVuZ3RoO3IrKyl7aWYoaGFzKGVbb11bcl0saSkpe3JldHVybiBvPT09bj9hOm99fX1lbHNlIGlmKGhhcyhlW29dLGkpKXtyZXR1cm4gbz09PW4/YTpvfX1yZXR1cm4gaX07dmFyICQ9e1wiMS4wXCI6XCIvOFwiLDEuMjpcIi8xXCIsMS4zOlwiLzNcIixcIjIuMFwiOlwiLzQxMlwiLFwiMi4wLjJcIjpcIi80MTZcIixcIjIuMC4zXCI6XCIvNDE3XCIsXCIyLjAuNFwiOlwiLzQxOVwiLFwiP1wiOlwiL1wifSxYPXtNRTpcIjQuOTBcIixcIk5UIDMuMTFcIjpcIk5UMy41MVwiLFwiTlQgNC4wXCI6XCJOVDQuMFwiLDJlMzpcIk5UIDUuMFwiLFhQOltcIk5UIDUuMVwiLFwiTlQgNS4yXCJdLFZpc3RhOlwiTlQgNi4wXCIsNzpcIk5UIDYuMVwiLDg6XCJOVCA2LjJcIiw4LjE6XCJOVCA2LjNcIiwxMDpbXCJOVCA2LjRcIixcIk5UIDEwLjBcIl0sUlQ6XCJBUk1cIn07dmFyIEs9e2Jyb3dzZXI6W1svXFxiKD86Y3Jtb3xjcmlvcylcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIkNocm9tZVwiXV0sWy9lZGcoPzplfGlvc3xhKT9cXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIkVkZ2VcIl1dLFsvKG9wZXJhIG1pbmkpXFwvKFstXFx3XFwuXSspL2ksLyhvcGVyYSBbbW9iaWxldGFiXXszLDZ9KVxcYi4rdmVyc2lvblxcLyhbLVxcd1xcLl0rKS9pLC8ob3BlcmEpKD86Lit2ZXJzaW9uXFwvfFtcXC8gXSspKFtcXHdcXC5dKykvaV0sW3UsZl0sWy9vcGlvc1tcXC8gXSsoW1xcd1xcLl0rKS9pXSxbZixbdSxCK1wiIE1pbmlcIl1dLFsvXFxib3ByXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsQl1dLFsvKGtpbmRsZSlcXC8oW1xcd1xcLl0rKS9pLC8obHVuYXNjYXBlfG1heHRob258bmV0ZnJvbnR8amFzbWluZXxibGF6ZXIpW1xcLyBdPyhbXFx3XFwuXSopL2ksLyhhdmFudCB8aWVtb2JpbGV8c2xpbSkoPzpicm93c2VyKT9bXFwvIF0/KFtcXHdcXC5dKikvaSwvKGJhP2lkdWJyb3dzZXIpW1xcLyBdPyhbXFx3XFwuXSspL2ksLyg/Om1zfFxcKCkoaWUpIChbXFx3XFwuXSspL2ksLyhmbG9ja3xyb2NrbWVsdHxtaWRvcml8ZXBpcGhhbnl8c2lsa3xza3lmaXJlfGJvbHR8aXJvbnx2aXZhbGRpfGlyaWRpdW18cGhhbnRvbWpzfGJvd3NlcnxxdWFya3xxdXB6aWxsYXxmYWxrb258cmVrb25xfHB1ZmZpbnxicmF2ZXx3aGFsZSg/IS4rbmF2ZXIpfHFxYnJvd3NlcmxpdGV8cXF8ZHVja2R1Y2tnbylcXC8oWy1cXHdcXC5dKykvaSwvKGhleXRhcHxvdmkpYnJvd3NlclxcLyhbXFxkXFwuXSspL2ksLyh3ZWlibylfXyhbXFxkXFwuXSspL2ldLFt1LGZdLFsvKD86XFxidWM/ID9icm93c2VyfCg/Omp1Yy4rKXVjd2ViKVtcXC8gXT8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIlVDXCIrQV1dLFsvbWljcm9tLitcXGJxYmNvcmVcXC8oW1xcd1xcLl0rKS9pLC9cXGJxYmNvcmVcXC8oW1xcd1xcLl0rKS4rbWljcm9tL2ldLFtmLFt1LFwiV2VDaGF0KFdpbikgRGVza3RvcFwiXV0sWy9taWNyb21lc3NlbmdlclxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiV2VDaGF0XCJdXSxbL2tvbnF1ZXJvclxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiS29ucXVlcm9yXCJdXSxbL3RyaWRlbnQuK3J2WzogXShbXFx3XFwuXXsxLDl9KVxcYi4rbGlrZSBnZWNrby9pXSxbZixbdSxcIklFXCJdXSxbL3lhKD86c2VhcmNoKT9icm93c2VyXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJZYW5kZXhcIl1dLFsvKGF2YXN0fGF2ZylcXC8oW1xcd1xcLl0rKS9pXSxbW3UsLyguKykvLFwiJDEgU2VjdXJlIFwiK0FdLGZdLFsvXFxiZm9jdXNcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxPK1wiIEZvY3VzXCJdXSxbL1xcYm9wdFxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LEIrXCIgVG91Y2hcIl1dLFsvY29jX2NvY1xcdytcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIkNvYyBDb2NcIl1dLFsvZG9sZmluXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJEb2xwaGluXCJdXSxbL2NvYXN0XFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsQitcIiBDb2FzdFwiXV0sWy9taXVpYnJvd3NlclxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiTUlVSSBcIitBXV0sWy9meGlvc1xcLyhbLVxcd1xcLl0rKS9pXSxbZixbdSxPXV0sWy9cXGJxaWh1fChxaT9obz9vP3wzNjApYnJvd3Nlci9pXSxbW3UsXCIzNjAgXCIrQV1dLFsvKG9jdWx1c3xzYW1zdW5nfHNhaWxmaXNofGh1YXdlaSlicm93c2VyXFwvKFtcXHdcXC5dKykvaV0sW1t1LC8oLispLyxcIiQxIFwiK0FdLGZdLFsvKGNvbW9kb19kcmFnb24pXFwvKFtcXHdcXC5dKykvaV0sW1t1LC9fL2csXCIgXCJdLGZdLFsvKGVsZWN0cm9uKVxcLyhbXFx3XFwuXSspIHNhZmFyaS9pLC8odGVzbGEpKD86IHF0Y2FyYnJvd3NlcnxcXC8oMjBcXGRcXGRcXC5bLVxcd1xcLl0rKSkvaSwvbT8ocXFicm93c2VyfGJhaWR1Ym94YXBwfDIzNDVFeHBsb3JlcilbXFwvIF0/KFtcXHdcXC5dKykvaV0sW3UsZl0sWy8obWV0YXNyKVtcXC8gXT8oW1xcd1xcLl0rKS9pLC8obGJicm93c2VyKS9pLC9cXFsobGlua2VkaW4pYXBwXFxdL2ldLFt1XSxbLygoPzpmYmFuXFwvZmJpb3N8ZmJfaWFiXFwvZmI0YSkoPyEuK2ZiYXYpfDtmYmF2XFwvKFtcXHdcXC5dKyk7KS9pXSxbW3UsSF0sZl0sWy8oa2FrYW8oPzp0YWxrfHN0b3J5KSlbXFwvIF0oW1xcd1xcLl0rKS9pLC8obmF2ZXIpXFwoLio/KFxcZCtcXC5bXFx3XFwuXSspLipcXCkvaSwvc2FmYXJpIChsaW5lKVxcLyhbXFx3XFwuXSspL2ksL1xcYihsaW5lKVxcLyhbXFx3XFwuXSspXFwvaWFiL2ksLyhjaHJvbWl1bXxpbnN0YWdyYW0pW1xcLyBdKFstXFx3XFwuXSspL2ldLFt1LGZdLFsvXFxiZ3NhXFwvKFtcXHdcXC5dKykgLipzYWZhcmlcXC8vaV0sW2YsW3UsXCJHU0FcIl1dLFsvbXVzaWNhbF9seSg/Oi4rYXBwXz92ZXJzaW9uXFwvfF8pKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJUaWtUb2tcIl1dLFsvaGVhZGxlc3NjaHJvbWUoPzpcXC8oW1xcd1xcLl0rKXwgKS9pXSxbZixbdSxDK1wiIEhlYWRsZXNzXCJdXSxbLyB3dlxcKS4rKGNocm9tZSlcXC8oW1xcd1xcLl0rKS9pXSxbW3UsQytcIiBXZWJWaWV3XCJdLGZdLFsvZHJvaWQuKyB2ZXJzaW9uXFwvKFtcXHdcXC5dKylcXGIuKyg/Om1vYmlsZSBzYWZhcml8c2FmYXJpKS9pXSxbZixbdSxcIkFuZHJvaWQgXCIrQV1dLFsvKGNocm9tZXxvbW5pd2VifGFyb3JhfFt0aXplbm9rYV17NX0gP2Jyb3dzZXIpXFwvdj8oW1xcd1xcLl0rKS9pXSxbdSxmXSxbL3ZlcnNpb25cXC8oW1xcd1xcLlxcLF0rKSAuKm1vYmlsZVxcL1xcdysgKHNhZmFyaSkvaV0sW2YsW3UsXCJNb2JpbGUgU2FmYXJpXCJdXSxbL3ZlcnNpb25cXC8oW1xcdyhcXC58XFwsKV0rKSAuKihtb2JpbGUgP3NhZmFyaXxzYWZhcmkpL2ldLFtmLHVdLFsvd2Via2l0Lis/KG1vYmlsZSA/c2FmYXJpfHNhZmFyaSkoXFwvW1xcd1xcLl0rKS9pXSxbdSxbZixzdHJNYXBwZXIsJF1dLFsvKHdlYmtpdHxraHRtbClcXC8oW1xcd1xcLl0rKS9pXSxbdSxmXSxbLyhuYXZpZ2F0b3J8bmV0c2NhcGVcXGQ/KVxcLyhbLVxcd1xcLl0rKS9pXSxbW3UsXCJOZXRzY2FwZVwiXSxmXSxbL21vYmlsZSB2cjsgcnY6KFtcXHdcXC5dKylcXCkuK2ZpcmVmb3gvaV0sW2YsW3UsTytcIiBSZWFsaXR5XCJdXSxbL2VraW9oZi4rKGZsb3cpXFwvKFtcXHdcXC5dKykvaSwvKHN3aWZ0Zm94KS9pLC8oaWNlZHJhZ29ufGljZXdlYXNlbHxjYW1pbm98Y2hpbWVyYXxmZW5uZWN8bWFlbW8gYnJvd3NlcnxtaW5pbW98Y29ua2Vyb3J8a2xhcilbXFwvIF0/KFtcXHdcXC5cXCtdKykvaSwvKHNlYW1vbmtleXxrLW1lbGVvbnxpY2VjYXR8aWNlYXBlfGZpcmViaXJkfHBob2VuaXh8cGFsZW1vb258YmFzaWxpc2t8d2F0ZXJmb3gpXFwvKFstXFx3XFwuXSspJC9pLC8oZmlyZWZveClcXC8oW1xcd1xcLl0rKS9pLC8obW96aWxsYSlcXC8oW1xcd1xcLl0rKSAuK3J2XFw6LitnZWNrb1xcL1xcZCsvaSwvKHBvbGFyaXN8bHlueHxkaWxsb3xpY2FifGRvcmlzfGFtYXlhfHczbXxuZXRzdXJmfHNsZWlwbmlyfG9iaWdvfG1vc2FpY3woPzpnb3xpY2V8dXApW1xcLiBdP2Jyb3dzZXIpWy1cXC8gXT92PyhbXFx3XFwuXSspL2ksLyhsaW5rcykgXFwoKFtcXHdcXC5dKykvaSwvcGFuYXNvbmljOyh2aWVyYSkvaV0sW3UsZl0sWy8oY29iYWx0KVxcLyhbXFx3XFwuXSspL2ldLFt1LFtmLC9tYXN0ZXIufGx0cy4vLFwiXCJdXV0sY3B1OltbLyg/OihhbWR8eCg/Oig/Ojg2fDY0KVstX10pP3x3b3d8d2luKTY0KVs7XFwpXS9pXSxbW2gsXCJhbWQ2NFwiXV0sWy8oaWEzMig/PTspKS9pXSxbW2gsbG93ZXJpemVdXSxbLygoPzppWzM0Nl18eCk4NilbO1xcKV0vaV0sW1toLFwiaWEzMlwiXV0sWy9cXGIoYWFyY2g2NHxhcm0odj84ZT9sP3xfPzY0KSlcXGIvaV0sW1toLFwiYXJtNjRcIl1dLFsvXFxiKGFybSg/OnZbNjddKT9odD9uP1tmbF1wPylcXGIvaV0sW1toLFwiYXJtaGZcIl1dLFsvd2luZG93cyAoY2V8bW9iaWxlKTsgcHBjOy9pXSxbW2gsXCJhcm1cIl1dLFsvKCg/OnBwY3xwb3dlcnBjKSg/OjY0KT8pKD86IG1hY3w7fFxcKSkvaV0sW1toLC9vd2VyLyx0LGxvd2VyaXplXV0sWy8oc3VuNFxcdylbO1xcKV0vaV0sW1toLFwic3BhcmNcIl1dLFsvKCg/OmF2cjMyfGlhNjQoPz07KSl8NjhrKD89XFwpKXxcXGJhcm0oPz12KD86WzEtN118WzUtN10xKWw/fDt8ZWFiaSl8KD89YXRtZWwgKWF2cnwoPzppcml4fG1pcHN8c3BhcmMpKD86NjQpP1xcYnxwYS1yaXNjKS9pXSxbW2gsbG93ZXJpemVdXV0sZGV2aWNlOltbL1xcYihzY2gtaVs4OV0wXFxkfHNody1tMzgwc3xzbS1bcHR4XVxcd3syLDR9fGd0LVtwbl1cXGR7Miw0fXxzZ2gtdDhbNTZdOXxuZXh1cyAxMCkvaV0sW2MsW20sVl0sW3Asa11dLFsvXFxiKCg/OnNbY2dwXWh8Z3R8c20pLVxcdyt8c2NbZy1dP1tcXGRdK2E/fGdhbGF4eSBuZXh1cykvaSwvc2Ftc3VuZ1stIF0oWy1cXHddKykvaSwvc2VjLShzZ2hcXHcrKS9pXSxbYyxbbSxWXSxbcCxnXV0sWy8oPzpcXC98XFwoKShpcCg/OmhvbmV8b2QpW1xcdywgXSopKD86XFwvfDspL2ldLFtjLFttLFNdLFtwLGddXSxbL1xcKChpcGFkKTtbLVxcd1xcKSw7IF0rYXBwbGUvaSwvYXBwbGVjb3JlbWVkaWFcXC9bXFx3XFwuXSsgXFwoKGlwYWQpL2ksL1xcYihpcGFkKVxcZFxcZD8sXFxkXFxkP1s7XFxdXS4raW9zL2ldLFtjLFttLFNdLFtwLGtdXSxbLyhtYWNpbnRvc2gpOy9pXSxbYyxbbSxTXV0sWy9cXGIoc2gtP1thbHR2el0/XFxkXFxkW2EtZWttXT8pL2ldLFtjLFttLERdLFtwLGddXSxbL1xcYigoPzphZ1tyc11bMjNdP3xiYWgyP3xzaHQ/fGJ0diktYT9bbHddXFxkezJ9KVxcYig/IS4rZFxcL3MpL2ldLFtjLFttLGpdLFtwLGtdXSxbLyg/Omh1YXdlaXxob25vcikoWy1cXHcgXSspWztcXCldL2ksL1xcYihuZXh1cyA2cHxcXHd7Miw0fWU/LVthdHVdP1tsbl1bXFxkeF1bMDEyMzU5Y11bYWRuXT8pXFxiKD8hLitkXFwvcykvaV0sW2MsW20sal0sW3AsZ11dLFsvXFxiKHBvY29bXFx3IF0rKSg/OiBidWl8XFwpKS9pLC9cXGI7IChcXHcrKSBidWlsZFxcL2htXFwxL2ksL1xcYihobVstXyBdP25vdGU/W18gXT8oPzpcXGRcXHcpPykgYnVpL2ksL1xcYihyZWRtaVtcXC1fIF0/KD86bm90ZXxrKT9bXFx3XyBdKykoPzogYnVpfFxcKSkvaSwvXFxiKG1pWy1fIF0/KD86YVxcZHxvbmV8b25lW18gXXBsdXN8bm90ZSBsdGV8bWF4fGNjKT9bXyBdPyg/OlxcZD9cXHc/KVtfIF0/KD86cGx1c3xzZXxsaXRlKT8pKD86IGJ1aXxcXCkpL2ldLFtbYywvXy9nLFwiIFwiXSxbbSxGXSxbcCxnXV0sWy9cXGIobWlbLV8gXT8oPzpwYWQpKD86W1xcd18gXSspKSg/OiBidWl8XFwpKS9pXSxbW2MsL18vZyxcIiBcIl0sW20sRl0sW3Asa11dLFsvOyAoXFx3KykgYnVpLisgb3Bwby9pLC9cXGIoY3BoWzEyXVxcZHszfXxwKD86YWZ8Y1thbF18ZFxcd3xlW2FyXSlbbXRdXFxkMHx4OTAwN3xhMTAxb3ApXFxiL2ldLFtjLFttLFwiT1BQT1wiXSxbcCxnXV0sWy92aXZvIChcXHcrKSg/OiBidWl8XFwpKS9pLC9cXGIodlsxMl1cXGR7M31cXHc/W2F0XSkoPzogYnVpfDspL2ldLFtjLFttLFwiVml2b1wiXSxbcCxnXV0sWy9cXGIocm14WzEyXVxcZHszfSkoPzogYnVpfDt8XFwpKS9pXSxbYyxbbSxcIlJlYWxtZVwiXSxbcCxnXV0sWy9cXGIobWlsZXN0b25lfGRyb2lkKD86WzItNHhdfCAoPzpiaW9uaWN8eDJ8cHJvfHJhenIpKT86PyggNGcpPylcXGJbXFx3IF0rYnVpbGRcXC8vaSwvXFxibW90KD86b3JvbGEpP1stIF0oXFx3KikvaSwvKCg/Om1vdG9bXFx3XFwoXFwpIF0rfHh0XFxkezMsNH18bmV4dXMgNikoPz0gYnVpfFxcKSkpL2ldLFtjLFttLE1dLFtwLGddXSxbL1xcYihtejYwXFxkfHhvb21bMiBdezAsMn0pIGJ1aWxkXFwvL2ldLFtjLFttLE1dLFtwLGtdXSxbLygoPz1sZyk/W3ZsXWtcXC0/XFxkezN9KSBidWl8IDNcXC5bLVxcdzsgXXsxMH1sZz8tKFswNmN2OV17Myw0fSkvaV0sW2MsW20sUF0sW3Asa11dLFsvKGxtKD86LT9mMTAwW252XT98LVtcXHdcXC5dKykoPz0gYnVpfFxcKSl8bmV4dXMgWzQ1XSkvaSwvXFxibGdbLWU7XFwvIF0rKCg/IWJyb3dzZXJ8bmV0Y2FzdHxhbmRyb2lkIHR2KVxcdyspL2ksL1xcYmxnLT8oW1xcZFxcd10rKSBidWkvaV0sW2MsW20sUF0sW3AsZ11dLFsvKGlkZWF0YWJbLVxcdyBdKykvaSwvbGVub3ZvID8oc1s1Nl0wMDBbLVxcd10rfHRhYig/OltcXHcgXSspfHl0Wy1cXGRcXHddezZ9fHRiWy1cXGRcXHddezZ9KS9pXSxbYyxbbSxcIkxlbm92b1wiXSxbcCxrXV0sWy8oPzptYWVtb3xub2tpYSkuKihuOTAwfGx1bWlhIFxcZCspL2ksL25va2lhWy1fIF0/KFstXFx3XFwuXSopL2ldLFtbYywvXy9nLFwiIFwiXSxbbSxcIk5va2lhXCJdLFtwLGddXSxbLyhwaXhlbCBjKVxcYi9pXSxbYyxbbSxVXSxbcCxrXV0sWy9kcm9pZC4rOyAocGl4ZWxbXFxkYXhsIF17MCw2fSkoPzogYnVpfFxcKSkvaV0sW2MsW20sVV0sW3AsZ11dLFsvZHJvaWQuKyAoYT9cXGRbMC0yXXsyfXNvfFtjLWddXFxkezR9fHNvWy1nbF1cXHcrfHhxLWFcXHdbNC03XVsxMl0pKD89IGJ1aXxcXCkuK2Nocm9tZVxcLyg/IVsxLTZdezAsMX1cXGRcXC4pKS9pXSxbYyxbbSxJXSxbcCxnXV0sWy9zb255IHRhYmxldCBbcHNdL2ksL1xcYig/OnNvbnkpP3NncFxcdysoPzogYnVpfFxcKSkvaV0sW1tjLFwiWHBlcmlhIFRhYmxldFwiXSxbbSxJXSxbcCxrXV0sWy8gKGtiMjAwNXxpbjIwWzEyXTV8YmUyMFsxMl1bNTldKVxcYi9pLC8oPzpvbmUpPyg/OnBsdXMpPyAoYVxcZDBcXGRcXGQpKD86IGJ8XFwpKS9pXSxbYyxbbSxcIk9uZVBsdXNcIl0sW3AsZ11dLFsvKGFsZXhhKXdlYm0vaSwvKGtmW2Etel17Mn13aXxhZW9bYy1yXXsyfSkoIGJ1aXxcXCkpL2ksLyhrZlthLXpdKykoIGJ1aXxcXCkpLitzaWxrXFwvL2ldLFtjLFttLFRdLFtwLGtdXSxbLygoPzpzZHxrZilbMDM0OWhpam9yc3R1d10rKSggYnVpfFxcKSkuK3NpbGtcXC8vaV0sW1tjLC8oLispL2csXCJGaXJlIFBob25lICQxXCJdLFttLFRdLFtwLGddXSxbLyhwbGF5Ym9vayk7Wy1cXHdcXCksOyBdKyhyaW0pL2ldLFtjLG0sW3Asa11dLFsvXFxiKCg/OmJiW2EtZl18c3RbaHZdKTEwMC1cXGQpL2ksL1xcKGJiMTA7IChcXHcrKS9pXSxbYyxbbSxOXSxbcCxnXV0sWy8oPzpcXGJ8YXN1c18pKHRyYW5zZm9bcHJpbWUgXXs0LDEwfSBcXHcrfGVlZXBjfHNsaWRlciBcXHcrfG5leHVzIDd8cGFkZm9uZXxwMDBbY2pdKS9pXSxbYyxbbSx6XSxbcCxrXV0sWy8gKHpbYmVzXTZbMDI3XVswMTJdW2ttXVtsc118emVuZm9uZSBcXGRcXHc/KVxcYi9pXSxbYyxbbSx6XSxbcCxnXV0sWy8obmV4dXMgOSkvaV0sW2MsW20sXCJIVENcIl0sW3Asa11dLFsvKGh0YylbLTtfIF17MSwyfShbXFx3IF0rKD89XFwpfCBidWkpfFxcdyspL2ksLyh6dGUpWy0gXShbXFx3IF0rPykoPzogYnVpfFxcL3xcXCkpL2ksLyhhbGNhdGVsfGdlZWtzcGhvbmV8bmV4aWFufHBhbmFzb25pYyg/ISg/Ojt8XFwuKSl8c29ueSg/IS1icmEpKVstXyBdPyhbLVxcd10qKS9pXSxbbSxbYywvXy9nLFwiIFwiXSxbcCxnXV0sWy9kcm9pZC4rOyAoW2FiXVsxLTddLT9bMDE3OGFdXFxkXFxkPykvaV0sW2MsW20sXCJBY2VyXCJdLFtwLGtdXSxbL2Ryb2lkLis7IChtWzEtNV0gbm90ZSkgYnVpL2ksL1xcYm16LShbLVxcd117Mix9KS9pXSxbYyxbbSxcIk1laXp1XCJdLFtwLGddXSxbLyhibGFja2JlcnJ5fGJlbnF8cGFsbSg/PVxcLSl8c29ueWVyaWNzc29ufGFjZXJ8YXN1c3xkZWxsfG1laXp1fG1vdG9yb2xhfHBvbHl0cm9uKVstXyBdPyhbLVxcd10qKS9pLC8oaHApIChbXFx3IF0rXFx3KS9pLC8oYXN1cyktPyhcXHcrKS9pLC8obWljcm9zb2Z0KTsgKGx1bWlhW1xcdyBdKykvaSwvKGxlbm92bylbLV8gXT8oWy1cXHddKykvaSwvKGpvbGxhKS9pLC8ob3BwbykgPyhbXFx3IF0rKSBidWkvaV0sW20sYyxbcCxnXV0sWy8oa29ibylcXHMoZXJlYWRlcnx0b3VjaCkvaSwvKGFyY2hvcykgKGdhbWVwYWQyPykvaSwvKGhwKS4rKHRvdWNocGFkKD8hLit0YWJsZXQpfHRhYmxldCkvaSwvKGtpbmRsZSlcXC8oW1xcd1xcLl0rKS9pLC8obm9vaylbXFx3IF0rYnVpbGRcXC8oXFx3KykvaSwvKGRlbGwpIChzdHJlYVtrcHJcXGQgXSpbXFxka29dKS9pLC8obGVbLSBdK3BhbilbLSBdKyhcXHd7MSw5fSkgYnVpL2ksLyh0cmluaXR5KVstIF0qKHRcXGR7M30pIGJ1aS9pLC8oZ2lnYXNldClbLSBdKyhxXFx3ezEsOX0pIGJ1aS9pLC8odm9kYWZvbmUpIChbXFx3IF0rKSg/OlxcKXwgYnVpKS9pXSxbbSxjLFtwLGtdXSxbLyhzdXJmYWNlIGR1bykvaV0sW2MsW20sUl0sW3Asa11dLFsvZHJvaWQgW1xcZFxcLl0rOyAoZnBcXGR1PykoPzogYnxcXCkpL2ldLFtjLFttLFwiRmFpcnBob25lXCJdLFtwLGddXSxbLyh1MzA0YWEpL2ldLFtjLFttLFwiQVQmVFwiXSxbcCxnXV0sWy9cXGJzaWUtKFxcdyopL2ldLFtjLFttLFwiU2llbWVuc1wiXSxbcCxnXV0sWy9cXGIocmN0XFx3KykgYi9pXSxbYyxbbSxcIlJDQVwiXSxbcCxrXV0sWy9cXGIodmVudWVbXFxkIF17Miw3fSkgYi9pXSxbYyxbbSxcIkRlbGxcIl0sW3Asa11dLFsvXFxiKHEoPzptdnx0YSlcXHcrKSBiL2ldLFtjLFttLFwiVmVyaXpvblwiXSxbcCxrXV0sWy9cXGIoPzpiYXJuZXNbJiBdK25vYmxlIHxibltydF0pKFtcXHdcXCsgXSopIGIvaV0sW2MsW20sXCJCYXJuZXMgJiBOb2JsZVwiXSxbcCxrXV0sWy9cXGIodG1cXGR7M31cXHcrKSBiL2ldLFtjLFttLFwiTnVWaXNpb25cIl0sW3Asa11dLFsvXFxiKGs4OCkgYi9pXSxbYyxbbSxcIlpURVwiXSxbcCxrXV0sWy9cXGIobnhcXGR7M31qKSBiL2ldLFtjLFttLFwiWlRFXCJdLFtwLGddXSxbL1xcYihnZW5cXGR7M30pIGIuKzQ5aC9pXSxbYyxbbSxcIlN3aXNzXCJdLFtwLGddXSxbL1xcYih6dXJcXGR7M30pIGIvaV0sW2MsW20sXCJTd2lzc1wiXSxbcCxrXV0sWy9cXGIoKHpla2kpP3RiLipcXGIpIGIvaV0sW2MsW20sXCJaZWtpXCJdLFtwLGtdXSxbL1xcYihbeXJdXFxkezJ9KSBiL2ksL1xcYihkcmFnb25bLSBdK3RvdWNoIHxkdCkoXFx3ezV9KSBiL2ldLFtbbSxcIkRyYWdvbiBUb3VjaFwiXSxjLFtwLGtdXSxbL1xcYihucy0/XFx3ezAsOX0pIGIvaV0sW2MsW20sXCJJbnNpZ25pYVwiXSxbcCxrXV0sWy9cXGIoKG54YXxuZXh0KS0/XFx3ezAsOX0pIGIvaV0sW2MsW20sXCJOZXh0Qm9va1wiXSxbcCxrXV0sWy9cXGIoeHRyZW1lXFxfKT8odigxWzA0NV18MlswMTVdfFszNDY5XTB8N1swNV0pKSBiL2ldLFtbbSxcIlZvaWNlXCJdLGMsW3AsZ11dLFsvXFxiKGx2dGVsXFwtKT8odjFbMTJdKSBiL2ldLFtbbSxcIkx2VGVsXCJdLGMsW3AsZ11dLFsvXFxiKHBoLTEpIC9pXSxbYyxbbSxcIkVzc2VudGlhbFwiXSxbcCxnXV0sWy9cXGIodigxMDBtZHw3MDBuYXw3MDExfDkxN2cpLipcXGIpIGIvaV0sW2MsW20sXCJFbnZpemVuXCJdLFtwLGtdXSxbL1xcYih0cmlvWy1cXHdcXC4gXSspIGIvaV0sW2MsW20sXCJNYWNoU3BlZWRcIl0sW3Asa11dLFsvXFxidHVfKDE0OTEpIGIvaV0sW2MsW20sXCJSb3RvclwiXSxbcCxrXV0sWy8oc2hpZWxkW1xcdyBdKykgYi9pXSxbYyxbbSxcIk52aWRpYVwiXSxbcCxrXV0sWy8oc3ByaW50KSAoXFx3KykvaV0sW20sYyxbcCxnXV0sWy8oa2luXFwuW29uZXR3XXszfSkvaV0sW1tjLC9cXC4vZyxcIiBcIl0sW20sUl0sW3AsZ11dLFsvZHJvaWQuKzsgKGNjNjY2Nj98ZXQ1WzE2XXxtY1syMzldWzIzXXg/fHZjOFswM114PylcXCkvaV0sW2MsW20sR10sW3Asa11dLFsvZHJvaWQuKzsgKGVjMzB8cHMyMHx0Y1syLThdXFxkW2t4XSlcXCkvaV0sW2MsW20sR10sW3AsZ11dLFsvc21hcnQtdHYuKyhzYW1zdW5nKS9pXSxbbSxbcCx4XV0sWy9oYmJ0di4rbWFwbGU7KFxcZCspL2ldLFtbYywvXi8sXCJTbWFydFRWXCJdLFttLFZdLFtwLHhdXSxbLyhudXg7IG5ldGNhc3QuK3NtYXJ0dHZ8bGcgKG5ldGNhc3RcXC50di0yMDFcXGR8YW5kcm9pZCB0dikpL2ldLFtbbSxQXSxbcCx4XV0sWy8oYXBwbGUpID90di9pXSxbbSxbYyxTK1wiIFRWXCJdLFtwLHhdXSxbL2Nya2V5L2ldLFtbYyxDK1wiY2FzdFwiXSxbbSxVXSxbcCx4XV0sWy9kcm9pZC4rYWZ0KFxcdykoIGJ1aXxcXCkpL2ldLFtjLFttLFRdLFtwLHhdXSxbL1xcKGR0dltcXCk7XS4rKGFxdW9zKS9pLC8oYXF1b3MtdHZbXFx3IF0rKVxcKS9pXSxbYyxbbSxEXSxbcCx4XV0sWy8oYnJhdmlhW1xcdyBdKykoIGJ1aXxcXCkpL2ldLFtjLFttLEldLFtwLHhdXSxbLyhtaXR2LVxcd3s1fSkgYnVpL2ldLFtjLFttLEZdLFtwLHhdXSxbL0hiYnR2LioodGVjaG5pc2F0KSAoLiopOy9pXSxbbSxjLFtwLHhdXSxbL1xcYihyb2t1KVtcXGR4XSpbXFwpXFwvXSgoPzpkdnAtKT9bXFxkXFwuXSopL2ksL2hiYnR2XFwvXFxkK1xcLlxcZCtcXC5cXGQrICtcXChbXFx3XFwrIF0qOyAqKFtcXHdcXGRdW147XSopOyhbXjtdKikvaV0sW1ttLHRyaW1dLFtjLHRyaW1dLFtwLHhdXSxbL1xcYihhbmRyb2lkIHR2fHNtYXJ0Wy0gXT90dnxvcGVyYSB0dnx0djsgcnY6KVxcYi9pXSxbW3AseF1dLFsvKG91eWEpL2ksLyhuaW50ZW5kbykgKFt3aWRzM3V0Y2hdKykvaV0sW20sYyxbcCx2XV0sWy9kcm9pZC4rOyAoc2hpZWxkKSBidWkvaV0sW2MsW20sXCJOdmlkaWFcIl0sW3Asdl1dLFsvKHBsYXlzdGF0aW9uIFszNDVwb3J0YWJsZXZpXSspL2ldLFtjLFttLEldLFtwLHZdXSxbL1xcYih4Ym94KD86IG9uZSk/KD8hOyB4Ym94KSlbXFwpOyBdL2ldLFtjLFttLFJdLFtwLHZdXSxbLygocGViYmxlKSlhcHAvaV0sW20sYyxbcCxfXV0sWy8od2F0Y2gpKD86ID9vc1ssXFwvXXxcXGQsXFxkXFwvKVtcXGRcXC5dKy9pXSxbYyxbbSxTXSxbcCxfXV0sWy9kcm9pZC4rOyAoZ2xhc3MpIFxcZC9pXSxbYyxbbSxVXSxbcCxfXV0sWy9kcm9pZC4rOyAod3Q2Mz8wezIsM30pXFwpL2ldLFtjLFttLEddLFtwLF9dXSxbLyhxdWVzdCggMnwgcHJvKT8pL2ldLFtjLFttLEhdLFtwLF9dXSxbLyh0ZXNsYSkoPzogcXRjYXJicm93c2VyfFxcL1stXFx3XFwuXSspL2ldLFttLFtwLHldXSxbLyhhZW9iYylcXGIvaV0sW2MsW20sVF0sW3AseV1dLFsvZHJvaWQgLis/OyAoW147XSs/KSg/OiBidWl8XFwpIGFwcGxldykuKz8gbW9iaWxlIHNhZmFyaS9pXSxbYyxbcCxnXV0sWy9kcm9pZCAuKz87IChbXjtdKz8pKD86IGJ1aXxcXCkgYXBwbGV3KS4rPyg/ISBtb2JpbGUpIHNhZmFyaS9pXSxbYyxbcCxrXV0sWy9cXGIoKHRhYmxldHx0YWIpWztcXC9dfGZvY3VzXFwvXFxkKD8hLittb2JpbGUpKS9pXSxbW3Asa11dLFsvKHBob25lfG1vYmlsZSg/Ols7XFwvXXwgWyBcXHdcXC9cXC5dKnNhZmFyaSl8cGRhKD89Lit3aW5kb3dzIGNlKSkvaV0sW1twLGddXSxbLyhhbmRyb2lkWy1cXHdcXC4gXXswLDl9KTsuK2J1aWwvaV0sW2MsW20sXCJHZW5lcmljXCJdXV0sZW5naW5lOltbL3dpbmRvd3MuKyBlZGdlXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsRStcIkhUTUxcIl1dLFsvd2Via2l0XFwvNTM3XFwuMzYuK2Nocm9tZVxcLyg/ITI3KShbXFx3XFwuXSspL2ldLFtmLFt1LFwiQmxpbmtcIl1dLFsvKHByZXN0bylcXC8oW1xcd1xcLl0rKS9pLC8od2Via2l0fHRyaWRlbnR8bmV0ZnJvbnR8bmV0c3VyZnxhbWF5YXxseW54fHczbXxnb2FubmEpXFwvKFtcXHdcXC5dKykvaSwvZWtpb2goZmxvdylcXC8oW1xcd1xcLl0rKS9pLC8oa2h0bWx8dGFzbWFufGxpbmtzKVtcXC8gXVxcKD8oW1xcd1xcLl0rKS9pLC8oaWNhYilbXFwvIF0oWzIzXVxcLltcXGRcXC5dKykvaSwvXFxiKGxpYndlYikvaV0sW3UsZl0sWy9ydlxcOihbXFx3XFwuXXsxLDl9KVxcYi4rKGdlY2tvKS9pXSxbZix1XV0sb3M6W1svbWljcm9zb2Z0ICh3aW5kb3dzKSAodmlzdGF8eHApL2ldLFt1LGZdLFsvKHdpbmRvd3MpIG50IDZcXC4yOyAoYXJtKS9pLC8od2luZG93cyAoPzpwaG9uZSg/OiBvcyk/fG1vYmlsZSkpW1xcLyBdPyhbXFxkXFwuXFx3IF0qKS9pLC8od2luZG93cylbXFwvIF0/KFtudGNlXFxkXFwuIF0rXFx3KSg/IS4reGJveCkvaV0sW3UsW2Ysc3RyTWFwcGVyLFhdXSxbLyh3aW4oPz0zfDl8bil8d2luIDl4ICkoW250XFxkXFwuXSspL2ldLFtbdSxcIldpbmRvd3NcIl0sW2Ysc3RyTWFwcGVyLFhdXSxbL2lwW2hvbmVhZF17Miw0fVxcYig/Oi4qb3MgKFtcXHddKykgbGlrZSBtYWN8OyBvcGVyYSkvaSwvaW9zO2Zic3ZcXC8oW1xcZFxcLl0rKS9pLC9jZm5ldHdvcmtcXC8uK2Rhcndpbi9pXSxbW2YsL18vZyxcIi5cIl0sW3UsXCJpT1NcIl1dLFsvKG1hYyBvcyB4KSA/KFtcXHdcXC4gXSopL2ksLyhtYWNpbnRvc2h8bWFjX3Bvd2VycGNcXGIpKD8hLitoYWlrdSkvaV0sW1t1LFpdLFtmLC9fL2csXCIuXCJdXSxbL2Ryb2lkIChbXFx3XFwuXSspXFxiLisoYW5kcm9pZFstIF14ODZ8aGFybW9ueW9zKS9pXSxbZix1XSxbLyhhbmRyb2lkfHdlYm9zfHFueHxiYWRhfHJpbSB0YWJsZXQgb3N8bWFlbW98bWVlZ298c2FpbGZpc2gpWy1cXC8gXT8oW1xcd1xcLl0qKS9pLC8oYmxhY2tiZXJyeSlcXHcqXFwvKFtcXHdcXC5dKikvaSwvKHRpemVufGthaW9zKVtcXC8gXShbXFx3XFwuXSspL2ksL1xcKChzZXJpZXM0MCk7L2ldLFt1LGZdLFsvXFwoYmIoMTApOy9pXSxbZixbdSxOXV0sWy8oPzpzeW1iaWFuID9vc3xzeW1ib3N8czYwKD89Oyl8c2VyaWVzNjApWy1cXC8gXT8oW1xcd1xcLl0qKS9pXSxbZixbdSxcIlN5bWJpYW5cIl1dLFsvbW96aWxsYVxcL1tcXGRcXC5dKyBcXCgoPzptb2JpbGV8dGFibGV0fHR2fG1vYmlsZTsgW1xcdyBdKyk7IHJ2Oi4rIGdlY2tvXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsTytcIiBPU1wiXV0sWy93ZWIwczsuK3J0KHR2KS9pLC9cXGIoPzpocCk/d29zKD86YnJvd3Nlcik/XFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJ3ZWJPU1wiXV0sWy93YXRjaCg/OiA/b3NbLFxcL118XFxkLFxcZFxcLykoW1xcZFxcLl0rKS9pXSxbZixbdSxcIndhdGNoT1NcIl1dLFsvY3JrZXlcXC8oW1xcZFxcLl0rKS9pXSxbZixbdSxDK1wiY2FzdFwiXV0sWy8oY3JvcykgW1xcd10rKD86XFwpfCAoW1xcd1xcLl0rKVxcYikvaV0sW1t1LExdLGZdLFsvcGFuYXNvbmljOyh2aWVyYSkvaSwvKG5ldHJhbmdlKW1taC9pLC8obmV0dHYpXFwvKFxcZCtcXC5bXFx3XFwuXSspL2ksLyhuaW50ZW5kb3xwbGF5c3RhdGlvbikgKFt3aWRzMzQ1cG9ydGFibGV2dWNoXSspL2ksLyh4Ym94KTsgK3hib3ggKFteXFwpO10rKS9pLC9cXGIoam9saXxwYWxtKVxcYiA/KD86b3MpP1xcLz8oW1xcd1xcLl0qKS9pLC8obWludClbXFwvXFwoXFwpIF0/KFxcdyopL2ksLyhtYWdlaWF8dmVjdG9ybGludXgpWzsgXS9pLC8oW2t4bG5dP3VidW50dXxkZWJpYW58c3VzZXxvcGVuc3VzZXxnZW50b298YXJjaCg/PSBsaW51eCl8c2xhY2t3YXJlfGZlZG9yYXxtYW5kcml2YXxjZW50b3N8cGNsaW51eG9zfHJlZCA/aGF0fHplbndhbGt8bGlucHVzfHJhc3BiaWFufHBsYW4gOXxtaW5peHxyaXNjIG9zfGNvbnRpa2l8ZGVlcGlufG1hbmphcm98ZWxlbWVudGFyeSBvc3xzYWJheW9ufGxpbnNwaXJlKSg/OiBnbnVcXC9saW51eCk/KD86IGVudGVycHJpc2UpPyg/OlstIF1saW51eCk/KD86LWdudSk/Wy1cXC8gXT8oPyFjaHJvbXxwYWNrYWdlKShbLVxcd1xcLl0qKS9pLC8oaHVyZHxsaW51eCkgPyhbXFx3XFwuXSopL2ksLyhnbnUpID8oW1xcd1xcLl0qKS9pLC9cXGIoWy1mcmVudG9wY2doc117MCw1fWJzZHxkcmFnb25mbHkpW1xcLyBdPyg/IWFtZHxbaXgzNDZdezEsMn04NikoW1xcd1xcLl0qKS9pLC8oaGFpa3UpIChcXHcrKS9pXSxbdSxmXSxbLyhzdW5vcykgPyhbXFx3XFwuXFxkXSopL2ldLFtbdSxcIlNvbGFyaXNcIl0sZl0sWy8oKD86b3Blbik/c29sYXJpcylbLVxcLyBdPyhbXFx3XFwuXSopL2ksLyhhaXgpICgoXFxkKSg/PVxcLnxcXCl8IClbXFx3XFwuXSkqL2ksL1xcYihiZW9zfG9zXFwvMnxhbWlnYW9zfG1vcnBob3N8b3BlbnZtc3xmdWNoc2lhfGhwLXV4fHNlcmVuaXR5b3MpL2ksLyh1bml4KSA/KFtcXHdcXC5dKikvaV0sW3UsZl1dfTt2YXIgVUFQYXJzZXI9ZnVuY3Rpb24oaSxlKXtpZih0eXBlb2YgaT09PXcpe2U9aTtpPWF9aWYoISh0aGlzIGluc3RhbmNlb2YgVUFQYXJzZXIpKXtyZXR1cm4gbmV3IFVBUGFyc2VyKGksZSkuZ2V0UmVzdWx0KCl9dmFyIHI9dHlwZW9mIG8hPT1iJiZvLm5hdmlnYXRvcj9vLm5hdmlnYXRvcjphO3ZhciBuPWl8fChyJiZyLnVzZXJBZ2VudD9yLnVzZXJBZ2VudDp0KTt2YXIgdj1yJiZyLnVzZXJBZ2VudERhdGE/ci51c2VyQWdlbnREYXRhOmE7dmFyIHg9ZT9leHRlbmQoSyxlKTpLO3ZhciBfPXImJnIudXNlckFnZW50PT1uO3RoaXMuZ2V0QnJvd3Nlcj1mdW5jdGlvbigpe3ZhciBpPXt9O2lbdV09YTtpW2ZdPWE7cmd4TWFwcGVyLmNhbGwoaSxuLHguYnJvd3Nlcik7aVtkXT1tYWpvcml6ZShpW2ZdKTtpZihfJiZyJiZyLmJyYXZlJiZ0eXBlb2Ygci5icmF2ZS5pc0JyYXZlPT1zKXtpW3VdPVwiQnJhdmVcIn1yZXR1cm4gaX07dGhpcy5nZXRDUFU9ZnVuY3Rpb24oKXt2YXIgaT17fTtpW2hdPWE7cmd4TWFwcGVyLmNhbGwoaSxuLHguY3B1KTtyZXR1cm4gaX07dGhpcy5nZXREZXZpY2U9ZnVuY3Rpb24oKXt2YXIgaT17fTtpW21dPWE7aVtjXT1hO2lbcF09YTtyZ3hNYXBwZXIuY2FsbChpLG4seC5kZXZpY2UpO2lmKF8mJiFpW3BdJiZ2JiZ2Lm1vYmlsZSl7aVtwXT1nfWlmKF8mJmlbY109PVwiTWFjaW50b3NoXCImJnImJnR5cGVvZiByLnN0YW5kYWxvbmUhPT1iJiZyLm1heFRvdWNoUG9pbnRzJiZyLm1heFRvdWNoUG9pbnRzPjIpe2lbY109XCJpUGFkXCI7aVtwXT1rfXJldHVybiBpfTt0aGlzLmdldEVuZ2luZT1mdW5jdGlvbigpe3ZhciBpPXt9O2lbdV09YTtpW2ZdPWE7cmd4TWFwcGVyLmNhbGwoaSxuLHguZW5naW5lKTtyZXR1cm4gaX07dGhpcy5nZXRPUz1mdW5jdGlvbigpe3ZhciBpPXt9O2lbdV09YTtpW2ZdPWE7cmd4TWFwcGVyLmNhbGwoaSxuLHgub3MpO2lmKF8mJiFpW3VdJiZ2JiZ2LnBsYXRmb3JtIT1cIlVua25vd25cIil7aVt1XT12LnBsYXRmb3JtLnJlcGxhY2UoL2Nocm9tZSBvcy9pLEwpLnJlcGxhY2UoL21hY29zL2ksWil9cmV0dXJuIGl9O3RoaXMuZ2V0UmVzdWx0PWZ1bmN0aW9uKCl7cmV0dXJue3VhOnRoaXMuZ2V0VUEoKSxicm93c2VyOnRoaXMuZ2V0QnJvd3NlcigpLGVuZ2luZTp0aGlzLmdldEVuZ2luZSgpLG9zOnRoaXMuZ2V0T1MoKSxkZXZpY2U6dGhpcy5nZXREZXZpY2UoKSxjcHU6dGhpcy5nZXRDUFUoKX19O3RoaXMuZ2V0VUE9ZnVuY3Rpb24oKXtyZXR1cm4gbn07dGhpcy5zZXRVQT1mdW5jdGlvbihpKXtuPXR5cGVvZiBpPT09bCYmaS5sZW5ndGg+cT90cmltKGkscSk6aTtyZXR1cm4gdGhpc307dGhpcy5zZXRVQShuKTtyZXR1cm4gdGhpc307VUFQYXJzZXIuVkVSU0lPTj1yO1VBUGFyc2VyLkJST1dTRVI9ZW51bWVyaXplKFt1LGYsZF0pO1VBUGFyc2VyLkNQVT1lbnVtZXJpemUoW2hdKTtVQVBhcnNlci5ERVZJQ0U9ZW51bWVyaXplKFtjLG0scCx2LGcseCxrLF8seV0pO1VBUGFyc2VyLkVOR0lORT1VQVBhcnNlci5PUz1lbnVtZXJpemUoW3UsZl0pO2lmKHR5cGVvZiBlIT09Yil7aWYoXCJvYmplY3RcIiE9PWImJmkuZXhwb3J0cyl7ZT1pLmV4cG9ydHM9VUFQYXJzZXJ9ZS5VQVBhcnNlcj1VQVBhcnNlcn1lbHNle2lmKHR5cGVvZiBkZWZpbmU9PT1zJiZkZWZpbmUuYW1kKXtkZWZpbmUoKGZ1bmN0aW9uKCl7cmV0dXJuIFVBUGFyc2VyfSkpfWVsc2UgaWYodHlwZW9mIG8hPT1iKXtvLlVBUGFyc2VyPVVBUGFyc2VyfX12YXIgUT10eXBlb2YgbyE9PWImJihvLmpRdWVyeXx8by5aZXB0byk7aWYoUSYmIVEudWEpe3ZhciBZPW5ldyBVQVBhcnNlcjtRLnVhPVkuZ2V0UmVzdWx0KCk7US51YS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gWS5nZXRVQSgpfTtRLnVhLnNldD1mdW5jdGlvbihpKXtZLnNldFVBKGkpO3ZhciBlPVkuZ2V0UmVzdWx0KCk7Zm9yKHZhciBvIGluIGUpe1EudWFbb109ZVtvXX19fX0pKHR5cGVvZiB3aW5kb3c9PT1cIm9iamVjdFwiP3dpbmRvdzp0aGlzKX19O3ZhciBlPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18obyl7dmFyIGE9ZVtvXTtpZihhIT09dW5kZWZpbmVkKXtyZXR1cm4gYS5leHBvcnRzfXZhciByPWVbb109e2V4cG9ydHM6e319O3ZhciB0PXRydWU7dHJ5e2lbb10uY2FsbChyLmV4cG9ydHMscixyLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7dD1mYWxzZX1maW5hbGx5e2lmKHQpZGVsZXRlIGVbb119cmV0dXJuIHIuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIG89X19uY2N3cGNrX3JlcXVpcmVfXygyMjYpO21vZHVsZS5leHBvcnRzPW99KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/batcher.js":
/*!***********************************************!*\
!*** ./node_modules/next/dist/lib/batcher.js ***!
\***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Batcher\", ({\n enumerable: true,\n get: function() {\n return Batcher;\n }\n}));\nconst _detachedpromise = __webpack_require__(/*! ./detached-promise */ \"(rsc)/./node_modules/next/dist/lib/detached-promise.js\");\nclass Batcher {\n constructor(cacheKeyFn, /**\n * A function that will be called to schedule the wrapped function to be\n * executed. This defaults to a function that will execute the function\n * immediately.\n */ schedulerFn = (fn)=>fn()){\n this.cacheKeyFn = cacheKeyFn;\n this.schedulerFn = schedulerFn;\n this.pending = new Map();\n }\n static create(options) {\n return new Batcher(options == null ? void 0 : options.cacheKeyFn, options == null ? void 0 : options.schedulerFn);\n }\n /**\n * Wraps a function in a promise that will be resolved or rejected only once\n * for a given key. This will allow multiple calls to the function to be\n * made, but only one will be executed at a time. The result of the first\n * call will be returned to all callers.\n *\n * @param key the key to use for the cache\n * @param fn the function to wrap\n * @returns a promise that resolves to the result of the function\n */ async batch(key, fn) {\n const cacheKey = this.cacheKeyFn ? await this.cacheKeyFn(key) : key;\n if (cacheKey === null) {\n return fn(cacheKey, Promise.resolve);\n }\n const pending = this.pending.get(cacheKey);\n if (pending) return pending;\n const { promise, resolve, reject } = new _detachedpromise.DetachedPromise();\n this.pending.set(cacheKey, promise);\n this.schedulerFn(async ()=>{\n try {\n const result = await fn(cacheKey, resolve);\n // Resolving a promise multiple times is a no-op, so we can safely\n // resolve all pending promises with the same result.\n resolve(result);\n } catch (err) {\n reject(err);\n } finally{\n this.pending.delete(cacheKey);\n }\n });\n return promise;\n }\n}\n\n//# sourceMappingURL=batcher.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9iYXRjaGVyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YseUJBQXlCLG1CQUFPLENBQUMsa0ZBQW9CO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMkJBQTJCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9iYXRjaGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiQmF0Y2hlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQmF0Y2hlcjtcbiAgICB9XG59KTtcbmNvbnN0IF9kZXRhY2hlZHByb21pc2UgPSByZXF1aXJlKFwiLi9kZXRhY2hlZC1wcm9taXNlXCIpO1xuY2xhc3MgQmF0Y2hlciB7XG4gICAgY29uc3RydWN0b3IoY2FjaGVLZXlGbiwgLyoqXG4gICAgICogQSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIHRvIHNjaGVkdWxlIHRoZSB3cmFwcGVkIGZ1bmN0aW9uIHRvIGJlXG4gICAgICogZXhlY3V0ZWQuIFRoaXMgZGVmYXVsdHMgdG8gYSBmdW5jdGlvbiB0aGF0IHdpbGwgZXhlY3V0ZSB0aGUgZnVuY3Rpb25cbiAgICAgKiBpbW1lZGlhdGVseS5cbiAgICAgKi8gc2NoZWR1bGVyRm4gPSAoZm4pPT5mbigpKXtcbiAgICAgICAgdGhpcy5jYWNoZUtleUZuID0gY2FjaGVLZXlGbjtcbiAgICAgICAgdGhpcy5zY2hlZHVsZXJGbiA9IHNjaGVkdWxlckZuO1xuICAgICAgICB0aGlzLnBlbmRpbmcgPSBuZXcgTWFwKCk7XG4gICAgfVxuICAgIHN0YXRpYyBjcmVhdGUob3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IEJhdGNoZXIob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5jYWNoZUtleUZuLCBvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLnNjaGVkdWxlckZuKTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFdyYXBzIGEgZnVuY3Rpb24gaW4gYSBwcm9taXNlIHRoYXQgd2lsbCBiZSByZXNvbHZlZCBvciByZWplY3RlZCBvbmx5IG9uY2VcbiAgICogZm9yIGEgZ2l2ZW4ga2V5LiBUaGlzIHdpbGwgYWxsb3cgbXVsdGlwbGUgY2FsbHMgdG8gdGhlIGZ1bmN0aW9uIHRvIGJlXG4gICAqIG1hZGUsIGJ1dCBvbmx5IG9uZSB3aWxsIGJlIGV4ZWN1dGVkIGF0IGEgdGltZS4gVGhlIHJlc3VsdCBvZiB0aGUgZmlyc3RcbiAgICogY2FsbCB3aWxsIGJlIHJldHVybmVkIHRvIGFsbCBjYWxsZXJzLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdG8gdXNlIGZvciB0aGUgY2FjaGVcbiAgICogQHBhcmFtIGZuIHRoZSBmdW5jdGlvbiB0byB3cmFwXG4gICAqIEByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uXG4gICAqLyBhc3luYyBiYXRjaChrZXksIGZuKSB7XG4gICAgICAgIGNvbnN0IGNhY2hlS2V5ID0gdGhpcy5jYWNoZUtleUZuID8gYXdhaXQgdGhpcy5jYWNoZUtleUZuKGtleSkgOiBrZXk7XG4gICAgICAgIGlmIChjYWNoZUtleSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZuKGNhY2hlS2V5LCBQcm9taXNlLnJlc29sdmUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBlbmRpbmcgPSB0aGlzLnBlbmRpbmcuZ2V0KGNhY2hlS2V5KTtcbiAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybiBwZW5kaW5nO1xuICAgICAgICBjb25zdCB7IHByb21pc2UsIHJlc29sdmUsIHJlamVjdCB9ID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgICAgIHRoaXMucGVuZGluZy5zZXQoY2FjaGVLZXksIHByb21pc2UpO1xuICAgICAgICB0aGlzLnNjaGVkdWxlckZuKGFzeW5jICgpPT57XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZuKGNhY2hlS2V5LCByZXNvbHZlKTtcbiAgICAgICAgICAgICAgICAvLyBSZXNvbHZpbmcgYSBwcm9taXNlIG11bHRpcGxlIHRpbWVzIGlzIGEgbm8tb3AsIHNvIHdlIGNhbiBzYWZlbHlcbiAgICAgICAgICAgICAgICAvLyByZXNvbHZlIGFsbCBwZW5kaW5nIHByb21pc2VzIHdpdGggdGhlIHNhbWUgcmVzdWx0LlxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZy5kZWxldGUoY2FjaGVLZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYXRjaGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/batcher.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/constants.js":
/*!*************************************************!*\
!*** ./node_modules/next/dist/lib/constants.js ***!
\*************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n INFINITE_CACHE: function() {\n return INFINITE_CACHE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n MATCHED_PATH_HEADER: function() {\n return MATCHED_PATH_HEADER;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NEXT_RESUME_HEADER: function() {\n return NEXT_RESUME_HEADER;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_CACHE_WRAPPER_ALIAS: function() {\n return RSC_CACHE_WRAPPER_ALIAS;\n },\n RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: function() {\n return RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SEGMENTS_DIR_SUFFIX: function() {\n return RSC_SEGMENTS_DIR_SUFFIX;\n },\n RSC_SEGMENT_SUFFIX: function() {\n return RSC_SEGMENT_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst NEXT_QUERY_PARAM_PREFIX = 'nxtP';\nconst NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI';\nconst MATCHED_PATH_HEADER = 'x-matched-path';\nconst PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate';\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = 'x-prerender-revalidate-if-generated';\nconst RSC_PREFETCH_SUFFIX = '.prefetch.rsc';\nconst RSC_SEGMENTS_DIR_SUFFIX = '.segments';\nconst RSC_SEGMENT_SUFFIX = '.segment.rsc';\nconst RSC_SUFFIX = '.rsc';\nconst ACTION_SUFFIX = '.action';\nconst NEXT_DATA_SUFFIX = '.json';\nconst NEXT_META_SUFFIX = '.meta';\nconst NEXT_BODY_SUFFIX = '.body';\nconst NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags';\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags';\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token';\nconst NEXT_RESUME_HEADER = 'next-resume';\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_';\nconst CACHE_ONE_YEAR = 31536000;\nconst INFINITE_CACHE = 0xfffffffe;\nconst MIDDLEWARE_FILENAME = 'middleware';\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = 'instrumentation';\nconst PAGES_DIR_ALIAS = 'private-next-pages';\nconst DOT_NEXT_ALIAS = 'private-dot-next';\nconst ROOT_DIR_ALIAS = 'private-next-root-dir';\nconst APP_DIR_ALIAS = 'private-next-app-dir';\nconst RSC_MOD_REF_PROXY_ALIAS = 'next/dist/build/webpack/loaders/next-flight-loader/module-proxy';\nconst RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate';\nconst RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference';\nconst RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper';\nconst RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS = 'private-next-rsc-track-dynamic-import';\nconst RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption';\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = 'private-next-rsc-action-client-wrapper';\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?';\nconst GSSP_NO_RETURNED_VALUE = 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?';\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = 'The `unstable_revalidate` property is available for general use.\\n' + 'Please use `revalidate` instead.';\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n 'app',\n 'pages',\n 'components',\n 'lib',\n 'src'\n];\nconst SERVER_RUNTIME = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs'\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */ reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: 'action-browser',\n /**\n * The Node.js bundle layer for the API routes.\n */ apiNode: 'api-node',\n /**\n * The Edge Lite bundle layer for the API routes.\n */ apiEdge: 'api-edge',\n /**\n * The layer for the middleware code.\n */ middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */ instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */ edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: 'app-pages-browser',\n /**\n * The browser client bundle layer for Pages directory.\n */ pagesDirBrowser: 'pages-dir-browser',\n /**\n * The Edge Lite bundle layer for Pages directory.\n */ pagesDirEdge: 'pages-dir-edge',\n /**\n * The Node.js bundle layer for Pages directory.\n */ pagesDirNode: 'pages-dir-node'\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.apiNode,\n WEBPACK_LAYERS_NAMES.apiEdge\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__'\n};\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBc0RMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxvQkFBb0I7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFDVElPTl9TVUZGSVg6IG51bGwsXG4gICAgQVBQX0RJUl9BTElBUzogbnVsbCxcbiAgICBDQUNIRV9PTkVfWUVBUjogbnVsbCxcbiAgICBET1RfTkVYVF9BTElBUzogbnVsbCxcbiAgICBFU0xJTlRfREVGQVVMVF9ESVJTOiBudWxsLFxuICAgIEdTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I6IG51bGwsXG4gICAgR1NTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBJTkZJTklURV9DQUNIRTogbnVsbCxcbiAgICBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTogbnVsbCxcbiAgICBNQVRDSEVEX1BBVEhfSEVBREVSOiBudWxsLFxuICAgIE1JRERMRVdBUkVfRklMRU5BTUU6IG51bGwsXG4gICAgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA6IG51bGwsXG4gICAgTkVYVF9CT0RZX1NVRkZJWDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1RBR1NfSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUzogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIOiBudWxsLFxuICAgIE5FWFRfREFUQV9TVUZGSVg6IG51bGwsXG4gICAgTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWDogbnVsbCxcbiAgICBORVhUX01FVEFfU1VGRklYOiBudWxsLFxuICAgIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYOiBudWxsLFxuICAgIE5FWFRfUkVTVU1FX0hFQURFUjogbnVsbCxcbiAgICBOT05fU1RBTkRBUkRfTk9ERV9FTlY6IG51bGwsXG4gICAgUEFHRVNfRElSX0FMSUFTOiBudWxsLFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjogbnVsbCxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI6IG51bGwsXG4gICAgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUOiBudWxsLFxuICAgIFJPT1RfRElSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fUFJPWFlfQUxJQVM6IG51bGwsXG4gICAgUlNDX0FDVElPTl9WQUxJREFURV9BTElBUzogbnVsbCxcbiAgICBSU0NfQ0FDSEVfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUzogbnVsbCxcbiAgICBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUzogbnVsbCxcbiAgICBSU0NfUFJFRkVUQ0hfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYOiBudWxsLFxuICAgIFJTQ19TRUdNRU5UX1NVRkZJWDogbnVsbCxcbiAgICBSU0NfU1VGRklYOiBudWxsLFxuICAgIFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1I6IG51bGwsXG4gICAgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUOiBudWxsLFxuICAgIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU0VSVkVSX1JVTlRJTUU6IG51bGwsXG4gICAgU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjogbnVsbCxcbiAgICBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1Q6IG51bGwsXG4gICAgU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SOiBudWxsLFxuICAgIFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SOiBudWxsLFxuICAgIFdFQlBBQ0tfTEFZRVJTOiBudWxsLFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBQ1RJT05fU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFDVElPTl9TVUZGSVg7XG4gICAgfSxcbiAgICBBUFBfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEFQUF9ESVJfQUxJQVM7XG4gICAgfSxcbiAgICBDQUNIRV9PTkVfWUVBUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBDQUNIRV9PTkVfWUVBUjtcbiAgICB9LFxuICAgIERPVF9ORVhUX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIERPVF9ORVhUX0FMSUFTO1xuICAgIH0sXG4gICAgRVNMSU5UX0RFRkFVTFRfRElSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBFU0xJTlRfREVGQVVMVF9ESVJTO1xuICAgIH0sXG4gICAgR1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTUF9OT19SRVRVUk5FRF9WQUxVRTtcbiAgICB9LFxuICAgIEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I7XG4gICAgfSxcbiAgICBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEdTU1BfTk9fUkVUVVJORURfVkFMVUU7XG4gICAgfSxcbiAgICBJTkZJTklURV9DQUNIRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTkZJTklURV9DQUNIRTtcbiAgICB9LFxuICAgIElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIElOU1RSVU1FTlRBVElPTl9IT09LX0ZJTEVOQU1FO1xuICAgIH0sXG4gICAgTUFUQ0hFRF9QQVRIX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNQVRDSEVEX1BBVEhfSEVBREVSO1xuICAgIH0sXG4gICAgTUlERExFV0FSRV9GSUxFTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNSURETEVXQVJFX0ZJTEVOQU1FO1xuICAgIH0sXG4gICAgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA7XG4gICAgfSxcbiAgICBORVhUX0JPRFlfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQk9EWV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfU09GVF9UQUdfTUFYX0xFTkdUSDtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHU19IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9UQUdTX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVM7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg7XG4gICAgfSxcbiAgICBORVhUX0RBVEFfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfREFUQV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVg7XG4gICAgfSxcbiAgICBORVhUX01FVEFfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfTUVUQV9TVUZGSVg7XG4gICAgfSxcbiAgICBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDtcbiAgICB9LFxuICAgIE5FWFRfUkVTVU1FX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX1JFU1VNRV9IRUFERVI7XG4gICAgfSxcbiAgICBOT05fU1RBTkRBUkRfTk9ERV9FTlY6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTk9OX1NUQU5EQVJEX05PREVfRU5WO1xuICAgIH0sXG4gICAgUEFHRVNfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBBR0VTX0RJUl9BTElBUztcbiAgICB9LFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVI7XG4gICAgfSxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSO1xuICAgIH0sXG4gICAgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVDtcbiAgICB9LFxuICAgIFJPT1RfRElSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJPT1RfRElSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9DTElFTlRfV1JBUFBFUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fUFJPWFlfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9QUk9YWV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9WQUxJREFURV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0RZTkFNSUNfSU1QT1JUX1dSQVBQRVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0RZTkFNSUNfSU1QT1JUX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19QUkVGRVRDSF9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1BSRUZFVENIX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYO1xuICAgIH0sXG4gICAgUlNDX1NFR01FTlRfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TRUdNRU5UX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1NVRkZJWDtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTRVJWRVJfUlVOVElNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUlVOVElNRTtcbiAgICB9LFxuICAgIFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjtcbiAgICB9LFxuICAgIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SO1xuICAgIH0sXG4gICAgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I7XG4gICAgfSxcbiAgICBXRUJQQUNLX0xBWUVSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX0xBWUVSUztcbiAgICB9LFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVM7XG4gICAgfVxufSk7XG5jb25zdCBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCA9ICdueHRQJztcbmNvbnN0IE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVggPSAnbnh0SSc7XG5jb25zdCBNQVRDSEVEX1BBVEhfSEVBREVSID0gJ3gtbWF0Y2hlZC1wYXRoJztcbmNvbnN0IFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUiA9ICd4LXByZXJlbmRlci1yZXZhbGlkYXRlJztcbmNvbnN0IFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUiA9ICd4LXByZXJlbmRlci1yZXZhbGlkYXRlLWlmLWdlbmVyYXRlZCc7XG5jb25zdCBSU0NfUFJFRkVUQ0hfU1VGRklYID0gJy5wcmVmZXRjaC5yc2MnO1xuY29uc3QgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVggPSAnLnNlZ21lbnRzJztcbmNvbnN0IFJTQ19TRUdNRU5UX1NVRkZJWCA9ICcuc2VnbWVudC5yc2MnO1xuY29uc3QgUlNDX1NVRkZJWCA9ICcucnNjJztcbmNvbnN0IEFDVElPTl9TVUZGSVggPSAnLmFjdGlvbic7XG5jb25zdCBORVhUX0RBVEFfU1VGRklYID0gJy5qc29uJztcbmNvbnN0IE5FWFRfTUVUQV9TVUZGSVggPSAnLm1ldGEnO1xuY29uc3QgTkVYVF9CT0RZX1NVRkZJWCA9ICcuYm9keSc7XG5jb25zdCBORVhUX0NBQ0hFX1RBR1NfSEVBREVSID0gJ3gtbmV4dC1jYWNoZS10YWdzJztcbmNvbnN0IE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVIgPSAneC1uZXh0LXJldmFsaWRhdGVkLXRhZ3MnO1xuY29uc3QgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVIgPSAneC1uZXh0LXJldmFsaWRhdGUtdGFnLXRva2VuJztcbmNvbnN0IE5FWFRfUkVTVU1FX0hFQURFUiA9ICduZXh0LXJlc3VtZSc7XG5jb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVMgPSAxMjg7XG5jb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIID0gMjU2O1xuY29uc3QgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIID0gMTAyNDtcbmNvbnN0IE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEID0gJ19OX1RfJztcbmNvbnN0IENBQ0hFX09ORV9ZRUFSID0gMzE1MzYwMDA7XG5jb25zdCBJTkZJTklURV9DQUNIRSA9IDB4ZmZmZmZmZmU7XG5jb25zdCBNSURETEVXQVJFX0ZJTEVOQU1FID0gJ21pZGRsZXdhcmUnO1xuY29uc3QgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFAgPSBgKD86c3JjLyk/JHtNSURETEVXQVJFX0ZJTEVOQU1FfWA7XG5jb25zdCBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRSA9ICdpbnN0cnVtZW50YXRpb24nO1xuY29uc3QgUEFHRVNfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1wYWdlcyc7XG5jb25zdCBET1RfTkVYVF9BTElBUyA9ICdwcml2YXRlLWRvdC1uZXh0JztcbmNvbnN0IFJPT1RfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yb290LWRpcic7XG5jb25zdCBBUFBfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1hcHAtZGlyJztcbmNvbnN0IFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTID0gJ25leHQvZGlzdC9idWlsZC93ZWJwYWNrL2xvYWRlcnMvbmV4dC1mbGlnaHQtbG9hZGVyL21vZHVsZS1wcm94eSc7XG5jb25zdCBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLXZhbGlkYXRlJztcbmNvbnN0IFJTQ19BQ1RJT05fUFJPWFlfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1zZXJ2ZXItcmVmZXJlbmNlJztcbmNvbnN0IFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtY2FjaGUtd3JhcHBlcic7XG5jb25zdCBSU0NfRFlOQU1JQ19JTVBPUlRfV1JBUFBFUl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLXRyYWNrLWR5bmFtaWMtaW1wb3J0JztcbmNvbnN0IFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUyA9ICdwcml2YXRlLW5leHQtcnNjLWFjdGlvbi1lbmNyeXB0aW9uJztcbmNvbnN0IFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tY2xpZW50LXdyYXBwZXInO1xuY29uc3QgUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IGhhdmUgYSAnX25leHQnIGZvbGRlciBpbnNpZGUgb2YgeW91ciBwdWJsaWMgZm9sZGVyLiBUaGlzIGNvbmZsaWN0cyB3aXRoIHRoZSBpbnRlcm5hbCAnL19uZXh0JyByb3V0ZS4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHVibGljLW5leHQtZm9sZGVyLWNvbmZsaWN0YDtcbmNvbnN0IFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVCA9IGBZb3UgY2FuIG5vdCB1c2UgZ2V0SW5pdGlhbFByb3BzIHdpdGggZ2V0U3RhdGljUHJvcHMuIFRvIHVzZSBTU0csIHBsZWFzZSByZW1vdmUgeW91ciBnZXRJbml0aWFsUHJvcHNgO1xuY29uc3QgU0VSVkVSX1BST1BTX0dFVF9JTklUX1BST1BTX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRJbml0aWFsUHJvcHMgd2l0aCBnZXRTZXJ2ZXJTaWRlUHJvcHMuIFBsZWFzZSByZW1vdmUgZ2V0SW5pdGlhbFByb3BzLmA7XG5jb25zdCBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUID0gYFlvdSBjYW4gbm90IHVzZSBnZXRTdGF0aWNQcm9wcyBvciBnZXRTdGF0aWNQYXRocyB3aXRoIGdldFNlcnZlclNpZGVQcm9wcy4gVG8gdXNlIFNTRywgcGxlYXNlIHJlbW92ZSBnZXRTZXJ2ZXJTaWRlUHJvcHNgO1xuY29uc3QgU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SID0gYGNhbiBub3QgaGF2ZSBnZXRJbml0aWFsUHJvcHMvZ2V0U2VydmVyU2lkZVByb3BzLCBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy80MDQtZ2V0LWluaXRpYWwtcHJvcHNgO1xuY29uc3QgU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUiA9IGBwYWdlcyB3aXRoIFxcYGdldFNlcnZlclNpZGVQcm9wc1xcYCBjYW4gbm90IGJlIGV4cG9ydGVkLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtZXhwb3J0YDtcbmNvbnN0IEdTUF9OT19SRVRVUk5FRF9WQUxVRSA9ICdZb3VyIGBnZXRTdGF0aWNQcm9wc2AgZnVuY3Rpb24gZGlkIG5vdCByZXR1cm4gYW4gb2JqZWN0LiBEaWQgeW91IGZvcmdldCB0byBhZGQgYSBgcmV0dXJuYD8nO1xuY29uc3QgR1NTUF9OT19SRVRVUk5FRF9WQUxVRSA9ICdZb3VyIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgIGZ1bmN0aW9uIGRpZCBub3QgcmV0dXJuIGFuIG9iamVjdC4gRGlkIHlvdSBmb3JnZXQgdG8gYWRkIGEgYHJldHVybmA/JztcbmNvbnN0IFVOU1RBQkxFX1JFVkFMSURBVEVfUkVOQU1FX0VSUk9SID0gJ1RoZSBgdW5zdGFibGVfcmV2YWxpZGF0ZWAgcHJvcGVydHkgaXMgYXZhaWxhYmxlIGZvciBnZW5lcmFsIHVzZS5cXG4nICsgJ1BsZWFzZSB1c2UgYHJldmFsaWRhdGVgIGluc3RlYWQuJztcbmNvbnN0IEdTU1BfQ09NUE9ORU5UX01FTUJFUl9FUlJPUiA9IGBjYW4gbm90IGJlIGF0dGFjaGVkIHRvIGEgcGFnZSdzIGNvbXBvbmVudCBhbmQgbXVzdCBiZSBleHBvcnRlZCBmcm9tIHRoZSBwYWdlLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dzc3AtY29tcG9uZW50LW1lbWJlcmA7XG5jb25zdCBOT05fU1RBTkRBUkRfTk9ERV9FTlYgPSBgWW91IGFyZSB1c2luZyBhIG5vbi1zdGFuZGFyZCBcIk5PREVfRU5WXCIgdmFsdWUgaW4geW91ciBlbnZpcm9ubWVudC4gVGhpcyBjcmVhdGVzIGluY29uc2lzdGVuY2llcyBpbiB0aGUgcHJvamVjdCBhbmQgaXMgc3Ryb25nbHkgYWR2aXNlZCBhZ2FpbnN0LiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vbi1zdGFuZGFyZC1ub2RlLWVudmA7XG5jb25zdCBTU0dfRkFMTEJBQ0tfRVhQT1JUX0VSUk9SID0gYFBhZ2VzIHdpdGggXFxgZmFsbGJhY2tcXGAgZW5hYmxlZCBpbiBcXGBnZXRTdGF0aWNQYXRoc1xcYCBjYW4gbm90IGJlIGV4cG9ydGVkLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3NzZy1mYWxsYmFjay10cnVlLWV4cG9ydGA7XG5jb25zdCBFU0xJTlRfREVGQVVMVF9ESVJTID0gW1xuICAgICdhcHAnLFxuICAgICdwYWdlcycsXG4gICAgJ2NvbXBvbmVudHMnLFxuICAgICdsaWInLFxuICAgICdzcmMnXG5dO1xuY29uc3QgU0VSVkVSX1JVTlRJTUUgPSB7XG4gICAgZWRnZTogJ2VkZ2UnLFxuICAgIGV4cGVyaW1lbnRhbEVkZ2U6ICdleHBlcmltZW50YWwtZWRnZScsXG4gICAgbm9kZWpzOiAnbm9kZWpzJ1xufTtcbi8qKlxuICogVGhlIG5hbWVzIG9mIHRoZSB3ZWJwYWNrIGxheWVycy4gVGhlc2UgbGF5ZXJzIGFyZSB0aGUgcHJpbWl0aXZlcyBmb3IgdGhlXG4gKiB3ZWJwYWNrIGNodW5rcy5cbiAqLyBjb25zdCBXRUJQQUNLX0xBWUVSU19OQU1FUyA9IHtcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciB0aGUgc2hhcmVkIGNvZGUgYmV0d2VlbiB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgYnVuZGxlcy5cbiAgICovIHNoYXJlZDogJ3NoYXJlZCcsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3Igc2VydmVyLW9ubHkgcnVudGltZSBhbmQgcGlja2luZyB1cCBgcmVhY3Qtc2VydmVyYCBleHBvcnQgY29uZGl0aW9ucy5cbiAgICogSW5jbHVkaW5nIGFwcCByb3V0ZXIgUlNDIHBhZ2VzIGFuZCBhcHAgcm91dGVyIGN1c3RvbSByb3V0ZXMgYW5kIG1ldGFkYXRhIHJvdXRlcy5cbiAgICovIHJlYWN0U2VydmVyQ29tcG9uZW50czogJ3JzYycsXG4gICAgLyoqXG4gICAqIFNlcnZlciBTaWRlIFJlbmRlcmluZyBsYXllciBmb3IgYXBwIChzc3IpLlxuICAgKi8gc2VydmVyU2lkZVJlbmRlcmluZzogJ3NzcicsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIGFjdGlvbnMuXG4gICAqLyBhY3Rpb25Ccm93c2VyOiAnYWN0aW9uLWJyb3dzZXInLFxuICAgIC8qKlxuICAgKiBUaGUgTm9kZS5qcyBidW5kbGUgbGF5ZXIgZm9yIHRoZSBBUEkgcm91dGVzLlxuICAgKi8gYXBpTm9kZTogJ2FwaS1ub2RlJyxcbiAgICAvKipcbiAgICogVGhlIEVkZ2UgTGl0ZSBidW5kbGUgbGF5ZXIgZm9yIHRoZSBBUEkgcm91dGVzLlxuICAgKi8gYXBpRWRnZTogJ2FwaS1lZGdlJyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciB0aGUgbWlkZGxld2FyZSBjb2RlLlxuICAgKi8gbWlkZGxld2FyZTogJ21pZGRsZXdhcmUnLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHRoZSBpbnN0cnVtZW50YXRpb24gaG9va3MuXG4gICAqLyBpbnN0cnVtZW50OiAnaW5zdHJ1bWVudCcsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgYXNzZXRzIG9uIHRoZSBlZGdlLlxuICAgKi8gZWRnZUFzc2V0OiAnZWRnZS1hc3NldCcsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIEFwcCBkaXJlY3RvcnkuXG4gICAqLyBhcHBQYWdlc0Jyb3dzZXI6ICdhcHAtcGFnZXMtYnJvd3NlcicsXG4gICAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsaWVudCBidW5kbGUgbGF5ZXIgZm9yIFBhZ2VzIGRpcmVjdG9yeS5cbiAgICovIHBhZ2VzRGlyQnJvd3NlcjogJ3BhZ2VzLWRpci1icm93c2VyJyxcbiAgICAvKipcbiAgICogVGhlIEVkZ2UgTGl0ZSBidW5kbGUgbGF5ZXIgZm9yIFBhZ2VzIGRpcmVjdG9yeS5cbiAgICovIHBhZ2VzRGlyRWRnZTogJ3BhZ2VzLWRpci1lZGdlJyxcbiAgICAvKipcbiAgICogVGhlIE5vZGUuanMgYnVuZGxlIGxheWVyIGZvciBQYWdlcyBkaXJlY3RvcnkuXG4gICAqLyBwYWdlc0Rpck5vZGU6ICdwYWdlcy1kaXItbm9kZSdcbn07XG5jb25zdCBXRUJQQUNLX0xBWUVSUyA9IHtcbiAgICAuLi5XRUJQQUNLX0xBWUVSU19OQU1FUyxcbiAgICBHUk9VUDoge1xuICAgICAgICBidWlsdGluUmVhY3Q6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXJcbiAgICAgICAgXSxcbiAgICAgICAgc2VydmVyT25seTogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmluc3RydW1lbnQsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5taWRkbGV3YXJlXG4gICAgICAgIF0sXG4gICAgICAgIG5ldXRyYWxUYXJnZXQ6IFtcbiAgICAgICAgICAgIC8vIHBhZ2VzIGFwaVxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBpTm9kZSxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwaUVkZ2VcbiAgICAgICAgXSxcbiAgICAgICAgY2xpZW50T25seTogW1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlclxuICAgICAgICBdLFxuICAgICAgICBidW5kbGVkOiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnNoYXJlZCxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmluc3RydW1lbnQsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5taWRkbGV3YXJlXG4gICAgICAgIF0sXG4gICAgICAgIGFwcFBhZ2VzOiBbXG4gICAgICAgICAgICAvLyBhcHAgcm91dGVyIHBhZ2VzIGFuZCBsYXlvdXRzXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYWN0aW9uQnJvd3NlclxuICAgICAgICBdXG4gICAgfVxufTtcbmNvbnN0IFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUyA9IHtcbiAgICBlZGdlU1NSRW50cnk6ICdfX25leHRfZWRnZV9zc3JfZW50cnlfXycsXG4gICAgbWV0YWRhdGE6ICdfX25leHRfbWV0YWRhdGFfXycsXG4gICAgbWV0YWRhdGFSb3V0ZTogJ19fbmV4dF9tZXRhZGF0YV9yb3V0ZV9fJyxcbiAgICBtZXRhZGF0YUltYWdlTWV0YTogJ19fbmV4dF9tZXRhZGF0YV9pbWFnZV9tZXRhX18nXG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/constants.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/detached-promise.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/lib/detached-promise.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * A `Promise.withResolvers` implementation that exposes the `resolve` and\n * `reject` functions on a `Promise`.\n *\n * @see https://tc39.es/proposal-promise-with-resolvers/\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DetachedPromise\", ({\n enumerable: true,\n get: function() {\n return DetachedPromise;\n }\n}));\nclass DetachedPromise {\n constructor(){\n let resolve;\n let reject;\n // Create the promise and assign the resolvers to the object.\n this.promise = new Promise((res, rej)=>{\n resolve = res;\n reject = rej;\n });\n // We know that resolvers is defined because the Promise constructor runs\n // synchronously.\n this.resolve = resolve;\n this.reject = reject;\n }\n}\n\n//# sourceMappingURL=detached-promise.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9kZXRhY2hlZC1wcm9taXNlLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvZGV0YWNoZWQtcHJvbWlzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgYFByb21pc2Uud2l0aFJlc29sdmVyc2AgaW1wbGVtZW50YXRpb24gdGhhdCBleHBvc2VzIHRoZSBgcmVzb2x2ZWAgYW5kXG4gKiBgcmVqZWN0YCBmdW5jdGlvbnMgb24gYSBgUHJvbWlzZWAuXG4gKlxuICogQHNlZSBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtcHJvbWlzZS13aXRoLXJlc29sdmVycy9cbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkRldGFjaGVkUHJvbWlzZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRGV0YWNoZWRQcm9taXNlO1xuICAgIH1cbn0pO1xuY2xhc3MgRGV0YWNoZWRQcm9taXNlIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBsZXQgcmVzb2x2ZTtcbiAgICAgICAgbGV0IHJlamVjdDtcbiAgICAgICAgLy8gQ3JlYXRlIHRoZSBwcm9taXNlIGFuZCBhc3NpZ24gdGhlIHJlc29sdmVycyB0byB0aGUgb2JqZWN0LlxuICAgICAgICB0aGlzLnByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzLCByZWopPT57XG4gICAgICAgICAgICByZXNvbHZlID0gcmVzO1xuICAgICAgICAgICAgcmVqZWN0ID0gcmVqO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gV2Uga25vdyB0aGF0IHJlc29sdmVycyBpcyBkZWZpbmVkIGJlY2F1c2UgdGhlIFByb21pc2UgY29uc3RydWN0b3IgcnVuc1xuICAgICAgICAvLyBzeW5jaHJvbm91c2x5LlxuICAgICAgICB0aGlzLnJlc29sdmUgPSByZXNvbHZlO1xuICAgICAgICB0aGlzLnJlamVjdCA9IHJlamVjdDtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRldGFjaGVkLXByb21pc2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/detached-promise.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/error-telemetry-utils.js":
/*!*************************************************************!*\
!*** ./node_modules/next/dist/lib/error-telemetry-utils.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createDigestWithErrorCode: function() {\n return createDigestWithErrorCode;\n },\n extractNextErrorCode: function() {\n return extractNextErrorCode;\n }\n});\nconst ERROR_CODE_DELIMITER = '@';\nconst createDigestWithErrorCode = (thrownValue, originalDigest)=>{\n if (typeof thrownValue === 'object' && thrownValue !== null && '__NEXT_ERROR_CODE' in thrownValue) {\n return `${originalDigest}${ERROR_CODE_DELIMITER}${thrownValue.__NEXT_ERROR_CODE}`;\n }\n return originalDigest;\n};\nconst extractNextErrorCode = (error)=>{\n if (typeof error === 'object' && error !== null && '__NEXT_ERROR_CODE' in error && typeof error.__NEXT_ERROR_CODE === 'string') {\n return error.__NEXT_ERROR_CODE;\n }\n if (typeof error === 'object' && error !== null && 'digest' in error && typeof error.digest === 'string') {\n const segments = error.digest.split(ERROR_CODE_DELIMITER);\n const errorCode = segments.find((segment)=>segment.startsWith('E'));\n return errorCode;\n }\n return undefined;\n};\n\n//# sourceMappingURL=error-telemetry-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9lcnJvci10ZWxlbWV0cnktdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEI7QUFDeEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvZXJyb3ItdGVsZW1ldHJ5LXV0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlRGlnZXN0V2l0aEVycm9yQ29kZTogbnVsbCxcbiAgICBleHRyYWN0TmV4dEVycm9yQ29kZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVEaWdlc3RXaXRoRXJyb3JDb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURpZ2VzdFdpdGhFcnJvckNvZGU7XG4gICAgfSxcbiAgICBleHRyYWN0TmV4dEVycm9yQ29kZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBleHRyYWN0TmV4dEVycm9yQ29kZTtcbiAgICB9XG59KTtcbmNvbnN0IEVSUk9SX0NPREVfREVMSU1JVEVSID0gJ0AnO1xuY29uc3QgY3JlYXRlRGlnZXN0V2l0aEVycm9yQ29kZSA9ICh0aHJvd25WYWx1ZSwgb3JpZ2luYWxEaWdlc3QpPT57XG4gICAgaWYgKHR5cGVvZiB0aHJvd25WYWx1ZSA9PT0gJ29iamVjdCcgJiYgdGhyb3duVmFsdWUgIT09IG51bGwgJiYgJ19fTkVYVF9FUlJPUl9DT0RFJyBpbiB0aHJvd25WYWx1ZSkge1xuICAgICAgICByZXR1cm4gYCR7b3JpZ2luYWxEaWdlc3R9JHtFUlJPUl9DT0RFX0RFTElNSVRFUn0ke3Rocm93blZhbHVlLl9fTkVYVF9FUlJPUl9DT0RFfWA7XG4gICAgfVxuICAgIHJldHVybiBvcmlnaW5hbERpZ2VzdDtcbn07XG5jb25zdCBleHRyYWN0TmV4dEVycm9yQ29kZSA9IChlcnJvcik9PntcbiAgICBpZiAodHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvciAhPT0gbnVsbCAmJiAnX19ORVhUX0VSUk9SX0NPREUnIGluIGVycm9yICYmIHR5cGVvZiBlcnJvci5fX05FWFRfRVJST1JfQ09ERSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGVycm9yLl9fTkVYVF9FUlJPUl9DT0RFO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvciAhPT0gbnVsbCAmJiAnZGlnZXN0JyBpbiBlcnJvciAmJiB0eXBlb2YgZXJyb3IuZGlnZXN0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBzZWdtZW50cyA9IGVycm9yLmRpZ2VzdC5zcGxpdChFUlJPUl9DT0RFX0RFTElNSVRFUik7XG4gICAgICAgIGNvbnN0IGVycm9yQ29kZSA9IHNlZ21lbnRzLmZpbmQoKHNlZ21lbnQpPT5zZWdtZW50LnN0YXJ0c1dpdGgoJ0UnKSk7XG4gICAgICAgIHJldHVybiBlcnJvckNvZGU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvci10ZWxlbWV0cnktdXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/error-telemetry-utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/fallback.js":
/*!************************************************!*\
!*** ./node_modules/next/dist/lib/fallback.js ***!
\************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Describes the different fallback modes that a given page can have.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n FallbackMode: function() {\n return FallbackMode;\n },\n fallbackModeToFallbackField: function() {\n return fallbackModeToFallbackField;\n },\n parseFallbackField: function() {\n return parseFallbackField;\n },\n parseStaticPathsResult: function() {\n return parseStaticPathsResult;\n }\n});\nvar FallbackMode = /*#__PURE__*/ function(FallbackMode) {\n /**\n * A BLOCKING_STATIC_RENDER fallback will block the request until the page is\n * generated. No fallback page will be rendered, and users will have to wait\n * to render the page.\n */ FallbackMode[\"BLOCKING_STATIC_RENDER\"] = \"BLOCKING_STATIC_RENDER\";\n /**\n * When set to PRERENDER, a fallback page will be sent to users in place of\n * forcing them to wait for the page to be generated. This allows the user to\n * see a rendered page earlier.\n */ FallbackMode[\"PRERENDER\"] = \"PRERENDER\";\n /**\n * When set to NOT_FOUND, pages that are not already prerendered will result\n * in a not found response.\n */ FallbackMode[\"NOT_FOUND\"] = \"NOT_FOUND\";\n return FallbackMode;\n}({});\nfunction parseFallbackField(fallbackField) {\n if (typeof fallbackField === 'string') {\n return \"PRERENDER\";\n } else if (fallbackField === null) {\n return \"BLOCKING_STATIC_RENDER\";\n } else if (fallbackField === false) {\n return \"NOT_FOUND\";\n } else if (fallbackField === undefined) {\n return undefined;\n } else {\n throw Object.defineProperty(new Error(`Invalid fallback option: ${fallbackField}. Fallback option must be a string, null, undefined, or false.`), \"__NEXT_ERROR_CODE\", {\n value: \"E285\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction fallbackModeToFallbackField(fallback, page) {\n switch(fallback){\n case \"BLOCKING_STATIC_RENDER\":\n return null;\n case \"NOT_FOUND\":\n return false;\n case \"PRERENDER\":\n if (!page) {\n throw Object.defineProperty(new Error(`Invariant: expected a page to be provided when fallback mode is \"${fallback}\"`), \"__NEXT_ERROR_CODE\", {\n value: \"E422\",\n enumerable: false,\n configurable: true\n });\n }\n return page;\n default:\n throw Object.defineProperty(new Error(`Invalid fallback mode: ${fallback}`), \"__NEXT_ERROR_CODE\", {\n value: \"E254\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction parseStaticPathsResult(result) {\n if (result === true) {\n return \"PRERENDER\";\n } else if (result === 'blocking') {\n return \"BLOCKING_STATIC_RENDER\";\n } else {\n return \"NOT_FOUND\";\n }\n}\n\n//# sourceMappingURL=fallback.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRztBQUNKO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTiwwRUFBMEUsY0FBYztBQUN4RjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwSEFBMEgsU0FBUztBQUNuSTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsNEVBQTRFLFNBQVM7QUFDckY7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mYWxsYmFjay5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlc2NyaWJlcyB0aGUgZGlmZmVyZW50IGZhbGxiYWNrIG1vZGVzIHRoYXQgYSBnaXZlbiBwYWdlIGNhbiBoYXZlLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgRmFsbGJhY2tNb2RlOiBudWxsLFxuICAgIGZhbGxiYWNrTW9kZVRvRmFsbGJhY2tGaWVsZDogbnVsbCxcbiAgICBwYXJzZUZhbGxiYWNrRmllbGQ6IG51bGwsXG4gICAgcGFyc2VTdGF0aWNQYXRoc1Jlc3VsdDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBGYWxsYmFja01vZGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRmFsbGJhY2tNb2RlO1xuICAgIH0sXG4gICAgZmFsbGJhY2tNb2RlVG9GYWxsYmFja0ZpZWxkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrTW9kZVRvRmFsbGJhY2tGaWVsZDtcbiAgICB9LFxuICAgIHBhcnNlRmFsbGJhY2tGaWVsZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUZhbGxiYWNrRmllbGQ7XG4gICAgfSxcbiAgICBwYXJzZVN0YXRpY1BhdGhzUmVzdWx0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlU3RhdGljUGF0aHNSZXN1bHQ7XG4gICAgfVxufSk7XG52YXIgRmFsbGJhY2tNb2RlID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihGYWxsYmFja01vZGUpIHtcbiAgICAvKipcbiAgICogQSBCTE9DS0lOR19TVEFUSUNfUkVOREVSIGZhbGxiYWNrIHdpbGwgYmxvY2sgdGhlIHJlcXVlc3QgdW50aWwgdGhlIHBhZ2UgaXNcbiAgICogZ2VuZXJhdGVkLiBObyBmYWxsYmFjayBwYWdlIHdpbGwgYmUgcmVuZGVyZWQsIGFuZCB1c2VycyB3aWxsIGhhdmUgdG8gd2FpdFxuICAgKiB0byByZW5kZXIgdGhlIHBhZ2UuXG4gICAqLyBGYWxsYmFja01vZGVbXCJCTE9DS0lOR19TVEFUSUNfUkVOREVSXCJdID0gXCJCTE9DS0lOR19TVEFUSUNfUkVOREVSXCI7XG4gICAgLyoqXG4gICAqIFdoZW4gc2V0IHRvIFBSRVJFTkRFUiwgYSBmYWxsYmFjayBwYWdlIHdpbGwgYmUgc2VudCB0byB1c2VycyBpbiBwbGFjZSBvZlxuICAgKiBmb3JjaW5nIHRoZW0gdG8gd2FpdCBmb3IgdGhlIHBhZ2UgdG8gYmUgZ2VuZXJhdGVkLiBUaGlzIGFsbG93cyB0aGUgdXNlciB0b1xuICAgKiBzZWUgYSByZW5kZXJlZCBwYWdlIGVhcmxpZXIuXG4gICAqLyBGYWxsYmFja01vZGVbXCJQUkVSRU5ERVJcIl0gPSBcIlBSRVJFTkRFUlwiO1xuICAgIC8qKlxuICAgKiBXaGVuIHNldCB0byBOT1RfRk9VTkQsIHBhZ2VzIHRoYXQgYXJlIG5vdCBhbHJlYWR5IHByZXJlbmRlcmVkIHdpbGwgcmVzdWx0XG4gICAqIGluIGEgbm90IGZvdW5kIHJlc3BvbnNlLlxuICAgKi8gRmFsbGJhY2tNb2RlW1wiTk9UX0ZPVU5EXCJdID0gXCJOT1RfRk9VTkRcIjtcbiAgICByZXR1cm4gRmFsbGJhY2tNb2RlO1xufSh7fSk7XG5mdW5jdGlvbiBwYXJzZUZhbGxiYWNrRmllbGQoZmFsbGJhY2tGaWVsZCkge1xuICAgIGlmICh0eXBlb2YgZmFsbGJhY2tGaWVsZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIFwiUFJFUkVOREVSXCI7XG4gICAgfSBlbHNlIGlmIChmYWxsYmFja0ZpZWxkID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBcIkJMT0NLSU5HX1NUQVRJQ19SRU5ERVJcIjtcbiAgICB9IGVsc2UgaWYgKGZhbGxiYWNrRmllbGQgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBcIk5PVF9GT1VORFwiO1xuICAgIH0gZWxzZSBpZiAoZmFsbGJhY2tGaWVsZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YWxpZCBmYWxsYmFjayBvcHRpb246ICR7ZmFsbGJhY2tGaWVsZH0uIEZhbGxiYWNrIG9wdGlvbiBtdXN0IGJlIGEgc3RyaW5nLCBudWxsLCB1bmRlZmluZWQsIG9yIGZhbHNlLmApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkUyODVcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGZhbGxiYWNrTW9kZVRvRmFsbGJhY2tGaWVsZChmYWxsYmFjaywgcGFnZSkge1xuICAgIHN3aXRjaChmYWxsYmFjayl7XG4gICAgICAgIGNhc2UgXCJCTE9DS0lOR19TVEFUSUNfUkVOREVSXCI6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY2FzZSBcIk5PVF9GT1VORFwiOlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjYXNlIFwiUFJFUkVOREVSXCI6XG4gICAgICAgICAgICBpZiAoIXBhZ2UpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBJbnZhcmlhbnQ6IGV4cGVjdGVkIGEgcGFnZSB0byBiZSBwcm92aWRlZCB3aGVuIGZhbGxiYWNrIG1vZGUgaXMgXCIke2ZhbGxiYWNrfVwiYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNDIyXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwYWdlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YWxpZCBmYWxsYmFjayBtb2RlOiAke2ZhbGxiYWNrfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMjU0XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBwYXJzZVN0YXRpY1BhdGhzUmVzdWx0KHJlc3VsdCkge1xuICAgIGlmIChyZXN1bHQgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIFwiUFJFUkVOREVSXCI7XG4gICAgfSBlbHNlIGlmIChyZXN1bHQgPT09ICdibG9ja2luZycpIHtcbiAgICAgICAgcmV0dXJuIFwiQkxPQ0tJTkdfU1RBVElDX1JFTkRFUlwiO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBcIk5PVF9GT1VORFwiO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmFsbGJhY2suanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/fallback.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/format-server-error.js":
/*!***********************************************************!*\
!*** ./node_modules/next/dist/lib/format-server-error.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatServerError: function() {\n return formatServerError;\n },\n getStackWithoutErrorMessage: function() {\n return getStackWithoutErrorMessage;\n }\n});\nconst invalidServerComponentReactHooks = [\n 'useDeferredValue',\n 'useEffect',\n 'useImperativeHandle',\n 'useInsertionEffect',\n 'useLayoutEffect',\n 'useReducer',\n 'useRef',\n 'useState',\n 'useSyncExternalStore',\n 'useTransition',\n 'experimental_useOptimistic',\n 'useOptimistic'\n];\nfunction setMessage(error, message) {\n error.message = message;\n if (error.stack) {\n const lines = error.stack.split('\\n');\n lines[0] = message;\n error.stack = lines.join('\\n');\n }\n}\nfunction getStackWithoutErrorMessage(error) {\n const stack = error.stack;\n if (!stack) return '';\n return stack.replace(/^[^\\n]*\\n/, '');\n}\nfunction formatServerError(error) {\n if (typeof (error == null ? void 0 : error.message) !== 'string') return;\n if (error.message.includes('Class extends value undefined is not a constructor or null')) {\n const addedMessage = 'This might be caused by a React Class Component being rendered in a Server Component, React Class Components only works in Client Components. Read more: https://nextjs.org/docs/messages/class-component-in-server-component';\n // If this error instance already has the message, don't add it again\n if (error.message.includes(addedMessage)) return;\n setMessage(error, `${error.message}\n\n${addedMessage}`);\n return;\n }\n if (error.message.includes('createContext is not a function')) {\n setMessage(error, 'createContext only works in Client Components. Add the \"use client\" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/context-in-server-component');\n return;\n }\n for (const clientHook of invalidServerComponentReactHooks){\n const regex = new RegExp(`\\\\b${clientHook}\\\\b.*is not a function`);\n if (regex.test(error.message)) {\n setMessage(error, `${clientHook} only works in Client Components. Add the \"use client\" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component`);\n return;\n }\n }\n} //# sourceMappingURL=format-server-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mb3JtYXQtc2VydmVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXdDZ0JBLGlCQUFpQjtlQUFqQkE7O0lBTkFDLDJCQUEyQjtlQUEzQkE7OztBQWxDaEIsTUFBTUMsbUNBQW1DO0lBQ3ZDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRUQsU0FBU0MsV0FBV0MsS0FBWSxFQUFFQyxPQUFlO0lBQy9DRCxNQUFNQyxPQUFPLEdBQUdBO0lBQ2hCLElBQUlELE1BQU1FLEtBQUssRUFBRTtRQUNmLE1BQU1DLFFBQVFILE1BQU1FLEtBQUssQ0FBQ0UsS0FBSyxDQUFDO1FBQ2hDRCxLQUFLLENBQUMsRUFBRSxHQUFHRjtRQUNYRCxNQUFNRSxLQUFLLEdBQUdDLE1BQU1FLElBQUksQ0FBQztJQUMzQjtBQUNGO0FBWU8sU0FBU1IsNEJBQTRCRyxLQUFZO0lBQ3RELE1BQU1FLFFBQVFGLE1BQU1FLEtBQUs7SUFDekIsSUFBSSxDQUFDQSxPQUFPLE9BQU87SUFDbkIsT0FBT0EsTUFBTUksT0FBTyxDQUFDLGFBQWE7QUFDcEM7QUFFTyxTQUFTVixrQkFBa0JJLEtBQVk7SUFDNUMsSUFBSSxRQUFPQSxTQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxNQUFPQyxPQUFBQSxNQUFZLFVBQVU7SUFFeEMsSUFDRUQsTUFBTUMsT0FBTyxDQUFDTSxRQUFRLENBQ3BCLCtEQUVGO1FBQ0EsTUFBTUMsZUFDSjtRQUVGLHFFQUFxRTtRQUNyRSxJQUFJUixNQUFNQyxPQUFPLENBQUNNLFFBQVEsQ0FBQ0MsZUFBZTtRQUUxQ1QsV0FDRUMsT0FDQSxHQUFHQSxNQUFNQyxPQUFPLENBQUM7O0FBRXZCLEVBQUVPLGNBQWM7UUFFWjtJQUNGO0lBRUEsSUFBSVIsTUFBTUMsT0FBTyxDQUFDTSxRQUFRLENBQUMsb0NBQW9DO1FBQzdEUixXQUNFQyxPQUNBO1FBRUY7SUFDRjtJQUVBLEtBQUssTUFBTVMsY0FBY1gsaUNBQWtDO1FBQ3pELE1BQU1ZLFFBQVEsSUFBSUMsT0FBTyxDQUFDLEdBQUcsRUFBRUYsV0FBVyxzQkFBc0IsQ0FBQztRQUNqRSxJQUFJQyxNQUFNRSxJQUFJLENBQUNaLE1BQU1DLE9BQU8sR0FBRztZQUM3QkYsV0FDRUMsT0FDQSxHQUFHUyxXQUFXLG9MQUFvTCxDQUFDO1lBRXJNO1FBQ0Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvc3JjL2xpYi9mb3JtYXQtc2VydmVyLWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGludmFsaWRTZXJ2ZXJDb21wb25lbnRSZWFjdEhvb2tzID0gW1xuICAndXNlRGVmZXJyZWRWYWx1ZScsXG4gICd1c2VFZmZlY3QnLFxuICAndXNlSW1wZXJhdGl2ZUhhbmRsZScsXG4gICd1c2VJbnNlcnRpb25FZmZlY3QnLFxuICAndXNlTGF5b3V0RWZmZWN0JyxcbiAgJ3VzZVJlZHVjZXInLFxuICAndXNlUmVmJyxcbiAgJ3VzZVN0YXRlJyxcbiAgJ3VzZVN5bmNFeHRlcm5hbFN0b3JlJyxcbiAgJ3VzZVRyYW5zaXRpb24nLFxuICAnZXhwZXJpbWVudGFsX3VzZU9wdGltaXN0aWMnLFxuICAndXNlT3B0aW1pc3RpYycsXG5dXG5cbmZ1bmN0aW9uIHNldE1lc3NhZ2UoZXJyb3I6IEVycm9yLCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgZXJyb3IubWVzc2FnZSA9IG1lc3NhZ2VcbiAgaWYgKGVycm9yLnN0YWNrKSB7XG4gICAgY29uc3QgbGluZXMgPSBlcnJvci5zdGFjay5zcGxpdCgnXFxuJylcbiAgICBsaW5lc1swXSA9IG1lc3NhZ2VcbiAgICBlcnJvci5zdGFjayA9IGxpbmVzLmpvaW4oJ1xcbicpXG4gIH1cbn1cblxuLyoqXG4gKiBJbnB1dDpcbiAqIEVycm9yOiBTb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgIGF0IGZ1bmNOYW1lICgvcGF0aC90by9maWxlLmpzOjEwOjUpXG4gICAgYXQgYW5vdGhlckZ1bmMgKC9wYXRoL3RvL2ZpbGUuanM6MTU6MTApXG4gXG4gKiBPdXRwdXQ6XG4gICAgYXQgZnVuY05hbWUgKC9wYXRoL3RvL2ZpbGUuanM6MTA6NSlcbiAgICBhdCBhbm90aGVyRnVuYyAoL3BhdGgvdG8vZmlsZS5qczoxNToxMCkgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFja1dpdGhvdXRFcnJvck1lc3NhZ2UoZXJyb3I6IEVycm9yKTogc3RyaW5nIHtcbiAgY29uc3Qgc3RhY2sgPSBlcnJvci5zdGFja1xuICBpZiAoIXN0YWNrKSByZXR1cm4gJydcbiAgcmV0dXJuIHN0YWNrLnJlcGxhY2UoL15bXlxcbl0qXFxuLywgJycpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTZXJ2ZXJFcnJvcihlcnJvcjogRXJyb3IpOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiBlcnJvcj8ubWVzc2FnZSAhPT0gJ3N0cmluZycpIHJldHVyblxuXG4gIGlmIChcbiAgICBlcnJvci5tZXNzYWdlLmluY2x1ZGVzKFxuICAgICAgJ0NsYXNzIGV4dGVuZHMgdmFsdWUgdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwnXG4gICAgKVxuICApIHtcbiAgICBjb25zdCBhZGRlZE1lc3NhZ2UgPVxuICAgICAgJ1RoaXMgbWlnaHQgYmUgY2F1c2VkIGJ5IGEgUmVhY3QgQ2xhc3MgQ29tcG9uZW50IGJlaW5nIHJlbmRlcmVkIGluIGEgU2VydmVyIENvbXBvbmVudCwgUmVhY3QgQ2xhc3MgQ29tcG9uZW50cyBvbmx5IHdvcmtzIGluIENsaWVudCBDb21wb25lbnRzLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NsYXNzLWNvbXBvbmVudC1pbi1zZXJ2ZXItY29tcG9uZW50J1xuXG4gICAgLy8gSWYgdGhpcyBlcnJvciBpbnN0YW5jZSBhbHJlYWR5IGhhcyB0aGUgbWVzc2FnZSwgZG9uJ3QgYWRkIGl0IGFnYWluXG4gICAgaWYgKGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoYWRkZWRNZXNzYWdlKSkgcmV0dXJuXG5cbiAgICBzZXRNZXNzYWdlKFxuICAgICAgZXJyb3IsXG4gICAgICBgJHtlcnJvci5tZXNzYWdlfVxuXG4ke2FkZGVkTWVzc2FnZX1gXG4gICAgKVxuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKGVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoJ2NyZWF0ZUNvbnRleHQgaXMgbm90IGEgZnVuY3Rpb24nKSkge1xuICAgIHNldE1lc3NhZ2UoXG4gICAgICBlcnJvcixcbiAgICAgICdjcmVhdGVDb250ZXh0IG9ubHkgd29ya3MgaW4gQ2xpZW50IENvbXBvbmVudHMuIEFkZCB0aGUgXCJ1c2UgY2xpZW50XCIgZGlyZWN0aXZlIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUgdG8gdXNlIGl0LiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NvbnRleHQtaW4tc2VydmVyLWNvbXBvbmVudCdcbiAgICApXG4gICAgcmV0dXJuXG4gIH1cblxuICBmb3IgKGNvbnN0IGNsaWVudEhvb2sgb2YgaW52YWxpZFNlcnZlckNvbXBvbmVudFJlYWN0SG9va3MpIHtcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxiJHtjbGllbnRIb29rfVxcXFxiLippcyBub3QgYSBmdW5jdGlvbmApXG4gICAgaWYgKHJlZ2V4LnRlc3QoZXJyb3IubWVzc2FnZSkpIHtcbiAgICAgIHNldE1lc3NhZ2UoXG4gICAgICAgIGVycm9yLFxuICAgICAgICBgJHtjbGllbnRIb29rfSBvbmx5IHdvcmtzIGluIENsaWVudCBDb21wb25lbnRzLiBBZGQgdGhlIFwidXNlIGNsaWVudFwiIGRpcmVjdGl2ZSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlIHRvIHVzZSBpdC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9yZWFjdC1jbGllbnQtaG9vay1pbi1zZXJ2ZXItY29tcG9uZW50YFxuICAgICAgKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZm9ybWF0U2VydmVyRXJyb3IiLCJnZXRTdGFja1dpdGhvdXRFcnJvck1lc3NhZ2UiLCJpbnZhbGlkU2VydmVyQ29tcG9uZW50UmVhY3RIb29rcyIsInNldE1lc3NhZ2UiLCJlcnJvciIsIm1lc3NhZ2UiLCJzdGFjayIsImxpbmVzIiwic3BsaXQiLCJqb2luIiwicmVwbGFjZSIsImluY2x1ZGVzIiwiYWRkZWRNZXNzYWdlIiwiY2xpZW50SG9vayIsInJlZ2V4IiwiUmVnRXhwIiwidGVzdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/format-server-error.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/generate-interception-routes-rewrites.js":
/*!*****************************************************************************!*\
!*** ./node_modules/next/dist/lib/generate-interception-routes-rewrites.js ***!
\*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n generateInterceptionRoutesRewrites: function() {\n return generateInterceptionRoutesRewrites;\n },\n isInterceptionRouteRewrite: function() {\n return isInterceptionRouteRewrite;\n }\n});\nconst _pathtoregexp = __webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js\");\nconst _approuterheaders = __webpack_require__(/*! ../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _interceptionroutes = __webpack_require__(/*! ../shared/lib/router/utils/interception-routes */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\n// a function that converts normalised paths (e.g. /foo/[bar]/[baz]) to the format expected by pathToRegexp (e.g. /foo/:bar/:baz)\nfunction toPathToRegexpPath(path) {\n return path.replace(/\\[\\[?([^\\]]+)\\]\\]?/g, (_, capture)=>{\n // path-to-regexp only supports word characters, so we replace any non-word characters with underscores\n const paramName = capture.replace(/\\W+/g, '_');\n // handle catch-all segments (e.g. /foo/bar/[...baz] or /foo/bar/[[...baz]])\n if (capture.startsWith('...')) {\n return `:${capture.slice(3)}*`;\n }\n return ':' + paramName;\n });\n}\nfunction generateInterceptionRoutesRewrites(appPaths, basePath = '') {\n const rewrites = [];\n for (const appPath of appPaths){\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(appPath)) {\n const { interceptingRoute, interceptedRoute } = (0, _interceptionroutes.extractInterceptionRouteInformation)(appPath);\n const normalizedInterceptingRoute = `${interceptingRoute !== '/' ? toPathToRegexpPath(interceptingRoute) : ''}/(.*)?`;\n const normalizedInterceptedRoute = toPathToRegexpPath(interceptedRoute);\n const normalizedAppPath = toPathToRegexpPath(appPath);\n // pathToRegexp returns a regex that matches the path, but we need to\n // convert it to a string that can be used in a header value\n // to the format that Next/the proxy expects\n let interceptingRouteRegex = (0, _pathtoregexp.pathToRegexp)(normalizedInterceptingRoute).toString().slice(2, -3);\n rewrites.push({\n source: `${basePath}${normalizedInterceptedRoute}`,\n destination: `${basePath}${normalizedAppPath}`,\n has: [\n {\n type: 'header',\n key: _approuterheaders.NEXT_URL,\n value: interceptingRouteRegex\n }\n ]\n });\n }\n }\n return rewrites;\n}\nfunction isInterceptionRouteRewrite(route) {\n var _route_has_, _route_has;\n // When we generate interception rewrites in the above implementation, we always do so with only a single `has` condition.\n return ((_route_has = route.has) == null ? void 0 : (_route_has_ = _route_has[0]) == null ? void 0 : _route_has_.key) === _approuterheaders.NEXT_URL;\n}\n\n//# sourceMappingURL=generate-interception-routes-rewrites.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9nZW5lcmF0ZS1pbnRlcmNlcHRpb24tcm91dGVzLXJld3JpdGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHNCQUFzQixtQkFBTyxDQUFDLDBHQUFtQztBQUNqRSwwQkFBMEIsbUJBQU8sQ0FBQyx1SEFBeUM7QUFDM0UsNEJBQTRCLG1CQUFPLENBQUMscUlBQWdEO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLGlCQUFpQjtBQUN4QztBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isc0NBQXNDO0FBQzFELG1EQUFtRCx1RUFBdUU7QUFDMUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsU0FBUyxFQUFFLDJCQUEyQjtBQUNqRSxnQ0FBZ0MsU0FBUyxFQUFFLGtCQUFrQjtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2dlbmVyYXRlLWludGVyY2VwdGlvbi1yb3V0ZXMtcmV3cml0ZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZW5lcmF0ZUludGVyY2VwdGlvblJvdXRlc1Jld3JpdGVzOiBudWxsLFxuICAgIGlzSW50ZXJjZXB0aW9uUm91dGVSZXdyaXRlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdlbmVyYXRlSW50ZXJjZXB0aW9uUm91dGVzUmV3cml0ZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2VuZXJhdGVJbnRlcmNlcHRpb25Sb3V0ZXNSZXdyaXRlcztcbiAgICB9LFxuICAgIGlzSW50ZXJjZXB0aW9uUm91dGVSZXdyaXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzSW50ZXJjZXB0aW9uUm91dGVSZXdyaXRlO1xuICAgIH1cbn0pO1xuY29uc3QgX3BhdGh0b3JlZ2V4cCA9IHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC10by1yZWdleHBcIik7XG5jb25zdCBfYXBwcm91dGVyaGVhZGVycyA9IHJlcXVpcmUoXCIuLi9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIik7XG5jb25zdCBfaW50ZXJjZXB0aW9ucm91dGVzID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXNcIik7XG4vLyBhIGZ1bmN0aW9uIHRoYXQgY29udmVydHMgbm9ybWFsaXNlZCBwYXRocyAoZS5nLiAvZm9vL1tiYXJdL1tiYXpdKSB0byB0aGUgZm9ybWF0IGV4cGVjdGVkIGJ5IHBhdGhUb1JlZ2V4cCAoZS5nLiAvZm9vLzpiYXIvOmJheilcbmZ1bmN0aW9uIHRvUGF0aFRvUmVnZXhwUGF0aChwYXRoKSB7XG4gICAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFxbXFxbPyhbXlxcXV0rKVxcXVxcXT8vZywgKF8sIGNhcHR1cmUpPT57XG4gICAgICAgIC8vIHBhdGgtdG8tcmVnZXhwIG9ubHkgc3VwcG9ydHMgd29yZCBjaGFyYWN0ZXJzLCBzbyB3ZSByZXBsYWNlIGFueSBub24td29yZCBjaGFyYWN0ZXJzIHdpdGggdW5kZXJzY29yZXNcbiAgICAgICAgY29uc3QgcGFyYW1OYW1lID0gY2FwdHVyZS5yZXBsYWNlKC9cXFcrL2csICdfJyk7XG4gICAgICAgIC8vIGhhbmRsZSBjYXRjaC1hbGwgc2VnbWVudHMgKGUuZy4gL2Zvby9iYXIvWy4uLmJhel0gb3IgL2Zvby9iYXIvW1suLi5iYXpdXSlcbiAgICAgICAgaWYgKGNhcHR1cmUuc3RhcnRzV2l0aCgnLi4uJykpIHtcbiAgICAgICAgICAgIHJldHVybiBgOiR7Y2FwdHVyZS5zbGljZSgzKX0qYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJzonICsgcGFyYW1OYW1lO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2VuZXJhdGVJbnRlcmNlcHRpb25Sb3V0ZXNSZXdyaXRlcyhhcHBQYXRocywgYmFzZVBhdGggPSAnJykge1xuICAgIGNvbnN0IHJld3JpdGVzID0gW107XG4gICAgZm9yIChjb25zdCBhcHBQYXRoIG9mIGFwcFBhdGhzKXtcbiAgICAgICAgaWYgKCgwLCBfaW50ZXJjZXB0aW9ucm91dGVzLmlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKShhcHBQYXRoKSkge1xuICAgICAgICAgICAgY29uc3QgeyBpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZSB9ID0gKDAsIF9pbnRlcmNlcHRpb25yb3V0ZXMuZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24pKGFwcFBhdGgpO1xuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEludGVyY2VwdGluZ1JvdXRlID0gYCR7aW50ZXJjZXB0aW5nUm91dGUgIT09ICcvJyA/IHRvUGF0aFRvUmVnZXhwUGF0aChpbnRlcmNlcHRpbmdSb3V0ZSkgOiAnJ30vKC4qKT9gO1xuICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZEludGVyY2VwdGVkUm91dGUgPSB0b1BhdGhUb1JlZ2V4cFBhdGgoaW50ZXJjZXB0ZWRSb3V0ZSk7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkQXBwUGF0aCA9IHRvUGF0aFRvUmVnZXhwUGF0aChhcHBQYXRoKTtcbiAgICAgICAgICAgIC8vIHBhdGhUb1JlZ2V4cCByZXR1cm5zIGEgcmVnZXggdGhhdCBtYXRjaGVzIHRoZSBwYXRoLCBidXQgd2UgbmVlZCB0b1xuICAgICAgICAgICAgLy8gY29udmVydCBpdCB0byBhIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgaGVhZGVyIHZhbHVlXG4gICAgICAgICAgICAvLyB0byB0aGUgZm9ybWF0IHRoYXQgTmV4dC90aGUgcHJveHkgZXhwZWN0c1xuICAgICAgICAgICAgbGV0IGludGVyY2VwdGluZ1JvdXRlUmVnZXggPSAoMCwgX3BhdGh0b3JlZ2V4cC5wYXRoVG9SZWdleHApKG5vcm1hbGl6ZWRJbnRlcmNlcHRpbmdSb3V0ZSkudG9TdHJpbmcoKS5zbGljZSgyLCAtMyk7XG4gICAgICAgICAgICByZXdyaXRlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBzb3VyY2U6IGAke2Jhc2VQYXRofSR7bm9ybWFsaXplZEludGVyY2VwdGVkUm91dGV9YCxcbiAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbjogYCR7YmFzZVBhdGh9JHtub3JtYWxpemVkQXBwUGF0aH1gLFxuICAgICAgICAgICAgICAgIGhhczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaGVhZGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogX2FwcHJvdXRlcmhlYWRlcnMuTkVYVF9VUkwsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaW50ZXJjZXB0aW5nUm91dGVSZWdleFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJld3JpdGVzO1xufVxuZnVuY3Rpb24gaXNJbnRlcmNlcHRpb25Sb3V0ZVJld3JpdGUocm91dGUpIHtcbiAgICB2YXIgX3JvdXRlX2hhc18sIF9yb3V0ZV9oYXM7XG4gICAgLy8gV2hlbiB3ZSBnZW5lcmF0ZSBpbnRlcmNlcHRpb24gcmV3cml0ZXMgaW4gdGhlIGFib3ZlIGltcGxlbWVudGF0aW9uLCB3ZSBhbHdheXMgZG8gc28gd2l0aCBvbmx5IGEgc2luZ2xlIGBoYXNgIGNvbmRpdGlvbi5cbiAgICByZXR1cm4gKChfcm91dGVfaGFzID0gcm91dGUuaGFzKSA9PSBudWxsID8gdm9pZCAwIDogKF9yb3V0ZV9oYXNfID0gX3JvdXRlX2hhc1swXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yb3V0ZV9oYXNfLmtleSkgPT09IF9hcHByb3V0ZXJoZWFkZXJzLk5FWFRfVVJMO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZW5lcmF0ZS1pbnRlcmNlcHRpb24tcm91dGVzLXJld3JpdGVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/generate-interception-routes-rewrites.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/interop-default.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/lib/interop-default.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interopDefault\", ({\n enumerable: true,\n get: function() {\n return interopDefault;\n }\n}));\nfunction interopDefault(mod) {\n return mod.default || mod;\n}\n\n//# sourceMappingURL=interop-default.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pbnRlcm9wLWRlZmF1bHQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2ludGVyb3AtZGVmYXVsdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImludGVyb3BEZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbnRlcm9wRGVmYXVsdDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGludGVyb3BEZWZhdWx0KG1vZCkge1xuICAgIHJldHVybiBtb2QuZGVmYXVsdCB8fCBtb2Q7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVyb3AtZGVmYXVsdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/interop-default.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/is-app-route-route.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/lib/is-app-route-route.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isAppRouteRoute\", ({\n enumerable: true,\n get: function() {\n return isAppRouteRoute;\n }\n}));\nfunction isAppRouteRoute(route) {\n return route.endsWith('/route');\n}\n\n//# sourceMappingURL=is-app-route-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1hcHAtcm91dGUtcm91dGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2lzLWFwcC1yb3V0ZS1yb3V0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzQXBwUm91dGVSb3V0ZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNBcHBSb3V0ZVJvdXRlO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaXNBcHBSb3V0ZVJvdXRlKHJvdXRlKSB7XG4gICAgcmV0dXJuIHJvdXRlLmVuZHNXaXRoKCcvcm91dGUnKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtYXBwLXJvdXRlLXJvdXRlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/is-app-route-route.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/is-error.js":
/*!************************************************!*\
!*** ./node_modules/next/dist/lib/is-error.js ***!
\************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"(rsc)/./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsbUJBQU8sQ0FBQyxtR0FBK0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgZ2V0UHJvcGVyRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBOZXh0RXJyb3IuXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHByaW50IGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIHdpdGggcHJvcGVydGllcyBsaWtlIGBjb2RlYCAmIGBkaWdlc3RgLlxuICovIGRlZmF1bHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNFcnJvcjtcbiAgICB9LFxuICAgIGdldFByb3BlckVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFByb3BlckVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX2lzcGxhaW5vYmplY3QgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3RcIik7XG5mdW5jdGlvbiBpc0Vycm9yKGVycikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJiBlcnIgIT09IG51bGwgJiYgJ25hbWUnIGluIGVyciAmJiAnbWVzc2FnZScgaW4gZXJyO1xufVxuZnVuY3Rpb24gc2FmZVN0cmluZ2lmeShvYmopIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFdlYWtTZXQoKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCAoX2tleSwgdmFsdWUpPT57XG4gICAgICAgIC8vIElmIHZhbHVlIGlzIGFuIG9iamVjdCBhbmQgYWxyZWFkeSBzZWVuLCByZXBsYWNlIHdpdGggXCJbQ2lyY3VsYXJdXCJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tDaXJjdWxhcl0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGdldFByb3BlckVycm9yKGVycikge1xuICAgIGlmIChpc0Vycm9yKGVycikpIHtcbiAgICAgICAgcmV0dXJuIGVycjtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIHByb3ZpZGUgYmV0dGVyIGVycm9yIGZvciBjYXNlIHdoZXJlIGB0aHJvdyB1bmRlZmluZWRgXG4gICAgICAgIC8vIGlzIGNhbGxlZCBpbiBkZXZlbG9wbWVudFxuICAgICAgICBpZiAodHlwZW9mIGVyciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdBbiB1bmRlZmluZWQgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTk4XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignQSBudWxsIGVycm9yIHdhcyB0aHJvd24sICcgKyAnc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdGhyZXctdW5kZWZpbmVkJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzMzZcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCgwLCBfaXNwbGFpbm9iamVjdC5pc1BsYWluT2JqZWN0KShlcnIpID8gc2FmZVN0cmluZ2lmeShlcnIpIDogZXJyICsgJycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTM5NFwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/is-error.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/clone-metadata.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/clone-metadata.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"cloneMetadata\", ({\n enumerable: true,\n get: function() {\n return cloneMetadata;\n }\n}));\nconst TYPE_URL = '__METADATA_URL';\nfunction replacer(_key, val) {\n // clone URL as string but recover it as URL\n if (val instanceof URL) {\n return {\n _type: TYPE_URL,\n value: val.href\n };\n }\n return val;\n}\nfunction reviver(_key, val) {\n if (typeof val === 'object' && val !== null && val._type === TYPE_URL) {\n return new URL(val.value);\n }\n return val;\n}\nfunction cloneMetadata(metadata) {\n const jsonString = JSON.stringify(metadata, replacer);\n return JSON.parse(jsonString, reviver);\n}\n\n//# sourceMappingURL=clone-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9jbG9uZS1tZXRhZGF0YS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGlEQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvY2xvbmUtbWV0YWRhdGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjbG9uZU1ldGFkYXRhXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjbG9uZU1ldGFkYXRhO1xuICAgIH1cbn0pO1xuY29uc3QgVFlQRV9VUkwgPSAnX19NRVRBREFUQV9VUkwnO1xuZnVuY3Rpb24gcmVwbGFjZXIoX2tleSwgdmFsKSB7XG4gICAgLy8gY2xvbmUgVVJMIGFzIHN0cmluZyBidXQgcmVjb3ZlciBpdCBhcyBVUkxcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBfdHlwZTogVFlQRV9VUkwsXG4gICAgICAgICAgICB2YWx1ZTogdmFsLmhyZWZcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbn1cbmZ1bmN0aW9uIHJldml2ZXIoX2tleSwgdmFsKSB7XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbCAhPT0gbnVsbCAmJiB2YWwuX3R5cGUgPT09IFRZUEVfVVJMKSB7XG4gICAgICAgIHJldHVybiBuZXcgVVJMKHZhbC52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG59XG5mdW5jdGlvbiBjbG9uZU1ldGFkYXRhKG1ldGFkYXRhKSB7XG4gICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KG1ldGFkYXRhLCByZXBsYWNlcik7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoanNvblN0cmluZywgcmV2aXZlcik7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsb25lLW1ldGFkYXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/clone-metadata.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/constants.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/constants.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n IconKeys: function() {\n return IconKeys;\n },\n ViewportMetaKeys: function() {\n return ViewportMetaKeys;\n }\n});\nconst ViewportMetaKeys = {\n width: 'width',\n height: 'height',\n initialScale: 'initial-scale',\n minimumScale: 'minimum-scale',\n maximumScale: 'maximum-scale',\n viewportFit: 'viewport-fit',\n userScalable: 'user-scalable',\n interactiveWidget: 'interactive-widget'\n};\nconst IconKeys = [\n 'icon',\n 'shortcut',\n 'apple',\n 'other'\n];\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEljb25LZXlzOiBudWxsLFxuICAgIFZpZXdwb3J0TWV0YUtleXM6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgSWNvbktleXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSWNvbktleXM7XG4gICAgfSxcbiAgICBWaWV3cG9ydE1ldGFLZXlzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFZpZXdwb3J0TWV0YUtleXM7XG4gICAgfVxufSk7XG5jb25zdCBWaWV3cG9ydE1ldGFLZXlzID0ge1xuICAgIHdpZHRoOiAnd2lkdGgnLFxuICAgIGhlaWdodDogJ2hlaWdodCcsXG4gICAgaW5pdGlhbFNjYWxlOiAnaW5pdGlhbC1zY2FsZScsXG4gICAgbWluaW11bVNjYWxlOiAnbWluaW11bS1zY2FsZScsXG4gICAgbWF4aW11bVNjYWxlOiAnbWF4aW11bS1zY2FsZScsXG4gICAgdmlld3BvcnRGaXQ6ICd2aWV3cG9ydC1maXQnLFxuICAgIHVzZXJTY2FsYWJsZTogJ3VzZXItc2NhbGFibGUnLFxuICAgIGludGVyYWN0aXZlV2lkZ2V0OiAnaW50ZXJhY3RpdmUtd2lkZ2V0J1xufTtcbmNvbnN0IEljb25LZXlzID0gW1xuICAgICdpY29uJyxcbiAgICAnc2hvcnRjdXQnLFxuICAgICdhcHBsZScsXG4gICAgJ290aGVyJ1xuXTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/constants.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/default-metadata.js":
/*!*****************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/default-metadata.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createDefaultMetadata: function() {\n return createDefaultMetadata;\n },\n createDefaultViewport: function() {\n return createDefaultViewport;\n }\n});\nfunction createDefaultViewport() {\n return {\n // name=viewport\n width: 'device-width',\n initialScale: 1,\n // visual metadata\n themeColor: null,\n colorScheme: null\n };\n}\nfunction createDefaultMetadata() {\n return {\n // Deprecated ones\n viewport: null,\n themeColor: null,\n colorScheme: null,\n metadataBase: null,\n // Other values are all null\n title: null,\n description: null,\n applicationName: null,\n authors: null,\n generator: null,\n keywords: null,\n referrer: null,\n creator: null,\n publisher: null,\n robots: null,\n manifest: null,\n alternates: {\n canonical: null,\n languages: null,\n media: null,\n types: null\n },\n icons: null,\n openGraph: null,\n twitter: null,\n verification: {},\n appleWebApp: null,\n formatDetection: null,\n itunes: null,\n facebook: null,\n pinterest: null,\n abstract: null,\n appLinks: null,\n archives: null,\n assets: null,\n bookmarks: null,\n category: null,\n classification: null,\n pagination: {\n previous: null,\n next: null\n },\n other: {}\n };\n}\n\n//# sourceMappingURL=default-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9kZWZhdWx0LW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9kZWZhdWx0LW1ldGFkYXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlRGVmYXVsdE1ldGFkYXRhOiBudWxsLFxuICAgIGNyZWF0ZURlZmF1bHRWaWV3cG9ydDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVEZWZhdWx0TWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRGVmYXVsdE1ldGFkYXRhO1xuICAgIH0sXG4gICAgY3JlYXRlRGVmYXVsdFZpZXdwb3J0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURlZmF1bHRWaWV3cG9ydDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRWaWV3cG9ydCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICAvLyBuYW1lPXZpZXdwb3J0XG4gICAgICAgIHdpZHRoOiAnZGV2aWNlLXdpZHRoJyxcbiAgICAgICAgaW5pdGlhbFNjYWxlOiAxLFxuICAgICAgICAvLyB2aXN1YWwgbWV0YWRhdGFcbiAgICAgICAgdGhlbWVDb2xvcjogbnVsbCxcbiAgICAgICAgY29sb3JTY2hlbWU6IG51bGxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlRGVmYXVsdE1ldGFkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIC8vIERlcHJlY2F0ZWQgb25lc1xuICAgICAgICB2aWV3cG9ydDogbnVsbCxcbiAgICAgICAgdGhlbWVDb2xvcjogbnVsbCxcbiAgICAgICAgY29sb3JTY2hlbWU6IG51bGwsXG4gICAgICAgIG1ldGFkYXRhQmFzZTogbnVsbCxcbiAgICAgICAgLy8gT3RoZXIgdmFsdWVzIGFyZSBhbGwgbnVsbFxuICAgICAgICB0aXRsZTogbnVsbCxcbiAgICAgICAgZGVzY3JpcHRpb246IG51bGwsXG4gICAgICAgIGFwcGxpY2F0aW9uTmFtZTogbnVsbCxcbiAgICAgICAgYXV0aG9yczogbnVsbCxcbiAgICAgICAgZ2VuZXJhdG9yOiBudWxsLFxuICAgICAgICBrZXl3b3JkczogbnVsbCxcbiAgICAgICAgcmVmZXJyZXI6IG51bGwsXG4gICAgICAgIGNyZWF0b3I6IG51bGwsXG4gICAgICAgIHB1Ymxpc2hlcjogbnVsbCxcbiAgICAgICAgcm9ib3RzOiBudWxsLFxuICAgICAgICBtYW5pZmVzdDogbnVsbCxcbiAgICAgICAgYWx0ZXJuYXRlczoge1xuICAgICAgICAgICAgY2Fub25pY2FsOiBudWxsLFxuICAgICAgICAgICAgbGFuZ3VhZ2VzOiBudWxsLFxuICAgICAgICAgICAgbWVkaWE6IG51bGwsXG4gICAgICAgICAgICB0eXBlczogbnVsbFxuICAgICAgICB9LFxuICAgICAgICBpY29uczogbnVsbCxcbiAgICAgICAgb3BlbkdyYXBoOiBudWxsLFxuICAgICAgICB0d2l0dGVyOiBudWxsLFxuICAgICAgICB2ZXJpZmljYXRpb246IHt9LFxuICAgICAgICBhcHBsZVdlYkFwcDogbnVsbCxcbiAgICAgICAgZm9ybWF0RGV0ZWN0aW9uOiBudWxsLFxuICAgICAgICBpdHVuZXM6IG51bGwsXG4gICAgICAgIGZhY2Vib29rOiBudWxsLFxuICAgICAgICBwaW50ZXJlc3Q6IG51bGwsXG4gICAgICAgIGFic3RyYWN0OiBudWxsLFxuICAgICAgICBhcHBMaW5rczogbnVsbCxcbiAgICAgICAgYXJjaGl2ZXM6IG51bGwsXG4gICAgICAgIGFzc2V0czogbnVsbCxcbiAgICAgICAgYm9va21hcmtzOiBudWxsLFxuICAgICAgICBjYXRlZ29yeTogbnVsbCxcbiAgICAgICAgY2xhc3NpZmljYXRpb246IG51bGwsXG4gICAgICAgIHBhZ2luYXRpb246IHtcbiAgICAgICAgICAgIHByZXZpb3VzOiBudWxsLFxuICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICB9LFxuICAgICAgICBvdGhlcjoge31cbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0LW1ldGFkYXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/default-metadata.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/alternate.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/generate/alternate.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AlternatesMetadata\", ({\n enumerable: true,\n get: function() {\n return AlternatesMetadata;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction AlternateLink({ descriptor, ...props }) {\n if (!descriptor.url) return null;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n ...props,\n ...descriptor.title && {\n title: descriptor.title\n },\n href: descriptor.url.toString()\n });\n}\nfunction AlternatesMetadata({ alternates }) {\n if (!alternates) return null;\n const { canonical, languages, media, types } = alternates;\n return (0, _meta.MetaFilter)([\n canonical ? AlternateLink({\n rel: 'canonical',\n descriptor: canonical\n }) : null,\n languages ? Object.entries(languages).flatMap(([locale, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({\n rel: 'alternate',\n hrefLang: locale,\n descriptor\n }))) : null,\n media ? Object.entries(media).flatMap(([mediaName, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({\n rel: 'alternate',\n media: mediaName,\n descriptor\n }))) : null,\n types ? Object.entries(types).flatMap(([type, descriptors])=>descriptors == null ? void 0 : descriptors.map((descriptor)=>AlternateLink({\n rel: 'alternate',\n type,\n descriptor\n }))) : null\n ]);\n}\n\n//# sourceMappingURL=alternate.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9hbHRlcm5hdGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixzREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixvQkFBb0IsbUJBQU8sQ0FBQyx5SEFBbUI7QUFDL0Msc0RBQXNELG1CQUFPLENBQUMsaUdBQU87QUFDckUsY0FBYyxtQkFBTyxDQUFDLDRFQUFRO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsc0JBQXNCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxLQUFLO0FBQ0w7QUFDQSw4QkFBOEIsWUFBWTtBQUMxQztBQUNBLFlBQVkscUNBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2dlbmVyYXRlL2FsdGVybmF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkFsdGVybmF0ZXNNZXRhZGF0YVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQWx0ZXJuYXRlc01ldGFkYXRhO1xuICAgIH1cbn0pO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX21ldGEgPSByZXF1aXJlKFwiLi9tZXRhXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBBbHRlcm5hdGVMaW5rKHsgZGVzY3JpcHRvciwgLi4ucHJvcHMgfSkge1xuICAgIGlmICghZGVzY3JpcHRvci51cmwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICAuLi5kZXNjcmlwdG9yLnRpdGxlICYmIHtcbiAgICAgICAgICAgIHRpdGxlOiBkZXNjcmlwdG9yLnRpdGxlXG4gICAgICAgIH0sXG4gICAgICAgIGhyZWY6IGRlc2NyaXB0b3IudXJsLnRvU3RyaW5nKClcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIEFsdGVybmF0ZXNNZXRhZGF0YSh7IGFsdGVybmF0ZXMgfSkge1xuICAgIGlmICghYWx0ZXJuYXRlcykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgeyBjYW5vbmljYWwsIGxhbmd1YWdlcywgbWVkaWEsIHR5cGVzIH0gPSBhbHRlcm5hdGVzO1xuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICBjYW5vbmljYWwgPyBBbHRlcm5hdGVMaW5rKHtcbiAgICAgICAgICAgIHJlbDogJ2Nhbm9uaWNhbCcsXG4gICAgICAgICAgICBkZXNjcmlwdG9yOiBjYW5vbmljYWxcbiAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICBsYW5ndWFnZXMgPyBPYmplY3QuZW50cmllcyhsYW5ndWFnZXMpLmZsYXRNYXAoKFtsb2NhbGUsIGRlc2NyaXB0b3JzXSk9PmRlc2NyaXB0b3JzID09IG51bGwgPyB2b2lkIDAgOiBkZXNjcmlwdG9ycy5tYXAoKGRlc2NyaXB0b3IpPT5BbHRlcm5hdGVMaW5rKHtcbiAgICAgICAgICAgICAgICAgICAgcmVsOiAnYWx0ZXJuYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgaHJlZkxhbmc6IGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIH0pKSkgOiBudWxsLFxuICAgICAgICBtZWRpYSA/IE9iamVjdC5lbnRyaWVzKG1lZGlhKS5mbGF0TWFwKChbbWVkaWFOYW1lLCBkZXNjcmlwdG9yc10pPT5kZXNjcmlwdG9ycyA9PSBudWxsID8gdm9pZCAwIDogZGVzY3JpcHRvcnMubWFwKChkZXNjcmlwdG9yKT0+QWx0ZXJuYXRlTGluayh7XG4gICAgICAgICAgICAgICAgICAgIHJlbDogJ2FsdGVybmF0ZScsXG4gICAgICAgICAgICAgICAgICAgIG1lZGlhOiBtZWRpYU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JcbiAgICAgICAgICAgICAgICB9KSkpIDogbnVsbCxcbiAgICAgICAgdHlwZXMgPyBPYmplY3QuZW50cmllcyh0eXBlcykuZmxhdE1hcCgoW3R5cGUsIGRlc2NyaXB0b3JzXSk9PmRlc2NyaXB0b3JzID09IG51bGwgPyB2b2lkIDAgOiBkZXNjcmlwdG9ycy5tYXAoKGRlc2NyaXB0b3IpPT5BbHRlcm5hdGVMaW5rKHtcbiAgICAgICAgICAgICAgICAgICAgcmVsOiAnYWx0ZXJuYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRvclxuICAgICAgICAgICAgICAgIH0pKSkgOiBudWxsXG4gICAgXSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFsdGVybmF0ZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/alternate.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/basic.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/generate/basic.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppleWebAppMeta: function() {\n return AppleWebAppMeta;\n },\n BasicMeta: function() {\n return BasicMeta;\n },\n FacebookMeta: function() {\n return FacebookMeta;\n },\n FormatDetectionMeta: function() {\n return FormatDetectionMeta;\n },\n ItunesMeta: function() {\n return ItunesMeta;\n },\n PinterestMeta: function() {\n return PinterestMeta;\n },\n VerificationMeta: function() {\n return VerificationMeta;\n },\n ViewportMeta: function() {\n return ViewportMeta;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nconst _constants = __webpack_require__(/*! ../constants */ \"(rsc)/./node_modules/next/dist/lib/metadata/constants.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\n// convert viewport object to string for viewport meta tag\nfunction resolveViewportLayout(viewport) {\n let resolved = null;\n if (viewport && typeof viewport === 'object') {\n resolved = '';\n for(const viewportKey_ in _constants.ViewportMetaKeys){\n const viewportKey = viewportKey_;\n if (viewportKey in viewport) {\n let value = viewport[viewportKey];\n if (typeof value === 'boolean') {\n value = value ? 'yes' : 'no';\n } else if (!value && viewportKey === 'initialScale') {\n value = undefined;\n }\n if (value) {\n if (resolved) resolved += ', ';\n resolved += `${_constants.ViewportMetaKeys[viewportKey]}=${value}`;\n }\n }\n }\n }\n return resolved;\n}\nfunction ViewportMeta({ viewport }) {\n return (0, _meta.MetaFilter)([\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }),\n (0, _meta.Meta)({\n name: 'viewport',\n content: resolveViewportLayout(viewport)\n }),\n ...viewport.themeColor ? viewport.themeColor.map((themeColor)=>(0, _meta.Meta)({\n name: 'theme-color',\n content: themeColor.color,\n media: themeColor.media\n })) : [],\n (0, _meta.Meta)({\n name: 'color-scheme',\n content: viewport.colorScheme\n })\n ]);\n}\nfunction BasicMeta({ metadata }) {\n var _metadata_keywords, _metadata_robots, _metadata_robots1;\n const manifestOrigin = metadata.manifest ? (0, _utils.getOrigin)(metadata.manifest) : undefined;\n return (0, _meta.MetaFilter)([\n metadata.title !== null && metadata.title.absolute ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: metadata.title.absolute\n }) : null,\n (0, _meta.Meta)({\n name: 'description',\n content: metadata.description\n }),\n (0, _meta.Meta)({\n name: 'application-name',\n content: metadata.applicationName\n }),\n ...metadata.authors ? metadata.authors.map((author)=>[\n author.url ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"author\",\n href: author.url.toString()\n }) : null,\n (0, _meta.Meta)({\n name: 'author',\n content: author.name\n })\n ]) : [],\n metadata.manifest ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"manifest\",\n href: metadata.manifest.toString(),\n // If it's same origin, and it's a preview deployment,\n // including credentials for manifest request.\n crossOrigin: !manifestOrigin && process.env.VERCEL_ENV === 'preview' ? 'use-credentials' : undefined\n }) : null,\n (0, _meta.Meta)({\n name: 'generator',\n content: metadata.generator\n }),\n (0, _meta.Meta)({\n name: 'keywords',\n content: (_metadata_keywords = metadata.keywords) == null ? void 0 : _metadata_keywords.join(',')\n }),\n (0, _meta.Meta)({\n name: 'referrer',\n content: metadata.referrer\n }),\n (0, _meta.Meta)({\n name: 'creator',\n content: metadata.creator\n }),\n (0, _meta.Meta)({\n name: 'publisher',\n content: metadata.publisher\n }),\n (0, _meta.Meta)({\n name: 'robots',\n content: (_metadata_robots = metadata.robots) == null ? void 0 : _metadata_robots.basic\n }),\n (0, _meta.Meta)({\n name: 'googlebot',\n content: (_metadata_robots1 = metadata.robots) == null ? void 0 : _metadata_robots1.googleBot\n }),\n (0, _meta.Meta)({\n name: 'abstract',\n content: metadata.abstract\n }),\n ...metadata.archives ? metadata.archives.map((archive)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"archives\",\n href: archive\n })) : [],\n ...metadata.assets ? metadata.assets.map((asset)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"assets\",\n href: asset\n })) : [],\n ...metadata.bookmarks ? metadata.bookmarks.map((bookmark)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"bookmarks\",\n href: bookmark\n })) : [],\n ...metadata.pagination ? [\n metadata.pagination.previous ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"prev\",\n href: metadata.pagination.previous\n }) : null,\n metadata.pagination.next ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"next\",\n href: metadata.pagination.next\n }) : null\n ] : [],\n (0, _meta.Meta)({\n name: 'category',\n content: metadata.category\n }),\n (0, _meta.Meta)({\n name: 'classification',\n content: metadata.classification\n }),\n ...metadata.other ? Object.entries(metadata.other).map(([name, content])=>{\n if (Array.isArray(content)) {\n return content.map((contentItem)=>(0, _meta.Meta)({\n name,\n content: contentItem\n }));\n } else {\n return (0, _meta.Meta)({\n name,\n content\n });\n }\n }) : []\n ]);\n}\nfunction ItunesMeta({ itunes }) {\n if (!itunes) return null;\n const { appId, appArgument } = itunes;\n let content = `app-id=${appId}`;\n if (appArgument) {\n content += `, app-argument=${appArgument}`;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"apple-itunes-app\",\n content: content\n });\n}\nfunction FacebookMeta({ facebook }) {\n if (!facebook) return null;\n const { appId, admins } = facebook;\n return (0, _meta.MetaFilter)([\n appId ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n property: \"fb:app_id\",\n content: appId\n }) : null,\n ...admins ? admins.map((admin)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n property: \"fb:admins\",\n content: admin\n })) : []\n ]);\n}\nfunction PinterestMeta({ pinterest }) {\n if (!pinterest || !pinterest.richPin) return null;\n const { richPin } = pinterest;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n property: \"pinterest-rich-pin\",\n content: richPin.toString()\n });\n}\nconst formatDetectionKeys = [\n 'telephone',\n 'date',\n 'address',\n 'email',\n 'url'\n];\nfunction FormatDetectionMeta({ formatDetection }) {\n if (!formatDetection) return null;\n let content = '';\n for (const key of formatDetectionKeys){\n if (key in formatDetection) {\n if (content) content += ', ';\n content += `${key}=no`;\n }\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"format-detection\",\n content: content\n });\n}\nfunction AppleWebAppMeta({ appleWebApp }) {\n if (!appleWebApp) return null;\n const { capable, title, startupImage, statusBarStyle } = appleWebApp;\n return (0, _meta.MetaFilter)([\n capable ? (0, _meta.Meta)({\n name: 'mobile-web-app-capable',\n content: 'yes'\n }) : null,\n (0, _meta.Meta)({\n name: 'apple-mobile-web-app-title',\n content: title\n }),\n startupImage ? startupImage.map((image)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n href: image.url,\n media: image.media,\n rel: \"apple-touch-startup-image\"\n })) : null,\n statusBarStyle ? (0, _meta.Meta)({\n name: 'apple-mobile-web-app-status-bar-style',\n content: statusBarStyle\n }) : null\n ]);\n}\nfunction VerificationMeta({ verification }) {\n if (!verification) return null;\n return (0, _meta.MetaFilter)([\n (0, _meta.MultiMeta)({\n namePrefix: 'google-site-verification',\n contents: verification.google\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'y_key',\n contents: verification.yahoo\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'yandex-verification',\n contents: verification.yandex\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'me',\n contents: verification.me\n }),\n ...verification.other ? Object.entries(verification.other).map(([key, value])=>(0, _meta.MultiMeta)({\n namePrefix: key,\n contents: value\n })) : []\n ]);\n}\n\n//# sourceMappingURL=basic.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9iYXNpYy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FTTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxvQkFBb0IsbUJBQU8sQ0FBQyx5SEFBbUI7QUFDL0MsY0FBYyxtQkFBTyxDQUFDLDRFQUFRO0FBQzlCLG1CQUFtQixtQkFBTyxDQUFDLDhFQUFjO0FBQ3pDLGVBQWUsbUJBQU8sQ0FBQyw4RUFBUztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHlDQUF5QyxHQUFHLE1BQU07QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFVBQVU7QUFDbEM7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLHFCQUFxQixVQUFVO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckIsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0Esc0JBQXNCLFFBQVE7QUFDOUI7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQyw0QkFBNEIsTUFBTTtBQUNsQztBQUNBLHFDQUFxQyxZQUFZO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0Esd0JBQXdCLFVBQVU7QUFDbEM7QUFDQSxZQUFZLGdCQUFnQjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLHlCQUF5QixXQUFXO0FBQ3BDO0FBQ0EsWUFBWSxVQUFVO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLGlCQUFpQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLElBQUk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLDJCQUEyQixhQUFhO0FBQ3hDO0FBQ0EsWUFBWSwrQ0FBK0M7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsNEJBQTRCLGNBQWM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvYmFzaWMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBBcHBsZVdlYkFwcE1ldGE6IG51bGwsXG4gICAgQmFzaWNNZXRhOiBudWxsLFxuICAgIEZhY2Vib29rTWV0YTogbnVsbCxcbiAgICBGb3JtYXREZXRlY3Rpb25NZXRhOiBudWxsLFxuICAgIEl0dW5lc01ldGE6IG51bGwsXG4gICAgUGludGVyZXN0TWV0YTogbnVsbCxcbiAgICBWZXJpZmljYXRpb25NZXRhOiBudWxsLFxuICAgIFZpZXdwb3J0TWV0YTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBcHBsZVdlYkFwcE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwbGVXZWJBcHBNZXRhO1xuICAgIH0sXG4gICAgQmFzaWNNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEJhc2ljTWV0YTtcbiAgICB9LFxuICAgIEZhY2Vib29rTWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBGYWNlYm9va01ldGE7XG4gICAgfSxcbiAgICBGb3JtYXREZXRlY3Rpb25NZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEZvcm1hdERldGVjdGlvbk1ldGE7XG4gICAgfSxcbiAgICBJdHVuZXNNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEl0dW5lc01ldGE7XG4gICAgfSxcbiAgICBQaW50ZXJlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBpbnRlcmVzdE1ldGE7XG4gICAgfSxcbiAgICBWZXJpZmljYXRpb25NZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFZlcmlmaWNhdGlvbk1ldGE7XG4gICAgfSxcbiAgICBWaWV3cG9ydE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVmlld3BvcnRNZXRhO1xuICAgIH1cbn0pO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfbWV0YSA9IHJlcXVpcmUoXCIuL21ldGFcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uL2NvbnN0YW50c1wiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuLy8gY29udmVydCB2aWV3cG9ydCBvYmplY3QgdG8gc3RyaW5nIGZvciB2aWV3cG9ydCBtZXRhIHRhZ1xuZnVuY3Rpb24gcmVzb2x2ZVZpZXdwb3J0TGF5b3V0KHZpZXdwb3J0KSB7XG4gICAgbGV0IHJlc29sdmVkID0gbnVsbDtcbiAgICBpZiAodmlld3BvcnQgJiYgdHlwZW9mIHZpZXdwb3J0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXNvbHZlZCA9ICcnO1xuICAgICAgICBmb3IoY29uc3Qgdmlld3BvcnRLZXlfIGluIF9jb25zdGFudHMuVmlld3BvcnRNZXRhS2V5cyl7XG4gICAgICAgICAgICBjb25zdCB2aWV3cG9ydEtleSA9IHZpZXdwb3J0S2V5XztcbiAgICAgICAgICAgIGlmICh2aWV3cG9ydEtleSBpbiB2aWV3cG9ydCkge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHZpZXdwb3J0W3ZpZXdwb3J0S2V5XTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA/ICd5ZXMnIDogJ25vJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF2YWx1ZSAmJiB2aWV3cG9ydEtleSA9PT0gJ2luaXRpYWxTY2FsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzb2x2ZWQpIHJlc29sdmVkICs9ICcsICc7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkICs9IGAke19jb25zdGFudHMuVmlld3BvcnRNZXRhS2V5c1t2aWV3cG9ydEtleV19PSR7dmFsdWV9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkO1xufVxuZnVuY3Rpb24gVmlld3BvcnRNZXRhKHsgdmlld3BvcnQgfSkge1xuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibWV0YVwiLCB7XG4gICAgICAgICAgICBjaGFyU2V0OiBcInV0Zi04XCJcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndmlld3BvcnQnLFxuICAgICAgICAgICAgY29udGVudDogcmVzb2x2ZVZpZXdwb3J0TGF5b3V0KHZpZXdwb3J0KVxuICAgICAgICB9KSxcbiAgICAgICAgLi4udmlld3BvcnQudGhlbWVDb2xvciA/IHZpZXdwb3J0LnRoZW1lQ29sb3IubWFwKCh0aGVtZUNvbG9yKT0+KDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAndGhlbWUtY29sb3InLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoZW1lQ29sb3IuY29sb3IsXG4gICAgICAgICAgICAgICAgbWVkaWE6IHRoZW1lQ29sb3IubWVkaWFcbiAgICAgICAgICAgIH0pKSA6IFtdLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2NvbG9yLXNjaGVtZScsXG4gICAgICAgICAgICBjb250ZW50OiB2aWV3cG9ydC5jb2xvclNjaGVtZVxuICAgICAgICB9KVxuICAgIF0pO1xufVxuZnVuY3Rpb24gQmFzaWNNZXRhKHsgbWV0YWRhdGEgfSkge1xuICAgIHZhciBfbWV0YWRhdGFfa2V5d29yZHMsIF9tZXRhZGF0YV9yb2JvdHMsIF9tZXRhZGF0YV9yb2JvdHMxO1xuICAgIGNvbnN0IG1hbmlmZXN0T3JpZ2luID0gbWV0YWRhdGEubWFuaWZlc3QgPyAoMCwgX3V0aWxzLmdldE9yaWdpbikobWV0YWRhdGEubWFuaWZlc3QpIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICBtZXRhZGF0YS50aXRsZSAhPT0gbnVsbCAmJiBtZXRhZGF0YS50aXRsZS5hYnNvbHV0ZSA/IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJ0aXRsZVwiLCB7XG4gICAgICAgICAgICBjaGlsZHJlbjogbWV0YWRhdGEudGl0bGUuYWJzb2x1dGVcbiAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmRlc2NyaXB0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2FwcGxpY2F0aW9uLW5hbWUnLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEuYXBwbGljYXRpb25OYW1lXG4gICAgICAgIH0pLFxuICAgICAgICAuLi5tZXRhZGF0YS5hdXRob3JzID8gbWV0YWRhdGEuYXV0aG9ycy5tYXAoKGF1dGhvcik9PltcbiAgICAgICAgICAgICAgICBhdXRob3IudXJsID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgICAgICByZWw6IFwiYXV0aG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIGhyZWY6IGF1dGhvci51cmwudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnYXV0aG9yJyxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogYXV0aG9yLm5hbWVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXSkgOiBbXSxcbiAgICAgICAgbWV0YWRhdGEubWFuaWZlc3QgPyAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgICAgICByZWw6IFwibWFuaWZlc3RcIixcbiAgICAgICAgICAgIGhyZWY6IG1ldGFkYXRhLm1hbmlmZXN0LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAvLyBJZiBpdCdzIHNhbWUgb3JpZ2luLCBhbmQgaXQncyBhIHByZXZpZXcgZGVwbG95bWVudCxcbiAgICAgICAgICAgIC8vIGluY2x1ZGluZyBjcmVkZW50aWFscyBmb3IgbWFuaWZlc3QgcmVxdWVzdC5cbiAgICAgICAgICAgIGNyb3NzT3JpZ2luOiAhbWFuaWZlc3RPcmlnaW4gJiYgcHJvY2Vzcy5lbnYuVkVSQ0VMX0VOViA9PT0gJ3ByZXZpZXcnID8gJ3VzZS1jcmVkZW50aWFscycgOiB1bmRlZmluZWRcbiAgICAgICAgfSkgOiBudWxsLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2dlbmVyYXRvcicsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5nZW5lcmF0b3JcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAna2V5d29yZHMnLFxuICAgICAgICAgICAgY29udGVudDogKF9tZXRhZGF0YV9rZXl3b3JkcyA9IG1ldGFkYXRhLmtleXdvcmRzKSA9PSBudWxsID8gdm9pZCAwIDogX21ldGFkYXRhX2tleXdvcmRzLmpvaW4oJywnKVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdyZWZlcnJlcicsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5yZWZlcnJlclxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdjcmVhdG9yJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLmNyZWF0b3JcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAncHVibGlzaGVyJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG1ldGFkYXRhLnB1Ymxpc2hlclxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdyb2JvdHMnLFxuICAgICAgICAgICAgY29udGVudDogKF9tZXRhZGF0YV9yb2JvdHMgPSBtZXRhZGF0YS5yb2JvdHMpID09IG51bGwgPyB2b2lkIDAgOiBfbWV0YWRhdGFfcm9ib3RzLmJhc2ljXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2dvb2dsZWJvdCcsXG4gICAgICAgICAgICBjb250ZW50OiAoX21ldGFkYXRhX3JvYm90czEgPSBtZXRhZGF0YS5yb2JvdHMpID09IG51bGwgPyB2b2lkIDAgOiBfbWV0YWRhdGFfcm9ib3RzMS5nb29nbGVCb3RcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnYWJzdHJhY3QnLFxuICAgICAgICAgICAgY29udGVudDogbWV0YWRhdGEuYWJzdHJhY3RcbiAgICAgICAgfSksXG4gICAgICAgIC4uLm1ldGFkYXRhLmFyY2hpdmVzID8gbWV0YWRhdGEuYXJjaGl2ZXMubWFwKChhcmNoaXZlKT0+LyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgIHJlbDogXCJhcmNoaXZlc1wiLFxuICAgICAgICAgICAgICAgIGhyZWY6IGFyY2hpdmVcbiAgICAgICAgICAgIH0pKSA6IFtdLFxuICAgICAgICAuLi5tZXRhZGF0YS5hc3NldHMgPyBtZXRhZGF0YS5hc3NldHMubWFwKChhc3NldCk9Pi8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICByZWw6IFwiYXNzZXRzXCIsXG4gICAgICAgICAgICAgICAgaHJlZjogYXNzZXRcbiAgICAgICAgICAgIH0pKSA6IFtdLFxuICAgICAgICAuLi5tZXRhZGF0YS5ib29rbWFya3MgPyBtZXRhZGF0YS5ib29rbWFya3MubWFwKChib29rbWFyayk9Pi8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICByZWw6IFwiYm9va21hcmtzXCIsXG4gICAgICAgICAgICAgICAgaHJlZjogYm9va21hcmtcbiAgICAgICAgICAgIH0pKSA6IFtdLFxuICAgICAgICAuLi5tZXRhZGF0YS5wYWdpbmF0aW9uID8gW1xuICAgICAgICAgICAgbWV0YWRhdGEucGFnaW5hdGlvbi5wcmV2aW91cyA/IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICByZWw6IFwicHJldlwiLFxuICAgICAgICAgICAgICAgIGhyZWY6IG1ldGFkYXRhLnBhZ2luYXRpb24ucHJldmlvdXNcbiAgICAgICAgICAgIH0pIDogbnVsbCxcbiAgICAgICAgICAgIG1ldGFkYXRhLnBhZ2luYXRpb24ubmV4dCA/IC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgICAgICByZWw6IFwibmV4dFwiLFxuICAgICAgICAgICAgICAgIGhyZWY6IG1ldGFkYXRhLnBhZ2luYXRpb24ubmV4dFxuICAgICAgICAgICAgfSkgOiBudWxsXG4gICAgICAgIF0gOiBbXSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdjYXRlZ29yeScsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5jYXRlZ29yeVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICdjbGFzc2lmaWNhdGlvbicsXG4gICAgICAgICAgICBjb250ZW50OiBtZXRhZGF0YS5jbGFzc2lmaWNhdGlvblxuICAgICAgICB9KSxcbiAgICAgICAgLi4ubWV0YWRhdGEub3RoZXIgPyBPYmplY3QuZW50cmllcyhtZXRhZGF0YS5vdGhlcikubWFwKChbbmFtZSwgY29udGVudF0pPT57XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjb250ZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZW50Lm1hcCgoY29udGVudEl0ZW0pPT4oMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnRJdGVtXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkgOiBbXVxuICAgIF0pO1xufVxuZnVuY3Rpb24gSXR1bmVzTWV0YSh7IGl0dW5lcyB9KSB7XG4gICAgaWYgKCFpdHVuZXMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgYXBwSWQsIGFwcEFyZ3VtZW50IH0gPSBpdHVuZXM7XG4gICAgbGV0IGNvbnRlbnQgPSBgYXBwLWlkPSR7YXBwSWR9YDtcbiAgICBpZiAoYXBwQXJndW1lbnQpIHtcbiAgICAgICAgY29udGVudCArPSBgLCBhcHAtYXJndW1lbnQ9JHthcHBBcmd1bWVudH1gO1xuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICBuYW1lOiBcImFwcGxlLWl0dW5lcy1hcHBcIixcbiAgICAgICAgY29udGVudDogY29udGVudFxuICAgIH0pO1xufVxuZnVuY3Rpb24gRmFjZWJvb2tNZXRhKHsgZmFjZWJvb2sgfSkge1xuICAgIGlmICghZmFjZWJvb2spIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgYXBwSWQsIGFkbWlucyB9ID0gZmFjZWJvb2s7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgIGFwcElkID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICAgICAgcHJvcGVydHk6IFwiZmI6YXBwX2lkXCIsXG4gICAgICAgICAgICBjb250ZW50OiBhcHBJZFxuICAgICAgICB9KSA6IG51bGwsXG4gICAgICAgIC4uLmFkbWlucyA/IGFkbWlucy5tYXAoKGFkbWluKT0+LyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICAgICAgICAgIHByb3BlcnR5OiBcImZiOmFkbWluc1wiLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGFkbWluXG4gICAgICAgICAgICB9KSkgOiBbXVxuICAgIF0pO1xufVxuZnVuY3Rpb24gUGludGVyZXN0TWV0YSh7IHBpbnRlcmVzdCB9KSB7XG4gICAgaWYgKCFwaW50ZXJlc3QgfHwgIXBpbnRlcmVzdC5yaWNoUGluKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IHJpY2hQaW4gfSA9IHBpbnRlcmVzdDtcbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICBwcm9wZXJ0eTogXCJwaW50ZXJlc3QtcmljaC1waW5cIixcbiAgICAgICAgY29udGVudDogcmljaFBpbi50b1N0cmluZygpXG4gICAgfSk7XG59XG5jb25zdCBmb3JtYXREZXRlY3Rpb25LZXlzID0gW1xuICAgICd0ZWxlcGhvbmUnLFxuICAgICdkYXRlJyxcbiAgICAnYWRkcmVzcycsXG4gICAgJ2VtYWlsJyxcbiAgICAndXJsJ1xuXTtcbmZ1bmN0aW9uIEZvcm1hdERldGVjdGlvbk1ldGEoeyBmb3JtYXREZXRlY3Rpb24gfSkge1xuICAgIGlmICghZm9ybWF0RGV0ZWN0aW9uKSByZXR1cm4gbnVsbDtcbiAgICBsZXQgY29udGVudCA9ICcnO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGZvcm1hdERldGVjdGlvbktleXMpe1xuICAgICAgICBpZiAoa2V5IGluIGZvcm1hdERldGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQpIGNvbnRlbnQgKz0gJywgJztcbiAgICAgICAgICAgIGNvbnRlbnQgKz0gYCR7a2V5fT1ub2A7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJtZXRhXCIsIHtcbiAgICAgICAgbmFtZTogXCJmb3JtYXQtZGV0ZWN0aW9uXCIsXG4gICAgICAgIGNvbnRlbnQ6IGNvbnRlbnRcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIEFwcGxlV2ViQXBwTWV0YSh7IGFwcGxlV2ViQXBwIH0pIHtcbiAgICBpZiAoIWFwcGxlV2ViQXBwKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IGNhcGFibGUsIHRpdGxlLCBzdGFydHVwSW1hZ2UsIHN0YXR1c0JhclN0eWxlIH0gPSBhcHBsZVdlYkFwcDtcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgY2FwYWJsZSA/ICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnbW9iaWxlLXdlYi1hcHAtY2FwYWJsZScsXG4gICAgICAgICAgICBjb250ZW50OiAneWVzJ1xuICAgICAgICB9KSA6IG51bGwsXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAnYXBwbGUtbW9iaWxlLXdlYi1hcHAtdGl0bGUnLFxuICAgICAgICAgICAgY29udGVudDogdGl0bGVcbiAgICAgICAgfSksXG4gICAgICAgIHN0YXJ0dXBJbWFnZSA/IHN0YXJ0dXBJbWFnZS5tYXAoKGltYWdlKT0+LyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImxpbmtcIiwge1xuICAgICAgICAgICAgICAgIGhyZWY6IGltYWdlLnVybCxcbiAgICAgICAgICAgICAgICBtZWRpYTogaW1hZ2UubWVkaWEsXG4gICAgICAgICAgICAgICAgcmVsOiBcImFwcGxlLXRvdWNoLXN0YXJ0dXAtaW1hZ2VcIlxuICAgICAgICAgICAgfSkpIDogbnVsbCxcbiAgICAgICAgc3RhdHVzQmFyU3R5bGUgPyAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogJ2FwcGxlLW1vYmlsZS13ZWItYXBwLXN0YXR1cy1iYXItc3R5bGUnLFxuICAgICAgICAgICAgY29udGVudDogc3RhdHVzQmFyU3R5bGVcbiAgICAgICAgfSkgOiBudWxsXG4gICAgXSk7XG59XG5mdW5jdGlvbiBWZXJpZmljYXRpb25NZXRhKHsgdmVyaWZpY2F0aW9uIH0pIHtcbiAgICBpZiAoIXZlcmlmaWNhdGlvbikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIG5hbWVQcmVmaXg6ICdnb29nbGUtc2l0ZS12ZXJpZmljYXRpb24nLFxuICAgICAgICAgICAgY29udGVudHM6IHZlcmlmaWNhdGlvbi5nb29nbGVcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIG5hbWVQcmVmaXg6ICd5X2tleScsXG4gICAgICAgICAgICBjb250ZW50czogdmVyaWZpY2F0aW9uLnlhaG9vXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBuYW1lUHJlZml4OiAneWFuZGV4LXZlcmlmaWNhdGlvbicsXG4gICAgICAgICAgICBjb250ZW50czogdmVyaWZpY2F0aW9uLnlhbmRleFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgbmFtZVByZWZpeDogJ21lJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiB2ZXJpZmljYXRpb24ubWVcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnZlcmlmaWNhdGlvbi5vdGhlciA/IE9iamVjdC5lbnRyaWVzKHZlcmlmaWNhdGlvbi5vdGhlcikubWFwKChba2V5LCB2YWx1ZV0pPT4oMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgbmFtZVByZWZpeDoga2V5LFxuICAgICAgICAgICAgICAgIGNvbnRlbnRzOiB2YWx1ZVxuICAgICAgICAgICAgfSkpIDogW11cbiAgICBdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YmFzaWMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/basic.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/generate/icon-mark.js ***!
\*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js")
module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/lib/metadata/generate/icon-mark.js")
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/icons.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/generate/icons.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"IconsMetadata\", ({\n enumerable: true,\n get: function() {\n return IconsMetadata;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _iconmark = __webpack_require__(/*! ./icon-mark */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\");\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nfunction IconDescriptorLink({ icon }) {\n const { url, rel = 'icon', ...props } = icon;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: rel,\n href: url.toString(),\n ...props\n });\n}\nfunction IconLink({ rel, icon }) {\n if (typeof icon === 'object' && !(icon instanceof URL)) {\n if (!icon.rel && rel) icon.rel = rel;\n return IconDescriptorLink({\n icon\n });\n } else {\n const href = icon.toString();\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: rel,\n href: href\n });\n }\n}\nfunction IconsMetadata({ icons }) {\n if (!icons) return null;\n const shortcutList = icons.shortcut;\n const iconList = icons.icon;\n const appleList = icons.apple;\n const otherList = icons.other;\n const hasIcon = Boolean((shortcutList == null ? void 0 : shortcutList.length) || (iconList == null ? void 0 : iconList.length) || (appleList == null ? void 0 : appleList.length) || (otherList == null ? void 0 : otherList.length));\n if (!hasIcon) return null;\n return (0, _meta.MetaFilter)([\n shortcutList ? shortcutList.map((icon)=>IconLink({\n rel: 'shortcut icon',\n icon\n })) : null,\n iconList ? iconList.map((icon)=>IconLink({\n rel: 'icon',\n icon\n })) : null,\n appleList ? appleList.map((icon)=>IconLink({\n rel: 'apple-touch-icon',\n icon\n })) : null,\n otherList ? otherList.map((icon)=>IconDescriptorLink({\n icon\n })) : null,\n hasIcon ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_iconmark.IconMark, {}) : null\n ]);\n}\n\n//# sourceMappingURL=icons.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29ucy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGlEQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG9CQUFvQixtQkFBTyxDQUFDLHlIQUFtQjtBQUMvQyxrQkFBa0IsbUJBQU8sQ0FBQyxzRkFBYTtBQUN2QyxjQUFjLG1CQUFPLENBQUMsNEVBQVE7QUFDOUIsOEJBQThCLE1BQU07QUFDcEMsWUFBWSw4QkFBOEI7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxvQkFBb0IsV0FBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLHlCQUF5QixPQUFPO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiLDJFQUEyRTtBQUMzRTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkljb25zTWV0YWRhdGFcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEljb25zTWV0YWRhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9pY29ubWFyayA9IHJlcXVpcmUoXCIuL2ljb24tbWFya1wiKTtcbmNvbnN0IF9tZXRhID0gcmVxdWlyZShcIi4vbWV0YVwiKTtcbmZ1bmN0aW9uIEljb25EZXNjcmlwdG9yTGluayh7IGljb24gfSkge1xuICAgIGNvbnN0IHsgdXJsLCByZWwgPSAnaWNvbicsIC4uLnByb3BzIH0gPSBpY29uO1xuICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwibGlua1wiLCB7XG4gICAgICAgIHJlbDogcmVsLFxuICAgICAgICBocmVmOiB1cmwudG9TdHJpbmcoKSxcbiAgICAgICAgLi4ucHJvcHNcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIEljb25MaW5rKHsgcmVsLCBpY29uIH0pIHtcbiAgICBpZiAodHlwZW9mIGljb24gPT09ICdvYmplY3QnICYmICEoaWNvbiBpbnN0YW5jZW9mIFVSTCkpIHtcbiAgICAgICAgaWYgKCFpY29uLnJlbCAmJiByZWwpIGljb24ucmVsID0gcmVsO1xuICAgICAgICByZXR1cm4gSWNvbkRlc2NyaXB0b3JMaW5rKHtcbiAgICAgICAgICAgIGljb25cbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaHJlZiA9IGljb24udG9TdHJpbmcoKTtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJsaW5rXCIsIHtcbiAgICAgICAgICAgIHJlbDogcmVsLFxuICAgICAgICAgICAgaHJlZjogaHJlZlxuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBJY29uc01ldGFkYXRhKHsgaWNvbnMgfSkge1xuICAgIGlmICghaWNvbnMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHNob3J0Y3V0TGlzdCA9IGljb25zLnNob3J0Y3V0O1xuICAgIGNvbnN0IGljb25MaXN0ID0gaWNvbnMuaWNvbjtcbiAgICBjb25zdCBhcHBsZUxpc3QgPSBpY29ucy5hcHBsZTtcbiAgICBjb25zdCBvdGhlckxpc3QgPSBpY29ucy5vdGhlcjtcbiAgICBjb25zdCBoYXNJY29uID0gQm9vbGVhbigoc2hvcnRjdXRMaXN0ID09IG51bGwgPyB2b2lkIDAgOiBzaG9ydGN1dExpc3QubGVuZ3RoKSB8fCAoaWNvbkxpc3QgPT0gbnVsbCA/IHZvaWQgMCA6IGljb25MaXN0Lmxlbmd0aCkgfHwgKGFwcGxlTGlzdCA9PSBudWxsID8gdm9pZCAwIDogYXBwbGVMaXN0Lmxlbmd0aCkgfHwgKG90aGVyTGlzdCA9PSBudWxsID8gdm9pZCAwIDogb3RoZXJMaXN0Lmxlbmd0aCkpO1xuICAgIGlmICghaGFzSWNvbikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgIHNob3J0Y3V0TGlzdCA/IHNob3J0Y3V0TGlzdC5tYXAoKGljb24pPT5JY29uTGluayh7XG4gICAgICAgICAgICAgICAgcmVsOiAnc2hvcnRjdXQgaWNvbicsXG4gICAgICAgICAgICAgICAgaWNvblxuICAgICAgICAgICAgfSkpIDogbnVsbCxcbiAgICAgICAgaWNvbkxpc3QgPyBpY29uTGlzdC5tYXAoKGljb24pPT5JY29uTGluayh7XG4gICAgICAgICAgICAgICAgcmVsOiAnaWNvbicsXG4gICAgICAgICAgICAgICAgaWNvblxuICAgICAgICAgICAgfSkpIDogbnVsbCxcbiAgICAgICAgYXBwbGVMaXN0ID8gYXBwbGVMaXN0Lm1hcCgoaWNvbik9Pkljb25MaW5rKHtcbiAgICAgICAgICAgICAgICByZWw6ICdhcHBsZS10b3VjaC1pY29uJyxcbiAgICAgICAgICAgICAgICBpY29uXG4gICAgICAgICAgICB9KSkgOiBudWxsLFxuICAgICAgICBvdGhlckxpc3QgPyBvdGhlckxpc3QubWFwKChpY29uKT0+SWNvbkRlc2NyaXB0b3JMaW5rKHtcbiAgICAgICAgICAgICAgICBpY29uXG4gICAgICAgICAgICB9KSkgOiBudWxsLFxuICAgICAgICBoYXNJY29uID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfaWNvbm1hcmsuSWNvbk1hcmssIHt9KSA6IG51bGxcbiAgICBdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aWNvbnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/icons.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/generate/meta.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Meta: function() {\n return Meta;\n },\n MetaFilter: function() {\n return MetaFilter;\n },\n MultiMeta: function() {\n return MultiMeta;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _nonnullable = __webpack_require__(/*! ../../non-nullable */ \"(rsc)/./node_modules/next/dist/lib/non-nullable.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction Meta({ name, property, content, media }) {\n if (typeof content !== 'undefined' && content !== null && content !== '') {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n ...name ? {\n name\n } : {\n property\n },\n ...media ? {\n media\n } : undefined,\n content: typeof content === 'string' ? content : content.toString()\n });\n }\n return null;\n}\nfunction MetaFilter(items) {\n const acc = [];\n for (const item of items){\n if (Array.isArray(item)) {\n acc.push(...item.filter(_nonnullable.nonNullable));\n } else if ((0, _nonnullable.nonNullable)(item)) {\n acc.push(item);\n }\n }\n return acc;\n}\nfunction camelToSnake(camelCaseStr) {\n return camelCaseStr.replace(/([A-Z])/g, function(match) {\n return '_' + match.toLowerCase();\n });\n}\nconst aliasPropPrefixes = new Set([\n 'og:image',\n 'twitter:image',\n 'og:video',\n 'og:audio'\n]);\nfunction getMetaKey(prefix, key) {\n // Use `twitter:image` and `og:image` instead of `twitter:image:url` and `og:image:url`\n // to be more compatible as it's a more common format.\n // `og:video` & `og:audio` do not have a `:url` suffix alias\n if (aliasPropPrefixes.has(prefix) && key === 'url') {\n return prefix;\n }\n if (prefix.startsWith('og:') || prefix.startsWith('twitter:')) {\n key = camelToSnake(key);\n }\n return prefix + ':' + key;\n}\nfunction ExtendMeta({ content, namePrefix, propertyPrefix }) {\n if (!content) return null;\n return MetaFilter(Object.entries(content).map(([k, v])=>{\n return typeof v === 'undefined' ? null : Meta({\n ...propertyPrefix && {\n property: getMetaKey(propertyPrefix, k)\n },\n ...namePrefix && {\n name: getMetaKey(namePrefix, k)\n },\n content: typeof v === 'string' ? v : v == null ? void 0 : v.toString()\n });\n }));\n}\nfunction MultiMeta({ propertyPrefix, namePrefix, contents }) {\n if (typeof contents === 'undefined' || contents === null) {\n return null;\n }\n return MetaFilter(contents.map((content)=>{\n if (typeof content === 'string' || typeof content === 'number' || content instanceof URL) {\n return Meta({\n ...propertyPrefix ? {\n property: propertyPrefix\n } : {\n name: namePrefix\n },\n content\n });\n } else {\n return ExtendMeta({\n namePrefix,\n propertyPrefix,\n content\n });\n }\n }));\n}\n\n//# sourceMappingURL=meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9tZXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUlMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLHNEQUFzRCxtQkFBTyxDQUFDLGlHQUFPO0FBQ3JFLHFCQUFxQixtQkFBTyxDQUFDLDhFQUFvQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGdDQUFnQztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixxQ0FBcUM7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBLHFCQUFxQixzQ0FBc0M7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLGFBQWE7QUFDYixVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2dlbmVyYXRlL21ldGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBNZXRhOiBudWxsLFxuICAgIE1ldGFGaWx0ZXI6IG51bGwsXG4gICAgTXVsdGlNZXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTWV0YTtcbiAgICB9LFxuICAgIE1ldGFGaWx0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTWV0YUZpbHRlcjtcbiAgICB9LFxuICAgIE11bHRpTWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBNdWx0aU1ldGE7XG4gICAgfVxufSk7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfbm9ubnVsbGFibGUgPSByZXF1aXJlKFwiLi4vLi4vbm9uLW51bGxhYmxlXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBNZXRhKHsgbmFtZSwgcHJvcGVydHksIGNvbnRlbnQsIG1lZGlhIH0pIHtcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgIT09ICd1bmRlZmluZWQnICYmIGNvbnRlbnQgIT09IG51bGwgJiYgY29udGVudCAhPT0gJycpIHtcbiAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoXCJtZXRhXCIsIHtcbiAgICAgICAgICAgIC4uLm5hbWUgPyB7XG4gICAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgfSA6IHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC4uLm1lZGlhID8ge1xuICAgICAgICAgICAgICAgIG1lZGlhXG4gICAgICAgICAgICB9IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY29udGVudDogdHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnID8gY29udGVudCA6IGNvbnRlbnQudG9TdHJpbmcoKVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBNZXRhRmlsdGVyKGl0ZW1zKSB7XG4gICAgY29uc3QgYWNjID0gW107XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKXtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICAgICAgICAgIGFjYy5wdXNoKC4uLml0ZW0uZmlsdGVyKF9ub25udWxsYWJsZS5ub25OdWxsYWJsZSkpO1xuICAgICAgICB9IGVsc2UgaWYgKCgwLCBfbm9ubnVsbGFibGUubm9uTnVsbGFibGUpKGl0ZW0pKSB7XG4gICAgICAgICAgICBhY2MucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWNjO1xufVxuZnVuY3Rpb24gY2FtZWxUb1NuYWtlKGNhbWVsQ2FzZVN0cikge1xuICAgIHJldHVybiBjYW1lbENhc2VTdHIucmVwbGFjZSgvKFtBLVpdKS9nLCBmdW5jdGlvbihtYXRjaCkge1xuICAgICAgICByZXR1cm4gJ18nICsgbWF0Y2gudG9Mb3dlckNhc2UoKTtcbiAgICB9KTtcbn1cbmNvbnN0IGFsaWFzUHJvcFByZWZpeGVzID0gbmV3IFNldChbXG4gICAgJ29nOmltYWdlJyxcbiAgICAndHdpdHRlcjppbWFnZScsXG4gICAgJ29nOnZpZGVvJyxcbiAgICAnb2c6YXVkaW8nXG5dKTtcbmZ1bmN0aW9uIGdldE1ldGFLZXkocHJlZml4LCBrZXkpIHtcbiAgICAvLyBVc2UgYHR3aXR0ZXI6aW1hZ2VgIGFuZCBgb2c6aW1hZ2VgIGluc3RlYWQgb2YgYHR3aXR0ZXI6aW1hZ2U6dXJsYCBhbmQgYG9nOmltYWdlOnVybGBcbiAgICAvLyB0byBiZSBtb3JlIGNvbXBhdGlibGUgYXMgaXQncyBhIG1vcmUgY29tbW9uIGZvcm1hdC5cbiAgICAvLyBgb2c6dmlkZW9gICYgYG9nOmF1ZGlvYCBkbyBub3QgaGF2ZSBhIGA6dXJsYCBzdWZmaXggYWxpYXNcbiAgICBpZiAoYWxpYXNQcm9wUHJlZml4ZXMuaGFzKHByZWZpeCkgJiYga2V5ID09PSAndXJsJykge1xuICAgICAgICByZXR1cm4gcHJlZml4O1xuICAgIH1cbiAgICBpZiAocHJlZml4LnN0YXJ0c1dpdGgoJ29nOicpIHx8IHByZWZpeC5zdGFydHNXaXRoKCd0d2l0dGVyOicpKSB7XG4gICAgICAgIGtleSA9IGNhbWVsVG9TbmFrZShrZXkpO1xuICAgIH1cbiAgICByZXR1cm4gcHJlZml4ICsgJzonICsga2V5O1xufVxuZnVuY3Rpb24gRXh0ZW5kTWV0YSh7IGNvbnRlbnQsIG5hbWVQcmVmaXgsIHByb3BlcnR5UHJlZml4IH0pIHtcbiAgICBpZiAoIWNvbnRlbnQpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBNZXRhRmlsdGVyKE9iamVjdC5lbnRyaWVzKGNvbnRlbnQpLm1hcCgoW2ssIHZdKT0+e1xuICAgICAgICByZXR1cm4gdHlwZW9mIHYgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IE1ldGEoe1xuICAgICAgICAgICAgLi4ucHJvcGVydHlQcmVmaXggJiYge1xuICAgICAgICAgICAgICAgIHByb3BlcnR5OiBnZXRNZXRhS2V5KHByb3BlcnR5UHJlZml4LCBrKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC4uLm5hbWVQcmVmaXggJiYge1xuICAgICAgICAgICAgICAgIG5hbWU6IGdldE1ldGFLZXkobmFtZVByZWZpeCwgaylcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb250ZW50OiB0eXBlb2YgdiA9PT0gJ3N0cmluZycgPyB2IDogdiA9PSBudWxsID8gdm9pZCAwIDogdi50b1N0cmluZygpXG4gICAgICAgIH0pO1xuICAgIH0pKTtcbn1cbmZ1bmN0aW9uIE11bHRpTWV0YSh7IHByb3BlcnR5UHJlZml4LCBuYW1lUHJlZml4LCBjb250ZW50cyB9KSB7XG4gICAgaWYgKHR5cGVvZiBjb250ZW50cyA9PT0gJ3VuZGVmaW5lZCcgfHwgY29udGVudHMgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBNZXRhRmlsdGVyKGNvbnRlbnRzLm1hcCgoY29udGVudCk9PntcbiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY29udGVudCA9PT0gJ251bWJlcicgfHwgY29udGVudCBpbnN0YW5jZW9mIFVSTCkge1xuICAgICAgICAgICAgcmV0dXJuIE1ldGEoe1xuICAgICAgICAgICAgICAgIC4uLnByb3BlcnR5UHJlZml4ID8ge1xuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogcHJvcGVydHlQcmVmaXhcbiAgICAgICAgICAgICAgICB9IDoge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lUHJlZml4XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb250ZW50XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBFeHRlbmRNZXRhKHtcbiAgICAgICAgICAgICAgICBuYW1lUHJlZml4LFxuICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4LFxuICAgICAgICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/opengraph.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/generate/opengraph.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppLinksMeta: function() {\n return AppLinksMeta;\n },\n OpenGraphMetadata: function() {\n return OpenGraphMetadata;\n },\n TwitterMetadata: function() {\n return TwitterMetadata;\n }\n});\nconst _meta = __webpack_require__(/*! ./meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nfunction OpenGraphMetadata({ openGraph }) {\n var _openGraph_title, _openGraph_url, _openGraph_ttl;\n if (!openGraph) {\n return null;\n }\n let typedOpenGraph;\n if ('type' in openGraph) {\n const openGraphType = openGraph.type;\n switch(openGraphType){\n case 'website':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'website'\n })\n ];\n break;\n case 'article':\n var _openGraph_publishedTime, _openGraph_modifiedTime, _openGraph_expirationTime;\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'article'\n }),\n (0, _meta.Meta)({\n property: 'article:published_time',\n content: (_openGraph_publishedTime = openGraph.publishedTime) == null ? void 0 : _openGraph_publishedTime.toString()\n }),\n (0, _meta.Meta)({\n property: 'article:modified_time',\n content: (_openGraph_modifiedTime = openGraph.modifiedTime) == null ? void 0 : _openGraph_modifiedTime.toString()\n }),\n (0, _meta.Meta)({\n property: 'article:expiration_time',\n content: (_openGraph_expirationTime = openGraph.expirationTime) == null ? void 0 : _openGraph_expirationTime.toString()\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'article:author',\n contents: openGraph.authors\n }),\n (0, _meta.Meta)({\n property: 'article:section',\n content: openGraph.section\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'article:tag',\n contents: openGraph.tags\n })\n ];\n break;\n case 'book':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'book'\n }),\n (0, _meta.Meta)({\n property: 'book:isbn',\n content: openGraph.isbn\n }),\n (0, _meta.Meta)({\n property: 'book:release_date',\n content: openGraph.releaseDate\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'book:author',\n contents: openGraph.authors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'book:tag',\n contents: openGraph.tags\n })\n ];\n break;\n case 'profile':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'profile'\n }),\n (0, _meta.Meta)({\n property: 'profile:first_name',\n content: openGraph.firstName\n }),\n (0, _meta.Meta)({\n property: 'profile:last_name',\n content: openGraph.lastName\n }),\n (0, _meta.Meta)({\n property: 'profile:username',\n content: openGraph.username\n }),\n (0, _meta.Meta)({\n property: 'profile:gender',\n content: openGraph.gender\n })\n ];\n break;\n case 'music.song':\n var _openGraph_duration;\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'music.song'\n }),\n (0, _meta.Meta)({\n property: 'music:duration',\n content: (_openGraph_duration = openGraph.duration) == null ? void 0 : _openGraph_duration.toString()\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:album',\n contents: openGraph.albums\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:musician',\n contents: openGraph.musicians\n })\n ];\n break;\n case 'music.album':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'music.album'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:song',\n contents: openGraph.songs\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:musician',\n contents: openGraph.musicians\n }),\n (0, _meta.Meta)({\n property: 'music:release_date',\n content: openGraph.releaseDate\n })\n ];\n break;\n case 'music.playlist':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'music.playlist'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:song',\n contents: openGraph.songs\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:creator',\n contents: openGraph.creators\n })\n ];\n break;\n case 'music.radio_station':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'music.radio_station'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'music:creator',\n contents: openGraph.creators\n })\n ];\n break;\n case 'video.movie':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.movie'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:actor',\n contents: openGraph.actors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:director',\n contents: openGraph.directors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:writer',\n contents: openGraph.writers\n }),\n (0, _meta.Meta)({\n property: 'video:duration',\n content: openGraph.duration\n }),\n (0, _meta.Meta)({\n property: 'video:release_date',\n content: openGraph.releaseDate\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:tag',\n contents: openGraph.tags\n })\n ];\n break;\n case 'video.episode':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.episode'\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:actor',\n contents: openGraph.actors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:director',\n contents: openGraph.directors\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:writer',\n contents: openGraph.writers\n }),\n (0, _meta.Meta)({\n property: 'video:duration',\n content: openGraph.duration\n }),\n (0, _meta.Meta)({\n property: 'video:release_date',\n content: openGraph.releaseDate\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'video:tag',\n contents: openGraph.tags\n }),\n (0, _meta.Meta)({\n property: 'video:series',\n content: openGraph.series\n })\n ];\n break;\n case 'video.tv_show':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.tv_show'\n })\n ];\n break;\n case 'video.other':\n typedOpenGraph = [\n (0, _meta.Meta)({\n property: 'og:type',\n content: 'video.other'\n })\n ];\n break;\n default:\n const _exhaustiveCheck = openGraphType;\n throw Object.defineProperty(new Error(`Invalid OpenGraph type: ${_exhaustiveCheck}`), \"__NEXT_ERROR_CODE\", {\n value: \"E237\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return (0, _meta.MetaFilter)([\n (0, _meta.Meta)({\n property: 'og:determiner',\n content: openGraph.determiner\n }),\n (0, _meta.Meta)({\n property: 'og:title',\n content: (_openGraph_title = openGraph.title) == null ? void 0 : _openGraph_title.absolute\n }),\n (0, _meta.Meta)({\n property: 'og:description',\n content: openGraph.description\n }),\n (0, _meta.Meta)({\n property: 'og:url',\n content: (_openGraph_url = openGraph.url) == null ? void 0 : _openGraph_url.toString()\n }),\n (0, _meta.Meta)({\n property: 'og:site_name',\n content: openGraph.siteName\n }),\n (0, _meta.Meta)({\n property: 'og:locale',\n content: openGraph.locale\n }),\n (0, _meta.Meta)({\n property: 'og:country_name',\n content: openGraph.countryName\n }),\n (0, _meta.Meta)({\n property: 'og:ttl',\n content: (_openGraph_ttl = openGraph.ttl) == null ? void 0 : _openGraph_ttl.toString()\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:image',\n contents: openGraph.images\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:video',\n contents: openGraph.videos\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:audio',\n contents: openGraph.audio\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:email',\n contents: openGraph.emails\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:phone_number',\n contents: openGraph.phoneNumbers\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:fax_number',\n contents: openGraph.faxNumbers\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'og:locale:alternate',\n contents: openGraph.alternateLocale\n }),\n ...typedOpenGraph ? typedOpenGraph : []\n ]);\n}\nfunction TwitterAppItem({ app, type }) {\n var _app_url_type, _app_url;\n return [\n (0, _meta.Meta)({\n name: `twitter:app:name:${type}`,\n content: app.name\n }),\n (0, _meta.Meta)({\n name: `twitter:app:id:${type}`,\n content: app.id[type]\n }),\n (0, _meta.Meta)({\n name: `twitter:app:url:${type}`,\n content: (_app_url = app.url) == null ? void 0 : (_app_url_type = _app_url[type]) == null ? void 0 : _app_url_type.toString()\n })\n ];\n}\nfunction TwitterMetadata({ twitter }) {\n var _twitter_title;\n if (!twitter) return null;\n const { card } = twitter;\n return (0, _meta.MetaFilter)([\n (0, _meta.Meta)({\n name: 'twitter:card',\n content: card\n }),\n (0, _meta.Meta)({\n name: 'twitter:site',\n content: twitter.site\n }),\n (0, _meta.Meta)({\n name: 'twitter:site:id',\n content: twitter.siteId\n }),\n (0, _meta.Meta)({\n name: 'twitter:creator',\n content: twitter.creator\n }),\n (0, _meta.Meta)({\n name: 'twitter:creator:id',\n content: twitter.creatorId\n }),\n (0, _meta.Meta)({\n name: 'twitter:title',\n content: (_twitter_title = twitter.title) == null ? void 0 : _twitter_title.absolute\n }),\n (0, _meta.Meta)({\n name: 'twitter:description',\n content: twitter.description\n }),\n (0, _meta.MultiMeta)({\n namePrefix: 'twitter:image',\n contents: twitter.images\n }),\n ...card === 'player' ? twitter.players.flatMap((player)=>[\n (0, _meta.Meta)({\n name: 'twitter:player',\n content: player.playerUrl.toString()\n }),\n (0, _meta.Meta)({\n name: 'twitter:player:stream',\n content: player.streamUrl.toString()\n }),\n (0, _meta.Meta)({\n name: 'twitter:player:width',\n content: player.width\n }),\n (0, _meta.Meta)({\n name: 'twitter:player:height',\n content: player.height\n })\n ]) : [],\n ...card === 'app' ? [\n TwitterAppItem({\n app: twitter.app,\n type: 'iphone'\n }),\n TwitterAppItem({\n app: twitter.app,\n type: 'ipad'\n }),\n TwitterAppItem({\n app: twitter.app,\n type: 'googleplay'\n })\n ] : []\n ]);\n}\nfunction AppLinksMeta({ appLinks }) {\n if (!appLinks) return null;\n return (0, _meta.MetaFilter)([\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:ios',\n contents: appLinks.ios\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:iphone',\n contents: appLinks.iphone\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:ipad',\n contents: appLinks.ipad\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:android',\n contents: appLinks.android\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:windows_phone',\n contents: appLinks.windows_phone\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:windows',\n contents: appLinks.windows\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:windows_universal',\n contents: appLinks.windows_universal\n }),\n (0, _meta.MultiMeta)({\n propertyPrefix: 'al:web',\n contents: appLinks.web\n })\n ]);\n}\n\n//# sourceMappingURL=opengraph.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9vcGVuZ3JhcGguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxjQUFjLG1CQUFPLENBQUMsNEVBQVE7QUFDOUIsNkJBQTZCLFdBQVc7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUZBQWlGLGlCQUFpQjtBQUNsRztBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLFdBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLEtBQUs7QUFDM0M7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxvQ0FBb0MsS0FBSztBQUN6QztBQUNBLFNBQVM7QUFDVDtBQUNBLHFDQUFxQyxLQUFLO0FBQzFDO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSwyQkFBMkIsU0FBUztBQUNwQztBQUNBO0FBQ0EsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFVBQVU7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2VuZXJhdGUvb3BlbmdyYXBoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQXBwTGlua3NNZXRhOiBudWxsLFxuICAgIE9wZW5HcmFwaE1ldGFkYXRhOiBudWxsLFxuICAgIFR3aXR0ZXJNZXRhZGF0YTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBcHBMaW5rc01ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwTGlua3NNZXRhO1xuICAgIH0sXG4gICAgT3BlbkdyYXBoTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gT3BlbkdyYXBoTWV0YWRhdGE7XG4gICAgfSxcbiAgICBUd2l0dGVyTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVHdpdHRlck1ldGFkYXRhO1xuICAgIH1cbn0pO1xuY29uc3QgX21ldGEgPSByZXF1aXJlKFwiLi9tZXRhXCIpO1xuZnVuY3Rpb24gT3BlbkdyYXBoTWV0YWRhdGEoeyBvcGVuR3JhcGggfSkge1xuICAgIHZhciBfb3BlbkdyYXBoX3RpdGxlLCBfb3BlbkdyYXBoX3VybCwgX29wZW5HcmFwaF90dGw7XG4gICAgaWYgKCFvcGVuR3JhcGgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGxldCB0eXBlZE9wZW5HcmFwaDtcbiAgICBpZiAoJ3R5cGUnIGluIG9wZW5HcmFwaCkge1xuICAgICAgICBjb25zdCBvcGVuR3JhcGhUeXBlID0gb3BlbkdyYXBoLnR5cGU7XG4gICAgICAgIHN3aXRjaChvcGVuR3JhcGhUeXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3dlYnNpdGUnOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd3ZWJzaXRlJ1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhcnRpY2xlJzpcbiAgICAgICAgICAgICAgICB2YXIgX29wZW5HcmFwaF9wdWJsaXNoZWRUaW1lLCBfb3BlbkdyYXBoX21vZGlmaWVkVGltZSwgX29wZW5HcmFwaF9leHBpcmF0aW9uVGltZTtcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnYXJ0aWNsZSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ2FydGljbGU6cHVibGlzaGVkX3RpbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfcHVibGlzaGVkVGltZSA9IG9wZW5HcmFwaC5wdWJsaXNoZWRUaW1lKSA9PSBudWxsID8gdm9pZCAwIDogX29wZW5HcmFwaF9wdWJsaXNoZWRUaW1lLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ2FydGljbGU6bW9kaWZpZWRfdGltZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAoX29wZW5HcmFwaF9tb2RpZmllZFRpbWUgPSBvcGVuR3JhcGgubW9kaWZpZWRUaW1lKSA9PSBudWxsID8gdm9pZCAwIDogX29wZW5HcmFwaF9tb2RpZmllZFRpbWUudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnYXJ0aWNsZTpleHBpcmF0aW9uX3RpbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfZXhwaXJhdGlvblRpbWUgPSBvcGVuR3JhcGguZXhwaXJhdGlvblRpbWUpID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX2V4cGlyYXRpb25UaW1lLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYXJ0aWNsZTphdXRob3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hdXRob3JzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdhcnRpY2xlOnNlY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnNlY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYXJ0aWNsZTp0YWcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC50YWdzXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2snOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdib29rJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnYm9vazppc2JuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5pc2JuXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdib29rOnJlbGVhc2VfZGF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgucmVsZWFzZURhdGVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYm9vazphdXRob3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hdXRob3JzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2Jvb2s6dGFnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgudGFnc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwcm9maWxlJzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAncHJvZmlsZSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3Byb2ZpbGU6Zmlyc3RfbmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguZmlyc3ROYW1lXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdwcm9maWxlOmxhc3RfbmFtZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgubGFzdE5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3Byb2ZpbGU6dXNlcm5hbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnVzZXJuYW1lXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdwcm9maWxlOmdlbmRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguZ2VuZGVyXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ211c2ljLnNvbmcnOlxuICAgICAgICAgICAgICAgIHZhciBfb3BlbkdyYXBoX2R1cmF0aW9uO1xuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdtdXNpYy5zb25nJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnbXVzaWM6ZHVyYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogKF9vcGVuR3JhcGhfZHVyYXRpb24gPSBvcGVuR3JhcGguZHVyYXRpb24pID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX2R1cmF0aW9uLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6YWxidW0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hbGJ1bXNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6bXVzaWNpYW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5tdXNpY2lhbnNcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbXVzaWMuYWxidW0nOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdtdXNpYy5hbGJ1bSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnbXVzaWM6c29uZycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLnNvbmdzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ211c2ljOm11c2ljaWFuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgubXVzaWNpYW5zXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdtdXNpYzpyZWxlYXNlX2RhdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnJlbGVhc2VEYXRlXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ211c2ljLnBsYXlsaXN0JzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnbXVzaWMucGxheWxpc3QnXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ211c2ljOnNvbmcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5zb25nc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdtdXNpYzpjcmVhdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGguY3JlYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbXVzaWMucmFkaW9fc3RhdGlvbic6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ211c2ljLnJhZGlvX3N0YXRpb24nXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ211c2ljOmNyZWF0b3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5jcmVhdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2aWRlby5tb3ZpZSc6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3ZpZGVvLm1vdmllJ1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzphY3RvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmFjdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzpkaXJlY3RvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLmRpcmVjdG9yc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICd2aWRlbzp3cml0ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC53cml0ZXJzXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICd2aWRlbzpkdXJhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguZHVyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3ZpZGVvOnJlbGVhc2VfZGF0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGgucmVsZWFzZURhdGVcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86dGFnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgudGFnc1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2aWRlby5lcGlzb2RlJzpcbiAgICAgICAgICAgICAgICB0eXBlZE9wZW5HcmFwaCA9IFtcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAndmlkZW8uZXBpc29kZSdcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86YWN0b3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hY3RvcnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86ZGlyZWN0b3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5kaXJlY3RvcnNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAndmlkZW86d3JpdGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgud3JpdGVyc1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAndmlkZW86ZHVyYXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmR1cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICd2aWRlbzpyZWxlYXNlX2RhdGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnJlbGVhc2VEYXRlXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ3ZpZGVvOnRhZycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50czogb3BlbkdyYXBoLnRhZ3NcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ3ZpZGVvOnNlcmllcycsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBvcGVuR3JhcGguc2VyaWVzXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ZpZGVvLnR2X3Nob3cnOlxuICAgICAgICAgICAgICAgIHR5cGVkT3BlbkdyYXBoID0gW1xuICAgICAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICd2aWRlby50dl9zaG93J1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2aWRlby5vdGhlcic6XG4gICAgICAgICAgICAgICAgdHlwZWRPcGVuR3JhcGggPSBbXG4gICAgICAgICAgICAgICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogJ29nOnR5cGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ3ZpZGVvLm90aGVyJ1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNvbnN0IF9leGhhdXN0aXZlQ2hlY2sgPSBvcGVuR3JhcGhUeXBlO1xuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFsaWQgT3BlbkdyYXBoIHR5cGU6ICR7X2V4aGF1c3RpdmVDaGVja31gKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUyMzdcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAoMCwgX21ldGEuTWV0YUZpbHRlcikoW1xuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzpkZXRlcm1pbmVyJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5kZXRlcm1pbmVyXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzp0aXRsZScsXG4gICAgICAgICAgICBjb250ZW50OiAoX29wZW5HcmFwaF90aXRsZSA9IG9wZW5HcmFwaC50aXRsZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9vcGVuR3JhcGhfdGl0bGUuYWJzb2x1dGVcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5kZXNjcmlwdGlvblxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dXJsJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfb3BlbkdyYXBoX3VybCA9IG9wZW5HcmFwaC51cmwpID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX3VybC50b1N0cmluZygpXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzpzaXRlX25hbWUnLFxuICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLnNpdGVOYW1lXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHk6ICdvZzpsb2NhbGUnLFxuICAgICAgICAgICAgY29udGVudDogb3BlbkdyYXBoLmxvY2FsZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6Y291bnRyeV9uYW1lJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IG9wZW5HcmFwaC5jb3VudHJ5TmFtZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6dHRsJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IChfb3BlbkdyYXBoX3R0bCA9IG9wZW5HcmFwaC50dGwpID09IG51bGwgPyB2b2lkIDAgOiBfb3BlbkdyYXBoX3R0bC50b1N0cmluZygpXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ29nOmltYWdlJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGguaW1hZ2VzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ29nOnZpZGVvJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgudmlkZW9zXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ29nOmF1ZGlvJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGguYXVkaW9cbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnb2c6ZW1haWwnLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5lbWFpbHNcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnb2c6cGhvbmVfbnVtYmVyJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBvcGVuR3JhcGgucGhvbmVOdW1iZXJzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ29nOmZheF9udW1iZXInLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5mYXhOdW1iZXJzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ29nOmxvY2FsZTphbHRlcm5hdGUnLFxuICAgICAgICAgICAgY29udGVudHM6IG9wZW5HcmFwaC5hbHRlcm5hdGVMb2NhbGVcbiAgICAgICAgfSksXG4gICAgICAgIC4uLnR5cGVkT3BlbkdyYXBoID8gdHlwZWRPcGVuR3JhcGggOiBbXVxuICAgIF0pO1xufVxuZnVuY3Rpb24gVHdpdHRlckFwcEl0ZW0oeyBhcHAsIHR5cGUgfSkge1xuICAgIHZhciBfYXBwX3VybF90eXBlLCBfYXBwX3VybDtcbiAgICByZXR1cm4gW1xuICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgbmFtZTogYHR3aXR0ZXI6YXBwOm5hbWU6JHt0eXBlfWAsXG4gICAgICAgICAgICBjb250ZW50OiBhcHAubmFtZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6IGB0d2l0dGVyOmFwcDppZDoke3R5cGV9YCxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGFwcC5pZFt0eXBlXVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6IGB0d2l0dGVyOmFwcDp1cmw6JHt0eXBlfWAsXG4gICAgICAgICAgICBjb250ZW50OiAoX2FwcF91cmwgPSBhcHAudXJsKSA9PSBudWxsID8gdm9pZCAwIDogKF9hcHBfdXJsX3R5cGUgPSBfYXBwX3VybFt0eXBlXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9hcHBfdXJsX3R5cGUudG9TdHJpbmcoKVxuICAgICAgICB9KVxuICAgIF07XG59XG5mdW5jdGlvbiBUd2l0dGVyTWV0YWRhdGEoeyB0d2l0dGVyIH0pIHtcbiAgICB2YXIgX3R3aXR0ZXJfdGl0bGU7XG4gICAgaWYgKCF0d2l0dGVyKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IGNhcmQgfSA9IHR3aXR0ZXI7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpjYXJkJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IGNhcmRcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpzaXRlJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR3aXR0ZXIuc2l0ZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICd0d2l0dGVyOnNpdGU6aWQnLFxuICAgICAgICAgICAgY29udGVudDogdHdpdHRlci5zaXRlSWRcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpjcmVhdG9yJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR3aXR0ZXIuY3JlYXRvclxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgIG5hbWU6ICd0d2l0dGVyOmNyZWF0b3I6aWQnLFxuICAgICAgICAgICAgY29udGVudDogdHdpdHRlci5jcmVhdG9ySWRcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndHdpdHRlcjp0aXRsZScsXG4gICAgICAgICAgICBjb250ZW50OiAoX3R3aXR0ZXJfdGl0bGUgPSB0d2l0dGVyLnRpdGxlKSA9PSBudWxsID8gdm9pZCAwIDogX3R3aXR0ZXJfdGl0bGUuYWJzb2x1dGVcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NZXRhKSh7XG4gICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpkZXNjcmlwdGlvbicsXG4gICAgICAgICAgICBjb250ZW50OiB0d2l0dGVyLmRlc2NyaXB0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBuYW1lUHJlZml4OiAndHdpdHRlcjppbWFnZScsXG4gICAgICAgICAgICBjb250ZW50czogdHdpdHRlci5pbWFnZXNcbiAgICAgICAgfSksXG4gICAgICAgIC4uLmNhcmQgPT09ICdwbGF5ZXInID8gdHdpdHRlci5wbGF5ZXJzLmZsYXRNYXAoKHBsYXllcik9PltcbiAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpwbGF5ZXInLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBwbGF5ZXIucGxheWVyVXJsLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAoMCwgX21ldGEuTWV0YSkoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiAndHdpdHRlcjpwbGF5ZXI6c3RyZWFtJyxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogcGxheWVyLnN0cmVhbVVybC50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3R3aXR0ZXI6cGxheWVyOndpZHRoJyxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogcGxheWVyLndpZHRoXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKDAsIF9tZXRhLk1ldGEpKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3R3aXR0ZXI6cGxheWVyOmhlaWdodCcsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHBsYXllci5oZWlnaHRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXSkgOiBbXSxcbiAgICAgICAgLi4uY2FyZCA9PT0gJ2FwcCcgPyBbXG4gICAgICAgICAgICBUd2l0dGVyQXBwSXRlbSh7XG4gICAgICAgICAgICAgICAgYXBwOiB0d2l0dGVyLmFwcCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnaXBob25lJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBUd2l0dGVyQXBwSXRlbSh7XG4gICAgICAgICAgICAgICAgYXBwOiB0d2l0dGVyLmFwcCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnaXBhZCdcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgVHdpdHRlckFwcEl0ZW0oe1xuICAgICAgICAgICAgICAgIGFwcDogdHdpdHRlci5hcHAsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2dvb2dsZXBsYXknXG4gICAgICAgICAgICB9KVxuICAgICAgICBdIDogW11cbiAgICBdKTtcbn1cbmZ1bmN0aW9uIEFwcExpbmtzTWV0YSh7IGFwcExpbmtzIH0pIHtcbiAgICBpZiAoIWFwcExpbmtzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKDAsIF9tZXRhLk1ldGFGaWx0ZXIpKFtcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhbDppb3MnLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLmlvc1xuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhbDppcGhvbmUnLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLmlwaG9uZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhbDppcGFkJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBhcHBMaW5rcy5pcGFkXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2FsOmFuZHJvaWQnLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLmFuZHJvaWRcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfbWV0YS5NdWx0aU1ldGEpKHtcbiAgICAgICAgICAgIHByb3BlcnR5UHJlZml4OiAnYWw6d2luZG93c19waG9uZScsXG4gICAgICAgICAgICBjb250ZW50czogYXBwTGlua3Mud2luZG93c19waG9uZVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhbDp3aW5kb3dzJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBhcHBMaW5rcy53aW5kb3dzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX21ldGEuTXVsdGlNZXRhKSh7XG4gICAgICAgICAgICBwcm9wZXJ0eVByZWZpeDogJ2FsOndpbmRvd3NfdW5pdmVyc2FsJyxcbiAgICAgICAgICAgIGNvbnRlbnRzOiBhcHBMaW5rcy53aW5kb3dzX3VuaXZlcnNhbFxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9tZXRhLk11bHRpTWV0YSkoe1xuICAgICAgICAgICAgcHJvcGVydHlQcmVmaXg6ICdhbDp3ZWInLFxuICAgICAgICAgICAgY29udGVudHM6IGFwcExpbmtzLndlYlxuICAgICAgICB9KVxuICAgIF0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1vcGVuZ3JhcGguanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/opengraph.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/generate/utils.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getOrigin: function() {\n return getOrigin;\n },\n resolveArray: function() {\n return resolveArray;\n },\n resolveAsArrayOrUndefined: function() {\n return resolveAsArrayOrUndefined;\n }\n});\nfunction resolveArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n return [\n value\n ];\n}\nfunction resolveAsArrayOrUndefined(value) {\n if (typeof value === 'undefined' || value === null) {\n return undefined;\n }\n return resolveArray(value);\n}\nfunction getOrigin(url) {\n let origin = undefined;\n if (typeof url === 'string') {\n try {\n url = new URL(url);\n origin = url.origin;\n } catch {}\n }\n return origin;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdldE9yaWdpbjogbnVsbCxcbiAgICByZXNvbHZlQXJyYXk6IG51bGwsXG4gICAgcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBnZXRPcmlnaW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0T3JpZ2luO1xuICAgIH0sXG4gICAgcmVzb2x2ZUFycmF5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVBcnJheTtcbiAgICB9LFxuICAgIHJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIHJlc29sdmVBcnJheSh2YWx1ZSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICAgIHZhbHVlXG4gICAgXTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQodmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZUFycmF5KHZhbHVlKTtcbn1cbmZ1bmN0aW9uIGdldE9yaWdpbih1cmwpIHtcbiAgICBsZXQgb3JpZ2luID0gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgdXJsID09PSAnc3RyaW5nJykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTCh1cmwpO1xuICAgICAgICAgICAgb3JpZ2luID0gdXJsLm9yaWdpbjtcbiAgICAgICAgfSBjYXRjaCAge31cbiAgICB9XG4gICAgcmV0dXJuIG9yaWdpbjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/get-metadata-route.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fillMetadataSegment: function() {\n return fillMetadataSegment;\n },\n normalizeMetadataPageToRoute: function() {\n return normalizeMetadataPageToRoute;\n },\n normalizeMetadataRoute: function() {\n return normalizeMetadataRoute;\n }\n});\nconst _ismetadataroute = __webpack_require__(/*! ./is-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/is-metadata-route.js\");\nconst _path = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../shared/lib/isomorphic/path */ \"(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js\"));\nconst _serverutils = __webpack_require__(/*! ../../server/server-utils */ \"(rsc)/./node_modules/next/dist/server/server-utils.js\");\nconst _routeregex = __webpack_require__(/*! ../../shared/lib/router/utils/route-regex */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nconst _hash = __webpack_require__(/*! ../../shared/lib/hash */ \"(rsc)/./node_modules/next/dist/shared/lib/hash.js\");\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _normalizepathsep = __webpack_require__(/*! ../../shared/lib/page-path/normalize-path-sep */ \"(rsc)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\");\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n/*\n * If there's special convention like (...) or @ in the page path,\n * Give it a unique hash suffix to avoid conflicts\n *\n * e.g.\n * /opengraph-image -> /opengraph-image\n * /(post)/opengraph-image.tsx -> /opengraph-image-[0-9a-z]{6}\n *\n * Sitemap is an exception, it should not have a suffix.\n * Each sitemap contains all the urls of sub routes, we don't have the case of duplicates `/(group)/sitemap.[ext]` and `/sitemap.[ext]` since they should be the same.\n * Hence we always normalize the urls for sitemap and do not append hash suffix, and ensure user-land only contains one sitemap per pathname.\n *\n * /sitemap -> /sitemap\n * /(post)/sitemap -> /sitemap\n */ function getMetadataRouteSuffix(page) {\n // Remove the last segment and get the parent pathname\n // e.g. /parent/a/b/c -> /parent/a/b\n // e.g. /parent/opengraph-image -> /parent\n const parentPathname = _path.default.dirname(page);\n // Only apply suffix to metadata routes except for sitemaps\n if (page.endsWith('/sitemap')) {\n return '';\n }\n // Calculate the hash suffix based on the parent path\n let suffix = '';\n // Check if there's any special characters in the parent pathname.\n const segments = parentPathname.split('/');\n if (segments.some((seg)=>(0, _segment.isGroupSegment)(seg) || (0, _segment.isParallelRouteSegment)(seg))) {\n // Hash the parent path to get a unique suffix\n suffix = (0, _hash.djb2Hash)(parentPathname).toString(36).slice(0, 6);\n }\n return suffix;\n}\nfunction fillMetadataSegment(segment, params, lastSegment) {\n const pathname = (0, _apppaths.normalizeAppPath)(segment);\n const routeRegex = (0, _routeregex.getNamedRouteRegex)(pathname, {\n prefixRouteKeys: false\n });\n const route = (0, _serverutils.interpolateDynamicPath)(pathname, params, routeRegex);\n const { name, ext } = _path.default.parse(lastSegment);\n const pagePath = _path.default.posix.join(segment, name);\n const suffix = getMetadataRouteSuffix(pagePath);\n const routeSuffix = suffix ? `-${suffix}` : '';\n return (0, _normalizepathsep.normalizePathSep)(_path.default.join(route, `${name}${routeSuffix}${ext}`));\n}\nfunction normalizeMetadataRoute(page) {\n if (!(0, _ismetadataroute.isMetadataPage)(page)) {\n return page;\n }\n let route = page;\n let suffix = '';\n if (page === '/robots') {\n route += '.txt';\n } else if (page === '/manifest') {\n route += '.webmanifest';\n } else {\n suffix = getMetadataRouteSuffix(page);\n }\n // Support both /<metadata-route.ext> and custom routes /<metadata-route>/route.ts.\n // If it's a metadata file route, we need to append /[id]/route to the page.\n if (!route.endsWith('/route')) {\n const { dir, name: baseName, ext } = _path.default.parse(route);\n route = _path.default.posix.join(dir, `${baseName}${suffix ? `-${suffix}` : ''}${ext}`, 'route');\n }\n return route;\n}\nfunction normalizeMetadataPageToRoute(page, isDynamic) {\n const isRoute = page.endsWith('/route');\n const routePagePath = isRoute ? page.slice(0, -'/route'.length) : page;\n const metadataRouteExtension = routePagePath.endsWith('/sitemap') ? '.xml' : '';\n const mapped = isDynamic ? `${routePagePath}/[__metadata_id__]` : `${routePagePath}${metadataRouteExtension}`;\n return mapped + (isRoute ? '/route' : '');\n}\n\n//# sourceMappingURL=get-metadata-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZXQtbWV0YWRhdGEtcm91dGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx5QkFBeUIsbUJBQU8sQ0FBQyw2RkFBcUI7QUFDdEQscURBQXFELG1CQUFPLENBQUMsc0dBQWtDO0FBQy9GLHFCQUFxQixtQkFBTyxDQUFDLHdGQUEyQjtBQUN4RCxvQkFBb0IsbUJBQU8sQ0FBQyx3SEFBMkM7QUFDdkUsY0FBYyxtQkFBTyxDQUFDLGdGQUF1QjtBQUM3QyxrQkFBa0IsbUJBQU8sQ0FBQyxvSEFBeUM7QUFDbkUsMEJBQTBCLG1CQUFPLENBQUMsZ0lBQStDO0FBQ2pGLGlCQUFpQixtQkFBTyxDQUFDLHNGQUEwQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNERBQTREO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLFlBQVksWUFBWTtBQUN4QjtBQUNBO0FBQ0EscUNBQXFDLE9BQU87QUFDNUMsZ0ZBQWdGLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSTtBQUN6RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwyQkFBMkI7QUFDM0MsaURBQWlELFNBQVMsRUFBRSxhQUFhLE9BQU8sT0FBTyxFQUFFLElBQUk7QUFDN0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsY0FBYyx5QkFBeUIsY0FBYyxFQUFFLHVCQUF1QjtBQUNoSDtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZXQtbWV0YWRhdGEtcm91dGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBmaWxsTWV0YWRhdGFTZWdtZW50OiBudWxsLFxuICAgIG5vcm1hbGl6ZU1ldGFkYXRhUGFnZVRvUm91dGU6IG51bGwsXG4gICAgbm9ybWFsaXplTWV0YWRhdGFSb3V0ZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBmaWxsTWV0YWRhdGFTZWdtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZpbGxNZXRhZGF0YVNlZ21lbnQ7XG4gICAgfSxcbiAgICBub3JtYWxpemVNZXRhZGF0YVBhZ2VUb1JvdXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU1ldGFkYXRhUGFnZVRvUm91dGU7XG4gICAgfSxcbiAgICBub3JtYWxpemVNZXRhZGF0YVJvdXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU1ldGFkYXRhUm91dGU7XG4gICAgfVxufSk7XG5jb25zdCBfaXNtZXRhZGF0YXJvdXRlID0gcmVxdWlyZShcIi4vaXMtbWV0YWRhdGEtcm91dGVcIik7XG5jb25zdCBfcGF0aCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2lzb21vcnBoaWMvcGF0aFwiKSk7XG5jb25zdCBfc2VydmVydXRpbHMgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL3NlcnZlci11dGlsc1wiKTtcbmNvbnN0IF9yb3V0ZXJlZ2V4ID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4XCIpO1xuY29uc3QgX2hhc2ggPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9oYXNoXCIpO1xuY29uc3QgX2FwcHBhdGhzID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiKTtcbmNvbnN0IF9ub3JtYWxpemVwYXRoc2VwID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYXRoLXNlcFwiKTtcbmNvbnN0IF9zZWdtZW50ID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvc2VnbWVudFwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuLypcbiAqIElmIHRoZXJlJ3Mgc3BlY2lhbCBjb252ZW50aW9uIGxpa2UgKC4uLikgb3IgQCBpbiB0aGUgcGFnZSBwYXRoLFxuICogR2l2ZSBpdCBhIHVuaXF1ZSBoYXNoIHN1ZmZpeCB0byBhdm9pZCBjb25mbGljdHNcbiAqXG4gKiBlLmcuXG4gKiAvb3BlbmdyYXBoLWltYWdlIC0+IC9vcGVuZ3JhcGgtaW1hZ2VcbiAqIC8ocG9zdCkvb3BlbmdyYXBoLWltYWdlLnRzeCAtPiAvb3BlbmdyYXBoLWltYWdlLVswLTlhLXpdezZ9XG4gKlxuICogU2l0ZW1hcCBpcyBhbiBleGNlcHRpb24sIGl0IHNob3VsZCBub3QgaGF2ZSBhIHN1ZmZpeC5cbiAqIEVhY2ggc2l0ZW1hcCBjb250YWlucyBhbGwgdGhlIHVybHMgb2Ygc3ViIHJvdXRlcywgd2UgZG9uJ3QgaGF2ZSB0aGUgY2FzZSBvZiBkdXBsaWNhdGVzIGAvKGdyb3VwKS9zaXRlbWFwLltleHRdYCBhbmQgYC9zaXRlbWFwLltleHRdYCBzaW5jZSB0aGV5IHNob3VsZCBiZSB0aGUgc2FtZS5cbiAqIEhlbmNlIHdlIGFsd2F5cyBub3JtYWxpemUgdGhlIHVybHMgZm9yIHNpdGVtYXAgYW5kIGRvIG5vdCBhcHBlbmQgaGFzaCBzdWZmaXgsIGFuZCBlbnN1cmUgdXNlci1sYW5kIG9ubHkgY29udGFpbnMgb25lIHNpdGVtYXAgcGVyIHBhdGhuYW1lLlxuICpcbiAqIC9zaXRlbWFwIC0+IC9zaXRlbWFwXG4gKiAvKHBvc3QpL3NpdGVtYXAgLT4gL3NpdGVtYXBcbiAqLyBmdW5jdGlvbiBnZXRNZXRhZGF0YVJvdXRlU3VmZml4KHBhZ2UpIHtcbiAgICAvLyBSZW1vdmUgdGhlIGxhc3Qgc2VnbWVudCBhbmQgZ2V0IHRoZSBwYXJlbnQgcGF0aG5hbWVcbiAgICAvLyBlLmcuIC9wYXJlbnQvYS9iL2MgLT4gL3BhcmVudC9hL2JcbiAgICAvLyBlLmcuIC9wYXJlbnQvb3BlbmdyYXBoLWltYWdlIC0+IC9wYXJlbnRcbiAgICBjb25zdCBwYXJlbnRQYXRobmFtZSA9IF9wYXRoLmRlZmF1bHQuZGlybmFtZShwYWdlKTtcbiAgICAvLyBPbmx5IGFwcGx5IHN1ZmZpeCB0byBtZXRhZGF0YSByb3V0ZXMgZXhjZXB0IGZvciBzaXRlbWFwc1xuICAgIGlmIChwYWdlLmVuZHNXaXRoKCcvc2l0ZW1hcCcpKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBoYXNoIHN1ZmZpeCBiYXNlZCBvbiB0aGUgcGFyZW50IHBhdGhcbiAgICBsZXQgc3VmZml4ID0gJyc7XG4gICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBhbnkgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIHRoZSBwYXJlbnQgcGF0aG5hbWUuXG4gICAgY29uc3Qgc2VnbWVudHMgPSBwYXJlbnRQYXRobmFtZS5zcGxpdCgnLycpO1xuICAgIGlmIChzZWdtZW50cy5zb21lKChzZWcpPT4oMCwgX3NlZ21lbnQuaXNHcm91cFNlZ21lbnQpKHNlZykgfHwgKDAsIF9zZWdtZW50LmlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQpKHNlZykpKSB7XG4gICAgICAgIC8vIEhhc2ggdGhlIHBhcmVudCBwYXRoIHRvIGdldCBhIHVuaXF1ZSBzdWZmaXhcbiAgICAgICAgc3VmZml4ID0gKDAsIF9oYXNoLmRqYjJIYXNoKShwYXJlbnRQYXRobmFtZSkudG9TdHJpbmcoMzYpLnNsaWNlKDAsIDYpO1xuICAgIH1cbiAgICByZXR1cm4gc3VmZml4O1xufVxuZnVuY3Rpb24gZmlsbE1ldGFkYXRhU2VnbWVudChzZWdtZW50LCBwYXJhbXMsIGxhc3RTZWdtZW50KSB7XG4gICAgY29uc3QgcGF0aG5hbWUgPSAoMCwgX2FwcHBhdGhzLm5vcm1hbGl6ZUFwcFBhdGgpKHNlZ21lbnQpO1xuICAgIGNvbnN0IHJvdXRlUmVnZXggPSAoMCwgX3JvdXRlcmVnZXguZ2V0TmFtZWRSb3V0ZVJlZ2V4KShwYXRobmFtZSwge1xuICAgICAgICBwcmVmaXhSb3V0ZUtleXM6IGZhbHNlXG4gICAgfSk7XG4gICAgY29uc3Qgcm91dGUgPSAoMCwgX3NlcnZlcnV0aWxzLmludGVycG9sYXRlRHluYW1pY1BhdGgpKHBhdGhuYW1lLCBwYXJhbXMsIHJvdXRlUmVnZXgpO1xuICAgIGNvbnN0IHsgbmFtZSwgZXh0IH0gPSBfcGF0aC5kZWZhdWx0LnBhcnNlKGxhc3RTZWdtZW50KTtcbiAgICBjb25zdCBwYWdlUGF0aCA9IF9wYXRoLmRlZmF1bHQucG9zaXguam9pbihzZWdtZW50LCBuYW1lKTtcbiAgICBjb25zdCBzdWZmaXggPSBnZXRNZXRhZGF0YVJvdXRlU3VmZml4KHBhZ2VQYXRoKTtcbiAgICBjb25zdCByb3V0ZVN1ZmZpeCA9IHN1ZmZpeCA/IGAtJHtzdWZmaXh9YCA6ICcnO1xuICAgIHJldHVybiAoMCwgX25vcm1hbGl6ZXBhdGhzZXAubm9ybWFsaXplUGF0aFNlcCkoX3BhdGguZGVmYXVsdC5qb2luKHJvdXRlLCBgJHtuYW1lfSR7cm91dGVTdWZmaXh9JHtleHR9YCkpO1xufVxuZnVuY3Rpb24gbm9ybWFsaXplTWV0YWRhdGFSb3V0ZShwYWdlKSB7XG4gICAgaWYgKCEoMCwgX2lzbWV0YWRhdGFyb3V0ZS5pc01ldGFkYXRhUGFnZSkocGFnZSkpIHtcbiAgICAgICAgcmV0dXJuIHBhZ2U7XG4gICAgfVxuICAgIGxldCByb3V0ZSA9IHBhZ2U7XG4gICAgbGV0IHN1ZmZpeCA9ICcnO1xuICAgIGlmIChwYWdlID09PSAnL3JvYm90cycpIHtcbiAgICAgICAgcm91dGUgKz0gJy50eHQnO1xuICAgIH0gZWxzZSBpZiAocGFnZSA9PT0gJy9tYW5pZmVzdCcpIHtcbiAgICAgICAgcm91dGUgKz0gJy53ZWJtYW5pZmVzdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgc3VmZml4ID0gZ2V0TWV0YWRhdGFSb3V0ZVN1ZmZpeChwYWdlKTtcbiAgICB9XG4gICAgLy8gU3VwcG9ydCBib3RoIC88bWV0YWRhdGEtcm91dGUuZXh0PiBhbmQgY3VzdG9tIHJvdXRlcyAvPG1ldGFkYXRhLXJvdXRlPi9yb3V0ZS50cy5cbiAgICAvLyBJZiBpdCdzIGEgbWV0YWRhdGEgZmlsZSByb3V0ZSwgd2UgbmVlZCB0byBhcHBlbmQgL1tpZF0vcm91dGUgdG8gdGhlIHBhZ2UuXG4gICAgaWYgKCFyb3V0ZS5lbmRzV2l0aCgnL3JvdXRlJykpIHtcbiAgICAgICAgY29uc3QgeyBkaXIsIG5hbWU6IGJhc2VOYW1lLCBleHQgfSA9IF9wYXRoLmRlZmF1bHQucGFyc2Uocm91dGUpO1xuICAgICAgICByb3V0ZSA9IF9wYXRoLmRlZmF1bHQucG9zaXguam9pbihkaXIsIGAke2Jhc2VOYW1lfSR7c3VmZml4ID8gYC0ke3N1ZmZpeH1gIDogJyd9JHtleHR9YCwgJ3JvdXRlJyk7XG4gICAgfVxuICAgIHJldHVybiByb3V0ZTtcbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZU1ldGFkYXRhUGFnZVRvUm91dGUocGFnZSwgaXNEeW5hbWljKSB7XG4gICAgY29uc3QgaXNSb3V0ZSA9IHBhZ2UuZW5kc1dpdGgoJy9yb3V0ZScpO1xuICAgIGNvbnN0IHJvdXRlUGFnZVBhdGggPSBpc1JvdXRlID8gcGFnZS5zbGljZSgwLCAtJy9yb3V0ZScubGVuZ3RoKSA6IHBhZ2U7XG4gICAgY29uc3QgbWV0YWRhdGFSb3V0ZUV4dGVuc2lvbiA9IHJvdXRlUGFnZVBhdGguZW5kc1dpdGgoJy9zaXRlbWFwJykgPyAnLnhtbCcgOiAnJztcbiAgICBjb25zdCBtYXBwZWQgPSBpc0R5bmFtaWMgPyBgJHtyb3V0ZVBhZ2VQYXRofS9bX19tZXRhZGF0YV9pZF9fXWAgOiBgJHtyb3V0ZVBhZ2VQYXRofSR7bWV0YWRhdGFSb3V0ZUV4dGVuc2lvbn1gO1xuICAgIHJldHVybiBtYXBwZWQgKyAoaXNSb3V0ZSA/ICcvcm91dGUnIDogJycpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtbWV0YWRhdGEtcm91dGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/is-metadata-route.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/is-metadata-route.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_METADATA_ROUTE_EXTENSIONS: function() {\n return DEFAULT_METADATA_ROUTE_EXTENSIONS;\n },\n STATIC_METADATA_IMAGES: function() {\n return STATIC_METADATA_IMAGES;\n },\n getExtensionRegexString: function() {\n return getExtensionRegexString;\n },\n isMetadataPage: function() {\n return isMetadataPage;\n },\n isMetadataRoute: function() {\n return isMetadataRoute;\n },\n isMetadataRouteFile: function() {\n return isMetadataRouteFile;\n },\n isStaticMetadataRoute: function() {\n return isStaticMetadataRoute;\n }\n});\nconst _normalizepathsep = __webpack_require__(/*! ../../shared/lib/page-path/normalize-path-sep */ \"(rsc)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\");\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _isapprouteroute = __webpack_require__(/*! ../is-app-route-route */ \"(rsc)/./node_modules/next/dist/lib/is-app-route-route.js\");\nconst STATIC_METADATA_IMAGES = {\n icon: {\n filename: 'icon',\n extensions: [\n 'ico',\n 'jpg',\n 'jpeg',\n 'png',\n 'svg'\n ]\n },\n apple: {\n filename: 'apple-icon',\n extensions: [\n 'jpg',\n 'jpeg',\n 'png'\n ]\n },\n favicon: {\n filename: 'favicon',\n extensions: [\n 'ico'\n ]\n },\n openGraph: {\n filename: 'opengraph-image',\n extensions: [\n 'jpg',\n 'jpeg',\n 'png',\n 'gif'\n ]\n },\n twitter: {\n filename: 'twitter-image',\n extensions: [\n 'jpg',\n 'jpeg',\n 'png',\n 'gif'\n ]\n }\n};\nconst DEFAULT_METADATA_ROUTE_EXTENSIONS = [\n 'js',\n 'jsx',\n 'ts',\n 'tsx'\n];\nconst getExtensionRegexString = (staticExtensions, dynamicExtensions)=>{\n // If there's no possible multi dynamic routes, will not match any <name>[].<ext> files\n if (!dynamicExtensions || dynamicExtensions.length === 0) {\n return `(\\\\.(?:${staticExtensions.join('|')}))`;\n }\n return `(?:\\\\.(${staticExtensions.join('|')})|(\\\\.(${dynamicExtensions.join('|')})))`;\n};\nfunction isMetadataRouteFile(appDirRelativePath, pageExtensions, strictlyMatchExtensions) {\n // End with the extension or optional to have the extension\n // When strictlyMatchExtensions is true, it's used for match file path;\n // When strictlyMatchExtensions, the dynamic extension is skipped but\n // static extension is kept, which is usually used for matching route path.\n const trailingMatcher = (strictlyMatchExtensions ? '' : '?') + '$';\n // Match the optional variants like /opengraph-image2, /icon-a102f4.png, etc.\n const variantsMatcher = '\\\\d?';\n // The -\\w{6} is the suffix that normalized from group routes;\n const groupSuffix = strictlyMatchExtensions ? '' : '(-\\\\w{6})?';\n const suffixMatcher = `${variantsMatcher}${groupSuffix}`;\n const metadataRouteFilesRegex = [\n new RegExp(`^[\\\\\\\\/]robots${getExtensionRegexString(pageExtensions.concat('txt'), null)}${trailingMatcher}`),\n new RegExp(`^[\\\\\\\\/]manifest${getExtensionRegexString(pageExtensions.concat('webmanifest', 'json'), null)}${trailingMatcher}`),\n new RegExp(`^[\\\\\\\\/]favicon\\\\.ico$`),\n new RegExp(`[\\\\\\\\/]sitemap${getExtensionRegexString([\n 'xml'\n ], pageExtensions)}${trailingMatcher}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.icon.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.icon.extensions, pageExtensions)}${trailingMatcher}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.apple.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.apple.extensions, pageExtensions)}${trailingMatcher}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.openGraph.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.openGraph.extensions, pageExtensions)}${trailingMatcher}`),\n new RegExp(`[\\\\\\\\/]${STATIC_METADATA_IMAGES.twitter.filename}${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.twitter.extensions, pageExtensions)}${trailingMatcher}`)\n ];\n const normalizedAppDirRelativePath = (0, _normalizepathsep.normalizePathSep)(appDirRelativePath);\n const matched = metadataRouteFilesRegex.some((r)=>r.test(normalizedAppDirRelativePath));\n return matched;\n}\nfunction isStaticMetadataRoute(route) {\n // extract ext with regex\n const pathname = route.replace(/\\/route$/, '');\n const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(pathname, [], true) && // These routes can either be built by static or dynamic entrypoints,\n // so we assume they're dynamic\n pathname !== '/robots.txt' && pathname !== '/manifest.webmanifest' && !pathname.endsWith('/sitemap.xml');\n return matched;\n}\nfunction isMetadataPage(page) {\n const matched = !(0, _isapprouteroute.isAppRouteRoute)(page) && isMetadataRouteFile(page, [], false);\n return matched;\n}\nfunction isMetadataRoute(route) {\n let page = (0, _apppaths.normalizeAppPath)(route).replace(/^\\/?app\\//, '')// Remove the dynamic route id\n .replace('/[__metadata_id__]', '')// Remove the /route suffix\n .replace(/\\/route$/, '');\n if (page[0] !== '/') page = '/' + page;\n const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(page, [], false);\n return matched;\n}\n\n//# sourceMappingURL=is-metadata-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9pcy1tZXRhZGF0YS1yb3V0ZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FRTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsMEJBQTBCLG1CQUFPLENBQUMsZ0lBQStDO0FBQ2pGLGtCQUFrQixtQkFBTyxDQUFDLG9IQUF5QztBQUNuRSx5QkFBeUIsbUJBQU8sQ0FBQyx1RkFBdUI7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLDJCQUEyQjtBQUNwRDtBQUNBLHFCQUFxQiwyQkFBMkIsU0FBUyw0QkFBNEI7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxHQUFHO0FBQ2xCLDhEQUE4RCxFQUFFO0FBQ2hFLDZCQUE2QixnQkFBZ0IsRUFBRSxZQUFZO0FBQzNEO0FBQ0Esb0NBQW9DLDREQUE0RCxFQUFFLGdCQUFnQjtBQUNsSCxzQ0FBc0MsNEVBQTRFLEVBQUUsZ0JBQWdCO0FBQ3BJO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0EsMkJBQTJCLEVBQUUsZ0JBQWdCO0FBQzdDLDZCQUE2QixxQ0FBcUMsRUFBRSxjQUFjLEVBQUUsZ0ZBQWdGLEVBQUUsZ0JBQWdCO0FBQ3RMLDZCQUE2QixzQ0FBc0MsRUFBRSxjQUFjLEVBQUUsaUZBQWlGLEVBQUUsZ0JBQWdCO0FBQ3hMLDZCQUE2QiwwQ0FBMEMsRUFBRSxjQUFjLEVBQUUscUZBQXFGLEVBQUUsZ0JBQWdCO0FBQ2hNLDZCQUE2Qix3Q0FBd0MsRUFBRSxjQUFjLEVBQUUsbUZBQW1GLEVBQUUsZ0JBQWdCO0FBQzVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9pcy1tZXRhZGF0YS1yb3V0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIERFRkFVTFRfTUVUQURBVEFfUk9VVEVfRVhURU5TSU9OUzogbnVsbCxcbiAgICBTVEFUSUNfTUVUQURBVEFfSU1BR0VTOiBudWxsLFxuICAgIGdldEV4dGVuc2lvblJlZ2V4U3RyaW5nOiBudWxsLFxuICAgIGlzTWV0YWRhdGFQYWdlOiBudWxsLFxuICAgIGlzTWV0YWRhdGFSb3V0ZTogbnVsbCxcbiAgICBpc01ldGFkYXRhUm91dGVGaWxlOiBudWxsLFxuICAgIGlzU3RhdGljTWV0YWRhdGFSb3V0ZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBERUZBVUxUX01FVEFEQVRBX1JPVVRFX0VYVEVOU0lPTlM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gREVGQVVMVF9NRVRBREFUQV9ST1VURV9FWFRFTlNJT05TO1xuICAgIH0sXG4gICAgU1RBVElDX01FVEFEQVRBX0lNQUdFUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTVEFUSUNfTUVUQURBVEFfSU1BR0VTO1xuICAgIH0sXG4gICAgZ2V0RXh0ZW5zaW9uUmVnZXhTdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0RXh0ZW5zaW9uUmVnZXhTdHJpbmc7XG4gICAgfSxcbiAgICBpc01ldGFkYXRhUGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc01ldGFkYXRhUGFnZTtcbiAgICB9LFxuICAgIGlzTWV0YWRhdGFSb3V0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc01ldGFkYXRhUm91dGU7XG4gICAgfSxcbiAgICBpc01ldGFkYXRhUm91dGVGaWxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzTWV0YWRhdGFSb3V0ZUZpbGU7XG4gICAgfSxcbiAgICBpc1N0YXRpY01ldGFkYXRhUm91dGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNTdGF0aWNNZXRhZGF0YVJvdXRlO1xuICAgIH1cbn0pO1xuY29uc3QgX25vcm1hbGl6ZXBhdGhzZXAgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9wYWdlLXBhdGgvbm9ybWFsaXplLXBhdGgtc2VwXCIpO1xuY29uc3QgX2FwcHBhdGhzID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiKTtcbmNvbnN0IF9pc2FwcHJvdXRlcm91dGUgPSByZXF1aXJlKFwiLi4vaXMtYXBwLXJvdXRlLXJvdXRlXCIpO1xuY29uc3QgU1RBVElDX01FVEFEQVRBX0lNQUdFUyA9IHtcbiAgICBpY29uOiB7XG4gICAgICAgIGZpbGVuYW1lOiAnaWNvbicsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICAgICAgICdpY28nLFxuICAgICAgICAgICAgJ2pwZycsXG4gICAgICAgICAgICAnanBlZycsXG4gICAgICAgICAgICAncG5nJyxcbiAgICAgICAgICAgICdzdmcnXG4gICAgICAgIF1cbiAgICB9LFxuICAgIGFwcGxlOiB7XG4gICAgICAgIGZpbGVuYW1lOiAnYXBwbGUtaWNvbicsXG4gICAgICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICAgICAgICdqcGcnLFxuICAgICAgICAgICAgJ2pwZWcnLFxuICAgICAgICAgICAgJ3BuZydcbiAgICAgICAgXVxuICAgIH0sXG4gICAgZmF2aWNvbjoge1xuICAgICAgICBmaWxlbmFtZTogJ2Zhdmljb24nLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgICAnaWNvJ1xuICAgICAgICBdXG4gICAgfSxcbiAgICBvcGVuR3JhcGg6IHtcbiAgICAgICAgZmlsZW5hbWU6ICdvcGVuZ3JhcGgtaW1hZ2UnLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgICAnanBnJyxcbiAgICAgICAgICAgICdqcGVnJyxcbiAgICAgICAgICAgICdwbmcnLFxuICAgICAgICAgICAgJ2dpZidcbiAgICAgICAgXVxuICAgIH0sXG4gICAgdHdpdHRlcjoge1xuICAgICAgICBmaWxlbmFtZTogJ3R3aXR0ZXItaW1hZ2UnLFxuICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgICAnanBnJyxcbiAgICAgICAgICAgICdqcGVnJyxcbiAgICAgICAgICAgICdwbmcnLFxuICAgICAgICAgICAgJ2dpZidcbiAgICAgICAgXVxuICAgIH1cbn07XG5jb25zdCBERUZBVUxUX01FVEFEQVRBX1JPVVRFX0VYVEVOU0lPTlMgPSBbXG4gICAgJ2pzJyxcbiAgICAnanN4JyxcbiAgICAndHMnLFxuICAgICd0c3gnXG5dO1xuY29uc3QgZ2V0RXh0ZW5zaW9uUmVnZXhTdHJpbmcgPSAoc3RhdGljRXh0ZW5zaW9ucywgZHluYW1pY0V4dGVuc2lvbnMpPT57XG4gICAgLy8gSWYgdGhlcmUncyBubyBwb3NzaWJsZSBtdWx0aSBkeW5hbWljIHJvdXRlcywgd2lsbCBub3QgbWF0Y2ggYW55IDxuYW1lPltdLjxleHQ+IGZpbGVzXG4gICAgaWYgKCFkeW5hbWljRXh0ZW5zaW9ucyB8fCBkeW5hbWljRXh0ZW5zaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIGAoXFxcXC4oPzoke3N0YXRpY0V4dGVuc2lvbnMuam9pbignfCcpfSkpYDtcbiAgICB9XG4gICAgcmV0dXJuIGAoPzpcXFxcLigke3N0YXRpY0V4dGVuc2lvbnMuam9pbignfCcpfSl8KFxcXFwuKCR7ZHluYW1pY0V4dGVuc2lvbnMuam9pbignfCcpfSkpKWA7XG59O1xuZnVuY3Rpb24gaXNNZXRhZGF0YVJvdXRlRmlsZShhcHBEaXJSZWxhdGl2ZVBhdGgsIHBhZ2VFeHRlbnNpb25zLCBzdHJpY3RseU1hdGNoRXh0ZW5zaW9ucykge1xuICAgIC8vIEVuZCB3aXRoIHRoZSBleHRlbnNpb24gb3Igb3B0aW9uYWwgdG8gaGF2ZSB0aGUgZXh0ZW5zaW9uXG4gICAgLy8gV2hlbiBzdHJpY3RseU1hdGNoRXh0ZW5zaW9ucyBpcyB0cnVlLCBpdCdzIHVzZWQgZm9yIG1hdGNoIGZpbGUgcGF0aDtcbiAgICAvLyBXaGVuIHN0cmljdGx5TWF0Y2hFeHRlbnNpb25zLCB0aGUgZHluYW1pYyBleHRlbnNpb24gaXMgc2tpcHBlZCBidXRcbiAgICAvLyBzdGF0aWMgZXh0ZW5zaW9uIGlzIGtlcHQsIHdoaWNoIGlzIHVzdWFsbHkgdXNlZCBmb3IgbWF0Y2hpbmcgcm91dGUgcGF0aC5cbiAgICBjb25zdCB0cmFpbGluZ01hdGNoZXIgPSAoc3RyaWN0bHlNYXRjaEV4dGVuc2lvbnMgPyAnJyA6ICc/JykgKyAnJCc7XG4gICAgLy8gTWF0Y2ggdGhlIG9wdGlvbmFsIHZhcmlhbnRzIGxpa2UgL29wZW5ncmFwaC1pbWFnZTIsIC9pY29uLWExMDJmNC5wbmcsIGV0Yy5cbiAgICBjb25zdCB2YXJpYW50c01hdGNoZXIgPSAnXFxcXGQ/JztcbiAgICAvLyBUaGUgLVxcd3s2fSBpcyB0aGUgc3VmZml4IHRoYXQgbm9ybWFsaXplZCBmcm9tIGdyb3VwIHJvdXRlcztcbiAgICBjb25zdCBncm91cFN1ZmZpeCA9IHN0cmljdGx5TWF0Y2hFeHRlbnNpb25zID8gJycgOiAnKC1cXFxcd3s2fSk/JztcbiAgICBjb25zdCBzdWZmaXhNYXRjaGVyID0gYCR7dmFyaWFudHNNYXRjaGVyfSR7Z3JvdXBTdWZmaXh9YDtcbiAgICBjb25zdCBtZXRhZGF0YVJvdXRlRmlsZXNSZWdleCA9IFtcbiAgICAgICAgbmV3IFJlZ0V4cChgXltcXFxcXFxcXC9dcm9ib3RzJHtnZXRFeHRlbnNpb25SZWdleFN0cmluZyhwYWdlRXh0ZW5zaW9ucy5jb25jYXQoJ3R4dCcpLCBudWxsKX0ke3RyYWlsaW5nTWF0Y2hlcn1gKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgXltcXFxcXFxcXC9dbWFuaWZlc3Qke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKHBhZ2VFeHRlbnNpb25zLmNvbmNhdCgnd2VibWFuaWZlc3QnLCAnanNvbicpLCBudWxsKX0ke3RyYWlsaW5nTWF0Y2hlcn1gKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgXltcXFxcXFxcXC9dZmF2aWNvblxcXFwuaWNvJGApLFxuICAgICAgICBuZXcgUmVnRXhwKGBbXFxcXFxcXFwvXXNpdGVtYXAke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKFtcbiAgICAgICAgICAgICd4bWwnXG4gICAgICAgIF0sIHBhZ2VFeHRlbnNpb25zKX0ke3RyYWlsaW5nTWF0Y2hlcn1gKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgW1xcXFxcXFxcL10ke1NUQVRJQ19NRVRBREFUQV9JTUFHRVMuaWNvbi5maWxlbmFtZX0ke3N1ZmZpeE1hdGNoZXJ9JHtnZXRFeHRlbnNpb25SZWdleFN0cmluZyhTVEFUSUNfTUVUQURBVEFfSU1BR0VTLmljb24uZXh0ZW5zaW9ucywgcGFnZUV4dGVuc2lvbnMpfSR7dHJhaWxpbmdNYXRjaGVyfWApLFxuICAgICAgICBuZXcgUmVnRXhwKGBbXFxcXFxcXFwvXSR7U1RBVElDX01FVEFEQVRBX0lNQUdFUy5hcHBsZS5maWxlbmFtZX0ke3N1ZmZpeE1hdGNoZXJ9JHtnZXRFeHRlbnNpb25SZWdleFN0cmluZyhTVEFUSUNfTUVUQURBVEFfSU1BR0VTLmFwcGxlLmV4dGVuc2lvbnMsIHBhZ2VFeHRlbnNpb25zKX0ke3RyYWlsaW5nTWF0Y2hlcn1gKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgW1xcXFxcXFxcL10ke1NUQVRJQ19NRVRBREFUQV9JTUFHRVMub3BlbkdyYXBoLmZpbGVuYW1lfSR7c3VmZml4TWF0Y2hlcn0ke2dldEV4dGVuc2lvblJlZ2V4U3RyaW5nKFNUQVRJQ19NRVRBREFUQV9JTUFHRVMub3BlbkdyYXBoLmV4dGVuc2lvbnMsIHBhZ2VFeHRlbnNpb25zKX0ke3RyYWlsaW5nTWF0Y2hlcn1gKSxcbiAgICAgICAgbmV3IFJlZ0V4cChgW1xcXFxcXFxcL10ke1NUQVRJQ19NRVRBREFUQV9JTUFHRVMudHdpdHRlci5maWxlbmFtZX0ke3N1ZmZpeE1hdGNoZXJ9JHtnZXRFeHRlbnNpb25SZWdleFN0cmluZyhTVEFUSUNfTUVUQURBVEFfSU1BR0VTLnR3aXR0ZXIuZXh0ZW5zaW9ucywgcGFnZUV4dGVuc2lvbnMpfSR7dHJhaWxpbmdNYXRjaGVyfWApXG4gICAgXTtcbiAgICBjb25zdCBub3JtYWxpemVkQXBwRGlyUmVsYXRpdmVQYXRoID0gKDAsIF9ub3JtYWxpemVwYXRoc2VwLm5vcm1hbGl6ZVBhdGhTZXApKGFwcERpclJlbGF0aXZlUGF0aCk7XG4gICAgY29uc3QgbWF0Y2hlZCA9IG1ldGFkYXRhUm91dGVGaWxlc1JlZ2V4LnNvbWUoKHIpPT5yLnRlc3Qobm9ybWFsaXplZEFwcERpclJlbGF0aXZlUGF0aCkpO1xuICAgIHJldHVybiBtYXRjaGVkO1xufVxuZnVuY3Rpb24gaXNTdGF0aWNNZXRhZGF0YVJvdXRlKHJvdXRlKSB7XG4gICAgLy8gZXh0cmFjdCBleHQgd2l0aCByZWdleFxuICAgIGNvbnN0IHBhdGhuYW1lID0gcm91dGUucmVwbGFjZSgvXFwvcm91dGUkLywgJycpO1xuICAgIGNvbnN0IG1hdGNoZWQgPSAoMCwgX2lzYXBwcm91dGVyb3V0ZS5pc0FwcFJvdXRlUm91dGUpKHJvdXRlKSAmJiBpc01ldGFkYXRhUm91dGVGaWxlKHBhdGhuYW1lLCBbXSwgdHJ1ZSkgJiYgLy8gVGhlc2Ugcm91dGVzIGNhbiBlaXRoZXIgYmUgYnVpbHQgYnkgc3RhdGljIG9yIGR5bmFtaWMgZW50cnlwb2ludHMsXG4gICAgLy8gc28gd2UgYXNzdW1lIHRoZXkncmUgZHluYW1pY1xuICAgIHBhdGhuYW1lICE9PSAnL3JvYm90cy50eHQnICYmIHBhdGhuYW1lICE9PSAnL21hbmlmZXN0LndlYm1hbmlmZXN0JyAmJiAhcGF0aG5hbWUuZW5kc1dpdGgoJy9zaXRlbWFwLnhtbCcpO1xuICAgIHJldHVybiBtYXRjaGVkO1xufVxuZnVuY3Rpb24gaXNNZXRhZGF0YVBhZ2UocGFnZSkge1xuICAgIGNvbnN0IG1hdGNoZWQgPSAhKDAsIF9pc2FwcHJvdXRlcm91dGUuaXNBcHBSb3V0ZVJvdXRlKShwYWdlKSAmJiBpc01ldGFkYXRhUm91dGVGaWxlKHBhZ2UsIFtdLCBmYWxzZSk7XG4gICAgcmV0dXJuIG1hdGNoZWQ7XG59XG5mdW5jdGlvbiBpc01ldGFkYXRhUm91dGUocm91dGUpIHtcbiAgICBsZXQgcGFnZSA9ICgwLCBfYXBwcGF0aHMubm9ybWFsaXplQXBwUGF0aCkocm91dGUpLnJlcGxhY2UoL15cXC8/YXBwXFwvLywgJycpLy8gUmVtb3ZlIHRoZSBkeW5hbWljIHJvdXRlIGlkXG4gICAgLnJlcGxhY2UoJy9bX19tZXRhZGF0YV9pZF9fXScsICcnKS8vIFJlbW92ZSB0aGUgL3JvdXRlIHN1ZmZpeFxuICAgIC5yZXBsYWNlKC9cXC9yb3V0ZSQvLCAnJyk7XG4gICAgaWYgKHBhZ2VbMF0gIT09ICcvJykgcGFnZSA9ICcvJyArIHBhZ2U7XG4gICAgY29uc3QgbWF0Y2hlZCA9ICgwLCBfaXNhcHByb3V0ZXJvdXRlLmlzQXBwUm91dGVSb3V0ZSkocm91dGUpICYmIGlzTWV0YWRhdGFSb3V0ZUZpbGUocGFnZSwgW10sIGZhbHNlKTtcbiAgICByZXR1cm4gbWF0Y2hlZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtbWV0YWRhdGEtcm91dGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/is-metadata-route.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/metadata-constants.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/metadata-constants.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n METADATA_BOUNDARY_NAME: function() {\n return METADATA_BOUNDARY_NAME;\n },\n OUTLET_BOUNDARY_NAME: function() {\n return OUTLET_BOUNDARY_NAME;\n },\n VIEWPORT_BOUNDARY_NAME: function() {\n return VIEWPORT_BOUNDARY_NAME;\n }\n});\nconst METADATA_BOUNDARY_NAME = '__next_metadata_boundary__';\nconst VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__';\nconst OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__';\n\n//# sourceMappingURL=metadata-constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9tZXRhZGF0YS1jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL21ldGFkYXRhLWNvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgT1VUTEVUX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgVklFV1BPUlRfQk9VTkRBUllfTkFNRTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBNRVRBREFUQV9CT1VOREFSWV9OQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU7XG4gICAgfSxcbiAgICBPVVRMRVRfQk9VTkRBUllfTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBPVVRMRVRfQk9VTkRBUllfTkFNRTtcbiAgICB9LFxuICAgIFZJRVdQT1JUX0JPVU5EQVJZX05BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVklFV1BPUlRfQk9VTkRBUllfTkFNRTtcbiAgICB9XG59KTtcbmNvbnN0IE1FVEFEQVRBX0JPVU5EQVJZX05BTUUgPSAnX19uZXh0X21ldGFkYXRhX2JvdW5kYXJ5X18nO1xuY29uc3QgVklFV1BPUlRfQk9VTkRBUllfTkFNRSA9ICdfX25leHRfdmlld3BvcnRfYm91bmRhcnlfXyc7XG5jb25zdCBPVVRMRVRfQk9VTkRBUllfTkFNRSA9ICdfX25leHRfb3V0bGV0X2JvdW5kYXJ5X18nO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZXRhZGF0YS1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/metadata-constants.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/metadata.js":
/*!*********************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/metadata.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createMetadataComponents\", ({\n enumerable: true,\n get: function() {\n return createMetadataComponents;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _basic = __webpack_require__(/*! ./generate/basic */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/basic.js\");\nconst _alternate = __webpack_require__(/*! ./generate/alternate */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/alternate.js\");\nconst _opengraph = __webpack_require__(/*! ./generate/opengraph */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/opengraph.js\");\nconst _icons = __webpack_require__(/*! ./generate/icons */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/icons.js\");\nconst _resolvemetadata = __webpack_require__(/*! ./resolve-metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolve-metadata.js\");\nconst _meta = __webpack_require__(/*! ./generate/meta */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/meta.js\");\nconst _httpaccessfallback = __webpack_require__(/*! ../../client/components/http-access-fallback/http-access-fallback */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _metadataconstants = __webpack_require__(/*! ./metadata-constants */ \"(rsc)/./node_modules/next/dist/lib/metadata/metadata-constants.js\");\nconst _asyncmetadata = __webpack_require__(/*! ../../client/components/metadata/async-metadata */ \"(rsc)/./node_modules/next/dist/client/components/metadata/async-metadata.js\");\nconst _ispostpone = __webpack_require__(/*! ../../server/lib/router-utils/is-postpone */ \"(rsc)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\");\nconst _searchparams = __webpack_require__(/*! ../../server/request/search-params */ \"(rsc)/./node_modules/next/dist/server/request/search-params.js\");\nconst _pathname = __webpack_require__(/*! ../../server/request/pathname */ \"(rsc)/./node_modules/next/dist/server/request/pathname.js\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction createMetadataComponents({ tree, pathname, parsedQuery, metadataContext, getDynamicParamFromSegment, appUsingSizeAdjustment, errorType, workStore, MetadataBoundary, ViewportBoundary, serveStreamingMetadata }) {\n const searchParams = (0, _searchparams.createServerSearchParamsForMetadata)(parsedQuery, workStore);\n const pathnameForMetadata = (0, _pathname.createServerPathnameForMetadata)(pathname, workStore);\n function ViewportTree() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(ViewportBoundary, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(Viewport, {})\n }),\n appUsingSizeAdjustment ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"next-size-adjust\",\n content: \"\"\n }) : null\n ]\n });\n }\n function MetadataTree() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataBoundary, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(Metadata, {})\n });\n }\n function viewport() {\n return getResolvedViewport(tree, searchParams, getDynamicParamFromSegment, workStore, errorType);\n }\n async function Viewport() {\n try {\n return await viewport();\n } catch (error) {\n if (!errorType && (0, _httpaccessfallback.isHTTPAccessFallbackError)(error)) {\n try {\n return await getNotFoundViewport(tree, searchParams, getDynamicParamFromSegment, workStore);\n } catch {}\n }\n // We don't actually want to error in this component. We will\n // also error in the MetadataOutlet which causes the error to\n // bubble from the right position in the page to be caught by the\n // appropriate boundaries\n return null;\n }\n }\n Viewport.displayName = _metadataconstants.VIEWPORT_BOUNDARY_NAME;\n function metadata() {\n return getResolvedMetadata(tree, pathnameForMetadata, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorType);\n }\n async function resolveFinalMetadata() {\n let result;\n let error = null;\n try {\n result = await metadata();\n return {\n metadata: result,\n error: null,\n digest: undefined\n };\n } catch (metadataErr) {\n error = metadataErr;\n if (!errorType && (0, _httpaccessfallback.isHTTPAccessFallbackError)(metadataErr)) {\n try {\n result = await getNotFoundMetadata(tree, pathnameForMetadata, searchParams, getDynamicParamFromSegment, metadataContext, workStore);\n return {\n metadata: result,\n error,\n digest: error == null ? void 0 : error.digest\n };\n } catch (notFoundMetadataErr) {\n error = notFoundMetadataErr;\n // In PPR rendering we still need to throw the postpone error.\n // If metadata is postponed, React needs to be aware of the location of error.\n if (serveStreamingMetadata && (0, _ispostpone.isPostpone)(notFoundMetadataErr)) {\n throw notFoundMetadataErr;\n }\n }\n }\n // In PPR rendering we still need to throw the postpone error.\n // If metadata is postponed, React needs to be aware of the location of error.\n if (serveStreamingMetadata && (0, _ispostpone.isPostpone)(metadataErr)) {\n throw metadataErr;\n }\n // We don't actually want to error in this component. We will\n // also error in the MetadataOutlet which causes the error to\n // bubble from the right position in the page to be caught by the\n // appropriate boundaries\n return {\n metadata: result,\n error,\n digest: error == null ? void 0 : error.digest\n };\n }\n }\n function Metadata() {\n if (!serveStreamingMetadata) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataResolver, {});\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n hidden: true,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {\n fallback: null,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataResolver, {})\n })\n });\n }\n async function MetadataResolver() {\n const metadataState = await resolveFinalMetadata();\n return metadataState.metadata;\n }\n Metadata.displayName = _metadataconstants.METADATA_BOUNDARY_NAME;\n async function getMetadataReady() {\n // Only warm up metadata() call when it's blocking metadata,\n // otherwise it will be fully managed by AsyncMetadata component.\n if (!serveStreamingMetadata) {\n await metadata();\n }\n return undefined;\n }\n async function getViewportReady() {\n await viewport();\n return undefined;\n }\n function StreamingMetadataOutletImpl() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_asyncmetadata.AsyncMetadataOutlet, {\n promise: resolveFinalMetadata()\n });\n }\n const StreamingMetadataOutlet = serveStreamingMetadata ? StreamingMetadataOutletImpl : null;\n return {\n ViewportTree,\n MetadataTree,\n getViewportReady,\n getMetadataReady,\n StreamingMetadataOutlet\n };\n}\nconst getResolvedMetadata = (0, _react.cache)(getResolvedMetadataImpl);\nasync function getResolvedMetadataImpl(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorType) {\n const errorConvention = errorType === 'redirect' ? undefined : errorType;\n return renderMetadata(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorConvention);\n}\nconst getNotFoundMetadata = (0, _react.cache)(getNotFoundMetadataImpl);\nasync function getNotFoundMetadataImpl(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore) {\n const notFoundErrorConvention = 'not-found';\n return renderMetadata(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, notFoundErrorConvention);\n}\nconst getResolvedViewport = (0, _react.cache)(getResolvedViewportImpl);\nasync function getResolvedViewportImpl(tree, searchParams, getDynamicParamFromSegment, workStore, errorType) {\n const errorConvention = errorType === 'redirect' ? undefined : errorType;\n return renderViewport(tree, searchParams, getDynamicParamFromSegment, workStore, errorConvention);\n}\nconst getNotFoundViewport = (0, _react.cache)(getNotFoundViewportImpl);\nasync function getNotFoundViewportImpl(tree, searchParams, getDynamicParamFromSegment, workStore) {\n const notFoundErrorConvention = 'not-found';\n return renderViewport(tree, searchParams, getDynamicParamFromSegment, workStore, notFoundErrorConvention);\n}\nasync function renderMetadata(tree, pathname, searchParams, getDynamicParamFromSegment, metadataContext, workStore, errorConvention) {\n const resolvedMetadata = await (0, _resolvemetadata.resolveMetadata)(tree, pathname, searchParams, errorConvention, getDynamicParamFromSegment, workStore, metadataContext);\n const elements = createMetadataElements(resolvedMetadata);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: elements.map((el, index)=>{\n return /*#__PURE__*/ (0, _react.cloneElement)(el, {\n key: index\n });\n })\n });\n}\nasync function renderViewport(tree, searchParams, getDynamicParamFromSegment, workStore, errorConvention) {\n const resolvedViewport = await (0, _resolvemetadata.resolveViewport)(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore);\n const elements = createViewportElements(resolvedViewport);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: elements.map((el, index)=>{\n return /*#__PURE__*/ (0, _react.cloneElement)(el, {\n key: index\n });\n })\n });\n}\nfunction createMetadataElements(metadata) {\n return (0, _meta.MetaFilter)([\n (0, _basic.BasicMeta)({\n metadata\n }),\n (0, _alternate.AlternatesMetadata)({\n alternates: metadata.alternates\n }),\n (0, _basic.ItunesMeta)({\n itunes: metadata.itunes\n }),\n (0, _basic.FacebookMeta)({\n facebook: metadata.facebook\n }),\n (0, _basic.PinterestMeta)({\n pinterest: metadata.pinterest\n }),\n (0, _basic.FormatDetectionMeta)({\n formatDetection: metadata.formatDetection\n }),\n (0, _basic.VerificationMeta)({\n verification: metadata.verification\n }),\n (0, _basic.AppleWebAppMeta)({\n appleWebApp: metadata.appleWebApp\n }),\n (0, _opengraph.OpenGraphMetadata)({\n openGraph: metadata.openGraph\n }),\n (0, _opengraph.TwitterMetadata)({\n twitter: metadata.twitter\n }),\n (0, _opengraph.AppLinksMeta)({\n appLinks: metadata.appLinks\n }),\n (0, _icons.IconsMetadata)({\n icons: metadata.icons\n })\n ]);\n}\nfunction createViewportElements(viewport) {\n return (0, _meta.MetaFilter)([\n (0, _basic.ViewportMeta)({\n viewport: viewport\n })\n ]);\n}\n\n//# sourceMappingURL=metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9tZXRhZGF0YS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDREQUEyRDtBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG9CQUFvQixtQkFBTyxDQUFDLHlIQUFtQjtBQUMvQyx1REFBdUQsbUJBQU8sQ0FBQyxpR0FBTztBQUN0RSxlQUFlLG1CQUFPLENBQUMsdUZBQWtCO0FBQ3pDLG1CQUFtQixtQkFBTyxDQUFDLCtGQUFzQjtBQUNqRCxtQkFBbUIsbUJBQU8sQ0FBQywrRkFBc0I7QUFDakQsZUFBZSxtQkFBTyxDQUFDLHVGQUFrQjtBQUN6Qyx5QkFBeUIsbUJBQU8sQ0FBQywyRkFBb0I7QUFDckQsY0FBYyxtQkFBTyxDQUFDLHFGQUFpQjtBQUN2Qyw0QkFBNEIsbUJBQU8sQ0FBQyx3S0FBbUU7QUFDdkcsMkJBQTJCLG1CQUFPLENBQUMsK0ZBQXNCO0FBQ3pELHVCQUF1QixtQkFBTyxDQUFDLG9JQUFpRDtBQUNoRixvQkFBb0IsbUJBQU8sQ0FBQyx3SEFBMkM7QUFDdkUsc0JBQXNCLG1CQUFPLENBQUMsMEdBQW9DO0FBQ2xFLGtCQUFrQixtQkFBTyxDQUFDLGdHQUErQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxvTEFBb0w7QUFDeE47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkVBQTZFO0FBQzdFLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EscUVBQXFFO0FBQ3JFLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwRUFBMEU7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlGQUFpRjtBQUNqRixhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvbWV0YWRhdGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJjcmVhdGVNZXRhZGF0YUNvbXBvbmVudHNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50cztcbiAgICB9XG59KTtcbmNvbnN0IF9qc3hydW50aW1lID0gcmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5jb25zdCBfYmFzaWMgPSByZXF1aXJlKFwiLi9nZW5lcmF0ZS9iYXNpY1wiKTtcbmNvbnN0IF9hbHRlcm5hdGUgPSByZXF1aXJlKFwiLi9nZW5lcmF0ZS9hbHRlcm5hdGVcIik7XG5jb25zdCBfb3BlbmdyYXBoID0gcmVxdWlyZShcIi4vZ2VuZXJhdGUvb3BlbmdyYXBoXCIpO1xuY29uc3QgX2ljb25zID0gcmVxdWlyZShcIi4vZ2VuZXJhdGUvaWNvbnNcIik7XG5jb25zdCBfcmVzb2x2ZW1ldGFkYXRhID0gcmVxdWlyZShcIi4vcmVzb2x2ZS1tZXRhZGF0YVwiKTtcbmNvbnN0IF9tZXRhID0gcmVxdWlyZShcIi4vZ2VuZXJhdGUvbWV0YVwiKTtcbmNvbnN0IF9odHRwYWNjZXNzZmFsbGJhY2sgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svaHR0cC1hY2Nlc3MtZmFsbGJhY2tcIik7XG5jb25zdCBfbWV0YWRhdGFjb25zdGFudHMgPSByZXF1aXJlKFwiLi9tZXRhZGF0YS1jb25zdGFudHNcIik7XG5jb25zdCBfYXN5bmNtZXRhZGF0YSA9IHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9tZXRhZGF0YS9hc3luYy1tZXRhZGF0YVwiKTtcbmNvbnN0IF9pc3Bvc3Rwb25lID0gcmVxdWlyZShcIi4uLy4uL3NlcnZlci9saWIvcm91dGVyLXV0aWxzL2lzLXBvc3Rwb25lXCIpO1xuY29uc3QgX3NlYXJjaHBhcmFtcyA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9zZWFyY2gtcGFyYW1zXCIpO1xuY29uc3QgX3BhdGhuYW1lID0gcmVxdWlyZShcIi4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhdGhuYW1lXCIpO1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IG9ialxuICAgICAgICB9O1xuICAgIH1cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIF9fcHJvdG9fXzogbnVsbFxuICAgIH07XG4gICAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgIGZvcih2YXIga2V5IGluIG9iail7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmo7XG59XG5mdW5jdGlvbiBjcmVhdGVNZXRhZGF0YUNvbXBvbmVudHMoeyB0cmVlLCBwYXRobmFtZSwgcGFyc2VkUXVlcnksIG1ldGFkYXRhQ29udGV4dCwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIGFwcFVzaW5nU2l6ZUFkanVzdG1lbnQsIGVycm9yVHlwZSwgd29ya1N0b3JlLCBNZXRhZGF0YUJvdW5kYXJ5LCBWaWV3cG9ydEJvdW5kYXJ5LCBzZXJ2ZVN0cmVhbWluZ01ldGFkYXRhIH0pIHtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSAoMCwgX3NlYXJjaHBhcmFtcy5jcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YSkocGFyc2VkUXVlcnksIHdvcmtTdG9yZSk7XG4gICAgY29uc3QgcGF0aG5hbWVGb3JNZXRhZGF0YSA9ICgwLCBfcGF0aG5hbWUuY3JlYXRlU2VydmVyUGF0aG5hbWVGb3JNZXRhZGF0YSkocGF0aG5hbWUsIHdvcmtTdG9yZSk7XG4gICAgZnVuY3Rpb24gVmlld3BvcnRUcmVlKCkge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4cykoX2pzeHJ1bnRpbWUuRnJhZ21lbnQsIHtcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShWaWV3cG9ydEJvdW5kYXJ5LCB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFZpZXdwb3J0LCB7fSlcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBhcHBVc2luZ1NpemVBZGp1c3RtZW50ID8gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcIm1ldGFcIiwge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIm5leHQtc2l6ZS1hZGp1c3RcIixcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIlxuICAgICAgICAgICAgICAgIH0pIDogbnVsbFxuICAgICAgICAgICAgXVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gTWV0YWRhdGFUcmVlKCkge1xuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShNZXRhZGF0YUJvdW5kYXJ5LCB7XG4gICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShNZXRhZGF0YSwge30pXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiB2aWV3cG9ydCgpIHtcbiAgICAgICAgcmV0dXJuIGdldFJlc29sdmVkVmlld3BvcnQodHJlZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlLCBlcnJvclR5cGUpO1xuICAgIH1cbiAgICBhc3luYyBmdW5jdGlvbiBWaWV3cG9ydCgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB2aWV3cG9ydCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgaWYgKCFlcnJvclR5cGUgJiYgKDAsIF9odHRwYWNjZXNzZmFsbGJhY2suaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcikoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGdldE5vdEZvdW5kVmlld3BvcnQodHJlZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoICB7fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgd2FudCB0byBlcnJvciBpbiB0aGlzIGNvbXBvbmVudC4gV2Ugd2lsbFxuICAgICAgICAgICAgLy8gYWxzbyBlcnJvciBpbiB0aGUgTWV0YWRhdGFPdXRsZXQgd2hpY2ggY2F1c2VzIHRoZSBlcnJvciB0b1xuICAgICAgICAgICAgLy8gYnViYmxlIGZyb20gdGhlIHJpZ2h0IHBvc2l0aW9uIGluIHRoZSBwYWdlIHRvIGJlIGNhdWdodCBieSB0aGVcbiAgICAgICAgICAgIC8vIGFwcHJvcHJpYXRlIGJvdW5kYXJpZXNcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIFZpZXdwb3J0LmRpc3BsYXlOYW1lID0gX21ldGFkYXRhY29uc3RhbnRzLlZJRVdQT1JUX0JPVU5EQVJZX05BTUU7XG4gICAgZnVuY3Rpb24gbWV0YWRhdGEoKSB7XG4gICAgICAgIHJldHVybiBnZXRSZXNvbHZlZE1ldGFkYXRhKHRyZWUsIHBhdGhuYW1lRm9yTWV0YWRhdGEsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIG1ldGFkYXRhQ29udGV4dCwgd29ya1N0b3JlLCBlcnJvclR5cGUpO1xuICAgIH1cbiAgICBhc3luYyBmdW5jdGlvbiByZXNvbHZlRmluYWxNZXRhZGF0YSgpIHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgbGV0IGVycm9yID0gbnVsbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IG1ldGFkYXRhKCk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICAgICAgZGlnZXN0OiB1bmRlZmluZWRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gY2F0Y2ggKG1ldGFkYXRhRXJyKSB7XG4gICAgICAgICAgICBlcnJvciA9IG1ldGFkYXRhRXJyO1xuICAgICAgICAgICAgaWYgKCFlcnJvclR5cGUgJiYgKDAsIF9odHRwYWNjZXNzZmFsbGJhY2suaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcikobWV0YWRhdGFFcnIpKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgZ2V0Tm90Rm91bmRNZXRhZGF0YSh0cmVlLCBwYXRobmFtZUZvck1ldGFkYXRhLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBtZXRhZGF0YUNvbnRleHQsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YTogcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaWdlc3Q6IGVycm9yID09IG51bGwgPyB2b2lkIDAgOiBlcnJvci5kaWdlc3RcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChub3RGb3VuZE1ldGFkYXRhRXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yID0gbm90Rm91bmRNZXRhZGF0YUVycjtcbiAgICAgICAgICAgICAgICAgICAgLy8gSW4gUFBSIHJlbmRlcmluZyB3ZSBzdGlsbCBuZWVkIHRvIHRocm93IHRoZSBwb3N0cG9uZSBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgbWV0YWRhdGEgaXMgcG9zdHBvbmVkLCBSZWFjdCBuZWVkcyB0byBiZSBhd2FyZSBvZiB0aGUgbG9jYXRpb24gb2YgZXJyb3IuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2ZVN0cmVhbWluZ01ldGFkYXRhICYmICgwLCBfaXNwb3N0cG9uZS5pc1Bvc3Rwb25lKShub3RGb3VuZE1ldGFkYXRhRXJyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbm90Rm91bmRNZXRhZGF0YUVycjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEluIFBQUiByZW5kZXJpbmcgd2Ugc3RpbGwgbmVlZCB0byB0aHJvdyB0aGUgcG9zdHBvbmUgZXJyb3IuXG4gICAgICAgICAgICAvLyBJZiBtZXRhZGF0YSBpcyBwb3N0cG9uZWQsIFJlYWN0IG5lZWRzIHRvIGJlIGF3YXJlIG9mIHRoZSBsb2NhdGlvbiBvZiBlcnJvci5cbiAgICAgICAgICAgIGlmIChzZXJ2ZVN0cmVhbWluZ01ldGFkYXRhICYmICgwLCBfaXNwb3N0cG9uZS5pc1Bvc3Rwb25lKShtZXRhZGF0YUVycikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBtZXRhZGF0YUVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGFjdHVhbGx5IHdhbnQgdG8gZXJyb3IgaW4gdGhpcyBjb21wb25lbnQuIFdlIHdpbGxcbiAgICAgICAgICAgIC8vIGFsc28gZXJyb3IgaW4gdGhlIE1ldGFkYXRhT3V0bGV0IHdoaWNoIGNhdXNlcyB0aGUgZXJyb3IgdG9cbiAgICAgICAgICAgIC8vIGJ1YmJsZSBmcm9tIHRoZSByaWdodCBwb3NpdGlvbiBpbiB0aGUgcGFnZSB0byBiZSBjYXVnaHQgYnkgdGhlXG4gICAgICAgICAgICAvLyBhcHByb3ByaWF0ZSBib3VuZGFyaWVzXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICAgICAgZGlnZXN0OiBlcnJvciA9PSBudWxsID8gdm9pZCAwIDogZXJyb3IuZGlnZXN0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIE1ldGFkYXRhKCkge1xuICAgICAgICBpZiAoIXNlcnZlU3RyZWFtaW5nTWV0YWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKE1ldGFkYXRhUmVzb2x2ZXIsIHt9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImRpdlwiLCB7XG4gICAgICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShfcmVhY3QuU3VzcGVuc2UsIHtcbiAgICAgICAgICAgICAgICBmYWxsYmFjazogbnVsbCxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShNZXRhZGF0YVJlc29sdmVyLCB7fSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBmdW5jdGlvbiBNZXRhZGF0YVJlc29sdmVyKCkge1xuICAgICAgICBjb25zdCBtZXRhZGF0YVN0YXRlID0gYXdhaXQgcmVzb2x2ZUZpbmFsTWV0YWRhdGEoKTtcbiAgICAgICAgcmV0dXJuIG1ldGFkYXRhU3RhdGUubWV0YWRhdGE7XG4gICAgfVxuICAgIE1ldGFkYXRhLmRpc3BsYXlOYW1lID0gX21ldGFkYXRhY29uc3RhbnRzLk1FVEFEQVRBX0JPVU5EQVJZX05BTUU7XG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0TWV0YWRhdGFSZWFkeSgpIHtcbiAgICAgICAgLy8gT25seSB3YXJtIHVwIG1ldGFkYXRhKCkgY2FsbCB3aGVuIGl0J3MgYmxvY2tpbmcgbWV0YWRhdGEsXG4gICAgICAgIC8vIG90aGVyd2lzZSBpdCB3aWxsIGJlIGZ1bGx5IG1hbmFnZWQgYnkgQXN5bmNNZXRhZGF0YSBjb21wb25lbnQuXG4gICAgICAgIGlmICghc2VydmVTdHJlYW1pbmdNZXRhZGF0YSkge1xuICAgICAgICAgICAgYXdhaXQgbWV0YWRhdGEoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBhc3luYyBmdW5jdGlvbiBnZXRWaWV3cG9ydFJlYWR5KCkge1xuICAgICAgICBhd2FpdCB2aWV3cG9ydCgpO1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBmdW5jdGlvbiBTdHJlYW1pbmdNZXRhZGF0YU91dGxldEltcGwoKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKF9hc3luY21ldGFkYXRhLkFzeW5jTWV0YWRhdGFPdXRsZXQsIHtcbiAgICAgICAgICAgIHByb21pc2U6IHJlc29sdmVGaW5hbE1ldGFkYXRhKClcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IFN0cmVhbWluZ01ldGFkYXRhT3V0bGV0ID0gc2VydmVTdHJlYW1pbmdNZXRhZGF0YSA/IFN0cmVhbWluZ01ldGFkYXRhT3V0bGV0SW1wbCA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgVmlld3BvcnRUcmVlLFxuICAgICAgICBNZXRhZGF0YVRyZWUsXG4gICAgICAgIGdldFZpZXdwb3J0UmVhZHksXG4gICAgICAgIGdldE1ldGFkYXRhUmVhZHksXG4gICAgICAgIFN0cmVhbWluZ01ldGFkYXRhT3V0bGV0XG4gICAgfTtcbn1cbmNvbnN0IGdldFJlc29sdmVkTWV0YWRhdGEgPSAoMCwgX3JlYWN0LmNhY2hlKShnZXRSZXNvbHZlZE1ldGFkYXRhSW1wbCk7XG5hc3luYyBmdW5jdGlvbiBnZXRSZXNvbHZlZE1ldGFkYXRhSW1wbCh0cmVlLCBwYXRobmFtZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgbWV0YWRhdGFDb250ZXh0LCB3b3JrU3RvcmUsIGVycm9yVHlwZSkge1xuICAgIGNvbnN0IGVycm9yQ29udmVudGlvbiA9IGVycm9yVHlwZSA9PT0gJ3JlZGlyZWN0JyA/IHVuZGVmaW5lZCA6IGVycm9yVHlwZTtcbiAgICByZXR1cm4gcmVuZGVyTWV0YWRhdGEodHJlZSwgcGF0aG5hbWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIG1ldGFkYXRhQ29udGV4dCwgd29ya1N0b3JlLCBlcnJvckNvbnZlbnRpb24pO1xufVxuY29uc3QgZ2V0Tm90Rm91bmRNZXRhZGF0YSA9ICgwLCBfcmVhY3QuY2FjaGUpKGdldE5vdEZvdW5kTWV0YWRhdGFJbXBsKTtcbmFzeW5jIGZ1bmN0aW9uIGdldE5vdEZvdW5kTWV0YWRhdGFJbXBsKHRyZWUsIHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBtZXRhZGF0YUNvbnRleHQsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IG5vdEZvdW5kRXJyb3JDb252ZW50aW9uID0gJ25vdC1mb3VuZCc7XG4gICAgcmV0dXJuIHJlbmRlck1ldGFkYXRhKHRyZWUsIHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCBtZXRhZGF0YUNvbnRleHQsIHdvcmtTdG9yZSwgbm90Rm91bmRFcnJvckNvbnZlbnRpb24pO1xufVxuY29uc3QgZ2V0UmVzb2x2ZWRWaWV3cG9ydCA9ICgwLCBfcmVhY3QuY2FjaGUpKGdldFJlc29sdmVkVmlld3BvcnRJbXBsKTtcbmFzeW5jIGZ1bmN0aW9uIGdldFJlc29sdmVkVmlld3BvcnRJbXBsKHRyZWUsIHNlYXJjaFBhcmFtcywgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSwgZXJyb3JUeXBlKSB7XG4gICAgY29uc3QgZXJyb3JDb252ZW50aW9uID0gZXJyb3JUeXBlID09PSAncmVkaXJlY3QnID8gdW5kZWZpbmVkIDogZXJyb3JUeXBlO1xuICAgIHJldHVybiByZW5kZXJWaWV3cG9ydCh0cmVlLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUsIGVycm9yQ29udmVudGlvbik7XG59XG5jb25zdCBnZXROb3RGb3VuZFZpZXdwb3J0ID0gKDAsIF9yZWFjdC5jYWNoZSkoZ2V0Tm90Rm91bmRWaWV3cG9ydEltcGwpO1xuYXN5bmMgZnVuY3Rpb24gZ2V0Tm90Rm91bmRWaWV3cG9ydEltcGwodHJlZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgbm90Rm91bmRFcnJvckNvbnZlbnRpb24gPSAnbm90LWZvdW5kJztcbiAgICByZXR1cm4gcmVuZGVyVmlld3BvcnQodHJlZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlLCBub3RGb3VuZEVycm9yQ29udmVudGlvbik7XG59XG5hc3luYyBmdW5jdGlvbiByZW5kZXJNZXRhZGF0YSh0cmVlLCBwYXRobmFtZSwgc2VhcmNoUGFyYW1zLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgbWV0YWRhdGFDb250ZXh0LCB3b3JrU3RvcmUsIGVycm9yQ29udmVudGlvbikge1xuICAgIGNvbnN0IHJlc29sdmVkTWV0YWRhdGEgPSBhd2FpdCAoMCwgX3Jlc29sdmVtZXRhZGF0YS5yZXNvbHZlTWV0YWRhdGEpKHRyZWUsIHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSwgbWV0YWRhdGFDb250ZXh0KTtcbiAgICBjb25zdCBlbGVtZW50cyA9IGNyZWF0ZU1ldGFkYXRhRWxlbWVudHMocmVzb2x2ZWRNZXRhZGF0YSk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX2pzeHJ1bnRpbWUuRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IGVsZW1lbnRzLm1hcCgoZWwsIGluZGV4KT0+e1xuICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9yZWFjdC5jbG9uZUVsZW1lbnQpKGVsLCB7XG4gICAgICAgICAgICAgICAga2V5OiBpbmRleFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgfSk7XG59XG5hc3luYyBmdW5jdGlvbiByZW5kZXJWaWV3cG9ydCh0cmVlLCBzZWFyY2hQYXJhbXMsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUsIGVycm9yQ29udmVudGlvbikge1xuICAgIGNvbnN0IHJlc29sdmVkVmlld3BvcnQgPSBhd2FpdCAoMCwgX3Jlc29sdmVtZXRhZGF0YS5yZXNvbHZlVmlld3BvcnQpKHRyZWUsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKTtcbiAgICBjb25zdCBlbGVtZW50cyA9IGNyZWF0ZVZpZXdwb3J0RWxlbWVudHMocmVzb2x2ZWRWaWV3cG9ydCk7XG4gICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoX2pzeHJ1bnRpbWUuRnJhZ21lbnQsIHtcbiAgICAgICAgY2hpbGRyZW46IGVsZW1lbnRzLm1hcCgoZWwsIGluZGV4KT0+e1xuICAgICAgICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi8gKDAsIF9yZWFjdC5jbG9uZUVsZW1lbnQpKGVsLCB7XG4gICAgICAgICAgICAgICAga2V5OiBpbmRleFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVNZXRhZGF0YUVsZW1lbnRzKG1ldGFkYXRhKSB7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgICgwLCBfYmFzaWMuQmFzaWNNZXRhKSh7XG4gICAgICAgICAgICBtZXRhZGF0YVxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9hbHRlcm5hdGUuQWx0ZXJuYXRlc01ldGFkYXRhKSh7XG4gICAgICAgICAgICBhbHRlcm5hdGVzOiBtZXRhZGF0YS5hbHRlcm5hdGVzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2Jhc2ljLkl0dW5lc01ldGEpKHtcbiAgICAgICAgICAgIGl0dW5lczogbWV0YWRhdGEuaXR1bmVzXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2Jhc2ljLkZhY2Vib29rTWV0YSkoe1xuICAgICAgICAgICAgZmFjZWJvb2s6IG1ldGFkYXRhLmZhY2Vib29rXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2Jhc2ljLlBpbnRlcmVzdE1ldGEpKHtcbiAgICAgICAgICAgIHBpbnRlcmVzdDogbWV0YWRhdGEucGludGVyZXN0XG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2Jhc2ljLkZvcm1hdERldGVjdGlvbk1ldGEpKHtcbiAgICAgICAgICAgIGZvcm1hdERldGVjdGlvbjogbWV0YWRhdGEuZm9ybWF0RGV0ZWN0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2Jhc2ljLlZlcmlmaWNhdGlvbk1ldGEpKHtcbiAgICAgICAgICAgIHZlcmlmaWNhdGlvbjogbWV0YWRhdGEudmVyaWZpY2F0aW9uXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX2Jhc2ljLkFwcGxlV2ViQXBwTWV0YSkoe1xuICAgICAgICAgICAgYXBwbGVXZWJBcHA6IG1ldGFkYXRhLmFwcGxlV2ViQXBwXG4gICAgICAgIH0pLFxuICAgICAgICAoMCwgX29wZW5ncmFwaC5PcGVuR3JhcGhNZXRhZGF0YSkoe1xuICAgICAgICAgICAgb3BlbkdyYXBoOiBtZXRhZGF0YS5vcGVuR3JhcGhcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfb3BlbmdyYXBoLlR3aXR0ZXJNZXRhZGF0YSkoe1xuICAgICAgICAgICAgdHdpdHRlcjogbWV0YWRhdGEudHdpdHRlclxuICAgICAgICB9KSxcbiAgICAgICAgKDAsIF9vcGVuZ3JhcGguQXBwTGlua3NNZXRhKSh7XG4gICAgICAgICAgICBhcHBMaW5rczogbWV0YWRhdGEuYXBwTGlua3NcbiAgICAgICAgfSksXG4gICAgICAgICgwLCBfaWNvbnMuSWNvbnNNZXRhZGF0YSkoe1xuICAgICAgICAgICAgaWNvbnM6IG1ldGFkYXRhLmljb25zXG4gICAgICAgIH0pXG4gICAgXSk7XG59XG5mdW5jdGlvbiBjcmVhdGVWaWV3cG9ydEVsZW1lbnRzKHZpZXdwb3J0KSB7XG4gICAgcmV0dXJuICgwLCBfbWV0YS5NZXRhRmlsdGVyKShbXG4gICAgICAgICgwLCBfYmFzaWMuVmlld3BvcnRNZXRhKSh7XG4gICAgICAgICAgICB2aWV3cG9ydDogdmlld3BvcnRcbiAgICAgICAgfSlcbiAgICBdKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWV0YWRhdGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/metadata.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolve-metadata.js":
/*!*****************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/resolve-metadata.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n accumulateMetadata: function() {\n return accumulateMetadata;\n },\n accumulateViewport: function() {\n return accumulateViewport;\n },\n resolveMetadata: function() {\n return resolveMetadata;\n },\n resolveViewport: function() {\n return resolveViewport;\n }\n});\n__webpack_require__(/*! server-only */ \"(rsc)/./node_modules/next/dist/compiled/server-only/empty.js\");\nconst _react = __webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\");\nconst _defaultmetadata = __webpack_require__(/*! ./default-metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/default-metadata.js\");\nconst _resolveopengraph = __webpack_require__(/*! ./resolvers/resolve-opengraph */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js\");\nconst _resolvetitle = __webpack_require__(/*! ./resolvers/resolve-title */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js\");\nconst _utils = __webpack_require__(/*! ./generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _appdirmodule = __webpack_require__(/*! ../../server/lib/app-dir-module */ \"(rsc)/./node_modules/next/dist/server/lib/app-dir-module.js\");\nconst _interopdefault = __webpack_require__(/*! ../interop-default */ \"(rsc)/./node_modules/next/dist/lib/interop-default.js\");\nconst _resolvebasics = __webpack_require__(/*! ./resolvers/resolve-basics */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js\");\nconst _resolveicons = __webpack_require__(/*! ./resolvers/resolve-icons */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js\");\nconst _tracer = __webpack_require__(/*! ../../server/lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ../../server/lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _log = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! ../../build/output/log */ \"(rsc)/./node_modules/next/dist/build/output/log.js\"));\nconst _params = __webpack_require__(/*! ../../server/request/params */ \"(rsc)/./node_modules/next/dist/server/request/params.js\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction isFavicon(icon) {\n if (!icon) {\n return false;\n }\n // turbopack appends a hash to all images\n return (icon.url === '/favicon.ico' || icon.url.toString().startsWith('/favicon.ico?')) && icon.type === 'image/x-icon';\n}\nasync function mergeStaticMetadata(source, target, staticFilesMetadata, metadataContext, titleTemplates, leafSegmentStaticIcons, pathname) {\n var _source_twitter, _source_openGraph;\n if (!staticFilesMetadata) return target;\n const { icon, apple, openGraph, twitter, manifest } = staticFilesMetadata;\n // Keep updating the static icons in the most leaf node\n if (icon) {\n leafSegmentStaticIcons.icon = icon;\n }\n if (apple) {\n leafSegmentStaticIcons.apple = apple;\n }\n // file based metadata is specified and current level metadata twitter.images is not specified\n if (twitter && !(source == null ? void 0 : (_source_twitter = source.twitter) == null ? void 0 : _source_twitter.hasOwnProperty('images'))) {\n const resolvedTwitter = (0, _resolveopengraph.resolveTwitter)({\n ...target.twitter,\n images: twitter\n }, target.metadataBase, {\n ...metadataContext,\n isStaticMetadataRouteFile: true\n }, titleTemplates.twitter);\n target.twitter = resolvedTwitter;\n }\n // file based metadata is specified and current level metadata openGraph.images is not specified\n if (openGraph && !(source == null ? void 0 : (_source_openGraph = source.openGraph) == null ? void 0 : _source_openGraph.hasOwnProperty('images'))) {\n const resolvedOpenGraph = await (0, _resolveopengraph.resolveOpenGraph)({\n ...target.openGraph,\n images: openGraph\n }, target.metadataBase, pathname, {\n ...metadataContext,\n isStaticMetadataRouteFile: true\n }, titleTemplates.openGraph);\n target.openGraph = resolvedOpenGraph;\n }\n if (manifest) {\n target.manifest = manifest;\n }\n return target;\n}\n// Merge the source metadata into the resolved target metadata.\nasync function mergeMetadata(route, pathname, { source, target, staticFilesMetadata, titleTemplates, metadataContext, buildState, leafSegmentStaticIcons }) {\n // If there's override metadata, prefer it otherwise fallback to the default metadata.\n const metadataBase = typeof (source == null ? void 0 : source.metadataBase) !== 'undefined' ? source.metadataBase : target.metadataBase;\n for(const key_ in source){\n const key = key_;\n switch(key){\n case 'title':\n {\n target.title = (0, _resolvetitle.resolveTitle)(source.title, titleTemplates.title);\n break;\n }\n case 'alternates':\n {\n target.alternates = await (0, _resolvebasics.resolveAlternates)(source.alternates, metadataBase, pathname, metadataContext);\n break;\n }\n case 'openGraph':\n {\n target.openGraph = await (0, _resolveopengraph.resolveOpenGraph)(source.openGraph, metadataBase, pathname, metadataContext, titleTemplates.openGraph);\n break;\n }\n case 'twitter':\n {\n target.twitter = (0, _resolveopengraph.resolveTwitter)(source.twitter, metadataBase, metadataContext, titleTemplates.twitter);\n break;\n }\n case 'facebook':\n target.facebook = (0, _resolvebasics.resolveFacebook)(source.facebook);\n break;\n case 'verification':\n target.verification = (0, _resolvebasics.resolveVerification)(source.verification);\n break;\n case 'icons':\n {\n target.icons = (0, _resolveicons.resolveIcons)(source.icons);\n break;\n }\n case 'appleWebApp':\n target.appleWebApp = (0, _resolvebasics.resolveAppleWebApp)(source.appleWebApp);\n break;\n case 'appLinks':\n target.appLinks = (0, _resolvebasics.resolveAppLinks)(source.appLinks);\n break;\n case 'robots':\n {\n target.robots = (0, _resolvebasics.resolveRobots)(source.robots);\n break;\n }\n case 'archives':\n case 'assets':\n case 'bookmarks':\n case 'keywords':\n {\n target[key] = (0, _utils.resolveAsArrayOrUndefined)(source[key]);\n break;\n }\n case 'authors':\n {\n target[key] = (0, _utils.resolveAsArrayOrUndefined)(source.authors);\n break;\n }\n case 'itunes':\n {\n target[key] = await (0, _resolvebasics.resolveItunes)(source.itunes, metadataBase, pathname, metadataContext);\n break;\n }\n case 'pagination':\n {\n target.pagination = await (0, _resolvebasics.resolvePagination)(source.pagination, metadataBase, pathname, metadataContext);\n break;\n }\n // directly assign fields that fallback to null\n case 'applicationName':\n case 'description':\n case 'generator':\n case 'creator':\n case 'publisher':\n case 'category':\n case 'classification':\n case 'referrer':\n case 'formatDetection':\n case 'manifest':\n case 'pinterest':\n // @ts-ignore TODO: support inferring\n target[key] = source[key] || null;\n break;\n case 'other':\n target.other = Object.assign({}, target.other, source.other);\n break;\n case 'metadataBase':\n target.metadataBase = metadataBase;\n break;\n default:\n {\n if ((key === 'viewport' || key === 'themeColor' || key === 'colorScheme') && source[key] != null) {\n buildState.warnings.add(`Unsupported metadata ${key} is configured in metadata export in ${route}. Please move it to viewport export instead.\\nRead more: https://nextjs.org/docs/app/api-reference/functions/generate-viewport`);\n }\n break;\n }\n }\n }\n return mergeStaticMetadata(source, target, staticFilesMetadata, metadataContext, titleTemplates, leafSegmentStaticIcons, pathname);\n}\nfunction mergeViewport({ target, source }) {\n if (!source) return;\n for(const key_ in source){\n const key = key_;\n switch(key){\n case 'themeColor':\n {\n target.themeColor = (0, _resolvebasics.resolveThemeColor)(source.themeColor);\n break;\n }\n case 'colorScheme':\n target.colorScheme = source.colorScheme || null;\n break;\n default:\n // always override the target with the source\n // @ts-ignore viewport properties\n target[key] = source[key];\n break;\n }\n }\n}\nfunction getDefinedViewport(mod, props, tracingProps) {\n if (typeof mod.generateViewport === 'function') {\n const { route } = tracingProps;\n return (parent)=>(0, _tracer.getTracer)().trace(_constants.ResolveMetadataSpan.generateViewport, {\n spanName: `generateViewport ${route}`,\n attributes: {\n 'next.page': route\n }\n }, ()=>mod.generateViewport(props, parent));\n }\n return mod.viewport || null;\n}\nfunction getDefinedMetadata(mod, props, tracingProps) {\n if (typeof mod.generateMetadata === 'function') {\n const { route } = tracingProps;\n return (parent)=>(0, _tracer.getTracer)().trace(_constants.ResolveMetadataSpan.generateMetadata, {\n spanName: `generateMetadata ${route}`,\n attributes: {\n 'next.page': route\n }\n }, ()=>mod.generateMetadata(props, parent));\n }\n return mod.metadata || null;\n}\nasync function collectStaticImagesFiles(metadata, props, type) {\n var _this;\n if (!(metadata == null ? void 0 : metadata[type])) return undefined;\n const iconPromises = metadata[type].map(async (imageModule)=>(0, _interopdefault.interopDefault)(await imageModule(props)));\n return (iconPromises == null ? void 0 : iconPromises.length) > 0 ? (_this = await Promise.all(iconPromises)) == null ? void 0 : _this.flat() : undefined;\n}\nasync function resolveStaticMetadata(modules, props) {\n const { metadata } = modules;\n if (!metadata) return null;\n const [icon, apple, openGraph, twitter] = await Promise.all([\n collectStaticImagesFiles(metadata, props, 'icon'),\n collectStaticImagesFiles(metadata, props, 'apple'),\n collectStaticImagesFiles(metadata, props, 'openGraph'),\n collectStaticImagesFiles(metadata, props, 'twitter')\n ]);\n const staticMetadata = {\n icon,\n apple,\n openGraph,\n twitter,\n manifest: metadata.manifest\n };\n return staticMetadata;\n}\n// [layout.metadata, static files metadata] -> ... -> [page.metadata, static files metadata]\nasync function collectMetadata({ tree, metadataItems, errorMetadataItem, props, route, errorConvention }) {\n let mod;\n let modType;\n const hasErrorConventionComponent = Boolean(errorConvention && tree[2][errorConvention]);\n if (errorConvention) {\n mod = await (0, _appdirmodule.getComponentTypeModule)(tree, 'layout');\n modType = errorConvention;\n } else {\n const { mod: layoutOrPageMod, modType: layoutOrPageModType } = await (0, _appdirmodule.getLayoutOrPageModule)(tree);\n mod = layoutOrPageMod;\n modType = layoutOrPageModType;\n }\n if (modType) {\n route += `/${modType}`;\n }\n const staticFilesMetadata = await resolveStaticMetadata(tree[2], props);\n const metadataExport = mod ? getDefinedMetadata(mod, props, {\n route\n }) : null;\n metadataItems.push([\n metadataExport,\n staticFilesMetadata\n ]);\n if (hasErrorConventionComponent && errorConvention) {\n const errorMod = await (0, _appdirmodule.getComponentTypeModule)(tree, errorConvention);\n const errorMetadataExport = errorMod ? getDefinedMetadata(errorMod, props, {\n route\n }) : null;\n errorMetadataItem[0] = errorMetadataExport;\n errorMetadataItem[1] = staticFilesMetadata;\n }\n}\n// [layout.metadata, static files metadata] -> ... -> [page.metadata, static files metadata]\nasync function collectViewport({ tree, viewportItems, errorViewportItemRef, props, route, errorConvention }) {\n let mod;\n let modType;\n const hasErrorConventionComponent = Boolean(errorConvention && tree[2][errorConvention]);\n if (errorConvention) {\n mod = await (0, _appdirmodule.getComponentTypeModule)(tree, 'layout');\n modType = errorConvention;\n } else {\n const { mod: layoutOrPageMod, modType: layoutOrPageModType } = await (0, _appdirmodule.getLayoutOrPageModule)(tree);\n mod = layoutOrPageMod;\n modType = layoutOrPageModType;\n }\n if (modType) {\n route += `/${modType}`;\n }\n const viewportExport = mod ? getDefinedViewport(mod, props, {\n route\n }) : null;\n viewportItems.push(viewportExport);\n if (hasErrorConventionComponent && errorConvention) {\n const errorMod = await (0, _appdirmodule.getComponentTypeModule)(tree, errorConvention);\n const errorViewportExport = errorMod ? getDefinedViewport(errorMod, props, {\n route\n }) : null;\n errorViewportItemRef.current = errorViewportExport;\n }\n}\nconst resolveMetadataItems = (0, _react.cache)(async function(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore) {\n const parentParams = {};\n const metadataItems = [];\n const errorMetadataItem = [\n null,\n null\n ];\n const treePrefix = undefined;\n return resolveMetadataItemsImpl(metadataItems, tree, treePrefix, parentParams, searchParams, errorConvention, errorMetadataItem, getDynamicParamFromSegment, workStore);\n});\nasync function resolveMetadataItemsImpl(metadataItems, tree, /** Provided tree can be nested subtree, this argument says what is the path of such subtree */ treePrefix, parentParams, searchParams, errorConvention, errorMetadataItem, getDynamicParamFromSegment, workStore) {\n const [segment, parallelRoutes, { page }] = tree;\n const currentTreePrefix = treePrefix && treePrefix.length ? [\n ...treePrefix,\n segment\n ] : [\n segment\n ];\n const isPage = typeof page !== 'undefined';\n // Handle dynamic segment params.\n const segmentParam = getDynamicParamFromSegment(segment);\n /**\n * Create object holding the parent params and current params\n */ let currentParams = parentParams;\n if (segmentParam && segmentParam.value !== null) {\n currentParams = {\n ...parentParams,\n [segmentParam.param]: segmentParam.value\n };\n }\n const params = (0, _params.createServerParamsForMetadata)(currentParams, workStore);\n let layerProps;\n if (isPage) {\n layerProps = {\n params,\n searchParams\n };\n } else {\n layerProps = {\n params\n };\n }\n await collectMetadata({\n tree,\n metadataItems,\n errorMetadataItem,\n errorConvention,\n props: layerProps,\n route: currentTreePrefix// __PAGE__ shouldn't be shown in a route\n .filter((s)=>s !== _segment.PAGE_SEGMENT_KEY).join('/')\n });\n for(const key in parallelRoutes){\n const childTree = parallelRoutes[key];\n await resolveMetadataItemsImpl(metadataItems, childTree, currentTreePrefix, currentParams, searchParams, errorConvention, errorMetadataItem, getDynamicParamFromSegment, workStore);\n }\n if (Object.keys(parallelRoutes).length === 0 && errorConvention) {\n // If there are no parallel routes, place error metadata as the last item.\n // e.g. layout -> layout -> not-found\n metadataItems.push(errorMetadataItem);\n }\n return metadataItems;\n}\nconst resolveViewportItems = (0, _react.cache)(async function(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore) {\n const parentParams = {};\n const viewportItems = [];\n const errorViewportItemRef = {\n current: null\n };\n const treePrefix = undefined;\n return resolveViewportItemsImpl(viewportItems, tree, treePrefix, parentParams, searchParams, errorConvention, errorViewportItemRef, getDynamicParamFromSegment, workStore);\n});\nasync function resolveViewportItemsImpl(viewportItems, tree, /** Provided tree can be nested subtree, this argument says what is the path of such subtree */ treePrefix, parentParams, searchParams, errorConvention, errorViewportItemRef, getDynamicParamFromSegment, workStore) {\n const [segment, parallelRoutes, { page }] = tree;\n const currentTreePrefix = treePrefix && treePrefix.length ? [\n ...treePrefix,\n segment\n ] : [\n segment\n ];\n const isPage = typeof page !== 'undefined';\n // Handle dynamic segment params.\n const segmentParam = getDynamicParamFromSegment(segment);\n /**\n * Create object holding the parent params and current params\n */ let currentParams = parentParams;\n if (segmentParam && segmentParam.value !== null) {\n currentParams = {\n ...parentParams,\n [segmentParam.param]: segmentParam.value\n };\n }\n const params = (0, _params.createServerParamsForMetadata)(currentParams, workStore);\n let layerProps;\n if (isPage) {\n layerProps = {\n params,\n searchParams\n };\n } else {\n layerProps = {\n params\n };\n }\n await collectViewport({\n tree,\n viewportItems,\n errorViewportItemRef,\n errorConvention,\n props: layerProps,\n route: currentTreePrefix// __PAGE__ shouldn't be shown in a route\n .filter((s)=>s !== _segment.PAGE_SEGMENT_KEY).join('/')\n });\n for(const key in parallelRoutes){\n const childTree = parallelRoutes[key];\n await resolveViewportItemsImpl(viewportItems, childTree, currentTreePrefix, currentParams, searchParams, errorConvention, errorViewportItemRef, getDynamicParamFromSegment, workStore);\n }\n if (Object.keys(parallelRoutes).length === 0 && errorConvention) {\n // If there are no parallel routes, place error metadata as the last item.\n // e.g. layout -> layout -> not-found\n viewportItems.push(errorViewportItemRef.current);\n }\n return viewportItems;\n}\nconst isTitleTruthy = (title)=>!!(title == null ? void 0 : title.absolute);\nconst hasTitle = (metadata)=>isTitleTruthy(metadata == null ? void 0 : metadata.title);\nfunction inheritFromMetadata(target, metadata) {\n if (target) {\n if (!hasTitle(target) && hasTitle(metadata)) {\n target.title = metadata.title;\n }\n if (!target.description && metadata.description) {\n target.description = metadata.description;\n }\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst commonOgKeys = [\n 'title',\n 'description',\n 'images'\n];\nfunction postProcessMetadata(metadata, favicon, titleTemplates, metadataContext) {\n const { openGraph, twitter } = metadata;\n if (openGraph) {\n // If there's openGraph information but not configured in twitter,\n // inherit them from openGraph metadata.\n let autoFillProps = {};\n const hasTwTitle = hasTitle(twitter);\n const hasTwDescription = twitter == null ? void 0 : twitter.description;\n const hasTwImages = Boolean((twitter == null ? void 0 : twitter.hasOwnProperty('images')) && twitter.images);\n if (!hasTwTitle) {\n if (isTitleTruthy(openGraph.title)) {\n autoFillProps.title = openGraph.title;\n } else if (metadata.title && isTitleTruthy(metadata.title)) {\n autoFillProps.title = metadata.title;\n }\n }\n if (!hasTwDescription) autoFillProps.description = openGraph.description || metadata.description || undefined;\n if (!hasTwImages) autoFillProps.images = openGraph.images;\n if (Object.keys(autoFillProps).length > 0) {\n const partialTwitter = (0, _resolveopengraph.resolveTwitter)(autoFillProps, metadata.metadataBase, metadataContext, titleTemplates.twitter);\n if (metadata.twitter) {\n metadata.twitter = Object.assign({}, metadata.twitter, {\n ...!hasTwTitle && {\n title: partialTwitter == null ? void 0 : partialTwitter.title\n },\n ...!hasTwDescription && {\n description: partialTwitter == null ? void 0 : partialTwitter.description\n },\n ...!hasTwImages && {\n images: partialTwitter == null ? void 0 : partialTwitter.images\n }\n });\n } else {\n metadata.twitter = partialTwitter;\n }\n }\n }\n // If there's no title and description configured in openGraph or twitter,\n // use the title and description from metadata.\n inheritFromMetadata(openGraph, metadata);\n inheritFromMetadata(twitter, metadata);\n if (favicon) {\n if (!metadata.icons) {\n metadata.icons = {\n icon: [],\n apple: []\n };\n }\n metadata.icons.icon.unshift(favicon);\n }\n return metadata;\n}\nfunction prerenderMetadata(metadataItems) {\n // If the index is a function then it is a resolver and the next slot\n // is the corresponding result. If the index is not a function it is the result\n // itself.\n const resolversAndResults = [];\n for(let i = 0; i < metadataItems.length; i++){\n const metadataExport = metadataItems[i][0];\n getResult(resolversAndResults, metadataExport);\n }\n return resolversAndResults;\n}\nfunction prerenderViewport(viewportItems) {\n // If the index is a function then it is a resolver and the next slot\n // is the corresponding result. If the index is not a function it is the result\n // itself.\n const resolversAndResults = [];\n for(let i = 0; i < viewportItems.length; i++){\n const viewportExport = viewportItems[i];\n getResult(resolversAndResults, viewportExport);\n }\n return resolversAndResults;\n}\nfunction getResult(resolversAndResults, exportForResult) {\n if (typeof exportForResult === 'function') {\n const result = exportForResult(new Promise((resolve)=>resolversAndResults.push(resolve)));\n resolversAndResults.push(result);\n if (result instanceof Promise) {\n // since we eager execute generateMetadata and\n // they can reject at anytime we need to ensure\n // we attach the catch handler right away to\n // prevent unhandled rejections crashing the process\n result.catch((err)=>{\n return {\n __nextError: err\n };\n });\n }\n } else if (typeof exportForResult === 'object') {\n resolversAndResults.push(exportForResult);\n } else {\n resolversAndResults.push(null);\n }\n}\nfunction resolvePendingResult(parentResult, resolveParentResult) {\n // In dev we clone and freeze to prevent relying on mutating resolvedMetadata directly.\n // In prod we just pass resolvedMetadata through without any copying.\n if (true) {\n // @ts-expect-error -- DeepReadonly<T> is by definition not assignable to T\n // Instead, we should only accept DeepReadonly<ResolvedType>\n parentResult = (__webpack_require__(/*! ../../shared/lib/deep-freeze */ \"(rsc)/./node_modules/next/dist/shared/lib/deep-freeze.js\").deepFreeze)((__webpack_require__(/*! ./clone-metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/clone-metadata.js\").cloneMetadata)(parentResult));\n }\n resolveParentResult(parentResult);\n}\nasync function accumulateMetadata(route, metadataItems, pathname, metadataContext) {\n let resolvedMetadata = (0, _defaultmetadata.createDefaultMetadata)();\n let titleTemplates = {\n title: null,\n twitter: null,\n openGraph: null\n };\n const buildState = {\n warnings: new Set()\n };\n let favicon;\n // Collect the static icons in the most leaf node,\n // since we don't collect all the static metadata icons in the parent segments.\n const leafSegmentStaticIcons = {\n icon: [],\n apple: []\n };\n const resolversAndResults = prerenderMetadata(metadataItems);\n let resultIndex = 0;\n for(let i = 0; i < metadataItems.length; i++){\n var _staticFilesMetadata_icon;\n const staticFilesMetadata = metadataItems[i][1];\n // Treat favicon as special case, it should be the first icon in the list\n // i <= 1 represents root layout, and if current page is also at root\n if (i <= 1 && isFavicon(staticFilesMetadata == null ? void 0 : (_staticFilesMetadata_icon = staticFilesMetadata.icon) == null ? void 0 : _staticFilesMetadata_icon[0])) {\n var _staticFilesMetadata_icon1;\n const iconMod = staticFilesMetadata == null ? void 0 : (_staticFilesMetadata_icon1 = staticFilesMetadata.icon) == null ? void 0 : _staticFilesMetadata_icon1.shift();\n if (i === 0) favicon = iconMod;\n }\n let pendingMetadata = resolversAndResults[resultIndex++];\n if (typeof pendingMetadata === 'function') {\n // This metadata item had a `generateMetadata` and\n // we need to provide the currently resolved metadata\n // to it before we continue;\n const resolveParentMetadata = pendingMetadata;\n // we know that the next item is a result if this item\n // was a resolver\n pendingMetadata = resolversAndResults[resultIndex++];\n resolvePendingResult(resolvedMetadata, resolveParentMetadata);\n }\n // Otherwise the item was either null or a static export\n let metadata;\n if (isPromiseLike(pendingMetadata)) {\n metadata = await pendingMetadata;\n } else {\n metadata = pendingMetadata;\n }\n resolvedMetadata = await mergeMetadata(route, pathname, {\n target: resolvedMetadata,\n source: metadata,\n metadataContext,\n staticFilesMetadata,\n titleTemplates,\n buildState,\n leafSegmentStaticIcons\n });\n // If the layout is the same layer with page, skip the leaf layout and leaf page\n // The leaf layout and page are the last two items\n if (i < metadataItems.length - 2) {\n var _resolvedMetadata_title, _resolvedMetadata_openGraph, _resolvedMetadata_twitter;\n titleTemplates = {\n title: ((_resolvedMetadata_title = resolvedMetadata.title) == null ? void 0 : _resolvedMetadata_title.template) || null,\n openGraph: ((_resolvedMetadata_openGraph = resolvedMetadata.openGraph) == null ? void 0 : _resolvedMetadata_openGraph.title.template) || null,\n twitter: ((_resolvedMetadata_twitter = resolvedMetadata.twitter) == null ? void 0 : _resolvedMetadata_twitter.title.template) || null\n };\n }\n }\n if (leafSegmentStaticIcons.icon.length > 0 || leafSegmentStaticIcons.apple.length > 0) {\n if (!resolvedMetadata.icons) {\n resolvedMetadata.icons = {\n icon: [],\n apple: []\n };\n if (leafSegmentStaticIcons.icon.length > 0) {\n resolvedMetadata.icons.icon.unshift(...leafSegmentStaticIcons.icon);\n }\n if (leafSegmentStaticIcons.apple.length > 0) {\n resolvedMetadata.icons.apple.unshift(...leafSegmentStaticIcons.apple);\n }\n }\n }\n // Only log warnings if there are any, and only once after the metadata resolving process is finished\n if (buildState.warnings.size > 0) {\n for (const warning of buildState.warnings){\n _log.warn(warning);\n }\n }\n return postProcessMetadata(resolvedMetadata, favicon, titleTemplates, metadataContext);\n}\nasync function accumulateViewport(viewportItems) {\n const resolvedViewport = (0, _defaultmetadata.createDefaultViewport)();\n const resolversAndResults = prerenderViewport(viewportItems);\n let i = 0;\n while(i < resolversAndResults.length){\n let pendingViewport = resolversAndResults[i++];\n if (typeof pendingViewport === 'function') {\n // this viewport item had a `generateViewport` and\n // we need to provide the currently resolved viewport\n // to it before we continue;\n const resolveParentViewport = pendingViewport;\n // we know that the next item is a result if this item\n // was a resolver\n pendingViewport = resolversAndResults[i++];\n resolvePendingResult(resolvedViewport, resolveParentViewport);\n }\n // Otherwise the item was either null or a static export\n let viewport;\n if (isPromiseLike(pendingViewport)) {\n viewport = await pendingViewport;\n } else {\n viewport = pendingViewport;\n }\n mergeViewport({\n target: resolvedViewport,\n source: viewport\n });\n }\n return resolvedViewport;\n}\nasync function resolveMetadata(tree, pathname, searchParams, errorConvention, getDynamicParamFromSegment, workStore, metadataContext) {\n const metadataItems = await resolveMetadataItems(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore);\n return accumulateMetadata(workStore.route, metadataItems, pathname, metadataContext);\n}\nasync function resolveViewport(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore) {\n const viewportItems = await resolveViewportItems(tree, searchParams, errorConvention, getDynamicParamFromSegment, workStore);\n return accumulateViewport(viewportItems);\n}\nfunction isPromiseLike(value) {\n return typeof value === 'object' && value !== null && typeof value.then === 'function';\n}\n\n//# sourceMappingURL=resolve-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUtMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxtQkFBTyxDQUFDLGlGQUFhO0FBQ3JCLGVBQWUsbUJBQU8sQ0FBQyxpR0FBTztBQUM5Qix5QkFBeUIsbUJBQU8sQ0FBQywyRkFBb0I7QUFDckQsMEJBQTBCLG1CQUFPLENBQUMsaUhBQStCO0FBQ2pFLHNCQUFzQixtQkFBTyxDQUFDLHlHQUEyQjtBQUN6RCxlQUFlLG1CQUFPLENBQUMsdUZBQWtCO0FBQ3pDLHNCQUFzQixtQkFBTyxDQUFDLG9HQUFpQztBQUMvRCx3QkFBd0IsbUJBQU8sQ0FBQyxpRkFBb0I7QUFDcEQsdUJBQXVCLG1CQUFPLENBQUMsMkdBQTRCO0FBQzNELHNCQUFzQixtQkFBTyxDQUFDLHlHQUEyQjtBQUN6RCxnQkFBZ0IsbUJBQU8sQ0FBQyxnR0FBK0I7QUFDdkQsbUJBQW1CLG1CQUFPLENBQUMsc0dBQWtDO0FBQzdELGlCQUFpQixtQkFBTyxDQUFDLHNGQUEwQjtBQUNuRCxxREFBcUQsbUJBQU8sQ0FBQyxrRkFBd0I7QUFDckYsZ0JBQWdCLG1CQUFPLENBQUMsNEZBQTZCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FB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QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0Esc0NBQXNDLE1BQU07QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkscUJBQXFCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLDBCQUEwQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwwQkFBMEI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBc0M7QUFDOUM7QUFDQTtBQUNBLHVCQUF1QixnSUFBa0QsQ0FBQyw0SEFBeUM7QUFDbkg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsMEJBQTBCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvcmVzb2x2ZS1tZXRhZGF0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGFjY3VtdWxhdGVNZXRhZGF0YTogbnVsbCxcbiAgICBhY2N1bXVsYXRlVmlld3BvcnQ6IG51bGwsXG4gICAgcmVzb2x2ZU1ldGFkYXRhOiBudWxsLFxuICAgIHJlc29sdmVWaWV3cG9ydDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBhY2N1bXVsYXRlTWV0YWRhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWNjdW11bGF0ZU1ldGFkYXRhO1xuICAgIH0sXG4gICAgYWNjdW11bGF0ZVZpZXdwb3J0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdGVWaWV3cG9ydDtcbiAgICB9LFxuICAgIHJlc29sdmVNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlTWV0YWRhdGE7XG4gICAgfSxcbiAgICByZXNvbHZlVmlld3BvcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVZpZXdwb3J0O1xuICAgIH1cbn0pO1xucmVxdWlyZShcInNlcnZlci1vbmx5XCIpO1xuY29uc3QgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuY29uc3QgX2RlZmF1bHRtZXRhZGF0YSA9IHJlcXVpcmUoXCIuL2RlZmF1bHQtbWV0YWRhdGFcIik7XG5jb25zdCBfcmVzb2x2ZW9wZW5ncmFwaCA9IHJlcXVpcmUoXCIuL3Jlc29sdmVycy9yZXNvbHZlLW9wZW5ncmFwaFwiKTtcbmNvbnN0IF9yZXNvbHZldGl0bGUgPSByZXF1aXJlKFwiLi9yZXNvbHZlcnMvcmVzb2x2ZS10aXRsZVwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL2dlbmVyYXRlL3V0aWxzXCIpO1xuY29uc3QgX2FwcGRpcm1vZHVsZSA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvbGliL2FwcC1kaXItbW9kdWxlXCIpO1xuY29uc3QgX2ludGVyb3BkZWZhdWx0ID0gcmVxdWlyZShcIi4uL2ludGVyb3AtZGVmYXVsdFwiKTtcbmNvbnN0IF9yZXNvbHZlYmFzaWNzID0gcmVxdWlyZShcIi4vcmVzb2x2ZXJzL3Jlc29sdmUtYmFzaWNzXCIpO1xuY29uc3QgX3Jlc29sdmVpY29ucyA9IHJlcXVpcmUoXCIuL3Jlc29sdmVycy9yZXNvbHZlLWljb25zXCIpO1xuY29uc3QgX3RyYWNlciA9IHJlcXVpcmUoXCIuLi8uLi9zZXJ2ZXIvbGliL3RyYWNlL3RyYWNlclwiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfc2VnbWVudCA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3NlZ21lbnRcIik7XG5jb25zdCBfbG9nID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKHJlcXVpcmUoXCIuLi8uLi9idWlsZC9vdXRwdXQvbG9nXCIpKTtcbmNvbnN0IF9wYXJhbXMgPSByZXF1aXJlKFwiLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zXCIpO1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBXZWFrTWFwICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBudWxsO1xuICAgIHZhciBjYWNoZUJhYmVsSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgdmFyIGNhY2hlTm9kZUludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IG9ialxuICAgICAgICB9O1xuICAgIH1cbiAgICB2YXIgY2FjaGUgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApO1xuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KG9iaik7XG4gICAgfVxuICAgIHZhciBuZXdPYmogPSB7XG4gICAgICAgIF9fcHJvdG9fXzogbnVsbFxuICAgIH07XG4gICAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICAgIGZvcih2YXIga2V5IGluIG9iail7XG4gICAgICAgIGlmIChrZXkgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgICAgIHZhciBkZXNjID0gaGFzUHJvcGVydHlEZXNjcmlwdG9yID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKGRlc2MgJiYgKGRlc2MuZ2V0IHx8IGRlc2Muc2V0KSkge1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmV3T2JqLmRlZmF1bHQgPSBvYmo7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIGNhY2hlLnNldChvYmosIG5ld09iaik7XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmo7XG59XG5mdW5jdGlvbiBpc0Zhdmljb24oaWNvbikge1xuICAgIGlmICghaWNvbikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIHR1cmJvcGFjayBhcHBlbmRzIGEgaGFzaCB0byBhbGwgaW1hZ2VzXG4gICAgcmV0dXJuIChpY29uLnVybCA9PT0gJy9mYXZpY29uLmljbycgfHwgaWNvbi51cmwudG9TdHJpbmcoKS5zdGFydHNXaXRoKCcvZmF2aWNvbi5pY28/JykpICYmIGljb24udHlwZSA9PT0gJ2ltYWdlL3gtaWNvbic7XG59XG5hc3luYyBmdW5jdGlvbiBtZXJnZVN0YXRpY01ldGFkYXRhKHNvdXJjZSwgdGFyZ2V0LCBzdGF0aWNGaWxlc01ldGFkYXRhLCBtZXRhZGF0YUNvbnRleHQsIHRpdGxlVGVtcGxhdGVzLCBsZWFmU2VnbWVudFN0YXRpY0ljb25zLCBwYXRobmFtZSkge1xuICAgIHZhciBfc291cmNlX3R3aXR0ZXIsIF9zb3VyY2Vfb3BlbkdyYXBoO1xuICAgIGlmICghc3RhdGljRmlsZXNNZXRhZGF0YSkgcmV0dXJuIHRhcmdldDtcbiAgICBjb25zdCB7IGljb24sIGFwcGxlLCBvcGVuR3JhcGgsIHR3aXR0ZXIsIG1hbmlmZXN0IH0gPSBzdGF0aWNGaWxlc01ldGFkYXRhO1xuICAgIC8vIEtlZXAgdXBkYXRpbmcgdGhlIHN0YXRpYyBpY29ucyBpbiB0aGUgbW9zdCBsZWFmIG5vZGVcbiAgICBpZiAoaWNvbikge1xuICAgICAgICBsZWFmU2VnbWVudFN0YXRpY0ljb25zLmljb24gPSBpY29uO1xuICAgIH1cbiAgICBpZiAoYXBwbGUpIHtcbiAgICAgICAgbGVhZlNlZ21lbnRTdGF0aWNJY29ucy5hcHBsZSA9IGFwcGxlO1xuICAgIH1cbiAgICAvLyBmaWxlIGJhc2VkIG1ldGFkYXRhIGlzIHNwZWNpZmllZCBhbmQgY3VycmVudCBsZXZlbCBtZXRhZGF0YSB0d2l0dGVyLmltYWdlcyBpcyBub3Qgc3BlY2lmaWVkXG4gICAgaWYgKHR3aXR0ZXIgJiYgIShzb3VyY2UgPT0gbnVsbCA/IHZvaWQgMCA6IChfc291cmNlX3R3aXR0ZXIgPSBzb3VyY2UudHdpdHRlcikgPT0gbnVsbCA/IHZvaWQgMCA6IF9zb3VyY2VfdHdpdHRlci5oYXNPd25Qcm9wZXJ0eSgnaW1hZ2VzJykpKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkVHdpdHRlciA9ICgwLCBfcmVzb2x2ZW9wZW5ncmFwaC5yZXNvbHZlVHdpdHRlcikoe1xuICAgICAgICAgICAgLi4udGFyZ2V0LnR3aXR0ZXIsXG4gICAgICAgICAgICBpbWFnZXM6IHR3aXR0ZXJcbiAgICAgICAgfSwgdGFyZ2V0Lm1ldGFkYXRhQmFzZSwge1xuICAgICAgICAgICAgLi4ubWV0YWRhdGFDb250ZXh0LFxuICAgICAgICAgICAgaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZTogdHJ1ZVxuICAgICAgICB9LCB0aXRsZVRlbXBsYXRlcy50d2l0dGVyKTtcbiAgICAgICAgdGFyZ2V0LnR3aXR0ZXIgPSByZXNvbHZlZFR3aXR0ZXI7XG4gICAgfVxuICAgIC8vIGZpbGUgYmFzZWQgbWV0YWRhdGEgaXMgc3BlY2lmaWVkIGFuZCBjdXJyZW50IGxldmVsIG1ldGFkYXRhIG9wZW5HcmFwaC5pbWFnZXMgaXMgbm90IHNwZWNpZmllZFxuICAgIGlmIChvcGVuR3JhcGggJiYgIShzb3VyY2UgPT0gbnVsbCA/IHZvaWQgMCA6IChfc291cmNlX29wZW5HcmFwaCA9IHNvdXJjZS5vcGVuR3JhcGgpID09IG51bGwgPyB2b2lkIDAgOiBfc291cmNlX29wZW5HcmFwaC5oYXNPd25Qcm9wZXJ0eSgnaW1hZ2VzJykpKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkT3BlbkdyYXBoID0gYXdhaXQgKDAsIF9yZXNvbHZlb3BlbmdyYXBoLnJlc29sdmVPcGVuR3JhcGgpKHtcbiAgICAgICAgICAgIC4uLnRhcmdldC5vcGVuR3JhcGgsXG4gICAgICAgICAgICBpbWFnZXM6IG9wZW5HcmFwaFxuICAgICAgICB9LCB0YXJnZXQubWV0YWRhdGFCYXNlLCBwYXRobmFtZSwge1xuICAgICAgICAgICAgLi4ubWV0YWRhdGFDb250ZXh0LFxuICAgICAgICAgICAgaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZTogdHJ1ZVxuICAgICAgICB9LCB0aXRsZVRlbXBsYXRlcy5vcGVuR3JhcGgpO1xuICAgICAgICB0YXJnZXQub3BlbkdyYXBoID0gcmVzb2x2ZWRPcGVuR3JhcGg7XG4gICAgfVxuICAgIGlmIChtYW5pZmVzdCkge1xuICAgICAgICB0YXJnZXQubWFuaWZlc3QgPSBtYW5pZmVzdDtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbn1cbi8vIE1lcmdlIHRoZSBzb3VyY2UgbWV0YWRhdGEgaW50byB0aGUgcmVzb2x2ZWQgdGFyZ2V0IG1ldGFkYXRhLlxuYXN5bmMgZnVuY3Rpb24gbWVyZ2VNZXRhZGF0YShyb3V0ZSwgcGF0aG5hbWUsIHsgc291cmNlLCB0YXJnZXQsIHN0YXRpY0ZpbGVzTWV0YWRhdGEsIHRpdGxlVGVtcGxhdGVzLCBtZXRhZGF0YUNvbnRleHQsIGJ1aWxkU3RhdGUsIGxlYWZTZWdtZW50U3RhdGljSWNvbnMgfSkge1xuICAgIC8vIElmIHRoZXJlJ3Mgb3ZlcnJpZGUgbWV0YWRhdGEsIHByZWZlciBpdCBvdGhlcndpc2UgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgbWV0YWRhdGEuXG4gICAgY29uc3QgbWV0YWRhdGFCYXNlID0gdHlwZW9mIChzb3VyY2UgPT0gbnVsbCA/IHZvaWQgMCA6IHNvdXJjZS5tZXRhZGF0YUJhc2UpICE9PSAndW5kZWZpbmVkJyA/IHNvdXJjZS5tZXRhZGF0YUJhc2UgOiB0YXJnZXQubWV0YWRhdGFCYXNlO1xuICAgIGZvcihjb25zdCBrZXlfIGluIHNvdXJjZSl7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleV87XG4gICAgICAgIHN3aXRjaChrZXkpe1xuICAgICAgICAgICAgY2FzZSAndGl0bGUnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnRpdGxlID0gKDAsIF9yZXNvbHZldGl0bGUucmVzb2x2ZVRpdGxlKShzb3VyY2UudGl0bGUsIHRpdGxlVGVtcGxhdGVzLnRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnYWx0ZXJuYXRlcyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYWx0ZXJuYXRlcyA9IGF3YWl0ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlQWx0ZXJuYXRlcykoc291cmNlLmFsdGVybmF0ZXMsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ29wZW5HcmFwaCc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQub3BlbkdyYXBoID0gYXdhaXQgKDAsIF9yZXNvbHZlb3BlbmdyYXBoLnJlc29sdmVPcGVuR3JhcGgpKHNvdXJjZS5vcGVuR3JhcGgsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCwgdGl0bGVUZW1wbGF0ZXMub3BlbkdyYXBoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAndHdpdHRlcic6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQudHdpdHRlciA9ICgwLCBfcmVzb2x2ZW9wZW5ncmFwaC5yZXNvbHZlVHdpdHRlcikoc291cmNlLnR3aXR0ZXIsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlcy50d2l0dGVyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnZmFjZWJvb2snOlxuICAgICAgICAgICAgICAgIHRhcmdldC5mYWNlYm9vayA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlRmFjZWJvb2spKHNvdXJjZS5mYWNlYm9vayk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2ZXJpZmljYXRpb24nOlxuICAgICAgICAgICAgICAgIHRhcmdldC52ZXJpZmljYXRpb24gPSAoMCwgX3Jlc29sdmViYXNpY3MucmVzb2x2ZVZlcmlmaWNhdGlvbikoc291cmNlLnZlcmlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdpY29ucyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQuaWNvbnMgPSAoMCwgX3Jlc29sdmVpY29ucy5yZXNvbHZlSWNvbnMpKHNvdXJjZS5pY29ucyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2FwcGxlV2ViQXBwJzpcbiAgICAgICAgICAgICAgICB0YXJnZXQuYXBwbGVXZWJBcHAgPSAoMCwgX3Jlc29sdmViYXNpY3MucmVzb2x2ZUFwcGxlV2ViQXBwKShzb3VyY2UuYXBwbGVXZWJBcHApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXBwTGlua3MnOlxuICAgICAgICAgICAgICAgIHRhcmdldC5hcHBMaW5rcyA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlQXBwTGlua3MpKHNvdXJjZS5hcHBMaW5rcyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyb2JvdHMnOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LnJvYm90cyA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlUm9ib3RzKShzb3VyY2Uucm9ib3RzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnYXJjaGl2ZXMnOlxuICAgICAgICAgICAgY2FzZSAnYXNzZXRzJzpcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2ttYXJrcyc6XG4gICAgICAgICAgICBjYXNlICdrZXl3b3Jkcyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkoc291cmNlW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdhdXRob3JzJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShzb3VyY2UuYXV0aG9ycyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2l0dW5lcyc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IGF3YWl0ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlSXR1bmVzKShzb3VyY2UuaXR1bmVzLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBtZXRhZGF0YUNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdwYWdpbmF0aW9uJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldC5wYWdpbmF0aW9uID0gYXdhaXQgKDAsIF9yZXNvbHZlYmFzaWNzLnJlc29sdmVQYWdpbmF0aW9uKShzb3VyY2UucGFnaW5hdGlvbiwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZGlyZWN0bHkgYXNzaWduIGZpZWxkcyB0aGF0IGZhbGxiYWNrIHRvIG51bGxcbiAgICAgICAgICAgIGNhc2UgJ2FwcGxpY2F0aW9uTmFtZSc6XG4gICAgICAgICAgICBjYXNlICdkZXNjcmlwdGlvbic6XG4gICAgICAgICAgICBjYXNlICdnZW5lcmF0b3InOlxuICAgICAgICAgICAgY2FzZSAnY3JlYXRvcic6XG4gICAgICAgICAgICBjYXNlICdwdWJsaXNoZXInOlxuICAgICAgICAgICAgY2FzZSAnY2F0ZWdvcnknOlxuICAgICAgICAgICAgY2FzZSAnY2xhc3NpZmljYXRpb24nOlxuICAgICAgICAgICAgY2FzZSAncmVmZXJyZXInOlxuICAgICAgICAgICAgY2FzZSAnZm9ybWF0RGV0ZWN0aW9uJzpcbiAgICAgICAgICAgIGNhc2UgJ21hbmlmZXN0JzpcbiAgICAgICAgICAgIGNhc2UgJ3BpbnRlcmVzdCc6XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBUT0RPOiBzdXBwb3J0IGluZmVycmluZ1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV0gfHwgbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ290aGVyJzpcbiAgICAgICAgICAgICAgICB0YXJnZXQub3RoZXIgPSBPYmplY3QuYXNzaWduKHt9LCB0YXJnZXQub3RoZXIsIHNvdXJjZS5vdGhlcik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZXRhZGF0YUJhc2UnOlxuICAgICAgICAgICAgICAgIHRhcmdldC5tZXRhZGF0YUJhc2UgPSBtZXRhZGF0YUJhc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKChrZXkgPT09ICd2aWV3cG9ydCcgfHwga2V5ID09PSAndGhlbWVDb2xvcicgfHwga2V5ID09PSAnY29sb3JTY2hlbWUnKSAmJiBzb3VyY2Vba2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidWlsZFN0YXRlLndhcm5pbmdzLmFkZChgVW5zdXBwb3J0ZWQgbWV0YWRhdGEgJHtrZXl9IGlzIGNvbmZpZ3VyZWQgaW4gbWV0YWRhdGEgZXhwb3J0IGluICR7cm91dGV9LiBQbGVhc2UgbW92ZSBpdCB0byB2aWV3cG9ydCBleHBvcnQgaW5zdGVhZC5cXG5SZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9nZW5lcmF0ZS12aWV3cG9ydGApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VTdGF0aWNNZXRhZGF0YShzb3VyY2UsIHRhcmdldCwgc3RhdGljRmlsZXNNZXRhZGF0YSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlcywgbGVhZlNlZ21lbnRTdGF0aWNJY29ucywgcGF0aG5hbWUpO1xufVxuZnVuY3Rpb24gbWVyZ2VWaWV3cG9ydCh7IHRhcmdldCwgc291cmNlIH0pIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuO1xuICAgIGZvcihjb25zdCBrZXlfIGluIHNvdXJjZSl7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleV87XG4gICAgICAgIHN3aXRjaChrZXkpe1xuICAgICAgICAgICAgY2FzZSAndGhlbWVDb2xvcic6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQudGhlbWVDb2xvciA9ICgwLCBfcmVzb2x2ZWJhc2ljcy5yZXNvbHZlVGhlbWVDb2xvcikoc291cmNlLnRoZW1lQ29sb3IpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdjb2xvclNjaGVtZSc6XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmNvbG9yU2NoZW1lID0gc291cmNlLmNvbG9yU2NoZW1lIHx8IG51bGw7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIC8vIGFsd2F5cyBvdmVycmlkZSB0aGUgdGFyZ2V0IHdpdGggdGhlIHNvdXJjZVxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUgdmlld3BvcnQgcHJvcGVydGllc1xuICAgICAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBnZXREZWZpbmVkVmlld3BvcnQobW9kLCBwcm9wcywgdHJhY2luZ1Byb3BzKSB7XG4gICAgaWYgKHR5cGVvZiBtb2QuZ2VuZXJhdGVWaWV3cG9ydCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCB7IHJvdXRlIH0gPSB0cmFjaW5nUHJvcHM7XG4gICAgICAgIHJldHVybiAocGFyZW50KT0+KDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKF9jb25zdGFudHMuUmVzb2x2ZU1ldGFkYXRhU3Bhbi5nZW5lcmF0ZVZpZXdwb3J0LCB7XG4gICAgICAgICAgICAgICAgc3Bhbk5hbWU6IGBnZW5lcmF0ZVZpZXdwb3J0ICR7cm91dGV9YCxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICduZXh0LnBhZ2UnOiByb3V0ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sICgpPT5tb2QuZ2VuZXJhdGVWaWV3cG9ydChwcm9wcywgcGFyZW50KSk7XG4gICAgfVxuICAgIHJldHVybiBtb2Qudmlld3BvcnQgfHwgbnVsbDtcbn1cbmZ1bmN0aW9uIGdldERlZmluZWRNZXRhZGF0YShtb2QsIHByb3BzLCB0cmFjaW5nUHJvcHMpIHtcbiAgICBpZiAodHlwZW9mIG1vZC5nZW5lcmF0ZU1ldGFkYXRhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHsgcm91dGUgfSA9IHRyYWNpbmdQcm9wcztcbiAgICAgICAgcmV0dXJuIChwYXJlbnQpPT4oMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkudHJhY2UoX2NvbnN0YW50cy5SZXNvbHZlTWV0YWRhdGFTcGFuLmdlbmVyYXRlTWV0YWRhdGEsIHtcbiAgICAgICAgICAgICAgICBzcGFuTmFtZTogYGdlbmVyYXRlTWV0YWRhdGEgJHtyb3V0ZX1gLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ25leHQucGFnZSc6IHJvdXRlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgKCk9Pm1vZC5nZW5lcmF0ZU1ldGFkYXRhKHByb3BzLCBwYXJlbnQpKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZC5tZXRhZGF0YSB8fCBudWxsO1xufVxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdFN0YXRpY0ltYWdlc0ZpbGVzKG1ldGFkYXRhLCBwcm9wcywgdHlwZSkge1xuICAgIHZhciBfdGhpcztcbiAgICBpZiAoIShtZXRhZGF0YSA9PSBudWxsID8gdm9pZCAwIDogbWV0YWRhdGFbdHlwZV0pKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGljb25Qcm9taXNlcyA9IG1ldGFkYXRhW3R5cGVdLm1hcChhc3luYyAoaW1hZ2VNb2R1bGUpPT4oMCwgX2ludGVyb3BkZWZhdWx0LmludGVyb3BEZWZhdWx0KShhd2FpdCBpbWFnZU1vZHVsZShwcm9wcykpKTtcbiAgICByZXR1cm4gKGljb25Qcm9taXNlcyA9PSBudWxsID8gdm9pZCAwIDogaWNvblByb21pc2VzLmxlbmd0aCkgPiAwID8gKF90aGlzID0gYXdhaXQgUHJvbWlzZS5hbGwoaWNvblByb21pc2VzKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzLmZsYXQoKSA6IHVuZGVmaW5lZDtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVTdGF0aWNNZXRhZGF0YShtb2R1bGVzLCBwcm9wcykge1xuICAgIGNvbnN0IHsgbWV0YWRhdGEgfSA9IG1vZHVsZXM7XG4gICAgaWYgKCFtZXRhZGF0YSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgW2ljb24sIGFwcGxlLCBvcGVuR3JhcGgsIHR3aXR0ZXJdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICBjb2xsZWN0U3RhdGljSW1hZ2VzRmlsZXMobWV0YWRhdGEsIHByb3BzLCAnaWNvbicpLFxuICAgICAgICBjb2xsZWN0U3RhdGljSW1hZ2VzRmlsZXMobWV0YWRhdGEsIHByb3BzLCAnYXBwbGUnKSxcbiAgICAgICAgY29sbGVjdFN0YXRpY0ltYWdlc0ZpbGVzKG1ldGFkYXRhLCBwcm9wcywgJ29wZW5HcmFwaCcpLFxuICAgICAgICBjb2xsZWN0U3RhdGljSW1hZ2VzRmlsZXMobWV0YWRhdGEsIHByb3BzLCAndHdpdHRlcicpXG4gICAgXSk7XG4gICAgY29uc3Qgc3RhdGljTWV0YWRhdGEgPSB7XG4gICAgICAgIGljb24sXG4gICAgICAgIGFwcGxlLFxuICAgICAgICBvcGVuR3JhcGgsXG4gICAgICAgIHR3aXR0ZXIsXG4gICAgICAgIG1hbmlmZXN0OiBtZXRhZGF0YS5tYW5pZmVzdFxuICAgIH07XG4gICAgcmV0dXJuIHN0YXRpY01ldGFkYXRhO1xufVxuLy8gW2xheW91dC5tZXRhZGF0YSwgc3RhdGljIGZpbGVzIG1ldGFkYXRhXSAtPiAuLi4gLT4gW3BhZ2UubWV0YWRhdGEsIHN0YXRpYyBmaWxlcyBtZXRhZGF0YV1cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RNZXRhZGF0YSh7IHRyZWUsIG1ldGFkYXRhSXRlbXMsIGVycm9yTWV0YWRhdGFJdGVtLCBwcm9wcywgcm91dGUsIGVycm9yQ29udmVudGlvbiB9KSB7XG4gICAgbGV0IG1vZDtcbiAgICBsZXQgbW9kVHlwZTtcbiAgICBjb25zdCBoYXNFcnJvckNvbnZlbnRpb25Db21wb25lbnQgPSBCb29sZWFuKGVycm9yQ29udmVudGlvbiAmJiB0cmVlWzJdW2Vycm9yQ29udmVudGlvbl0pO1xuICAgIGlmIChlcnJvckNvbnZlbnRpb24pIHtcbiAgICAgICAgbW9kID0gYXdhaXQgKDAsIF9hcHBkaXJtb2R1bGUuZ2V0Q29tcG9uZW50VHlwZU1vZHVsZSkodHJlZSwgJ2xheW91dCcpO1xuICAgICAgICBtb2RUeXBlID0gZXJyb3JDb252ZW50aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHsgbW9kOiBsYXlvdXRPclBhZ2VNb2QsIG1vZFR5cGU6IGxheW91dE9yUGFnZU1vZFR5cGUgfSA9IGF3YWl0ICgwLCBfYXBwZGlybW9kdWxlLmdldExheW91dE9yUGFnZU1vZHVsZSkodHJlZSk7XG4gICAgICAgIG1vZCA9IGxheW91dE9yUGFnZU1vZDtcbiAgICAgICAgbW9kVHlwZSA9IGxheW91dE9yUGFnZU1vZFR5cGU7XG4gICAgfVxuICAgIGlmIChtb2RUeXBlKSB7XG4gICAgICAgIHJvdXRlICs9IGAvJHttb2RUeXBlfWA7XG4gICAgfVxuICAgIGNvbnN0IHN0YXRpY0ZpbGVzTWV0YWRhdGEgPSBhd2FpdCByZXNvbHZlU3RhdGljTWV0YWRhdGEodHJlZVsyXSwgcHJvcHMpO1xuICAgIGNvbnN0IG1ldGFkYXRhRXhwb3J0ID0gbW9kID8gZ2V0RGVmaW5lZE1ldGFkYXRhKG1vZCwgcHJvcHMsIHtcbiAgICAgICAgcm91dGVcbiAgICB9KSA6IG51bGw7XG4gICAgbWV0YWRhdGFJdGVtcy5wdXNoKFtcbiAgICAgICAgbWV0YWRhdGFFeHBvcnQsXG4gICAgICAgIHN0YXRpY0ZpbGVzTWV0YWRhdGFcbiAgICBdKTtcbiAgICBpZiAoaGFzRXJyb3JDb252ZW50aW9uQ29tcG9uZW50ICYmIGVycm9yQ29udmVudGlvbikge1xuICAgICAgICBjb25zdCBlcnJvck1vZCA9IGF3YWl0ICgwLCBfYXBwZGlybW9kdWxlLmdldENvbXBvbmVudFR5cGVNb2R1bGUpKHRyZWUsIGVycm9yQ29udmVudGlvbik7XG4gICAgICAgIGNvbnN0IGVycm9yTWV0YWRhdGFFeHBvcnQgPSBlcnJvck1vZCA/IGdldERlZmluZWRNZXRhZGF0YShlcnJvck1vZCwgcHJvcHMsIHtcbiAgICAgICAgICAgIHJvdXRlXG4gICAgICAgIH0pIDogbnVsbDtcbiAgICAgICAgZXJyb3JNZXRhZGF0YUl0ZW1bMF0gPSBlcnJvck1ldGFkYXRhRXhwb3J0O1xuICAgICAgICBlcnJvck1ldGFkYXRhSXRlbVsxXSA9IHN0YXRpY0ZpbGVzTWV0YWRhdGE7XG4gICAgfVxufVxuLy8gW2xheW91dC5tZXRhZGF0YSwgc3RhdGljIGZpbGVzIG1ldGFkYXRhXSAtPiAuLi4gLT4gW3BhZ2UubWV0YWRhdGEsIHN0YXRpYyBmaWxlcyBtZXRhZGF0YV1cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RWaWV3cG9ydCh7IHRyZWUsIHZpZXdwb3J0SXRlbXMsIGVycm9yVmlld3BvcnRJdGVtUmVmLCBwcm9wcywgcm91dGUsIGVycm9yQ29udmVudGlvbiB9KSB7XG4gICAgbGV0IG1vZDtcbiAgICBsZXQgbW9kVHlwZTtcbiAgICBjb25zdCBoYXNFcnJvckNvbnZlbnRpb25Db21wb25lbnQgPSBCb29sZWFuKGVycm9yQ29udmVudGlvbiAmJiB0cmVlWzJdW2Vycm9yQ29udmVudGlvbl0pO1xuICAgIGlmIChlcnJvckNvbnZlbnRpb24pIHtcbiAgICAgICAgbW9kID0gYXdhaXQgKDAsIF9hcHBkaXJtb2R1bGUuZ2V0Q29tcG9uZW50VHlwZU1vZHVsZSkodHJlZSwgJ2xheW91dCcpO1xuICAgICAgICBtb2RUeXBlID0gZXJyb3JDb252ZW50aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHsgbW9kOiBsYXlvdXRPclBhZ2VNb2QsIG1vZFR5cGU6IGxheW91dE9yUGFnZU1vZFR5cGUgfSA9IGF3YWl0ICgwLCBfYXBwZGlybW9kdWxlLmdldExheW91dE9yUGFnZU1vZHVsZSkodHJlZSk7XG4gICAgICAgIG1vZCA9IGxheW91dE9yUGFnZU1vZDtcbiAgICAgICAgbW9kVHlwZSA9IGxheW91dE9yUGFnZU1vZFR5cGU7XG4gICAgfVxuICAgIGlmIChtb2RUeXBlKSB7XG4gICAgICAgIHJvdXRlICs9IGAvJHttb2RUeXBlfWA7XG4gICAgfVxuICAgIGNvbnN0IHZpZXdwb3J0RXhwb3J0ID0gbW9kID8gZ2V0RGVmaW5lZFZpZXdwb3J0KG1vZCwgcHJvcHMsIHtcbiAgICAgICAgcm91dGVcbiAgICB9KSA6IG51bGw7XG4gICAgdmlld3BvcnRJdGVtcy5wdXNoKHZpZXdwb3J0RXhwb3J0KTtcbiAgICBpZiAoaGFzRXJyb3JDb252ZW50aW9uQ29tcG9uZW50ICYmIGVycm9yQ29udmVudGlvbikge1xuICAgICAgICBjb25zdCBlcnJvck1vZCA9IGF3YWl0ICgwLCBfYXBwZGlybW9kdWxlLmdldENvbXBvbmVudFR5cGVNb2R1bGUpKHRyZWUsIGVycm9yQ29udmVudGlvbik7XG4gICAgICAgIGNvbnN0IGVycm9yVmlld3BvcnRFeHBvcnQgPSBlcnJvck1vZCA/IGdldERlZmluZWRWaWV3cG9ydChlcnJvck1vZCwgcHJvcHMsIHtcbiAgICAgICAgICAgIHJvdXRlXG4gICAgICAgIH0pIDogbnVsbDtcbiAgICAgICAgZXJyb3JWaWV3cG9ydEl0ZW1SZWYuY3VycmVudCA9IGVycm9yVmlld3BvcnRFeHBvcnQ7XG4gICAgfVxufVxuY29uc3QgcmVzb2x2ZU1ldGFkYXRhSXRlbXMgPSAoMCwgX3JlYWN0LmNhY2hlKShhc3luYyBmdW5jdGlvbih0cmVlLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHBhcmVudFBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IG1ldGFkYXRhSXRlbXMgPSBbXTtcbiAgICBjb25zdCBlcnJvck1ldGFkYXRhSXRlbSA9IFtcbiAgICAgICAgbnVsbCxcbiAgICAgICAgbnVsbFxuICAgIF07XG4gICAgY29uc3QgdHJlZVByZWZpeCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gcmVzb2x2ZU1ldGFkYXRhSXRlbXNJbXBsKG1ldGFkYXRhSXRlbXMsIHRyZWUsIHRyZWVQcmVmaXgsIHBhcmVudFBhcmFtcywgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGVycm9yTWV0YWRhdGFJdGVtLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKTtcbn0pO1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZU1ldGFkYXRhSXRlbXNJbXBsKG1ldGFkYXRhSXRlbXMsIHRyZWUsIC8qKiBQcm92aWRlZCB0cmVlIGNhbiBiZSBuZXN0ZWQgc3VidHJlZSwgdGhpcyBhcmd1bWVudCBzYXlzIHdoYXQgaXMgdGhlIHBhdGggb2Ygc3VjaCBzdWJ0cmVlICovIHRyZWVQcmVmaXgsIHBhcmVudFBhcmFtcywgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGVycm9yTWV0YWRhdGFJdGVtLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKSB7XG4gICAgY29uc3QgW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVzLCB7IHBhZ2UgfV0gPSB0cmVlO1xuICAgIGNvbnN0IGN1cnJlbnRUcmVlUHJlZml4ID0gdHJlZVByZWZpeCAmJiB0cmVlUHJlZml4Lmxlbmd0aCA/IFtcbiAgICAgICAgLi4udHJlZVByZWZpeCxcbiAgICAgICAgc2VnbWVudFxuICAgIF0gOiBbXG4gICAgICAgIHNlZ21lbnRcbiAgICBdO1xuICAgIGNvbnN0IGlzUGFnZSA9IHR5cGVvZiBwYWdlICE9PSAndW5kZWZpbmVkJztcbiAgICAvLyBIYW5kbGUgZHluYW1pYyBzZWdtZW50IHBhcmFtcy5cbiAgICBjb25zdCBzZWdtZW50UGFyYW0gPSBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudChzZWdtZW50KTtcbiAgICAvKipcbiAgICogQ3JlYXRlIG9iamVjdCBob2xkaW5nIHRoZSBwYXJlbnQgcGFyYW1zIGFuZCBjdXJyZW50IHBhcmFtc1xuICAgKi8gbGV0IGN1cnJlbnRQYXJhbXMgPSBwYXJlbnRQYXJhbXM7XG4gICAgaWYgKHNlZ21lbnRQYXJhbSAmJiBzZWdtZW50UGFyYW0udmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgY3VycmVudFBhcmFtcyA9IHtcbiAgICAgICAgICAgIC4uLnBhcmVudFBhcmFtcyxcbiAgICAgICAgICAgIFtzZWdtZW50UGFyYW0ucGFyYW1dOiBzZWdtZW50UGFyYW0udmFsdWVcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgcGFyYW1zID0gKDAsIF9wYXJhbXMuY3JlYXRlU2VydmVyUGFyYW1zRm9yTWV0YWRhdGEpKGN1cnJlbnRQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgbGV0IGxheWVyUHJvcHM7XG4gICAgaWYgKGlzUGFnZSkge1xuICAgICAgICBsYXllclByb3BzID0ge1xuICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgc2VhcmNoUGFyYW1zXG4gICAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbGF5ZXJQcm9wcyA9IHtcbiAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICB9O1xuICAgIH1cbiAgICBhd2FpdCBjb2xsZWN0TWV0YWRhdGEoe1xuICAgICAgICB0cmVlLFxuICAgICAgICBtZXRhZGF0YUl0ZW1zLFxuICAgICAgICBlcnJvck1ldGFkYXRhSXRlbSxcbiAgICAgICAgZXJyb3JDb252ZW50aW9uLFxuICAgICAgICBwcm9wczogbGF5ZXJQcm9wcyxcbiAgICAgICAgcm91dGU6IGN1cnJlbnRUcmVlUHJlZml4Ly8gX19QQUdFX18gc2hvdWxkbid0IGJlIHNob3duIGluIGEgcm91dGVcbiAgICAgICAgLmZpbHRlcigocyk9PnMgIT09IF9zZWdtZW50LlBBR0VfU0VHTUVOVF9LRVkpLmpvaW4oJy8nKVxuICAgIH0pO1xuICAgIGZvcihjb25zdCBrZXkgaW4gcGFyYWxsZWxSb3V0ZXMpe1xuICAgICAgICBjb25zdCBjaGlsZFRyZWUgPSBwYXJhbGxlbFJvdXRlc1trZXldO1xuICAgICAgICBhd2FpdCByZXNvbHZlTWV0YWRhdGFJdGVtc0ltcGwobWV0YWRhdGFJdGVtcywgY2hpbGRUcmVlLCBjdXJyZW50VHJlZVByZWZpeCwgY3VycmVudFBhcmFtcywgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGVycm9yTWV0YWRhdGFJdGVtLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKTtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5rZXlzKHBhcmFsbGVsUm91dGVzKS5sZW5ndGggPT09IDAgJiYgZXJyb3JDb252ZW50aW9uKSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBwYXJhbGxlbCByb3V0ZXMsIHBsYWNlIGVycm9yIG1ldGFkYXRhIGFzIHRoZSBsYXN0IGl0ZW0uXG4gICAgICAgIC8vIGUuZy4gbGF5b3V0IC0+IGxheW91dCAtPiBub3QtZm91bmRcbiAgICAgICAgbWV0YWRhdGFJdGVtcy5wdXNoKGVycm9yTWV0YWRhdGFJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ldGFkYXRhSXRlbXM7XG59XG5jb25zdCByZXNvbHZlVmlld3BvcnRJdGVtcyA9ICgwLCBfcmVhY3QuY2FjaGUpKGFzeW5jIGZ1bmN0aW9uKHRyZWUsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlKSB7XG4gICAgY29uc3QgcGFyZW50UGFyYW1zID0ge307XG4gICAgY29uc3Qgdmlld3BvcnRJdGVtcyA9IFtdO1xuICAgIGNvbnN0IGVycm9yVmlld3BvcnRJdGVtUmVmID0ge1xuICAgICAgICBjdXJyZW50OiBudWxsXG4gICAgfTtcbiAgICBjb25zdCB0cmVlUHJlZml4ID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXNvbHZlVmlld3BvcnRJdGVtc0ltcGwodmlld3BvcnRJdGVtcywgdHJlZSwgdHJlZVByZWZpeCwgcGFyZW50UGFyYW1zLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZXJyb3JWaWV3cG9ydEl0ZW1SZWYsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpO1xufSk7XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlVmlld3BvcnRJdGVtc0ltcGwodmlld3BvcnRJdGVtcywgdHJlZSwgLyoqIFByb3ZpZGVkIHRyZWUgY2FuIGJlIG5lc3RlZCBzdWJ0cmVlLCB0aGlzIGFyZ3VtZW50IHNheXMgd2hhdCBpcyB0aGUgcGF0aCBvZiBzdWNoIHN1YnRyZWUgKi8gdHJlZVByZWZpeCwgcGFyZW50UGFyYW1zLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZXJyb3JWaWV3cG9ydEl0ZW1SZWYsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCBbc2VnbWVudCwgcGFyYWxsZWxSb3V0ZXMsIHsgcGFnZSB9XSA9IHRyZWU7XG4gICAgY29uc3QgY3VycmVudFRyZWVQcmVmaXggPSB0cmVlUHJlZml4ICYmIHRyZWVQcmVmaXgubGVuZ3RoID8gW1xuICAgICAgICAuLi50cmVlUHJlZml4LFxuICAgICAgICBzZWdtZW50XG4gICAgXSA6IFtcbiAgICAgICAgc2VnbWVudFxuICAgIF07XG4gICAgY29uc3QgaXNQYWdlID0gdHlwZW9mIHBhZ2UgIT09ICd1bmRlZmluZWQnO1xuICAgIC8vIEhhbmRsZSBkeW5hbWljIHNlZ21lbnQgcGFyYW1zLlxuICAgIGNvbnN0IHNlZ21lbnRQYXJhbSA9IGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50KHNlZ21lbnQpO1xuICAgIC8qKlxuICAgKiBDcmVhdGUgb2JqZWN0IGhvbGRpbmcgdGhlIHBhcmVudCBwYXJhbXMgYW5kIGN1cnJlbnQgcGFyYW1zXG4gICAqLyBsZXQgY3VycmVudFBhcmFtcyA9IHBhcmVudFBhcmFtcztcbiAgICBpZiAoc2VnbWVudFBhcmFtICYmIHNlZ21lbnRQYXJhbS52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICBjdXJyZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgLi4ucGFyZW50UGFyYW1zLFxuICAgICAgICAgICAgW3NlZ21lbnRQYXJhbS5wYXJhbV06IHNlZ21lbnRQYXJhbS52YWx1ZVxuICAgICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBwYXJhbXMgPSAoMCwgX3BhcmFtcy5jcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YSkoY3VycmVudFBhcmFtcywgd29ya1N0b3JlKTtcbiAgICBsZXQgbGF5ZXJQcm9wcztcbiAgICBpZiAoaXNQYWdlKSB7XG4gICAgICAgIGxheWVyUHJvcHMgPSB7XG4gICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICBzZWFyY2hQYXJhbXNcbiAgICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBsYXllclByb3BzID0ge1xuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgIH07XG4gICAgfVxuICAgIGF3YWl0IGNvbGxlY3RWaWV3cG9ydCh7XG4gICAgICAgIHRyZWUsXG4gICAgICAgIHZpZXdwb3J0SXRlbXMsXG4gICAgICAgIGVycm9yVmlld3BvcnRJdGVtUmVmLFxuICAgICAgICBlcnJvckNvbnZlbnRpb24sXG4gICAgICAgIHByb3BzOiBsYXllclByb3BzLFxuICAgICAgICByb3V0ZTogY3VycmVudFRyZWVQcmVmaXgvLyBfX1BBR0VfXyBzaG91bGRuJ3QgYmUgc2hvd24gaW4gYSByb3V0ZVxuICAgICAgICAuZmlsdGVyKChzKT0+cyAhPT0gX3NlZ21lbnQuUEFHRV9TRUdNRU5UX0tFWSkuam9pbignLycpXG4gICAgfSk7XG4gICAgZm9yKGNvbnN0IGtleSBpbiBwYXJhbGxlbFJvdXRlcyl7XG4gICAgICAgIGNvbnN0IGNoaWxkVHJlZSA9IHBhcmFsbGVsUm91dGVzW2tleV07XG4gICAgICAgIGF3YWl0IHJlc29sdmVWaWV3cG9ydEl0ZW1zSW1wbCh2aWV3cG9ydEl0ZW1zLCBjaGlsZFRyZWUsIGN1cnJlbnRUcmVlUHJlZml4LCBjdXJyZW50UGFyYW1zLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZXJyb3JWaWV3cG9ydEl0ZW1SZWYsIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpO1xuICAgIH1cbiAgICBpZiAoT2JqZWN0LmtleXMocGFyYWxsZWxSb3V0ZXMpLmxlbmd0aCA9PT0gMCAmJiBlcnJvckNvbnZlbnRpb24pIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgYXJlIG5vIHBhcmFsbGVsIHJvdXRlcywgcGxhY2UgZXJyb3IgbWV0YWRhdGEgYXMgdGhlIGxhc3QgaXRlbS5cbiAgICAgICAgLy8gZS5nLiBsYXlvdXQgLT4gbGF5b3V0IC0+IG5vdC1mb3VuZFxuICAgICAgICB2aWV3cG9ydEl0ZW1zLnB1c2goZXJyb3JWaWV3cG9ydEl0ZW1SZWYuY3VycmVudCk7XG4gICAgfVxuICAgIHJldHVybiB2aWV3cG9ydEl0ZW1zO1xufVxuY29uc3QgaXNUaXRsZVRydXRoeSA9ICh0aXRsZSk9PiEhKHRpdGxlID09IG51bGwgPyB2b2lkIDAgOiB0aXRsZS5hYnNvbHV0ZSk7XG5jb25zdCBoYXNUaXRsZSA9IChtZXRhZGF0YSk9PmlzVGl0bGVUcnV0aHkobWV0YWRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IG1ldGFkYXRhLnRpdGxlKTtcbmZ1bmN0aW9uIGluaGVyaXRGcm9tTWV0YWRhdGEodGFyZ2V0LCBtZXRhZGF0YSkge1xuICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgaWYgKCFoYXNUaXRsZSh0YXJnZXQpICYmIGhhc1RpdGxlKG1ldGFkYXRhKSkge1xuICAgICAgICAgICAgdGFyZ2V0LnRpdGxlID0gbWV0YWRhdGEudGl0bGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0YXJnZXQuZGVzY3JpcHRpb24gJiYgbWV0YWRhdGEuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRhcmdldC5kZXNjcmlwdGlvbiA9IG1ldGFkYXRhLmRlc2NyaXB0aW9uO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuY29uc3QgY29tbW9uT2dLZXlzID0gW1xuICAgICd0aXRsZScsXG4gICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAnaW1hZ2VzJ1xuXTtcbmZ1bmN0aW9uIHBvc3RQcm9jZXNzTWV0YWRhdGEobWV0YWRhdGEsIGZhdmljb24sIHRpdGxlVGVtcGxhdGVzLCBtZXRhZGF0YUNvbnRleHQpIHtcbiAgICBjb25zdCB7IG9wZW5HcmFwaCwgdHdpdHRlciB9ID0gbWV0YWRhdGE7XG4gICAgaWYgKG9wZW5HcmFwaCkge1xuICAgICAgICAvLyBJZiB0aGVyZSdzIG9wZW5HcmFwaCBpbmZvcm1hdGlvbiBidXQgbm90IGNvbmZpZ3VyZWQgaW4gdHdpdHRlcixcbiAgICAgICAgLy8gaW5oZXJpdCB0aGVtIGZyb20gb3BlbkdyYXBoIG1ldGFkYXRhLlxuICAgICAgICBsZXQgYXV0b0ZpbGxQcm9wcyA9IHt9O1xuICAgICAgICBjb25zdCBoYXNUd1RpdGxlID0gaGFzVGl0bGUodHdpdHRlcik7XG4gICAgICAgIGNvbnN0IGhhc1R3RGVzY3JpcHRpb24gPSB0d2l0dGVyID09IG51bGwgPyB2b2lkIDAgOiB0d2l0dGVyLmRlc2NyaXB0aW9uO1xuICAgICAgICBjb25zdCBoYXNUd0ltYWdlcyA9IEJvb2xlYW4oKHR3aXR0ZXIgPT0gbnVsbCA/IHZvaWQgMCA6IHR3aXR0ZXIuaGFzT3duUHJvcGVydHkoJ2ltYWdlcycpKSAmJiB0d2l0dGVyLmltYWdlcyk7XG4gICAgICAgIGlmICghaGFzVHdUaXRsZSkge1xuICAgICAgICAgICAgaWYgKGlzVGl0bGVUcnV0aHkob3BlbkdyYXBoLnRpdGxlKSkge1xuICAgICAgICAgICAgICAgIGF1dG9GaWxsUHJvcHMudGl0bGUgPSBvcGVuR3JhcGgudGl0bGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnRpdGxlICYmIGlzVGl0bGVUcnV0aHkobWV0YWRhdGEudGl0bGUpKSB7XG4gICAgICAgICAgICAgICAgYXV0b0ZpbGxQcm9wcy50aXRsZSA9IG1ldGFkYXRhLnRpdGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghaGFzVHdEZXNjcmlwdGlvbikgYXV0b0ZpbGxQcm9wcy5kZXNjcmlwdGlvbiA9IG9wZW5HcmFwaC5kZXNjcmlwdGlvbiB8fCBtZXRhZGF0YS5kZXNjcmlwdGlvbiB8fCB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghaGFzVHdJbWFnZXMpIGF1dG9GaWxsUHJvcHMuaW1hZ2VzID0gb3BlbkdyYXBoLmltYWdlcztcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKGF1dG9GaWxsUHJvcHMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRpYWxUd2l0dGVyID0gKDAsIF9yZXNvbHZlb3BlbmdyYXBoLnJlc29sdmVUd2l0dGVyKShhdXRvRmlsbFByb3BzLCBtZXRhZGF0YS5tZXRhZGF0YUJhc2UsIG1ldGFkYXRhQ29udGV4dCwgdGl0bGVUZW1wbGF0ZXMudHdpdHRlcik7XG4gICAgICAgICAgICBpZiAobWV0YWRhdGEudHdpdHRlcikge1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhLnR3aXR0ZXIgPSBPYmplY3QuYXNzaWduKHt9LCBtZXRhZGF0YS50d2l0dGVyLCB7XG4gICAgICAgICAgICAgICAgICAgIC4uLiFoYXNUd1RpdGxlICYmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBwYXJ0aWFsVHdpdHRlciA9PSBudWxsID8gdm9pZCAwIDogcGFydGlhbFR3aXR0ZXIudGl0bGVcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgLi4uIWhhc1R3RGVzY3JpcHRpb24gJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHBhcnRpYWxUd2l0dGVyID09IG51bGwgPyB2b2lkIDAgOiBwYXJ0aWFsVHdpdHRlci5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAuLi4haGFzVHdJbWFnZXMgJiYge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VzOiBwYXJ0aWFsVHdpdHRlciA9PSBudWxsID8gdm9pZCAwIDogcGFydGlhbFR3aXR0ZXIuaW1hZ2VzXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGEudHdpdHRlciA9IHBhcnRpYWxUd2l0dGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIElmIHRoZXJlJ3Mgbm8gdGl0bGUgYW5kIGRlc2NyaXB0aW9uIGNvbmZpZ3VyZWQgaW4gb3BlbkdyYXBoIG9yIHR3aXR0ZXIsXG4gICAgLy8gdXNlIHRoZSB0aXRsZSBhbmQgZGVzY3JpcHRpb24gZnJvbSBtZXRhZGF0YS5cbiAgICBpbmhlcml0RnJvbU1ldGFkYXRhKG9wZW5HcmFwaCwgbWV0YWRhdGEpO1xuICAgIGluaGVyaXRGcm9tTWV0YWRhdGEodHdpdHRlciwgbWV0YWRhdGEpO1xuICAgIGlmIChmYXZpY29uKSB7XG4gICAgICAgIGlmICghbWV0YWRhdGEuaWNvbnMpIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLmljb25zID0ge1xuICAgICAgICAgICAgICAgIGljb246IFtdLFxuICAgICAgICAgICAgICAgIGFwcGxlOiBbXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBtZXRhZGF0YS5pY29ucy5pY29uLnVuc2hpZnQoZmF2aWNvbik7XG4gICAgfVxuICAgIHJldHVybiBtZXRhZGF0YTtcbn1cbmZ1bmN0aW9uIHByZXJlbmRlck1ldGFkYXRhKG1ldGFkYXRhSXRlbXMpIHtcbiAgICAvLyBJZiB0aGUgaW5kZXggaXMgYSBmdW5jdGlvbiB0aGVuIGl0IGlzIGEgcmVzb2x2ZXIgYW5kIHRoZSBuZXh0IHNsb3RcbiAgICAvLyBpcyB0aGUgY29ycmVzcG9uZGluZyByZXN1bHQuIElmIHRoZSBpbmRleCBpcyBub3QgYSBmdW5jdGlvbiBpdCBpcyB0aGUgcmVzdWx0XG4gICAgLy8gaXRzZWxmLlxuICAgIGNvbnN0IHJlc29sdmVyc0FuZFJlc3VsdHMgPSBbXTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgbWV0YWRhdGFJdGVtcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhRXhwb3J0ID0gbWV0YWRhdGFJdGVtc1tpXVswXTtcbiAgICAgICAgZ2V0UmVzdWx0KHJlc29sdmVyc0FuZFJlc3VsdHMsIG1ldGFkYXRhRXhwb3J0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVyc0FuZFJlc3VsdHM7XG59XG5mdW5jdGlvbiBwcmVyZW5kZXJWaWV3cG9ydCh2aWV3cG9ydEl0ZW1zKSB7XG4gICAgLy8gSWYgdGhlIGluZGV4IGlzIGEgZnVuY3Rpb24gdGhlbiBpdCBpcyBhIHJlc29sdmVyIGFuZCB0aGUgbmV4dCBzbG90XG4gICAgLy8gaXMgdGhlIGNvcnJlc3BvbmRpbmcgcmVzdWx0LiBJZiB0aGUgaW5kZXggaXMgbm90IGEgZnVuY3Rpb24gaXQgaXMgdGhlIHJlc3VsdFxuICAgIC8vIGl0c2VsZi5cbiAgICBjb25zdCByZXNvbHZlcnNBbmRSZXN1bHRzID0gW107XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IHZpZXdwb3J0SXRlbXMubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCB2aWV3cG9ydEV4cG9ydCA9IHZpZXdwb3J0SXRlbXNbaV07XG4gICAgICAgIGdldFJlc3VsdChyZXNvbHZlcnNBbmRSZXN1bHRzLCB2aWV3cG9ydEV4cG9ydCk7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlcnNBbmRSZXN1bHRzO1xufVxuZnVuY3Rpb24gZ2V0UmVzdWx0KHJlc29sdmVyc0FuZFJlc3VsdHMsIGV4cG9ydEZvclJlc3VsdCkge1xuICAgIGlmICh0eXBlb2YgZXhwb3J0Rm9yUmVzdWx0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGV4cG9ydEZvclJlc3VsdChuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PnJlc29sdmVyc0FuZFJlc3VsdHMucHVzaChyZXNvbHZlKSkpO1xuICAgICAgICByZXNvbHZlcnNBbmRSZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgIC8vIHNpbmNlIHdlIGVhZ2VyIGV4ZWN1dGUgZ2VuZXJhdGVNZXRhZGF0YSBhbmRcbiAgICAgICAgICAgIC8vIHRoZXkgY2FuIHJlamVjdCBhdCBhbnl0aW1lIHdlIG5lZWQgdG8gZW5zdXJlXG4gICAgICAgICAgICAvLyB3ZSBhdHRhY2ggdGhlIGNhdGNoIGhhbmRsZXIgcmlnaHQgYXdheSB0b1xuICAgICAgICAgICAgLy8gcHJldmVudCB1bmhhbmRsZWQgcmVqZWN0aW9ucyBjcmFzaGluZyB0aGUgcHJvY2Vzc1xuICAgICAgICAgICAgcmVzdWx0LmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgX19uZXh0RXJyb3I6IGVyclxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGV4cG9ydEZvclJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmVzb2x2ZXJzQW5kUmVzdWx0cy5wdXNoKGV4cG9ydEZvclJlc3VsdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZXJzQW5kUmVzdWx0cy5wdXNoKG51bGwpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHJlc29sdmVQZW5kaW5nUmVzdWx0KHBhcmVudFJlc3VsdCwgcmVzb2x2ZVBhcmVudFJlc3VsdCkge1xuICAgIC8vIEluIGRldiB3ZSBjbG9uZSBhbmQgZnJlZXplIHRvIHByZXZlbnQgcmVseWluZyBvbiBtdXRhdGluZyByZXNvbHZlZE1ldGFkYXRhIGRpcmVjdGx5LlxuICAgIC8vIEluIHByb2Qgd2UganVzdCBwYXNzIHJlc29sdmVkTWV0YWRhdGEgdGhyb3VnaCB3aXRob3V0IGFueSBjb3B5aW5nLlxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0tIERlZXBSZWFkb25seTxUPiBpcyBieSBkZWZpbml0aW9uIG5vdCBhc3NpZ25hYmxlIHRvIFRcbiAgICAgICAgLy8gSW5zdGVhZCwgd2Ugc2hvdWxkIG9ubHkgYWNjZXB0IERlZXBSZWFkb25seTxSZXNvbHZlZFR5cGU+XG4gICAgICAgIHBhcmVudFJlc3VsdCA9IHJlcXVpcmUoJy4uLy4uL3NoYXJlZC9saWIvZGVlcC1mcmVlemUnKS5kZWVwRnJlZXplKHJlcXVpcmUoJy4vY2xvbmUtbWV0YWRhdGEnKS5jbG9uZU1ldGFkYXRhKHBhcmVudFJlc3VsdCkpO1xuICAgIH1cbiAgICByZXNvbHZlUGFyZW50UmVzdWx0KHBhcmVudFJlc3VsdCk7XG59XG5hc3luYyBmdW5jdGlvbiBhY2N1bXVsYXRlTWV0YWRhdGEocm91dGUsIG1ldGFkYXRhSXRlbXMsIHBhdGhuYW1lLCBtZXRhZGF0YUNvbnRleHQpIHtcbiAgICBsZXQgcmVzb2x2ZWRNZXRhZGF0YSA9ICgwLCBfZGVmYXVsdG1ldGFkYXRhLmNyZWF0ZURlZmF1bHRNZXRhZGF0YSkoKTtcbiAgICBsZXQgdGl0bGVUZW1wbGF0ZXMgPSB7XG4gICAgICAgIHRpdGxlOiBudWxsLFxuICAgICAgICB0d2l0dGVyOiBudWxsLFxuICAgICAgICBvcGVuR3JhcGg6IG51bGxcbiAgICB9O1xuICAgIGNvbnN0IGJ1aWxkU3RhdGUgPSB7XG4gICAgICAgIHdhcm5pbmdzOiBuZXcgU2V0KClcbiAgICB9O1xuICAgIGxldCBmYXZpY29uO1xuICAgIC8vIENvbGxlY3QgdGhlIHN0YXRpYyBpY29ucyBpbiB0aGUgbW9zdCBsZWFmIG5vZGUsXG4gICAgLy8gc2luY2Ugd2UgZG9uJ3QgY29sbGVjdCBhbGwgdGhlIHN0YXRpYyBtZXRhZGF0YSBpY29ucyBpbiB0aGUgcGFyZW50IHNlZ21lbnRzLlxuICAgIGNvbnN0IGxlYWZTZWdtZW50U3RhdGljSWNvbnMgPSB7XG4gICAgICAgIGljb246IFtdLFxuICAgICAgICBhcHBsZTogW11cbiAgICB9O1xuICAgIGNvbnN0IHJlc29sdmVyc0FuZFJlc3VsdHMgPSBwcmVyZW5kZXJNZXRhZGF0YShtZXRhZGF0YUl0ZW1zKTtcbiAgICBsZXQgcmVzdWx0SW5kZXggPSAwO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBtZXRhZGF0YUl0ZW1zLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdmFyIF9zdGF0aWNGaWxlc01ldGFkYXRhX2ljb247XG4gICAgICAgIGNvbnN0IHN0YXRpY0ZpbGVzTWV0YWRhdGEgPSBtZXRhZGF0YUl0ZW1zW2ldWzFdO1xuICAgICAgICAvLyBUcmVhdCBmYXZpY29uIGFzIHNwZWNpYWwgY2FzZSwgaXQgc2hvdWxkIGJlIHRoZSBmaXJzdCBpY29uIGluIHRoZSBsaXN0XG4gICAgICAgIC8vIGkgPD0gMSByZXByZXNlbnRzIHJvb3QgbGF5b3V0LCBhbmQgaWYgY3VycmVudCBwYWdlIGlzIGFsc28gYXQgcm9vdFxuICAgICAgICBpZiAoaSA8PSAxICYmIGlzRmF2aWNvbihzdGF0aWNGaWxlc01ldGFkYXRhID09IG51bGwgPyB2b2lkIDAgOiAoX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvbiA9IHN0YXRpY0ZpbGVzTWV0YWRhdGEuaWNvbikgPT0gbnVsbCA/IHZvaWQgMCA6IF9zdGF0aWNGaWxlc01ldGFkYXRhX2ljb25bMF0pKSB7XG4gICAgICAgICAgICB2YXIgX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvbjE7XG4gICAgICAgICAgICBjb25zdCBpY29uTW9kID0gc3RhdGljRmlsZXNNZXRhZGF0YSA9PSBudWxsID8gdm9pZCAwIDogKF9zdGF0aWNGaWxlc01ldGFkYXRhX2ljb24xID0gc3RhdGljRmlsZXNNZXRhZGF0YS5pY29uKSA9PSBudWxsID8gdm9pZCAwIDogX3N0YXRpY0ZpbGVzTWV0YWRhdGFfaWNvbjEuc2hpZnQoKTtcbiAgICAgICAgICAgIGlmIChpID09PSAwKSBmYXZpY29uID0gaWNvbk1vZDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGVuZGluZ01ldGFkYXRhID0gcmVzb2x2ZXJzQW5kUmVzdWx0c1tyZXN1bHRJbmRleCsrXTtcbiAgICAgICAgaWYgKHR5cGVvZiBwZW5kaW5nTWV0YWRhdGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgbWV0YWRhdGEgaXRlbSBoYWQgYSBgZ2VuZXJhdGVNZXRhZGF0YWAgYW5kXG4gICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIHByb3ZpZGUgdGhlIGN1cnJlbnRseSByZXNvbHZlZCBtZXRhZGF0YVxuICAgICAgICAgICAgLy8gdG8gaXQgYmVmb3JlIHdlIGNvbnRpbnVlO1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZVBhcmVudE1ldGFkYXRhID0gcGVuZGluZ01ldGFkYXRhO1xuICAgICAgICAgICAgLy8gd2Uga25vdyB0aGF0IHRoZSBuZXh0IGl0ZW0gaXMgYSByZXN1bHQgaWYgdGhpcyBpdGVtXG4gICAgICAgICAgICAvLyB3YXMgYSByZXNvbHZlclxuICAgICAgICAgICAgcGVuZGluZ01ldGFkYXRhID0gcmVzb2x2ZXJzQW5kUmVzdWx0c1tyZXN1bHRJbmRleCsrXTtcbiAgICAgICAgICAgIHJlc29sdmVQZW5kaW5nUmVzdWx0KHJlc29sdmVkTWV0YWRhdGEsIHJlc29sdmVQYXJlbnRNZXRhZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBpdGVtIHdhcyBlaXRoZXIgbnVsbCBvciBhIHN0YXRpYyBleHBvcnRcbiAgICAgICAgbGV0IG1ldGFkYXRhO1xuICAgICAgICBpZiAoaXNQcm9taXNlTGlrZShwZW5kaW5nTWV0YWRhdGEpKSB7XG4gICAgICAgICAgICBtZXRhZGF0YSA9IGF3YWl0IHBlbmRpbmdNZXRhZGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1ldGFkYXRhID0gcGVuZGluZ01ldGFkYXRhO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmVkTWV0YWRhdGEgPSBhd2FpdCBtZXJnZU1ldGFkYXRhKHJvdXRlLCBwYXRobmFtZSwge1xuICAgICAgICAgICAgdGFyZ2V0OiByZXNvbHZlZE1ldGFkYXRhLFxuICAgICAgICAgICAgc291cmNlOiBtZXRhZGF0YSxcbiAgICAgICAgICAgIG1ldGFkYXRhQ29udGV4dCxcbiAgICAgICAgICAgIHN0YXRpY0ZpbGVzTWV0YWRhdGEsXG4gICAgICAgICAgICB0aXRsZVRlbXBsYXRlcyxcbiAgICAgICAgICAgIGJ1aWxkU3RhdGUsXG4gICAgICAgICAgICBsZWFmU2VnbWVudFN0YXRpY0ljb25zXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBJZiB0aGUgbGF5b3V0IGlzIHRoZSBzYW1lIGxheWVyIHdpdGggcGFnZSwgc2tpcCB0aGUgbGVhZiBsYXlvdXQgYW5kIGxlYWYgcGFnZVxuICAgICAgICAvLyBUaGUgbGVhZiBsYXlvdXQgYW5kIHBhZ2UgYXJlIHRoZSBsYXN0IHR3byBpdGVtc1xuICAgICAgICBpZiAoaSA8IG1ldGFkYXRhSXRlbXMubGVuZ3RoIC0gMikge1xuICAgICAgICAgICAgdmFyIF9yZXNvbHZlZE1ldGFkYXRhX3RpdGxlLCBfcmVzb2x2ZWRNZXRhZGF0YV9vcGVuR3JhcGgsIF9yZXNvbHZlZE1ldGFkYXRhX3R3aXR0ZXI7XG4gICAgICAgICAgICB0aXRsZVRlbXBsYXRlcyA9IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogKChfcmVzb2x2ZWRNZXRhZGF0YV90aXRsZSA9IHJlc29sdmVkTWV0YWRhdGEudGl0bGUpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzb2x2ZWRNZXRhZGF0YV90aXRsZS50ZW1wbGF0ZSkgfHwgbnVsbCxcbiAgICAgICAgICAgICAgICBvcGVuR3JhcGg6ICgoX3Jlc29sdmVkTWV0YWRhdGFfb3BlbkdyYXBoID0gcmVzb2x2ZWRNZXRhZGF0YS5vcGVuR3JhcGgpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzb2x2ZWRNZXRhZGF0YV9vcGVuR3JhcGgudGl0bGUudGVtcGxhdGUpIHx8IG51bGwsXG4gICAgICAgICAgICAgICAgdHdpdHRlcjogKChfcmVzb2x2ZWRNZXRhZGF0YV90d2l0dGVyID0gcmVzb2x2ZWRNZXRhZGF0YS50d2l0dGVyKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc29sdmVkTWV0YWRhdGFfdHdpdHRlci50aXRsZS50ZW1wbGF0ZSkgfHwgbnVsbFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAobGVhZlNlZ21lbnRTdGF0aWNJY29ucy5pY29uLmxlbmd0aCA+IDAgfHwgbGVhZlNlZ21lbnRTdGF0aWNJY29ucy5hcHBsZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghcmVzb2x2ZWRNZXRhZGF0YS5pY29ucykge1xuICAgICAgICAgICAgcmVzb2x2ZWRNZXRhZGF0YS5pY29ucyA9IHtcbiAgICAgICAgICAgICAgICBpY29uOiBbXSxcbiAgICAgICAgICAgICAgICBhcHBsZTogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAobGVhZlNlZ21lbnRTdGF0aWNJY29ucy5pY29uLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlZE1ldGFkYXRhLmljb25zLmljb24udW5zaGlmdCguLi5sZWFmU2VnbWVudFN0YXRpY0ljb25zLmljb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlYWZTZWdtZW50U3RhdGljSWNvbnMuYXBwbGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlc29sdmVkTWV0YWRhdGEuaWNvbnMuYXBwbGUudW5zaGlmdCguLi5sZWFmU2VnbWVudFN0YXRpY0ljb25zLmFwcGxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBPbmx5IGxvZyB3YXJuaW5ncyBpZiB0aGVyZSBhcmUgYW55LCBhbmQgb25seSBvbmNlIGFmdGVyIHRoZSBtZXRhZGF0YSByZXNvbHZpbmcgcHJvY2VzcyBpcyBmaW5pc2hlZFxuICAgIGlmIChidWlsZFN0YXRlLndhcm5pbmdzLnNpemUgPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3Qgd2FybmluZyBvZiBidWlsZFN0YXRlLndhcm5pbmdzKXtcbiAgICAgICAgICAgIF9sb2cud2Fybih3YXJuaW5nKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcG9zdFByb2Nlc3NNZXRhZGF0YShyZXNvbHZlZE1ldGFkYXRhLCBmYXZpY29uLCB0aXRsZVRlbXBsYXRlcywgbWV0YWRhdGFDb250ZXh0KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGFjY3VtdWxhdGVWaWV3cG9ydCh2aWV3cG9ydEl0ZW1zKSB7XG4gICAgY29uc3QgcmVzb2x2ZWRWaWV3cG9ydCA9ICgwLCBfZGVmYXVsdG1ldGFkYXRhLmNyZWF0ZURlZmF1bHRWaWV3cG9ydCkoKTtcbiAgICBjb25zdCByZXNvbHZlcnNBbmRSZXN1bHRzID0gcHJlcmVuZGVyVmlld3BvcnQodmlld3BvcnRJdGVtcyk7XG4gICAgbGV0IGkgPSAwO1xuICAgIHdoaWxlKGkgPCByZXNvbHZlcnNBbmRSZXN1bHRzLmxlbmd0aCl7XG4gICAgICAgIGxldCBwZW5kaW5nVmlld3BvcnQgPSByZXNvbHZlcnNBbmRSZXN1bHRzW2krK107XG4gICAgICAgIGlmICh0eXBlb2YgcGVuZGluZ1ZpZXdwb3J0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAvLyB0aGlzIHZpZXdwb3J0IGl0ZW0gaGFkIGEgYGdlbmVyYXRlVmlld3BvcnRgIGFuZFxuICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBwcm92aWRlIHRoZSBjdXJyZW50bHkgcmVzb2x2ZWQgdmlld3BvcnRcbiAgICAgICAgICAgIC8vIHRvIGl0IGJlZm9yZSB3ZSBjb250aW51ZTtcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVQYXJlbnRWaWV3cG9ydCA9IHBlbmRpbmdWaWV3cG9ydDtcbiAgICAgICAgICAgIC8vIHdlIGtub3cgdGhhdCB0aGUgbmV4dCBpdGVtIGlzIGEgcmVzdWx0IGlmIHRoaXMgaXRlbVxuICAgICAgICAgICAgLy8gd2FzIGEgcmVzb2x2ZXJcbiAgICAgICAgICAgIHBlbmRpbmdWaWV3cG9ydCA9IHJlc29sdmVyc0FuZFJlc3VsdHNbaSsrXTtcbiAgICAgICAgICAgIHJlc29sdmVQZW5kaW5nUmVzdWx0KHJlc29sdmVkVmlld3BvcnQsIHJlc29sdmVQYXJlbnRWaWV3cG9ydCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBpdGVtIHdhcyBlaXRoZXIgbnVsbCBvciBhIHN0YXRpYyBleHBvcnRcbiAgICAgICAgbGV0IHZpZXdwb3J0O1xuICAgICAgICBpZiAoaXNQcm9taXNlTGlrZShwZW5kaW5nVmlld3BvcnQpKSB7XG4gICAgICAgICAgICB2aWV3cG9ydCA9IGF3YWl0IHBlbmRpbmdWaWV3cG9ydDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZpZXdwb3J0ID0gcGVuZGluZ1ZpZXdwb3J0O1xuICAgICAgICB9XG4gICAgICAgIG1lcmdlVmlld3BvcnQoe1xuICAgICAgICAgICAgdGFyZ2V0OiByZXNvbHZlZFZpZXdwb3J0LFxuICAgICAgICAgICAgc291cmNlOiB2aWV3cG9ydFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkVmlld3BvcnQ7XG59XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlTWV0YWRhdGEodHJlZSwgcGF0aG5hbWUsIHNlYXJjaFBhcmFtcywgZXJyb3JDb252ZW50aW9uLCBnZXREeW5hbWljUGFyYW1Gcm9tU2VnbWVudCwgd29ya1N0b3JlLCBtZXRhZGF0YUNvbnRleHQpIHtcbiAgICBjb25zdCBtZXRhZGF0YUl0ZW1zID0gYXdhaXQgcmVzb2x2ZU1ldGFkYXRhSXRlbXModHJlZSwgc2VhcmNoUGFyYW1zLCBlcnJvckNvbnZlbnRpb24sIGdldER5bmFtaWNQYXJhbUZyb21TZWdtZW50LCB3b3JrU3RvcmUpO1xuICAgIHJldHVybiBhY2N1bXVsYXRlTWV0YWRhdGEod29ya1N0b3JlLnJvdXRlLCBtZXRhZGF0YUl0ZW1zLCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVWaWV3cG9ydCh0cmVlLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHZpZXdwb3J0SXRlbXMgPSBhd2FpdCByZXNvbHZlVmlld3BvcnRJdGVtcyh0cmVlLCBzZWFyY2hQYXJhbXMsIGVycm9yQ29udmVudGlvbiwgZ2V0RHluYW1pY1BhcmFtRnJvbVNlZ21lbnQsIHdvcmtTdG9yZSk7XG4gICAgcmV0dXJuIGFjY3VtdWxhdGVWaWV3cG9ydCh2aWV3cG9ydEl0ZW1zKTtcbn1cbmZ1bmN0aW9uIGlzUHJvbWlzZUxpa2UodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1tZXRhZGF0YS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolve-metadata.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n resolveAlternates: function() {\n return resolveAlternates;\n },\n resolveAppLinks: function() {\n return resolveAppLinks;\n },\n resolveAppleWebApp: function() {\n return resolveAppleWebApp;\n },\n resolveFacebook: function() {\n return resolveFacebook;\n },\n resolveItunes: function() {\n return resolveItunes;\n },\n resolvePagination: function() {\n return resolvePagination;\n },\n resolveRobots: function() {\n return resolveRobots;\n },\n resolveThemeColor: function() {\n return resolveThemeColor;\n },\n resolveVerification: function() {\n return resolveVerification;\n }\n});\nconst _utils = __webpack_require__(/*! ../generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _resolveurl = __webpack_require__(/*! ./resolve-url */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\");\nfunction resolveAlternateUrl(url, metadataBase, pathname, metadataContext) {\n // If alter native url is an URL instance,\n // we treat it as a URL base and resolve with current pathname\n if (url instanceof URL) {\n const newUrl = new URL(pathname, url);\n url.searchParams.forEach((value, key)=>newUrl.searchParams.set(key, value));\n url = newUrl;\n }\n return (0, _resolveurl.resolveAbsoluteUrlWithPathname)(url, metadataBase, pathname, metadataContext);\n}\nconst resolveThemeColor = (themeColor)=>{\n var _resolveAsArrayOrUndefined;\n if (!themeColor) return null;\n const themeColorDescriptors = [];\n (_resolveAsArrayOrUndefined = (0, _utils.resolveAsArrayOrUndefined)(themeColor)) == null ? void 0 : _resolveAsArrayOrUndefined.forEach((descriptor)=>{\n if (typeof descriptor === 'string') themeColorDescriptors.push({\n color: descriptor\n });\n else if (typeof descriptor === 'object') themeColorDescriptors.push({\n color: descriptor.color,\n media: descriptor.media\n });\n });\n return themeColorDescriptors;\n};\nasync function resolveUrlValuesOfObject(obj, metadataBase, pathname, metadataContext) {\n if (!obj) return null;\n const result = {};\n for (const [key, value] of Object.entries(obj)){\n if (typeof value === 'string' || value instanceof URL) {\n const pathnameForUrl = await pathname;\n result[key] = [\n {\n url: resolveAlternateUrl(value, metadataBase, pathnameForUrl, metadataContext)\n }\n ];\n } else if (value && value.length) {\n result[key] = [];\n const pathnameForUrl = await pathname;\n value.forEach((item, index)=>{\n const url = resolveAlternateUrl(item.url, metadataBase, pathnameForUrl, metadataContext);\n result[key][index] = {\n url,\n title: item.title\n };\n });\n }\n }\n return result;\n}\nasync function resolveCanonicalUrl(urlOrDescriptor, metadataBase, pathname, metadataContext) {\n if (!urlOrDescriptor) return null;\n const url = typeof urlOrDescriptor === 'string' || urlOrDescriptor instanceof URL ? urlOrDescriptor : urlOrDescriptor.url;\n const pathnameForUrl = await pathname;\n // Return string url because structureClone can't handle URL instance\n return {\n url: resolveAlternateUrl(url, metadataBase, pathnameForUrl, metadataContext)\n };\n}\nconst resolveAlternates = async (alternates, metadataBase, pathname, context)=>{\n if (!alternates) return null;\n const canonical = await resolveCanonicalUrl(alternates.canonical, metadataBase, pathname, context);\n const languages = await resolveUrlValuesOfObject(alternates.languages, metadataBase, pathname, context);\n const media = await resolveUrlValuesOfObject(alternates.media, metadataBase, pathname, context);\n const types = await resolveUrlValuesOfObject(alternates.types, metadataBase, pathname, context);\n const result = {\n canonical,\n languages,\n media,\n types\n };\n return result;\n};\nconst robotsKeys = [\n 'noarchive',\n 'nosnippet',\n 'noimageindex',\n 'nocache',\n 'notranslate',\n 'indexifembedded',\n 'nositelinkssearchbox',\n 'unavailable_after',\n 'max-video-preview',\n 'max-image-preview',\n 'max-snippet'\n];\nconst resolveRobotsValue = (robots)=>{\n if (!robots) return null;\n if (typeof robots === 'string') return robots;\n const values = [];\n if (robots.index) values.push('index');\n else if (typeof robots.index === 'boolean') values.push('noindex');\n if (robots.follow) values.push('follow');\n else if (typeof robots.follow === 'boolean') values.push('nofollow');\n for (const key of robotsKeys){\n const value = robots[key];\n if (typeof value !== 'undefined' && value !== false) {\n values.push(typeof value === 'boolean' ? key : `${key}:${value}`);\n }\n }\n return values.join(', ');\n};\nconst resolveRobots = (robots)=>{\n if (!robots) return null;\n return {\n basic: resolveRobotsValue(robots),\n googleBot: typeof robots !== 'string' ? resolveRobotsValue(robots.googleBot) : null\n };\n};\nconst VerificationKeys = [\n 'google',\n 'yahoo',\n 'yandex',\n 'me',\n 'other'\n];\nconst resolveVerification = (verification)=>{\n if (!verification) return null;\n const res = {};\n for (const key of VerificationKeys){\n const value = verification[key];\n if (value) {\n if (key === 'other') {\n res.other = {};\n for(const otherKey in verification.other){\n const otherValue = (0, _utils.resolveAsArrayOrUndefined)(verification.other[otherKey]);\n if (otherValue) res.other[otherKey] = otherValue;\n }\n } else res[key] = (0, _utils.resolveAsArrayOrUndefined)(value);\n }\n }\n return res;\n};\nconst resolveAppleWebApp = (appWebApp)=>{\n var _resolveAsArrayOrUndefined;\n if (!appWebApp) return null;\n if (appWebApp === true) {\n return {\n capable: true\n };\n }\n const startupImages = appWebApp.startupImage ? (_resolveAsArrayOrUndefined = (0, _utils.resolveAsArrayOrUndefined)(appWebApp.startupImage)) == null ? void 0 : _resolveAsArrayOrUndefined.map((item)=>typeof item === 'string' ? {\n url: item\n } : item) : null;\n return {\n capable: 'capable' in appWebApp ? !!appWebApp.capable : true,\n title: appWebApp.title || null,\n startupImage: startupImages,\n statusBarStyle: appWebApp.statusBarStyle || 'default'\n };\n};\nconst resolveAppLinks = (appLinks)=>{\n if (!appLinks) return null;\n for(const key in appLinks){\n // @ts-ignore // TODO: type infer\n appLinks[key] = (0, _utils.resolveAsArrayOrUndefined)(appLinks[key]);\n }\n return appLinks;\n};\nconst resolveItunes = async (itunes, metadataBase, pathname, context)=>{\n if (!itunes) return null;\n return {\n appId: itunes.appId,\n appArgument: itunes.appArgument ? resolveAlternateUrl(itunes.appArgument, metadataBase, await pathname, context) : undefined\n };\n};\nconst resolveFacebook = (facebook)=>{\n if (!facebook) return null;\n return {\n appId: facebook.appId,\n admins: (0, _utils.resolveAsArrayOrUndefined)(facebook.admins)\n };\n};\nconst resolvePagination = async (pagination, metadataBase, pathname, context)=>{\n return {\n previous: (pagination == null ? void 0 : pagination.previous) ? resolveAlternateUrl(pagination.previous, metadataBase, await pathname, context) : null,\n next: (pagination == null ? void 0 : pagination.next) ? resolveAlternateUrl(pagination.next, metadataBase, await pathname, context) : null\n };\n};\n\n//# sourceMappingURL=resolve-basics.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1iYXNpY3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBVUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsd0ZBQW1CO0FBQzFDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFlO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RCxJQUFJLEdBQUcsTUFBTTtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1iYXNpY3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICByZXNvbHZlQWx0ZXJuYXRlczogbnVsbCxcbiAgICByZXNvbHZlQXBwTGlua3M6IG51bGwsXG4gICAgcmVzb2x2ZUFwcGxlV2ViQXBwOiBudWxsLFxuICAgIHJlc29sdmVGYWNlYm9vazogbnVsbCxcbiAgICByZXNvbHZlSXR1bmVzOiBudWxsLFxuICAgIHJlc29sdmVQYWdpbmF0aW9uOiBudWxsLFxuICAgIHJlc29sdmVSb2JvdHM6IG51bGwsXG4gICAgcmVzb2x2ZVRoZW1lQ29sb3I6IG51bGwsXG4gICAgcmVzb2x2ZVZlcmlmaWNhdGlvbjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICByZXNvbHZlQWx0ZXJuYXRlczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQWx0ZXJuYXRlcztcbiAgICB9LFxuICAgIHJlc29sdmVBcHBMaW5rczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQXBwTGlua3M7XG4gICAgfSxcbiAgICByZXNvbHZlQXBwbGVXZWJBcHA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUFwcGxlV2ViQXBwO1xuICAgIH0sXG4gICAgcmVzb2x2ZUZhY2Vib29rOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVGYWNlYm9vaztcbiAgICB9LFxuICAgIHJlc29sdmVJdHVuZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZUl0dW5lcztcbiAgICB9LFxuICAgIHJlc29sdmVQYWdpbmF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVQYWdpbmF0aW9uO1xuICAgIH0sXG4gICAgcmVzb2x2ZVJvYm90czogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlUm9ib3RzO1xuICAgIH0sXG4gICAgcmVzb2x2ZVRoZW1lQ29sb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVRoZW1lQ29sb3I7XG4gICAgfSxcbiAgICByZXNvbHZlVmVyaWZpY2F0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVWZXJpZmljYXRpb247XG4gICAgfVxufSk7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vZ2VuZXJhdGUvdXRpbHNcIik7XG5jb25zdCBfcmVzb2x2ZXVybCA9IHJlcXVpcmUoXCIuL3Jlc29sdmUtdXJsXCIpO1xuZnVuY3Rpb24gcmVzb2x2ZUFsdGVybmF0ZVVybCh1cmwsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCkge1xuICAgIC8vIElmIGFsdGVyIG5hdGl2ZSB1cmwgaXMgYW4gVVJMIGluc3RhbmNlLFxuICAgIC8vIHdlIHRyZWF0IGl0IGFzIGEgVVJMIGJhc2UgYW5kIHJlc29sdmUgd2l0aCBjdXJyZW50IHBhdGhuYW1lXG4gICAgaWYgKHVybCBpbnN0YW5jZW9mIFVSTCkge1xuICAgICAgICBjb25zdCBuZXdVcmwgPSBuZXcgVVJMKHBhdGhuYW1lLCB1cmwpO1xuICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpPT5uZXdVcmwuc2VhcmNoUGFyYW1zLnNldChrZXksIHZhbHVlKSk7XG4gICAgICAgIHVybCA9IG5ld1VybDtcbiAgICB9XG4gICAgcmV0dXJuICgwLCBfcmVzb2x2ZXVybC5yZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWUpKHVybCwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0KTtcbn1cbmNvbnN0IHJlc29sdmVUaGVtZUNvbG9yID0gKHRoZW1lQ29sb3IpPT57XG4gICAgdmFyIF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkO1xuICAgIGlmICghdGhlbWVDb2xvcikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgdGhlbWVDb2xvckRlc2NyaXB0b3JzID0gW107XG4gICAgKF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKSh0aGVtZUNvbG9yKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkLmZvckVhY2goKGRlc2NyaXB0b3IpPT57XG4gICAgICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvciA9PT0gJ3N0cmluZycpIHRoZW1lQ29sb3JEZXNjcmlwdG9ycy5wdXNoKHtcbiAgICAgICAgICAgIGNvbG9yOiBkZXNjcmlwdG9yXG4gICAgICAgIH0pO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgZGVzY3JpcHRvciA9PT0gJ29iamVjdCcpIHRoZW1lQ29sb3JEZXNjcmlwdG9ycy5wdXNoKHtcbiAgICAgICAgICAgIGNvbG9yOiBkZXNjcmlwdG9yLmNvbG9yLFxuICAgICAgICAgICAgbWVkaWE6IGRlc2NyaXB0b3IubWVkaWFcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoZW1lQ29sb3JEZXNjcmlwdG9ycztcbn07XG5hc3luYyBmdW5jdGlvbiByZXNvbHZlVXJsVmFsdWVzT2ZPYmplY3Qob2JqLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBtZXRhZGF0YUNvbnRleHQpIHtcbiAgICBpZiAoIW9iaikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSl7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHZhbHVlIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRobmFtZUZvclVybCA9IGF3YWl0IHBhdGhuYW1lO1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB1cmw6IHJlc29sdmVBbHRlcm5hdGVVcmwodmFsdWUsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWVGb3JVcmwsIG1ldGFkYXRhQ29udGV4dClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IHBhdGhuYW1lRm9yVXJsID0gYXdhaXQgcGF0aG5hbWU7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChpdGVtLCBpbmRleCk9PntcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSByZXNvbHZlQWx0ZXJuYXRlVXJsKGl0ZW0udXJsLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lRm9yVXJsLCBtZXRhZGF0YUNvbnRleHQpO1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldW2luZGV4XSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUNhbm9uaWNhbFVybCh1cmxPckRlc2NyaXB0b3IsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCkge1xuICAgIGlmICghdXJsT3JEZXNjcmlwdG9yKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB1cmwgPSB0eXBlb2YgdXJsT3JEZXNjcmlwdG9yID09PSAnc3RyaW5nJyB8fCB1cmxPckRlc2NyaXB0b3IgaW5zdGFuY2VvZiBVUkwgPyB1cmxPckRlc2NyaXB0b3IgOiB1cmxPckRlc2NyaXB0b3IudXJsO1xuICAgIGNvbnN0IHBhdGhuYW1lRm9yVXJsID0gYXdhaXQgcGF0aG5hbWU7XG4gICAgLy8gUmV0dXJuIHN0cmluZyB1cmwgYmVjYXVzZSBzdHJ1Y3R1cmVDbG9uZSBjYW4ndCBoYW5kbGUgVVJMIGluc3RhbmNlXG4gICAgcmV0dXJuIHtcbiAgICAgICAgdXJsOiByZXNvbHZlQWx0ZXJuYXRlVXJsKHVybCwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZUZvclVybCwgbWV0YWRhdGFDb250ZXh0KVxuICAgIH07XG59XG5jb25zdCByZXNvbHZlQWx0ZXJuYXRlcyA9IGFzeW5jIChhbHRlcm5hdGVzLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KT0+e1xuICAgIGlmICghYWx0ZXJuYXRlcykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgY2Fub25pY2FsID0gYXdhaXQgcmVzb2x2ZUNhbm9uaWNhbFVybChhbHRlcm5hdGVzLmNhbm9uaWNhbCwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgY29udGV4dCk7XG4gICAgY29uc3QgbGFuZ3VhZ2VzID0gYXdhaXQgcmVzb2x2ZVVybFZhbHVlc09mT2JqZWN0KGFsdGVybmF0ZXMubGFuZ3VhZ2VzLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KTtcbiAgICBjb25zdCBtZWRpYSA9IGF3YWl0IHJlc29sdmVVcmxWYWx1ZXNPZk9iamVjdChhbHRlcm5hdGVzLm1lZGlhLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KTtcbiAgICBjb25zdCB0eXBlcyA9IGF3YWl0IHJlc29sdmVVcmxWYWx1ZXNPZk9iamVjdChhbHRlcm5hdGVzLnR5cGVzLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIGNhbm9uaWNhbCxcbiAgICAgICAgbGFuZ3VhZ2VzLFxuICAgICAgICBtZWRpYSxcbiAgICAgICAgdHlwZXNcbiAgICB9O1xuICAgIHJldHVybiByZXN1bHQ7XG59O1xuY29uc3Qgcm9ib3RzS2V5cyA9IFtcbiAgICAnbm9hcmNoaXZlJyxcbiAgICAnbm9zbmlwcGV0JyxcbiAgICAnbm9pbWFnZWluZGV4JyxcbiAgICAnbm9jYWNoZScsXG4gICAgJ25vdHJhbnNsYXRlJyxcbiAgICAnaW5kZXhpZmVtYmVkZGVkJyxcbiAgICAnbm9zaXRlbGlua3NzZWFyY2hib3gnLFxuICAgICd1bmF2YWlsYWJsZV9hZnRlcicsXG4gICAgJ21heC12aWRlby1wcmV2aWV3JyxcbiAgICAnbWF4LWltYWdlLXByZXZpZXcnLFxuICAgICdtYXgtc25pcHBldCdcbl07XG5jb25zdCByZXNvbHZlUm9ib3RzVmFsdWUgPSAocm9ib3RzKT0+e1xuICAgIGlmICghcm9ib3RzKSByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIHJvYm90cyA9PT0gJ3N0cmluZycpIHJldHVybiByb2JvdHM7XG4gICAgY29uc3QgdmFsdWVzID0gW107XG4gICAgaWYgKHJvYm90cy5pbmRleCkgdmFsdWVzLnB1c2goJ2luZGV4Jyk7XG4gICAgZWxzZSBpZiAodHlwZW9mIHJvYm90cy5pbmRleCA9PT0gJ2Jvb2xlYW4nKSB2YWx1ZXMucHVzaCgnbm9pbmRleCcpO1xuICAgIGlmIChyb2JvdHMuZm9sbG93KSB2YWx1ZXMucHVzaCgnZm9sbG93Jyk7XG4gICAgZWxzZSBpZiAodHlwZW9mIHJvYm90cy5mb2xsb3cgPT09ICdib29sZWFuJykgdmFsdWVzLnB1c2goJ25vZm9sbG93Jyk7XG4gICAgZm9yIChjb25zdCBrZXkgb2Ygcm9ib3RzS2V5cyl7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcm9ib3RzW2tleV07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2godHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgPyBrZXkgOiBgJHtrZXl9OiR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcy5qb2luKCcsICcpO1xufTtcbmNvbnN0IHJlc29sdmVSb2JvdHMgPSAocm9ib3RzKT0+e1xuICAgIGlmICghcm9ib3RzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBiYXNpYzogcmVzb2x2ZVJvYm90c1ZhbHVlKHJvYm90cyksXG4gICAgICAgIGdvb2dsZUJvdDogdHlwZW9mIHJvYm90cyAhPT0gJ3N0cmluZycgPyByZXNvbHZlUm9ib3RzVmFsdWUocm9ib3RzLmdvb2dsZUJvdCkgOiBudWxsXG4gICAgfTtcbn07XG5jb25zdCBWZXJpZmljYXRpb25LZXlzID0gW1xuICAgICdnb29nbGUnLFxuICAgICd5YWhvbycsXG4gICAgJ3lhbmRleCcsXG4gICAgJ21lJyxcbiAgICAnb3RoZXInXG5dO1xuY29uc3QgcmVzb2x2ZVZlcmlmaWNhdGlvbiA9ICh2ZXJpZmljYXRpb24pPT57XG4gICAgaWYgKCF2ZXJpZmljYXRpb24pIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHJlcyA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIFZlcmlmaWNhdGlvbktleXMpe1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZlcmlmaWNhdGlvbltrZXldO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdvdGhlcicpIHtcbiAgICAgICAgICAgICAgICByZXMub3RoZXIgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3IoY29uc3Qgb3RoZXJLZXkgaW4gdmVyaWZpY2F0aW9uLm90aGVyKXtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3RoZXJWYWx1ZSA9ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkodmVyaWZpY2F0aW9uLm90aGVyW290aGVyS2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvdGhlclZhbHVlKSByZXMub3RoZXJbb3RoZXJLZXldID0gb3RoZXJWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgcmVzW2tleV0gPSAoMCwgX3V0aWxzLnJlc29sdmVBc0FycmF5T3JVbmRlZmluZWQpKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufTtcbmNvbnN0IHJlc29sdmVBcHBsZVdlYkFwcCA9IChhcHBXZWJBcHApPT57XG4gICAgdmFyIF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkO1xuICAgIGlmICghYXBwV2ViQXBwKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoYXBwV2ViQXBwID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjYXBhYmxlOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0dXBJbWFnZXMgPSBhcHBXZWJBcHAuc3RhcnR1cEltYWdlID8gKF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShhcHBXZWJBcHAuc3RhcnR1cEltYWdlKSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkLm1hcCgoaXRlbSk9PnR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyA/IHtcbiAgICAgICAgICAgIHVybDogaXRlbVxuICAgICAgICB9IDogaXRlbSkgOiBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNhcGFibGU6ICdjYXBhYmxlJyBpbiBhcHBXZWJBcHAgPyAhIWFwcFdlYkFwcC5jYXBhYmxlIDogdHJ1ZSxcbiAgICAgICAgdGl0bGU6IGFwcFdlYkFwcC50aXRsZSB8fCBudWxsLFxuICAgICAgICBzdGFydHVwSW1hZ2U6IHN0YXJ0dXBJbWFnZXMsXG4gICAgICAgIHN0YXR1c0JhclN0eWxlOiBhcHBXZWJBcHAuc3RhdHVzQmFyU3R5bGUgfHwgJ2RlZmF1bHQnXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlQXBwTGlua3MgPSAoYXBwTGlua3MpPT57XG4gICAgaWYgKCFhcHBMaW5rcykgcmV0dXJuIG51bGw7XG4gICAgZm9yKGNvbnN0IGtleSBpbiBhcHBMaW5rcyl7XG4gICAgICAgIC8vIEB0cy1pZ25vcmUgLy8gVE9ETzogdHlwZSBpbmZlclxuICAgICAgICBhcHBMaW5rc1trZXldID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShhcHBMaW5rc1trZXldKTtcbiAgICB9XG4gICAgcmV0dXJuIGFwcExpbmtzO1xufTtcbmNvbnN0IHJlc29sdmVJdHVuZXMgPSBhc3luYyAoaXR1bmVzLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCBjb250ZXh0KT0+e1xuICAgIGlmICghaXR1bmVzKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgICBhcHBJZDogaXR1bmVzLmFwcElkLFxuICAgICAgICBhcHBBcmd1bWVudDogaXR1bmVzLmFwcEFyZ3VtZW50ID8gcmVzb2x2ZUFsdGVybmF0ZVVybChpdHVuZXMuYXBwQXJndW1lbnQsIG1ldGFkYXRhQmFzZSwgYXdhaXQgcGF0aG5hbWUsIGNvbnRleHQpIDogdW5kZWZpbmVkXG4gICAgfTtcbn07XG5jb25zdCByZXNvbHZlRmFjZWJvb2sgPSAoZmFjZWJvb2spPT57XG4gICAgaWYgKCFmYWNlYm9vaykgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYXBwSWQ6IGZhY2Vib29rLmFwcElkLFxuICAgICAgICBhZG1pbnM6ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkoZmFjZWJvb2suYWRtaW5zKVxuICAgIH07XG59O1xuY29uc3QgcmVzb2x2ZVBhZ2luYXRpb24gPSBhc3luYyAocGFnaW5hdGlvbiwgbWV0YWRhdGFCYXNlLCBwYXRobmFtZSwgY29udGV4dCk9PntcbiAgICByZXR1cm4ge1xuICAgICAgICBwcmV2aW91czogKHBhZ2luYXRpb24gPT0gbnVsbCA/IHZvaWQgMCA6IHBhZ2luYXRpb24ucHJldmlvdXMpID8gcmVzb2x2ZUFsdGVybmF0ZVVybChwYWdpbmF0aW9uLnByZXZpb3VzLCBtZXRhZGF0YUJhc2UsIGF3YWl0IHBhdGhuYW1lLCBjb250ZXh0KSA6IG51bGwsXG4gICAgICAgIG5leHQ6IChwYWdpbmF0aW9uID09IG51bGwgPyB2b2lkIDAgOiBwYWdpbmF0aW9uLm5leHQpID8gcmVzb2x2ZUFsdGVybmF0ZVVybChwYWdpbmF0aW9uLm5leHQsIG1ldGFkYXRhQmFzZSwgYXdhaXQgcGF0aG5hbWUsIGNvbnRleHQpIDogbnVsbFxuICAgIH07XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLWJhc2ljcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js":
/*!************************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js ***!
\************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n resolveIcon: function() {\n return resolveIcon;\n },\n resolveIcons: function() {\n return resolveIcons;\n }\n});\nconst _utils = __webpack_require__(/*! ../generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _resolveurl = __webpack_require__(/*! ./resolve-url */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\");\nconst _constants = __webpack_require__(/*! ../constants */ \"(rsc)/./node_modules/next/dist/lib/metadata/constants.js\");\nfunction resolveIcon(icon) {\n if ((0, _resolveurl.isStringOrURL)(icon)) return {\n url: icon\n };\n else if (Array.isArray(icon)) return icon;\n return icon;\n}\nconst resolveIcons = (icons)=>{\n if (!icons) {\n return null;\n }\n const resolved = {\n icon: [],\n apple: []\n };\n if (Array.isArray(icons)) {\n resolved.icon = icons.map(resolveIcon).filter(Boolean);\n } else if ((0, _resolveurl.isStringOrURL)(icons)) {\n resolved.icon = [\n resolveIcon(icons)\n ];\n } else {\n for (const key of _constants.IconKeys){\n const values = (0, _utils.resolveAsArrayOrUndefined)(icons[key]);\n if (values) resolved[key] = values.map(resolveIcon);\n }\n }\n return resolved;\n};\n\n//# sourceMappingURL=resolve-icons.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1pY29ucy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsd0ZBQW1CO0FBQzFDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFlO0FBQzNDLG1CQUFtQixtQkFBTyxDQUFDLDhFQUFjO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1pY29ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHJlc29sdmVJY29uOiBudWxsLFxuICAgIHJlc29sdmVJY29uczogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICByZXNvbHZlSWNvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlSWNvbjtcbiAgICB9LFxuICAgIHJlc29sdmVJY29uczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlSWNvbnM7XG4gICAgfVxufSk7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vZ2VuZXJhdGUvdXRpbHNcIik7XG5jb25zdCBfcmVzb2x2ZXVybCA9IHJlcXVpcmUoXCIuL3Jlc29sdmUtdXJsXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi9jb25zdGFudHNcIik7XG5mdW5jdGlvbiByZXNvbHZlSWNvbihpY29uKSB7XG4gICAgaWYgKCgwLCBfcmVzb2x2ZXVybC5pc1N0cmluZ09yVVJMKShpY29uKSkgcmV0dXJuIHtcbiAgICAgICAgdXJsOiBpY29uXG4gICAgfTtcbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGljb24pKSByZXR1cm4gaWNvbjtcbiAgICByZXR1cm4gaWNvbjtcbn1cbmNvbnN0IHJlc29sdmVJY29ucyA9IChpY29ucyk9PntcbiAgICBpZiAoIWljb25zKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCByZXNvbHZlZCA9IHtcbiAgICAgICAgaWNvbjogW10sXG4gICAgICAgIGFwcGxlOiBbXVxuICAgIH07XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaWNvbnMpKSB7XG4gICAgICAgIHJlc29sdmVkLmljb24gPSBpY29ucy5tYXAocmVzb2x2ZUljb24pLmZpbHRlcihCb29sZWFuKTtcbiAgICB9IGVsc2UgaWYgKCgwLCBfcmVzb2x2ZXVybC5pc1N0cmluZ09yVVJMKShpY29ucykpIHtcbiAgICAgICAgcmVzb2x2ZWQuaWNvbiA9IFtcbiAgICAgICAgICAgIHJlc29sdmVJY29uKGljb25zKVxuICAgICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIF9jb25zdGFudHMuSWNvbktleXMpe1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShpY29uc1trZXldKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZXMpIHJlc29sdmVkW2tleV0gPSB2YWx1ZXMubWFwKHJlc29sdmVJY29uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLWljb25zLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js":
/*!****************************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js ***!
\****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n resolveImages: function() {\n return resolveImages;\n },\n resolveOpenGraph: function() {\n return resolveOpenGraph;\n },\n resolveTwitter: function() {\n return resolveTwitter;\n }\n});\nconst _utils = __webpack_require__(/*! ../generate/utils */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/utils.js\");\nconst _resolveurl = __webpack_require__(/*! ./resolve-url */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\");\nconst _resolvetitle = __webpack_require__(/*! ./resolve-title */ \"(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js\");\nconst _url = __webpack_require__(/*! ../../url */ \"(rsc)/./node_modules/next/dist/lib/url.js\");\nconst _log = __webpack_require__(/*! ../../../build/output/log */ \"(rsc)/./node_modules/next/dist/build/output/log.js\");\nconst OgTypeFields = {\n article: [\n 'authors',\n 'tags'\n ],\n song: [\n 'albums',\n 'musicians'\n ],\n playlist: [\n 'albums',\n 'musicians'\n ],\n radio: [\n 'creators'\n ],\n video: [\n 'actors',\n 'directors',\n 'writers',\n 'tags'\n ],\n basic: [\n 'emails',\n 'phoneNumbers',\n 'faxNumbers',\n 'alternateLocale',\n 'audio',\n 'videos'\n ]\n};\nfunction resolveAndValidateImage(item, metadataBase, isStaticMetadataRouteFile) {\n if (!item) return undefined;\n const isItemUrl = (0, _resolveurl.isStringOrURL)(item);\n const inputUrl = isItemUrl ? item : item.url;\n if (!inputUrl) return undefined;\n // process.env.VERCEL is set to \"1\" when System Environment Variables are\n // exposed. When exposed, validation is not necessary since we are falling back to\n // process.env.VERCEL_PROJECT_PRODUCTION_URL, process.env.VERCEL_BRANCH_URL, or\n // process.env.VERCEL_URL for the `metadataBase`. process.env.VERCEL is undefined\n // when System Environment Variables are not exposed. When not exposed, we cannot\n // detect in the build environment if the deployment is a Vercel deployment or not.\n //\n // x-ref: https://vercel.com/docs/projects/environment-variables/system-environment-variables#system-environment-variables\n const isUsingVercelSystemEnvironmentVariables = Boolean(process.env.VERCEL);\n const isRelativeUrl = typeof inputUrl === 'string' && !(0, _url.isFullStringUrl)(inputUrl);\n // When no explicit metadataBase is specified by the user, we'll override it with the fallback metadata\n // under the following conditions:\n // - The provided URL is relative (ie ./og-image).\n // - The image is statically generated by Next.js (such as the special `opengraph-image` route)\n // In both cases, we want to ensure that across all environments, the ogImage is a fully qualified URL.\n // In the `opengraph-image` case, since the user isn't explicitly passing a relative path, this ensures\n // the ogImage will be properly discovered across different environments without the user needing to\n // have a bunch of `process.env` checks when defining their `metadataBase`.\n if (isRelativeUrl && (!metadataBase || isStaticMetadataRouteFile)) {\n const fallbackMetadataBase = (0, _resolveurl.getSocialImageMetadataBaseFallback)(metadataBase);\n // When not using Vercel environment variables for URL injection, we aren't able to determine\n // a fallback value for `metadataBase`. For self-hosted setups, we want to warn\n // about this since the only fallback we'll be able to generate is `localhost`.\n // In development, we'll only warn for relative metadata that isn't part of the static\n // metadata conventions (eg `opengraph-image`), as otherwise it's currently very noisy\n // for common cases. Eventually we should remove this warning all together in favor of\n // devtools.\n const shouldWarn = !isUsingVercelSystemEnvironmentVariables && !metadataBase && ( false || !isStaticMetadataRouteFile);\n if (shouldWarn) {\n (0, _log.warnOnce)(`metadataBase property in metadata export is not set for resolving social open graph or twitter images, using \"${fallbackMetadataBase.origin}\". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase`);\n }\n metadataBase = fallbackMetadataBase;\n }\n return isItemUrl ? {\n url: (0, _resolveurl.resolveUrl)(inputUrl, metadataBase)\n } : {\n ...item,\n // Update image descriptor url\n url: (0, _resolveurl.resolveUrl)(inputUrl, metadataBase)\n };\n}\nfunction resolveImages(images, metadataBase, isStaticMetadataRouteFile) {\n const resolvedImages = (0, _utils.resolveAsArrayOrUndefined)(images);\n if (!resolvedImages) return resolvedImages;\n const nonNullableImages = [];\n for (const item of resolvedImages){\n const resolvedItem = resolveAndValidateImage(item, metadataBase, isStaticMetadataRouteFile);\n if (!resolvedItem) continue;\n nonNullableImages.push(resolvedItem);\n }\n return nonNullableImages;\n}\nconst ogTypeToFields = {\n article: OgTypeFields.article,\n book: OgTypeFields.article,\n 'music.song': OgTypeFields.song,\n 'music.album': OgTypeFields.song,\n 'music.playlist': OgTypeFields.playlist,\n 'music.radio_station': OgTypeFields.radio,\n 'video.movie': OgTypeFields.video,\n 'video.episode': OgTypeFields.video\n};\nfunction getFieldsByOgType(ogType) {\n if (!ogType || !(ogType in ogTypeToFields)) return OgTypeFields.basic;\n return ogTypeToFields[ogType].concat(OgTypeFields.basic);\n}\nconst resolveOpenGraph = async (openGraph, metadataBase, pathname, metadataContext, titleTemplate)=>{\n if (!openGraph) return null;\n function resolveProps(target, og) {\n const ogType = og && 'type' in og ? og.type : undefined;\n const keys = getFieldsByOgType(ogType);\n for (const k of keys){\n const key = k;\n if (key in og && key !== 'url') {\n const value = og[key];\n target[key] = value ? (0, _utils.resolveArray)(value) : null;\n }\n }\n target.images = resolveImages(og.images, metadataBase, metadataContext.isStaticMetadataRouteFile);\n }\n const resolved = {\n ...openGraph,\n title: (0, _resolvetitle.resolveTitle)(openGraph.title, titleTemplate)\n };\n resolveProps(resolved, openGraph);\n resolved.url = openGraph.url ? (0, _resolveurl.resolveAbsoluteUrlWithPathname)(openGraph.url, metadataBase, await pathname, metadataContext) : null;\n return resolved;\n};\nconst TwitterBasicInfoKeys = [\n 'site',\n 'siteId',\n 'creator',\n 'creatorId',\n 'description'\n];\nconst resolveTwitter = (twitter, metadataBase, metadataContext, titleTemplate)=>{\n var _resolved_images;\n if (!twitter) return null;\n let card = 'card' in twitter ? twitter.card : undefined;\n const resolved = {\n ...twitter,\n title: (0, _resolvetitle.resolveTitle)(twitter.title, titleTemplate)\n };\n for (const infoKey of TwitterBasicInfoKeys){\n resolved[infoKey] = twitter[infoKey] || null;\n }\n resolved.images = resolveImages(twitter.images, metadataBase, metadataContext.isStaticMetadataRouteFile);\n card = card || (((_resolved_images = resolved.images) == null ? void 0 : _resolved_images.length) ? 'summary_large_image' : 'summary');\n resolved.card = card;\n if ('card' in resolved) {\n switch(resolved.card){\n case 'player':\n {\n resolved.players = (0, _utils.resolveAsArrayOrUndefined)(resolved.players) || [];\n break;\n }\n case 'app':\n {\n resolved.app = resolved.app || {};\n break;\n }\n default:\n break;\n }\n }\n return resolved;\n};\n\n//# sourceMappingURL=resolve-opengraph.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS1vcGVuZ3JhcGguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxlQUFlLG1CQUFPLENBQUMsd0ZBQW1CO0FBQzFDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFlO0FBQzNDLHNCQUFzQixtQkFBTyxDQUFDLCtGQUFpQjtBQUMvQyxhQUFhLG1CQUFPLENBQUMsNERBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLHFGQUEyQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5RkFBeUYsTUFBcUM7QUFDOUg7QUFDQSxnSkFBZ0osNEJBQTRCO0FBQzVLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL3Jlc29sdmVycy9yZXNvbHZlLW9wZW5ncmFwaC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHJlc29sdmVJbWFnZXM6IG51bGwsXG4gICAgcmVzb2x2ZU9wZW5HcmFwaDogbnVsbCxcbiAgICByZXNvbHZlVHdpdHRlcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICByZXNvbHZlSW1hZ2VzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVJbWFnZXM7XG4gICAgfSxcbiAgICByZXNvbHZlT3BlbkdyYXBoOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVPcGVuR3JhcGg7XG4gICAgfSxcbiAgICByZXNvbHZlVHdpdHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVHdpdHRlcjtcbiAgICB9XG59KTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi9nZW5lcmF0ZS91dGlsc1wiKTtcbmNvbnN0IF9yZXNvbHZldXJsID0gcmVxdWlyZShcIi4vcmVzb2x2ZS11cmxcIik7XG5jb25zdCBfcmVzb2x2ZXRpdGxlID0gcmVxdWlyZShcIi4vcmVzb2x2ZS10aXRsZVwiKTtcbmNvbnN0IF91cmwgPSByZXF1aXJlKFwiLi4vLi4vdXJsXCIpO1xuY29uc3QgX2xvZyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9idWlsZC9vdXRwdXQvbG9nXCIpO1xuY29uc3QgT2dUeXBlRmllbGRzID0ge1xuICAgIGFydGljbGU6IFtcbiAgICAgICAgJ2F1dGhvcnMnLFxuICAgICAgICAndGFncydcbiAgICBdLFxuICAgIHNvbmc6IFtcbiAgICAgICAgJ2FsYnVtcycsXG4gICAgICAgICdtdXNpY2lhbnMnXG4gICAgXSxcbiAgICBwbGF5bGlzdDogW1xuICAgICAgICAnYWxidW1zJyxcbiAgICAgICAgJ211c2ljaWFucydcbiAgICBdLFxuICAgIHJhZGlvOiBbXG4gICAgICAgICdjcmVhdG9ycydcbiAgICBdLFxuICAgIHZpZGVvOiBbXG4gICAgICAgICdhY3RvcnMnLFxuICAgICAgICAnZGlyZWN0b3JzJyxcbiAgICAgICAgJ3dyaXRlcnMnLFxuICAgICAgICAndGFncydcbiAgICBdLFxuICAgIGJhc2ljOiBbXG4gICAgICAgICdlbWFpbHMnLFxuICAgICAgICAncGhvbmVOdW1iZXJzJyxcbiAgICAgICAgJ2ZheE51bWJlcnMnLFxuICAgICAgICAnYWx0ZXJuYXRlTG9jYWxlJyxcbiAgICAgICAgJ2F1ZGlvJyxcbiAgICAgICAgJ3ZpZGVvcydcbiAgICBdXG59O1xuZnVuY3Rpb24gcmVzb2x2ZUFuZFZhbGlkYXRlSW1hZ2UoaXRlbSwgbWV0YWRhdGFCYXNlLCBpc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlKSB7XG4gICAgaWYgKCFpdGVtKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGlzSXRlbVVybCA9ICgwLCBfcmVzb2x2ZXVybC5pc1N0cmluZ09yVVJMKShpdGVtKTtcbiAgICBjb25zdCBpbnB1dFVybCA9IGlzSXRlbVVybCA/IGl0ZW0gOiBpdGVtLnVybDtcbiAgICBpZiAoIWlucHV0VXJsKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIC8vIHByb2Nlc3MuZW52LlZFUkNFTCBpcyBzZXQgdG8gXCIxXCIgd2hlbiBTeXN0ZW0gRW52aXJvbm1lbnQgVmFyaWFibGVzIGFyZVxuICAgIC8vIGV4cG9zZWQuIFdoZW4gZXhwb3NlZCwgdmFsaWRhdGlvbiBpcyBub3QgbmVjZXNzYXJ5IHNpbmNlIHdlIGFyZSBmYWxsaW5nIGJhY2sgdG9cbiAgICAvLyBwcm9jZXNzLmVudi5WRVJDRUxfUFJPSkVDVF9QUk9EVUNUSU9OX1VSTCwgcHJvY2Vzcy5lbnYuVkVSQ0VMX0JSQU5DSF9VUkwsIG9yXG4gICAgLy8gcHJvY2Vzcy5lbnYuVkVSQ0VMX1VSTCBmb3IgdGhlIGBtZXRhZGF0YUJhc2VgLiBwcm9jZXNzLmVudi5WRVJDRUwgaXMgdW5kZWZpbmVkXG4gICAgLy8gd2hlbiBTeXN0ZW0gRW52aXJvbm1lbnQgVmFyaWFibGVzIGFyZSBub3QgZXhwb3NlZC4gV2hlbiBub3QgZXhwb3NlZCwgd2UgY2Fubm90XG4gICAgLy8gZGV0ZWN0IGluIHRoZSBidWlsZCBlbnZpcm9ubWVudCBpZiB0aGUgZGVwbG95bWVudCBpcyBhIFZlcmNlbCBkZXBsb3ltZW50IG9yIG5vdC5cbiAgICAvL1xuICAgIC8vIHgtcmVmOiBodHRwczovL3ZlcmNlbC5jb20vZG9jcy9wcm9qZWN0cy9lbnZpcm9ubWVudC12YXJpYWJsZXMvc3lzdGVtLWVudmlyb25tZW50LXZhcmlhYmxlcyNzeXN0ZW0tZW52aXJvbm1lbnQtdmFyaWFibGVzXG4gICAgY29uc3QgaXNVc2luZ1ZlcmNlbFN5c3RlbUVudmlyb25tZW50VmFyaWFibGVzID0gQm9vbGVhbihwcm9jZXNzLmVudi5WRVJDRUwpO1xuICAgIGNvbnN0IGlzUmVsYXRpdmVVcmwgPSB0eXBlb2YgaW5wdXRVcmwgPT09ICdzdHJpbmcnICYmICEoMCwgX3VybC5pc0Z1bGxTdHJpbmdVcmwpKGlucHV0VXJsKTtcbiAgICAvLyBXaGVuIG5vIGV4cGxpY2l0IG1ldGFkYXRhQmFzZSBpcyBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsIHdlJ2xsIG92ZXJyaWRlIGl0IHdpdGggdGhlIGZhbGxiYWNrIG1ldGFkYXRhXG4gICAgLy8gdW5kZXIgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICAgIC8vIC0gVGhlIHByb3ZpZGVkIFVSTCBpcyByZWxhdGl2ZSAoaWUgLi9vZy1pbWFnZSkuXG4gICAgLy8gLSBUaGUgaW1hZ2UgaXMgc3RhdGljYWxseSBnZW5lcmF0ZWQgYnkgTmV4dC5qcyAoc3VjaCBhcyB0aGUgc3BlY2lhbCBgb3BlbmdyYXBoLWltYWdlYCByb3V0ZSlcbiAgICAvLyBJbiBib3RoIGNhc2VzLCB3ZSB3YW50IHRvIGVuc3VyZSB0aGF0IGFjcm9zcyBhbGwgZW52aXJvbm1lbnRzLCB0aGUgb2dJbWFnZSBpcyBhIGZ1bGx5IHF1YWxpZmllZCBVUkwuXG4gICAgLy8gSW4gdGhlIGBvcGVuZ3JhcGgtaW1hZ2VgIGNhc2UsIHNpbmNlIHRoZSB1c2VyIGlzbid0IGV4cGxpY2l0bHkgcGFzc2luZyBhIHJlbGF0aXZlIHBhdGgsIHRoaXMgZW5zdXJlc1xuICAgIC8vIHRoZSBvZ0ltYWdlIHdpbGwgYmUgcHJvcGVybHkgZGlzY292ZXJlZCBhY3Jvc3MgZGlmZmVyZW50IGVudmlyb25tZW50cyB3aXRob3V0IHRoZSB1c2VyIG5lZWRpbmcgdG9cbiAgICAvLyBoYXZlIGEgYnVuY2ggb2YgYHByb2Nlc3MuZW52YCBjaGVja3Mgd2hlbiBkZWZpbmluZyB0aGVpciBgbWV0YWRhdGFCYXNlYC5cbiAgICBpZiAoaXNSZWxhdGl2ZVVybCAmJiAoIW1ldGFkYXRhQmFzZSB8fCBpc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlKSkge1xuICAgICAgICBjb25zdCBmYWxsYmFja01ldGFkYXRhQmFzZSA9ICgwLCBfcmVzb2x2ZXVybC5nZXRTb2NpYWxJbWFnZU1ldGFkYXRhQmFzZUZhbGxiYWNrKShtZXRhZGF0YUJhc2UpO1xuICAgICAgICAvLyBXaGVuIG5vdCB1c2luZyBWZXJjZWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBVUkwgaW5qZWN0aW9uLCB3ZSBhcmVuJ3QgYWJsZSB0byBkZXRlcm1pbmVcbiAgICAgICAgLy8gYSBmYWxsYmFjayB2YWx1ZSBmb3IgYG1ldGFkYXRhQmFzZWAuIEZvciBzZWxmLWhvc3RlZCBzZXR1cHMsIHdlIHdhbnQgdG8gd2FyblxuICAgICAgICAvLyBhYm91dCB0aGlzIHNpbmNlIHRoZSBvbmx5IGZhbGxiYWNrIHdlJ2xsIGJlIGFibGUgdG8gZ2VuZXJhdGUgaXMgYGxvY2FsaG9zdGAuXG4gICAgICAgIC8vIEluIGRldmVsb3BtZW50LCB3ZSdsbCBvbmx5IHdhcm4gZm9yIHJlbGF0aXZlIG1ldGFkYXRhIHRoYXQgaXNuJ3QgcGFydCBvZiB0aGUgc3RhdGljXG4gICAgICAgIC8vIG1ldGFkYXRhIGNvbnZlbnRpb25zIChlZyBgb3BlbmdyYXBoLWltYWdlYCksIGFzIG90aGVyd2lzZSBpdCdzIGN1cnJlbnRseSB2ZXJ5IG5vaXN5XG4gICAgICAgIC8vIGZvciBjb21tb24gY2FzZXMuIEV2ZW50dWFsbHkgd2Ugc2hvdWxkIHJlbW92ZSB0aGlzIHdhcm5pbmcgYWxsIHRvZ2V0aGVyIGluIGZhdm9yIG9mXG4gICAgICAgIC8vIGRldnRvb2xzLlxuICAgICAgICBjb25zdCBzaG91bGRXYXJuID0gIWlzVXNpbmdWZXJjZWxTeXN0ZW1FbnZpcm9ubWVudFZhcmlhYmxlcyAmJiAhbWV0YWRhdGFCYXNlICYmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nIHx8ICFpc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlKTtcbiAgICAgICAgaWYgKHNob3VsZFdhcm4pIHtcbiAgICAgICAgICAgICgwLCBfbG9nLndhcm5PbmNlKShgbWV0YWRhdGFCYXNlIHByb3BlcnR5IGluIG1ldGFkYXRhIGV4cG9ydCBpcyBub3Qgc2V0IGZvciByZXNvbHZpbmcgc29jaWFsIG9wZW4gZ3JhcGggb3IgdHdpdHRlciBpbWFnZXMsIHVzaW5nIFwiJHtmYWxsYmFja01ldGFkYXRhQmFzZS5vcmlnaW59XCIuIFNlZSBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvZ2VuZXJhdGUtbWV0YWRhdGEjbWV0YWRhdGFiYXNlYCk7XG4gICAgICAgIH1cbiAgICAgICAgbWV0YWRhdGFCYXNlID0gZmFsbGJhY2tNZXRhZGF0YUJhc2U7XG4gICAgfVxuICAgIHJldHVybiBpc0l0ZW1VcmwgPyB7XG4gICAgICAgIHVybDogKDAsIF9yZXNvbHZldXJsLnJlc29sdmVVcmwpKGlucHV0VXJsLCBtZXRhZGF0YUJhc2UpXG4gICAgfSA6IHtcbiAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgLy8gVXBkYXRlIGltYWdlIGRlc2NyaXB0b3IgdXJsXG4gICAgICAgIHVybDogKDAsIF9yZXNvbHZldXJsLnJlc29sdmVVcmwpKGlucHV0VXJsLCBtZXRhZGF0YUJhc2UpXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVJbWFnZXMoaW1hZ2VzLCBtZXRhZGF0YUJhc2UsIGlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUpIHtcbiAgICBjb25zdCByZXNvbHZlZEltYWdlcyA9ICgwLCBfdXRpbHMucmVzb2x2ZUFzQXJyYXlPclVuZGVmaW5lZCkoaW1hZ2VzKTtcbiAgICBpZiAoIXJlc29sdmVkSW1hZ2VzKSByZXR1cm4gcmVzb2x2ZWRJbWFnZXM7XG4gICAgY29uc3Qgbm9uTnVsbGFibGVJbWFnZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgcmVzb2x2ZWRJbWFnZXMpe1xuICAgICAgICBjb25zdCByZXNvbHZlZEl0ZW0gPSByZXNvbHZlQW5kVmFsaWRhdGVJbWFnZShpdGVtLCBtZXRhZGF0YUJhc2UsIGlzU3RhdGljTWV0YWRhdGFSb3V0ZUZpbGUpO1xuICAgICAgICBpZiAoIXJlc29sdmVkSXRlbSkgY29udGludWU7XG4gICAgICAgIG5vbk51bGxhYmxlSW1hZ2VzLnB1c2gocmVzb2x2ZWRJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vbk51bGxhYmxlSW1hZ2VzO1xufVxuY29uc3Qgb2dUeXBlVG9GaWVsZHMgPSB7XG4gICAgYXJ0aWNsZTogT2dUeXBlRmllbGRzLmFydGljbGUsXG4gICAgYm9vazogT2dUeXBlRmllbGRzLmFydGljbGUsXG4gICAgJ211c2ljLnNvbmcnOiBPZ1R5cGVGaWVsZHMuc29uZyxcbiAgICAnbXVzaWMuYWxidW0nOiBPZ1R5cGVGaWVsZHMuc29uZyxcbiAgICAnbXVzaWMucGxheWxpc3QnOiBPZ1R5cGVGaWVsZHMucGxheWxpc3QsXG4gICAgJ211c2ljLnJhZGlvX3N0YXRpb24nOiBPZ1R5cGVGaWVsZHMucmFkaW8sXG4gICAgJ3ZpZGVvLm1vdmllJzogT2dUeXBlRmllbGRzLnZpZGVvLFxuICAgICd2aWRlby5lcGlzb2RlJzogT2dUeXBlRmllbGRzLnZpZGVvXG59O1xuZnVuY3Rpb24gZ2V0RmllbGRzQnlPZ1R5cGUob2dUeXBlKSB7XG4gICAgaWYgKCFvZ1R5cGUgfHwgIShvZ1R5cGUgaW4gb2dUeXBlVG9GaWVsZHMpKSByZXR1cm4gT2dUeXBlRmllbGRzLmJhc2ljO1xuICAgIHJldHVybiBvZ1R5cGVUb0ZpZWxkc1tvZ1R5cGVdLmNvbmNhdChPZ1R5cGVGaWVsZHMuYmFzaWMpO1xufVxuY29uc3QgcmVzb2x2ZU9wZW5HcmFwaCA9IGFzeW5jIChvcGVuR3JhcGgsIG1ldGFkYXRhQmFzZSwgcGF0aG5hbWUsIG1ldGFkYXRhQ29udGV4dCwgdGl0bGVUZW1wbGF0ZSk9PntcbiAgICBpZiAoIW9wZW5HcmFwaCkgcmV0dXJuIG51bGw7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZVByb3BzKHRhcmdldCwgb2cpIHtcbiAgICAgICAgY29uc3Qgb2dUeXBlID0gb2cgJiYgJ3R5cGUnIGluIG9nID8gb2cudHlwZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qga2V5cyA9IGdldEZpZWxkc0J5T2dUeXBlKG9nVHlwZSk7XG4gICAgICAgIGZvciAoY29uc3QgayBvZiBrZXlzKXtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGs7XG4gICAgICAgICAgICBpZiAoa2V5IGluIG9nICYmIGtleSAhPT0gJ3VybCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG9nW2tleV07XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZSA/ICgwLCBfdXRpbHMucmVzb2x2ZUFycmF5KSh2YWx1ZSkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRhcmdldC5pbWFnZXMgPSByZXNvbHZlSW1hZ2VzKG9nLmltYWdlcywgbWV0YWRhdGFCYXNlLCBtZXRhZGF0YUNvbnRleHQuaXNTdGF0aWNNZXRhZGF0YVJvdXRlRmlsZSk7XG4gICAgfVxuICAgIGNvbnN0IHJlc29sdmVkID0ge1xuICAgICAgICAuLi5vcGVuR3JhcGgsXG4gICAgICAgIHRpdGxlOiAoMCwgX3Jlc29sdmV0aXRsZS5yZXNvbHZlVGl0bGUpKG9wZW5HcmFwaC50aXRsZSwgdGl0bGVUZW1wbGF0ZSlcbiAgICB9O1xuICAgIHJlc29sdmVQcm9wcyhyZXNvbHZlZCwgb3BlbkdyYXBoKTtcbiAgICByZXNvbHZlZC51cmwgPSBvcGVuR3JhcGgudXJsID8gKDAsIF9yZXNvbHZldXJsLnJlc29sdmVBYnNvbHV0ZVVybFdpdGhQYXRobmFtZSkob3BlbkdyYXBoLnVybCwgbWV0YWRhdGFCYXNlLCBhd2FpdCBwYXRobmFtZSwgbWV0YWRhdGFDb250ZXh0KSA6IG51bGw7XG4gICAgcmV0dXJuIHJlc29sdmVkO1xufTtcbmNvbnN0IFR3aXR0ZXJCYXNpY0luZm9LZXlzID0gW1xuICAgICdzaXRlJyxcbiAgICAnc2l0ZUlkJyxcbiAgICAnY3JlYXRvcicsXG4gICAgJ2NyZWF0b3JJZCcsXG4gICAgJ2Rlc2NyaXB0aW9uJ1xuXTtcbmNvbnN0IHJlc29sdmVUd2l0dGVyID0gKHR3aXR0ZXIsIG1ldGFkYXRhQmFzZSwgbWV0YWRhdGFDb250ZXh0LCB0aXRsZVRlbXBsYXRlKT0+e1xuICAgIHZhciBfcmVzb2x2ZWRfaW1hZ2VzO1xuICAgIGlmICghdHdpdHRlcikgcmV0dXJuIG51bGw7XG4gICAgbGV0IGNhcmQgPSAnY2FyZCcgaW4gdHdpdHRlciA/IHR3aXR0ZXIuY2FyZCA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCByZXNvbHZlZCA9IHtcbiAgICAgICAgLi4udHdpdHRlcixcbiAgICAgICAgdGl0bGU6ICgwLCBfcmVzb2x2ZXRpdGxlLnJlc29sdmVUaXRsZSkodHdpdHRlci50aXRsZSwgdGl0bGVUZW1wbGF0ZSlcbiAgICB9O1xuICAgIGZvciAoY29uc3QgaW5mb0tleSBvZiBUd2l0dGVyQmFzaWNJbmZvS2V5cyl7XG4gICAgICAgIHJlc29sdmVkW2luZm9LZXldID0gdHdpdHRlcltpbmZvS2V5XSB8fCBudWxsO1xuICAgIH1cbiAgICByZXNvbHZlZC5pbWFnZXMgPSByZXNvbHZlSW1hZ2VzKHR3aXR0ZXIuaW1hZ2VzLCBtZXRhZGF0YUJhc2UsIG1ldGFkYXRhQ29udGV4dC5pc1N0YXRpY01ldGFkYXRhUm91dGVGaWxlKTtcbiAgICBjYXJkID0gY2FyZCB8fCAoKChfcmVzb2x2ZWRfaW1hZ2VzID0gcmVzb2x2ZWQuaW1hZ2VzKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc29sdmVkX2ltYWdlcy5sZW5ndGgpID8gJ3N1bW1hcnlfbGFyZ2VfaW1hZ2UnIDogJ3N1bW1hcnknKTtcbiAgICByZXNvbHZlZC5jYXJkID0gY2FyZDtcbiAgICBpZiAoJ2NhcmQnIGluIHJlc29sdmVkKSB7XG4gICAgICAgIHN3aXRjaChyZXNvbHZlZC5jYXJkKXtcbiAgICAgICAgICAgIGNhc2UgJ3BsYXllcic6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZC5wbGF5ZXJzID0gKDAsIF91dGlscy5yZXNvbHZlQXNBcnJheU9yVW5kZWZpbmVkKShyZXNvbHZlZC5wbGF5ZXJzKSB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnYXBwJzpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkLmFwcCA9IHJlc29sdmVkLmFwcCB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLW9wZW5ncmFwaC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js":
/*!************************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js ***!
\************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"resolveTitle\", ({\n enumerable: true,\n get: function() {\n return resolveTitle;\n }\n}));\nfunction resolveTitleTemplate(template, title) {\n return template ? template.replace(/%s/g, title) : title;\n}\nfunction resolveTitle(title, stashedTemplate) {\n let resolved;\n const template = typeof title !== 'string' && title && 'template' in title ? title.template : null;\n if (typeof title === 'string') {\n resolved = resolveTitleTemplate(stashedTemplate, title);\n } else if (title) {\n if ('default' in title) {\n resolved = resolveTitleTemplate(stashedTemplate, title.default);\n }\n if ('absolute' in title && title.absolute) {\n resolved = title.absolute;\n }\n }\n if (title && typeof title !== 'string') {\n return {\n template,\n absolute: resolved || ''\n };\n } else {\n return {\n absolute: resolved || title || '',\n template\n };\n }\n}\n\n//# sourceMappingURL=resolve-title.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS10aXRsZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGdEQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvcmVzb2x2ZXJzL3Jlc29sdmUtdGl0bGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJyZXNvbHZlVGl0bGVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVUaXRsZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIHJlc29sdmVUaXRsZVRlbXBsYXRlKHRlbXBsYXRlLCB0aXRsZSkge1xuICAgIHJldHVybiB0ZW1wbGF0ZSA/IHRlbXBsYXRlLnJlcGxhY2UoLyVzL2csIHRpdGxlKSA6IHRpdGxlO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVRpdGxlKHRpdGxlLCBzdGFzaGVkVGVtcGxhdGUpIHtcbiAgICBsZXQgcmVzb2x2ZWQ7XG4gICAgY29uc3QgdGVtcGxhdGUgPSB0eXBlb2YgdGl0bGUgIT09ICdzdHJpbmcnICYmIHRpdGxlICYmICd0ZW1wbGF0ZScgaW4gdGl0bGUgPyB0aXRsZS50ZW1wbGF0ZSA6IG51bGw7XG4gICAgaWYgKHR5cGVvZiB0aXRsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzb2x2ZWQgPSByZXNvbHZlVGl0bGVUZW1wbGF0ZShzdGFzaGVkVGVtcGxhdGUsIHRpdGxlKTtcbiAgICB9IGVsc2UgaWYgKHRpdGxlKSB7XG4gICAgICAgIGlmICgnZGVmYXVsdCcgaW4gdGl0bGUpIHtcbiAgICAgICAgICAgIHJlc29sdmVkID0gcmVzb2x2ZVRpdGxlVGVtcGxhdGUoc3Rhc2hlZFRlbXBsYXRlLCB0aXRsZS5kZWZhdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2Fic29sdXRlJyBpbiB0aXRsZSAmJiB0aXRsZS5hYnNvbHV0ZSkge1xuICAgICAgICAgICAgcmVzb2x2ZWQgPSB0aXRsZS5hYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodGl0bGUgJiYgdHlwZW9mIHRpdGxlICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGVtcGxhdGUsXG4gICAgICAgICAgICBhYnNvbHV0ZTogcmVzb2x2ZWQgfHwgJydcbiAgICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYWJzb2x1dGU6IHJlc29sdmVkIHx8IHRpdGxlIHx8ICcnLFxuICAgICAgICAgICAgdGVtcGxhdGVcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtdGl0bGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-title.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSocialImageMetadataBaseFallback: function() {\n return getSocialImageMetadataBaseFallback;\n },\n isStringOrURL: function() {\n return isStringOrURL;\n },\n resolveAbsoluteUrlWithPathname: function() {\n return resolveAbsoluteUrlWithPathname;\n },\n resolveRelativeUrl: function() {\n return resolveRelativeUrl;\n },\n resolveUrl: function() {\n return resolveUrl;\n }\n});\nconst _path = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../../shared/lib/isomorphic/path */ \"(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isStringOrURL(icon) {\n return typeof icon === 'string' || icon instanceof URL;\n}\nfunction createLocalMetadataBase() {\n // Check if experimental HTTPS is enabled\n const isExperimentalHttps = Boolean(process.env.__NEXT_EXPERIMENTAL_HTTPS);\n const protocol = isExperimentalHttps ? 'https' : 'http';\n return new URL(`${protocol}://localhost:${process.env.PORT || 3000}`);\n}\nfunction getPreviewDeploymentUrl() {\n const origin = process.env.VERCEL_BRANCH_URL || process.env.VERCEL_URL;\n return origin ? new URL(`https://${origin}`) : undefined;\n}\nfunction getProductionDeploymentUrl() {\n const origin = process.env.VERCEL_PROJECT_PRODUCTION_URL;\n return origin ? new URL(`https://${origin}`) : undefined;\n}\nfunction getSocialImageMetadataBaseFallback(metadataBase) {\n const defaultMetadataBase = createLocalMetadataBase();\n const previewDeploymentUrl = getPreviewDeploymentUrl();\n const productionDeploymentUrl = getProductionDeploymentUrl();\n let fallbackMetadataBase;\n if (true) {\n fallbackMetadataBase = defaultMetadataBase;\n } else {}\n return fallbackMetadataBase;\n}\nfunction resolveUrl(url, metadataBase) {\n if (url instanceof URL) return url;\n if (!url) return null;\n try {\n // If we can construct a URL instance from url, ignore metadataBase\n const parsedUrl = new URL(url);\n return parsedUrl;\n } catch {}\n if (!metadataBase) {\n metadataBase = createLocalMetadataBase();\n }\n // Handle relative or absolute paths\n const pathname = metadataBase.pathname || '';\n const joinedPath = _path.default.posix.join(pathname, url);\n return new URL(joinedPath, metadataBase);\n}\n// Resolve with `pathname` if `url` is a relative path.\nfunction resolveRelativeUrl(url, pathname) {\n if (typeof url === 'string' && url.startsWith('./')) {\n return _path.default.posix.resolve(pathname, url);\n }\n return url;\n}\n// The regex is matching logic from packages/next/src/lib/load-custom-routes.ts\nconst FILE_REGEX = /^(?:\\/((?!\\.well-known(?:\\/.*)?)(?:[^/]+\\/)*[^/]+\\.\\w+))(\\/?|$)/i;\nfunction isFilePattern(pathname) {\n return FILE_REGEX.test(pathname);\n}\n// Resolve `pathname` if `url` is a relative path the compose with `metadataBase`.\nfunction resolveAbsoluteUrlWithPathname(url, metadataBase, pathname, { trailingSlash }) {\n // Resolve url with pathname that always starts with `/`\n url = resolveRelativeUrl(url, pathname);\n // Convert string url or URL instance to absolute url string,\n // if there's case needs to be resolved with metadataBase\n let resolvedUrl = '';\n const result = metadataBase ? resolveUrl(url, metadataBase) : url;\n if (typeof result === 'string') {\n resolvedUrl = result;\n } else {\n resolvedUrl = result.pathname === '/' ? result.origin : result.href;\n }\n // Add trailing slash if it's enabled for urls matches the condition\n // - Not external, same origin with metadataBase\n // - Doesn't have query\n if (trailingSlash && !resolvedUrl.endsWith('/')) {\n let isRelative = resolvedUrl.startsWith('/');\n let hasQuery = resolvedUrl.includes('?');\n let isExternal = false;\n let isFileUrl = false;\n if (!isRelative) {\n try {\n const parsedUrl = new URL(resolvedUrl);\n isExternal = metadataBase != null && parsedUrl.origin !== metadataBase.origin;\n isFileUrl = isFilePattern(parsedUrl.pathname);\n } catch {\n // If it's not a valid URL, treat it as external\n isExternal = true;\n }\n if (// Do not apply trailing slash for file like urls, aligning with the behavior with `trailingSlash`\n !isFileUrl && !isExternal && !hasQuery) return `${resolvedUrl}/`;\n }\n }\n return resolvedUrl;\n}\n\n//# sourceMappingURL=resolve-url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS11cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscURBQXFELG1CQUFPLENBQUMseUdBQXFDO0FBQ2xHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixTQUFTLGVBQWUseUJBQXlCO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxPQUFPO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxPQUFPO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsSUFBc0M7QUFDOUM7QUFDQSxNQUFNLEtBQUssRUFFTjtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1RUFBdUUsZUFBZTtBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RCxZQUFZO0FBQzFFO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9yZXNvbHZlcnMvcmVzb2x2ZS11cmwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRTb2NpYWxJbWFnZU1ldGFkYXRhQmFzZUZhbGxiYWNrOiBudWxsLFxuICAgIGlzU3RyaW5nT3JVUkw6IG51bGwsXG4gICAgcmVzb2x2ZUFic29sdXRlVXJsV2l0aFBhdGhuYW1lOiBudWxsLFxuICAgIHJlc29sdmVSZWxhdGl2ZVVybDogbnVsbCxcbiAgICByZXNvbHZlVXJsOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldFNvY2lhbEltYWdlTWV0YWRhdGFCYXNlRmFsbGJhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0U29jaWFsSW1hZ2VNZXRhZGF0YUJhc2VGYWxsYmFjaztcbiAgICB9LFxuICAgIGlzU3RyaW5nT3JVUkw6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNTdHJpbmdPclVSTDtcbiAgICB9LFxuICAgIHJlc29sdmVBYnNvbHV0ZVVybFdpdGhQYXRobmFtZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWU7XG4gICAgfSxcbiAgICByZXNvbHZlUmVsYXRpdmVVcmw6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVJlbGF0aXZlVXJsO1xuICAgIH0sXG4gICAgcmVzb2x2ZVVybDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVXJsO1xuICAgIH1cbn0pO1xuY29uc3QgX3BhdGggPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9pc29tb3JwaGljL3BhdGhcIikpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBpc1N0cmluZ09yVVJMKGljb24pIHtcbiAgICByZXR1cm4gdHlwZW9mIGljb24gPT09ICdzdHJpbmcnIHx8IGljb24gaW5zdGFuY2VvZiBVUkw7XG59XG5mdW5jdGlvbiBjcmVhdGVMb2NhbE1ldGFkYXRhQmFzZSgpIHtcbiAgICAvLyBDaGVjayBpZiBleHBlcmltZW50YWwgSFRUUFMgaXMgZW5hYmxlZFxuICAgIGNvbnN0IGlzRXhwZXJpbWVudGFsSHR0cHMgPSBCb29sZWFuKHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfSFRUUFMpO1xuICAgIGNvbnN0IHByb3RvY29sID0gaXNFeHBlcmltZW50YWxIdHRwcyA/ICdodHRwcycgOiAnaHR0cCc7XG4gICAgcmV0dXJuIG5ldyBVUkwoYCR7cHJvdG9jb2x9Oi8vbG9jYWxob3N0OiR7cHJvY2Vzcy5lbnYuUE9SVCB8fCAzMDAwfWApO1xufVxuZnVuY3Rpb24gZ2V0UHJldmlld0RlcGxveW1lbnRVcmwoKSB7XG4gICAgY29uc3Qgb3JpZ2luID0gcHJvY2Vzcy5lbnYuVkVSQ0VMX0JSQU5DSF9VUkwgfHwgcHJvY2Vzcy5lbnYuVkVSQ0VMX1VSTDtcbiAgICByZXR1cm4gb3JpZ2luID8gbmV3IFVSTChgaHR0cHM6Ly8ke29yaWdpbn1gKSA6IHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIGdldFByb2R1Y3Rpb25EZXBsb3ltZW50VXJsKCkge1xuICAgIGNvbnN0IG9yaWdpbiA9IHByb2Nlc3MuZW52LlZFUkNFTF9QUk9KRUNUX1BST0RVQ1RJT05fVVJMO1xuICAgIHJldHVybiBvcmlnaW4gPyBuZXcgVVJMKGBodHRwczovLyR7b3JpZ2lufWApIDogdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gZ2V0U29jaWFsSW1hZ2VNZXRhZGF0YUJhc2VGYWxsYmFjayhtZXRhZGF0YUJhc2UpIHtcbiAgICBjb25zdCBkZWZhdWx0TWV0YWRhdGFCYXNlID0gY3JlYXRlTG9jYWxNZXRhZGF0YUJhc2UoKTtcbiAgICBjb25zdCBwcmV2aWV3RGVwbG95bWVudFVybCA9IGdldFByZXZpZXdEZXBsb3ltZW50VXJsKCk7XG4gICAgY29uc3QgcHJvZHVjdGlvbkRlcGxveW1lbnRVcmwgPSBnZXRQcm9kdWN0aW9uRGVwbG95bWVudFVybCgpO1xuICAgIGxldCBmYWxsYmFja01ldGFkYXRhQmFzZTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgZmFsbGJhY2tNZXRhZGF0YUJhc2UgPSBkZWZhdWx0TWV0YWRhdGFCYXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZhbGxiYWNrTWV0YWRhdGFCYXNlID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJiBwcmV2aWV3RGVwbG95bWVudFVybCAmJiBwcm9jZXNzLmVudi5WRVJDRUxfRU5WID09PSAncHJldmlldycgPyBwcmV2aWV3RGVwbG95bWVudFVybCA6IG1ldGFkYXRhQmFzZSB8fCBwcm9kdWN0aW9uRGVwbG95bWVudFVybCB8fCBkZWZhdWx0TWV0YWRhdGFCYXNlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsbGJhY2tNZXRhZGF0YUJhc2U7XG59XG5mdW5jdGlvbiByZXNvbHZlVXJsKHVybCwgbWV0YWRhdGFCYXNlKSB7XG4gICAgaWYgKHVybCBpbnN0YW5jZW9mIFVSTCkgcmV0dXJuIHVybDtcbiAgICBpZiAoIXVybCkgcmV0dXJuIG51bGw7XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gSWYgd2UgY2FuIGNvbnN0cnVjdCBhIFVSTCBpbnN0YW5jZSBmcm9tIHVybCwgaWdub3JlIG1ldGFkYXRhQmFzZVxuICAgICAgICBjb25zdCBwYXJzZWRVcmwgPSBuZXcgVVJMKHVybCk7XG4gICAgICAgIHJldHVybiBwYXJzZWRVcmw7XG4gICAgfSBjYXRjaCAge31cbiAgICBpZiAoIW1ldGFkYXRhQmFzZSkge1xuICAgICAgICBtZXRhZGF0YUJhc2UgPSBjcmVhdGVMb2NhbE1ldGFkYXRhQmFzZSgpO1xuICAgIH1cbiAgICAvLyBIYW5kbGUgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aHNcbiAgICBjb25zdCBwYXRobmFtZSA9IG1ldGFkYXRhQmFzZS5wYXRobmFtZSB8fCAnJztcbiAgICBjb25zdCBqb2luZWRQYXRoID0gX3BhdGguZGVmYXVsdC5wb3NpeC5qb2luKHBhdGhuYW1lLCB1cmwpO1xuICAgIHJldHVybiBuZXcgVVJMKGpvaW5lZFBhdGgsIG1ldGFkYXRhQmFzZSk7XG59XG4vLyBSZXNvbHZlIHdpdGggYHBhdGhuYW1lYCBpZiBgdXJsYCBpcyBhIHJlbGF0aXZlIHBhdGguXG5mdW5jdGlvbiByZXNvbHZlUmVsYXRpdmVVcmwodXJsLCBwYXRobmFtZSkge1xuICAgIGlmICh0eXBlb2YgdXJsID09PSAnc3RyaW5nJyAmJiB1cmwuc3RhcnRzV2l0aCgnLi8nKSkge1xuICAgICAgICByZXR1cm4gX3BhdGguZGVmYXVsdC5wb3NpeC5yZXNvbHZlKHBhdGhuYW1lLCB1cmwpO1xuICAgIH1cbiAgICByZXR1cm4gdXJsO1xufVxuLy8gVGhlIHJlZ2V4IGlzIG1hdGNoaW5nIGxvZ2ljIGZyb20gcGFja2FnZXMvbmV4dC9zcmMvbGliL2xvYWQtY3VzdG9tLXJvdXRlcy50c1xuY29uc3QgRklMRV9SRUdFWCA9IC9eKD86XFwvKCg/IVxcLndlbGwta25vd24oPzpcXC8uKik/KSg/OlteL10rXFwvKSpbXi9dK1xcLlxcdyspKShcXC8/fCQpL2k7XG5mdW5jdGlvbiBpc0ZpbGVQYXR0ZXJuKHBhdGhuYW1lKSB7XG4gICAgcmV0dXJuIEZJTEVfUkVHRVgudGVzdChwYXRobmFtZSk7XG59XG4vLyBSZXNvbHZlIGBwYXRobmFtZWAgaWYgYHVybGAgaXMgYSByZWxhdGl2ZSBwYXRoIHRoZSBjb21wb3NlIHdpdGggYG1ldGFkYXRhQmFzZWAuXG5mdW5jdGlvbiByZXNvbHZlQWJzb2x1dGVVcmxXaXRoUGF0aG5hbWUodXJsLCBtZXRhZGF0YUJhc2UsIHBhdGhuYW1lLCB7IHRyYWlsaW5nU2xhc2ggfSkge1xuICAgIC8vIFJlc29sdmUgdXJsIHdpdGggcGF0aG5hbWUgdGhhdCBhbHdheXMgc3RhcnRzIHdpdGggYC9gXG4gICAgdXJsID0gcmVzb2x2ZVJlbGF0aXZlVXJsKHVybCwgcGF0aG5hbWUpO1xuICAgIC8vIENvbnZlcnQgc3RyaW5nIHVybCBvciBVUkwgaW5zdGFuY2UgdG8gYWJzb2x1dGUgdXJsIHN0cmluZyxcbiAgICAvLyBpZiB0aGVyZSdzIGNhc2UgbmVlZHMgdG8gYmUgcmVzb2x2ZWQgd2l0aCBtZXRhZGF0YUJhc2VcbiAgICBsZXQgcmVzb2x2ZWRVcmwgPSAnJztcbiAgICBjb25zdCByZXN1bHQgPSBtZXRhZGF0YUJhc2UgPyByZXNvbHZlVXJsKHVybCwgbWV0YWRhdGFCYXNlKSA6IHVybDtcbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzb2x2ZWRVcmwgPSByZXN1bHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZWRVcmwgPSByZXN1bHQucGF0aG5hbWUgPT09ICcvJyA/IHJlc3VsdC5vcmlnaW4gOiByZXN1bHQuaHJlZjtcbiAgICB9XG4gICAgLy8gQWRkIHRyYWlsaW5nIHNsYXNoIGlmIGl0J3MgZW5hYmxlZCBmb3IgdXJscyBtYXRjaGVzIHRoZSBjb25kaXRpb25cbiAgICAvLyAtIE5vdCBleHRlcm5hbCwgc2FtZSBvcmlnaW4gd2l0aCBtZXRhZGF0YUJhc2VcbiAgICAvLyAtIERvZXNuJ3QgaGF2ZSBxdWVyeVxuICAgIGlmICh0cmFpbGluZ1NsYXNoICYmICFyZXNvbHZlZFVybC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgIGxldCBpc1JlbGF0aXZlID0gcmVzb2x2ZWRVcmwuc3RhcnRzV2l0aCgnLycpO1xuICAgICAgICBsZXQgaGFzUXVlcnkgPSByZXNvbHZlZFVybC5pbmNsdWRlcygnPycpO1xuICAgICAgICBsZXQgaXNFeHRlcm5hbCA9IGZhbHNlO1xuICAgICAgICBsZXQgaXNGaWxlVXJsID0gZmFsc2U7XG4gICAgICAgIGlmICghaXNSZWxhdGl2ZSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRVcmwgPSBuZXcgVVJMKHJlc29sdmVkVXJsKTtcbiAgICAgICAgICAgICAgICBpc0V4dGVybmFsID0gbWV0YWRhdGFCYXNlICE9IG51bGwgJiYgcGFyc2VkVXJsLm9yaWdpbiAhPT0gbWV0YWRhdGFCYXNlLm9yaWdpbjtcbiAgICAgICAgICAgICAgICBpc0ZpbGVVcmwgPSBpc0ZpbGVQYXR0ZXJuKHBhcnNlZFVybC5wYXRobmFtZSk7XG4gICAgICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAgICAgLy8gSWYgaXQncyBub3QgYSB2YWxpZCBVUkwsIHRyZWF0IGl0IGFzIGV4dGVybmFsXG4gICAgICAgICAgICAgICAgaXNFeHRlcm5hbCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoLy8gRG8gbm90IGFwcGx5IHRyYWlsaW5nIHNsYXNoIGZvciBmaWxlIGxpa2UgdXJscywgYWxpZ25pbmcgd2l0aCB0aGUgYmVoYXZpb3Igd2l0aCBgdHJhaWxpbmdTbGFzaGBcbiAgICAgICAgICAgICFpc0ZpbGVVcmwgJiYgIWlzRXh0ZXJuYWwgJiYgIWhhc1F1ZXJ5KSByZXR1cm4gYCR7cmVzb2x2ZWRVcmx9L2A7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkVXJsO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLXVybC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/metadata/resolvers/resolve-url.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/non-nullable.js":
/*!****************************************************!*\
!*** ./node_modules/next/dist/lib/non-nullable.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"nonNullable\", ({\n enumerable: true,\n get: function() {\n return nonNullable;\n }\n}));\nfunction nonNullable(value) {\n return value !== null && value !== undefined;\n}\n\n//# sourceMappingURL=non-nullable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9ub24tbnVsbGFibGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwrQ0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL25vbi1udWxsYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIm5vbk51bGxhYmxlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBub25OdWxsYWJsZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIG5vbk51bGxhYmxlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5vbi1udWxsYWJsZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/non-nullable.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/picocolors.js":
/*!**************************************************!*\
!*** ./node_modules/next/dist/lib/picocolors.js ***!
\**************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// ISC License\n// Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n//\n// https://github.com/alexeyraspopov/picocolors/blob/b6261487e7b81aaab2440e397a356732cad9e342/picocolors.js#L1\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n bgBlack: function() {\n return bgBlack;\n },\n bgBlue: function() {\n return bgBlue;\n },\n bgCyan: function() {\n return bgCyan;\n },\n bgGreen: function() {\n return bgGreen;\n },\n bgMagenta: function() {\n return bgMagenta;\n },\n bgRed: function() {\n return bgRed;\n },\n bgWhite: function() {\n return bgWhite;\n },\n bgYellow: function() {\n return bgYellow;\n },\n black: function() {\n return black;\n },\n blue: function() {\n return blue;\n },\n bold: function() {\n return bold;\n },\n cyan: function() {\n return cyan;\n },\n dim: function() {\n return dim;\n },\n gray: function() {\n return gray;\n },\n green: function() {\n return green;\n },\n hidden: function() {\n return hidden;\n },\n inverse: function() {\n return inverse;\n },\n italic: function() {\n return italic;\n },\n magenta: function() {\n return magenta;\n },\n purple: function() {\n return purple;\n },\n red: function() {\n return red;\n },\n reset: function() {\n return reset;\n },\n strikethrough: function() {\n return strikethrough;\n },\n underline: function() {\n return underline;\n },\n white: function() {\n return white;\n },\n yellow: function() {\n return yellow;\n }\n});\nvar _globalThis;\nconst { env, stdout } = ((_globalThis = globalThis) == null ? void 0 : _globalThis.process) ?? {};\nconst enabled = env && !env.NO_COLOR && (env.FORCE_COLOR || (stdout == null ? void 0 : stdout.isTTY) && !env.CI && env.TERM !== 'dumb');\nconst replaceClose = (str, close, replace, index)=>{\n const start = str.substring(0, index) + replace;\n const end = str.substring(index + close.length);\n const nextIndex = end.indexOf(close);\n return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;\n};\nconst formatter = (open, close, replace = open)=>{\n if (!enabled) return String;\n return (input)=>{\n const string = '' + input;\n const index = string.indexOf(close, open.length);\n return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;\n };\n};\nconst reset = enabled ? (s)=>`\\x1b[0m${s}\\x1b[0m` : String;\nconst bold = formatter('\\x1b[1m', '\\x1b[22m', '\\x1b[22m\\x1b[1m');\nconst dim = formatter('\\x1b[2m', '\\x1b[22m', '\\x1b[22m\\x1b[2m');\nconst italic = formatter('\\x1b[3m', '\\x1b[23m');\nconst underline = formatter('\\x1b[4m', '\\x1b[24m');\nconst inverse = formatter('\\x1b[7m', '\\x1b[27m');\nconst hidden = formatter('\\x1b[8m', '\\x1b[28m');\nconst strikethrough = formatter('\\x1b[9m', '\\x1b[29m');\nconst black = formatter('\\x1b[30m', '\\x1b[39m');\nconst red = formatter('\\x1b[31m', '\\x1b[39m');\nconst green = formatter('\\x1b[32m', '\\x1b[39m');\nconst yellow = formatter('\\x1b[33m', '\\x1b[39m');\nconst blue = formatter('\\x1b[34m', '\\x1b[39m');\nconst magenta = formatter('\\x1b[35m', '\\x1b[39m');\nconst purple = formatter('\\x1b[38;2;173;127;168m', '\\x1b[39m');\nconst cyan = formatter('\\x1b[36m', '\\x1b[39m');\nconst white = formatter('\\x1b[37m', '\\x1b[39m');\nconst gray = formatter('\\x1b[90m', '\\x1b[39m');\nconst bgBlack = formatter('\\x1b[40m', '\\x1b[49m');\nconst bgRed = formatter('\\x1b[41m', '\\x1b[49m');\nconst bgGreen = formatter('\\x1b[42m', '\\x1b[49m');\nconst bgYellow = formatter('\\x1b[43m', '\\x1b[49m');\nconst bgBlue = formatter('\\x1b[44m', '\\x1b[49m');\nconst bgMagenta = formatter('\\x1b[45m', '\\x1b[49m');\nconst bgCyan = formatter('\\x1b[46m', '\\x1b[49m');\nconst bgWhite = formatter('\\x1b[47m', '\\x1b[49m');\n\n//# sourceMappingURL=picocolors.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9waWNvY29sb3JzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0EyQkw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQSxRQUFRLGNBQWM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLEVBQUU7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsRUFBRSxJQUFJLElBQUk7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvcGljb2NvbG9ycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJU0MgTGljZW5zZVxuLy8gQ29weXJpZ2h0IChjKSAyMDIxIEFsZXhleSBSYXNwb3BvdiwgS29zdGlhbnR5biBEZW55c292LCBBbnRvbiBWZXJpbm92XG4vLyBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcbi8vIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmVcbi8vIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMuXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFU1xuLy8gV0lUSCBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1Jcbi8vIEFOWSBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVNcbi8vIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST00gTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTlxuLy8gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0Zcbi8vIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXG4vL1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZXhleXJhc3BvcG92L3BpY29jb2xvcnMvYmxvYi9iNjI2MTQ4N2U3YjgxYWFhYjI0NDBlMzk3YTM1NjczMmNhZDllMzQyL3BpY29jb2xvcnMuanMjTDFcblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYmdCbGFjazogbnVsbCxcbiAgICBiZ0JsdWU6IG51bGwsXG4gICAgYmdDeWFuOiBudWxsLFxuICAgIGJnR3JlZW46IG51bGwsXG4gICAgYmdNYWdlbnRhOiBudWxsLFxuICAgIGJnUmVkOiBudWxsLFxuICAgIGJnV2hpdGU6IG51bGwsXG4gICAgYmdZZWxsb3c6IG51bGwsXG4gICAgYmxhY2s6IG51bGwsXG4gICAgYmx1ZTogbnVsbCxcbiAgICBib2xkOiBudWxsLFxuICAgIGN5YW46IG51bGwsXG4gICAgZGltOiBudWxsLFxuICAgIGdyYXk6IG51bGwsXG4gICAgZ3JlZW46IG51bGwsXG4gICAgaGlkZGVuOiBudWxsLFxuICAgIGludmVyc2U6IG51bGwsXG4gICAgaXRhbGljOiBudWxsLFxuICAgIG1hZ2VudGE6IG51bGwsXG4gICAgcHVycGxlOiBudWxsLFxuICAgIHJlZDogbnVsbCxcbiAgICByZXNldDogbnVsbCxcbiAgICBzdHJpa2V0aHJvdWdoOiBudWxsLFxuICAgIHVuZGVybGluZTogbnVsbCxcbiAgICB3aGl0ZTogbnVsbCxcbiAgICB5ZWxsb3c6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgYmdCbGFjazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBiZ0JsYWNrO1xuICAgIH0sXG4gICAgYmdCbHVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnQmx1ZTtcbiAgICB9LFxuICAgIGJnQ3lhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBiZ0N5YW47XG4gICAgfSxcbiAgICBiZ0dyZWVuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnR3JlZW47XG4gICAgfSxcbiAgICBiZ01hZ2VudGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmdNYWdlbnRhO1xuICAgIH0sXG4gICAgYmdSZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYmdSZWQ7XG4gICAgfSxcbiAgICBiZ1doaXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJnV2hpdGU7XG4gICAgfSxcbiAgICBiZ1llbGxvdzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBiZ1llbGxvdztcbiAgICB9LFxuICAgIGJsYWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGJsYWNrO1xuICAgIH0sXG4gICAgYmx1ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBibHVlO1xuICAgIH0sXG4gICAgYm9sZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBib2xkO1xuICAgIH0sXG4gICAgY3lhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjeWFuO1xuICAgIH0sXG4gICAgZGltOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRpbTtcbiAgICB9LFxuICAgIGdyYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ3JheTtcbiAgICB9LFxuICAgIGdyZWVuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdyZWVuO1xuICAgIH0sXG4gICAgaGlkZGVuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGhpZGRlbjtcbiAgICB9LFxuICAgIGludmVyc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW52ZXJzZTtcbiAgICB9LFxuICAgIGl0YWxpYzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpdGFsaWM7XG4gICAgfSxcbiAgICBtYWdlbnRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1hZ2VudGE7XG4gICAgfSxcbiAgICBwdXJwbGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcHVycGxlO1xuICAgIH0sXG4gICAgcmVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlZDtcbiAgICB9LFxuICAgIHJlc2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc2V0O1xuICAgIH0sXG4gICAgc3RyaWtldGhyb3VnaDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJpa2V0aHJvdWdoO1xuICAgIH0sXG4gICAgdW5kZXJsaW5lOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVybGluZTtcbiAgICB9LFxuICAgIHdoaXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdoaXRlO1xuICAgIH0sXG4gICAgeWVsbG93OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHllbGxvdztcbiAgICB9XG59KTtcbnZhciBfZ2xvYmFsVGhpcztcbmNvbnN0IHsgZW52LCBzdGRvdXQgfSA9ICgoX2dsb2JhbFRoaXMgPSBnbG9iYWxUaGlzKSA9PSBudWxsID8gdm9pZCAwIDogX2dsb2JhbFRoaXMucHJvY2VzcykgPz8ge307XG5jb25zdCBlbmFibGVkID0gZW52ICYmICFlbnYuTk9fQ09MT1IgJiYgKGVudi5GT1JDRV9DT0xPUiB8fCAoc3Rkb3V0ID09IG51bGwgPyB2b2lkIDAgOiBzdGRvdXQuaXNUVFkpICYmICFlbnYuQ0kgJiYgZW52LlRFUk0gIT09ICdkdW1iJyk7XG5jb25zdCByZXBsYWNlQ2xvc2UgPSAoc3RyLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpPT57XG4gICAgY29uc3Qgc3RhcnQgPSBzdHIuc3Vic3RyaW5nKDAsIGluZGV4KSArIHJlcGxhY2U7XG4gICAgY29uc3QgZW5kID0gc3RyLnN1YnN0cmluZyhpbmRleCArIGNsb3NlLmxlbmd0aCk7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gZW5kLmluZGV4T2YoY2xvc2UpO1xuICAgIHJldHVybiB+bmV4dEluZGV4ID8gc3RhcnQgKyByZXBsYWNlQ2xvc2UoZW5kLCBjbG9zZSwgcmVwbGFjZSwgbmV4dEluZGV4KSA6IHN0YXJ0ICsgZW5kO1xufTtcbmNvbnN0IGZvcm1hdHRlciA9IChvcGVuLCBjbG9zZSwgcmVwbGFjZSA9IG9wZW4pPT57XG4gICAgaWYgKCFlbmFibGVkKSByZXR1cm4gU3RyaW5nO1xuICAgIHJldHVybiAoaW5wdXQpPT57XG4gICAgICAgIGNvbnN0IHN0cmluZyA9ICcnICsgaW5wdXQ7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gc3RyaW5nLmluZGV4T2YoY2xvc2UsIG9wZW4ubGVuZ3RoKTtcbiAgICAgICAgcmV0dXJuIH5pbmRleCA/IG9wZW4gKyByZXBsYWNlQ2xvc2Uoc3RyaW5nLCBjbG9zZSwgcmVwbGFjZSwgaW5kZXgpICsgY2xvc2UgOiBvcGVuICsgc3RyaW5nICsgY2xvc2U7XG4gICAgfTtcbn07XG5jb25zdCByZXNldCA9IGVuYWJsZWQgPyAocyk9PmBcXHgxYlswbSR7c31cXHgxYlswbWAgOiBTdHJpbmc7XG5jb25zdCBib2xkID0gZm9ybWF0dGVyKCdcXHgxYlsxbScsICdcXHgxYlsyMm0nLCAnXFx4MWJbMjJtXFx4MWJbMW0nKTtcbmNvbnN0IGRpbSA9IGZvcm1hdHRlcignXFx4MWJbMm0nLCAnXFx4MWJbMjJtJywgJ1xceDFiWzIybVxceDFiWzJtJyk7XG5jb25zdCBpdGFsaWMgPSBmb3JtYXR0ZXIoJ1xceDFiWzNtJywgJ1xceDFiWzIzbScpO1xuY29uc3QgdW5kZXJsaW5lID0gZm9ybWF0dGVyKCdcXHgxYls0bScsICdcXHgxYlsyNG0nKTtcbmNvbnN0IGludmVyc2UgPSBmb3JtYXR0ZXIoJ1xceDFiWzdtJywgJ1xceDFiWzI3bScpO1xuY29uc3QgaGlkZGVuID0gZm9ybWF0dGVyKCdcXHgxYls4bScsICdcXHgxYlsyOG0nKTtcbmNvbnN0IHN0cmlrZXRocm91Z2ggPSBmb3JtYXR0ZXIoJ1xceDFiWzltJywgJ1xceDFiWzI5bScpO1xuY29uc3QgYmxhY2sgPSBmb3JtYXR0ZXIoJ1xceDFiWzMwbScsICdcXHgxYlszOW0nKTtcbmNvbnN0IHJlZCA9IGZvcm1hdHRlcignXFx4MWJbMzFtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgZ3JlZW4gPSBmb3JtYXR0ZXIoJ1xceDFiWzMybScsICdcXHgxYlszOW0nKTtcbmNvbnN0IHllbGxvdyA9IGZvcm1hdHRlcignXFx4MWJbMzNtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgYmx1ZSA9IGZvcm1hdHRlcignXFx4MWJbMzRtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgbWFnZW50YSA9IGZvcm1hdHRlcignXFx4MWJbMzVtJywgJ1xceDFiWzM5bScpO1xuY29uc3QgcHVycGxlID0gZm9ybWF0dGVyKCdcXHgxYlszODsyOzE3MzsxMjc7MTY4bScsICdcXHgxYlszOW0nKTtcbmNvbnN0IGN5YW4gPSBmb3JtYXR0ZXIoJ1xceDFiWzM2bScsICdcXHgxYlszOW0nKTtcbmNvbnN0IHdoaXRlID0gZm9ybWF0dGVyKCdcXHgxYlszN20nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBncmF5ID0gZm9ybWF0dGVyKCdcXHgxYls5MG0nLCAnXFx4MWJbMzltJyk7XG5jb25zdCBiZ0JsYWNrID0gZm9ybWF0dGVyKCdcXHgxYls0MG0nLCAnXFx4MWJbNDltJyk7XG5jb25zdCBiZ1JlZCA9IGZvcm1hdHRlcignXFx4MWJbNDFtJywgJ1xceDFiWzQ5bScpO1xuY29uc3QgYmdHcmVlbiA9IGZvcm1hdHRlcignXFx4MWJbNDJtJywgJ1xceDFiWzQ5bScpO1xuY29uc3QgYmdZZWxsb3cgPSBmb3JtYXR0ZXIoJ1xceDFiWzQzbScsICdcXHgxYls0OW0nKTtcbmNvbnN0IGJnQmx1ZSA9IGZvcm1hdHRlcignXFx4MWJbNDRtJywgJ1xceDFiWzQ5bScpO1xuY29uc3QgYmdNYWdlbnRhID0gZm9ybWF0dGVyKCdcXHgxYls0NW0nLCAnXFx4MWJbNDltJyk7XG5jb25zdCBiZ0N5YW4gPSBmb3JtYXR0ZXIoJ1xceDFiWzQ2bScsICdcXHgxYls0OW0nKTtcbmNvbnN0IGJnV2hpdGUgPSBmb3JtYXR0ZXIoJ1xceDFiWzQ3bScsICdcXHgxYls0OW0nKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGljb2NvbG9ycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/picocolors.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/scheduler.js":
/*!*************************************************!*\
!*** ./node_modules/next/dist/lib/scheduler.js ***!
\*************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n atLeastOneTask: function() {\n return atLeastOneTask;\n },\n scheduleImmediate: function() {\n return scheduleImmediate;\n },\n scheduleOnNextTick: function() {\n return scheduleOnNextTick;\n },\n waitAtLeastOneReactRenderTask: function() {\n return waitAtLeastOneReactRenderTask;\n }\n});\nconst scheduleOnNextTick = (cb)=>{\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(()=>{\n if (false) {} else {\n process.nextTick(cb);\n }\n });\n};\nconst scheduleImmediate = (cb)=>{\n if (false) {} else {\n setImmediate(cb);\n }\n};\nfunction atLeastOneTask() {\n return new Promise((resolve)=>scheduleImmediate(resolve));\n}\nfunction waitAtLeastOneReactRenderTask() {\n if (false) {} else {\n return new Promise((r)=>setImmediate(r));\n }\n}\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNWO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNOO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvc2NoZWR1bGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXRMZWFzdE9uZVRhc2s6IG51bGwsXG4gICAgc2NoZWR1bGVJbW1lZGlhdGU6IG51bGwsXG4gICAgc2NoZWR1bGVPbk5leHRUaWNrOiBudWxsLFxuICAgIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGF0TGVhc3RPbmVUYXNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGF0TGVhc3RPbmVUYXNrO1xuICAgIH0sXG4gICAgc2NoZWR1bGVJbW1lZGlhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVJbW1lZGlhdGU7XG4gICAgfSxcbiAgICBzY2hlZHVsZU9uTmV4dFRpY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVPbk5leHRUaWNrO1xuICAgIH0sXG4gICAgd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s7XG4gICAgfVxufSk7XG5jb25zdCBzY2hlZHVsZU9uTmV4dFRpY2sgPSAoY2IpPT57XG4gICAgLy8gV2UgdXNlIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKSBoZXJlIHNvIHRoYXQgdGhlIG9wZXJhdGlvbiBpcyBzY2hlZHVsZWQgYXRcbiAgICAvLyB0aGUgZW5kIG9mIHRoZSBwcm9taXNlIGpvYiBxdWV1ZSwgd2UgdGhlbiBhZGQgaXQgdG8gdGhlIG5leHQgcHJvY2VzcyB0aWNrXG4gICAgLy8gdG8gZW5zdXJlIGl0J3MgZXZhbHVhdGVkIGFmdGVyd2FyZHMuXG4gICAgLy9cbiAgICAvLyBUaGlzIHdhcyBpbnNwaXJlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIERhdGFMb2FkZXIgaW50ZXJmYWNlOiBodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC9kYXRhbG9hZGVyL2Jsb2IvZDMzNmJkMTUyODI2NjRlMGJlNGI0YTY1N2NiNzk2ZjA5YmFmYmM2Yi9zcmMvaW5kZXguanMjTDIxMy1MMjU1XG4gICAgLy9cbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICAgICAgc2V0VGltZW91dChjYiwgMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGNiKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmNvbnN0IHNjaGVkdWxlSW1tZWRpYXRlID0gKGNiKT0+e1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZXRJbW1lZGlhdGUoY2IpO1xuICAgIH1cbn07XG5mdW5jdGlvbiBhdExlYXN0T25lVGFzaygpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpPT5zY2hlZHVsZUltbWVkaWF0ZShyZXNvbHZlKSk7XG59XG5mdW5jdGlvbiB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaygpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyKT0+c2V0VGltZW91dChyLCAwKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyKT0+c2V0SW1tZWRpYXRlKHIpKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjaGVkdWxlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/scheduler.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/lib/url.js":
/*!*******************************************!*\
!*** ./node_modules/next/dist/lib/url.js ***!
\*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isFullStringUrl: function() {\n return isFullStringUrl;\n },\n parseReqUrl: function() {\n return parseReqUrl;\n },\n parseUrl: function() {\n return parseUrl;\n },\n stripNextRscUnionQuery: function() {\n return stripNextRscUnionQuery;\n }\n});\nconst _approuterheaders = __webpack_require__(/*! ../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst DUMMY_ORIGIN = 'http://n';\nfunction isFullStringUrl(url) {\n return /https?:\\/\\//.test(url);\n}\nfunction parseUrl(url) {\n let parsed = undefined;\n try {\n parsed = new URL(url, DUMMY_ORIGIN);\n } catch {}\n return parsed;\n}\nfunction parseReqUrl(url) {\n const parsedUrl = parseUrl(url);\n if (!parsedUrl) {\n return;\n }\n const query = {};\n for (const key of parsedUrl.searchParams.keys()){\n const values = parsedUrl.searchParams.getAll(key);\n query[key] = values.length > 1 ? values : values[0];\n }\n const legacyUrl = {\n query,\n hash: parsedUrl.hash,\n search: parsedUrl.search,\n path: parsedUrl.pathname,\n pathname: parsedUrl.pathname,\n href: `${parsedUrl.pathname}${parsedUrl.search}${parsedUrl.hash}`,\n host: '',\n hostname: '',\n auth: '',\n protocol: '',\n slashes: null,\n port: ''\n };\n return legacyUrl;\n}\nfunction stripNextRscUnionQuery(relativeUrl) {\n const urlInstance = new URL(relativeUrl, DUMMY_ORIGIN);\n urlInstance.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY);\n return urlInstance.pathname + urlInstance.search;\n}\n\n//# sourceMappingURL=url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi91cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDBCQUEwQixtQkFBTyxDQUFDLHVIQUF5QztBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3VybC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzRnVsbFN0cmluZ1VybDogbnVsbCxcbiAgICBwYXJzZVJlcVVybDogbnVsbCxcbiAgICBwYXJzZVVybDogbnVsbCxcbiAgICBzdHJpcE5leHRSc2NVbmlvblF1ZXJ5OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGlzRnVsbFN0cmluZ1VybDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0Z1bGxTdHJpbmdVcmw7XG4gICAgfSxcbiAgICBwYXJzZVJlcVVybDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwYXJzZVJlcVVybDtcbiAgICB9LFxuICAgIHBhcnNlVXJsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlVXJsO1xuICAgIH0sXG4gICAgc3RyaXBOZXh0UnNjVW5pb25RdWVyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzdHJpcE5leHRSc2NVbmlvblF1ZXJ5O1xuICAgIH1cbn0pO1xuY29uc3QgX2FwcHJvdXRlcmhlYWRlcnMgPSByZXF1aXJlKFwiLi4vY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzXCIpO1xuY29uc3QgRFVNTVlfT1JJR0lOID0gJ2h0dHA6Ly9uJztcbmZ1bmN0aW9uIGlzRnVsbFN0cmluZ1VybCh1cmwpIHtcbiAgICByZXR1cm4gL2h0dHBzPzpcXC9cXC8vLnRlc3QodXJsKTtcbn1cbmZ1bmN0aW9uIHBhcnNlVXJsKHVybCkge1xuICAgIGxldCBwYXJzZWQgPSB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgICAgcGFyc2VkID0gbmV3IFVSTCh1cmwsIERVTU1ZX09SSUdJTik7XG4gICAgfSBjYXRjaCAge31cbiAgICByZXR1cm4gcGFyc2VkO1xufVxuZnVuY3Rpb24gcGFyc2VSZXFVcmwodXJsKSB7XG4gICAgY29uc3QgcGFyc2VkVXJsID0gcGFyc2VVcmwodXJsKTtcbiAgICBpZiAoIXBhcnNlZFVybCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgcGFyc2VkVXJsLnNlYXJjaFBhcmFtcy5rZXlzKCkpe1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBwYXJzZWRVcmwuc2VhcmNoUGFyYW1zLmdldEFsbChrZXkpO1xuICAgICAgICBxdWVyeVtrZXldID0gdmFsdWVzLmxlbmd0aCA+IDEgPyB2YWx1ZXMgOiB2YWx1ZXNbMF07XG4gICAgfVxuICAgIGNvbnN0IGxlZ2FjeVVybCA9IHtcbiAgICAgICAgcXVlcnksXG4gICAgICAgIGhhc2g6IHBhcnNlZFVybC5oYXNoLFxuICAgICAgICBzZWFyY2g6IHBhcnNlZFVybC5zZWFyY2gsXG4gICAgICAgIHBhdGg6IHBhcnNlZFVybC5wYXRobmFtZSxcbiAgICAgICAgcGF0aG5hbWU6IHBhcnNlZFVybC5wYXRobmFtZSxcbiAgICAgICAgaHJlZjogYCR7cGFyc2VkVXJsLnBhdGhuYW1lfSR7cGFyc2VkVXJsLnNlYXJjaH0ke3BhcnNlZFVybC5oYXNofWAsXG4gICAgICAgIGhvc3Q6ICcnLFxuICAgICAgICBob3N0bmFtZTogJycsXG4gICAgICAgIGF1dGg6ICcnLFxuICAgICAgICBwcm90b2NvbDogJycsXG4gICAgICAgIHNsYXNoZXM6IG51bGwsXG4gICAgICAgIHBvcnQ6ICcnXG4gICAgfTtcbiAgICByZXR1cm4gbGVnYWN5VXJsO1xufVxuZnVuY3Rpb24gc3RyaXBOZXh0UnNjVW5pb25RdWVyeShyZWxhdGl2ZVVybCkge1xuICAgIGNvbnN0IHVybEluc3RhbmNlID0gbmV3IFVSTChyZWxhdGl2ZVVybCwgRFVNTVlfT1JJR0lOKTtcbiAgICB1cmxJbnN0YW5jZS5zZWFyY2hQYXJhbXMuZGVsZXRlKF9hcHByb3V0ZXJoZWFkZXJzLk5FWFRfUlNDX1VOSU9OX1FVRVJZKTtcbiAgICByZXR1cm4gdXJsSW5zdGFuY2UucGF0aG5hbWUgKyB1cmxJbnN0YW5jZS5zZWFyY2g7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVybC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/lib/url.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js":
/*!*************************************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js ***!
\*************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js")
module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js")
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/after/after.js":
/*!******************************************************!*\
!*** ./node_modules/next/dist/server/after/after.js ***!
\******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"after\", ({\n enumerable: true,\n get: function() {\n return after;\n }\n}));\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nfunction after(task) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n // TODO(after): the linked docs page talks about *dynamic* APIs, which after soon won't be anymore\n throw Object.defineProperty(new Error('`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context'), \"__NEXT_ERROR_CODE\", {\n value: \"E468\",\n enumerable: false,\n configurable: true\n });\n }\n const { afterContext } = workStore;\n return afterContext.after(task);\n}\n\n//# sourceMappingURL=after.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hZnRlci9hZnRlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLGtDQUFrQyxtQkFBTyxDQUFDLGdGQUEyQztBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsWUFBWSxlQUFlO0FBQzNCO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FmdGVyL2FmdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiYWZ0ZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFmdGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmZ1bmN0aW9uIGFmdGVyKHRhc2spIHtcbiAgICBjb25zdCB3b3JrU3RvcmUgPSBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAoIXdvcmtTdG9yZSkge1xuICAgICAgICAvLyBUT0RPKGFmdGVyKTogdGhlIGxpbmtlZCBkb2NzIHBhZ2UgdGFsa3MgYWJvdXQgKmR5bmFtaWMqIEFQSXMsIHdoaWNoIGFmdGVyIHNvb24gd29uJ3QgYmUgYW55bW9yZVxuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdgYWZ0ZXJgIHdhcyBjYWxsZWQgb3V0c2lkZSBhIHJlcXVlc3Qgc2NvcGUuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1keW5hbWljLWFwaS13cm9uZy1jb250ZXh0JyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTQ2OFwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHsgYWZ0ZXJDb250ZXh0IH0gPSB3b3JrU3RvcmU7XG4gICAgcmV0dXJuIGFmdGVyQ29udGV4dC5hZnRlcih0YXNrKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWZ0ZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/after/after.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/after/index.js":
/*!******************************************************!*\
!*** ./node_modules/next/dist/server/after/index.js ***!
\******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && 0;\n_export_star(__webpack_require__(/*! ./after */ \"(rsc)/./node_modules/next/dist/server/after/after.js\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hZnRlci9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLEtBQUssQ0FBNEI7QUFDakMsYUFBYSxtQkFBTyxDQUFDLHFFQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYWZ0ZXIvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIF9fZXhwb3J0KHJlcXVpcmUoXCIuL2FmdGVyXCIpKTtcbl9leHBvcnRfc3RhcihyZXF1aXJlKFwiLi9hZnRlclwiKSwgZXhwb3J0cyk7XG5mdW5jdGlvbiBfZXhwb3J0X3N0YXIoZnJvbSwgdG8pIHtcbiAgICBPYmplY3Qua2V5cyhmcm9tKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHtcbiAgICAgICAgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodG8sIGspKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodG8sIGssIHtcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tW2tdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZyb207XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/after/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/server/api-utils/get-cookie-parser.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getCookieParser\", ({\n enumerable: true,\n get: function() {\n return getCookieParser;\n }\n}));\nfunction getCookieParser(headers) {\n return function parseCookie() {\n const { cookie } = headers;\n if (!cookie) {\n return {};\n }\n const { parse: parseCookieFn } = __webpack_require__(/*! next/dist/compiled/cookie */ \"(rsc)/./node_modules/next/dist/compiled/cookie/index.js\");\n return parseCookieFn(Array.isArray(cookie) ? cookie.join('; ') : cookie);\n };\n}\n\n//# sourceMappingURL=get-cookie-parser.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcGktdXRpbHMvZ2V0LWNvb2tpZS1wYXJzZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixtREFBa0Q7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0EsZ0JBQWdCLFNBQVM7QUFDekI7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHVCQUF1QixFQUFFLG1CQUFPLENBQUMsMEZBQTJCO0FBQzVFLG9FQUFvRTtBQUNwRTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcGktdXRpbHMvZ2V0LWNvb2tpZS1wYXJzZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXRDb29raWVQYXJzZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldENvb2tpZVBhcnNlcjtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGdldENvb2tpZVBhcnNlcihoZWFkZXJzKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHBhcnNlQ29va2llKCkge1xuICAgICAgICBjb25zdCB7IGNvb2tpZSB9ID0gaGVhZGVycztcbiAgICAgICAgaWYgKCFjb29raWUpIHtcbiAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHBhcnNlOiBwYXJzZUNvb2tpZUZuIH0gPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvY29va2llJyk7XG4gICAgICAgIHJldHVybiBwYXJzZUNvb2tpZUZuKEFycmF5LmlzQXJyYXkoY29va2llKSA/IGNvb2tpZS5qb2luKCc7ICcpIDogY29va2llKTtcbiAgICB9O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtY29va2llLXBhcnNlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/api-utils/index.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/server/api-utils/index.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ApiError: function() {\n return ApiError;\n },\n COOKIE_NAME_PRERENDER_BYPASS: function() {\n return COOKIE_NAME_PRERENDER_BYPASS;\n },\n COOKIE_NAME_PRERENDER_DATA: function() {\n return COOKIE_NAME_PRERENDER_DATA;\n },\n RESPONSE_LIMIT_DEFAULT: function() {\n return RESPONSE_LIMIT_DEFAULT;\n },\n SYMBOL_CLEARED_COOKIES: function() {\n return SYMBOL_CLEARED_COOKIES;\n },\n SYMBOL_PREVIEW_DATA: function() {\n return SYMBOL_PREVIEW_DATA;\n },\n checkIsOnDemandRevalidate: function() {\n return checkIsOnDemandRevalidate;\n },\n clearPreviewData: function() {\n return clearPreviewData;\n },\n redirect: function() {\n return redirect;\n },\n sendError: function() {\n return sendError;\n },\n sendStatusCode: function() {\n return sendStatusCode;\n },\n setLazyProp: function() {\n return setLazyProp;\n },\n wrapApiHandler: function() {\n return wrapApiHandler;\n }\n});\nconst _headers = __webpack_require__(/*! ../web/spec-extension/adapters/headers */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/headers.js\");\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants1 = __webpack_require__(/*! ../lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nfunction wrapApiHandler(page, handler) {\n return (...args)=>{\n (0, _tracer.getTracer)().setRootSpanAttribute('next.route', page);\n // Call API route method\n return (0, _tracer.getTracer)().trace(_constants1.NodeSpan.runHandler, {\n spanName: `executing api route (pages) ${page}`\n }, ()=>handler(...args));\n };\n}\nfunction sendStatusCode(res, statusCode) {\n res.statusCode = statusCode;\n return res;\n}\nfunction redirect(res, statusOrUrl, url) {\n if (typeof statusOrUrl === 'string') {\n url = statusOrUrl;\n statusOrUrl = 307;\n }\n if (typeof statusOrUrl !== 'number' || typeof url !== 'string') {\n throw Object.defineProperty(new Error(`Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`), \"__NEXT_ERROR_CODE\", {\n value: \"E389\",\n enumerable: false,\n configurable: true\n });\n }\n res.writeHead(statusOrUrl, {\n Location: url\n });\n res.write(url);\n res.end();\n return res;\n}\nfunction checkIsOnDemandRevalidate(req, previewProps) {\n const headers = _headers.HeadersAdapter.from(req.headers);\n const previewModeId = headers.get(_constants.PRERENDER_REVALIDATE_HEADER);\n const isOnDemandRevalidate = previewModeId === previewProps.previewModeId;\n const revalidateOnlyGenerated = headers.has(_constants.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER);\n return {\n isOnDemandRevalidate,\n revalidateOnlyGenerated\n };\n}\nconst COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`;\nconst COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`;\nconst RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024;\nconst SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA);\nconst SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS);\nfunction clearPreviewData(res, options = {}) {\n if (SYMBOL_CLEARED_COOKIES in res) {\n return res;\n }\n const { serialize } = __webpack_require__(/*! next/dist/compiled/cookie */ \"(rsc)/./node_modules/next/dist/compiled/cookie/index.js\");\n const previous = res.getHeader('Set-Cookie');\n res.setHeader(`Set-Cookie`, [\n ...typeof previous === 'string' ? [\n previous\n ] : Array.isArray(previous) ? previous : [],\n serialize(COOKIE_NAME_PRERENDER_BYPASS, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: false ? 0 : 'lax',\n secure: \"development\" !== 'development',\n path: '/',\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n }),\n serialize(COOKIE_NAME_PRERENDER_DATA, '', {\n // To delete a cookie, set `expires` to a date in the past:\n // https://tools.ietf.org/html/rfc6265#section-4.1.1\n // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted.\n expires: new Date(0),\n httpOnly: true,\n sameSite: false ? 0 : 'lax',\n secure: \"development\" !== 'development',\n path: '/',\n ...options.path !== undefined ? {\n path: options.path\n } : undefined\n })\n ]);\n Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, {\n value: true,\n enumerable: false\n });\n return res;\n}\nclass ApiError extends Error {\n constructor(statusCode, message){\n super(message);\n this.statusCode = statusCode;\n }\n}\nfunction sendError(res, statusCode, message) {\n res.statusCode = statusCode;\n res.statusMessage = message;\n res.end(message);\n}\nfunction setLazyProp({ req }, prop, getter) {\n const opts = {\n configurable: true,\n enumerable: true\n };\n const optsReset = {\n ...opts,\n writable: true\n };\n Object.defineProperty(req, prop, {\n ...opts,\n get: ()=>{\n const value = getter();\n // we set the property on the object to avoid recalculating it\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n return value;\n },\n set: (value)=>{\n Object.defineProperty(req, prop, {\n ...optsReset,\n value\n });\n }\n });\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcGktdXRpbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBY0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLDRIQUF3QztBQUNqRSxtQkFBbUIsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDaEQsZ0JBQWdCLG1CQUFPLENBQUMsc0ZBQXFCO0FBQzdDLG9CQUFvQixtQkFBTyxDQUFDLDRGQUF3QjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFELEtBQUs7QUFDMUQsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQSxZQUFZLFlBQVksRUFBRSxtQkFBTyxDQUFDLDBGQUEyQjtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLE1BQXNDLEdBQUcsQ0FBTTtBQUNyRSxvQkFBb0IsYUFBb0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsTUFBc0MsR0FBRyxDQUFNO0FBQ3JFLG9CQUFvQixhQUFvQjtBQUN4QztBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2QsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLEtBQUs7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwaS11dGlscy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFwaUVycm9yOiBudWxsLFxuICAgIENPT0tJRV9OQU1FX1BSRVJFTkRFUl9CWVBBU1M6IG51bGwsXG4gICAgQ09PS0lFX05BTUVfUFJFUkVOREVSX0RBVEE6IG51bGwsXG4gICAgUkVTUE9OU0VfTElNSVRfREVGQVVMVDogbnVsbCxcbiAgICBTWU1CT0xfQ0xFQVJFRF9DT09LSUVTOiBudWxsLFxuICAgIFNZTUJPTF9QUkVWSUVXX0RBVEE6IG51bGwsXG4gICAgY2hlY2tJc09uRGVtYW5kUmV2YWxpZGF0ZTogbnVsbCxcbiAgICBjbGVhclByZXZpZXdEYXRhOiBudWxsLFxuICAgIHJlZGlyZWN0OiBudWxsLFxuICAgIHNlbmRFcnJvcjogbnVsbCxcbiAgICBzZW5kU3RhdHVzQ29kZTogbnVsbCxcbiAgICBzZXRMYXp5UHJvcDogbnVsbCxcbiAgICB3cmFwQXBpSGFuZGxlcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBBcGlFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBcGlFcnJvcjtcbiAgICB9LFxuICAgIENPT0tJRV9OQU1FX1BSRVJFTkRFUl9CWVBBU1M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQ09PS0lFX05BTUVfUFJFUkVOREVSX0JZUEFTUztcbiAgICB9LFxuICAgIENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBO1xuICAgIH0sXG4gICAgUkVTUE9OU0VfTElNSVRfREVGQVVMVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSRVNQT05TRV9MSU1JVF9ERUZBVUxUO1xuICAgIH0sXG4gICAgU1lNQk9MX0NMRUFSRURfQ09PS0lFUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTWU1CT0xfQ0xFQVJFRF9DT09LSUVTO1xuICAgIH0sXG4gICAgU1lNQk9MX1BSRVZJRVdfREFUQTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTWU1CT0xfUFJFVklFV19EQVRBO1xuICAgIH0sXG4gICAgY2hlY2tJc09uRGVtYW5kUmV2YWxpZGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjaGVja0lzT25EZW1hbmRSZXZhbGlkYXRlO1xuICAgIH0sXG4gICAgY2xlYXJQcmV2aWV3RGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjbGVhclByZXZpZXdEYXRhO1xuICAgIH0sXG4gICAgcmVkaXJlY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVkaXJlY3Q7XG4gICAgfSxcbiAgICBzZW5kRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2VuZEVycm9yO1xuICAgIH0sXG4gICAgc2VuZFN0YXR1c0NvZGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2VuZFN0YXR1c0NvZGU7XG4gICAgfSxcbiAgICBzZXRMYXp5UHJvcDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZXRMYXp5UHJvcDtcbiAgICB9LFxuICAgIHdyYXBBcGlIYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdyYXBBcGlIYW5kbGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX2hlYWRlcnMgPSByZXF1aXJlKFwiLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL2hlYWRlcnNcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uLy4uL2xpYi9jb25zdGFudHNcIik7XG5jb25zdCBfdHJhY2VyID0gcmVxdWlyZShcIi4uL2xpYi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfY29uc3RhbnRzMSA9IHJlcXVpcmUoXCIuLi9saWIvdHJhY2UvY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gd3JhcEFwaUhhbmRsZXIocGFnZSwgaGFuZGxlcikge1xuICAgIHJldHVybiAoLi4uYXJncyk9PntcbiAgICAgICAgKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnNldFJvb3RTcGFuQXR0cmlidXRlKCduZXh0LnJvdXRlJywgcGFnZSk7XG4gICAgICAgIC8vIENhbGwgQVBJIHJvdXRlIG1ldGhvZFxuICAgICAgICByZXR1cm4gKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLnRyYWNlKF9jb25zdGFudHMxLk5vZGVTcGFuLnJ1bkhhbmRsZXIsIHtcbiAgICAgICAgICAgIHNwYW5OYW1lOiBgZXhlY3V0aW5nIGFwaSByb3V0ZSAocGFnZXMpICR7cGFnZX1gXG4gICAgICAgIH0sICgpPT5oYW5kbGVyKC4uLmFyZ3MpKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gc2VuZFN0YXR1c0NvZGUocmVzLCBzdGF0dXNDb2RlKSB7XG4gICAgcmVzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgIHJldHVybiByZXM7XG59XG5mdW5jdGlvbiByZWRpcmVjdChyZXMsIHN0YXR1c09yVXJsLCB1cmwpIHtcbiAgICBpZiAodHlwZW9mIHN0YXR1c09yVXJsID09PSAnc3RyaW5nJykge1xuICAgICAgICB1cmwgPSBzdGF0dXNPclVybDtcbiAgICAgICAgc3RhdHVzT3JVcmwgPSAzMDc7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygc3RhdHVzT3JVcmwgIT09ICdudW1iZXInIHx8IHR5cGVvZiB1cmwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFsaWQgcmVkaXJlY3QgYXJndW1lbnRzLiBQbGVhc2UgdXNlIGEgc2luZ2xlIGFyZ3VtZW50IFVSTCwgZS5nLiByZXMucmVkaXJlY3QoJy9kZXN0aW5hdGlvbicpIG9yIHVzZSBhIHN0YXR1cyBjb2RlIGFuZCBVUkwsIGUuZy4gcmVzLnJlZGlyZWN0KDMwNywgJy9kZXN0aW5hdGlvbicpLmApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkUzODlcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXMud3JpdGVIZWFkKHN0YXR1c09yVXJsLCB7XG4gICAgICAgIExvY2F0aW9uOiB1cmxcbiAgICB9KTtcbiAgICByZXMud3JpdGUodXJsKTtcbiAgICByZXMuZW5kKCk7XG4gICAgcmV0dXJuIHJlcztcbn1cbmZ1bmN0aW9uIGNoZWNrSXNPbkRlbWFuZFJldmFsaWRhdGUocmVxLCBwcmV2aWV3UHJvcHMpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gX2hlYWRlcnMuSGVhZGVyc0FkYXB0ZXIuZnJvbShyZXEuaGVhZGVycyk7XG4gICAgY29uc3QgcHJldmlld01vZGVJZCA9IGhlYWRlcnMuZ2V0KF9jb25zdGFudHMuUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSKTtcbiAgICBjb25zdCBpc09uRGVtYW5kUmV2YWxpZGF0ZSA9IHByZXZpZXdNb2RlSWQgPT09IHByZXZpZXdQcm9wcy5wcmV2aWV3TW9kZUlkO1xuICAgIGNvbnN0IHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkID0gaGVhZGVycy5oYXMoX2NvbnN0YW50cy5QUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVIpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlLFxuICAgICAgICByZXZhbGlkYXRlT25seUdlbmVyYXRlZFxuICAgIH07XG59XG5jb25zdCBDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTID0gYF9fcHJlcmVuZGVyX2J5cGFzc2A7XG5jb25zdCBDT09LSUVfTkFNRV9QUkVSRU5ERVJfREFUQSA9IGBfX25leHRfcHJldmlld19kYXRhYDtcbmNvbnN0IFJFU1BPTlNFX0xJTUlUX0RFRkFVTFQgPSA0ICogMTAyNCAqIDEwMjQ7XG5jb25zdCBTWU1CT0xfUFJFVklFV19EQVRBID0gU3ltYm9sKENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBKTtcbmNvbnN0IFNZTUJPTF9DTEVBUkVEX0NPT0tJRVMgPSBTeW1ib2woQ09PS0lFX05BTUVfUFJFUkVOREVSX0JZUEFTUyk7XG5mdW5jdGlvbiBjbGVhclByZXZpZXdEYXRhKHJlcywgb3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKFNZTUJPTF9DTEVBUkVEX0NPT0tJRVMgaW4gcmVzKSB7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGNvbnN0IHsgc2VyaWFsaXplIH0gPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvY29va2llJyk7XG4gICAgY29uc3QgcHJldmlvdXMgPSByZXMuZ2V0SGVhZGVyKCdTZXQtQ29va2llJyk7XG4gICAgcmVzLnNldEhlYWRlcihgU2V0LUNvb2tpZWAsIFtcbiAgICAgICAgLi4udHlwZW9mIHByZXZpb3VzID09PSAnc3RyaW5nJyA/IFtcbiAgICAgICAgICAgIHByZXZpb3VzXG4gICAgICAgIF0gOiBBcnJheS5pc0FycmF5KHByZXZpb3VzKSA/IHByZXZpb3VzIDogW10sXG4gICAgICAgIHNlcmlhbGl6ZShDT09LSUVfTkFNRV9QUkVSRU5ERVJfQllQQVNTLCAnJywge1xuICAgICAgICAgICAgLy8gVG8gZGVsZXRlIGEgY29va2llLCBzZXQgYGV4cGlyZXNgIHRvIGEgZGF0ZSBpbiB0aGUgcGFzdDpcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MjY1I3NlY3Rpb24tNC4xLjFcbiAgICAgICAgICAgIC8vIGBNYXgtQWdlOiAwYCBpcyBub3QgdmFsaWQsIHRodXMgaWdub3JlZCwgYW5kIHRoZSBjb29raWUgaXMgcGVyc2lzdGVkLlxuICAgICAgICAgICAgZXhwaXJlczogbmV3IERhdGUoMCksXG4gICAgICAgICAgICBodHRwT25seTogdHJ1ZSxcbiAgICAgICAgICAgIHNhbWVTaXRlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyA/ICdub25lJyA6ICdsYXgnLFxuICAgICAgICAgICAgc2VjdXJlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyxcbiAgICAgICAgICAgIHBhdGg6ICcvJyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMucGF0aCAhPT0gdW5kZWZpbmVkID8ge1xuICAgICAgICAgICAgICAgIHBhdGg6IG9wdGlvbnMucGF0aFxuICAgICAgICAgICAgfSA6IHVuZGVmaW5lZFxuICAgICAgICB9KSxcbiAgICAgICAgc2VyaWFsaXplKENPT0tJRV9OQU1FX1BSRVJFTkRFUl9EQVRBLCAnJywge1xuICAgICAgICAgICAgLy8gVG8gZGVsZXRlIGEgY29va2llLCBzZXQgYGV4cGlyZXNgIHRvIGEgZGF0ZSBpbiB0aGUgcGFzdDpcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2MjY1I3NlY3Rpb24tNC4xLjFcbiAgICAgICAgICAgIC8vIGBNYXgtQWdlOiAwYCBpcyBub3QgdmFsaWQsIHRodXMgaWdub3JlZCwgYW5kIHRoZSBjb29raWUgaXMgcGVyc2lzdGVkLlxuICAgICAgICAgICAgZXhwaXJlczogbmV3IERhdGUoMCksXG4gICAgICAgICAgICBodHRwT25seTogdHJ1ZSxcbiAgICAgICAgICAgIHNhbWVTaXRlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyA/ICdub25lJyA6ICdsYXgnLFxuICAgICAgICAgICAgc2VjdXJlOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyxcbiAgICAgICAgICAgIHBhdGg6ICcvJyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMucGF0aCAhPT0gdW5kZWZpbmVkID8ge1xuICAgICAgICAgICAgICAgIHBhdGg6IG9wdGlvbnMucGF0aFxuICAgICAgICAgICAgfSA6IHVuZGVmaW5lZFxuICAgICAgICB9KVxuICAgIF0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXMsIFNZTUJPTF9DTEVBUkVEX0NPT0tJRVMsIHtcbiAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlcztcbn1cbmNsYXNzIEFwaUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKHN0YXR1c0NvZGUsIG1lc3NhZ2Upe1xuICAgICAgICBzdXBlcihtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5zdGF0dXNDb2RlID0gc3RhdHVzQ29kZTtcbiAgICB9XG59XG5mdW5jdGlvbiBzZW5kRXJyb3IocmVzLCBzdGF0dXNDb2RlLCBtZXNzYWdlKSB7XG4gICAgcmVzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlO1xuICAgIHJlcy5zdGF0dXNNZXNzYWdlID0gbWVzc2FnZTtcbiAgICByZXMuZW5kKG1lc3NhZ2UpO1xufVxuZnVuY3Rpb24gc2V0TGF6eVByb3AoeyByZXEgfSwgcHJvcCwgZ2V0dGVyKSB7XG4gICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgfTtcbiAgICBjb25zdCBvcHRzUmVzZXQgPSB7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVxLCBwcm9wLCB7XG4gICAgICAgIC4uLm9wdHMsXG4gICAgICAgIGdldDogKCk9PntcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0dGVyKCk7XG4gICAgICAgICAgICAvLyB3ZSBzZXQgdGhlIHByb3BlcnR5IG9uIHRoZSBvYmplY3QgdG8gYXZvaWQgcmVjYWxjdWxhdGluZyBpdFxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIC4uLm9wdHNSZXNldCxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogKHZhbHVlKT0+e1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIC4uLm9wdHNSZXNldCxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/api-utils/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/action-utils.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/action-utils.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createServerModuleMap: function() {\n return createServerModuleMap;\n },\n selectWorkerForForwarding: function() {\n return selectWorkerForForwarding;\n }\n});\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _pathhasprefix = __webpack_require__(/*! ../../shared/lib/router/utils/path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nconst _removepathprefix = __webpack_require__(/*! ../../shared/lib/router/utils/remove-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ./work-async-storage.external */ \"./work-async-storage.external\");\nfunction createServerModuleMap({ serverActionsManifest }) {\n return new Proxy({}, {\n get: (_, id)=>{\n var _serverActionsManifest__id, _serverActionsManifest_;\n const workers = (_serverActionsManifest_ = serverActionsManifest[ false ? 0 : 'node']) == null ? void 0 : (_serverActionsManifest__id = _serverActionsManifest_[id]) == null ? void 0 : _serverActionsManifest__id.workers;\n if (!workers) {\n return undefined;\n }\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n let workerEntry;\n if (workStore) {\n workerEntry = workers[normalizeWorkerPageName(workStore.page)];\n } else {\n // If there's no work store defined, we can assume that a server\n // module map is needed during module evaluation, e.g. to create a\n // server action using a higher-order function. Therefore it should be\n // safe to return any entry from the manifest that matches the action\n // ID. They all refer to the same module ID, which must also exist in\n // the current page bundle. TODO: This is currently not guaranteed in\n // Turbopack, and needs to be fixed.\n workerEntry = Object.values(workers).at(0);\n }\n if (!workerEntry) {\n return undefined;\n }\n const { moduleId, async } = workerEntry;\n return {\n id: moduleId,\n name: id,\n chunks: [],\n async\n };\n }\n });\n}\nfunction selectWorkerForForwarding(actionId, pageName, serverActionsManifest) {\n var _serverActionsManifest__actionId;\n const workers = (_serverActionsManifest__actionId = serverActionsManifest[ false ? 0 : 'node'][actionId]) == null ? void 0 : _serverActionsManifest__actionId.workers;\n const workerName = normalizeWorkerPageName(pageName);\n // no workers, nothing to forward to\n if (!workers) return;\n // if there is a worker for this page, no need to forward it.\n if (workers[workerName]) {\n return;\n }\n // otherwise, grab the first worker that has a handler for this action id\n return denormalizeWorkerPageName(Object.keys(workers)[0]);\n}\n/**\n * The flight entry loader keys actions by bundlePath.\n * bundlePath corresponds with the relative path (including 'app') to the page entrypoint.\n */ function normalizeWorkerPageName(pageName) {\n if ((0, _pathhasprefix.pathHasPrefix)(pageName, 'app')) {\n return pageName;\n }\n return 'app' + pageName;\n}\n/**\n * Converts a bundlePath (relative path to the entrypoint) to a routable page name\n */ function denormalizeWorkerPageName(bundlePath) {\n return (0, _apppaths.normalizeAppPath)((0, _removepathprefix.removePathPrefix)(bundlePath, 'app'));\n}\n\n//# sourceMappingURL=action-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2FjdGlvbi11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQkFBa0IsbUJBQU8sQ0FBQyxvSEFBeUM7QUFDbkUsdUJBQXVCLG1CQUFPLENBQUMsZ0lBQStDO0FBQzlFLDBCQUEwQixtQkFBTyxDQUFDLHNJQUFrRDtBQUNwRixrQ0FBa0MsbUJBQU8sQ0FBQyxvRUFBK0I7QUFDekUsaUNBQWlDLHVCQUF1QjtBQUN4RCx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBLDZFQUE2RSxNQUFtQyxHQUFHLENBQU07QUFDekg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtCQUFrQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSw4RUFBOEUsTUFBbUMsR0FBRyxDQUFNO0FBQzFIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9hY3Rpb24tdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVTZXJ2ZXJNb2R1bGVNYXA6IG51bGwsXG4gICAgc2VsZWN0V29ya2VyRm9yRm9yd2FyZGluZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVTZXJ2ZXJNb2R1bGVNYXA6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyTW9kdWxlTWFwO1xuICAgIH0sXG4gICAgc2VsZWN0V29ya2VyRm9yRm9yd2FyZGluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZWxlY3RXb3JrZXJGb3JGb3J3YXJkaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgX2FwcHBhdGhzID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiKTtcbmNvbnN0IF9wYXRoaGFzcHJlZml4ID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeFwiKTtcbmNvbnN0IF9yZW1vdmVwYXRocHJlZml4ID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS1wYXRoLXByZWZpeFwiKTtcbmNvbnN0IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWxcIik7XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJNb2R1bGVNYXAoeyBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QgfSkge1xuICAgIHJldHVybiBuZXcgUHJveHkoe30sIHtcbiAgICAgICAgZ2V0OiAoXywgaWQpPT57XG4gICAgICAgICAgICB2YXIgX3NlcnZlckFjdGlvbnNNYW5pZmVzdF9faWQsIF9zZXJ2ZXJBY3Rpb25zTWFuaWZlc3RfO1xuICAgICAgICAgICAgY29uc3Qgd29ya2VycyA9IChfc2VydmVyQWN0aW9uc01hbmlmZXN0XyA9IHNlcnZlckFjdGlvbnNNYW5pZmVzdFtwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJyA/ICdlZGdlJyA6ICdub2RlJ10pID09IG51bGwgPyB2b2lkIDAgOiAoX3NlcnZlckFjdGlvbnNNYW5pZmVzdF9faWQgPSBfc2VydmVyQWN0aW9uc01hbmlmZXN0X1tpZF0pID09IG51bGwgPyB2b2lkIDAgOiBfc2VydmVyQWN0aW9uc01hbmlmZXN0X19pZC53b3JrZXJzO1xuICAgICAgICAgICAgaWYgKCF3b3JrZXJzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHdvcmtTdG9yZSA9IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgbGV0IHdvcmtlckVudHJ5O1xuICAgICAgICAgICAgaWYgKHdvcmtTdG9yZSkge1xuICAgICAgICAgICAgICAgIHdvcmtlckVudHJ5ID0gd29ya2Vyc1tub3JtYWxpemVXb3JrZXJQYWdlTmFtZSh3b3JrU3RvcmUucGFnZSldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIHdvcmsgc3RvcmUgZGVmaW5lZCwgd2UgY2FuIGFzc3VtZSB0aGF0IGEgc2VydmVyXG4gICAgICAgICAgICAgICAgLy8gbW9kdWxlIG1hcCBpcyBuZWVkZWQgZHVyaW5nIG1vZHVsZSBldmFsdWF0aW9uLCBlLmcuIHRvIGNyZWF0ZSBhXG4gICAgICAgICAgICAgICAgLy8gc2VydmVyIGFjdGlvbiB1c2luZyBhIGhpZ2hlci1vcmRlciBmdW5jdGlvbi4gVGhlcmVmb3JlIGl0IHNob3VsZCBiZVxuICAgICAgICAgICAgICAgIC8vIHNhZmUgdG8gcmV0dXJuIGFueSBlbnRyeSBmcm9tIHRoZSBtYW5pZmVzdCB0aGF0IG1hdGNoZXMgdGhlIGFjdGlvblxuICAgICAgICAgICAgICAgIC8vIElELiBUaGV5IGFsbCByZWZlciB0byB0aGUgc2FtZSBtb2R1bGUgSUQsIHdoaWNoIG11c3QgYWxzbyBleGlzdCBpblxuICAgICAgICAgICAgICAgIC8vIHRoZSBjdXJyZW50IHBhZ2UgYnVuZGxlLiBUT0RPOiBUaGlzIGlzIGN1cnJlbnRseSBub3QgZ3VhcmFudGVlZCBpblxuICAgICAgICAgICAgICAgIC8vIFR1cmJvcGFjaywgYW5kIG5lZWRzIHRvIGJlIGZpeGVkLlxuICAgICAgICAgICAgICAgIHdvcmtlckVudHJ5ID0gT2JqZWN0LnZhbHVlcyh3b3JrZXJzKS5hdCgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghd29ya2VyRW50cnkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBtb2R1bGVJZCwgYXN5bmMgfSA9IHdvcmtlckVudHJ5O1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpZDogbW9kdWxlSWQsXG4gICAgICAgICAgICAgICAgbmFtZTogaWQsXG4gICAgICAgICAgICAgICAgY2h1bmtzOiBbXSxcbiAgICAgICAgICAgICAgICBhc3luY1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gc2VsZWN0V29ya2VyRm9yRm9yd2FyZGluZyhhY3Rpb25JZCwgcGFnZU5hbWUsIHNlcnZlckFjdGlvbnNNYW5pZmVzdCkge1xuICAgIHZhciBfc2VydmVyQWN0aW9uc01hbmlmZXN0X19hY3Rpb25JZDtcbiAgICBjb25zdCB3b3JrZXJzID0gKF9zZXJ2ZXJBY3Rpb25zTWFuaWZlc3RfX2FjdGlvbklkID0gc2VydmVyQWN0aW9uc01hbmlmZXN0W3Byb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnID8gJ2VkZ2UnIDogJ25vZGUnXVthY3Rpb25JZF0pID09IG51bGwgPyB2b2lkIDAgOiBfc2VydmVyQWN0aW9uc01hbmlmZXN0X19hY3Rpb25JZC53b3JrZXJzO1xuICAgIGNvbnN0IHdvcmtlck5hbWUgPSBub3JtYWxpemVXb3JrZXJQYWdlTmFtZShwYWdlTmFtZSk7XG4gICAgLy8gbm8gd29ya2Vycywgbm90aGluZyB0byBmb3J3YXJkIHRvXG4gICAgaWYgKCF3b3JrZXJzKSByZXR1cm47XG4gICAgLy8gaWYgdGhlcmUgaXMgYSB3b3JrZXIgZm9yIHRoaXMgcGFnZSwgbm8gbmVlZCB0byBmb3J3YXJkIGl0LlxuICAgIGlmICh3b3JrZXJzW3dvcmtlck5hbWVdKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gb3RoZXJ3aXNlLCBncmFiIHRoZSBmaXJzdCB3b3JrZXIgdGhhdCBoYXMgYSBoYW5kbGVyIGZvciB0aGlzIGFjdGlvbiBpZFxuICAgIHJldHVybiBkZW5vcm1hbGl6ZVdvcmtlclBhZ2VOYW1lKE9iamVjdC5rZXlzKHdvcmtlcnMpWzBdKTtcbn1cbi8qKlxuICogVGhlIGZsaWdodCBlbnRyeSBsb2FkZXIga2V5cyBhY3Rpb25zIGJ5IGJ1bmRsZVBhdGguXG4gKiBidW5kbGVQYXRoIGNvcnJlc3BvbmRzIHdpdGggdGhlIHJlbGF0aXZlIHBhdGggKGluY2x1ZGluZyAnYXBwJykgdG8gdGhlIHBhZ2UgZW50cnlwb2ludC5cbiAqLyBmdW5jdGlvbiBub3JtYWxpemVXb3JrZXJQYWdlTmFtZShwYWdlTmFtZSkge1xuICAgIGlmICgoMCwgX3BhdGhoYXNwcmVmaXgucGF0aEhhc1ByZWZpeCkocGFnZU5hbWUsICdhcHAnKSkge1xuICAgICAgICByZXR1cm4gcGFnZU5hbWU7XG4gICAgfVxuICAgIHJldHVybiAnYXBwJyArIHBhZ2VOYW1lO1xufVxuLyoqXG4gKiBDb252ZXJ0cyBhIGJ1bmRsZVBhdGggKHJlbGF0aXZlIHBhdGggdG8gdGhlIGVudHJ5cG9pbnQpIHRvIGEgcm91dGFibGUgcGFnZSBuYW1lXG4gKi8gZnVuY3Rpb24gZGVub3JtYWxpemVXb3JrZXJQYWdlTmFtZShidW5kbGVQYXRoKSB7XG4gICAgcmV0dXJuICgwLCBfYXBwcGF0aHMubm9ybWFsaXplQXBwUGF0aCkoKDAsIF9yZW1vdmVwYXRocHJlZml4LnJlbW92ZVBhdGhQcmVmaXgpKGJ1bmRsZVBhdGgsICdhcHAnKSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFjdGlvbi11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/action-utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/collect-segment-data.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/collect-segment-data.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"collectSegmentData\", ({\n enumerable: true,\n get: function() {\n return collectSegmentData;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\");\nconst _client = __webpack_require__(/*! react-server-dom-webpack/client */ \"(rsc)/./node_modules/next/dist/compiled/react-server-dom-webpack/client.node.js\");\nconst _static = __webpack_require__(/*! react-server-dom-webpack/static */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js\");\nconst _nodewebstreamshelper = __webpack_require__(/*! ../stream-utils/node-web-streams-helper */ \"(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _segmentvalueencoding = __webpack_require__(/*! ../../shared/lib/segment-cache/segment-value-encoding */ \"(rsc)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js\");\nconst _createerrorhandler = __webpack_require__(/*! ./create-error-handler */ \"(rsc)/./node_modules/next/dist/server/app-render/create-error-handler.js\");\nconst filterStackFrame = true ? (__webpack_require__(/*! ../lib/source-maps */ \"(rsc)/./node_modules/next/dist/server/lib/source-maps.js\").filterStackFrameDEV) : 0;\nfunction onSegmentPrerenderError(error) {\n const digest = (0, _createerrorhandler.getDigestForWellKnownError)(error);\n if (digest) {\n return digest;\n }\n// We don't need to log the errors because we would have already done that\n// when generating the original Flight stream for the whole page.\n}\nasync function collectSegmentData(fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest, fallbackRouteParams) {\n // Traverse the router tree and generate a prefetch response for each segment.\n // A mutable map to collect the results as we traverse the route tree.\n const resultMap = new Map();\n // Before we start, warm up the module cache by decoding the page data once.\n // Then we can assume that any remaining async tasks that occur the next time\n // are due to hanging promises caused by dynamic data access. Note we only\n // have to do this once per page, not per individual segment.\n //\n try {\n await (0, _client.createFromReadableStream)((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer), {\n serverConsumerManifest\n });\n await (0, _scheduler.waitAtLeastOneReactRenderTask)();\n } catch {}\n // Create an abort controller that we'll use to stop the stream.\n const abortController = new AbortController();\n const onCompletedProcessingRouteTree = async ()=>{\n // Since all we're doing is decoding and re-encoding a cached prerender, if\n // serializing the stream takes longer than a microtask, it must because of\n // hanging promises caused by dynamic data.\n await (0, _scheduler.waitAtLeastOneReactRenderTask)();\n abortController.abort();\n };\n // Generate a stream for the route tree prefetch. While we're walking the\n // tree, we'll also spawn additional tasks to generate the segment prefetches.\n // The promises for these tasks are pushed to a mutable array that we will\n // await once the route tree is fully rendered.\n const segmentTasks = [];\n const { prelude: treeStream } = await (0, _static.unstable_prerender)(// RootTreePrefetch is not a valid return type for a React component, but\n // we need to use a component so that when we decode the original stream\n // inside of it, the side effects are transferred to the new stream.\n // @ts-expect-error\n /*#__PURE__*/ (0, _jsxruntime.jsx)(PrefetchTreeData, {\n fullPageDataBuffer: fullPageDataBuffer,\n fallbackRouteParams: fallbackRouteParams,\n serverConsumerManifest: serverConsumerManifest,\n clientModules: clientModules,\n staleTime: staleTime,\n segmentTasks: segmentTasks,\n onCompletedProcessingRouteTree: onCompletedProcessingRouteTree\n }), clientModules, {\n filterStackFrame,\n signal: abortController.signal,\n onError: onSegmentPrerenderError\n });\n // Write the route tree to a special `/_tree` segment.\n const treeBuffer = await (0, _nodewebstreamshelper.streamToBuffer)(treeStream);\n resultMap.set('/_tree', treeBuffer);\n // Now that we've finished rendering the route tree, all the segment tasks\n // should have been spawned. Await them in parallel and write the segment\n // prefetches to the result map.\n for (const [segmentPath, buffer] of (await Promise.all(segmentTasks))){\n resultMap.set(segmentPath, buffer);\n }\n return resultMap;\n}\nasync function PrefetchTreeData({ fullPageDataBuffer, fallbackRouteParams, serverConsumerManifest, clientModules, staleTime, segmentTasks, onCompletedProcessingRouteTree }) {\n // We're currently rendering a Flight response for the route tree prefetch.\n // Inside this component, decode the Flight stream for the whole page. This is\n // a hack to transfer the side effects from the original Flight stream (e.g.\n // Float preloads) onto the Flight stream for the tree prefetch.\n // TODO: React needs a better way to do this. Needed for Server Actions, too.\n const initialRSCPayload = await (0, _client.createFromReadableStream)(createUnclosingPrefetchStream((0, _nodewebstreamshelper.streamFromBuffer)(fullPageDataBuffer)), {\n serverConsumerManifest\n });\n const buildId = initialRSCPayload.b;\n // FlightDataPath is an unsound type, hence the additional checks.\n const flightDataPaths = initialRSCPayload.f;\n if (flightDataPaths.length !== 1 && flightDataPaths[0].length !== 3) {\n console.error('Internal Next.js error: InitialRSCPayload does not match the expected ' + 'shape for a prerendered page during segment prefetch generation.');\n return null;\n }\n const flightRouterState = flightDataPaths[0][0];\n const seedData = flightDataPaths[0][1];\n const head = flightDataPaths[0][2];\n // Compute the route metadata tree by traversing the FlightRouterState. As we\n // walk the tree, we will also spawn a task to produce a prefetch response for\n // each segment.\n const tree = collectSegmentDataImpl(flightRouterState, buildId, seedData, fallbackRouteParams, clientModules, _segmentvalueencoding.ROOT_SEGMENT_KEY, segmentTasks);\n const isHeadPartial = await isPartialRSCData(head, clientModules);\n // Notify the abort controller that we're done processing the route tree.\n // Anything async that happens after this point must be due to hanging\n // promises in the original stream.\n onCompletedProcessingRouteTree();\n // Render the route tree to a special `/_tree` segment.\n const treePrefetch = {\n buildId,\n tree,\n head,\n isHeadPartial,\n staleTime\n };\n return treePrefetch;\n}\nfunction collectSegmentDataImpl(route, buildId, seedData, fallbackRouteParams, clientModules, key, segmentTasks) {\n // Metadata about the segment. Sent as part of the tree prefetch. Null if\n // there are no children.\n let slotMetadata = null;\n const children = route[1];\n const seedDataChildren = seedData !== null ? seedData[2] : null;\n for(const parallelRouteKey in children){\n const childRoute = children[parallelRouteKey];\n const childSegment = childRoute[0];\n const childSeedData = seedDataChildren !== null ? seedDataChildren[parallelRouteKey] : null;\n const childKey = (0, _segmentvalueencoding.encodeChildSegmentKey)(key, parallelRouteKey, Array.isArray(childSegment) && fallbackRouteParams !== null ? encodeSegmentWithPossibleFallbackParam(childSegment, fallbackRouteParams) : (0, _segmentvalueencoding.encodeSegment)(childSegment));\n const childTree = collectSegmentDataImpl(childRoute, buildId, childSeedData, fallbackRouteParams, clientModules, childKey, segmentTasks);\n if (slotMetadata === null) {\n slotMetadata = {};\n }\n slotMetadata[parallelRouteKey] = childTree;\n }\n if (seedData !== null) {\n // Spawn a task to write the segment data to a new Flight stream.\n segmentTasks.push(// Since we're already in the middle of a render, wait until after the\n // current task to escape the current rendering context.\n (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>renderSegmentPrefetch(buildId, seedData, key, clientModules)));\n } else {\n // This segment does not have any seed data. Skip generating a prefetch\n // response for it. We'll still include it in the route tree, though.\n // TODO: We should encode in the route tree whether a segment is missing\n // so we don't attempt to fetch it for no reason. As of now this shouldn't\n // ever happen in practice, though.\n }\n // Metadata about the segment. Sent to the client as part of the\n // tree prefetch.\n return {\n segment: route[0],\n slots: slotMetadata,\n isRootLayout: route[4] === true\n };\n}\nfunction encodeSegmentWithPossibleFallbackParam(segment, fallbackRouteParams) {\n const name = segment[0];\n if (!fallbackRouteParams.has(name)) {\n // Normal case. No matching fallback parameter.\n return (0, _segmentvalueencoding.encodeSegment)(segment);\n }\n // This segment includes a fallback parameter. During prerendering, a random\n // placeholder value was used; however, for segment prefetches, we need the\n // segment path to be predictable so the server can create a rewrite for it.\n // So, replace the placeholder segment value with a \"template\" string,\n // e.g. `[name]`.\n // TODO: This will become a bit cleaner once remove route parameters from the\n // server response, and instead add them to the segment keys on the client.\n // Instead of a string replacement, like we do here, route params will always\n // be encoded in separate step from the rest of the segment, not just in the\n // case of fallback params.\n const encodedSegment = (0, _segmentvalueencoding.encodeSegment)(segment);\n const lastIndex = encodedSegment.lastIndexOf('$');\n const encodedFallbackSegment = // NOTE: This is guaranteed not to clash with the rest of the segment\n // because non-simple characters (including [ and ]) trigger a base\n // 64 encoding.\n encodedSegment.substring(0, lastIndex + 1) + `[${name}]`;\n return encodedFallbackSegment;\n}\nasync function renderSegmentPrefetch(buildId, seedData, key, clientModules) {\n // Render the segment data to a stream.\n // In the future, this is where we can include additional metadata, like the\n // stale time and cache tags.\n const rsc = seedData[1];\n const loading = seedData[3];\n const segmentPrefetch = {\n buildId,\n rsc,\n loading,\n isPartial: await isPartialRSCData(rsc, clientModules)\n };\n // Since all we're doing is decoding and re-encoding a cached prerender, if\n // it takes longer than a microtask, it must because of hanging promises\n // caused by dynamic data. Abort the stream at the end of the current task.\n const abortController = new AbortController();\n (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>abortController.abort());\n const { prelude: segmentStream } = await (0, _static.unstable_prerender)(segmentPrefetch, clientModules, {\n filterStackFrame,\n signal: abortController.signal,\n onError: onSegmentPrerenderError\n });\n const segmentBuffer = await (0, _nodewebstreamshelper.streamToBuffer)(segmentStream);\n if (key === _segmentvalueencoding.ROOT_SEGMENT_KEY) {\n return [\n '/_index',\n segmentBuffer\n ];\n } else {\n return [\n key,\n segmentBuffer\n ];\n }\n}\nasync function isPartialRSCData(rsc, clientModules) {\n // We can determine if a segment contains only partial data if it takes longer\n // than a task to encode, because dynamic data is encoded as an infinite\n // promise. We must do this in a separate Flight prerender from the one that\n // actually generates the prefetch stream because we need to include\n // `isPartial` in the stream itself.\n let isPartial = false;\n const abortController = new AbortController();\n (0, _scheduler.waitAtLeastOneReactRenderTask)().then(()=>{\n // If we haven't yet finished the outer task, then it must be because we\n // accessed dynamic data.\n isPartial = true;\n abortController.abort();\n });\n await (0, _static.unstable_prerender)(rsc, clientModules, {\n filterStackFrame,\n signal: abortController.signal,\n onError () {},\n onPostpone () {\n // If something postponed, i.e. when Dynamic IO is not enabled, we can\n // infer that the RSC data is partial.\n isPartial = true;\n }\n });\n return isPartial;\n}\nfunction createUnclosingPrefetchStream(originalFlightStream) {\n // When PPR is enabled, prefetch streams may contain references that never\n // resolve, because that's how we encode dynamic data access. In the decoded\n // object returned by the Flight client, these are reified into hanging\n // promises that suspend during render, which is effectively what we want.\n // The UI resolves when it switches to the dynamic data stream\n // (via useDeferredValue(dynamic, static)).\n //\n // However, the Flight implementation currently errors if the server closes\n // the response before all the references are resolved. As a cheat to work\n // around this, we wrap the original stream in a new stream that never closes,\n // and therefore doesn't error.\n const reader = originalFlightStream.getReader();\n return new ReadableStream({\n async pull (controller) {\n while(true){\n const { done, value } = await reader.read();\n if (!done) {\n // Pass to the target stream and keep consuming the Flight response\n // from the server.\n controller.enqueue(value);\n continue;\n }\n // The server stream has closed. Exit, but intentionally do not close\n // the target stream.\n return;\n }\n }\n });\n}\n\n//# sourceMappingURL=collect-segment-data.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2NvbGxlY3Qtc2VnbWVudC1kYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysc0RBQXFEO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLGdCQUFnQixtQkFBTyxDQUFDLHdIQUFpQztBQUN6RCxnQkFBZ0IsbUJBQU8sQ0FBQyxxSkFBaUM7QUFDekQsOEJBQThCLG1CQUFPLENBQUMsOEhBQXlDO0FBQy9FLG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCw4QkFBOEIsbUJBQU8sQ0FBQyxnSkFBdUQ7QUFDN0YsNEJBQTRCLG1CQUFPLENBQUMsd0dBQXdCO0FBQzVELHlCQUF5QixLQUFxQyxHQUFHLCtIQUFpRCxHQUFHLENBQVM7QUFDOUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxzQkFBc0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyx5SUFBeUk7QUFDM0s7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxLQUFLO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx5QkFBeUI7QUFDckM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsY0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2NvbGxlY3Qtc2VnbWVudC1kYXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY29sbGVjdFNlZ21lbnREYXRhXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb2xsZWN0U2VnbWVudERhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfanN4cnVudGltZSA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTtcbmNvbnN0IF9jbGllbnQgPSByZXF1aXJlKFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL2NsaWVudFwiKTtcbmNvbnN0IF9zdGF0aWMgPSByZXF1aXJlKFwicmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrL3N0YXRpY1wiKTtcbmNvbnN0IF9ub2Rld2Vic3RyZWFtc2hlbHBlciA9IHJlcXVpcmUoXCIuLi9zdHJlYW0tdXRpbHMvbm9kZS13ZWItc3RyZWFtcy1oZWxwZXJcIik7XG5jb25zdCBfc2NoZWR1bGVyID0gcmVxdWlyZShcIi4uLy4uL2xpYi9zY2hlZHVsZXJcIik7XG5jb25zdCBfc2VnbWVudHZhbHVlZW5jb2RpbmcgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50LWNhY2hlL3NlZ21lbnQtdmFsdWUtZW5jb2RpbmdcIik7XG5jb25zdCBfY3JlYXRlZXJyb3JoYW5kbGVyID0gcmVxdWlyZShcIi4vY3JlYXRlLWVycm9yLWhhbmRsZXJcIik7XG5jb25zdCBmaWx0ZXJTdGFja0ZyYW1lID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IHJlcXVpcmUoJy4uL2xpYi9zb3VyY2UtbWFwcycpLmZpbHRlclN0YWNrRnJhbWVERVYgOiB1bmRlZmluZWQ7XG5mdW5jdGlvbiBvblNlZ21lbnRQcmVyZW5kZXJFcnJvcihlcnJvcikge1xuICAgIGNvbnN0IGRpZ2VzdCA9ICgwLCBfY3JlYXRlZXJyb3JoYW5kbGVyLmdldERpZ2VzdEZvcldlbGxLbm93bkVycm9yKShlcnJvcik7XG4gICAgaWYgKGRpZ2VzdCkge1xuICAgICAgICByZXR1cm4gZGlnZXN0O1xuICAgIH1cbi8vIFdlIGRvbid0IG5lZWQgdG8gbG9nIHRoZSBlcnJvcnMgYmVjYXVzZSB3ZSB3b3VsZCBoYXZlIGFscmVhZHkgZG9uZSB0aGF0XG4vLyB3aGVuIGdlbmVyYXRpbmcgdGhlIG9yaWdpbmFsIEZsaWdodCBzdHJlYW0gZm9yIHRoZSB3aG9sZSBwYWdlLlxufVxuYXN5bmMgZnVuY3Rpb24gY29sbGVjdFNlZ21lbnREYXRhKGZ1bGxQYWdlRGF0YUJ1ZmZlciwgc3RhbGVUaW1lLCBjbGllbnRNb2R1bGVzLCBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0LCBmYWxsYmFja1JvdXRlUGFyYW1zKSB7XG4gICAgLy8gVHJhdmVyc2UgdGhlIHJvdXRlciB0cmVlIGFuZCBnZW5lcmF0ZSBhIHByZWZldGNoIHJlc3BvbnNlIGZvciBlYWNoIHNlZ21lbnQuXG4gICAgLy8gQSBtdXRhYmxlIG1hcCB0byBjb2xsZWN0IHRoZSByZXN1bHRzIGFzIHdlIHRyYXZlcnNlIHRoZSByb3V0ZSB0cmVlLlxuICAgIGNvbnN0IHJlc3VsdE1hcCA9IG5ldyBNYXAoKTtcbiAgICAvLyBCZWZvcmUgd2Ugc3RhcnQsIHdhcm0gdXAgdGhlIG1vZHVsZSBjYWNoZSBieSBkZWNvZGluZyB0aGUgcGFnZSBkYXRhIG9uY2UuXG4gICAgLy8gVGhlbiB3ZSBjYW4gYXNzdW1lIHRoYXQgYW55IHJlbWFpbmluZyBhc3luYyB0YXNrcyB0aGF0IG9jY3VyIHRoZSBuZXh0IHRpbWVcbiAgICAvLyBhcmUgZHVlIHRvIGhhbmdpbmcgcHJvbWlzZXMgY2F1c2VkIGJ5IGR5bmFtaWMgZGF0YSBhY2Nlc3MuIE5vdGUgd2Ugb25seVxuICAgIC8vIGhhdmUgdG8gZG8gdGhpcyBvbmNlIHBlciBwYWdlLCBub3QgcGVyIGluZGl2aWR1YWwgc2VnbWVudC5cbiAgICAvL1xuICAgIHRyeSB7XG4gICAgICAgIGF3YWl0ICgwLCBfY2xpZW50LmNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbSkoKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tQnVmZmVyKShmdWxsUGFnZURhdGFCdWZmZXIpLCB7XG4gICAgICAgICAgICBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0XG4gICAgICAgIH0pO1xuICAgICAgICBhd2FpdCAoMCwgX3NjaGVkdWxlci53YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaykoKTtcbiAgICB9IGNhdGNoICB7fVxuICAgIC8vIENyZWF0ZSBhbiBhYm9ydCBjb250cm9sbGVyIHRoYXQgd2UnbGwgdXNlIHRvIHN0b3AgdGhlIHN0cmVhbS5cbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgY29uc3Qgb25Db21wbGV0ZWRQcm9jZXNzaW5nUm91dGVUcmVlID0gYXN5bmMgKCk9PntcbiAgICAgICAgLy8gU2luY2UgYWxsIHdlJ3JlIGRvaW5nIGlzIGRlY29kaW5nIGFuZCByZS1lbmNvZGluZyBhIGNhY2hlZCBwcmVyZW5kZXIsIGlmXG4gICAgICAgIC8vIHNlcmlhbGl6aW5nIHRoZSBzdHJlYW0gdGFrZXMgbG9uZ2VyIHRoYW4gYSBtaWNyb3Rhc2ssIGl0IG11c3QgYmVjYXVzZSBvZlxuICAgICAgICAvLyBoYW5naW5nIHByb21pc2VzIGNhdXNlZCBieSBkeW5hbWljIGRhdGEuXG4gICAgICAgIGF3YWl0ICgwLCBfc2NoZWR1bGVyLndhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKSgpO1xuICAgICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICB9O1xuICAgIC8vIEdlbmVyYXRlIGEgc3RyZWFtIGZvciB0aGUgcm91dGUgdHJlZSBwcmVmZXRjaC4gV2hpbGUgd2UncmUgd2Fsa2luZyB0aGVcbiAgICAvLyB0cmVlLCB3ZSdsbCBhbHNvIHNwYXduIGFkZGl0aW9uYWwgdGFza3MgdG8gZ2VuZXJhdGUgdGhlIHNlZ21lbnQgcHJlZmV0Y2hlcy5cbiAgICAvLyBUaGUgcHJvbWlzZXMgZm9yIHRoZXNlIHRhc2tzIGFyZSBwdXNoZWQgdG8gYSBtdXRhYmxlIGFycmF5IHRoYXQgd2Ugd2lsbFxuICAgIC8vIGF3YWl0IG9uY2UgdGhlIHJvdXRlIHRyZWUgaXMgZnVsbHkgcmVuZGVyZWQuXG4gICAgY29uc3Qgc2VnbWVudFRhc2tzID0gW107XG4gICAgY29uc3QgeyBwcmVsdWRlOiB0cmVlU3RyZWFtIH0gPSBhd2FpdCAoMCwgX3N0YXRpYy51bnN0YWJsZV9wcmVyZW5kZXIpKC8vIFJvb3RUcmVlUHJlZmV0Y2ggaXMgbm90IGEgdmFsaWQgcmV0dXJuIHR5cGUgZm9yIGEgUmVhY3QgY29tcG9uZW50LCBidXRcbiAgICAvLyB3ZSBuZWVkIHRvIHVzZSBhIGNvbXBvbmVudCBzbyB0aGF0IHdoZW4gd2UgZGVjb2RlIHRoZSBvcmlnaW5hbCBzdHJlYW1cbiAgICAvLyBpbnNpZGUgb2YgaXQsIHRoZSBzaWRlIGVmZmVjdHMgYXJlIHRyYW5zZmVycmVkIHRvIHRoZSBuZXcgc3RyZWFtLlxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFByZWZldGNoVHJlZURhdGEsIHtcbiAgICAgICAgZnVsbFBhZ2VEYXRhQnVmZmVyOiBmdWxsUGFnZURhdGFCdWZmZXIsXG4gICAgICAgIGZhbGxiYWNrUm91dGVQYXJhbXM6IGZhbGxiYWNrUm91dGVQYXJhbXMsXG4gICAgICAgIHNlcnZlckNvbnN1bWVyTWFuaWZlc3Q6IHNlcnZlckNvbnN1bWVyTWFuaWZlc3QsXG4gICAgICAgIGNsaWVudE1vZHVsZXM6IGNsaWVudE1vZHVsZXMsXG4gICAgICAgIHN0YWxlVGltZTogc3RhbGVUaW1lLFxuICAgICAgICBzZWdtZW50VGFza3M6IHNlZ21lbnRUYXNrcyxcbiAgICAgICAgb25Db21wbGV0ZWRQcm9jZXNzaW5nUm91dGVUcmVlOiBvbkNvbXBsZXRlZFByb2Nlc3NpbmdSb3V0ZVRyZWVcbiAgICB9KSwgY2xpZW50TW9kdWxlcywge1xuICAgICAgICBmaWx0ZXJTdGFja0ZyYW1lLFxuICAgICAgICBzaWduYWw6IGFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIG9uRXJyb3I6IG9uU2VnbWVudFByZXJlbmRlckVycm9yXG4gICAgfSk7XG4gICAgLy8gV3JpdGUgdGhlIHJvdXRlIHRyZWUgdG8gYSBzcGVjaWFsIGAvX3RyZWVgIHNlZ21lbnQuXG4gICAgY29uc3QgdHJlZUJ1ZmZlciA9IGF3YWl0ICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtVG9CdWZmZXIpKHRyZWVTdHJlYW0pO1xuICAgIHJlc3VsdE1hcC5zZXQoJy9fdHJlZScsIHRyZWVCdWZmZXIpO1xuICAgIC8vIE5vdyB0aGF0IHdlJ3ZlIGZpbmlzaGVkIHJlbmRlcmluZyB0aGUgcm91dGUgdHJlZSwgYWxsIHRoZSBzZWdtZW50IHRhc2tzXG4gICAgLy8gc2hvdWxkIGhhdmUgYmVlbiBzcGF3bmVkLiBBd2FpdCB0aGVtIGluIHBhcmFsbGVsIGFuZCB3cml0ZSB0aGUgc2VnbWVudFxuICAgIC8vIHByZWZldGNoZXMgdG8gdGhlIHJlc3VsdCBtYXAuXG4gICAgZm9yIChjb25zdCBbc2VnbWVudFBhdGgsIGJ1ZmZlcl0gb2YgKGF3YWl0IFByb21pc2UuYWxsKHNlZ21lbnRUYXNrcykpKXtcbiAgICAgICAgcmVzdWx0TWFwLnNldChzZWdtZW50UGF0aCwgYnVmZmVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdE1hcDtcbn1cbmFzeW5jIGZ1bmN0aW9uIFByZWZldGNoVHJlZURhdGEoeyBmdWxsUGFnZURhdGFCdWZmZXIsIGZhbGxiYWNrUm91dGVQYXJhbXMsIHNlcnZlckNvbnN1bWVyTWFuaWZlc3QsIGNsaWVudE1vZHVsZXMsIHN0YWxlVGltZSwgc2VnbWVudFRhc2tzLCBvbkNvbXBsZXRlZFByb2Nlc3NpbmdSb3V0ZVRyZWUgfSkge1xuICAgIC8vIFdlJ3JlIGN1cnJlbnRseSByZW5kZXJpbmcgYSBGbGlnaHQgcmVzcG9uc2UgZm9yIHRoZSByb3V0ZSB0cmVlIHByZWZldGNoLlxuICAgIC8vIEluc2lkZSB0aGlzIGNvbXBvbmVudCwgZGVjb2RlIHRoZSBGbGlnaHQgc3RyZWFtIGZvciB0aGUgd2hvbGUgcGFnZS4gVGhpcyBpc1xuICAgIC8vIGEgaGFjayB0byB0cmFuc2ZlciB0aGUgc2lkZSBlZmZlY3RzIGZyb20gdGhlIG9yaWdpbmFsIEZsaWdodCBzdHJlYW0gKGUuZy5cbiAgICAvLyBGbG9hdCBwcmVsb2Fkcykgb250byB0aGUgRmxpZ2h0IHN0cmVhbSBmb3IgdGhlIHRyZWUgcHJlZmV0Y2guXG4gICAgLy8gVE9ETzogUmVhY3QgbmVlZHMgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMuIE5lZWRlZCBmb3IgU2VydmVyIEFjdGlvbnMsIHRvby5cbiAgICBjb25zdCBpbml0aWFsUlNDUGF5bG9hZCA9IGF3YWl0ICgwLCBfY2xpZW50LmNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbSkoY3JlYXRlVW5jbG9zaW5nUHJlZmV0Y2hTdHJlYW0oKDAsIF9ub2Rld2Vic3RyZWFtc2hlbHBlci5zdHJlYW1Gcm9tQnVmZmVyKShmdWxsUGFnZURhdGFCdWZmZXIpKSwge1xuICAgICAgICBzZXJ2ZXJDb25zdW1lck1hbmlmZXN0XG4gICAgfSk7XG4gICAgY29uc3QgYnVpbGRJZCA9IGluaXRpYWxSU0NQYXlsb2FkLmI7XG4gICAgLy8gRmxpZ2h0RGF0YVBhdGggaXMgYW4gdW5zb3VuZCB0eXBlLCBoZW5jZSB0aGUgYWRkaXRpb25hbCBjaGVja3MuXG4gICAgY29uc3QgZmxpZ2h0RGF0YVBhdGhzID0gaW5pdGlhbFJTQ1BheWxvYWQuZjtcbiAgICBpZiAoZmxpZ2h0RGF0YVBhdGhzLmxlbmd0aCAhPT0gMSAmJiBmbGlnaHREYXRhUGF0aHNbMF0ubGVuZ3RoICE9PSAzKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludGVybmFsIE5leHQuanMgZXJyb3I6IEluaXRpYWxSU0NQYXlsb2FkIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCAnICsgJ3NoYXBlIGZvciBhIHByZXJlbmRlcmVkIHBhZ2UgZHVyaW5nIHNlZ21lbnQgcHJlZmV0Y2ggZ2VuZXJhdGlvbi4nKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGZsaWdodFJvdXRlclN0YXRlID0gZmxpZ2h0RGF0YVBhdGhzWzBdWzBdO1xuICAgIGNvbnN0IHNlZWREYXRhID0gZmxpZ2h0RGF0YVBhdGhzWzBdWzFdO1xuICAgIGNvbnN0IGhlYWQgPSBmbGlnaHREYXRhUGF0aHNbMF1bMl07XG4gICAgLy8gQ29tcHV0ZSB0aGUgcm91dGUgbWV0YWRhdGEgdHJlZSBieSB0cmF2ZXJzaW5nIHRoZSBGbGlnaHRSb3V0ZXJTdGF0ZS4gQXMgd2VcbiAgICAvLyB3YWxrIHRoZSB0cmVlLCB3ZSB3aWxsIGFsc28gc3Bhd24gYSB0YXNrIHRvIHByb2R1Y2UgYSBwcmVmZXRjaCByZXNwb25zZSBmb3JcbiAgICAvLyBlYWNoIHNlZ21lbnQuXG4gICAgY29uc3QgdHJlZSA9IGNvbGxlY3RTZWdtZW50RGF0YUltcGwoZmxpZ2h0Um91dGVyU3RhdGUsIGJ1aWxkSWQsIHNlZWREYXRhLCBmYWxsYmFja1JvdXRlUGFyYW1zLCBjbGllbnRNb2R1bGVzLCBfc2VnbWVudHZhbHVlZW5jb2RpbmcuUk9PVF9TRUdNRU5UX0tFWSwgc2VnbWVudFRhc2tzKTtcbiAgICBjb25zdCBpc0hlYWRQYXJ0aWFsID0gYXdhaXQgaXNQYXJ0aWFsUlNDRGF0YShoZWFkLCBjbGllbnRNb2R1bGVzKTtcbiAgICAvLyBOb3RpZnkgdGhlIGFib3J0IGNvbnRyb2xsZXIgdGhhdCB3ZSdyZSBkb25lIHByb2Nlc3NpbmcgdGhlIHJvdXRlIHRyZWUuXG4gICAgLy8gQW55dGhpbmcgYXN5bmMgdGhhdCBoYXBwZW5zIGFmdGVyIHRoaXMgcG9pbnQgbXVzdCBiZSBkdWUgdG8gaGFuZ2luZ1xuICAgIC8vIHByb21pc2VzIGluIHRoZSBvcmlnaW5hbCBzdHJlYW0uXG4gICAgb25Db21wbGV0ZWRQcm9jZXNzaW5nUm91dGVUcmVlKCk7XG4gICAgLy8gUmVuZGVyIHRoZSByb3V0ZSB0cmVlIHRvIGEgc3BlY2lhbCBgL190cmVlYCBzZWdtZW50LlxuICAgIGNvbnN0IHRyZWVQcmVmZXRjaCA9IHtcbiAgICAgICAgYnVpbGRJZCxcbiAgICAgICAgdHJlZSxcbiAgICAgICAgaGVhZCxcbiAgICAgICAgaXNIZWFkUGFydGlhbCxcbiAgICAgICAgc3RhbGVUaW1lXG4gICAgfTtcbiAgICByZXR1cm4gdHJlZVByZWZldGNoO1xufVxuZnVuY3Rpb24gY29sbGVjdFNlZ21lbnREYXRhSW1wbChyb3V0ZSwgYnVpbGRJZCwgc2VlZERhdGEsIGZhbGxiYWNrUm91dGVQYXJhbXMsIGNsaWVudE1vZHVsZXMsIGtleSwgc2VnbWVudFRhc2tzKSB7XG4gICAgLy8gTWV0YWRhdGEgYWJvdXQgdGhlIHNlZ21lbnQuIFNlbnQgYXMgcGFydCBvZiB0aGUgdHJlZSBwcmVmZXRjaC4gTnVsbCBpZlxuICAgIC8vIHRoZXJlIGFyZSBubyBjaGlsZHJlbi5cbiAgICBsZXQgc2xvdE1ldGFkYXRhID0gbnVsbDtcbiAgICBjb25zdCBjaGlsZHJlbiA9IHJvdXRlWzFdO1xuICAgIGNvbnN0IHNlZWREYXRhQ2hpbGRyZW4gPSBzZWVkRGF0YSAhPT0gbnVsbCA/IHNlZWREYXRhWzJdIDogbnVsbDtcbiAgICBmb3IoY29uc3QgcGFyYWxsZWxSb3V0ZUtleSBpbiBjaGlsZHJlbil7XG4gICAgICAgIGNvbnN0IGNoaWxkUm91dGUgPSBjaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XTtcbiAgICAgICAgY29uc3QgY2hpbGRTZWdtZW50ID0gY2hpbGRSb3V0ZVswXTtcbiAgICAgICAgY29uc3QgY2hpbGRTZWVkRGF0YSA9IHNlZWREYXRhQ2hpbGRyZW4gIT09IG51bGwgPyBzZWVkRGF0YUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldIDogbnVsbDtcbiAgICAgICAgY29uc3QgY2hpbGRLZXkgPSAoMCwgX3NlZ21lbnR2YWx1ZWVuY29kaW5nLmVuY29kZUNoaWxkU2VnbWVudEtleSkoa2V5LCBwYXJhbGxlbFJvdXRlS2V5LCBBcnJheS5pc0FycmF5KGNoaWxkU2VnbWVudCkgJiYgZmFsbGJhY2tSb3V0ZVBhcmFtcyAhPT0gbnVsbCA/IGVuY29kZVNlZ21lbnRXaXRoUG9zc2libGVGYWxsYmFja1BhcmFtKGNoaWxkU2VnbWVudCwgZmFsbGJhY2tSb3V0ZVBhcmFtcykgOiAoMCwgX3NlZ21lbnR2YWx1ZWVuY29kaW5nLmVuY29kZVNlZ21lbnQpKGNoaWxkU2VnbWVudCkpO1xuICAgICAgICBjb25zdCBjaGlsZFRyZWUgPSBjb2xsZWN0U2VnbWVudERhdGFJbXBsKGNoaWxkUm91dGUsIGJ1aWxkSWQsIGNoaWxkU2VlZERhdGEsIGZhbGxiYWNrUm91dGVQYXJhbXMsIGNsaWVudE1vZHVsZXMsIGNoaWxkS2V5LCBzZWdtZW50VGFza3MpO1xuICAgICAgICBpZiAoc2xvdE1ldGFkYXRhID09PSBudWxsKSB7XG4gICAgICAgICAgICBzbG90TWV0YWRhdGEgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBzbG90TWV0YWRhdGFbcGFyYWxsZWxSb3V0ZUtleV0gPSBjaGlsZFRyZWU7XG4gICAgfVxuICAgIGlmIChzZWVkRGF0YSAhPT0gbnVsbCkge1xuICAgICAgICAvLyBTcGF3biBhIHRhc2sgdG8gd3JpdGUgdGhlIHNlZ21lbnQgZGF0YSB0byBhIG5ldyBGbGlnaHQgc3RyZWFtLlxuICAgICAgICBzZWdtZW50VGFza3MucHVzaCgvLyBTaW5jZSB3ZSdyZSBhbHJlYWR5IGluIHRoZSBtaWRkbGUgb2YgYSByZW5kZXIsIHdhaXQgdW50aWwgYWZ0ZXIgdGhlXG4gICAgICAgIC8vIGN1cnJlbnQgdGFzayB0byBlc2NhcGUgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGNvbnRleHQuXG4gICAgICAgICgwLCBfc2NoZWR1bGVyLndhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKSgpLnRoZW4oKCk9PnJlbmRlclNlZ21lbnRQcmVmZXRjaChidWlsZElkLCBzZWVkRGF0YSwga2V5LCBjbGllbnRNb2R1bGVzKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBzZWdtZW50IGRvZXMgbm90IGhhdmUgYW55IHNlZWQgZGF0YS4gU2tpcCBnZW5lcmF0aW5nIGEgcHJlZmV0Y2hcbiAgICAvLyByZXNwb25zZSBmb3IgaXQuIFdlJ2xsIHN0aWxsIGluY2x1ZGUgaXQgaW4gdGhlIHJvdXRlIHRyZWUsIHRob3VnaC5cbiAgICAvLyBUT0RPOiBXZSBzaG91bGQgZW5jb2RlIGluIHRoZSByb3V0ZSB0cmVlIHdoZXRoZXIgYSBzZWdtZW50IGlzIG1pc3NpbmdcbiAgICAvLyBzbyB3ZSBkb24ndCBhdHRlbXB0IHRvIGZldGNoIGl0IGZvciBubyByZWFzb24uIEFzIG9mIG5vdyB0aGlzIHNob3VsZG4ndFxuICAgIC8vIGV2ZXIgaGFwcGVuIGluIHByYWN0aWNlLCB0aG91Z2guXG4gICAgfVxuICAgIC8vIE1ldGFkYXRhIGFib3V0IHRoZSBzZWdtZW50LiBTZW50IHRvIHRoZSBjbGllbnQgYXMgcGFydCBvZiB0aGVcbiAgICAvLyB0cmVlIHByZWZldGNoLlxuICAgIHJldHVybiB7XG4gICAgICAgIHNlZ21lbnQ6IHJvdXRlWzBdLFxuICAgICAgICBzbG90czogc2xvdE1ldGFkYXRhLFxuICAgICAgICBpc1Jvb3RMYXlvdXQ6IHJvdXRlWzRdID09PSB0cnVlXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGVuY29kZVNlZ21lbnRXaXRoUG9zc2libGVGYWxsYmFja1BhcmFtKHNlZ21lbnQsIGZhbGxiYWNrUm91dGVQYXJhbXMpIHtcbiAgICBjb25zdCBuYW1lID0gc2VnbWVudFswXTtcbiAgICBpZiAoIWZhbGxiYWNrUm91dGVQYXJhbXMuaGFzKG5hbWUpKSB7XG4gICAgICAgIC8vIE5vcm1hbCBjYXNlLiBObyBtYXRjaGluZyBmYWxsYmFjayBwYXJhbWV0ZXIuXG4gICAgICAgIHJldHVybiAoMCwgX3NlZ21lbnR2YWx1ZWVuY29kaW5nLmVuY29kZVNlZ21lbnQpKHNlZ21lbnQpO1xuICAgIH1cbiAgICAvLyBUaGlzIHNlZ21lbnQgaW5jbHVkZXMgYSBmYWxsYmFjayBwYXJhbWV0ZXIuIER1cmluZyBwcmVyZW5kZXJpbmcsIGEgcmFuZG9tXG4gICAgLy8gcGxhY2Vob2xkZXIgdmFsdWUgd2FzIHVzZWQ7IGhvd2V2ZXIsIGZvciBzZWdtZW50IHByZWZldGNoZXMsIHdlIG5lZWQgdGhlXG4gICAgLy8gc2VnbWVudCBwYXRoIHRvIGJlIHByZWRpY3RhYmxlIHNvIHRoZSBzZXJ2ZXIgY2FuIGNyZWF0ZSBhIHJld3JpdGUgZm9yIGl0LlxuICAgIC8vIFNvLCByZXBsYWNlIHRoZSBwbGFjZWhvbGRlciBzZWdtZW50IHZhbHVlIHdpdGggYSBcInRlbXBsYXRlXCIgc3RyaW5nLFxuICAgIC8vIGUuZy4gYFtuYW1lXWAuXG4gICAgLy8gVE9ETzogVGhpcyB3aWxsIGJlY29tZSBhIGJpdCBjbGVhbmVyIG9uY2UgcmVtb3ZlIHJvdXRlIHBhcmFtZXRlcnMgZnJvbSB0aGVcbiAgICAvLyBzZXJ2ZXIgcmVzcG9uc2UsIGFuZCBpbnN0ZWFkIGFkZCB0aGVtIHRvIHRoZSBzZWdtZW50IGtleXMgb24gdGhlIGNsaWVudC5cbiAgICAvLyBJbnN0ZWFkIG9mIGEgc3RyaW5nIHJlcGxhY2VtZW50LCBsaWtlIHdlIGRvIGhlcmUsIHJvdXRlIHBhcmFtcyB3aWxsIGFsd2F5c1xuICAgIC8vIGJlIGVuY29kZWQgaW4gc2VwYXJhdGUgc3RlcCBmcm9tIHRoZSByZXN0IG9mIHRoZSBzZWdtZW50LCBub3QganVzdCBpbiB0aGVcbiAgICAvLyBjYXNlIG9mIGZhbGxiYWNrIHBhcmFtcy5cbiAgICBjb25zdCBlbmNvZGVkU2VnbWVudCA9ICgwLCBfc2VnbWVudHZhbHVlZW5jb2RpbmcuZW5jb2RlU2VnbWVudCkoc2VnbWVudCk7XG4gICAgY29uc3QgbGFzdEluZGV4ID0gZW5jb2RlZFNlZ21lbnQubGFzdEluZGV4T2YoJyQnKTtcbiAgICBjb25zdCBlbmNvZGVkRmFsbGJhY2tTZWdtZW50ID0gLy8gTk9URTogVGhpcyBpcyBndWFyYW50ZWVkIG5vdCB0byBjbGFzaCB3aXRoIHRoZSByZXN0IG9mIHRoZSBzZWdtZW50XG4gICAgLy8gYmVjYXVzZSBub24tc2ltcGxlIGNoYXJhY3RlcnMgKGluY2x1ZGluZyBbIGFuZCBdKSB0cmlnZ2VyIGEgYmFzZVxuICAgIC8vIDY0IGVuY29kaW5nLlxuICAgIGVuY29kZWRTZWdtZW50LnN1YnN0cmluZygwLCBsYXN0SW5kZXggKyAxKSArIGBbJHtuYW1lfV1gO1xuICAgIHJldHVybiBlbmNvZGVkRmFsbGJhY2tTZWdtZW50O1xufVxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyU2VnbWVudFByZWZldGNoKGJ1aWxkSWQsIHNlZWREYXRhLCBrZXksIGNsaWVudE1vZHVsZXMpIHtcbiAgICAvLyBSZW5kZXIgdGhlIHNlZ21lbnQgZGF0YSB0byBhIHN0cmVhbS5cbiAgICAvLyBJbiB0aGUgZnV0dXJlLCB0aGlzIGlzIHdoZXJlIHdlIGNhbiBpbmNsdWRlIGFkZGl0aW9uYWwgbWV0YWRhdGEsIGxpa2UgdGhlXG4gICAgLy8gc3RhbGUgdGltZSBhbmQgY2FjaGUgdGFncy5cbiAgICBjb25zdCByc2MgPSBzZWVkRGF0YVsxXTtcbiAgICBjb25zdCBsb2FkaW5nID0gc2VlZERhdGFbM107XG4gICAgY29uc3Qgc2VnbWVudFByZWZldGNoID0ge1xuICAgICAgICBidWlsZElkLFxuICAgICAgICByc2MsXG4gICAgICAgIGxvYWRpbmcsXG4gICAgICAgIGlzUGFydGlhbDogYXdhaXQgaXNQYXJ0aWFsUlNDRGF0YShyc2MsIGNsaWVudE1vZHVsZXMpXG4gICAgfTtcbiAgICAvLyBTaW5jZSBhbGwgd2UncmUgZG9pbmcgaXMgZGVjb2RpbmcgYW5kIHJlLWVuY29kaW5nIGEgY2FjaGVkIHByZXJlbmRlciwgaWZcbiAgICAvLyBpdCB0YWtlcyBsb25nZXIgdGhhbiBhIG1pY3JvdGFzaywgaXQgbXVzdCBiZWNhdXNlIG9mIGhhbmdpbmcgcHJvbWlzZXNcbiAgICAvLyBjYXVzZWQgYnkgZHluYW1pYyBkYXRhLiBBYm9ydCB0aGUgc3RyZWFtIGF0IHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgdGFzay5cbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgKDAsIF9zY2hlZHVsZXIud2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2spKCkudGhlbigoKT0+YWJvcnRDb250cm9sbGVyLmFib3J0KCkpO1xuICAgIGNvbnN0IHsgcHJlbHVkZTogc2VnbWVudFN0cmVhbSB9ID0gYXdhaXQgKDAsIF9zdGF0aWMudW5zdGFibGVfcHJlcmVuZGVyKShzZWdtZW50UHJlZmV0Y2gsIGNsaWVudE1vZHVsZXMsIHtcbiAgICAgICAgZmlsdGVyU3RhY2tGcmFtZSxcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBvbkVycm9yOiBvblNlZ21lbnRQcmVyZW5kZXJFcnJvclxuICAgIH0pO1xuICAgIGNvbnN0IHNlZ21lbnRCdWZmZXIgPSBhd2FpdCAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbVRvQnVmZmVyKShzZWdtZW50U3RyZWFtKTtcbiAgICBpZiAoa2V5ID09PSBfc2VnbWVudHZhbHVlZW5jb2RpbmcuUk9PVF9TRUdNRU5UX0tFWSkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJy9faW5kZXgnLFxuICAgICAgICAgICAgc2VnbWVudEJ1ZmZlclxuICAgICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBzZWdtZW50QnVmZmVyXG4gICAgICAgIF07XG4gICAgfVxufVxuYXN5bmMgZnVuY3Rpb24gaXNQYXJ0aWFsUlNDRGF0YShyc2MsIGNsaWVudE1vZHVsZXMpIHtcbiAgICAvLyBXZSBjYW4gZGV0ZXJtaW5lIGlmIGEgc2VnbWVudCBjb250YWlucyBvbmx5IHBhcnRpYWwgZGF0YSBpZiBpdCB0YWtlcyBsb25nZXJcbiAgICAvLyB0aGFuIGEgdGFzayB0byBlbmNvZGUsIGJlY2F1c2UgZHluYW1pYyBkYXRhIGlzIGVuY29kZWQgYXMgYW4gaW5maW5pdGVcbiAgICAvLyBwcm9taXNlLiBXZSBtdXN0IGRvIHRoaXMgaW4gYSBzZXBhcmF0ZSBGbGlnaHQgcHJlcmVuZGVyIGZyb20gdGhlIG9uZSB0aGF0XG4gICAgLy8gYWN0dWFsbHkgZ2VuZXJhdGVzIHRoZSBwcmVmZXRjaCBzdHJlYW0gYmVjYXVzZSB3ZSBuZWVkIHRvIGluY2x1ZGVcbiAgICAvLyBgaXNQYXJ0aWFsYCBpbiB0aGUgc3RyZWFtIGl0c2VsZi5cbiAgICBsZXQgaXNQYXJ0aWFsID0gZmFsc2U7XG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICgwLCBfc2NoZWR1bGVyLndhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrKSgpLnRoZW4oKCk9PntcbiAgICAgICAgLy8gSWYgd2UgaGF2ZW4ndCB5ZXQgZmluaXNoZWQgdGhlIG91dGVyIHRhc2ssIHRoZW4gaXQgbXVzdCBiZSBiZWNhdXNlIHdlXG4gICAgICAgIC8vIGFjY2Vzc2VkIGR5bmFtaWMgZGF0YS5cbiAgICAgICAgaXNQYXJ0aWFsID0gdHJ1ZTtcbiAgICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgfSk7XG4gICAgYXdhaXQgKDAsIF9zdGF0aWMudW5zdGFibGVfcHJlcmVuZGVyKShyc2MsIGNsaWVudE1vZHVsZXMsIHtcbiAgICAgICAgZmlsdGVyU3RhY2tGcmFtZSxcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBvbkVycm9yICgpIHt9LFxuICAgICAgICBvblBvc3Rwb25lICgpIHtcbiAgICAgICAgICAgIC8vIElmIHNvbWV0aGluZyBwb3N0cG9uZWQsIGkuZS4gd2hlbiBEeW5hbWljIElPIGlzIG5vdCBlbmFibGVkLCB3ZSBjYW5cbiAgICAgICAgICAgIC8vIGluZmVyIHRoYXQgdGhlIFJTQyBkYXRhIGlzIHBhcnRpYWwuXG4gICAgICAgICAgICBpc1BhcnRpYWwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGlzUGFydGlhbDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVVuY2xvc2luZ1ByZWZldGNoU3RyZWFtKG9yaWdpbmFsRmxpZ2h0U3RyZWFtKSB7XG4gICAgLy8gV2hlbiBQUFIgaXMgZW5hYmxlZCwgcHJlZmV0Y2ggc3RyZWFtcyBtYXkgY29udGFpbiByZWZlcmVuY2VzIHRoYXQgbmV2ZXJcbiAgICAvLyByZXNvbHZlLCBiZWNhdXNlIHRoYXQncyBob3cgd2UgZW5jb2RlIGR5bmFtaWMgZGF0YSBhY2Nlc3MuIEluIHRoZSBkZWNvZGVkXG4gICAgLy8gb2JqZWN0IHJldHVybmVkIGJ5IHRoZSBGbGlnaHQgY2xpZW50LCB0aGVzZSBhcmUgcmVpZmllZCBpbnRvIGhhbmdpbmdcbiAgICAvLyBwcm9taXNlcyB0aGF0IHN1c3BlbmQgZHVyaW5nIHJlbmRlciwgd2hpY2ggaXMgZWZmZWN0aXZlbHkgd2hhdCB3ZSB3YW50LlxuICAgIC8vIFRoZSBVSSByZXNvbHZlcyB3aGVuIGl0IHN3aXRjaGVzIHRvIHRoZSBkeW5hbWljIGRhdGEgc3RyZWFtXG4gICAgLy8gKHZpYSB1c2VEZWZlcnJlZFZhbHVlKGR5bmFtaWMsIHN0YXRpYykpLlxuICAgIC8vXG4gICAgLy8gSG93ZXZlciwgdGhlIEZsaWdodCBpbXBsZW1lbnRhdGlvbiBjdXJyZW50bHkgZXJyb3JzIGlmIHRoZSBzZXJ2ZXIgY2xvc2VzXG4gICAgLy8gdGhlIHJlc3BvbnNlIGJlZm9yZSBhbGwgdGhlIHJlZmVyZW5jZXMgYXJlIHJlc29sdmVkLiBBcyBhIGNoZWF0IHRvIHdvcmtcbiAgICAvLyBhcm91bmQgdGhpcywgd2Ugd3JhcCB0aGUgb3JpZ2luYWwgc3RyZWFtIGluIGEgbmV3IHN0cmVhbSB0aGF0IG5ldmVyIGNsb3NlcyxcbiAgICAvLyBhbmQgdGhlcmVmb3JlIGRvZXNuJ3QgZXJyb3IuXG4gICAgY29uc3QgcmVhZGVyID0gb3JpZ2luYWxGbGlnaHRTdHJlYW0uZ2V0UmVhZGVyKCk7XG4gICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgIGFzeW5jIHB1bGwgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIHdoaWxlKHRydWUpe1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFkb25lKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBhc3MgdG8gdGhlIHRhcmdldCBzdHJlYW0gYW5kIGtlZXAgY29uc3VtaW5nIHRoZSBGbGlnaHQgcmVzcG9uc2VcbiAgICAgICAgICAgICAgICAgICAgLy8gZnJvbSB0aGUgc2VydmVyLlxuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gVGhlIHNlcnZlciBzdHJlYW0gaGFzIGNsb3NlZC4gRXhpdCwgYnV0IGludGVudGlvbmFsbHkgZG8gbm90IGNsb3NlXG4gICAgICAgICAgICAgICAgLy8gdGhlIHRhcmdldCBzdHJlYW0uXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbGxlY3Qtc2VnbWVudC1kYXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/collect-segment-data.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/create-error-handler.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/create-error-handler.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createFlightReactServerErrorHandler: function() {\n return createFlightReactServerErrorHandler;\n },\n createHTMLErrorHandler: function() {\n return createHTMLErrorHandler;\n },\n createHTMLReactServerErrorHandler: function() {\n return createHTMLReactServerErrorHandler;\n },\n getDigestForWellKnownError: function() {\n return getDigestForWellKnownError;\n },\n isUserLandError: function() {\n return isUserLandError;\n }\n});\nconst _stringhash = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/string-hash */ \"(rsc)/./node_modules/next/dist/compiled/string-hash/index.js\"));\nconst _formatservererror = __webpack_require__(/*! ../../lib/format-server-error */ \"(rsc)/./node_modules/next/dist/lib/format-server-error.js\");\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _pipereadable = __webpack_require__(/*! ../pipe-readable */ \"(rsc)/./node_modules/next/dist/server/pipe-readable.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(rsc)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _hooksservercontext = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nconst _isnextroutererror = __webpack_require__(/*! ../../client/components/is-next-router-error */ \"(rsc)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _dynamicrendering = __webpack_require__(/*! ./dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _iserror = __webpack_require__(/*! ../../lib/is-error */ \"(rsc)/./node_modules/next/dist/lib/is-error.js\");\nconst _errortelemetryutils = __webpack_require__(/*! ../../lib/error-telemetry-utils */ \"(rsc)/./node_modules/next/dist/lib/error-telemetry-utils.js\");\nconst _reactlargeshellerror = __webpack_require__(/*! ./react-large-shell-error */ \"(rsc)/./node_modules/next/dist/server/app-render/react-large-shell-error.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction getDigestForWellKnownError(error) {\n // If we're bailing out to CSR, we don't need to log the error.\n if ((0, _bailouttocsr.isBailoutToCSRError)(error)) return error.digest;\n // If this is a navigation error, we don't need to log the error.\n if ((0, _isnextroutererror.isNextRouterError)(error)) return error.digest;\n // If this error occurs, we know that we should be stopping the static\n // render. This is only thrown in static generation when PPR is not enabled,\n // which causes the whole page to be marked as dynamic. We don't need to\n // tell the user about this error, as it's not actionable.\n if ((0, _hooksservercontext.isDynamicServerError)(error)) return error.digest;\n // If this is a prerender interrupted error, we don't need to log the error.\n if ((0, _dynamicrendering.isPrerenderInterruptedError)(error)) return error.digest;\n return undefined;\n}\nfunction createFlightReactServerErrorHandler(shouldFormatError, onReactServerRenderError) {\n return (thrownValue)=>{\n if (typeof thrownValue === 'string') {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n return (0, _stringhash.default)(thrownValue).toString();\n }\n // If the response was closed, we don't need to log the error.\n if ((0, _pipereadable.isAbortError)(thrownValue)) return;\n const digest = getDigestForWellKnownError(thrownValue);\n if (digest) {\n return digest;\n }\n if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n const err = (0, _iserror.getProperError)(thrownValue);\n // If the error already has a digest, respect the original digest,\n // so it won't get re-generated into another new error.\n if (!err.digest) {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n err.digest = (0, _stringhash.default)(err.message + err.stack || '').toString();\n }\n // Format server errors in development to add more helpful error messages\n if (shouldFormatError) {\n (0, _formatservererror.formatServerError)(err);\n }\n // Record exception in an active span, if available.\n const span = (0, _tracer.getTracer)().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setStatus({\n code: _tracer.SpanStatusCode.ERROR,\n message: err.message\n });\n }\n onReactServerRenderError(err);\n return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);\n };\n}\nfunction createHTMLReactServerErrorHandler(shouldFormatError, isNextExport, reactServerErrors, silenceLogger, onReactServerRenderError) {\n return (thrownValue)=>{\n var _err_message;\n if (typeof thrownValue === 'string') {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n return (0, _stringhash.default)(thrownValue).toString();\n }\n // If the response was closed, we don't need to log the error.\n if ((0, _pipereadable.isAbortError)(thrownValue)) return;\n const digest = getDigestForWellKnownError(thrownValue);\n if (digest) {\n return digest;\n }\n if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n const err = (0, _iserror.getProperError)(thrownValue);\n // If the error already has a digest, respect the original digest,\n // so it won't get re-generated into another new error.\n if (!err.digest) {\n // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited.\n err.digest = (0, _stringhash.default)(err.message + (err.stack || '')).toString();\n }\n // @TODO by putting this here and not at the top it is possible that\n // we don't error the build in places we actually expect to\n if (!reactServerErrors.has(err.digest)) {\n reactServerErrors.set(err.digest, err);\n }\n // Format server errors in development to add more helpful error messages\n if (shouldFormatError) {\n (0, _formatservererror.formatServerError)(err);\n }\n // Don't log the suppressed error during export\n if (!(isNextExport && (err == null ? void 0 : (_err_message = err.message) == null ? void 0 : _err_message.includes('The specific message is omitted in production builds to avoid leaking sensitive details.')))) {\n // Record exception in an active span, if available.\n const span = (0, _tracer.getTracer)().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setStatus({\n code: _tracer.SpanStatusCode.ERROR,\n message: err.message\n });\n }\n if (!silenceLogger) {\n onReactServerRenderError == null ? void 0 : onReactServerRenderError(err);\n }\n }\n return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);\n };\n}\nfunction createHTMLErrorHandler(shouldFormatError, isNextExport, reactServerErrors, allCapturedErrors, silenceLogger, onHTMLRenderSSRError) {\n return (thrownValue, errorInfo)=>{\n var _err_message;\n if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) {\n // TODO: Aggregate\n console.error(thrownValue);\n return undefined;\n }\n let isSSRError = true;\n allCapturedErrors.push(thrownValue);\n // If the response was closed, we don't need to log the error.\n if ((0, _pipereadable.isAbortError)(thrownValue)) return;\n const digest = getDigestForWellKnownError(thrownValue);\n if (digest) {\n return digest;\n }\n const err = (0, _iserror.getProperError)(thrownValue);\n // If the error already has a digest, respect the original digest,\n // so it won't get re-generated into another new error.\n if (err.digest) {\n if (reactServerErrors.has(err.digest)) {\n // This error is likely an obfuscated error from react-server.\n // We recover the original error here.\n thrownValue = reactServerErrors.get(err.digest);\n isSSRError = false;\n } else {\n // The error is not from react-server but has a digest\n // from other means so we don't need to produce a new one\n }\n } else {\n err.digest = (0, _stringhash.default)(err.message + ((errorInfo == null ? void 0 : errorInfo.componentStack) || err.stack || '')).toString();\n }\n // Format server errors in development to add more helpful error messages\n if (shouldFormatError) {\n (0, _formatservererror.formatServerError)(err);\n }\n // Don't log the suppressed error during export\n if (!(isNextExport && (err == null ? void 0 : (_err_message = err.message) == null ? void 0 : _err_message.includes('The specific message is omitted in production builds to avoid leaking sensitive details.')))) {\n // Record exception in an active span, if available.\n const span = (0, _tracer.getTracer)().getActiveScopeSpan();\n if (span) {\n span.recordException(err);\n span.setStatus({\n code: _tracer.SpanStatusCode.ERROR,\n message: err.message\n });\n }\n if (!silenceLogger && // HTML errors contain RSC errors as well, filter them out before reporting\n isSSRError) {\n onHTMLRenderSSRError(err, errorInfo);\n }\n }\n return (0, _errortelemetryutils.createDigestWithErrorCode)(thrownValue, err.digest);\n };\n}\nfunction isUserLandError(err) {\n return !(0, _pipereadable.isAbortError)(err) && !(0, _bailouttocsr.isBailoutToCSRError)(err) && !(0, _isnextroutererror.isNextRouterError)(err);\n}\n\n//# sourceMappingURL=create-error-handler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2NyZWF0ZS1lcnJvci1oYW5kbGVyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDJEQUEyRCxtQkFBTyxDQUFDLG9HQUFnQztBQUNuRywyQkFBMkIsbUJBQU8sQ0FBQyxnR0FBK0I7QUFDbEUsZ0JBQWdCLG1CQUFPLENBQUMsc0ZBQXFCO0FBQzdDLHNCQUFzQixtQkFBTyxDQUFDLGdGQUFrQjtBQUNoRCxzQkFBc0IsbUJBQU8sQ0FBQyw4SEFBOEM7QUFDNUUsNEJBQTRCLG1CQUFPLENBQUMsOEhBQThDO0FBQ2xGLDJCQUEyQixtQkFBTyxDQUFDLDhIQUE4QztBQUNqRiwwQkFBMEIsbUJBQU8sQ0FBQyxrR0FBcUI7QUFDdkQsaUJBQWlCLG1CQUFPLENBQUMsMEVBQW9CO0FBQzdDLDZCQUE2QixtQkFBTyxDQUFDLG9HQUFpQztBQUN0RSw4QkFBOEIsbUJBQU8sQ0FBQyw4R0FBMkI7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvY3JlYXRlLWVycm9yLWhhbmRsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjcmVhdGVGbGlnaHRSZWFjdFNlcnZlckVycm9ySGFuZGxlcjogbnVsbCxcbiAgICBjcmVhdGVIVE1MRXJyb3JIYW5kbGVyOiBudWxsLFxuICAgIGNyZWF0ZUhUTUxSZWFjdFNlcnZlckVycm9ySGFuZGxlcjogbnVsbCxcbiAgICBnZXREaWdlc3RGb3JXZWxsS25vd25FcnJvcjogbnVsbCxcbiAgICBpc1VzZXJMYW5kRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgY3JlYXRlRmxpZ2h0UmVhY3RTZXJ2ZXJFcnJvckhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRmxpZ2h0UmVhY3RTZXJ2ZXJFcnJvckhhbmRsZXI7XG4gICAgfSxcbiAgICBjcmVhdGVIVE1MRXJyb3JIYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUhUTUxFcnJvckhhbmRsZXI7XG4gICAgfSxcbiAgICBjcmVhdGVIVE1MUmVhY3RTZXJ2ZXJFcnJvckhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlSFRNTFJlYWN0U2VydmVyRXJyb3JIYW5kbGVyO1xuICAgIH0sXG4gICAgZ2V0RGlnZXN0Rm9yV2VsbEtub3duRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0RGlnZXN0Rm9yV2VsbEtub3duRXJyb3I7XG4gICAgfSxcbiAgICBpc1VzZXJMYW5kRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNVc2VyTGFuZEVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX3N0cmluZ2hhc2ggPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N0cmluZy1oYXNoXCIpKTtcbmNvbnN0IF9mb3JtYXRzZXJ2ZXJlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvZm9ybWF0LXNlcnZlci1lcnJvclwiKTtcbmNvbnN0IF90cmFjZXIgPSByZXF1aXJlKFwiLi4vbGliL3RyYWNlL3RyYWNlclwiKTtcbmNvbnN0IF9waXBlcmVhZGFibGUgPSByZXF1aXJlKFwiLi4vcGlwZS1yZWFkYWJsZVwiKTtcbmNvbnN0IF9iYWlsb3V0dG9jc3IgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3JcIik7XG5jb25zdCBfaG9va3NzZXJ2ZXJjb250ZXh0ID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0XCIpO1xuY29uc3QgX2lzbmV4dHJvdXRlcmVycm9yID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmcgPSByZXF1aXJlKFwiLi9keW5hbWljLXJlbmRlcmluZ1wiKTtcbmNvbnN0IF9pc2Vycm9yID0gcmVxdWlyZShcIi4uLy4uL2xpYi9pcy1lcnJvclwiKTtcbmNvbnN0IF9lcnJvcnRlbGVtZXRyeXV0aWxzID0gcmVxdWlyZShcIi4uLy4uL2xpYi9lcnJvci10ZWxlbWV0cnktdXRpbHNcIik7XG5jb25zdCBfcmVhY3RsYXJnZXNoZWxsZXJyb3IgPSByZXF1aXJlKFwiLi9yZWFjdC1sYXJnZS1zaGVsbC1lcnJvclwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0RGlnZXN0Rm9yV2VsbEtub3duRXJyb3IoZXJyb3IpIHtcbiAgICAvLyBJZiB3ZSdyZSBiYWlsaW5nIG91dCB0byBDU1IsIHdlIGRvbid0IG5lZWQgdG8gbG9nIHRoZSBlcnJvci5cbiAgICBpZiAoKDAsIF9iYWlsb3V0dG9jc3IuaXNCYWlsb3V0VG9DU1JFcnJvcikoZXJyb3IpKSByZXR1cm4gZXJyb3IuZGlnZXN0O1xuICAgIC8vIElmIHRoaXMgaXMgYSBuYXZpZ2F0aW9uIGVycm9yLCB3ZSBkb24ndCBuZWVkIHRvIGxvZyB0aGUgZXJyb3IuXG4gICAgaWYgKCgwLCBfaXNuZXh0cm91dGVyZXJyb3IuaXNOZXh0Um91dGVyRXJyb3IpKGVycm9yKSkgcmV0dXJuIGVycm9yLmRpZ2VzdDtcbiAgICAvLyBJZiB0aGlzIGVycm9yIG9jY3Vycywgd2Uga25vdyB0aGF0IHdlIHNob3VsZCBiZSBzdG9wcGluZyB0aGUgc3RhdGljXG4gICAgLy8gcmVuZGVyLiBUaGlzIGlzIG9ubHkgdGhyb3duIGluIHN0YXRpYyBnZW5lcmF0aW9uIHdoZW4gUFBSIGlzIG5vdCBlbmFibGVkLFxuICAgIC8vIHdoaWNoIGNhdXNlcyB0aGUgd2hvbGUgcGFnZSB0byBiZSBtYXJrZWQgYXMgZHluYW1pYy4gV2UgZG9uJ3QgbmVlZCB0b1xuICAgIC8vIHRlbGwgdGhlIHVzZXIgYWJvdXQgdGhpcyBlcnJvciwgYXMgaXQncyBub3QgYWN0aW9uYWJsZS5cbiAgICBpZiAoKDAsIF9ob29rc3NlcnZlcmNvbnRleHQuaXNEeW5hbWljU2VydmVyRXJyb3IpKGVycm9yKSkgcmV0dXJuIGVycm9yLmRpZ2VzdDtcbiAgICAvLyBJZiB0aGlzIGlzIGEgcHJlcmVuZGVyIGludGVycnVwdGVkIGVycm9yLCB3ZSBkb24ndCBuZWVkIHRvIGxvZyB0aGUgZXJyb3IuXG4gICAgaWYgKCgwLCBfZHluYW1pY3JlbmRlcmluZy5pc1ByZXJlbmRlckludGVycnVwdGVkRXJyb3IpKGVycm9yKSkgcmV0dXJuIGVycm9yLmRpZ2VzdDtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gY3JlYXRlRmxpZ2h0UmVhY3RTZXJ2ZXJFcnJvckhhbmRsZXIoc2hvdWxkRm9ybWF0RXJyb3IsIG9uUmVhY3RTZXJ2ZXJSZW5kZXJFcnJvcikge1xuICAgIHJldHVybiAodGhyb3duVmFsdWUpPT57XG4gICAgICAgIGlmICh0eXBlb2YgdGhyb3duVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyBUT0RPLUFQUDogbG9vayBhdCB1c2luZyB3ZWJjcnlwdG8gaW5zdGVhZC4gUmVxdWlyZXMgYSBwcm9taXNlIHRvIGJlIGF3YWl0ZWQuXG4gICAgICAgICAgICByZXR1cm4gKDAsIF9zdHJpbmdoYXNoLmRlZmF1bHQpKHRocm93blZhbHVlKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSB3YXMgY2xvc2VkLCB3ZSBkb24ndCBuZWVkIHRvIGxvZyB0aGUgZXJyb3IuXG4gICAgICAgIGlmICgoMCwgX3BpcGVyZWFkYWJsZS5pc0Fib3J0RXJyb3IpKHRocm93blZhbHVlKSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBkaWdlc3QgPSBnZXREaWdlc3RGb3JXZWxsS25vd25FcnJvcih0aHJvd25WYWx1ZSk7XG4gICAgICAgIGlmIChkaWdlc3QpIHtcbiAgICAgICAgICAgIHJldHVybiBkaWdlc3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgwLCBfcmVhY3RsYXJnZXNoZWxsZXJyb3IuaXNSZWFjdExhcmdlU2hlbGxFcnJvcikodGhyb3duVmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBBZ2dyZWdhdGVcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IodGhyb3duVmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnIgPSAoMCwgX2lzZXJyb3IuZ2V0UHJvcGVyRXJyb3IpKHRocm93blZhbHVlKTtcbiAgICAgICAgLy8gSWYgdGhlIGVycm9yIGFscmVhZHkgaGFzIGEgZGlnZXN0LCByZXNwZWN0IHRoZSBvcmlnaW5hbCBkaWdlc3QsXG4gICAgICAgIC8vIHNvIGl0IHdvbid0IGdldCByZS1nZW5lcmF0ZWQgaW50byBhbm90aGVyIG5ldyBlcnJvci5cbiAgICAgICAgaWYgKCFlcnIuZGlnZXN0KSB7XG4gICAgICAgICAgICAvLyBUT0RPLUFQUDogbG9vayBhdCB1c2luZyB3ZWJjcnlwdG8gaW5zdGVhZC4gUmVxdWlyZXMgYSBwcm9taXNlIHRvIGJlIGF3YWl0ZWQuXG4gICAgICAgICAgICBlcnIuZGlnZXN0ID0gKDAsIF9zdHJpbmdoYXNoLmRlZmF1bHQpKGVyci5tZXNzYWdlICsgZXJyLnN0YWNrIHx8ICcnKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvcm1hdCBzZXJ2ZXIgZXJyb3JzIGluIGRldmVsb3BtZW50IHRvIGFkZCBtb3JlIGhlbHBmdWwgZXJyb3IgbWVzc2FnZXNcbiAgICAgICAgaWYgKHNob3VsZEZvcm1hdEVycm9yKSB7XG4gICAgICAgICAgICAoMCwgX2Zvcm1hdHNlcnZlcmVycm9yLmZvcm1hdFNlcnZlckVycm9yKShlcnIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlY29yZCBleGNlcHRpb24gaW4gYW4gYWN0aXZlIHNwYW4sIGlmIGF2YWlsYWJsZS5cbiAgICAgICAgY29uc3Qgc3BhbiA9ICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS5nZXRBY3RpdmVTY29wZVNwYW4oKTtcbiAgICAgICAgaWYgKHNwYW4pIHtcbiAgICAgICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycik7XG4gICAgICAgICAgICBzcGFuLnNldFN0YXR1cyh7XG4gICAgICAgICAgICAgICAgY29kZTogX3RyYWNlci5TcGFuU3RhdHVzQ29kZS5FUlJPUixcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgb25SZWFjdFNlcnZlclJlbmRlckVycm9yKGVycik7XG4gICAgICAgIHJldHVybiAoMCwgX2Vycm9ydGVsZW1ldHJ5dXRpbHMuY3JlYXRlRGlnZXN0V2l0aEVycm9yQ29kZSkodGhyb3duVmFsdWUsIGVyci5kaWdlc3QpO1xuICAgIH07XG59XG5mdW5jdGlvbiBjcmVhdGVIVE1MUmVhY3RTZXJ2ZXJFcnJvckhhbmRsZXIoc2hvdWxkRm9ybWF0RXJyb3IsIGlzTmV4dEV4cG9ydCwgcmVhY3RTZXJ2ZXJFcnJvcnMsIHNpbGVuY2VMb2dnZXIsIG9uUmVhY3RTZXJ2ZXJSZW5kZXJFcnJvcikge1xuICAgIHJldHVybiAodGhyb3duVmFsdWUpPT57XG4gICAgICAgIHZhciBfZXJyX21lc3NhZ2U7XG4gICAgICAgIGlmICh0eXBlb2YgdGhyb3duVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAvLyBUT0RPLUFQUDogbG9vayBhdCB1c2luZyB3ZWJjcnlwdG8gaW5zdGVhZC4gUmVxdWlyZXMgYSBwcm9taXNlIHRvIGJlIGF3YWl0ZWQuXG4gICAgICAgICAgICByZXR1cm4gKDAsIF9zdHJpbmdoYXNoLmRlZmF1bHQpKHRocm93blZhbHVlKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSB3YXMgY2xvc2VkLCB3ZSBkb24ndCBuZWVkIHRvIGxvZyB0aGUgZXJyb3IuXG4gICAgICAgIGlmICgoMCwgX3BpcGVyZWFkYWJsZS5pc0Fib3J0RXJyb3IpKHRocm93blZhbHVlKSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBkaWdlc3QgPSBnZXREaWdlc3RGb3JXZWxsS25vd25FcnJvcih0aHJvd25WYWx1ZSk7XG4gICAgICAgIGlmIChkaWdlc3QpIHtcbiAgICAgICAgICAgIHJldHVybiBkaWdlc3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgwLCBfcmVhY3RsYXJnZXNoZWxsZXJyb3IuaXNSZWFjdExhcmdlU2hlbGxFcnJvcikodGhyb3duVmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBBZ2dyZWdhdGVcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IodGhyb3duVmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlcnIgPSAoMCwgX2lzZXJyb3IuZ2V0UHJvcGVyRXJyb3IpKHRocm93blZhbHVlKTtcbiAgICAgICAgLy8gSWYgdGhlIGVycm9yIGFscmVhZHkgaGFzIGEgZGlnZXN0LCByZXNwZWN0IHRoZSBvcmlnaW5hbCBkaWdlc3QsXG4gICAgICAgIC8vIHNvIGl0IHdvbid0IGdldCByZS1nZW5lcmF0ZWQgaW50byBhbm90aGVyIG5ldyBlcnJvci5cbiAgICAgICAgaWYgKCFlcnIuZGlnZXN0KSB7XG4gICAgICAgICAgICAvLyBUT0RPLUFQUDogbG9vayBhdCB1c2luZyB3ZWJjcnlwdG8gaW5zdGVhZC4gUmVxdWlyZXMgYSBwcm9taXNlIHRvIGJlIGF3YWl0ZWQuXG4gICAgICAgICAgICBlcnIuZGlnZXN0ID0gKDAsIF9zdHJpbmdoYXNoLmRlZmF1bHQpKGVyci5tZXNzYWdlICsgKGVyci5zdGFjayB8fCAnJykpLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQFRPRE8gYnkgcHV0dGluZyB0aGlzIGhlcmUgYW5kIG5vdCBhdCB0aGUgdG9wIGl0IGlzIHBvc3NpYmxlIHRoYXRcbiAgICAgICAgLy8gd2UgZG9uJ3QgZXJyb3IgdGhlIGJ1aWxkIGluIHBsYWNlcyB3ZSBhY3R1YWxseSBleHBlY3QgdG9cbiAgICAgICAgaWYgKCFyZWFjdFNlcnZlckVycm9ycy5oYXMoZXJyLmRpZ2VzdCkpIHtcbiAgICAgICAgICAgIHJlYWN0U2VydmVyRXJyb3JzLnNldChlcnIuZGlnZXN0LCBlcnIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvcm1hdCBzZXJ2ZXIgZXJyb3JzIGluIGRldmVsb3BtZW50IHRvIGFkZCBtb3JlIGhlbHBmdWwgZXJyb3IgbWVzc2FnZXNcbiAgICAgICAgaWYgKHNob3VsZEZvcm1hdEVycm9yKSB7XG4gICAgICAgICAgICAoMCwgX2Zvcm1hdHNlcnZlcmVycm9yLmZvcm1hdFNlcnZlckVycm9yKShlcnIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIERvbid0IGxvZyB0aGUgc3VwcHJlc3NlZCBlcnJvciBkdXJpbmcgZXhwb3J0XG4gICAgICAgIGlmICghKGlzTmV4dEV4cG9ydCAmJiAoZXJyID09IG51bGwgPyB2b2lkIDAgOiAoX2Vycl9tZXNzYWdlID0gZXJyLm1lc3NhZ2UpID09IG51bGwgPyB2b2lkIDAgOiBfZXJyX21lc3NhZ2UuaW5jbHVkZXMoJ1RoZSBzcGVjaWZpYyBtZXNzYWdlIGlzIG9taXR0ZWQgaW4gcHJvZHVjdGlvbiBidWlsZHMgdG8gYXZvaWQgbGVha2luZyBzZW5zaXRpdmUgZGV0YWlscy4nKSkpKSB7XG4gICAgICAgICAgICAvLyBSZWNvcmQgZXhjZXB0aW9uIGluIGFuIGFjdGl2ZSBzcGFuLCBpZiBhdmFpbGFibGUuXG4gICAgICAgICAgICBjb25zdCBzcGFuID0gKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLmdldEFjdGl2ZVNjb3BlU3BhbigpO1xuICAgICAgICAgICAgaWYgKHNwYW4pIHtcbiAgICAgICAgICAgICAgICBzcGFuLnJlY29yZEV4Y2VwdGlvbihlcnIpO1xuICAgICAgICAgICAgICAgIHNwYW4uc2V0U3RhdHVzKHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogX3RyYWNlci5TcGFuU3RhdHVzQ29kZS5FUlJPUixcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghc2lsZW5jZUxvZ2dlcikge1xuICAgICAgICAgICAgICAgIG9uUmVhY3RTZXJ2ZXJSZW5kZXJFcnJvciA9PSBudWxsID8gdm9pZCAwIDogb25SZWFjdFNlcnZlclJlbmRlckVycm9yKGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgwLCBfZXJyb3J0ZWxlbWV0cnl1dGlscy5jcmVhdGVEaWdlc3RXaXRoRXJyb3JDb2RlKSh0aHJvd25WYWx1ZSwgZXJyLmRpZ2VzdCk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUhUTUxFcnJvckhhbmRsZXIoc2hvdWxkRm9ybWF0RXJyb3IsIGlzTmV4dEV4cG9ydCwgcmVhY3RTZXJ2ZXJFcnJvcnMsIGFsbENhcHR1cmVkRXJyb3JzLCBzaWxlbmNlTG9nZ2VyLCBvbkhUTUxSZW5kZXJTU1JFcnJvcikge1xuICAgIHJldHVybiAodGhyb3duVmFsdWUsIGVycm9ySW5mbyk9PntcbiAgICAgICAgdmFyIF9lcnJfbWVzc2FnZTtcbiAgICAgICAgaWYgKCgwLCBfcmVhY3RsYXJnZXNoZWxsZXJyb3IuaXNSZWFjdExhcmdlU2hlbGxFcnJvcikodGhyb3duVmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBBZ2dyZWdhdGVcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IodGhyb3duVmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaXNTU1JFcnJvciA9IHRydWU7XG4gICAgICAgIGFsbENhcHR1cmVkRXJyb3JzLnB1c2godGhyb3duVmFsdWUpO1xuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2Ugd2FzIGNsb3NlZCwgd2UgZG9uJ3QgbmVlZCB0byBsb2cgdGhlIGVycm9yLlxuICAgICAgICBpZiAoKDAsIF9waXBlcmVhZGFibGUuaXNBYm9ydEVycm9yKSh0aHJvd25WYWx1ZSkpIHJldHVybjtcbiAgICAgICAgY29uc3QgZGlnZXN0ID0gZ2V0RGlnZXN0Rm9yV2VsbEtub3duRXJyb3IodGhyb3duVmFsdWUpO1xuICAgICAgICBpZiAoZGlnZXN0KSB7XG4gICAgICAgICAgICByZXR1cm4gZGlnZXN0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVyciA9ICgwLCBfaXNlcnJvci5nZXRQcm9wZXJFcnJvcikodGhyb3duVmFsdWUpO1xuICAgICAgICAvLyBJZiB0aGUgZXJyb3IgYWxyZWFkeSBoYXMgYSBkaWdlc3QsIHJlc3BlY3QgdGhlIG9yaWdpbmFsIGRpZ2VzdCxcbiAgICAgICAgLy8gc28gaXQgd29uJ3QgZ2V0IHJlLWdlbmVyYXRlZCBpbnRvIGFub3RoZXIgbmV3IGVycm9yLlxuICAgICAgICBpZiAoZXJyLmRpZ2VzdCkge1xuICAgICAgICAgICAgaWYgKHJlYWN0U2VydmVyRXJyb3JzLmhhcyhlcnIuZGlnZXN0KSkge1xuICAgICAgICAgICAgICAgIC8vIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGFuIG9iZnVzY2F0ZWQgZXJyb3IgZnJvbSByZWFjdC1zZXJ2ZXIuXG4gICAgICAgICAgICAgICAgLy8gV2UgcmVjb3ZlciB0aGUgb3JpZ2luYWwgZXJyb3IgaGVyZS5cbiAgICAgICAgICAgICAgICB0aHJvd25WYWx1ZSA9IHJlYWN0U2VydmVyRXJyb3JzLmdldChlcnIuZGlnZXN0KTtcbiAgICAgICAgICAgICAgICBpc1NTUkVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gVGhlIGVycm9yIGlzIG5vdCBmcm9tIHJlYWN0LXNlcnZlciBidXQgaGFzIGEgZGlnZXN0XG4gICAgICAgICAgICAvLyBmcm9tIG90aGVyIG1lYW5zIHNvIHdlIGRvbid0IG5lZWQgdG8gcHJvZHVjZSBhIG5ldyBvbmVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVyci5kaWdlc3QgPSAoMCwgX3N0cmluZ2hhc2guZGVmYXVsdCkoZXJyLm1lc3NhZ2UgKyAoKGVycm9ySW5mbyA9PSBudWxsID8gdm9pZCAwIDogZXJyb3JJbmZvLmNvbXBvbmVudFN0YWNrKSB8fCBlcnIuc3RhY2sgfHwgJycpKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvcm1hdCBzZXJ2ZXIgZXJyb3JzIGluIGRldmVsb3BtZW50IHRvIGFkZCBtb3JlIGhlbHBmdWwgZXJyb3IgbWVzc2FnZXNcbiAgICAgICAgaWYgKHNob3VsZEZvcm1hdEVycm9yKSB7XG4gICAgICAgICAgICAoMCwgX2Zvcm1hdHNlcnZlcmVycm9yLmZvcm1hdFNlcnZlckVycm9yKShlcnIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIERvbid0IGxvZyB0aGUgc3VwcHJlc3NlZCBlcnJvciBkdXJpbmcgZXhwb3J0XG4gICAgICAgIGlmICghKGlzTmV4dEV4cG9ydCAmJiAoZXJyID09IG51bGwgPyB2b2lkIDAgOiAoX2Vycl9tZXNzYWdlID0gZXJyLm1lc3NhZ2UpID09IG51bGwgPyB2b2lkIDAgOiBfZXJyX21lc3NhZ2UuaW5jbHVkZXMoJ1RoZSBzcGVjaWZpYyBtZXNzYWdlIGlzIG9taXR0ZWQgaW4gcHJvZHVjdGlvbiBidWlsZHMgdG8gYXZvaWQgbGVha2luZyBzZW5zaXRpdmUgZGV0YWlscy4nKSkpKSB7XG4gICAgICAgICAgICAvLyBSZWNvcmQgZXhjZXB0aW9uIGluIGFuIGFjdGl2ZSBzcGFuLCBpZiBhdmFpbGFibGUuXG4gICAgICAgICAgICBjb25zdCBzcGFuID0gKDAsIF90cmFjZXIuZ2V0VHJhY2VyKSgpLmdldEFjdGl2ZVNjb3BlU3BhbigpO1xuICAgICAgICAgICAgaWYgKHNwYW4pIHtcbiAgICAgICAgICAgICAgICBzcGFuLnJlY29yZEV4Y2VwdGlvbihlcnIpO1xuICAgICAgICAgICAgICAgIHNwYW4uc2V0U3RhdHVzKHtcbiAgICAgICAgICAgICAgICAgICAgY29kZTogX3RyYWNlci5TcGFuU3RhdHVzQ29kZS5FUlJPUixcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghc2lsZW5jZUxvZ2dlciAmJiAvLyBIVE1MIGVycm9ycyBjb250YWluIFJTQyBlcnJvcnMgYXMgd2VsbCwgZmlsdGVyIHRoZW0gb3V0IGJlZm9yZSByZXBvcnRpbmdcbiAgICAgICAgICAgIGlzU1NSRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBvbkhUTUxSZW5kZXJTU1JFcnJvcihlcnIsIGVycm9ySW5mbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICgwLCBfZXJyb3J0ZWxlbWV0cnl1dGlscy5jcmVhdGVEaWdlc3RXaXRoRXJyb3JDb2RlKSh0aHJvd25WYWx1ZSwgZXJyLmRpZ2VzdCk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGlzVXNlckxhbmRFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gISgwLCBfcGlwZXJlYWRhYmxlLmlzQWJvcnRFcnJvcikoZXJyKSAmJiAhKDAsIF9iYWlsb3V0dG9jc3IuaXNCYWlsb3V0VG9DU1JFcnJvcikoZXJyKSAmJiAhKDAsIF9pc25leHRyb3V0ZXJlcnJvci5pc05leHRSb3V0ZXJFcnJvcikoZXJyKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLWVycm9yLWhhbmRsZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/create-error-handler.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js":
/*!***********************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/dynamic-rendering.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Postpone: function() {\n return Postpone;\n },\n PreludeState: function() {\n return PreludeState;\n },\n abortAndThrowOnSynchronousRequestDataAccess: function() {\n return abortAndThrowOnSynchronousRequestDataAccess;\n },\n abortOnSynchronousPlatformIOAccess: function() {\n return abortOnSynchronousPlatformIOAccess;\n },\n accessedDynamicData: function() {\n return accessedDynamicData;\n },\n annotateDynamicAccess: function() {\n return annotateDynamicAccess;\n },\n consumeDynamicAccess: function() {\n return consumeDynamicAccess;\n },\n createDynamicTrackingState: function() {\n return createDynamicTrackingState;\n },\n createDynamicValidationState: function() {\n return createDynamicValidationState;\n },\n createHangingInputAbortSignal: function() {\n return createHangingInputAbortSignal;\n },\n createPostponedAbortSignal: function() {\n return createPostponedAbortSignal;\n },\n formatDynamicAPIAccesses: function() {\n return formatDynamicAPIAccesses;\n },\n getFirstDynamicReason: function() {\n return getFirstDynamicReason;\n },\n isDynamicPostpone: function() {\n return isDynamicPostpone;\n },\n isPrerenderInterruptedError: function() {\n return isPrerenderInterruptedError;\n },\n markCurrentScopeAsDynamic: function() {\n return markCurrentScopeAsDynamic;\n },\n postponeWithTracking: function() {\n return postponeWithTracking;\n },\n throwIfDisallowedDynamic: function() {\n return throwIfDisallowedDynamic;\n },\n throwToInterruptStaticGeneration: function() {\n return throwToInterruptStaticGeneration;\n },\n trackAllowedDynamicAccess: function() {\n return trackAllowedDynamicAccess;\n },\n trackDynamicDataInDynamicRender: function() {\n return trackDynamicDataInDynamicRender;\n },\n trackFallbackParamAccessed: function() {\n return trackFallbackParamAccessed;\n },\n trackSynchronousPlatformIOAccessInDev: function() {\n return trackSynchronousPlatformIOAccessInDev;\n },\n trackSynchronousRequestDataAccessInDev: function() {\n return trackSynchronousRequestDataAccessInDev;\n },\n useDynamicRouteParams: function() {\n return useDynamicRouteParams;\n }\n});\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _hooksservercontext = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ./work-unit-async-storage.external */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _metadataconstants = __webpack_require__(/*! ../../lib/metadata/metadata-constants */ \"(rsc)/./node_modules/next/dist/lib/metadata/metadata-constants.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst hasPostpone = typeof _react.default.unstable_postpone === 'function';\nfunction createDynamicTrackingState(isDebugDynamicAccesses) {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null\n };\n}\nfunction createDynamicValidationState() {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: []\n };\n}\nfunction getFirstDynamicReason(trackingState) {\n var _trackingState_dynamicAccesses_;\n return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;\n}\nfunction markCurrentScopeAsDynamic(store, workUnitStore, expression) {\n if (workUnitStore) {\n if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {\n // inside cache scopes marking a scope as dynamic has no effect because the outer cache scope\n // creates a cache boundary. This is subtly different from reading a dynamic data source which is\n // forbidden inside a cache scope.\n return;\n }\n }\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return;\n if (store.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E553\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'prerender-ppr') {\n postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n workUnitStore.revalidate = 0;\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E550\",\n enumerable: false,\n configurable: true\n });\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n } else if ( true && workUnitStore && workUnitStore.type === 'request') {\n workUnitStore.usedDynamic = true;\n }\n }\n}\nfunction trackFallbackParamAccessed(store, expression) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!prerenderStore || prerenderStore.type !== 'prerender-ppr') return;\n postponeWithTracking(store.route, expression, prerenderStore.dynamicTracking);\n}\nfunction throwToInterruptStaticGeneration(expression, store, prerenderStore) {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E558\",\n enumerable: false,\n configurable: true\n });\n prerenderStore.revalidate = 0;\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n}\nfunction trackDynamicDataInDynamicRender(_store, workUnitStore) {\n if (workUnitStore) {\n if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {\n // inside cache scopes marking a scope as dynamic has no effect because the outer cache scope\n // creates a cache boundary. This is subtly different from reading a dynamic data source which is\n // forbidden inside a cache scope.\n return;\n }\n // TODO: it makes no sense to have these work unit store types during a dev render.\n if (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-client' || workUnitStore.type === 'prerender-legacy') {\n workUnitStore.revalidate = 0;\n }\n if ( true && workUnitStore.type === 'request') {\n workUnitStore.usedDynamic = true;\n }\n }\n}\nfunction abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`;\n const error = createPrerenderInterruptedError(reason);\n prerenderStore.controller.abort(error);\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n}\nfunction trackSynchronousPlatformIOAccessInDev(requestStore) {\n // We don't actually have a controller to abort but we do the semantic equivalent by\n // advancing the request store out of prerender mode\n requestStore.prerenderPhase = false;\n}\nfunction abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {\n const prerenderSignal = prerenderStore.controller.signal;\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n }\n throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);\n}\nconst trackSynchronousRequestDataAccessInDev = trackSynchronousPlatformIOAccessInDev;\nfunction Postpone({ reason, route }) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null;\n postponeWithTracking(route, reason, dynamicTracking);\n}\nfunction postponeWithTracking(route, expression, dynamicTracking) {\n assertPostpone();\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n _react.default.unstable_postpone(createPostponeReason(route, expression));\n}\nfunction createPostponeReason(route, expression) {\n return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`;\n}\nfunction isDynamicPostpone(err) {\n if (typeof err === 'object' && err !== null && typeof err.message === 'string') {\n return isDynamicPostponeReason(err.message);\n }\n return false;\n}\nfunction isDynamicPostponeReason(reason) {\n return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error');\n}\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E296\",\n enumerable: false,\n configurable: true\n });\n}\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';\nfunction createPrerenderInterruptedError(message) {\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = NEXT_PRERENDER_INTERRUPTED;\n return error;\n}\nfunction isPrerenderInterruptedError(error) {\n return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;\n}\nfunction accessedDynamicData(dynamicAccesses) {\n return dynamicAccesses.length > 0;\n}\nfunction consumeDynamicAccess(serverDynamic, clientDynamic) {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);\n return serverDynamic.dynamicAccesses;\n}\nfunction formatDynamicAPIAccesses(dynamicAccesses) {\n return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{\n stack = stack.split('\\n') // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4).filter((line)=>{\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false;\n }\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' (<anonymous>)')) {\n return false;\n }\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false;\n }\n return true;\n }).join('\\n');\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`;\n });\n}\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), \"__NEXT_ERROR_CODE\", {\n value: \"E224\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction createPostponedAbortSignal(reason) {\n assertPostpone();\n const controller = new AbortController();\n // We get our hands on a postpone instance by calling postpone and catching the throw\n try {\n _react.default.unstable_postpone(reason);\n } catch (x) {\n controller.abort(x);\n }\n return controller.signal;\n}\nfunction createHangingInputAbortSignal(workUnitStore) {\n const controller = new AbortController();\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If the input\n // we're waiting on is coming from another cache, we do want to wait for it so that\n // we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(()=>{\n controller.abort();\n });\n } else {\n // Otherwise we're in the final render and we should already have all our caches\n // filled. We might still be waiting on some microtasks so we wait one tick before\n // giving up. When we give up, we still want to render the content of this cache\n // as deeply as we can so that we can suspend as deeply as possible in the tree\n // or not at all if we don't end up waiting for the input.\n (0, _scheduler.scheduleOnNextTick)(()=>controller.abort());\n }\n return controller.signal;\n}\nfunction annotateDynamicAccess(expression, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction useDynamicRouteParams(expression) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (workStore && workStore.isStaticGeneration && workStore.fallbackRouteParams && workStore.fallbackRouteParams.size > 0) {\n // There are fallback route params, we should track these as dynamic\n // accesses.\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n // We're prerendering with dynamicIO or PPR or both\n if (workUnitStore.type === 'prerender-client') {\n // We are in a prerender with dynamicIO semantics\n // We are going to hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole\n _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, expression));\n } else if (workUnitStore.type === 'prerender-ppr') {\n // We're prerendering with PPR\n postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n throwToInterruptStaticGeneration(expression, workStore, workUnitStore);\n }\n }\n }\n}\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/;\nconst hasSuspenseAfterBodyOrHtmlRegex = /\\n\\s+at (?:body|html) \\(<anonymous>\\)[\\s\\S]*?\\n\\s+at Suspense \\(<anonymous>\\)/;\nconst hasMetadataRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasViewportRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`);\nfunction trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return;\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true;\n return;\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true;\n return;\n } else if (hasSuspenseAfterBodyOrHtmlRegex.test(componentStack)) {\n // This prerender has a Suspense boundary above the body which\n // effectively opts the page into allowing 100% dynamic rendering\n dynamicValidation.hasAllowedDynamic = true;\n dynamicValidation.hasSuspenseAboveBody = true;\n return;\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true;\n return;\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);\n return;\n } else {\n const message = `Route \"${workStore.route}\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`;\n const error = createErrorWithComponentOrOwnerStack(message, componentStack);\n dynamicValidation.dynamicErrors.push(error);\n return;\n }\n}\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */ function createErrorWithComponentOrOwnerStack(message, componentStack) {\n const ownerStack = true && _react.default.captureOwnerStack ? _react.default.captureOwnerStack() : null;\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = error.name + ': ' + message + (ownerStack ?? componentStack);\n return error;\n}\nvar PreludeState = /*#__PURE__*/ function(PreludeState) {\n PreludeState[PreludeState[\"Full\"] = 0] = \"Full\";\n PreludeState[PreludeState[\"Empty\"] = 1] = \"Empty\";\n PreludeState[PreludeState[\"Errored\"] = 2] = \"Errored\";\n return PreludeState;\n}({});\nfunction logDisallowedDynamicError(workStore, error) {\n console.error(error);\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`);\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`);\n }\n }\n}\nfunction throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) {\n if (workStore.invalidDynamicUsageError) {\n logDisallowedDynamicError(workStore, workStore.invalidDynamicUsageError);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n if (prelude !== 0) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return;\n }\n if (serverDynamic.syncDynamicErrorWithStack) {\n // There is no shell and the server did something sync dynamic likely\n // leading to an early termination of the prerender before the shell\n // could be completed. We terminate the build/validating render.\n logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length > 0) {\n for(let i = 0; i < dynamicErrors.length; i++){\n logDisallowedDynamicError(workStore, dynamicErrors[i]);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(`Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n if (prelude === 1) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(`Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n } else {\n if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) {\n console.error(`Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n }\n} //# sourceMappingURL=dynamic-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9CQzs7Ozs7Ozs7Ozs7O0lBZ1ZlQSxRQUFRO2VBQVJBOztJQTJUSkMsWUFBWTtlQUFaQTs7SUFwV0lDLDJDQUEyQztlQUEzQ0E7O0lBckNBQyxrQ0FBa0M7ZUFBbENBOztJQXdLQUMsbUJBQW1CO2VBQW5CQTs7SUE0R0FDLHFCQUFxQjtlQUFyQkE7O0lBdEdBQyxvQkFBb0I7ZUFBcEJBOztJQS9XQUMsMEJBQTBCO2VBQTFCQTs7SUFVQUMsNEJBQTRCO2VBQTVCQTs7SUFtYkFDLDZCQUE2QjtlQUE3QkE7O0lBakJBQywwQkFBMEI7ZUFBMUJBOztJQWxEQUMsd0JBQXdCO2VBQXhCQTs7SUF0V0FDLHFCQUFxQjtlQUFyQkE7O0lBZ1NBQyxpQkFBaUI7ZUFBakJBOztJQXdDQUMsMkJBQTJCO2VBQTNCQTs7SUEzVEFDLHlCQUF5QjtlQUF6QkE7O0lBdVBBQyxvQkFBb0I7ZUFBcEJBOztJQXdVQUMsd0JBQXdCO2VBQXhCQTs7SUEvZUFDLGdDQUFnQztlQUFoQ0E7O0lBK1pBQyx5QkFBeUI7ZUFBekJBOztJQXRZQUMsK0JBQStCO2VBQS9CQTs7SUF6Q0FDLDBCQUEwQjtlQUExQkE7O0lBbUhBQyxxQ0FBcUM7ZUFBckNBOztJQWlESEMsc0NBQXNDO2VBQXRDQTs7SUErTkdDLHFCQUFxQjtlQUFyQkE7OzswRUExaEJFO2dEQUVpQjtxREFDRzswREFDRDtzREFDSjttREFDRTsrQ0FLNUI7dUNBQzRCOzs7Ozs7QUFFbkMsTUFBTUMsY0FBYyxPQUFPQyxPQUFBQSxPQUFLLENBQUNDLGlCQUFpQixLQUFLO0FBd0NoRCxTQUFTcEIsMkJBQ2RxQixzQkFBMkM7SUFFM0MsT0FBTztRQUNMQTtRQUNBQyxpQkFBaUIsRUFBRTtRQUNuQkMsMkJBQTJCO0lBQzdCO0FBQ0Y7QUFFTyxTQUFTdEI7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QmtGLGtCQUFrQmxGLGFBQWE7UUFDckQsSUFBSUEsY0FBY2dELE1BQU0sR0FBRyxHQUFHO1lBQzVCLElBQUssSUFBSThDLElBQUksR0FBR0EsSUFBSTlGLGNBQWNnRCxNQUFNLEVBQUU4QyxJQUFLO2dCQUM3Q04sMEJBQTBCeEIsV0FBV2hFLGFBQWEsQ0FBQzhGLEVBQUU7WUFDdkQ7WUFFQSxNQUFNLElBQUlyRix5QkFBQUEscUJBQXFCO1FBQ2pDO1FBRUEsc0VBQXNFO1FBQ3RFLHdEQUF3RDtRQUN4RCx5RUFBeUU7UUFDekUsd0RBQXdEO1FBQ3hELElBQUl5RSxrQkFBa0JwRixrQkFBa0IsRUFBRTtZQUN4QzJGLFFBQVE3RCxLQUFLLENBQ1gsQ0FBQyxPQUFPLEVBQUVvQyxVQUFVdEQsS0FBSyxDQUFDLDhRQUE4USxDQUFDO1lBRTNTLE1BQU0sSUFBSUQseUJBQUFBLHFCQUFxQjtRQUNqQztRQUVBLElBQUltRixZQUFBQSxHQUFnQztZQUNsQyw2RUFBNkU7WUFDN0UsaUZBQWlGO1lBQ2pGLDJDQUEyQztZQUMzQ0gsUUFBUTdELEtBQUssQ0FDWCxDQUFDLE9BQU8sRUFBRW9DLFVBQVV0RCxLQUFLLENBQUMsd0dBQXdHLENBQUM7WUFFckksTUFBTSxJQUFJRCx5QkFBQUEscUJBQXFCO1FBQ2pDO0lBQ0YsT0FBTztRQUNMLElBQ0V5RSxrQkFBa0JuRixpQkFBaUIsS0FBSyxTQUN4Q21GLGtCQUFrQnJGLGtCQUFrQixFQUNwQztZQUNBNEYsUUFBUTdELEtBQUssQ0FDWCxDQUFDLE9BQU8sRUFBRW9DLFVBQVV0RCxLQUFLLENBQUMsOFBBQThQLENBQUM7WUFFM1IsTUFBTSxJQUFJRCx5QkFBQUEscUJBQXFCO1FBQ2pDO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGZ1bmN0aW9ucyBwcm92aWRlZCBieSB0aGlzIG1vZHVsZSBhcmUgdXNlZCB0byBjb21tdW5pY2F0ZSBjZXJ0YWluIHByb3BlcnRpZXNcbiAqIGFib3V0IHRoZSBjdXJyZW50bHkgcnVubmluZyBjb2RlIHNvIHRoYXQgTmV4dC5qcyBjYW4gbWFrZSBkZWNpc2lvbnMgb24gaG93IHRvIGhhbmRsZVxuICogdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGluIGRpZmZlcmVudCByZW5kZXJpbmcgbW9kZXMgc3VjaCBhcyBwcmUtcmVuZGVyaW5nLCByZXN1bWluZywgYW5kIFNTUi5cbiAqXG4gKiBUb2RheSBOZXh0LmpzIHRyZWF0cyBhbGwgY29kZSBhcyBwb3RlbnRpYWxseSBzdGF0aWMuIENlcnRhaW4gQVBJcyBtYXkgb25seSBtYWtlIHNlbnNlIHdoZW4gZHluYW1pY2FsbHkgcmVuZGVyaW5nLlxuICogVHJhZGl0aW9uYWxseSB0aGlzIG1lYW50IGRlb3B0aW5nIHRoZSBlbnRpcmUgcmVuZGVyIHRvIGR5bmFtaWMgaG93ZXZlciB3aXRoIFBQUiB3ZSBjYW4gbm93IGRlb3B0IHBhcnRzXG4gKiBvZiBhIFJlYWN0IHRyZWUgYXMgZHluYW1pYyB3aGlsZSBzdGlsbCBrZWVwaW5nIG90aGVyIHBhcnRzIHN0YXRpYy4gVGhlcmUgYXJlIHJlYWxseSB0d28gZGlmZmVyZW50IGtpbmRzIG9mXG4gKiBEeW5hbWljIGluZGljYXRpb25zLlxuICpcbiAqIFRoZSBmaXJzdCBpcyBzaW1wbHkgYW4gaW50ZW50aW9uIHRvIGJlIGR5bmFtaWMuIHVuc3RhYmxlX25vU3RvcmUgaXMgYW4gZXhhbXBsZSBvZiB0aGlzIHdoZXJlXG4gKiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb2RlIHNpbXBseSBkZWNsYXJlcyB0aGF0IHRoZSBjdXJyZW50IHNjb3BlIGlzIGR5bmFtaWMgYnV0IGlmIHlvdSB1c2UgaXRcbiAqIGluc2lkZSB1bnN0YWJsZV9jYWNoZSBpdCBjYW4gc3RpbGwgYmUgY2FjaGVkLiBUaGlzIHR5cGUgb2YgaW5kaWNhdGlvbiBjYW4gYmUgcmVtb3ZlZCBpZiB3ZSBldmVyXG4gKiBtYWtlIHRoZSBkZWZhdWx0IGR5bmFtaWMgdG8gYmVnaW4gd2l0aCBiZWNhdXNlIHRoZSBvbmx5IHdheSB5b3Ugd291bGQgZXZlciBiZSBzdGF0aWMgaXMgaW5zaWRlXG4gKiBhIGNhY2hlIHNjb3BlIHdoaWNoIHRoaXMgaW5kaWNhdGlvbiBkb2VzIG5vdCBhZmZlY3QuXG4gKlxuICogVGhlIHNlY29uZCBpcyBhbiBpbmRpY2F0aW9uIHRoYXQgYSBkeW5hbWljIGRhdGEgc291cmNlIHdhcyByZWFkLiBUaGlzIGlzIGEgc3Ryb25nZXIgZm9ybSBvZiBkeW5hbWljXG4gKiBiZWNhdXNlIGl0IG1lYW5zIHRoYXQgaXQgaXMgaW5hcHByb3ByaWF0ZSB0byBjYWNoZSB0aGlzIGF0IGFsbC4gdXNpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlIGluc2lkZVxuICogdW5zdGFibGVfY2FjaGUgc2hvdWxkIGVycm9yLiBJZiB5b3Ugd2FudCB0byB1c2Ugc29tZSBkeW5hbWljIGRhdGEgaW5zaWRlIHVuc3RhYmxlX2NhY2hlIHlvdSBzaG91bGRcbiAqIHJlYWQgdGhhdCBkYXRhIG91dHNpZGUgdGhlIGNhY2hlIGFuZCBwYXNzIGl0IGluIGFzIGFuIGFyZ3VtZW50IHRvIHRoZSBjYWNoZWQgZnVuY3Rpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBXb3JrU3RvcmUgfSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB0eXBlIHtcbiAgV29ya1VuaXRTdG9yZSxcbiAgUmVxdWVzdFN0b3JlLFxuICBQcmVyZW5kZXJTdG9yZUxlZ2FjeSxcbiAgUHJlcmVuZGVyU3RvcmVNb2Rlcm4sXG59IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbi8vIE9uY2UgcG9zdHBvbmUgaXMgaW4gc3RhYmxlIHdlIHNob3VsZCBzd2l0Y2ggdG8gaW1wb3J0aW5nIHRoZSBwb3N0cG9uZSBleHBvcnQgZGlyZWN0bHlcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgRHluYW1pY1NlcnZlckVycm9yIH0gZnJvbSAnLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQnXG5pbXBvcnQgeyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IgfSBmcm9tICcuLi8uLi9jbGllbnQvY29tcG9uZW50cy9zdGF0aWMtZ2VuZXJhdGlvbi1iYWlsb3V0J1xuaW1wb3J0IHsgd29ya1VuaXRBc3luY1N0b3JhZ2UgfSBmcm9tICcuL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgd29ya0FzeW5jU3RvcmFnZSB9IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgbWFrZUhhbmdpbmdQcm9taXNlIH0gZnJvbSAnLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHMnXG5pbXBvcnQge1xuICBNRVRBREFUQV9CT1VOREFSWV9OQU1FLFxuICBWSUVXUE9SVF9CT1VOREFSWV9OQU1FLFxuICBPVVRMRVRfQk9VTkRBUllfTkFNRSxcbn0gZnJvbSAnLi4vLi4vbGliL21ldGFkYXRhL21ldGFkYXRhLWNvbnN0YW50cydcbmltcG9ydCB7IHNjaGVkdWxlT25OZXh0VGljayB9IGZyb20gJy4uLy4uL2xpYi9zY2hlZHVsZXInXG5cbmNvbnN0IGhhc1Bvc3Rwb25lID0gdHlwZW9mIFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lID09PSAnZnVuY3Rpb24nXG5cbmV4cG9ydCB0eXBlIER5bmFtaWNBY2Nlc3MgPSB7XG4gIC8qKlxuICAgKiBJZiBkZWJ1Z2dpbmcsIHRoaXMgd2lsbCBjb250YWluIHRoZSBzdGFjayB0cmFjZSBvZiB3aGVyZSB0aGUgZHluYW1pYyBhY2Nlc3NcbiAgICogb2NjdXJyZWQuIFRoaXMgaXMgdXNlZCB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIgYWJvdXQgd2h5XG4gICAqIHRoZWlyIHBhZ2UgaXMgYmVpbmcgcmVuZGVyZWQgZHluYW1pY2FsbHkuXG4gICAqL1xuICBzdGFjaz86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgZXhwcmVzc2lvbiB0aGF0IHdhcyBhY2Nlc3NlZCBkeW5hbWljYWxseS5cbiAgICovXG4gIGV4cHJlc3Npb246IHN0cmluZ1xufVxuXG4vLyBTdG9yZXMgZHluYW1pYyByZWFzb25zIHVzZWQgZHVyaW5nIGFuIFJTQyByZW5kZXIuXG5leHBvcnQgdHlwZSBEeW5hbWljVHJhY2tpbmdTdGF0ZSA9IHtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgc3RhY2sgaW5mb3JtYXRpb24gd2lsbCBhbHNvIGJlIHRyYWNrZWQgZHVyaW5nIGR5bmFtaWMgYWNjZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlczogYm9vbGVhbiB8IHVuZGVmaW5lZFxuXG4gIC8qKlxuICAgKiBUaGUgZHluYW1pYyBhY2Nlc3NlcyB0aGF0IG9jY3VycmVkIGR1cmluZyB0aGUgcmVuZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1pY0FjY2Vzc2VzOiBBcnJheTxEeW5hbWljQWNjZXNzPlxuXG4gIHN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2s6IG51bGwgfCBFcnJvclxufVxuXG4vLyBTdG9yZXMgZHluYW1pYyByZWFzb25zIHVzZWQgZHVyaW5nIGFuIFNTUiByZW5kZXIuXG5leHBvcnQgdHlwZSBEeW5hbWljVmFsaWRhdGlvblN0YXRlID0ge1xuICBoYXNTdXNwZW5zZUFib3ZlQm9keTogYm9vbGVhblxuICBoYXNEeW5hbWljTWV0YWRhdGE6IGJvb2xlYW5cbiAgaGFzRHluYW1pY1ZpZXdwb3J0OiBib29sZWFuXG4gIGhhc0FsbG93ZWREeW5hbWljOiBib29sZWFuXG4gIGR5bmFtaWNFcnJvcnM6IEFycmF5PEVycm9yPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHluYW1pY1RyYWNraW5nU3RhdGUoXG4gIGlzRGVidWdEeW5hbWljQWNjZXNzZXM6IGJvb2xlYW4gfCB1bmRlZmluZWRcbik6IER5bmFtaWNUcmFja2luZ1N0YXRlIHtcbiAgcmV0dXJuIHtcbiAgICBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzLFxuICAgIGR5bmFtaWNBY2Nlc3NlczogW10sXG4gICAgc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjazogbnVsbCxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSgpOiBEeW5hbWljVmFsaWRhdGlvblN0YXRlIHtcbiAgcmV0dXJuIHtcbiAgICBoYXNTdXNwZW5zZUFib3ZlQm9keTogZmFsc2UsXG4gICAgaGFzRHluYW1pY01ldGFkYXRhOiBmYWxzZSxcbiAgICBoYXNEeW5hbWljVmlld3BvcnQ6IGZhbHNlLFxuICAgIGhhc0FsbG93ZWREeW5hbWljOiBmYWxzZSxcbiAgICBkeW5hbWljRXJyb3JzOiBbXSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3REeW5hbWljUmVhc29uKFxuICB0cmFja2luZ1N0YXRlOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKTogdW5kZWZpbmVkIHwgc3RyaW5nIHtcbiAgcmV0dXJuIHRyYWNraW5nU3RhdGUuZHluYW1pY0FjY2Vzc2VzWzBdPy5leHByZXNzaW9uXG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBjb21tdW5pY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBzY29wZSBzaG91bGQgYmUgdHJlYXRlZCBhcyBkeW5hbWljLlxuICpcbiAqIEluIG1vc3QgY2FzZXMgdGhpcyBmdW5jdGlvbiBpcyBhIG5vLW9wIGJ1dCBpZiBjYWxsZWQgZHVyaW5nXG4gKiBhIFBQUiBwcmVyZW5kZXIgaXQgd2lsbCBwb3N0cG9uZSB0aGUgY3VycmVudCBzdWItdHJlZSBhbmQgY2FsbGluZ1xuICogaXQgZHVyaW5nIGEgbm9ybWFsIHByZXJlbmRlciB3aWxsIGNhdXNlIHRoZSBlbnRpcmUgcHJlcmVuZGVyIHRvIGFib3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljKFxuICBzdG9yZTogV29ya1N0b3JlLFxuICB3b3JrVW5pdFN0b3JlOiB1bmRlZmluZWQgfCBFeGNsdWRlPFdvcmtVbml0U3RvcmUsIFByZXJlbmRlclN0b3JlTW9kZXJuPixcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiB2b2lkIHtcbiAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICBpZiAoXG4gICAgICB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdjYWNoZScgfHxcbiAgICAgIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3Vuc3RhYmxlLWNhY2hlJ1xuICAgICkge1xuICAgICAgLy8gaW5zaWRlIGNhY2hlIHNjb3BlcyBtYXJraW5nIGEgc2NvcGUgYXMgZHluYW1pYyBoYXMgbm8gZWZmZWN0IGJlY2F1c2UgdGhlIG91dGVyIGNhY2hlIHNjb3BlXG4gICAgICAvLyBjcmVhdGVzIGEgY2FjaGUgYm91bmRhcnkuIFRoaXMgaXMgc3VidGx5IGRpZmZlcmVudCBmcm9tIHJlYWRpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlIHdoaWNoIGlzXG4gICAgICAvLyBmb3JiaWRkZW4gaW5zaWRlIGEgY2FjaGUgc2NvcGUuXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSdyZSBmb3JjaW5nIGR5bmFtaWMgcmVuZGVyaW5nIG9yIHdlJ3JlIGZvcmNpbmcgc3RhdGljIHJlbmRlcmluZywgd2VcbiAgLy8gZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBoZXJlIGJlY2F1c2UgdGhlIGVudGlyZSBwYWdlIGlzIGFscmVhZHkgZHluYW1pY1xuICAvLyBvciBpdCdzIHN0YXRpYyBhbmQgaXQgc2hvdWxkIG5vdCB0aHJvdyBvciBwb3N0cG9uZSBoZXJlLlxuICBpZiAoc3RvcmUuZm9yY2VEeW5hbWljIHx8IHN0b3JlLmZvcmNlU3RhdGljKSByZXR1cm5cblxuICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICAgIGBSb3V0ZSAke3N0b3JlLnJvdXRlfSB3aXRoIFxcYGR5bmFtaWMgPSBcImVycm9yXCJcXGAgY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgJHtleHByZXNzaW9ufVxcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYFxuICAgIClcbiAgfVxuXG4gIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgICAgICAgc3RvcmUucm91dGUsXG4gICAgICAgIGV4cHJlc3Npb24sXG4gICAgICAgIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICApXG4gICAgfSBlbHNlIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItbGVnYWN5Jykge1xuICAgICAgd29ya1VuaXRTdG9yZS5yZXZhbGlkYXRlID0gMFxuXG4gICAgICAvLyBXZSBhcmVuJ3QgcHJlcmVuZGVyaW5nIGJ1dCB3ZSBhcmUgZ2VuZXJhdGluZyBhIHN0YXRpYyBwYWdlLiBXZSBuZWVkIHRvIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uXG4gICAgICBjb25zdCBlcnIgPSBuZXcgRHluYW1pY1NlcnZlckVycm9yKFxuICAgICAgICBgUm91dGUgJHtzdG9yZS5yb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9keW5hbWljLXNlcnZlci1lcnJvcmBcbiAgICAgIClcbiAgICAgIHN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZXhwcmVzc2lvblxuICAgICAgc3RvcmUuZHluYW1pY1VzYWdlU3RhY2sgPSBlcnIuc3RhY2tcblxuICAgICAgdGhyb3cgZXJyXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmXG4gICAgICB3b3JrVW5pdFN0b3JlICYmXG4gICAgICB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdyZXF1ZXN0J1xuICAgICkge1xuICAgICAgd29ya1VuaXRTdG9yZS51c2VkRHluYW1pYyA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGNvbW11bmljYXRlcyB0aGF0IHNvbWUgZHluYW1pYyBwYXRoIHBhcmFtZXRlciB3YXMgcmVhZC4gVGhpc1xuICogZGlmZmVycyBmcm9tIHRoZSBtb3JlIGdlbmVyYWwgYHRyYWNrRHluYW1pY0RhdGFBY2Nlc3NlZGAgaW4gdGhhdCBpdCBpcyB3aWxsXG4gKiBub3QgZXJyb3Igd2hlbiBgZHluYW1pYyA9IFwiZXJyb3JcImAgaXMgc2V0LlxuICpcbiAqIEBwYXJhbSBzdG9yZSBUaGUgc3RhdGljIGdlbmVyYXRpb24gc3RvcmVcbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBleHByZXNzaW9uIHRoYXQgd2FzIGFjY2Vzc2VkIGR5bmFtaWNhbGx5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFja0ZhbGxiYWNrUGFyYW1BY2Nlc3NlZChcbiAgc3RvcmU6IFdvcmtTdG9yZSxcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiB2b2lkIHtcbiAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGlmICghcHJlcmVuZGVyU3RvcmUgfHwgcHJlcmVuZGVyU3RvcmUudHlwZSAhPT0gJ3ByZXJlbmRlci1wcHInKSByZXR1cm5cblxuICBwb3N0cG9uZVdpdGhUcmFja2luZyhzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKVxufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbWVhbnQgdG8gYmUgdXNlZCB3aGVuIHByZXJlbmRlcmluZyB3aXRob3V0IGR5bmFtaWNJTyBvciBQUFIuXG4gKiBXaGVuIGNhbGxlZCBkdXJpbmcgYSBidWlsZCBpdCB3aWxsIGNhdXNlIE5leHQuanMgdG8gY29uc2lkZXIgdGhlIHJvdXRlIGFzIGR5bmFtaWMuXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbihcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBzdG9yZTogV29ya1N0b3JlLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVMZWdhY3lcbik6IG5ldmVyIHtcbiAgLy8gV2UgYXJlbid0IHByZXJlbmRlcmluZyBidXQgd2UgYXJlIGdlbmVyYXRpbmcgYSBzdGF0aWMgcGFnZS4gV2UgbmVlZCB0byBiYWlsIG91dCBvZiBzdGF0aWMgZ2VuZXJhdGlvblxuICBjb25zdCBlcnIgPSBuZXcgRHluYW1pY1NlcnZlckVycm9yKFxuICAgIGBSb3V0ZSAke3N0b3JlLnJvdXRlfSBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCBcXGAke2V4cHJlc3Npb259XFxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2R5bmFtaWMtc2VydmVyLWVycm9yYFxuICApXG5cbiAgcHJlcmVuZGVyU3RvcmUucmV2YWxpZGF0ZSA9IDBcblxuICBzdG9yZS5keW5hbWljVXNhZ2VEZXNjcmlwdGlvbiA9IGV4cHJlc3Npb25cbiAgc3RvcmUuZHluYW1pY1VzYWdlU3RhY2sgPSBlcnIuc3RhY2tcblxuICB0aHJvdyBlcnJcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIHRvIHRyYWNrIHdoZXRoZXIgc29tZXRoaW5nIGR5bmFtaWMgaGFwcGVuZWQgZXZlbiB3aGVuXG4gKiB3ZSBhcmUgaW4gYSBkeW5hbWljIHJlbmRlci4gVGhpcyBpcyB1c2VmdWwgZm9yIERldiB3aGVyZSBhbGwgcmVuZGVycyBhcmUgZHluYW1pYyBidXRcbiAqIHdlIHN0aWxsIHRyYWNrIHdoZXRoZXIgZHluYW1pYyBBUElzIHdlcmUgYWNjZXNzZWQgZm9yIGhlbHBmdWwgbWVzc2FnaW5nXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyKFxuICBfc3RvcmU6IFdvcmtTdG9yZSxcbiAgd29ya1VuaXRTdG9yZTogdm9pZCB8IFdvcmtVbml0U3RvcmVcbikge1xuICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgIGlmIChcbiAgICAgIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ2NhY2hlJyB8fFxuICAgICAgd29ya1VuaXRTdG9yZS50eXBlID09PSAndW5zdGFibGUtY2FjaGUnXG4gICAgKSB7XG4gICAgICAvLyBpbnNpZGUgY2FjaGUgc2NvcGVzIG1hcmtpbmcgYSBzY29wZSBhcyBkeW5hbWljIGhhcyBubyBlZmZlY3QgYmVjYXVzZSB0aGUgb3V0ZXIgY2FjaGUgc2NvcGVcbiAgICAgIC8vIGNyZWF0ZXMgYSBjYWNoZSBib3VuZGFyeS4gVGhpcyBpcyBzdWJ0bHkgZGlmZmVyZW50IGZyb20gcmVhZGluZyBhIGR5bmFtaWMgZGF0YSBzb3VyY2Ugd2hpY2ggaXNcbiAgICAgIC8vIGZvcmJpZGRlbiBpbnNpZGUgYSBjYWNoZSBzY29wZS5cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICAvLyBUT0RPOiBpdCBtYWtlcyBubyBzZW5zZSB0byBoYXZlIHRoZXNlIHdvcmsgdW5pdCBzdG9yZSB0eXBlcyBkdXJpbmcgYSBkZXYgcmVuZGVyLlxuICAgIGlmIChcbiAgICAgIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlcicgfHxcbiAgICAgIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1jbGllbnQnIHx8XG4gICAgICB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItbGVnYWN5J1xuICAgICkge1xuICAgICAgd29ya1VuaXRTdG9yZS5yZXZhbGlkYXRlID0gMFxuICAgIH1cbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJlxuICAgICAgd29ya1VuaXRTdG9yZS50eXBlID09PSAncmVxdWVzdCdcbiAgICApIHtcbiAgICAgIHdvcmtVbml0U3RvcmUudXNlZER5bmFtaWMgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4gIHByZXJlbmRlclN0b3JlOiBQcmVyZW5kZXJTdG9yZU1vZGVyblxuKTogdm9pZCB7XG4gIGNvbnN0IHJlYXNvbiA9IGBSb3V0ZSAke3JvdXRlfSBuZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS5gXG5cbiAgY29uc3QgZXJyb3IgPSBjcmVhdGVQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yKHJlYXNvbilcblxuICBwcmVyZW5kZXJTdG9yZS5jb250cm9sbGVyLmFib3J0KGVycm9yKVxuXG4gIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgZHluYW1pY1RyYWNraW5nLmR5bmFtaWNBY2Nlc3Nlcy5wdXNoKHtcbiAgICAgIC8vIFdoZW4gd2UgYXJlbid0IGRlYnVnZ2luZywgd2UgZG9uJ3QgbmVlZCB0byBjcmVhdGUgYW5vdGhlciBlcnJvciBmb3IgdGhlXG4gICAgICAvLyBzdGFjayB0cmFjZS5cbiAgICAgIHN0YWNrOiBkeW5hbWljVHJhY2tpbmcuaXNEZWJ1Z0R5bmFtaWNBY2Nlc3Nlc1xuICAgICAgICA/IG5ldyBFcnJvcigpLnN0YWNrXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZXhwcmVzc2lvbixcbiAgICB9KVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhYm9ydE9uU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4gIGVycm9yV2l0aFN0YWNrOiBFcnJvcixcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlTW9kZXJuXG4pOiB2b2lkIHtcbiAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gIGFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSlcbiAgLy8gSXQgaXMgaW1wb3J0YW50IHRoYXQgd2Ugc2V0IHRoaXMgdHJhY2tpbmcgdmFsdWUgYWZ0ZXIgYWJvcnRpbmcuIEFib3J0cyBhcmUgZXhlY3V0ZWRcbiAgLy8gc3luY2hyb25vdXNseSBleGNlcHQgZm9yIHRoZSBjYXNlIHdoZXJlIHlvdSBhYm9ydCBkdXJpbmcgcmVuZGVyIGl0c2VsZi4gQnkgc2V0dGluZyB0aGlzXG4gIC8vIHZhbHVlIGxhdGUgd2UgY2FuIHVzZSBpdCB0byBkZXRlcm1pbmUgaWYgYW55IG9mIHRoZSBhYm9ydGVkIHRhc2tzIGFyZSB0aGUgdGFzayB0aGF0XG4gIC8vIGNhbGxlZCB0aGUgc3luYyBJTyBleHByZXNzaW9uIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgIGlmIChkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9PT0gbnVsbCkge1xuICAgICAgZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2sgPSBlcnJvcldpdGhTdGFja1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldihcbiAgcmVxdWVzdFN0b3JlOiBSZXF1ZXN0U3RvcmVcbik6IHZvaWQge1xuICAvLyBXZSBkb24ndCBhY3R1YWxseSBoYXZlIGEgY29udHJvbGxlciB0byBhYm9ydCBidXQgd2UgZG8gdGhlIHNlbWFudGljIGVxdWl2YWxlbnQgYnlcbiAgLy8gYWR2YW5jaW5nIHRoZSByZXF1ZXN0IHN0b3JlIG91dCBvZiBwcmVyZW5kZXIgbW9kZVxuICByZXF1ZXN0U3RvcmUucHJlcmVuZGVyUGhhc2UgPSBmYWxzZVxufVxuXG4vKipcbiAqIHVzZSB0aGlzIGZ1bmN0aW9uIHdoZW4gcHJlcmVuZGVyaW5nIHdpdGggZHluYW1pY0lPLiBJZiB3ZSBhcmUgZG9pbmcgYVxuICogcHJvc3BlY3RpdmUgcHJlcmVuZGVyIHdlIGRvbid0IGFjdHVhbGx5IGFib3J0IGJlY2F1c2Ugd2Ugd2FudCB0byBkaXNjb3ZlclxuICogYWxsIGNhY2hlcyBmb3IgdGhlIHNoZWxsLiBJZiB0aGlzIGlzIHRoZSBhY3R1YWwgcHJlcmVuZGVyIHdlIGRvIGFib3J0LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gYWNjZXB0cyBhIHByZXJlbmRlclN0b3JlIGJ1dCB0aGUgY2FsbGVyIHNob3VsZCBlbnN1cmUgd2UncmVcbiAqIGFjdHVhbGx5IHJ1bm5pbmcgaW4gZHluYW1pY0lPIG1vZGUuXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhYm9ydEFuZFRocm93T25TeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4gIGVycm9yV2l0aFN0YWNrOiBFcnJvcixcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlTW9kZXJuXG4pOiBuZXZlciB7XG4gIGNvbnN0IHByZXJlbmRlclNpZ25hbCA9IHByZXJlbmRlclN0b3JlLmNvbnRyb2xsZXIuc2lnbmFsXG4gIGlmIChwcmVyZW5kZXJTaWduYWwuYWJvcnRlZCA9PT0gZmFsc2UpIHtcbiAgICAvLyBUT0RPIGl0IHdvdWxkIGJlIGJldHRlciB0byBtb3ZlIHRoaXMgYWJvcnRlZCBjaGVjayBpbnRvIHRoZSBjYWxsc2l0ZSBzbyB3ZSBjYW4gYXZvaWQgbWFraW5nXG4gICAgLy8gdGhlIGVycm9yIG9iamVjdCB3aGVuIGl0IGlzbid0IHJlbGV2YW50IHRvIHRoZSBhYm9ydGluZyBvZiB0aGUgcHJlcmVuZGVyIGhvd2V2ZXJcbiAgICAvLyBzaW5jZSB3ZSBuZWVkIHRoZSB0aHJvdyBzZW1hbnRpY3MgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHdlIGFib3J0IGl0IGlzIGVhc2llciB0byBsYW5kXG4gICAgLy8gdGhpcyB3YXkuIFNlZSBob3cgdGhpcyB3YXMgaGFuZGxlZCB3aXRoIGBhYm9ydE9uU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzYCBmb3IgYSBjbG9zZXJcbiAgICAvLyB0byBpZGVhbCBpbXBsZW1lbnRhdGlvblxuICAgIGFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSlcbiAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdGhhdCB3ZSBzZXQgdGhpcyB0cmFja2luZyB2YWx1ZSBhZnRlciBhYm9ydGluZy4gQWJvcnRzIGFyZSBleGVjdXRlZFxuICAgIC8vIHN5bmNocm9ub3VzbHkgZXhjZXB0IGZvciB0aGUgY2FzZSB3aGVyZSB5b3UgYWJvcnQgZHVyaW5nIHJlbmRlciBpdHNlbGYuIEJ5IHNldHRpbmcgdGhpc1xuICAgIC8vIHZhbHVlIGxhdGUgd2UgY2FuIHVzZSBpdCB0byBkZXRlcm1pbmUgaWYgYW55IG9mIHRoZSBhYm9ydGVkIHRhc2tzIGFyZSB0aGUgdGFzayB0aGF0XG4gICAgLy8gY2FsbGVkIHRoZSBzeW5jIElPIGV4cHJlc3Npb24gaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICAgIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICAgIGlmIChkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9PT0gbnVsbCkge1xuICAgICAgICBkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9IGVycm9yV2l0aFN0YWNrXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHRocm93IGNyZWF0ZVByZXJlbmRlckludGVycnVwdGVkRXJyb3IoXG4gICAgYFJvdXRlICR7cm91dGV9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LmBcbiAgKVxufVxuXG4vLyBGb3Igbm93IHRoZXNlIGltcGxlbWVudGF0aW9ucyBhcmUgdGhlIHNhbWUgc28gd2UganVzdCByZWV4cG9ydFxuZXhwb3J0IGNvbnN0IHRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2ID1cbiAgdHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldlxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHdpbGwgY2FsbCBgUmVhY3QucG9zdHBvbmVgIHRoYXQgdGhyb3dzIHRoZSBwb3N0cG9uZWQgZXJyb3IuXG4gKi9cbnR5cGUgUG9zdHBvbmVQcm9wcyA9IHtcbiAgcmVhc29uOiBzdHJpbmdcbiAgcm91dGU6IHN0cmluZ1xufVxuZXhwb3J0IGZ1bmN0aW9uIFBvc3Rwb25lKHsgcmVhc29uLCByb3V0ZSB9OiBQb3N0cG9uZVByb3BzKTogbmV2ZXIge1xuICBjb25zdCBwcmVyZW5kZXJTdG9yZSA9IHdvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKClcbiAgY29uc3QgZHluYW1pY1RyYWNraW5nID1cbiAgICBwcmVyZW5kZXJTdG9yZSAmJiBwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcidcbiAgICAgID8gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICA6IG51bGxcbiAgcG9zdHBvbmVXaXRoVHJhY2tpbmcocm91dGUsIHJlYXNvbiwgZHluYW1pY1RyYWNraW5nKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9zdHBvbmVXaXRoVHJhY2tpbmcoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgZHluYW1pY1RyYWNraW5nOiBudWxsIHwgRHluYW1pY1RyYWNraW5nU3RhdGVcbik6IG5ldmVyIHtcbiAgYXNzZXJ0UG9zdHBvbmUoKVxuICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgZHluYW1pY1RyYWNraW5nLmR5bmFtaWNBY2Nlc3Nlcy5wdXNoKHtcbiAgICAgIC8vIFdoZW4gd2UgYXJlbid0IGRlYnVnZ2luZywgd2UgZG9uJ3QgbmVlZCB0byBjcmVhdGUgYW5vdGhlciBlcnJvciBmb3IgdGhlXG4gICAgICAvLyBzdGFjayB0cmFjZS5cbiAgICAgIHN0YWNrOiBkeW5hbWljVHJhY2tpbmcuaXNEZWJ1Z0R5bmFtaWNBY2Nlc3Nlc1xuICAgICAgICA/IG5ldyBFcnJvcigpLnN0YWNrXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZXhwcmVzc2lvbixcbiAgICB9KVxuICB9XG5cbiAgUmVhY3QudW5zdGFibGVfcG9zdHBvbmUoY3JlYXRlUG9zdHBvbmVSZWFzb24ocm91dGUsIGV4cHJlc3Npb24pKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQb3N0cG9uZVJlYXNvbihyb3V0ZTogc3RyaW5nLCBleHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIChcbiAgICBgUm91dGUgJHtyb3V0ZX0gbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkICR7ZXhwcmVzc2lvbn0uIGAgK1xuICAgIGBSZWFjdCB0aHJvd3MgdGhpcyBzcGVjaWFsIG9iamVjdCB0byBpbmRpY2F0ZSB3aGVyZS4gSXQgc2hvdWxkIG5vdCBiZSBjYXVnaHQgYnkgYCArXG4gICAgYHlvdXIgb3duIHRyeS9jYXRjaC4gTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHByLWNhdWdodC1lcnJvcmBcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEeW5hbWljUG9zdHBvbmUoZXJyOiB1bmtub3duKSB7XG4gIGlmIChcbiAgICB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJlxuICAgIGVyciAhPT0gbnVsbCAmJlxuICAgIHR5cGVvZiAoZXJyIGFzIGFueSkubWVzc2FnZSA9PT0gJ3N0cmluZydcbiAgKSB7XG4gICAgcmV0dXJuIGlzRHluYW1pY1Bvc3Rwb25lUmVhc29uKChlcnIgYXMgYW55KS5tZXNzYWdlKVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBpc0R5bmFtaWNQb3N0cG9uZVJlYXNvbihyZWFzb246IHN0cmluZykge1xuICByZXR1cm4gKFxuICAgIHJlYXNvbi5pbmNsdWRlcyhcbiAgICAgICduZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQnXG4gICAgKSAmJlxuICAgIHJlYXNvbi5pbmNsdWRlcyhcbiAgICAgICdMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wcHItY2F1Z2h0LWVycm9yJ1xuICAgIClcbiAgKVxufVxuXG5pZiAoaXNEeW5hbWljUG9zdHBvbmVSZWFzb24oY3JlYXRlUG9zdHBvbmVSZWFzb24oJyUlJScsICdeXl4nKSkgPT09IGZhbHNlKSB7XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICAnSW52YXJpYW50OiBpc0R5bmFtaWNQb3N0cG9uZSBtaXNpZGVudGlmaWVkIGEgcG9zdHBvbmUgcmVhc29uLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMnXG4gIClcbn1cblxuY29uc3QgTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQgPSAnTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQnXG5cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlckludGVycnVwdGVkRXJyb3IobWVzc2FnZTogc3RyaW5nKTogRXJyb3Ige1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKVxuICA7KGVycm9yIGFzIGFueSkuZGlnZXN0ID0gTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURURcbiAgcmV0dXJuIGVycm9yXG59XG5cbnR5cGUgRGlnZXN0RXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBzdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIERpZ2VzdEVycm9yIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmXG4gICAgZXJyb3IgIT09IG51bGwgJiZcbiAgICAoZXJyb3IgYXMgYW55KS5kaWdlc3QgPT09IE5FWFRfUFJFUkVOREVSX0lOVEVSUlVQVEVEICYmXG4gICAgJ25hbWUnIGluIGVycm9yICYmXG4gICAgJ21lc3NhZ2UnIGluIGVycm9yICYmXG4gICAgZXJyb3IgaW5zdGFuY2VvZiBFcnJvclxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY2Nlc3NlZER5bmFtaWNEYXRhKFxuICBkeW5hbWljQWNjZXNzZXM6IEFycmF5PER5bmFtaWNBY2Nlc3M+XG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIGR5bmFtaWNBY2Nlc3Nlcy5sZW5ndGggPiAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdW1lRHluYW1pY0FjY2VzcyhcbiAgc2VydmVyRHluYW1pYzogRHluYW1pY1RyYWNraW5nU3RhdGUsXG4gIGNsaWVudER5bmFtaWM6IER5bmFtaWNUcmFja2luZ1N0YXRlXG4pOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVsnZHluYW1pY0FjY2Vzc2VzJ10ge1xuICAvLyBXZSBtdXRhdGUgYmVjYXVzZSB3ZSBvbmx5IGNhbGwgdGhpcyBvbmNlIHdlIGFyZSBubyBsb25nZXIgd3JpdGluZ1xuICAvLyB0byB0aGUgZHluYW1pY1RyYWNraW5nU3RhdGUgYW5kIGl0J3MgbW9yZSBlZmZpY2llbnQgdGhhbiBjcmVhdGluZyBhIG5ld1xuICAvLyBhcnJheS5cbiAgc2VydmVyRHluYW1pYy5keW5hbWljQWNjZXNzZXMucHVzaCguLi5jbGllbnREeW5hbWljLmR5bmFtaWNBY2Nlc3NlcylcbiAgcmV0dXJuIHNlcnZlckR5bmFtaWMuZHluYW1pY0FjY2Vzc2VzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREeW5hbWljQVBJQWNjZXNzZXMoXG4gIGR5bmFtaWNBY2Nlc3NlczogQXJyYXk8RHluYW1pY0FjY2Vzcz5cbik6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGR5bmFtaWNBY2Nlc3Nlc1xuICAgIC5maWx0ZXIoXG4gICAgICAoYWNjZXNzKTogYWNjZXNzIGlzIFJlcXVpcmVkPER5bmFtaWNBY2Nlc3M+ID0+XG4gICAgICAgIHR5cGVvZiBhY2Nlc3Muc3RhY2sgPT09ICdzdHJpbmcnICYmIGFjY2Vzcy5zdGFjay5sZW5ndGggPiAwXG4gICAgKVxuICAgIC5tYXAoKHsgZXhwcmVzc2lvbiwgc3RhY2sgfSkgPT4ge1xuICAgICAgc3RhY2sgPSBzdGFja1xuICAgICAgICAuc3BsaXQoJ1xcbicpXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgXCJFcnJvcjogXCIgcHJlZml4IGZyb20gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHN0YWNrIHRyYWNlIGFzXG4gICAgICAgIC8vIHdlbGwgYXMgdGhlIGZpcnN0IDQgbGluZXMgb2YgdGhlIHN0YWNrIHRyYWNlIHdoaWNoIGlzIHRoZSBkaXN0YW5jZVxuICAgICAgICAvLyBmcm9tIHRoZSB1c2VyIGNvZGUgYW5kIHRoZSBgbmV3IEVycm9yKCkuc3RhY2tgIGNhbGwuXG4gICAgICAgIC5zbGljZSg0KVxuICAgICAgICAuZmlsdGVyKChsaW5lKSA9PiB7XG4gICAgICAgICAgLy8gRXhjbHVkZSBOZXh0LmpzIGludGVybmFscyBmcm9tIHRoZSBzdGFjayB0cmFjZS5cbiAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnbm9kZV9tb2R1bGVzL25leHQvJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEV4Y2x1ZGUgYW5vbnltb3VzIGZ1bmN0aW9ucyBmcm9tIHRoZSBzdGFjayB0cmFjZS5cbiAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnICg8YW5vbnltb3VzPiknKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRXhjbHVkZSBOb2RlLmpzIGludGVybmFscyBmcm9tIHRoZSBzdGFjayB0cmFjZS5cbiAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnIChub2RlOicpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9KVxuICAgICAgICAuam9pbignXFxuJylcbiAgICAgIHJldHVybiBgRHluYW1pYyBBUEkgVXNhZ2UgRGVidWcgLSAke2V4cHJlc3Npb259OlxcbiR7c3RhY2t9YFxuICAgIH0pXG59XG5cbmZ1bmN0aW9uIGFzc2VydFBvc3Rwb25lKCkge1xuICBpZiAoIWhhc1Bvc3Rwb25lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFyaWFudDogUmVhY3QudW5zdGFibGVfcG9zdHBvbmUgaXMgbm90IGRlZmluZWQuIFRoaXMgc3VnZ2VzdHMgdGhlIHdyb25nIHZlcnNpb24gb2YgUmVhY3Qgd2FzIGxvYWRlZC4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzYFxuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrIHRvIGFsbG93IHVzIHRvIGFib3J0IGEgcmVuZGVyIHVzaW5nIGEgUG9zdHBvbmUgaW5zdGFuY2UgaW5zdGVhZCBvZiBhbiBFcnJvciB3aGljaCBjaGFuZ2VzIFJlYWN0J3NcbiAqIGFib3J0IHNlbWFudGljcyBzbGlnaHRseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBvc3Rwb25lZEFib3J0U2lnbmFsKHJlYXNvbjogc3RyaW5nKTogQWJvcnRTaWduYWwge1xuICBhc3NlcnRQb3N0cG9uZSgpXG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcbiAgLy8gV2UgZ2V0IG91ciBoYW5kcyBvbiBhIHBvc3Rwb25lIGluc3RhbmNlIGJ5IGNhbGxpbmcgcG9zdHBvbmUgYW5kIGNhdGNoaW5nIHRoZSB0aHJvd1xuICB0cnkge1xuICAgIFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lKHJlYXNvbilcbiAgfSBjYXRjaCAoeDogdW5rbm93bikge1xuICAgIGNvbnRyb2xsZXIuYWJvcnQoeClcbiAgfVxuICByZXR1cm4gY29udHJvbGxlci5zaWduYWxcbn1cblxuLyoqXG4gKiBJbiBhIHByZXJlbmRlciwgd2UgbWF5IGVuZCB1cCB3aXRoIGhhbmdpbmcgUHJvbWlzZXMgYXMgaW5wdXRzIGR1ZSB0aGVtXG4gKiBzdGFsbGluZyBvbiBjb25uZWN0aW9uKCkgb3IgYmVjYXVzZSB0aGV5J3JlIGxvYWRpbmcgZHluYW1pYyBkYXRhLiBJbiB0aGF0XG4gKiBjYXNlIHdlIG5lZWQgdG8gYWJvcnQgdGhlIGVuY29kaW5nIG9mIGFyZ3VtZW50cyBzaW5jZSB0aGV5J2xsIG5ldmVyIGNvbXBsZXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGFuZ2luZ0lucHV0QWJvcnRTaWduYWwoXG4gIHdvcmtVbml0U3RvcmU6IFByZXJlbmRlclN0b3JlTW9kZXJuXG4pOiBBYm9ydFNpZ25hbCB7XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcblxuICBpZiAod29ya1VuaXRTdG9yZS5jYWNoZVNpZ25hbCkge1xuICAgIC8vIElmIHdlIGhhdmUgYSBjYWNoZVNpZ25hbCBpdCBtZWFucyB3ZSdyZSBpbiBhIHByb3NwZWN0aXZlIHJlbmRlci4gSWYgdGhlIGlucHV0XG4gICAgLy8gd2UncmUgd2FpdGluZyBvbiBpcyBjb21pbmcgZnJvbSBhbm90aGVyIGNhY2hlLCB3ZSBkbyB3YW50IHRvIHdhaXQgZm9yIGl0IHNvIHRoYXRcbiAgICAvLyB3ZSBjYW4gcmVzb2x2ZSB0aGlzIGNhY2hlIGVudHJ5IHRvby5cbiAgICB3b3JrVW5pdFN0b3JlLmNhY2hlU2lnbmFsLmlucHV0UmVhZHkoKS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnRyb2xsZXIuYWJvcnQoKVxuICAgIH0pXG4gIH0gZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlIHdlJ3JlIGluIHRoZSBmaW5hbCByZW5kZXIgYW5kIHdlIHNob3VsZCBhbHJlYWR5IGhhdmUgYWxsIG91ciBjYWNoZXNcbiAgICAvLyBmaWxsZWQuIFdlIG1pZ2h0IHN0aWxsIGJlIHdhaXRpbmcgb24gc29tZSBtaWNyb3Rhc2tzIHNvIHdlIHdhaXQgb25lIHRpY2sgYmVmb3JlXG4gICAgLy8gZ2l2aW5nIHVwLiBXaGVuIHdlIGdpdmUgdXAsIHdlIHN0aWxsIHdhbnQgdG8gcmVuZGVyIHRoZSBjb250ZW50IG9mIHRoaXMgY2FjaGVcbiAgICAvLyBhcyBkZWVwbHkgYXMgd2UgY2FuIHNvIHRoYXQgd2UgY2FuIHN1c3BlbmQgYXMgZGVlcGx5IGFzIHBvc3NpYmxlIGluIHRoZSB0cmVlXG4gICAgLy8gb3Igbm90IGF0IGFsbCBpZiB3ZSBkb24ndCBlbmQgdXAgd2FpdGluZyBmb3IgdGhlIGlucHV0LlxuICAgIHNjaGVkdWxlT25OZXh0VGljaygoKSA9PiBjb250cm9sbGVyLmFib3J0KCkpXG4gIH1cblxuICByZXR1cm4gY29udHJvbGxlci5zaWduYWxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFubm90YXRlRHluYW1pY0FjY2VzcyhcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVNb2Rlcm5cbikge1xuICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPSBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgIGR5bmFtaWNUcmFja2luZy5keW5hbWljQWNjZXNzZXMucHVzaCh7XG4gICAgICBzdGFjazogZHluYW1pY1RyYWNraW5nLmlzRGVidWdEeW5hbWljQWNjZXNzZXNcbiAgICAgICAgPyBuZXcgRXJyb3IoKS5zdGFja1xuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGV4cHJlc3Npb24sXG4gICAgfSlcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRHluYW1pY1JvdXRlUGFyYW1zKGV4cHJlc3Npb246IHN0cmluZykge1xuICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKClcblxuICBpZiAoXG4gICAgd29ya1N0b3JlICYmXG4gICAgd29ya1N0b3JlLmlzU3RhdGljR2VuZXJhdGlvbiAmJlxuICAgIHdvcmtTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zICYmXG4gICAgd29ya1N0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXMuc2l6ZSA+IDBcbiAgKSB7XG4gICAgLy8gVGhlcmUgYXJlIGZhbGxiYWNrIHJvdXRlIHBhcmFtcywgd2Ugc2hvdWxkIHRyYWNrIHRoZXNlIGFzIGR5bmFtaWNcbiAgICAvLyBhY2Nlc3Nlcy5cbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgd2l0aCBkeW5hbWljSU8gb3IgUFBSIG9yIGJvdGhcbiAgICAgIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItY2xpZW50Jykge1xuICAgICAgICAvLyBXZSBhcmUgaW4gYSBwcmVyZW5kZXIgd2l0aCBkeW5hbWljSU8gc2VtYW50aWNzXG4gICAgICAgIC8vIFdlIGFyZSBnb2luZyB0byBoYW5nIGhlcmUgYW5kIG5ldmVyIHJlc29sdmUuIFRoaXMgd2lsbCBjYXVzZSB0aGUgY3VycmVudGx5XG4gICAgICAgIC8vIHJlbmRlcmluZyBjb21wb25lbnQgdG8gZWZmZWN0aXZlbHkgYmUgYSBkeW5hbWljIGhvbGVcbiAgICAgICAgUmVhY3QudXNlKG1ha2VIYW5naW5nUHJvbWlzZSh3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCwgZXhwcmVzc2lvbikpXG4gICAgICB9IGVsc2UgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgIC8vIFdlJ3JlIHByZXJlbmRlcmluZyB3aXRoIFBQUlxuICAgICAgICBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgICAgICAgICB3b3JrU3RvcmUucm91dGUsXG4gICAgICAgICAgZXhwcmVzc2lvbixcbiAgICAgICAgICB3b3JrVW5pdFN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICAgICAgICApXG4gICAgICB9IGVsc2UgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1sZWdhY3knKSB7XG4gICAgICAgIHRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuY29uc3QgaGFzU3VzcGVuc2VSZWdleCA9IC9cXG5cXHMrYXQgU3VzcGVuc2UgXFwoPGFub255bW91cz5cXCkvXG5jb25zdCBoYXNTdXNwZW5zZUFmdGVyQm9keU9ySHRtbFJlZ2V4ID1cbiAgL1xcblxccythdCAoPzpib2R5fGh0bWwpIFxcKDxhbm9ueW1vdXM+XFwpW1xcc1xcU10qP1xcblxccythdCBTdXNwZW5zZSBcXCg8YW5vbnltb3VzPlxcKS9cbmNvbnN0IGhhc01ldGFkYXRhUmVnZXggPSBuZXcgUmVnRXhwKFxuICBgXFxcXG5cXFxccythdCAke01FVEFEQVRBX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYFxuKVxuY29uc3QgaGFzVmlld3BvcnRSZWdleCA9IG5ldyBSZWdFeHAoXG4gIGBcXFxcblxcXFxzK2F0ICR7VklFV1BPUlRfQk9VTkRBUllfTkFNRX1bXFxcXG5cXFxcc11gXG4pXG5jb25zdCBoYXNPdXRsZXRSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxuXFxcXHMrYXQgJHtPVVRMRVRfQk9VTkRBUllfTkFNRX1bXFxcXG5cXFxcc11gKVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2tBbGxvd2VkRHluYW1pY0FjY2VzcyhcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGNvbXBvbmVudFN0YWNrOiBzdHJpbmcsXG4gIGR5bmFtaWNWYWxpZGF0aW9uOiBEeW5hbWljVmFsaWRhdGlvblN0YXRlLFxuICBjbGllbnREeW5hbWljOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKSB7XG4gIGlmIChoYXNPdXRsZXRSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gdHJhY2sgdGhhdCB0aGlzIGlzIGR5bmFtaWMuIEl0IGlzIG9ubHkgc28gd2hlbiBzb21ldGhpbmcgZWxzZSBpcyBhbHNvIGR5bmFtaWMuXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoaGFzTWV0YWRhdGFSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNNZXRhZGF0YSA9IHRydWVcbiAgICByZXR1cm5cbiAgfSBlbHNlIGlmIChoYXNWaWV3cG9ydFJlZ2V4LnRlc3QoY29tcG9uZW50U3RhY2spKSB7XG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY1ZpZXdwb3J0ID0gdHJ1ZVxuICAgIHJldHVyblxuICB9IGVsc2UgaWYgKGhhc1N1c3BlbnNlQWZ0ZXJCb2R5T3JIdG1sUmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICAvLyBUaGlzIHByZXJlbmRlciBoYXMgYSBTdXNwZW5zZSBib3VuZGFyeSBhYm92ZSB0aGUgYm9keSB3aGljaFxuICAgIC8vIGVmZmVjdGl2ZWx5IG9wdHMgdGhlIHBhZ2UgaW50byBhbGxvd2luZyAxMDAlIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzQWxsb3dlZER5bmFtaWMgPSB0cnVlXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzU3VzcGVuc2VBYm92ZUJvZHkgPSB0cnVlXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoaGFzU3VzcGVuc2VSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIC8vIHRoaXMgZXJyb3IgaGFkIGEgU3VzcGVuc2UgYm91bmRhcnkgYWJvdmUgaXQgc28gd2UgZG9uJ3QgbmVlZCB0byByZXBvcnQgaXQgYXMgYSBzb3VyY2VcbiAgICAvLyBvZiBkaXNhbGxvd2VkXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzQWxsb3dlZER5bmFtaWMgPSB0cnVlXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoY2xpZW50RHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKSB7XG4gICAgLy8gVGhpcyB0YXNrIHdhcyB0aGUgdGFzayB0aGF0IGNhbGxlZCB0aGUgc3luYyBlcnJvci5cbiAgICBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzLnB1c2goXG4gICAgICBjbGllbnREeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2tcbiAgICApXG4gICAgcmV0dXJuXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBSb3V0ZSBcIiR7d29ya1N0b3JlLnJvdXRlfVwiOiBBIGNvbXBvbmVudCBhY2Nlc3NlZCBkYXRhLCBoZWFkZXJzLCBwYXJhbXMsIHNlYXJjaFBhcmFtcywgb3IgYSBzaG9ydC1saXZlZCBjYWNoZSB3aXRob3V0IGEgU3VzcGVuc2UgYm91bmRhcnkgbm9yIGEgXCJ1c2UgY2FjaGVcIiBhYm92ZSBpdC4gU2VlIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1wcmVyZW5kZXItbWlzc2luZy1zdXNwZW5zZWBcbiAgICBjb25zdCBlcnJvciA9IGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudE9yT3duZXJTdGFjayhtZXNzYWdlLCBjb21wb25lbnRTdGFjaylcbiAgICBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzLnB1c2goZXJyb3IpXG4gICAgcmV0dXJuXG4gIH1cbn1cblxuLyoqXG4gKiBJbiBkZXYgbW9kZSwgd2UgcHJlZmVyIHVzaW5nIHRoZSBvd25lciBzdGFjaywgb3RoZXJ3aXNlIHRoZSBwcm92aWRlZFxuICogY29tcG9uZW50IHN0YWNrIGlzIHVzZWQuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudE9yT3duZXJTdGFjayhcbiAgbWVzc2FnZTogc3RyaW5nLFxuICBjb21wb25lbnRTdGFjazogc3RyaW5nXG4pIHtcbiAgY29uc3Qgb3duZXJTdGFjayA9XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBSZWFjdC5jYXB0dXJlT3duZXJTdGFja1xuICAgICAgPyBSZWFjdC5jYXB0dXJlT3duZXJTdGFjaygpXG4gICAgICA6IG51bGxcblxuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKVxuICBlcnJvci5zdGFjayA9IGVycm9yLm5hbWUgKyAnOiAnICsgbWVzc2FnZSArIChvd25lclN0YWNrID8/IGNvbXBvbmVudFN0YWNrKVxuICByZXR1cm4gZXJyb3Jcbn1cblxuZXhwb3J0IGVudW0gUHJlbHVkZVN0YXRlIHtcbiAgRnVsbCA9IDAsXG4gIEVtcHR5ID0gMSxcbiAgRXJyb3JlZCA9IDIsXG59XG5cbmZ1bmN0aW9uIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3Iod29ya1N0b3JlOiBXb3JrU3RvcmUsIGVycm9yOiBFcnJvcik6IHZvaWQge1xuICBjb25zb2xlLmVycm9yKGVycm9yKVxuXG4gIGlmICghd29ya1N0b3JlLmRldikge1xuICAgIGlmICh3b3JrU3RvcmUuaGFzUmVhZGFibGVFcnJvclN0YWNrcykge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFRvIGdldCBhIG1vcmUgZGV0YWlsZWQgc3RhY2sgdHJhY2UgYW5kIHBpbnBvaW50IHRoZSBpc3N1ZSwgc3RhcnQgdGhlIGFwcCBpbiBkZXZlbG9wbWVudCBtb2RlIGJ5IHJ1bm5pbmcgXFxgbmV4dCBkZXZcXGAsIHRoZW4gb3BlbiBcIiR7d29ya1N0b3JlLnJvdXRlfVwiIGluIHlvdXIgYnJvd3NlciB0byBpbnZlc3RpZ2F0ZSB0aGUgZXJyb3IuYFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBUbyBnZXQgYSBtb3JlIGRldGFpbGVkIHN0YWNrIHRyYWNlIGFuZCBwaW5wb2ludCB0aGUgaXNzdWUsIHRyeSBvbmUgb2YgdGhlIGZvbGxvd2luZzpcbiAgLSBTdGFydCB0aGUgYXBwIGluIGRldmVsb3BtZW50IG1vZGUgYnkgcnVubmluZyBcXGBuZXh0IGRldlxcYCwgdGhlbiBvcGVuIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgaW4geW91ciBicm93c2VyIHRvIGludmVzdGlnYXRlIHRoZSBlcnJvci5cbiAgLSBSZXJ1biB0aGUgcHJvZHVjdGlvbiBidWlsZCB3aXRoIFxcYG5leHQgYnVpbGQgLS1kZWJ1Zy1wcmVyZW5kZXJcXGAgdG8gZ2VuZXJhdGUgYmV0dGVyIHN0YWNrIHRyYWNlcy5gKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dJZkRpc2FsbG93ZWREeW5hbWljKFxuICB3b3JrU3RvcmU6IFdvcmtTdG9yZSxcbiAgcHJlbHVkZTogUHJlbHVkZVN0YXRlLFxuICBkeW5hbWljVmFsaWRhdGlvbjogRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSxcbiAgc2VydmVyRHluYW1pYzogRHluYW1pY1RyYWNraW5nU3RhdGVcbik6IHZvaWQge1xuICBpZiAod29ya1N0b3JlLmludmFsaWREeW5hbWljVXNhZ2VFcnJvcikge1xuICAgIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3Iod29ya1N0b3JlLCB3b3JrU3RvcmUuaW52YWxpZER5bmFtaWNVc2FnZUVycm9yKVxuICAgIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoKVxuICB9XG5cbiAgaWYgKHByZWx1ZGUgIT09IFByZWx1ZGVTdGF0ZS5GdWxsKSB7XG4gICAgaWYgKGR5bmFtaWNWYWxpZGF0aW9uLmhhc1N1c3BlbnNlQWJvdmVCb2R5KSB7XG4gICAgICAvLyBUaGlzIHJvdXRlIGhhcyBvcHRlZCBpbnRvIGFsbG93aW5nIGZ1bGx5IGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAvLyBieSBpbmNsdWRpbmcgYSBTdXNwZW5zZSBib3VuZGFyeSBhYm92ZSB0aGUgYm9keS4gSW4gdGhpcyBjYXNlXG4gICAgICAvLyBhIGxhY2sgb2YgYSBzaGVsbCBpcyBub3QgY29uc2lkZXJlZCBkaXNhbGxvd2VkIHNvIHdlIHNpbXBseSByZXR1cm5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChzZXJ2ZXJEeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spIHtcbiAgICAgIC8vIFRoZXJlIGlzIG5vIHNoZWxsIGFuZCB0aGUgc2VydmVyIGRpZCBzb21ldGhpbmcgc3luYyBkeW5hbWljIGxpa2VseVxuICAgICAgLy8gbGVhZGluZyB0byBhbiBlYXJseSB0ZXJtaW5hdGlvbiBvZiB0aGUgcHJlcmVuZGVyIGJlZm9yZSB0aGUgc2hlbGxcbiAgICAgIC8vIGNvdWxkIGJlIGNvbXBsZXRlZC4gV2UgdGVybWluYXRlIHRoZSBidWlsZC92YWxpZGF0aW5nIHJlbmRlci5cbiAgICAgIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3IoXG4gICAgICAgIHdvcmtTdG9yZSxcbiAgICAgICAgc2VydmVyRHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrXG4gICAgICApXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG5cbiAgICAvLyBXZSBkaWRuJ3QgaGF2ZSBhbnkgc3luYyBiYWlsb3V0cyBidXQgdGhlcmUgbWF5IGJlIHVzZXIgY29kZSB3aGljaFxuICAgIC8vIGJsb2NrZWQgdGhlIHJvb3QuIFdlIHdvdWxkIGhhdmUgY2FwdHVyZWQgdGhlc2UgZHVyaW5nIHRoZSBwcmVyZW5kZXJcbiAgICAvLyBhbmQgY2FuIGxvZyB0aGVtIGhlcmUgYW5kIHRoZW4gdGVybWluYXRlIHRoZSBidWlsZC92YWxpZGF0aW5nIHJlbmRlclxuICAgIGNvbnN0IGR5bmFtaWNFcnJvcnMgPSBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzXG4gICAgaWYgKGR5bmFtaWNFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkeW5hbWljRXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3Iod29ya1N0b3JlLCBkeW5hbWljRXJyb3JzW2ldKVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBnb3QgdGhpcyBmYXIgdGhlbiB0aGUgb25seSBvdGhlciB0aGluZyB0aGF0IGNvdWxkIGJlIGJsb2NraW5nXG4gICAgLy8gdGhlIHJvb3QgaXMgZHluYW1pYyBWaWV3cG9ydC4gSWYgdGhpcyBpcyBkeW5hbWljIHRoZW5cbiAgICAvLyB5b3UgbmVlZCB0byBvcHQgaW50byB0aGF0IGJ5IGFkZGluZyBhIFN1c3BlbnNlIGJvdW5kYXJ5IGFib3ZlIHRoZSBib2R5XG4gICAgLy8gdG8gaW5kaWNhdGUgeW91ciBhcmUgb2sgd2l0aCBmdWxseSBkeW5hbWljIHJlbmRlcmluZy5cbiAgICBpZiAoZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY1ZpZXdwb3J0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgUm91dGUgXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBoYXMgYSBcXGBnZW5lcmF0ZVZpZXdwb3J0XFxgIHRoYXQgZGVwZW5kcyBvbiBSZXF1ZXN0IGRhdGEgKFxcYGNvb2tpZXMoKVxcYCwgZXRjLi4uKSBvciB1bmNhY2hlZCBleHRlcm5hbCBkYXRhIChcXGBmZXRjaCguLi4pXFxgLCBldGMuLi4pIHdpdGhvdXQgZXhwbGljaXRseSBhbGxvd2luZyBmdWxseSBkeW5hbWljIHJlbmRlcmluZy4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXByZXJlbmRlci1keW5hbWljLXZpZXdwb3J0YFxuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuXG4gICAgaWYgKHByZWx1ZGUgPT09IFByZWx1ZGVTdGF0ZS5FbXB0eSkge1xuICAgICAgLy8gSWYgd2UgZXZlciBnZXQgdGhpcyBmYXIgdGhlbiB3ZSBtZXNzZWQgdXAgdGhlIHRyYWNraW5nIG9mIGludmFsaWQgZHluYW1pYy5cbiAgICAgIC8vIFdlIHN0aWxsIGFkaGVyZSB0byB0aGUgY29uc3RyYWludCB0aGF0IHlvdSBtdXN0IHByb2R1Y2UgYSBzaGVsbCBidXQgaW52aXRlIHRoZVxuICAgICAgLy8gdXNlciB0byByZXBvcnQgdGhpcyBhcyBhIGJ1ZyBpbiBOZXh0LmpzLlxuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFJvdXRlIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgZGlkIG5vdCBwcm9kdWNlIGEgc3RhdGljIHNoZWxsIGFuZCBOZXh0LmpzIHdhcyB1bmFibGUgdG8gZGV0ZXJtaW5lIGEgcmVhc29uLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuYFxuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChcbiAgICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0FsbG93ZWREeW5hbWljID09PSBmYWxzZSAmJlxuICAgICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY01ldGFkYXRhXG4gICAgKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgUm91dGUgXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBoYXMgYSBcXGBnZW5lcmF0ZU1ldGFkYXRhXFxgIHRoYXQgZGVwZW5kcyBvbiBSZXF1ZXN0IGRhdGEgKFxcYGNvb2tpZXMoKVxcYCwgZXRjLi4uKSBvciB1bmNhY2hlZCBleHRlcm5hbCBkYXRhIChcXGBmZXRjaCguLi4pXFxgLCBldGMuLi4pIHdoZW4gdGhlIHJlc3Qgb2YgdGhlIHJvdXRlIGRvZXMgbm90LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLWR5bmFtaWMtbWV0YWRhdGFgXG4gICAgICApXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJQb3N0cG9uZSIsIlByZWx1ZGVTdGF0ZSIsImFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3MiLCJhYm9ydE9uU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzIiwiYWNjZXNzZWREeW5hbWljRGF0YSIsImFubm90YXRlRHluYW1pY0FjY2VzcyIsImNvbnN1bWVEeW5hbWljQWNjZXNzIiwiY3JlYXRlRHluYW1pY1RyYWNraW5nU3RhdGUiLCJjcmVhdGVEeW5hbWljVmFsaWRhdGlvblN0YXRlIiwiY3JlYXRlSGFuZ2luZ0lucHV0QWJvcnRTaWduYWwiLCJjcmVhdGVQb3N0cG9uZWRBYm9ydFNpZ25hbCIsImZvcm1hdER5bmFtaWNBUElBY2Nlc3NlcyIsImdldEZpcnN0RHluYW1pY1JlYXNvbiIsImlzRHluYW1pY1Bvc3Rwb25lIiwiaXNQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yIiwibWFya0N1cnJlbnRTY29wZUFzRHluYW1pYyIsInBvc3Rwb25lV2l0aFRyYWNraW5nIiwidGhyb3dJZkRpc2FsbG93ZWREeW5hbWljIiwidGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24iLCJ0cmFja0FsbG93ZWREeW5hbWljQWNjZXNzIiwidHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlciIsInRyYWNrRmFsbGJhY2tQYXJhbUFjY2Vzc2VkIiwidHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldiIsInRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2IiwidXNlRHluYW1pY1JvdXRlUGFyYW1zIiwiaGFzUG9zdHBvbmUiLCJSZWFjdCIsInVuc3RhYmxlX3Bvc3Rwb25lIiwiaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlcyIsImR5bmFtaWNBY2Nlc3NlcyIsInN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2siLCJoYXNTdXNwZW5zZUFib3ZlQm9keSIsImhhc0R5bmFtaWNNZXRhZGF0YSIsImhhc0R5bmFtaWNWaWV3cG9ydCIsImhhc0FsbG93ZWREeW5hbWljIiwiZHluYW1pY0Vycm9ycyIsInRyYWNraW5nU3RhdGUiLCJleHByZXNzaW9uIiwic3RvcmUiLCJ3b3JrVW5pdFN0b3JlIiwidHlwZSIsImZvcmNlRHluYW1pYyIsImZvcmNlU3RhdGljIiwiZHluYW1pY1Nob3VsZEVycm9yIiwiU3RhdGljR2VuQmFpbG91dEVycm9yIiwicm91dGUiLCJkeW5hbWljVHJhY2tpbmciLCJyZXZhbGlkYXRlIiwiZXJyIiwiRHluYW1pY1NlcnZlckVycm9yIiwiZHluYW1pY1VzYWdlRGVzY3JpcHRpb24iLCJkeW5hbWljVXNhZ2VTdGFjayIsInN0YWNrIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXNlZER5bmFtaWMiLCJwcmVyZW5kZXJTdG9yZSIsIndvcmtVbml0QXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJfc3RvcmUiLCJhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2VzcyIsInJlYXNvbiIsImVycm9yIiwiY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvciIsImNvbnRyb2xsZXIiLCJhYm9ydCIsInB1c2giLCJFcnJvciIsInVuZGVmaW5lZCIsImVycm9yV2l0aFN0YWNrIiwicmVxdWVzdFN0b3JlIiwicHJlcmVuZGVyUGhhc2UiLCJwcmVyZW5kZXJTaWduYWwiLCJzaWduYWwiLCJhYm9ydGVkIiwiYXNzZXJ0UG9zdHBvbmUiLCJjcmVhdGVQb3N0cG9uZVJlYXNvbiIsIm1lc3NhZ2UiLCJpc0R5bmFtaWNQb3N0cG9uZVJlYXNvbiIsImluY2x1ZGVzIiwiTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQiLCJkaWdlc3QiLCJsZW5ndGgiLCJzZXJ2ZXJEeW5hbWljIiwiY2xpZW50RHluYW1pYyIsImZpbHRlciIsImFjY2VzcyIsIm1hcCIsInNwbGl0Iiwic2xpY2UiLCJsaW5lIiwiam9pbiIsIkFib3J0Q29udHJvbGxlciIsIngiLCJjYWNoZVNpZ25hbCIsImlucHV0UmVhZHkiLCJ0aGVuIiwic2NoZWR1bGVPbk5leHRUaWNrIiwid29ya1N0b3JlIiwid29ya0FzeW5jU3RvcmFnZSIsImlzU3RhdGljR2VuZXJhdGlvbiIsImZhbGxiYWNrUm91dGVQYXJhbXMiLCJzaXplIiwidXNlIiwibWFrZUhhbmdpbmdQcm9taXNlIiwicmVuZGVyU2lnbmFsIiwiaGFzU3VzcGVuc2VSZWdleCIsImhhc1N1c3BlbnNlQWZ0ZXJCb2R5T3JIdG1sUmVnZXgiLCJoYXNNZXRhZGF0YVJlZ2V4IiwiUmVnRXhwIiwiTUVUQURBVEFfQk9VTkRBUllfTkFNRSIsImhhc1ZpZXdwb3J0UmVnZXgiLCJWSUVXUE9SVF9CT1VOREFSWV9OQU1FIiwiaGFzT3V0bGV0UmVnZXgiLCJPVVRMRVRfQk9VTkRBUllfTkFNRSIsImNvbXBvbmVudFN0YWNrIiwiZHluYW1pY1ZhbGlkYXRpb24iLCJ0ZXN0IiwiY3JlYXRlRXJyb3JXaXRoQ29tcG9uZW50T3JPd25lclN0YWNrIiwib3duZXJTdGFjayIsImNhcHR1cmVPd25lclN0YWNrIiwibmFtZSIsImxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3IiLCJjb25zb2xlIiwiZGV2IiwiaGFzUmVhZGFibGVFcnJvclN0YWNrcyIsInByZWx1ZGUiLCJpbnZhbGlkRHluYW1pY1VzYWdlRXJyb3IiLCJpIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/encryption-utils.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/encryption-utils.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n arrayBufferToString: function() {\n return arrayBufferToString;\n },\n decrypt: function() {\n return decrypt;\n },\n encrypt: function() {\n return encrypt;\n },\n getActionEncryptionKey: function() {\n return getActionEncryptionKey;\n },\n getClientReferenceManifestForRsc: function() {\n return getClientReferenceManifestForRsc;\n },\n getServerModuleMap: function() {\n return getServerModuleMap;\n },\n setReferenceManifestsSingleton: function() {\n return setReferenceManifestsSingleton;\n },\n stringToUint8Array: function() {\n return stringToUint8Array;\n }\n});\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ./work-async-storage.external */ \"./work-async-storage.external\");\nlet __next_loaded_action_key;\nfunction arrayBufferToString(buffer) {\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n // @anonrig: V8 has a limit of 65535 arguments in a function.\n // For len < 65535, this is faster.\n // https://github.com/vercel/next.js/pull/56377#pullrequestreview-1656181623\n if (len < 65535) {\n return String.fromCharCode.apply(null, bytes);\n }\n let binary = '';\n for(let i = 0; i < len; i++){\n binary += String.fromCharCode(bytes[i]);\n }\n return binary;\n}\nfunction stringToUint8Array(binary) {\n const len = binary.length;\n const arr = new Uint8Array(len);\n for(let i = 0; i < len; i++){\n arr[i] = binary.charCodeAt(i);\n }\n return arr;\n}\nfunction encrypt(key, iv, data) {\n return crypto.subtle.encrypt({\n name: 'AES-GCM',\n iv\n }, key, data);\n}\nfunction decrypt(key, iv, data) {\n return crypto.subtle.decrypt({\n name: 'AES-GCM',\n iv\n }, key, data);\n}\n// This is a global singleton that is used to encode/decode the action bound args from\n// the closure. This can't be using a AsyncLocalStorage as it might happen on the module\n// level. Since the client reference manifest won't be mutated, let's use a global singleton\n// to keep it.\nconst SERVER_ACTION_MANIFESTS_SINGLETON = Symbol.for('next.server.action-manifests');\nfunction setReferenceManifestsSingleton({ page, clientReferenceManifest, serverActionsManifest, serverModuleMap }) {\n var _globalThis_SERVER_ACTION_MANIFESTS_SINGLETON;\n // @ts-expect-error\n const clientReferenceManifestsPerPage = (_globalThis_SERVER_ACTION_MANIFESTS_SINGLETON = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON]) == null ? void 0 : _globalThis_SERVER_ACTION_MANIFESTS_SINGLETON.clientReferenceManifestsPerPage;\n // @ts-expect-error\n globalThis[SERVER_ACTION_MANIFESTS_SINGLETON] = {\n clientReferenceManifestsPerPage: {\n ...clientReferenceManifestsPerPage,\n [(0, _apppaths.normalizeAppPath)(page)]: clientReferenceManifest\n },\n serverActionsManifest,\n serverModuleMap\n };\n}\nfunction getServerModuleMap() {\n const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];\n if (!serverActionsManifestSingleton) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), \"__NEXT_ERROR_CODE\", {\n value: \"E606\",\n enumerable: false,\n configurable: true\n });\n }\n return serverActionsManifestSingleton.serverModuleMap;\n}\nfunction getClientReferenceManifestForRsc() {\n const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];\n if (!serverActionsManifestSingleton) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), \"__NEXT_ERROR_CODE\", {\n value: \"E606\",\n enumerable: false,\n configurable: true\n });\n }\n const { clientReferenceManifestsPerPage } = serverActionsManifestSingleton;\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n // If there's no work store defined, we can assume that a client reference\n // manifest is needed during module evaluation, e.g. to create a server\n // action using a higher-order function. This might also use client\n // components which need to be serialized by Flight, and therefore client\n // references need to be resolvable. To make this work, we're returning a\n // merged manifest across all pages. This is fine as long as the module IDs\n // are not page specific, which they are not for Webpack. TODO: Fix this in\n // Turbopack.\n return mergeClientReferenceManifests(clientReferenceManifestsPerPage);\n }\n const clientReferenceManifest = clientReferenceManifestsPerPage[workStore.route];\n if (!clientReferenceManifest) {\n throw Object.defineProperty(new _invarianterror.InvariantError(`Missing Client Reference Manifest for ${workStore.route}.`), \"__NEXT_ERROR_CODE\", {\n value: \"E570\",\n enumerable: false,\n configurable: true\n });\n }\n return clientReferenceManifest;\n}\nasync function getActionEncryptionKey() {\n if (__next_loaded_action_key) {\n return __next_loaded_action_key;\n }\n const serverActionsManifestSingleton = globalThis[SERVER_ACTION_MANIFESTS_SINGLETON];\n if (!serverActionsManifestSingleton) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing manifest for Server Actions.'), \"__NEXT_ERROR_CODE\", {\n value: \"E606\",\n enumerable: false,\n configurable: true\n });\n }\n const rawKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY || serverActionsManifestSingleton.serverActionsManifest.encryptionKey;\n if (rawKey === undefined) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing encryption key for Server Actions'), \"__NEXT_ERROR_CODE\", {\n value: \"E571\",\n enumerable: false,\n configurable: true\n });\n }\n __next_loaded_action_key = await crypto.subtle.importKey('raw', stringToUint8Array(atob(rawKey)), 'AES-GCM', true, [\n 'encrypt',\n 'decrypt'\n ]);\n return __next_loaded_action_key;\n}\nfunction mergeClientReferenceManifests(clientReferenceManifestsPerPage) {\n const clientReferenceManifests = Object.values(clientReferenceManifestsPerPage);\n const mergedClientReferenceManifest = {\n clientModules: {},\n edgeRscModuleMapping: {},\n rscModuleMapping: {}\n };\n for (const clientReferenceManifest of clientReferenceManifests){\n mergedClientReferenceManifest.clientModules = {\n ...mergedClientReferenceManifest.clientModules,\n ...clientReferenceManifest.clientModules\n };\n mergedClientReferenceManifest.edgeRscModuleMapping = {\n ...mergedClientReferenceManifest.edgeRscModuleMapping,\n ...clientReferenceManifest.edgeRscModuleMapping\n };\n mergedClientReferenceManifest.rscModuleMapping = {\n ...mergedClientReferenceManifest.rscModuleMapping,\n ...clientReferenceManifest.rscModuleMapping\n };\n }\n return mergedClientReferenceManifest;\n} //# sourceMappingURL=encryption-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VuY3J5cHRpb24tdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBWWdCQSxtQkFBbUI7ZUFBbkJBOztJQTBDQUMsT0FBTztlQUFQQTs7SUFYQUMsT0FBTztlQUFQQTs7SUE2SE1DLHNCQUFzQjtlQUF0QkE7O0lBeENOQyxnQ0FBZ0M7ZUFBaENBOztJQXBCQUMsa0JBQWtCO2VBQWxCQTs7SUFuQ0FDLDhCQUE4QjtlQUE5QkE7O0lBekNBQyxrQkFBa0I7ZUFBbEJBOzs7NENBMUJlO3NDQUNFO3NEQUNBO0FBRWpDLElBQUlDO0FBRUcsU0FBU1Isb0JBQ2RTLE1BQWlEO0lBRWpELE1BQU1DLFFBQVEsSUFBSUMsV0FBV0Y7SUFDN0IsTUFBTUcsTUFBTUYsTUFBTUcsVUFBVTtJQUU1Qiw2REFBNkQ7SUFDN0QsbUNBQW1DO0lBQ25DLDRFQUE0RTtJQUM1RSxJQUFJRCxNQUFNLE9BQU87UUFDZixPQUFPRSxPQUFPQyxZQUFZLENBQUNDLEtBQUssQ0FBQyxNQUFNTjtJQUN6QztJQUVBLElBQUlPLFNBQVM7SUFDYixJQUFLLElBQUlDLElBQUksR0FBR0EsSUFBSU4sS0FBS00sSUFBSztRQUM1QkQsVUFBVUgsT0FBT0MsWUFBWSxDQUFDTCxLQUFLLENBQUNRLEVBQUU7SUFDeEM7SUFDQSxPQUFPRDtBQUNUO0FBRU8sU0FBU1YsbUJBQW1CVSxNQUFjO0lBQy9DLE1BQU1MLE1BQU1LLE9BQU9FLE1BQU07SUFDekIsTUFBTUMsTUFBTSxJQUFJVCxXQUFXQztJQUUzQixJQUFLLElBQUlNLElBQUksR0FBR0EsSUFBSU4sS0FBS00sSUFBSztRQUM1QkUsR0FBRyxDQUFDRixFQUFFLEdBQUdELE9BQU9JLFVBQVUsQ0FBQ0g7SUFDN0I7SUFFQSxPQUFPRTtBQUNUO0FBRU8sU0FBU2xCLFFBQVFvQixHQUFjLEVBQUVDLEVBQWMsRUFBRUMsSUFBZ0I7SUFDdEUsT0FBT0MsT0FBT0MsTUFB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U0FBUyxDQUN0RCxPQUNBNUMsbUJBQW1CNkMsS0FBS1AsVUFDeEIsV0FDQSxNQUNBO1FBQUM7UUFBVztLQUFVO0lBR3hCLE9BQU9yQztBQUNUO0FBRUEsU0FBU21DLDhCQUNQUCwrQkFFQztJQUVELE1BQU1pQiwyQkFBMkJDLE9BQU9DLE1BQU0sQ0FDNUNuQjtJQUdGLE1BQU1vQixnQ0FBK0Q7UUFDbkVDLGVBQWUsQ0FBQztRQUNoQkMsc0JBQXNCLENBQUM7UUFDdkJDLGtCQUFrQixDQUFDO0lBQ3JCO0lBRUEsS0FBSyxNQUFNM0IsMkJBQTJCcUIseUJBQTBCO1FBQzlERyw4QkFBOEJDLGFBQWEsR0FBRztZQUM1QyxHQUFHRCw4QkFBOEJDLGFBQWE7WUFDOUMsR0FBR3pCLHdCQUF3QnlCLGFBQWE7UUFDMUM7UUFDQUQsOEJBQThCRSxvQkFBb0IsR0FBRztZQUNuRCxHQUFHRiw4QkFBOEJFLG9CQUFvQjtZQUNyRCxHQUFHMUIsd0JBQXdCMEIsb0JBQW9CO1FBQ2pEO1FBQ0FGLDhCQUE4QkcsZ0JBQWdCLEdBQUc7WUFDL0MsR0FBR0gsOEJBQThCRyxnQkFBZ0I7WUFDakQsR0FBRzNCLHdCQUF3QjJCLGdCQUFnQjtRQUM3QztJQUNGO0lBRUEsT0FBT0g7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NlcnZlci9hcHAtcmVuZGVyL2VuY3J5cHRpb24tdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBY3Rpb25NYW5pZmVzdCB9IGZyb20gJy4uLy4uL2J1aWxkL3dlYnBhY2svcGx1Z2lucy9mbGlnaHQtY2xpZW50LWVudHJ5LXBsdWdpbidcbmltcG9ydCB0eXBlIHtcbiAgQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsXG4gIENsaWVudFJlZmVyZW5jZU1hbmlmZXN0Rm9yUnNjLFxufSBmcm9tICcuLi8uLi9idWlsZC93ZWJwYWNrL3BsdWdpbnMvZmxpZ2h0LW1hbmlmZXN0LXBsdWdpbidcbmltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9kZWVwLXJlYWRvbmx5J1xuaW1wb3J0IHsgSW52YXJpYW50RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvcidcbmltcG9ydCB7IG5vcm1hbGl6ZUFwcFBhdGggfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hcHAtcGF0aHMnXG5pbXBvcnQgeyB3b3JrQXN5bmNTdG9yYWdlIH0gZnJvbSAnLi93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbmxldCBfX25leHRfbG9hZGVkX2FjdGlvbl9rZXk6IENyeXB0b0tleVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlCdWZmZXJUb1N0cmluZyhcbiAgYnVmZmVyOiBBcnJheUJ1ZmZlciB8IFVpbnQ4QXJyYXk8QXJyYXlCdWZmZXJMaWtlPlxuKSB7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKVxuICBjb25zdCBsZW4gPSBieXRlcy5ieXRlTGVuZ3RoXG5cbiAgLy8gQGFub25yaWc6IFY4IGhhcyBhIGxpbWl0IG9mIDY1NTM1IGFyZ3VtZW50cyBpbiBhIGZ1bmN0aW9uLlxuICAvLyBGb3IgbGVuIDwgNjU1MzUsIHRoaXMgaXMgZmFzdGVyLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC81NjM3NyNwdWxscmVxdWVzdHJldmlldy0xNjU2MTgxNjIzXG4gIGlmIChsZW4gPCA2NTUzNSkge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGJ5dGVzIGFzIHVua25vd24gYXMgbnVtYmVyW10pXG4gIH1cblxuICBsZXQgYmluYXJ5ID0gJydcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGJpbmFyeSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldKVxuICB9XG4gIHJldHVybiBiaW5hcnlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0cmluZ1RvVWludDhBcnJheShiaW5hcnk6IHN0cmluZykge1xuICBjb25zdCBsZW4gPSBiaW5hcnkubGVuZ3RoXG4gIGNvbnN0IGFyciA9IG5ldyBVaW50OEFycmF5KGxlbilcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYXJyW2ldID0gYmluYXJ5LmNoYXJDb2RlQXQoaSlcbiAgfVxuXG4gIHJldHVybiBhcnJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY3J5cHQoa2V5OiBDcnlwdG9LZXksIGl2OiBVaW50OEFycmF5LCBkYXRhOiBVaW50OEFycmF5KSB7XG4gIHJldHVybiBjcnlwdG8uc3VidGxlLmVuY3J5cHQoXG4gICAge1xuICAgICAgbmFtZTogJ0FFUy1HQ00nLFxuICAgICAgaXYsXG4gICAgfSxcbiAgICBrZXksXG4gICAgZGF0YVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNyeXB0KGtleTogQ3J5cHRvS2V5LCBpdjogVWludDhBcnJheSwgZGF0YTogVWludDhBcnJheSkge1xuICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kZWNyeXB0KFxuICAgIHtcbiAgICAgIG5hbWU6ICdBRVMtR0NNJyxcbiAgICAgIGl2LFxuICAgIH0sXG4gICAga2V5LFxuICAgIGRhdGFcbiAgKVxufVxuXG4vLyBUaGlzIGlzIGEgZ2xvYmFsIHNpbmdsZXRvbiB0aGF0IGlzIHVzZWQgdG8gZW5jb2RlL2RlY29kZSB0aGUgYWN0aW9uIGJvdW5kIGFyZ3MgZnJvbVxuLy8gdGhlIGNsb3N1cmUuIFRoaXMgY2FuJ3QgYmUgdXNpbmcgYSBBc3luY0xvY2FsU3RvcmFnZSBhcyBpdCBtaWdodCBoYXBwZW4gb24gdGhlIG1vZHVsZVxuLy8gbGV2ZWwuIFNpbmNlIHRoZSBjbGllbnQgcmVmZXJlbmNlIG1hbmlmZXN0IHdvbid0IGJlIG11dGF0ZWQsIGxldCdzIHVzZSBhIGdsb2JhbCBzaW5nbGV0b25cbi8vIHRvIGtlZXAgaXQuXG5jb25zdCBTRVJWRVJfQUNUSU9OX01BTklGRVNUU19TSU5HTEVUT04gPSBTeW1ib2wuZm9yKFxuICAnbmV4dC5zZXJ2ZXIuYWN0aW9uLW1hbmlmZXN0cydcbilcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZmVyZW5jZU1hbmlmZXN0c1NpbmdsZXRvbih7XG4gIHBhZ2UsXG4gIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LFxuICBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QsXG4gIHNlcnZlck1vZHVsZU1hcCxcbn06IHtcbiAgcGFnZTogc3RyaW5nXG4gIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0OiBEZWVwUmVhZG9ubHk8Q2xpZW50UmVmZXJlbmNlTWFuaWZlc3Q+XG4gIHNlcnZlckFjdGlvbnNNYW5pZmVzdDogRGVlcFJlYWRvbmx5PEFjdGlvbk1hbmlmZXN0PlxuICBzZXJ2ZXJNb2R1bGVNYXA6IHtcbiAgICBbaWQ6IHN0cmluZ106IHtcbiAgICAgIGlkOiBzdHJpbmdcbiAgICAgIGNodW5rczogc3RyaW5nW11cbiAgICAgIG5hbWU6IHN0cmluZ1xuICAgIH1cbiAgfVxufSkge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGNvbnN0IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UgPSBnbG9iYWxUaGlzW1xuICAgIFNFUlZFUl9BQ1RJT05fTUFOSUZFU1RTX1NJTkdMRVRPTlxuICBdPy5jbGllbnRSZWZlcmVuY2VNYW5pZmVzdHNQZXJQYWdlIGFzXG4gICAgfCB1bmRlZmluZWRcbiAgICB8IERlZXBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdD4+XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBnbG9iYWxUaGlzW1NFUlZFUl9BQ1RJT05fTUFOSUZFU1RTX1NJTkdMRVRPTl0gPSB7XG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZToge1xuICAgICAgLi4uY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZSxcbiAgICAgIFtub3JtYWxpemVBcHBQYXRoKHBhZ2UpXTogY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsXG4gICAgfSxcbiAgICBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QsXG4gICAgc2VydmVyTW9kdWxlTWFwLFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXJ2ZXJNb2R1bGVNYXAoKSB7XG4gIGNvbnN0IHNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbiA9IChnbG9iYWxUaGlzIGFzIGFueSlbXG4gICAgU0VSVkVSX0FDVElPTl9NQU5JRkVTVFNfU0lOR0xFVE9OXG4gIF0gYXMge1xuICAgIHNlcnZlck1vZHVsZU1hcDoge1xuICAgICAgW2lkOiBzdHJpbmddOiB7XG4gICAgICAgIGlkOiBzdHJpbmdcbiAgICAgICAgY2h1bmtzOiBzdHJpbmdbXVxuICAgICAgICBuYW1lOiBzdHJpbmdcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIXNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbikge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcignTWlzc2luZyBtYW5pZmVzdCBmb3IgU2VydmVyIEFjdGlvbnMuJylcbiAgfVxuXG4gIHJldHVybiBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RTaW5nbGV0b24uc2VydmVyTW9kdWxlTWFwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdEZvclJzYygpOiBEZWVwUmVhZG9ubHk8Q2xpZW50UmVmZXJlbmNlTWFuaWZlc3RGb3JSc2M+IHtcbiAgY29uc3Qgc2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uID0gKGdsb2JhbFRoaXMgYXMgYW55KVtcbiAgICBTRVJWRVJfQUNUSU9OX01BTklGRVNUU19TSU5HTEVUT05cbiAgXSBhcyB7XG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZTogRGVlcFJlYWRvbmx5PFxuICAgICAgUmVjb3JkPHN0cmluZywgQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3Q+XG4gICAgPlxuICB9XG5cbiAgaWYgKCFzZXJ2ZXJBY3Rpb25zTWFuaWZlc3RTaW5nbGV0b24pIHtcbiAgICB0aHJvdyBuZXcgSW52YXJpYW50RXJyb3IoJ01pc3NpbmcgbWFuaWZlc3QgZm9yIFNlcnZlciBBY3Rpb25zLicpXG4gIH1cblxuICBjb25zdCB7IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UgfSA9IHNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvblxuICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKClcblxuICBpZiAoIXdvcmtTdG9yZSkge1xuICAgIC8vIElmIHRoZXJlJ3Mgbm8gd29yayBzdG9yZSBkZWZpbmVkLCB3ZSBjYW4gYXNzdW1lIHRoYXQgYSBjbGllbnQgcmVmZXJlbmNlXG4gICAgLy8gbWFuaWZlc3QgaXMgbmVlZGVkIGR1cmluZyBtb2R1bGUgZXZhbHVhdGlvbiwgZS5nLiB0byBjcmVhdGUgYSBzZXJ2ZXJcbiAgICAvLyBhY3Rpb24gdXNpbmcgYSBoaWdoZXItb3JkZXIgZnVuY3Rpb24uIFRoaXMgbWlnaHQgYWxzbyB1c2UgY2xpZW50XG4gICAgLy8gY29tcG9uZW50cyB3aGljaCBuZWVkIHRvIGJlIHNlcmlhbGl6ZWQgYnkgRmxpZ2h0LCBhbmQgdGhlcmVmb3JlIGNsaWVudFxuICAgIC8vIHJlZmVyZW5jZXMgbmVlZCB0byBiZSByZXNvbHZhYmxlLiBUbyBtYWtlIHRoaXMgd29yaywgd2UncmUgcmV0dXJuaW5nIGFcbiAgICAvLyBtZXJnZWQgbWFuaWZlc3QgYWNyb3NzIGFsbCBwYWdlcy4gVGhpcyBpcyBmaW5lIGFzIGxvbmcgYXMgdGhlIG1vZHVsZSBJRHNcbiAgICAvLyBhcmUgbm90IHBhZ2Ugc3BlY2lmaWMsIHdoaWNoIHRoZXkgYXJlIG5vdCBmb3IgV2VicGFjay4gVE9ETzogRml4IHRoaXMgaW5cbiAgICAvLyBUdXJib3BhY2suXG4gICAgcmV0dXJuIG1lcmdlQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzKGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UpXG4gIH1cblxuICBjb25zdCBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCA9XG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZVt3b3JrU3RvcmUucm91dGVdXG5cbiAgaWYgKCFjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCkge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihcbiAgICAgIGBNaXNzaW5nIENsaWVudCBSZWZlcmVuY2UgTWFuaWZlc3QgZm9yICR7d29ya1N0b3JlLnJvdXRlfS5gXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBY3Rpb25FbmNyeXB0aW9uS2V5KCkge1xuICBpZiAoX19uZXh0X2xvYWRlZF9hY3Rpb25fa2V5KSB7XG4gICAgcmV0dXJuIF9fbmV4dF9sb2FkZWRfYWN0aW9uX2tleVxuICB9XG5cbiAgY29uc3Qgc2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uID0gKGdsb2JhbFRoaXMgYXMgYW55KVtcbiAgICBTRVJWRVJfQUNUSU9OX01BTklGRVNUU19TSU5HTEVUT05cbiAgXSBhcyB7XG4gICAgc2VydmVyQWN0aW9uc01hbmlmZXN0OiBEZWVwUmVhZG9ubHk8QWN0aW9uTWFuaWZlc3Q+XG4gIH1cblxuICBpZiAoIXNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbikge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcignTWlzc2luZyBtYW5pZmVzdCBmb3IgU2VydmVyIEFjdGlvbnMuJylcbiAgfVxuXG4gIGNvbnN0IHJhd0tleSA9XG4gICAgcHJvY2Vzcy5lbnYuTkVYVF9TRVJWRVJfQUNUSU9OU19FTkNSWVBUSU9OX0tFWSB8fFxuICAgIHNlcnZlckFjdGlvbnNNYW5pZmVzdFNpbmdsZXRvbi5zZXJ2ZXJBY3Rpb25zTWFuaWZlc3QuZW5jcnlwdGlvbktleVxuXG4gIGlmIChyYXdLZXkgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcignTWlzc2luZyBlbmNyeXB0aW9uIGtleSBmb3IgU2VydmVyIEFjdGlvbnMnKVxuICB9XG5cbiAgX19uZXh0X2xvYWRlZF9hY3Rpb25fa2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoXG4gICAgJ3JhdycsXG4gICAgc3RyaW5nVG9VaW50OEFycmF5KGF0b2IocmF3S2V5KSksXG4gICAgJ0FFUy1HQ00nLFxuICAgIHRydWUsXG4gICAgWydlbmNyeXB0JywgJ2RlY3J5cHQnXVxuICApXG5cbiAgcmV0dXJuIF9fbmV4dF9sb2FkZWRfYWN0aW9uX2tleVxufVxuXG5mdW5jdGlvbiBtZXJnZUNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyhcbiAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZTogRGVlcFJlYWRvbmx5PFxuICAgIFJlY29yZDxzdHJpbmcsIENsaWVudFJlZmVyZW5jZU1hbmlmZXN0PlxuICA+XG4pOiBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdEZvclJzYyB7XG4gIGNvbnN0IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyA9IE9iamVjdC52YWx1ZXMoXG4gICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3RzUGVyUGFnZSBhcyBSZWNvcmQ8c3RyaW5nLCBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdD5cbiAgKVxuXG4gIGNvbnN0IG1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0OiBDbGllbnRSZWZlcmVuY2VNYW5pZmVzdEZvclJzYyA9IHtcbiAgICBjbGllbnRNb2R1bGVzOiB7fSxcbiAgICBlZGdlUnNjTW9kdWxlTWFwcGluZzoge30sXG4gICAgcnNjTW9kdWxlTWFwcGluZzoge30sXG4gIH1cblxuICBmb3IgKGNvbnN0IGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0IG9mIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cykge1xuICAgIG1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0LmNsaWVudE1vZHVsZXMgPSB7XG4gICAgICAuLi5tZXJnZWRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5jbGllbnRNb2R1bGVzLFxuICAgICAgLi4uY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QuY2xpZW50TW9kdWxlcyxcbiAgICB9XG4gICAgbWVyZ2VkQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3QuZWRnZVJzY01vZHVsZU1hcHBpbmcgPSB7XG4gICAgICAuLi5tZXJnZWRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5lZGdlUnNjTW9kdWxlTWFwcGluZyxcbiAgICAgIC4uLmNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LmVkZ2VSc2NNb2R1bGVNYXBwaW5nLFxuICAgIH1cbiAgICBtZXJnZWRDbGllbnRSZWZlcmVuY2VNYW5pZmVzdC5yc2NNb2R1bGVNYXBwaW5nID0ge1xuICAgICAgLi4ubWVyZ2VkQ2xpZW50UmVmZXJlbmNlTWFuaWZlc3QucnNjTW9kdWxlTWFwcGluZyxcbiAgICAgIC4uLmNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LnJzY01vZHVsZU1hcHBpbmcsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0XG59XG4iXSwibmFtZXMiOlsiYXJyYXlCdWZmZXJUb1N0cmluZyIsImRlY3J5cHQiLCJlbmNyeXB0IiwiZ2V0QWN0aW9uRW5jcnlwdGlvbktleSIsImdldENsaWVudFJlZmVyZW5jZU1hbmlmZXN0Rm9yUnNjIiwiZ2V0U2VydmVyTW9kdWxlTWFwIiwic2V0UmVmZXJlbmNlTWFuaWZlc3RzU2luZ2xldG9uIiwic3RyaW5nVG9VaW50OEFycmF5IiwiX19uZXh0X2xvYWRlZF9hY3Rpb25fa2V5IiwiYnVmZmVyIiwiYnl0ZXMiLCJVaW50OEFycmF5IiwibGVuIiwiYnl0ZUxlbmd0aCIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImFwcGx5IiwiYmluYXJ5IiwiaSIsImxlbmd0aCIsImFyciIsImNoYXJDb2RlQXQiLCJrZXkiLCJpdiIsImRhdGEiLCJjcnlwdG8iLCJzdWJ0bGUiLCJuYW1lIiwiU0VSVkVSX0FDVElPTl9NQU5JRkVTVFNfU0lOR0xFVE9OIiwiU3ltYm9sIiwiZm9yIiwicGFnZSIsImNsaWVudFJlZmVyZW5jZU1hbmlmZXN0Iiwic2VydmVyQWN0aW9uc01hbmlmZXN0Iiwic2VydmVyTW9kdWxlTWFwIiwiZ2xvYmFsVGhpcyIsImNsaWVudFJlZmVyZW5jZU1hbmlmZXN0c1BlclBhZ2UiLCJub3JtYWxpemVBcHBQYXRoIiwic2VydmVyQWN0aW9uc01hbmlmZXN0U2luZ2xldG9uIiwiSW52YXJpYW50RXJyb3IiLCJ3b3JrU3RvcmUiLCJ3b3JrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJtZXJnZUNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyIsInJvdXRlIiwicmF3S2V5IiwicHJvY2VzcyIsImVudiIsIk5FWFRfU0VSVkVSX0FDVElPTlNfRU5DUllQVElPTl9LRVkiLCJlbmNyeXB0aW9uS2V5IiwidW5kZWZpbmVkIiwiaW1wb3J0S2V5IiwiYXRvYiIsImNsaWVudFJlZmVyZW5jZU1hbmlmZXN0cyIsIk9iamVjdCIsInZhbHVlcyIsIm1lcmdlZENsaWVudFJlZmVyZW5jZU1hbmlmZXN0IiwiY2xpZW50TW9kdWxlcyIsImVkZ2VSc2NNb2R1bGVNYXBwaW5nIiwicnNjTW9kdWxlTWFwcGluZyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/encryption-utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/entry-base.js":
/*!****************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/entry-base.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("// eslint-disable-next-line import/no-extraneous-dependencies\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ClientPageRoot: function() {\n return _clientpage.ClientPageRoot;\n },\n ClientSegmentRoot: function() {\n return _clientsegment.ClientSegmentRoot;\n },\n HTTPAccessFallbackBoundary: function() {\n return _errorboundary.HTTPAccessFallbackBoundary;\n },\n LayoutRouter: function() {\n return _layoutrouter.default;\n },\n MetadataBoundary: function() {\n return _metadataboundary.MetadataBoundary;\n },\n OutletBoundary: function() {\n return _metadataboundary.OutletBoundary;\n },\n Postpone: function() {\n return _postpone.Postpone;\n },\n RenderFromTemplateContext: function() {\n return _renderfromtemplatecontext.default;\n },\n SegmentViewNode: function() {\n return SegmentViewNode;\n },\n SegmentViewStateNode: function() {\n return SegmentViewStateNode;\n },\n ViewportBoundary: function() {\n return _metadataboundary.ViewportBoundary;\n },\n actionAsyncStorage: function() {\n return _actionasyncstorageexternal.actionAsyncStorage;\n },\n captureOwnerStack: function() {\n return _react.captureOwnerStack;\n },\n collectSegmentData: function() {\n return _collectsegmentdata.collectSegmentData;\n },\n createMetadataComponents: function() {\n return _metadata.createMetadataComponents;\n },\n createPrerenderParamsForClientSegment: function() {\n return _params.createPrerenderParamsForClientSegment;\n },\n createPrerenderSearchParamsForClientPage: function() {\n return _searchparams.createPrerenderSearchParamsForClientPage;\n },\n createServerParamsForServerSegment: function() {\n return _params.createServerParamsForServerSegment;\n },\n createServerSearchParamsForServerPage: function() {\n return _searchparams.createServerSearchParamsForServerPage;\n },\n createTemporaryReferenceSet: function() {\n return _server.createTemporaryReferenceSet;\n },\n decodeAction: function() {\n return _server.decodeAction;\n },\n decodeFormState: function() {\n return _server.decodeFormState;\n },\n decodeReply: function() {\n return _server.decodeReply;\n },\n patchFetch: function() {\n return patchFetch;\n },\n preconnect: function() {\n return _preloads.preconnect;\n },\n preloadFont: function() {\n return _preloads.preloadFont;\n },\n preloadStyle: function() {\n return _preloads.preloadStyle;\n },\n prerender: function() {\n return _static.unstable_prerender;\n },\n renderToReadableStream: function() {\n return _server.renderToReadableStream;\n },\n serverHooks: function() {\n return _hooksservercontext;\n },\n taintObjectReference: function() {\n return _taint.taintObjectReference;\n },\n workAsyncStorage: function() {\n return _workasyncstorageexternal.workAsyncStorage;\n },\n workUnitAsyncStorage: function() {\n return _workunitasyncstorageexternal.workUnitAsyncStorage;\n }\n});\nconst _server = __webpack_require__(/*! react-server-dom-webpack/server */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\");\nconst _static = __webpack_require__(/*! react-server-dom-webpack/static */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js\");\nconst _react = __webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\");\nconst _layoutrouter = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../client/components/layout-router */ \"(rsc)/./node_modules/next/dist/client/components/layout-router.js\"));\nconst _renderfromtemplatecontext = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../../client/components/render-from-template-context */ \"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js\"));\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ./work-unit-async-storage.external */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\nconst _actionasyncstorageexternal = __webpack_require__(/*! ../app-render/action-async-storage.external */ \"../app-render/action-async-storage.external\");\nconst _clientpage = __webpack_require__(/*! ../../client/components/client-page */ \"(rsc)/./node_modules/next/dist/client/components/client-page.js\");\nconst _clientsegment = __webpack_require__(/*! ../../client/components/client-segment */ \"(rsc)/./node_modules/next/dist/client/components/client-segment.js\");\nconst _searchparams = __webpack_require__(/*! ../request/search-params */ \"(rsc)/./node_modules/next/dist/server/request/search-params.js\");\nconst _params = __webpack_require__(/*! ../request/params */ \"(rsc)/./node_modules/next/dist/server/request/params.js\");\nconst _hooksservercontext = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! ../../client/components/hooks-server-context */ \"(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\"));\nconst _errorboundary = __webpack_require__(/*! ../../client/components/http-access-fallback/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\");\nconst _metadata = __webpack_require__(/*! ../../lib/metadata/metadata */ \"(rsc)/./node_modules/next/dist/lib/metadata/metadata.js\");\nconst _metadataboundary = __webpack_require__(/*! ../../client/components/metadata/metadata-boundary */ \"(rsc)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js\");\nconst _preloads = __webpack_require__(/*! ./rsc/preloads */ \"(rsc)/./node_modules/next/dist/server/app-render/rsc/preloads.js\");\nconst _postpone = __webpack_require__(/*! ./rsc/postpone */ \"(rsc)/./node_modules/next/dist/server/app-render/rsc/postpone.js\");\nconst _taint = __webpack_require__(/*! ./rsc/taint */ \"(rsc)/./node_modules/next/dist/server/app-render/rsc/taint.js\");\nconst _collectsegmentdata = __webpack_require__(/*! ./collect-segment-data */ \"(rsc)/./node_modules/next/dist/server/app-render/collect-segment-data.js\");\nconst _patchfetch = __webpack_require__(/*! ../lib/patch-fetch */ \"(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nlet SegmentViewNode = ()=>null;\nlet SegmentViewStateNode = ()=>null;\nif (true) {\n const mod = __webpack_require__(/*! ../../next-devtools/userspace/app/segment-explorer-node */ \"(rsc)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\n SegmentViewNode = mod.SegmentViewNode;\n SegmentViewStateNode = mod.SegmentViewStateNode;\n}\nfunction patchFetch() {\n return (0, _patchfetch.patchFetch)({\n workAsyncStorage: _workasyncstorageexternal.workAsyncStorage,\n workUnitAsyncStorage: _workunitasyncstorageexternal.workUnitAsyncStorage\n });\n}\n\n//# sourceMappingURL=entry-base.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FrQ0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxnQkFBZ0IsbUJBQU8sQ0FBQyxxSkFBaUM7QUFDekQsZ0JBQWdCLG1CQUFPLENBQUMscUpBQWlDO0FBQ3pELGVBQWUsbUJBQU8sQ0FBQyxpR0FBTztBQUM5Qiw2REFBNkQsbUJBQU8sQ0FBQyxnSEFBdUM7QUFDNUcsMEVBQTBFLG1CQUFPLENBQUMsOElBQXNEO0FBQ3hJLGtDQUFrQyxtQkFBTyxDQUFDLGdGQUEyQztBQUNyRixzQ0FBc0MsbUJBQU8sQ0FBQywyR0FBb0M7QUFDbEYsb0NBQW9DLG1CQUFPLENBQUMsZ0dBQTZDO0FBQ3pGLG9CQUFvQixtQkFBTyxDQUFDLDRHQUFxQztBQUNqRSx1QkFBdUIsbUJBQU8sQ0FBQyxrSEFBd0M7QUFDdkUsc0JBQXNCLG1CQUFPLENBQUMsZ0dBQTBCO0FBQ3hELGdCQUFnQixtQkFBTyxDQUFDLGtGQUFtQjtBQUMzQyxvRUFBb0UsbUJBQU8sQ0FBQyw4SEFBOEM7QUFDMUgsdUJBQXVCLG1CQUFPLENBQUMsNEpBQTZEO0FBQzVGLGtCQUFrQixtQkFBTyxDQUFDLDRGQUE2QjtBQUN2RCwwQkFBMEIsbUJBQU8sQ0FBQywwSUFBb0Q7QUFDdEYsa0JBQWtCLG1CQUFPLENBQUMsd0ZBQWdCO0FBQzFDLGtCQUFrQixtQkFBTyxDQUFDLHdGQUFnQjtBQUMxQyxlQUFlLG1CQUFPLENBQUMsa0ZBQWE7QUFDcEMsNEJBQTRCLG1CQUFPLENBQUMsd0dBQXdCO0FBQzVELG9CQUFvQixtQkFBTyxDQUFDLG9GQUFvQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxJQUFzQztBQUMxQyxnQkFBZ0IsbUJBQU8sQ0FBQyxvSkFBeUQ7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvZW50cnktYmFzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIENsaWVudFBhZ2VSb290OiBudWxsLFxuICAgIENsaWVudFNlZ21lbnRSb290OiBudWxsLFxuICAgIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5OiBudWxsLFxuICAgIExheW91dFJvdXRlcjogbnVsbCxcbiAgICBNZXRhZGF0YUJvdW5kYXJ5OiBudWxsLFxuICAgIE91dGxldEJvdW5kYXJ5OiBudWxsLFxuICAgIFBvc3Rwb25lOiBudWxsLFxuICAgIFJlbmRlckZyb21UZW1wbGF0ZUNvbnRleHQ6IG51bGwsXG4gICAgU2VnbWVudFZpZXdOb2RlOiBudWxsLFxuICAgIFNlZ21lbnRWaWV3U3RhdGVOb2RlOiBudWxsLFxuICAgIFZpZXdwb3J0Qm91bmRhcnk6IG51bGwsXG4gICAgYWN0aW9uQXN5bmNTdG9yYWdlOiBudWxsLFxuICAgIGNhcHR1cmVPd25lclN0YWNrOiBudWxsLFxuICAgIGNvbGxlY3RTZWdtZW50RGF0YTogbnVsbCxcbiAgICBjcmVhdGVNZXRhZGF0YUNvbXBvbmVudHM6IG51bGwsXG4gICAgY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDogbnVsbCxcbiAgICBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlOiBudWxsLFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6IG51bGwsXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTogbnVsbCxcbiAgICBjcmVhdGVUZW1wb3JhcnlSZWZlcmVuY2VTZXQ6IG51bGwsXG4gICAgZGVjb2RlQWN0aW9uOiBudWxsLFxuICAgIGRlY29kZUZvcm1TdGF0ZTogbnVsbCxcbiAgICBkZWNvZGVSZXBseTogbnVsbCxcbiAgICBwYXRjaEZldGNoOiBudWxsLFxuICAgIHByZWNvbm5lY3Q6IG51bGwsXG4gICAgcHJlbG9hZEZvbnQ6IG51bGwsXG4gICAgcHJlbG9hZFN0eWxlOiBudWxsLFxuICAgIHByZXJlbmRlcjogbnVsbCxcbiAgICByZW5kZXJUb1JlYWRhYmxlU3RyZWFtOiBudWxsLFxuICAgIHNlcnZlckhvb2tzOiBudWxsLFxuICAgIHRhaW50T2JqZWN0UmVmZXJlbmNlOiBudWxsLFxuICAgIHdvcmtBc3luY1N0b3JhZ2U6IG51bGwsXG4gICAgd29ya1VuaXRBc3luY1N0b3JhZ2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQ2xpZW50UGFnZVJvb3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2NsaWVudHBhZ2UuQ2xpZW50UGFnZVJvb3Q7XG4gICAgfSxcbiAgICBDbGllbnRTZWdtZW50Um9vdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY2xpZW50c2VnbWVudC5DbGllbnRTZWdtZW50Um9vdDtcbiAgICB9LFxuICAgIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9lcnJvcmJvdW5kYXJ5LkhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5O1xuICAgIH0sXG4gICAgTGF5b3V0Um91dGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9sYXlvdXRyb3V0ZXIuZGVmYXVsdDtcbiAgICB9LFxuICAgIE1ldGFkYXRhQm91bmRhcnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX21ldGFkYXRhYm91bmRhcnkuTWV0YWRhdGFCb3VuZGFyeTtcbiAgICB9LFxuICAgIE91dGxldEJvdW5kYXJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9tZXRhZGF0YWJvdW5kYXJ5Lk91dGxldEJvdW5kYXJ5O1xuICAgIH0sXG4gICAgUG9zdHBvbmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3Bvc3Rwb25lLlBvc3Rwb25lO1xuICAgIH0sXG4gICAgUmVuZGVyRnJvbVRlbXBsYXRlQ29udGV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcmVuZGVyZnJvbXRlbXBsYXRlY29udGV4dC5kZWZhdWx0O1xuICAgIH0sXG4gICAgU2VnbWVudFZpZXdOb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNlZ21lbnRWaWV3Tm9kZTtcbiAgICB9LFxuICAgIFNlZ21lbnRWaWV3U3RhdGVOb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNlZ21lbnRWaWV3U3RhdGVOb2RlO1xuICAgIH0sXG4gICAgVmlld3BvcnRCb3VuZGFyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfbWV0YWRhdGFib3VuZGFyeS5WaWV3cG9ydEJvdW5kYXJ5O1xuICAgIH0sXG4gICAgYWN0aW9uQXN5bmNTdG9yYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9hY3Rpb25hc3luY3N0b3JhZ2VleHRlcm5hbC5hY3Rpb25Bc3luY1N0b3JhZ2U7XG4gICAgfSxcbiAgICBjYXB0dXJlT3duZXJTdGFjazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcmVhY3QuY2FwdHVyZU93bmVyU3RhY2s7XG4gICAgfSxcbiAgICBjb2xsZWN0U2VnbWVudERhdGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2NvbGxlY3RzZWdtZW50ZGF0YS5jb2xsZWN0U2VnbWVudERhdGE7XG4gICAgfSxcbiAgICBjcmVhdGVNZXRhZGF0YUNvbXBvbmVudHM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX21ldGFkYXRhLmNyZWF0ZU1ldGFkYXRhQ29tcG9uZW50cztcbiAgICB9LFxuICAgIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3BhcmFtcy5jcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50O1xuICAgIH0sXG4gICAgY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc2VhcmNocGFyYW1zLmNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2U7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9wYXJhbXMuY3JlYXRlU2VydmVyUGFyYW1zRm9yU2VydmVyU2VnbWVudDtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlYXJjaHBhcmFtcy5jcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlO1xuICAgIH0sXG4gICAgY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZXJ2ZXIuY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0O1xuICAgIH0sXG4gICAgZGVjb2RlQWN0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZXJ2ZXIuZGVjb2RlQWN0aW9uO1xuICAgIH0sXG4gICAgZGVjb2RlRm9ybVN0YXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9zZXJ2ZXIuZGVjb2RlRm9ybVN0YXRlO1xuICAgIH0sXG4gICAgZGVjb2RlUmVwbHk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlcnZlci5kZWNvZGVSZXBseTtcbiAgICB9LFxuICAgIHBhdGNoRmV0Y2g6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGF0Y2hGZXRjaDtcbiAgICB9LFxuICAgIHByZWNvbm5lY3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3ByZWxvYWRzLnByZWNvbm5lY3Q7XG4gICAgfSxcbiAgICBwcmVsb2FkRm9udDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcHJlbG9hZHMucHJlbG9hZEZvbnQ7XG4gICAgfSxcbiAgICBwcmVsb2FkU3R5bGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3ByZWxvYWRzLnByZWxvYWRTdHlsZTtcbiAgICB9LFxuICAgIHByZXJlbmRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfc3RhdGljLnVuc3RhYmxlX3ByZXJlbmRlcjtcbiAgICB9LFxuICAgIHJlbmRlclRvUmVhZGFibGVTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3NlcnZlci5yZW5kZXJUb1JlYWRhYmxlU3RyZWFtO1xuICAgIH0sXG4gICAgc2VydmVySG9va3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2hvb2tzc2VydmVyY29udGV4dDtcbiAgICB9LFxuICAgIHRhaW50T2JqZWN0UmVmZXJlbmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF90YWludC50YWludE9iamVjdFJlZmVyZW5jZTtcbiAgICB9LFxuICAgIHdvcmtBc3luY1N0b3JhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrQXN5bmNTdG9yYWdlO1xuICAgIH0sXG4gICAgd29ya1VuaXRBc3luY1N0b3JhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2U7XG4gICAgfVxufSk7XG5jb25zdCBfc2VydmVyID0gcmVxdWlyZShcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zZXJ2ZXJcIik7XG5jb25zdCBfc3RhdGljID0gcmVxdWlyZShcInJlYWN0LXNlcnZlci1kb20td2VicGFjay9zdGF0aWNcIik7XG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5jb25zdCBfbGF5b3V0cm91dGVyID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQocmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXJcIikpO1xuY29uc3QgX3JlbmRlcmZyb210ZW1wbGF0ZWNvbnRleHQgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dFwiKSk7XG5jb25zdCBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF9hY3Rpb25hc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL2FjdGlvbi1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2NsaWVudHBhZ2UgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXBhZ2VcIik7XG5jb25zdCBfY2xpZW50c2VnbWVudCA9IHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtc2VnbWVudFwiKTtcbmNvbnN0IF9zZWFyY2hwYXJhbXMgPSByZXF1aXJlKFwiLi4vcmVxdWVzdC9zZWFyY2gtcGFyYW1zXCIpO1xuY29uc3QgX3BhcmFtcyA9IHJlcXVpcmUoXCIuLi9yZXF1ZXN0L3BhcmFtc1wiKTtcbmNvbnN0IF9ob29rc3NlcnZlcmNvbnRleHQgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQocmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0XCIpKTtcbmNvbnN0IF9lcnJvcmJvdW5kYXJ5ID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5XCIpO1xuY29uc3QgX21ldGFkYXRhID0gcmVxdWlyZShcIi4uLy4uL2xpYi9tZXRhZGF0YS9tZXRhZGF0YVwiKTtcbmNvbnN0IF9tZXRhZGF0YWJvdW5kYXJ5ID0gcmVxdWlyZShcIi4uLy4uL2NsaWVudC9jb21wb25lbnRzL21ldGFkYXRhL21ldGFkYXRhLWJvdW5kYXJ5XCIpO1xuY29uc3QgX3ByZWxvYWRzID0gcmVxdWlyZShcIi4vcnNjL3ByZWxvYWRzXCIpO1xuY29uc3QgX3Bvc3Rwb25lID0gcmVxdWlyZShcIi4vcnNjL3Bvc3Rwb25lXCIpO1xuY29uc3QgX3RhaW50ID0gcmVxdWlyZShcIi4vcnNjL3RhaW50XCIpO1xuY29uc3QgX2NvbGxlY3RzZWdtZW50ZGF0YSA9IHJlcXVpcmUoXCIuL2NvbGxlY3Qtc2VnbWVudC1kYXRhXCIpO1xuY29uc3QgX3BhdGNoZmV0Y2ggPSByZXF1aXJlKFwiLi4vbGliL3BhdGNoLWZldGNoXCIpO1xuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KG9iaikge1xuICAgIHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7XG4gICAgICAgIGRlZmF1bHQ6IG9ialxuICAgIH07XG59XG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG4gICAgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbihub2RlSW50ZXJvcCkge1xuICAgICAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gICAgfSkobm9kZUludGVyb3ApO1xufVxuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgICAgIH07XG4gICAgfVxuICAgIHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7XG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7XG4gICAgICAgIHJldHVybiBjYWNoZS5nZXQob2JqKTtcbiAgICB9XG4gICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgX19wcm90b19fOiBudWxsXG4gICAgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmxldCBTZWdtZW50Vmlld05vZGUgPSAoKT0+bnVsbDtcbmxldCBTZWdtZW50Vmlld1N0YXRlTm9kZSA9ICgpPT5udWxsO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgY29uc3QgbW9kID0gcmVxdWlyZSgnLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3NlZ21lbnQtZXhwbG9yZXItbm9kZScpO1xuICAgIFNlZ21lbnRWaWV3Tm9kZSA9IG1vZC5TZWdtZW50Vmlld05vZGU7XG4gICAgU2VnbWVudFZpZXdTdGF0ZU5vZGUgPSBtb2QuU2VnbWVudFZpZXdTdGF0ZU5vZGU7XG59XG5mdW5jdGlvbiBwYXRjaEZldGNoKCkge1xuICAgIHJldHVybiAoMCwgX3BhdGNoZmV0Y2gucGF0Y2hGZXRjaCkoe1xuICAgICAgICB3b3JrQXN5bmNTdG9yYWdlOiBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtBc3luY1N0b3JhZ2UsXG4gICAgICAgIHdvcmtVbml0QXN5bmNTdG9yYWdlOiBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lbnRyeS1iYXNlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/interop-default.js":
/*!*********************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/interop-default.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Interop between \"export default\" and \"module.exports\".\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interopDefault\", ({\n enumerable: true,\n get: function() {\n return interopDefault;\n }\n}));\nfunction interopDefault(mod) {\n return mod.default || mod;\n}\n\n//# sourceMappingURL=interop-default.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2ludGVyb3AtZGVmYXVsdC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0RBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2ludGVyb3AtZGVmYXVsdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVyb3AgYmV0d2VlbiBcImV4cG9ydCBkZWZhdWx0XCIgYW5kIFwibW9kdWxlLmV4cG9ydHNcIi5cbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImludGVyb3BEZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbnRlcm9wRGVmYXVsdDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGludGVyb3BEZWZhdWx0KG1vZCkge1xuICAgIHJldHVybiBtb2QuZGVmYXVsdCB8fCBtb2Q7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVyb3AtZGVmYXVsdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/interop-default.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js":
/*!********************************************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js ***!
\********************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseAndValidateFlightRouterState\", ({\n enumerable: true,\n get: function() {\n return parseAndValidateFlightRouterState;\n }\n}));\nconst _types = __webpack_require__(/*! ./types */ \"(rsc)/./node_modules/next/dist/server/app-render/types.js\");\nconst _superstruct = __webpack_require__(/*! next/dist/compiled/superstruct */ \"(rsc)/./node_modules/next/dist/compiled/superstruct/index.cjs\");\nfunction parseAndValidateFlightRouterState(stateHeader) {\n if (typeof stateHeader === 'undefined') {\n return undefined;\n }\n if (Array.isArray(stateHeader)) {\n throw Object.defineProperty(new Error('Multiple router state headers were sent. This is not allowed.'), \"__NEXT_ERROR_CODE\", {\n value: \"E418\",\n enumerable: false,\n configurable: true\n });\n }\n // We limit the size of the router state header to ~40kb. This is to prevent\n // a malicious user from sending a very large header and slowing down the\n // resolving of the router state.\n // This is around 2,000 nested or parallel route segment states:\n // '{\"children\":[\"\",{}]}'.length === 20.\n if (stateHeader.length > 20 * 2000) {\n throw Object.defineProperty(new Error('The router state header was too large.'), \"__NEXT_ERROR_CODE\", {\n value: \"E142\",\n enumerable: false,\n configurable: true\n });\n }\n try {\n const state = JSON.parse(decodeURIComponent(stateHeader));\n (0, _superstruct.assert)(state, _types.flightRouterStateSchema);\n return state;\n } catch {\n throw Object.defineProperty(new Error('The router state header was sent but could not be parsed.'), \"__NEXT_ERROR_CODE\", {\n value: \"E10\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=parse-and-validate-flight-router-state.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3BhcnNlLWFuZC12YWxpZGF0ZS1mbGlnaHQtcm91dGVyLXN0YXRlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YscUVBQW9FO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZUFBZSxtQkFBTyxDQUFDLDBFQUFTO0FBQ2hDLHFCQUFxQixtQkFBTyxDQUFDLHFHQUFnQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsaUJBQWlCLEVBQUU7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvcGFyc2UtYW5kLXZhbGlkYXRlLWZsaWdodC1yb3V0ZXItc3RhdGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJwYXJzZUFuZFZhbGlkYXRlRmxpZ2h0Um91dGVyU3RhdGVcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlQW5kVmFsaWRhdGVGbGlnaHRSb3V0ZXJTdGF0ZTtcbiAgICB9XG59KTtcbmNvbnN0IF90eXBlcyA9IHJlcXVpcmUoXCIuL3R5cGVzXCIpO1xuY29uc3QgX3N1cGVyc3RydWN0ID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9zdXBlcnN0cnVjdFwiKTtcbmZ1bmN0aW9uIHBhcnNlQW5kVmFsaWRhdGVGbGlnaHRSb3V0ZXJTdGF0ZShzdGF0ZUhlYWRlcikge1xuICAgIGlmICh0eXBlb2Ygc3RhdGVIZWFkZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHN0YXRlSGVhZGVyKSkge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdNdWx0aXBsZSByb3V0ZXIgc3RhdGUgaGVhZGVycyB3ZXJlIHNlbnQuIFRoaXMgaXMgbm90IGFsbG93ZWQuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTQxOFwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8vIFdlIGxpbWl0IHRoZSBzaXplIG9mIHRoZSByb3V0ZXIgc3RhdGUgaGVhZGVyIHRvIH40MGtiLiBUaGlzIGlzIHRvIHByZXZlbnRcbiAgICAvLyBhIG1hbGljaW91cyB1c2VyIGZyb20gc2VuZGluZyBhIHZlcnkgbGFyZ2UgaGVhZGVyIGFuZCBzbG93aW5nIGRvd24gdGhlXG4gICAgLy8gcmVzb2x2aW5nIG9mIHRoZSByb3V0ZXIgc3RhdGUuXG4gICAgLy8gVGhpcyBpcyBhcm91bmQgMiwwMDAgbmVzdGVkIG9yIHBhcmFsbGVsIHJvdXRlIHNlZ21lbnQgc3RhdGVzOlxuICAgIC8vICd7XCJjaGlsZHJlblwiOltcIlwiLHt9XX0nLmxlbmd0aCA9PT0gMjAuXG4gICAgaWYgKHN0YXRlSGVhZGVyLmxlbmd0aCA+IDIwICogMjAwMCkge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdUaGUgcm91dGVyIHN0YXRlIGhlYWRlciB3YXMgdG9vIGxhcmdlLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgIHZhbHVlOiBcIkUxNDJcIixcbiAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KHN0YXRlSGVhZGVyKSk7XG4gICAgICAgICgwLCBfc3VwZXJzdHJ1Y3QuYXNzZXJ0KShzdGF0ZSwgX3R5cGVzLmZsaWdodFJvdXRlclN0YXRlU2NoZW1hKTtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignVGhlIHJvdXRlciBzdGF0ZSBoZWFkZXIgd2FzIHNlbnQgYnV0IGNvdWxkIG5vdCBiZSBwYXJzZWQuJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTEwXCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLWFuZC12YWxpZGF0ZS1mbGlnaHQtcm91dGVyLXN0YXRlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/react-large-shell-error.js":
/*!*****************************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/react-large-shell-error.js ***!
\*****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// TODO: isWellKnownError -> isNextInternalError\n// isReactLargeShellError -> isWarning\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isReactLargeShellError\", ({\n enumerable: true,\n get: function() {\n return isReactLargeShellError;\n }\n}));\nfunction isReactLargeShellError(error) {\n return typeof error === 'object' && error !== null && 'message' in error && typeof error.message === 'string' && error.message.startsWith('This rendered a large document (>');\n}\n\n//# sourceMappingURL=react-large-shell-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JlYWN0LWxhcmdlLXNoZWxsLWVycm9yLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDBEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9yZWFjdC1sYXJnZS1zaGVsbC1lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBpc1dlbGxLbm93bkVycm9yIC0+IGlzTmV4dEludGVybmFsRXJyb3Jcbi8vIGlzUmVhY3RMYXJnZVNoZWxsRXJyb3IgLT4gaXNXYXJuaW5nXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImlzUmVhY3RMYXJnZVNoZWxsRXJyb3JcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzUmVhY3RMYXJnZVNoZWxsRXJyb3I7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBpc1JlYWN0TGFyZ2VTaGVsbEVycm9yKGVycm9yKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgJ21lc3NhZ2UnIGluIGVycm9yICYmIHR5cGVvZiBlcnJvci5tZXNzYWdlID09PSAnc3RyaW5nJyAmJiBlcnJvci5tZXNzYWdlLnN0YXJ0c1dpdGgoJ1RoaXMgcmVuZGVyZWQgYSBsYXJnZSBkb2N1bWVudCAoPicpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1sYXJnZS1zaGVsbC1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/react-large-shell-error.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/rsc/postpone.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/rsc/postpone.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\n*/ // When postpone is available in canary React we can switch to importing it directly\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Postpone\", ({\n enumerable: true,\n get: function() {\n return _dynamicrendering.Postpone;\n }\n}));\nconst _dynamicrendering = __webpack_require__(/*! ../dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\n\n//# sourceMappingURL=postpone.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wb3N0cG9uZS5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNENBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMEJBQTBCLG1CQUFPLENBQUMsbUdBQXNCOztBQUV4RCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9yc2MvcG9zdHBvbmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcblxuRmlsZXMgaW4gdGhlIHJzYyBkaXJlY3RvcnkgYXJlIG1lYW50IHRvIGJlIHBhY2thZ2VkIGFzIHBhcnQgb2YgdGhlIFJTQyBncmFwaCB1c2luZyBuZXh0LWFwcC1sb2FkZXIuXG5cbiovIC8vIFdoZW4gcG9zdHBvbmUgaXMgYXZhaWxhYmxlIGluIGNhbmFyeSBSZWFjdCB3ZSBjYW4gc3dpdGNoIHRvIGltcG9ydGluZyBpdCBkaXJlY3RseVxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJQb3N0cG9uZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2R5bmFtaWNyZW5kZXJpbmcuUG9zdHBvbmU7XG4gICAgfVxufSk7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZyA9IHJlcXVpcmUoXCIuLi9keW5hbWljLXJlbmRlcmluZ1wiKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cG9zdHBvbmUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/rsc/postpone.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/rsc/preloads.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/rsc/preloads.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n preconnect: function() {\n return preconnect;\n },\n preloadFont: function() {\n return preloadFont;\n },\n preloadStyle: function() {\n return preloadStyle;\n }\n});\nconst _reactdom = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react-dom */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction preloadStyle(href, crossOrigin, nonce) {\n const opts = {\n as: 'style'\n };\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n _reactdom.default.preload(href, opts);\n}\nfunction preloadFont(href, type, crossOrigin, nonce) {\n const opts = {\n as: 'font',\n type\n };\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n _reactdom.default.preload(href, opts);\n}\nfunction preconnect(href, crossOrigin, nonce) {\n const opts = {};\n if (typeof crossOrigin === 'string') {\n opts.crossOrigin = crossOrigin;\n }\n if (typeof nonce === 'string') {\n opts.nonce = nonce;\n }\n ;\n _reactdom.default.preconnect(href, opts);\n}\n\n//# sourceMappingURL=preloads.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wcmVsb2Fkcy5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSxHQUFnQjtBQUNoQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx5REFBeUQsbUJBQU8sQ0FBQyx5R0FBVztBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy9wcmVsb2Fkcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXG5GaWxlcyBpbiB0aGUgcnNjIGRpcmVjdG9yeSBhcmUgbWVhbnQgdG8gYmUgcGFja2FnZWQgYXMgcGFydCBvZiB0aGUgUlNDIGdyYXBoIHVzaW5nIG5leHQtYXBwLWxvYWRlci5cblxuKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBwcmVjb25uZWN0OiBudWxsLFxuICAgIHByZWxvYWRGb250OiBudWxsLFxuICAgIHByZWxvYWRTdHlsZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBwcmVjb25uZWN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHByZWNvbm5lY3Q7XG4gICAgfSxcbiAgICBwcmVsb2FkRm9udDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwcmVsb2FkRm9udDtcbiAgICB9LFxuICAgIHByZWxvYWRTdHlsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwcmVsb2FkU3R5bGU7XG4gICAgfVxufSk7XG5jb25zdCBfcmVhY3Rkb20gPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwicmVhY3QtZG9tXCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gcHJlbG9hZFN0eWxlKGhyZWYsIGNyb3NzT3JpZ2luLCBub25jZSkge1xuICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgIGFzOiAnc3R5bGUnXG4gICAgfTtcbiAgICBpZiAodHlwZW9mIGNyb3NzT3JpZ2luID09PSAnc3RyaW5nJykge1xuICAgICAgICBvcHRzLmNyb3NzT3JpZ2luID0gY3Jvc3NPcmlnaW47XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygbm9uY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdHMubm9uY2UgPSBub25jZTtcbiAgICB9XG4gICAgX3JlYWN0ZG9tLmRlZmF1bHQucHJlbG9hZChocmVmLCBvcHRzKTtcbn1cbmZ1bmN0aW9uIHByZWxvYWRGb250KGhyZWYsIHR5cGUsIGNyb3NzT3JpZ2luLCBub25jZSkge1xuICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICAgIGFzOiAnZm9udCcsXG4gICAgICAgIHR5cGVcbiAgICB9O1xuICAgIGlmICh0eXBlb2YgY3Jvc3NPcmlnaW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdHMuY3Jvc3NPcmlnaW4gPSBjcm9zc09yaWdpbjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBub25jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0cy5ub25jZSA9IG5vbmNlO1xuICAgIH1cbiAgICBfcmVhY3Rkb20uZGVmYXVsdC5wcmVsb2FkKGhyZWYsIG9wdHMpO1xufVxuZnVuY3Rpb24gcHJlY29ubmVjdChocmVmLCBjcm9zc09yaWdpbiwgbm9uY2UpIHtcbiAgICBjb25zdCBvcHRzID0ge307XG4gICAgaWYgKHR5cGVvZiBjcm9zc09yaWdpbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgb3B0cy5jcm9zc09yaWdpbiA9IGNyb3NzT3JpZ2luO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG5vbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgICBvcHRzLm5vbmNlID0gbm9uY2U7XG4gICAgfVxuICAgIDtcbiAgICBfcmVhY3Rkb20uZGVmYXVsdC5wcmVjb25uZWN0KGhyZWYsIG9wdHMpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcmVsb2Fkcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/rsc/preloads.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/rsc/taint.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/rsc/taint.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("/*\n\nFiles in the rsc directory are meant to be packaged as part of the RSC graph using next-app-loader.\n\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n taintObjectReference: function() {\n return taintObjectReference;\n },\n taintUniqueValue: function() {\n return taintUniqueValue;\n }\n});\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction notImplemented() {\n throw Object.defineProperty(new Error('Taint can only be used with the taint flag.'), \"__NEXT_ERROR_CODE\", {\n value: \"E354\",\n enumerable: false,\n configurable: true\n });\n}\nconst taintObjectReference = false ? 0 : notImplemented;\nconst taintUniqueValue = false ? 0 : notImplemented;\n\n//# sourceMappingURL=taint.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy90YWludC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQSxHQUFnQjtBQUNoQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsNkJBQTZCLE1BQXFDLEdBQUcsQ0FBd0M7QUFDN0cseUJBQXlCLE1BQXFDLEdBQUcsQ0FBb0M7O0FBRXJHIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3JzYy90YWludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXG5GaWxlcyBpbiB0aGUgcnNjIGRpcmVjdG9yeSBhcmUgbWVhbnQgdG8gYmUgcGFja2FnZWQgYXMgcGFydCBvZiB0aGUgUlNDIGdyYXBoIHVzaW5nIG5leHQtYXBwLWxvYWRlci5cblxuKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICB0YWludE9iamVjdFJlZmVyZW5jZTogbnVsbCxcbiAgICB0YWludFVuaXF1ZVZhbHVlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIHRhaW50T2JqZWN0UmVmZXJlbmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRhaW50T2JqZWN0UmVmZXJlbmNlO1xuICAgIH0sXG4gICAgdGFpbnRVbmlxdWVWYWx1ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0YWludFVuaXF1ZVZhbHVlO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG4gICAgdmFyIGNhY2hlQmFiZWxJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICB2YXIgY2FjaGVOb2RlSW50ZXJvcCA9IG5ldyBXZWFrTWFwKCk7XG4gICAgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbihub2RlSW50ZXJvcCkge1xuICAgICAgICByZXR1cm4gbm9kZUludGVyb3AgPyBjYWNoZU5vZGVJbnRlcm9wIDogY2FjaGVCYWJlbEludGVyb3A7XG4gICAgfSkobm9kZUludGVyb3ApO1xufVxuZnVuY3Rpb24gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChvYmosIG5vZGVJbnRlcm9wKSB7XG4gICAgaWYgKCFub2RlSW50ZXJvcCAmJiBvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvYmogIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgICAgIH07XG4gICAgfVxuICAgIHZhciBjYWNoZSA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCk7XG4gICAgaWYgKGNhY2hlICYmIGNhY2hlLmhhcyhvYmopKSB7XG4gICAgICAgIHJldHVybiBjYWNoZS5nZXQob2JqKTtcbiAgICB9XG4gICAgdmFyIG5ld09iaiA9IHtcbiAgICAgICAgX19wcm90b19fOiBudWxsXG4gICAgfTtcbiAgICB2YXIgaGFzUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gICAgZm9yKHZhciBrZXkgaW4gb2JqKXtcbiAgICAgICAgaWYgKGtleSAhPT0gXCJkZWZhdWx0XCIgJiYgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkge1xuICAgICAgICAgICAgdmFyIGRlc2MgPSBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAoZGVzYy5nZXQgfHwgZGVzYy5zZXQpKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09iaiwga2V5LCBkZXNjKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcbiAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld09iajtcbn1cbmZ1bmN0aW9uIG5vdEltcGxlbWVudGVkKCkge1xuICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ1RhaW50IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCB0aGUgdGFpbnQgZmxhZy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkUzNTRcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuY29uc3QgdGFpbnRPYmplY3RSZWZlcmVuY2UgPSBwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX1JFQUNUID8gX3JlYWN0LmV4cGVyaW1lbnRhbF90YWludE9iamVjdFJlZmVyZW5jZSA6IG5vdEltcGxlbWVudGVkO1xuY29uc3QgdGFpbnRVbmlxdWVWYWx1ZSA9IHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfUkVBQ1QgPyBfcmVhY3QuZXhwZXJpbWVudGFsX3RhaW50VW5pcXVlVmFsdWUgOiBub3RJbXBsZW1lbnRlZDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGFpbnQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/rsc/taint.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/app-render/types.js":
/*!***********************************************************!*\
!*** ./node_modules/next/dist/server/app-render/types.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HasLoadingBoundary: function() {\n return HasLoadingBoundary;\n },\n flightRouterStateSchema: function() {\n return flightRouterStateSchema;\n }\n});\nconst _superstruct = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/superstruct */ \"(rsc)/./node_modules/next/dist/compiled/superstruct/index.cjs\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst dynamicParamTypesSchema = _superstruct.default.enums([\n 'c',\n 'ci',\n 'oc',\n 'd',\n 'di'\n]);\nconst segmentSchema = _superstruct.default.union([\n _superstruct.default.string(),\n _superstruct.default.tuple([\n _superstruct.default.string(),\n _superstruct.default.string(),\n dynamicParamTypesSchema\n ])\n]);\nconst flightRouterStateSchema = _superstruct.default.tuple([\n segmentSchema,\n _superstruct.default.record(_superstruct.default.string(), _superstruct.default.lazy(()=>flightRouterStateSchema)),\n _superstruct.default.optional(_superstruct.default.nullable(_superstruct.default.string())),\n _superstruct.default.optional(_superstruct.default.nullable(_superstruct.default.union([\n _superstruct.default.literal('refetch'),\n _superstruct.default.literal('refresh'),\n _superstruct.default.literal('inside-shared-layout')\n ]))),\n _superstruct.default.optional(_superstruct.default.boolean())\n]);\nvar HasLoadingBoundary = /*#__PURE__*/ function(HasLoadingBoundary) {\n // There is a loading boundary in this particular segment\n HasLoadingBoundary[HasLoadingBoundary[\"SegmentHasLoadingBoundary\"] = 1] = \"SegmentHasLoadingBoundary\";\n // There is a loading boundary somewhere in the subtree (but not in\n // this segment)\n HasLoadingBoundary[HasLoadingBoundary[\"SubtreeHasLoadingBoundary\"] = 2] = \"SubtreeHasLoadingBoundary\";\n // There is no loading boundary in this segment or any of its descendants\n HasLoadingBoundary[HasLoadingBoundary[\"SubtreeHasNoLoadingBoundary\"] = 3] = \"SubtreeHasNoLoadingBoundary\";\n return HasLoadingBoundary;\n}({});\n\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDREQUE0RCxtQkFBTyxDQUFDLHFHQUFnQztBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEhhc0xvYWRpbmdCb3VuZGFyeTogbnVsbCxcbiAgICBmbGlnaHRSb3V0ZXJTdGF0ZVNjaGVtYTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBIYXNMb2FkaW5nQm91bmRhcnk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSGFzTG9hZGluZ0JvdW5kYXJ5O1xuICAgIH0sXG4gICAgZmxpZ2h0Um91dGVyU3RhdGVTY2hlbWE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZmxpZ2h0Um91dGVyU3RhdGVTY2hlbWE7XG4gICAgfVxufSk7XG5jb25zdCBfc3VwZXJzdHJ1Y3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3N1cGVyc3RydWN0XCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuY29uc3QgZHluYW1pY1BhcmFtVHlwZXNTY2hlbWEgPSBfc3VwZXJzdHJ1Y3QuZGVmYXVsdC5lbnVtcyhbXG4gICAgJ2MnLFxuICAgICdjaScsXG4gICAgJ29jJyxcbiAgICAnZCcsXG4gICAgJ2RpJ1xuXSk7XG5jb25zdCBzZWdtZW50U2NoZW1hID0gX3N1cGVyc3RydWN0LmRlZmF1bHQudW5pb24oW1xuICAgIF9zdXBlcnN0cnVjdC5kZWZhdWx0LnN0cmluZygpLFxuICAgIF9zdXBlcnN0cnVjdC5kZWZhdWx0LnR1cGxlKFtcbiAgICAgICAgX3N1cGVyc3RydWN0LmRlZmF1bHQuc3RyaW5nKCksXG4gICAgICAgIF9zdXBlcnN0cnVjdC5kZWZhdWx0LnN0cmluZygpLFxuICAgICAgICBkeW5hbWljUGFyYW1UeXBlc1NjaGVtYVxuICAgIF0pXG5dKTtcbmNvbnN0IGZsaWdodFJvdXRlclN0YXRlU2NoZW1hID0gX3N1cGVyc3RydWN0LmRlZmF1bHQudHVwbGUoW1xuICAgIHNlZ21lbnRTY2hlbWEsXG4gICAgX3N1cGVyc3RydWN0LmRlZmF1bHQucmVjb3JkKF9zdXBlcnN0cnVjdC5kZWZhdWx0LnN0cmluZygpLCBfc3VwZXJzdHJ1Y3QuZGVmYXVsdC5sYXp5KCgpPT5mbGlnaHRSb3V0ZXJTdGF0ZVNjaGVtYSkpLFxuICAgIF9zdXBlcnN0cnVjdC5kZWZhdWx0Lm9wdGlvbmFsKF9zdXBlcnN0cnVjdC5kZWZhdWx0Lm51bGxhYmxlKF9zdXBlcnN0cnVjdC5kZWZhdWx0LnN0cmluZygpKSksXG4gICAgX3N1cGVyc3RydWN0LmRlZmF1bHQub3B0aW9uYWwoX3N1cGVyc3RydWN0LmRlZmF1bHQubnVsbGFibGUoX3N1cGVyc3RydWN0LmRlZmF1bHQudW5pb24oW1xuICAgICAgICBfc3VwZXJzdHJ1Y3QuZGVmYXVsdC5saXRlcmFsKCdyZWZldGNoJyksXG4gICAgICAgIF9zdXBlcnN0cnVjdC5kZWZhdWx0LmxpdGVyYWwoJ3JlZnJlc2gnKSxcbiAgICAgICAgX3N1cGVyc3RydWN0LmRlZmF1bHQubGl0ZXJhbCgnaW5zaWRlLXNoYXJlZC1sYXlvdXQnKVxuICAgIF0pKSksXG4gICAgX3N1cGVyc3RydWN0LmRlZmF1bHQub3B0aW9uYWwoX3N1cGVyc3RydWN0LmRlZmF1bHQuYm9vbGVhbigpKVxuXSk7XG52YXIgSGFzTG9hZGluZ0JvdW5kYXJ5ID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihIYXNMb2FkaW5nQm91bmRhcnkpIHtcbiAgICAvLyBUaGVyZSBpcyBhIGxvYWRpbmcgYm91bmRhcnkgaW4gdGhpcyBwYXJ0aWN1bGFyIHNlZ21lbnRcbiAgICBIYXNMb2FkaW5nQm91bmRhcnlbSGFzTG9hZGluZ0JvdW5kYXJ5W1wiU2VnbWVudEhhc0xvYWRpbmdCb3VuZGFyeVwiXSA9IDFdID0gXCJTZWdtZW50SGFzTG9hZGluZ0JvdW5kYXJ5XCI7XG4gICAgLy8gVGhlcmUgaXMgYSBsb2FkaW5nIGJvdW5kYXJ5IHNvbWV3aGVyZSBpbiB0aGUgc3VidHJlZSAoYnV0IG5vdCBpblxuICAgIC8vIHRoaXMgc2VnbWVudClcbiAgICBIYXNMb2FkaW5nQm91bmRhcnlbSGFzTG9hZGluZ0JvdW5kYXJ5W1wiU3VidHJlZUhhc0xvYWRpbmdCb3VuZGFyeVwiXSA9IDJdID0gXCJTdWJ0cmVlSGFzTG9hZGluZ0JvdW5kYXJ5XCI7XG4gICAgLy8gVGhlcmUgaXMgbm8gbG9hZGluZyBib3VuZGFyeSBpbiB0aGlzIHNlZ21lbnQgb3IgYW55IG9mIGl0cyBkZXNjZW5kYW50c1xuICAgIEhhc0xvYWRpbmdCb3VuZGFyeVtIYXNMb2FkaW5nQm91bmRhcnlbXCJTdWJ0cmVlSGFzTm9Mb2FkaW5nQm91bmRhcnlcIl0gPSAzXSA9IFwiU3VidHJlZUhhc05vTG9hZGluZ0JvdW5kYXJ5XCI7XG4gICAgcmV0dXJuIEhhc0xvYWRpbmdCb3VuZGFyeTtcbn0oe30pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10eXBlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/app-render/types.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/base-http/helpers.js":
/*!************************************************************!*\
!*** ./node_modules/next/dist/server/base-http/helpers.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isNodeNextRequest: function() {\n return isNodeNextRequest;\n },\n isNodeNextResponse: function() {\n return isNodeNextResponse;\n },\n isWebNextRequest: function() {\n return isWebNextRequest;\n },\n isWebNextResponse: function() {\n return isWebNextResponse;\n }\n});\nconst isWebNextRequest = (req)=>\"nodejs\" === 'edge';\nconst isWebNextResponse = (res)=>\"nodejs\" === 'edge';\nconst isNodeNextRequest = (req)=>\"nodejs\" !== 'edge';\nconst isNodeNextResponse = (res)=>\"nodejs\" !== 'edge';\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaGVscGVycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FLTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZ0NBQWdDLFFBQXdCO0FBQ3hELGlDQUFpQyxRQUF3QjtBQUN6RCxpQ0FBaUMsUUFBd0I7QUFDekQsa0NBQWtDLFFBQXdCOztBQUUxRCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYmFzZS1odHRwL2hlbHBlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc05vZGVOZXh0UmVxdWVzdDogbnVsbCxcbiAgICBpc05vZGVOZXh0UmVzcG9uc2U6IG51bGwsXG4gICAgaXNXZWJOZXh0UmVxdWVzdDogbnVsbCxcbiAgICBpc1dlYk5leHRSZXNwb25zZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc05vZGVOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc05vZGVOZXh0UmVxdWVzdDtcbiAgICB9LFxuICAgIGlzTm9kZU5leHRSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc05vZGVOZXh0UmVzcG9uc2U7XG4gICAgfSxcbiAgICBpc1dlYk5leHRSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzV2ViTmV4dFJlcXVlc3Q7XG4gICAgfSxcbiAgICBpc1dlYk5leHRSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1dlYk5leHRSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IGlzV2ViTmV4dFJlcXVlc3QgPSAocmVxKT0+cHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZSc7XG5jb25zdCBpc1dlYk5leHRSZXNwb25zZSA9IChyZXMpPT5wcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJztcbmNvbnN0IGlzTm9kZU5leHRSZXF1ZXN0ID0gKHJlcSk9PnByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnO1xuY29uc3QgaXNOb2RlTmV4dFJlc3BvbnNlID0gKHJlcyk9PnByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWxwZXJzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/base-http/helpers.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/base-http/index.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/server/base-http/index.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BaseNextRequest: function() {\n return BaseNextRequest;\n },\n BaseNextResponse: function() {\n return BaseNextResponse;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ../../client/components/redirect-status-code */ \"(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst _getcookieparser = __webpack_require__(/*! ../api-utils/get-cookie-parser */ \"(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js\");\nclass BaseNextRequest {\n constructor(method, url, body){\n this.method = method;\n this.url = url;\n this.body = body;\n }\n // Utils implemented using the abstract methods above\n get cookies() {\n if (this._cookies) return this._cookies;\n return this._cookies = (0, _getcookieparser.getCookieParser)(this.headers)();\n }\n}\nclass BaseNextResponse {\n constructor(destination){\n this.destination = destination;\n }\n // Utils implemented using the abstract methods above\n redirect(destination, statusCode) {\n this.setHeader('Location', destination);\n this.statusCode = statusCode;\n // Since IE11 doesn't support the 308 header add backwards\n // compatibility using refresh header\n if (statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect) {\n this.setHeader('Refresh', `0;url=${destination}`);\n }\n return this;\n }\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsNEJBQTRCLG1CQUFPLENBQUMsOEhBQThDO0FBQ2xGLHlCQUF5QixtQkFBTyxDQUFDLDRHQUFnQztBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLE1BQU0sWUFBWTtBQUMzRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYmFzZS1odHRwL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQmFzZU5leHRSZXF1ZXN0OiBudWxsLFxuICAgIEJhc2VOZXh0UmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQmFzZU5leHRSZXF1ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEJhc2VOZXh0UmVxdWVzdDtcbiAgICB9LFxuICAgIEJhc2VOZXh0UmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQmFzZU5leHRSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWRpcmVjdHN0YXR1c2NvZGUgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3Qtc3RhdHVzLWNvZGVcIik7XG5jb25zdCBfZ2V0Y29va2llcGFyc2VyID0gcmVxdWlyZShcIi4uL2FwaS11dGlscy9nZXQtY29va2llLXBhcnNlclwiKTtcbmNsYXNzIEJhc2VOZXh0UmVxdWVzdCB7XG4gICAgY29uc3RydWN0b3IobWV0aG9kLCB1cmwsIGJvZHkpe1xuICAgICAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgdGhpcy51cmwgPSB1cmw7XG4gICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgfVxuICAgIC8vIFV0aWxzIGltcGxlbWVudGVkIHVzaW5nIHRoZSBhYnN0cmFjdCBtZXRob2RzIGFib3ZlXG4gICAgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLl9jb29raWVzKSByZXR1cm4gdGhpcy5fY29va2llcztcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nvb2tpZXMgPSAoMCwgX2dldGNvb2tpZXBhcnNlci5nZXRDb29raWVQYXJzZXIpKHRoaXMuaGVhZGVycykoKTtcbiAgICB9XG59XG5jbGFzcyBCYXNlTmV4dFJlc3BvbnNlIHtcbiAgICBjb25zdHJ1Y3RvcihkZXN0aW5hdGlvbil7XG4gICAgICAgIHRoaXMuZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjtcbiAgICB9XG4gICAgLy8gVXRpbHMgaW1wbGVtZW50ZWQgdXNpbmcgdGhlIGFic3RyYWN0IG1ldGhvZHMgYWJvdmVcbiAgICByZWRpcmVjdChkZXN0aW5hdGlvbiwgc3RhdHVzQ29kZSkge1xuICAgICAgICB0aGlzLnNldEhlYWRlcignTG9jYXRpb24nLCBkZXN0aW5hdGlvbik7XG4gICAgICAgIHRoaXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gICAgICAgIC8vIFNpbmNlIElFMTEgZG9lc24ndCBzdXBwb3J0IHRoZSAzMDggaGVhZGVyIGFkZCBiYWNrd2FyZHNcbiAgICAgICAgLy8gY29tcGF0aWJpbGl0eSB1c2luZyByZWZyZXNoIGhlYWRlclxuICAgICAgICBpZiAoc3RhdHVzQ29kZSA9PT0gX3JlZGlyZWN0c3RhdHVzY29kZS5SZWRpcmVjdFN0YXR1c0NvZGUuUGVybWFuZW50UmVkaXJlY3QpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0SGVhZGVyKCdSZWZyZXNoJywgYDA7dXJsPSR7ZGVzdGluYXRpb259YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/base-http/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/base-http/node.js":
/*!*********************************************************!*\
!*** ./node_modules/next/dist/server/base-http/node.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NodeNextRequest: function() {\n return NodeNextRequest;\n },\n NodeNextResponse: function() {\n return NodeNextResponse;\n }\n});\nconst _apiutils = __webpack_require__(/*! ../api-utils */ \"(rsc)/./node_modules/next/dist/server/api-utils/index.js\");\nconst _requestmeta = __webpack_require__(/*! ../request-meta */ \"(rsc)/./node_modules/next/dist/server/request-meta.js\");\nconst _index = __webpack_require__(/*! ./index */ \"(rsc)/./node_modules/next/dist/server/base-http/index.js\");\nlet prop;\nclass NodeNextRequest extends _index.BaseNextRequest {\n static #_ = prop = _NEXT_REQUEST_META = _requestmeta.NEXT_REQUEST_META;\n constructor(_req){\n var _this__req;\n super(_req.method.toUpperCase(), _req.url, _req), this._req = _req, this.headers = this._req.headers, this.fetchMetrics = (_this__req = this._req) == null ? void 0 : _this__req.fetchMetrics, this[_NEXT_REQUEST_META] = this._req[_requestmeta.NEXT_REQUEST_META] || {}, this.streaming = false;\n }\n get originalRequest() {\n // Need to mimic these changes to the original req object for places where we use it:\n // render.tsx, api/ssg requests\n this._req[_requestmeta.NEXT_REQUEST_META] = this[_requestmeta.NEXT_REQUEST_META];\n this._req.url = this.url;\n this._req.cookies = this.cookies;\n return this._req;\n }\n set originalRequest(value) {\n this._req = value;\n }\n /**\n * Returns the request body as a Web Readable Stream. The body here can only\n * be read once as the body will start flowing as soon as the data handler\n * is attached.\n *\n * @internal\n */ stream() {\n if (this.streaming) {\n throw Object.defineProperty(new Error('Invariant: NodeNextRequest.stream() can only be called once'), \"__NEXT_ERROR_CODE\", {\n value: \"E467\",\n enumerable: false,\n configurable: true\n });\n }\n this.streaming = true;\n return new ReadableStream({\n start: (controller)=>{\n this._req.on('data', (chunk)=>{\n controller.enqueue(new Uint8Array(chunk));\n });\n this._req.on('end', ()=>{\n controller.close();\n });\n this._req.on('error', (err)=>{\n controller.error(err);\n });\n }\n });\n }\n}\nclass NodeNextResponse extends _index.BaseNextResponse {\n get originalResponse() {\n if (_apiutils.SYMBOL_CLEARED_COOKIES in this) {\n this._res[_apiutils.SYMBOL_CLEARED_COOKIES] = this[_apiutils.SYMBOL_CLEARED_COOKIES];\n }\n return this._res;\n }\n constructor(_res){\n super(_res), this._res = _res, this.textBody = undefined;\n }\n get sent() {\n return this._res.finished || this._res.headersSent;\n }\n get statusCode() {\n return this._res.statusCode;\n }\n set statusCode(value) {\n this._res.statusCode = value;\n }\n get statusMessage() {\n return this._res.statusMessage;\n }\n set statusMessage(value) {\n this._res.statusMessage = value;\n }\n setHeader(name, value) {\n this._res.setHeader(name, value);\n return this;\n }\n removeHeader(name) {\n this._res.removeHeader(name);\n return this;\n }\n getHeaderValues(name) {\n const values = this._res.getHeader(name);\n if (values === undefined) return undefined;\n return (Array.isArray(values) ? values : [\n values\n ]).map((value)=>value.toString());\n }\n hasHeader(name) {\n return this._res.hasHeader(name);\n }\n getHeader(name) {\n const values = this.getHeaderValues(name);\n return Array.isArray(values) ? values.join(',') : undefined;\n }\n getHeaders() {\n return this._res.getHeaders();\n }\n appendHeader(name, value) {\n const currentValues = this.getHeaderValues(name) ?? [];\n if (!currentValues.includes(value)) {\n this._res.setHeader(name, [\n ...currentValues,\n value\n ]);\n }\n return this;\n }\n body(value) {\n this.textBody = value;\n return this;\n }\n send() {\n this._res.end(this.textBody);\n }\n onClose(callback) {\n this.originalResponse.on('close', callback);\n }\n}\nvar _NEXT_REQUEST_META;\n\n//# sourceMappingURL=node.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvbm9kZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxrQkFBa0IsbUJBQU8sQ0FBQyw4RUFBYztBQUN4QyxxQkFBcUIsbUJBQU8sQ0FBQyw4RUFBaUI7QUFDOUMsZUFBZSxtQkFBTyxDQUFDLHlFQUFTO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpUkFBaVI7QUFDalI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYmFzZS1odHRwL25vZGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBOb2RlTmV4dFJlcXVlc3Q6IG51bGwsXG4gICAgTm9kZU5leHRSZXNwb25zZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBOb2RlTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTm9kZU5leHRSZXF1ZXN0O1xuICAgIH0sXG4gICAgTm9kZU5leHRSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOb2RlTmV4dFJlc3BvbnNlO1xuICAgIH1cbn0pO1xuY29uc3QgX2FwaXV0aWxzID0gcmVxdWlyZShcIi4uL2FwaS11dGlsc1wiKTtcbmNvbnN0IF9yZXF1ZXN0bWV0YSA9IHJlcXVpcmUoXCIuLi9yZXF1ZXN0LW1ldGFcIik7XG5jb25zdCBfaW5kZXggPSByZXF1aXJlKFwiLi9pbmRleFwiKTtcbmxldCBwcm9wO1xuY2xhc3MgTm9kZU5leHRSZXF1ZXN0IGV4dGVuZHMgX2luZGV4LkJhc2VOZXh0UmVxdWVzdCB7XG4gICAgc3RhdGljICNfID0gcHJvcCA9IF9ORVhUX1JFUVVFU1RfTUVUQSA9IF9yZXF1ZXN0bWV0YS5ORVhUX1JFUVVFU1RfTUVUQTtcbiAgICBjb25zdHJ1Y3RvcihfcmVxKXtcbiAgICAgICAgdmFyIF90aGlzX19yZXE7XG4gICAgICAgIHN1cGVyKF9yZXEubWV0aG9kLnRvVXBwZXJDYXNlKCksIF9yZXEudXJsLCBfcmVxKSwgdGhpcy5fcmVxID0gX3JlcSwgdGhpcy5oZWFkZXJzID0gdGhpcy5fcmVxLmhlYWRlcnMsIHRoaXMuZmV0Y2hNZXRyaWNzID0gKF90aGlzX19yZXEgPSB0aGlzLl9yZXEpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19fcmVxLmZldGNoTWV0cmljcywgdGhpc1tfTkVYVF9SRVFVRVNUX01FVEFdID0gdGhpcy5fcmVxW19yZXF1ZXN0bWV0YS5ORVhUX1JFUVVFU1RfTUVUQV0gfHwge30sIHRoaXMuc3RyZWFtaW5nID0gZmFsc2U7XG4gICAgfVxuICAgIGdldCBvcmlnaW5hbFJlcXVlc3QoKSB7XG4gICAgICAgIC8vIE5lZWQgdG8gbWltaWMgdGhlc2UgY2hhbmdlcyB0byB0aGUgb3JpZ2luYWwgcmVxIG9iamVjdCBmb3IgcGxhY2VzIHdoZXJlIHdlIHVzZSBpdDpcbiAgICAgICAgLy8gcmVuZGVyLnRzeCwgYXBpL3NzZyByZXF1ZXN0c1xuICAgICAgICB0aGlzLl9yZXFbX3JlcXVlc3RtZXRhLk5FWFRfUkVRVUVTVF9NRVRBXSA9IHRoaXNbX3JlcXVlc3RtZXRhLk5FWFRfUkVRVUVTVF9NRVRBXTtcbiAgICAgICAgdGhpcy5fcmVxLnVybCA9IHRoaXMudXJsO1xuICAgICAgICB0aGlzLl9yZXEuY29va2llcyA9IHRoaXMuY29va2llcztcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcTtcbiAgICB9XG4gICAgc2V0IG9yaWdpbmFsUmVxdWVzdCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yZXEgPSB2YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJlcXVlc3QgYm9keSBhcyBhIFdlYiBSZWFkYWJsZSBTdHJlYW0uIFRoZSBib2R5IGhlcmUgY2FuIG9ubHlcbiAgICogYmUgcmVhZCBvbmNlIGFzIHRoZSBib2R5IHdpbGwgc3RhcnQgZmxvd2luZyBhcyBzb29uIGFzIHRoZSBkYXRhIGhhbmRsZXJcbiAgICogaXMgYXR0YWNoZWQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi8gc3RyZWFtKCkge1xuICAgICAgICBpZiAodGhpcy5zdHJlYW1pbmcpIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogTm9kZU5leHRSZXF1ZXN0LnN0cmVhbSgpIGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU0NjdcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RyZWFtaW5nID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgICAgICBzdGFydDogKGNvbnRyb2xsZXIpPT57XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVxLm9uKCdkYXRhJywgKGNodW5rKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUobmV3IFVpbnQ4QXJyYXkoY2h1bmspKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXEub24oJ2VuZCcsICgpPT57XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXEub24oJ2Vycm9yJywgKGVycik9PntcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5jbGFzcyBOb2RlTmV4dFJlc3BvbnNlIGV4dGVuZHMgX2luZGV4LkJhc2VOZXh0UmVzcG9uc2Uge1xuICAgIGdldCBvcmlnaW5hbFJlc3BvbnNlKCkge1xuICAgICAgICBpZiAoX2FwaXV0aWxzLlNZTUJPTF9DTEVBUkVEX0NPT0tJRVMgaW4gdGhpcykge1xuICAgICAgICAgICAgdGhpcy5fcmVzW19hcGl1dGlscy5TWU1CT0xfQ0xFQVJFRF9DT09LSUVTXSA9IHRoaXNbX2FwaXV0aWxzLlNZTUJPTF9DTEVBUkVEX0NPT0tJRVNdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXM7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKF9yZXMpe1xuICAgICAgICBzdXBlcihfcmVzKSwgdGhpcy5fcmVzID0gX3JlcywgdGhpcy50ZXh0Qm9keSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZ2V0IHNlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXMuZmluaXNoZWQgfHwgdGhpcy5fcmVzLmhlYWRlcnNTZW50O1xuICAgIH1cbiAgICBnZXQgc3RhdHVzQ29kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlcy5zdGF0dXNDb2RlO1xuICAgIH1cbiAgICBzZXQgc3RhdHVzQ29kZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yZXMuc3RhdHVzQ29kZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgc3RhdHVzTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlcy5zdGF0dXNNZXNzYWdlO1xuICAgIH1cbiAgICBzZXQgc3RhdHVzTWVzc2FnZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yZXMuc3RhdHVzTWVzc2FnZSA9IHZhbHVlO1xuICAgIH1cbiAgICBzZXRIZWFkZXIobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5fcmVzLnNldEhlYWRlcihuYW1lLCB2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICByZW1vdmVIZWFkZXIobmFtZSkge1xuICAgICAgICB0aGlzLl9yZXMucmVtb3ZlSGVhZGVyKG5hbWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgZ2V0SGVhZGVyVmFsdWVzKG5hbWUpIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5fcmVzLmdldEhlYWRlcihuYW1lKTtcbiAgICAgICAgaWYgKHZhbHVlcyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4gKEFycmF5LmlzQXJyYXkodmFsdWVzKSA/IHZhbHVlcyA6IFtcbiAgICAgICAgICAgIHZhbHVlc1xuICAgICAgICBdKS5tYXAoKHZhbHVlKT0+dmFsdWUudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIGhhc0hlYWRlcihuYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXMuaGFzSGVhZGVyKG5hbWUpO1xuICAgIH1cbiAgICBnZXRIZWFkZXIobmFtZSkge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldEhlYWRlclZhbHVlcyhuYW1lKTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWVzKSA/IHZhbHVlcy5qb2luKCcsJykgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGdldEhlYWRlcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXMuZ2V0SGVhZGVycygpO1xuICAgIH1cbiAgICBhcHBlbmRIZWFkZXIobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlcyA9IHRoaXMuZ2V0SGVhZGVyVmFsdWVzKG5hbWUpID8/IFtdO1xuICAgICAgICBpZiAoIWN1cnJlbnRWYWx1ZXMuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXMuc2V0SGVhZGVyKG5hbWUsIFtcbiAgICAgICAgICAgICAgICAuLi5jdXJyZW50VmFsdWVzLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gICAgYm9keSh2YWx1ZSkge1xuICAgICAgICB0aGlzLnRleHRCb2R5ID0gdmFsdWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICBzZW5kKCkge1xuICAgICAgICB0aGlzLl9yZXMuZW5kKHRoaXMudGV4dEJvZHkpO1xuICAgIH1cbiAgICBvbkNsb3NlKGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMub3JpZ2luYWxSZXNwb25zZS5vbignY2xvc2UnLCBjYWxsYmFjayk7XG4gICAgfVxufVxudmFyIF9ORVhUX1JFUVVFU1RfTUVUQTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9kZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/base-http/node.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/client-component-renderer-logger.js":
/*!***************************************************************************!*\
!*** ./node_modules/next/dist/server/client-component-renderer-logger.js ***!
\***************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getClientComponentLoaderMetrics: function() {\n return getClientComponentLoaderMetrics;\n },\n wrapClientComponentLoader: function() {\n return wrapClientComponentLoader;\n }\n});\n// Combined load times for loading client components\nlet clientComponentLoadStart = 0;\nlet clientComponentLoadTimes = 0;\nlet clientComponentLoadCount = 0;\nfunction wrapClientComponentLoader(ComponentMod) {\n if (!('performance' in globalThis)) {\n return ComponentMod.__next_app__;\n }\n return {\n require: (...args)=>{\n const startTime = performance.now();\n if (clientComponentLoadStart === 0) {\n clientComponentLoadStart = startTime;\n }\n try {\n clientComponentLoadCount += 1;\n return ComponentMod.__next_app__.require(...args);\n } finally{\n clientComponentLoadTimes += performance.now() - startTime;\n }\n },\n loadChunk: (...args)=>{\n const startTime = performance.now();\n const result = ComponentMod.__next_app__.loadChunk(...args);\n // Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity.\n // We only need to know when it's settled.\n result.finally(()=>{\n clientComponentLoadTimes += performance.now() - startTime;\n });\n return result;\n }\n };\n}\nfunction getClientComponentLoaderMetrics(options = {}) {\n const metrics = clientComponentLoadStart === 0 ? undefined : {\n clientComponentLoadStart,\n clientComponentLoadTimes,\n clientComponentLoadCount\n };\n if (options.reset) {\n clientComponentLoadStart = 0;\n clientComponentLoadTimes = 0;\n clientComponentLoadCount = 0;\n }\n return metrics;\n}\n\n//# sourceMappingURL=client-component-renderer-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3M6IG51bGwsXG4gICAgd3JhcENsaWVudENvbXBvbmVudExvYWRlcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBnZXRDbGllbnRDb21wb25lbnRMb2FkZXJNZXRyaWNzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3M7XG4gICAgfSxcbiAgICB3cmFwQ2xpZW50Q29tcG9uZW50TG9hZGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHdyYXBDbGllbnRDb21wb25lbnRMb2FkZXI7XG4gICAgfVxufSk7XG4vLyBDb21iaW5lZCBsb2FkIHRpbWVzIGZvciBsb2FkaW5nIGNsaWVudCBjb21wb25lbnRzXG5sZXQgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID0gMDtcbmxldCBjbGllbnRDb21wb25lbnRMb2FkVGltZXMgPSAwO1xubGV0IGNsaWVudENvbXBvbmVudExvYWRDb3VudCA9IDA7XG5mdW5jdGlvbiB3cmFwQ2xpZW50Q29tcG9uZW50TG9hZGVyKENvbXBvbmVudE1vZCkge1xuICAgIGlmICghKCdwZXJmb3JtYW5jZScgaW4gZ2xvYmFsVGhpcykpIHtcbiAgICAgICAgcmV0dXJuIENvbXBvbmVudE1vZC5fX25leHRfYXBwX187XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmU6ICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgICAgICBpZiAoY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID0gc3RhcnRUaW1lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkQ291bnQgKz0gMTtcbiAgICAgICAgICAgICAgICByZXR1cm4gQ29tcG9uZW50TW9kLl9fbmV4dF9hcHBfXy5yZXF1aXJlKC4uLmFyZ3MpO1xuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIGNsaWVudENvbXBvbmVudExvYWRUaW1lcyArPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbG9hZENodW5rOiAoLi4uYXJncyk9PntcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gQ29tcG9uZW50TW9kLl9fbmV4dF9hcHBfXy5sb2FkQ2h1bmsoLi4uYXJncyk7XG4gICAgICAgICAgICAvLyBBdm9pZCB3cmFwcGluZyBgbG9hZENodW5rYCdzIHJlc3VsdCBpbiBhbiBleHRyYSBwcm9taXNlIGluIGNhc2Ugc29tZXRoaW5nIGxpa2UgUmVhY3QgZGVwZW5kcyBvbiBpdHMgaWRlbnRpdHkuXG4gICAgICAgICAgICAvLyBXZSBvbmx5IG5lZWQgdG8ga25vdyB3aGVuIGl0J3Mgc2V0dGxlZC5cbiAgICAgICAgICAgIHJlc3VsdC5maW5hbGx5KCgpPT57XG4gICAgICAgICAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzICs9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGdldENsaWVudENvbXBvbmVudExvYWRlck1ldHJpY3Mob3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgbWV0cmljcyA9IGNsaWVudENvbXBvbmVudExvYWRTdGFydCA9PT0gMCA/IHVuZGVmaW5lZCA6IHtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0LFxuICAgICAgICBjbGllbnRDb21wb25lbnRMb2FkVGltZXMsXG4gICAgICAgIGNsaWVudENvbXBvbmVudExvYWRDb3VudFxuICAgIH07XG4gICAgaWYgKG9wdGlvbnMucmVzZXQpIHtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0ID0gMDtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZFRpbWVzID0gMDtcbiAgICAgICAgY2xpZW50Q29tcG9uZW50TG9hZENvdW50ID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIG1ldHJpY3M7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsaWVudC1jb21wb25lbnQtcmVuZGVyZXItbG9nZ2VyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/client-component-renderer-logger.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js ***!
\*****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createDedupedByCallsiteServerErrorLoggerDev\", ({\n enumerable: true,\n get: function() {\n return createDedupedByCallsiteServerErrorLoggerDev;\n }\n}));\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nconst errorRef = {\n current: null\n};\n// React.cache is currently only available in canary/experimental React channels.\nconst cache = typeof _react.cache === 'function' ? _react.cache : (fn)=>fn;\n// When Dynamic IO is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = false ? 0 : console.warn;\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n(key)=>{\n try {\n logErrorOrWarn(errorRef.current);\n } finally{\n errorRef.current = null;\n }\n});\nfunction createDedupedByCallsiteServerErrorLoggerDev(getMessage) {\n return function logDedupedError(...args) {\n const message = getMessage(...args);\n if (true) {\n var _stack;\n const callStackFrames = (_stack = new Error().stack) == null ? void 0 : _stack.split('\\n');\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message);\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // <userland callsite>\n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4];\n errorRef.current = message;\n flushCurrentErrorIfNew(key);\n }\n } else {}\n };\n}\n\n//# sourceMappingURL=create-deduped-by-callsite-server-error-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0VBQThFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLE1BQTZCLEdBQUcsQ0FBYTtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsS0FBSyxFQUVOO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvY3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXZcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXY7XG4gICAgfVxufSk7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICAgIH1cbiAgICB2YXIgbmV3T2JqID0ge1xuICAgICAgICBfX3Byb3RvX186IG51bGxcbiAgICB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuY29uc3QgZXJyb3JSZWYgPSB7XG4gICAgY3VycmVudDogbnVsbFxufTtcbi8vIFJlYWN0LmNhY2hlIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBjYW5hcnkvZXhwZXJpbWVudGFsIFJlYWN0IGNoYW5uZWxzLlxuY29uc3QgY2FjaGUgPSB0eXBlb2YgX3JlYWN0LmNhY2hlID09PSAnZnVuY3Rpb24nID8gX3JlYWN0LmNhY2hlIDogKGZuKT0+Zm47XG4vLyBXaGVuIER5bmFtaWMgSU8gaXMgZW5hYmxlZCwgd2UgcmVjb3JkIHRoZXNlIGFzIGVycm9ycyBzbyB0aGF0IHRoZXlcbi8vIGFyZSBjYXB0dXJlZCBieSB0aGUgZGV2IG92ZXJsYXkgYXMgaXQncyBtb3JlIGNyaXRpY2FsIHRvIGZpeCB0aGVzZVxuLy8gd2hlbiBlbmFibGVkLlxuY29uc3QgbG9nRXJyb3JPcldhcm4gPSBwcm9jZXNzLmVudi5fX05FWFRfRFlOQU1JQ19JTyA/IGNvbnNvbGUuZXJyb3IgOiBjb25zb2xlLndhcm47XG4vLyBXZSBkb24ndCB3YW50IHRvIGRlZHVwZSBhY3Jvc3MgcmVxdWVzdHMuXG4vLyBUaGUgZGV2ZWxvcGVyIG1pZ2h0J3ZlIGp1c3QgYXR0ZW1wdGVkIHRvIGZpeCB0aGUgd2FybmluZyBzbyB3ZSBzaG91bGQgd2FybiBhZ2FpbiBpZiBpdCBzdGlsbCBoYXBwZW5zLlxuY29uc3QgZmx1c2hDdXJyZW50RXJyb3JJZk5ldyA9IGNhY2hlKC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gY2FjaGUga2V5XG4oa2V5KT0+e1xuICAgIHRyeSB7XG4gICAgICAgIGxvZ0Vycm9yT3JXYXJuKGVycm9yUmVmLmN1cnJlbnQpO1xuICAgIH0gZmluYWxseXtcbiAgICAgICAgZXJyb3JSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBjcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KGdldE1lc3NhZ2UpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gbG9nRGVkdXBlZEVycm9yKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGdldE1lc3NhZ2UoLi4uYXJncyk7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgX3N0YWNrO1xuICAgICAgICAgICAgY29uc3QgY2FsbFN0YWNrRnJhbWVzID0gKF9zdGFjayA9IG5ldyBFcnJvcigpLnN0YWNrKSA9PSBudWxsID8gdm9pZCAwIDogX3N0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgIGlmIChjYWxsU3RhY2tGcmFtZXMgPT09IHVuZGVmaW5lZCB8fCBjYWxsU3RhY2tGcmFtZXMubGVuZ3RoIDwgNCkge1xuICAgICAgICAgICAgICAgIGxvZ0Vycm9yT3JXYXJuKG1lc3NhZ2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBFcnJvcjpcbiAgICAgICAgICAgICAgICAvLyAgIGxvZ0RlZHVwZWRFcnJvclxuICAgICAgICAgICAgICAgIC8vICAgYXN5bmNBcGlCZWluZ0FjY2Vzc2VkU3luY2hyb25vdXNseVxuICAgICAgICAgICAgICAgIC8vICAgPHVzZXJsYW5kIGNhbGxzaXRlPlxuICAgICAgICAgICAgICAgIC8vIFRPRE86IFRoaXMgYnJlYWtzIGlmIHNvdXJjZW1hcHMgd2l0aCBpZ25vcmUgbGlzdHMgYXJlIGVuYWJsZWQuXG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gY2FsbFN0YWNrRnJhbWVzWzRdO1xuICAgICAgICAgICAgICAgIGVycm9yUmVmLmN1cnJlbnQgPSBtZXNzYWdlO1xuICAgICAgICAgICAgICAgIGZsdXNoQ3VycmVudEVycm9ySWZOZXcoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvZ0Vycm9yT3JXYXJuKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/server/dynamic-rendering-utils.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isHangingPromiseRejectionError: function() {\n return isHangingPromiseRejectionError;\n },\n makeHangingPromise: function() {\n return makeHangingPromise;\n }\n});\nfunction isHangingPromiseRejectionError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === HANGING_PROMISE_REJECTION;\n}\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION';\nclass HangingPromiseRejectionError extends Error {\n constructor(expression){\n super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context.`), this.expression = expression, this.digest = HANGING_PROMISE_REJECTION;\n }\n}\nconst abortListenersBySignal = new WeakMap();\nfunction makeHangingPromise(signal, expression) {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(expression));\n } else {\n const hangingPromise = new Promise((_, reject)=>{\n const boundRejection = reject.bind(null, new HangingPromiseRejectionError(expression));\n let currentListeners = abortListenersBySignal.get(signal);\n if (currentListeners) {\n currentListeners.push(boundRejection);\n } else {\n const listeners = [\n boundRejection\n ];\n abortListenersBySignal.set(signal, listeners);\n signal.addEventListener('abort', ()=>{\n for(let i = 0; i < listeners.length; i++){\n listeners[i]();\n }\n }, {\n once: true\n });\n }\n });\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject);\n return hangingPromise;\n }\n}\nfunction ignoreReject() {}\n\n//# sourceMappingURL=dynamic-rendering-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9keW5hbWljLXJlbmRlcmluZy11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsWUFBWSxzR0FBc0csWUFBWTtBQUNwSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHNCQUFzQjtBQUN6RDtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yOiBudWxsLFxuICAgIG1ha2VIYW5naW5nUHJvbWlzZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc0hhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yO1xuICAgIH0sXG4gICAgbWFrZUhhbmdpbmdQcm9taXNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VIYW5naW5nUHJvbWlzZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGlzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcihlcnIpIHtcbiAgICBpZiAodHlwZW9mIGVyciAhPT0gJ29iamVjdCcgfHwgZXJyID09PSBudWxsIHx8ICEoJ2RpZ2VzdCcgaW4gZXJyKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBlcnIuZGlnZXN0ID09PSBIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OO1xufVxuY29uc3QgSEFOR0lOR19QUk9NSVNFX1JFSkVDVElPTiA9ICdIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OJztcbmNsYXNzIEhhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoZXhwcmVzc2lvbil7XG4gICAgICAgIHN1cGVyKGBEdXJpbmcgcHJlcmVuZGVyaW5nLCAke2V4cHJlc3Npb259IHJlamVjdHMgd2hlbiB0aGUgcHJlcmVuZGVyIGlzIGNvbXBsZXRlLiBUeXBpY2FsbHkgdGhlc2UgZXJyb3JzIGFyZSBoYW5kbGVkIGJ5IFJlYWN0IGJ1dCBpZiB5b3UgbW92ZSAke2V4cHJlc3Npb259IHRvIGEgZGlmZmVyZW50IGNvbnRleHQgYnkgdXNpbmcgXFxgc2V0VGltZW91dFxcYCwgXFxgYWZ0ZXJcXGAsIG9yIHNpbWlsYXIgZnVuY3Rpb25zIHlvdSBtYXkgb2JzZXJ2ZSB0aGlzIGVycm9yIGFuZCB5b3Ugc2hvdWxkIGhhbmRsZSBpdCBpbiB0aGF0IGNvbnRleHQuYCksIHRoaXMuZXhwcmVzc2lvbiA9IGV4cHJlc3Npb24sIHRoaXMuZGlnZXN0ID0gSEFOR0lOR19QUk9NSVNFX1JFSkVDVElPTjtcbiAgICB9XG59XG5jb25zdCBhYm9ydExpc3RlbmVyc0J5U2lnbmFsID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIG1ha2VIYW5naW5nUHJvbWlzZShzaWduYWwsIGV4cHJlc3Npb24pIHtcbiAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yKGV4cHJlc3Npb24pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBoYW5naW5nUHJvbWlzZSA9IG5ldyBQcm9taXNlKChfLCByZWplY3QpPT57XG4gICAgICAgICAgICBjb25zdCBib3VuZFJlamVjdGlvbiA9IHJlamVjdC5iaW5kKG51bGwsIG5ldyBIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yKGV4cHJlc3Npb24pKTtcbiAgICAgICAgICAgIGxldCBjdXJyZW50TGlzdGVuZXJzID0gYWJvcnRMaXN0ZW5lcnNCeVNpZ25hbC5nZXQoc2lnbmFsKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50TGlzdGVuZXJzKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudExpc3RlbmVycy5wdXNoKGJvdW5kUmVqZWN0aW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdGVuZXJzID0gW1xuICAgICAgICAgICAgICAgICAgICBib3VuZFJlamVjdGlvblxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYWJvcnRMaXN0ZW5lcnNCeVNpZ25hbC5zZXQoc2lnbmFsLCBsaXN0ZW5lcnMpO1xuICAgICAgICAgICAgICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsICgpPT57XG4gICAgICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBsaXN0ZW5lcnMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXJzW2ldKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgIG9uY2U6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFdlIGFyZSBmaW5lIGlmIG5vIG9uZSBhY3R1YWxseSBhd2FpdHMgdGhpcyBwcm9taXNlLiBXZSBzaG91bGRuJ3QgY29uc2lkZXIgdGhpcyBhbiB1bmhhbmRsZWQgcmVqZWN0aW9uIHNvXG4gICAgICAgIC8vIHdlIGF0dGFjaCBhIG5vb3AgY2F0Y2ggaGFuZGxlciBoZXJlIHRvIHN1cHByZXNzIHRoaXMgd2FybmluZy4gSWYgeW91IGFjdHVhbGx5IGF3YWl0IHNvbWV3aGVyZSBvciBjb25zdHJ1Y3RcbiAgICAgICAgLy8geW91ciBvd24gcHJvbWlzZSBvdXQgb2YgaXQgeW91J2xsIG5lZWQgdG8gZW5zdXJlIHlvdSBoYW5kbGUgdGhlIGVycm9yIHdoZW4gaXQgcmVqZWN0cy5cbiAgICAgICAgaGFuZ2luZ1Byb21pc2UuY2F0Y2goaWdub3JlUmVqZWN0KTtcbiAgICAgICAgcmV0dXJuIGhhbmdpbmdQcm9taXNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlnbm9yZVJlamVjdCgpIHt9XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWR5bmFtaWMtcmVuZGVyaW5nLXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/instrumentation/utils.js":
/*!****************************************************************!*\
!*** ./node_modules/next/dist/server/instrumentation/utils.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRevalidateReason\", ({\n enumerable: true,\n get: function() {\n return getRevalidateReason;\n }\n}));\nfunction getRevalidateReason(params) {\n if (params.isOnDemandRevalidate) {\n return 'on-demand';\n }\n if (params.isRevalidate) {\n return 'stale';\n }\n return undefined;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9pbnN0cnVtZW50YXRpb24vdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix1REFBc0Q7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2luc3RydW1lbnRhdGlvbi91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldFJldmFsaWRhdGVSZWFzb25cIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFJldmFsaWRhdGVSZWFzb247XG4gICAgfVxufSk7XG5mdW5jdGlvbiBnZXRSZXZhbGlkYXRlUmVhc29uKHBhcmFtcykge1xuICAgIGlmIChwYXJhbXMuaXNPbkRlbWFuZFJldmFsaWRhdGUpIHtcbiAgICAgICAgcmV0dXJuICdvbi1kZW1hbmQnO1xuICAgIH1cbiAgICBpZiAocGFyYW1zLmlzUmV2YWxpZGF0ZSkge1xuICAgICAgICByZXR1cm4gJ3N0YWxlJztcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/instrumentation/utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/app-dir-module.js":
/*!*************************************************************!*\
!*** ./node_modules/next/dist/server/lib/app-dir-module.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getComponentTypeModule: function() {\n return getComponentTypeModule;\n },\n getLayoutOrPageModule: function() {\n return getLayoutOrPageModule;\n }\n});\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nasync function getLayoutOrPageModule(loaderTree) {\n const { layout, page, defaultPage } = loaderTree[2];\n const isLayout = typeof layout !== 'undefined';\n const isPage = typeof page !== 'undefined';\n const isDefaultPage = typeof defaultPage !== 'undefined' && loaderTree[0] === _segment.DEFAULT_SEGMENT_KEY;\n let mod = undefined;\n let modType = undefined;\n let filePath = undefined;\n if (isLayout) {\n mod = await layout[0]();\n modType = 'layout';\n filePath = layout[1];\n } else if (isPage) {\n mod = await page[0]();\n modType = 'page';\n filePath = page[1];\n } else if (isDefaultPage) {\n mod = await defaultPage[0]();\n modType = 'page';\n filePath = defaultPage[1];\n }\n return {\n mod,\n modType,\n filePath\n };\n}\nasync function getComponentTypeModule(loaderTree, moduleType) {\n const { [moduleType]: module1 } = loaderTree[2];\n if (typeof module1 !== 'undefined') {\n return await module1[0]();\n }\n return undefined;\n}\n\n//# sourceMappingURL=app-dir-module.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvYXBwLWRpci1tb2R1bGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsc0ZBQTBCO0FBQ25EO0FBQ0EsWUFBWSw0QkFBNEI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHdCQUF3QjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvYXBwLWRpci1tb2R1bGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRDb21wb25lbnRUeXBlTW9kdWxlOiBudWxsLFxuICAgIGdldExheW91dE9yUGFnZU1vZHVsZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBnZXRDb21wb25lbnRUeXBlTW9kdWxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudFR5cGVNb2R1bGU7XG4gICAgfSxcbiAgICBnZXRMYXlvdXRPclBhZ2VNb2R1bGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0TGF5b3V0T3JQYWdlTW9kdWxlO1xuICAgIH1cbn0pO1xuY29uc3QgX3NlZ21lbnQgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50XCIpO1xuYXN5bmMgZnVuY3Rpb24gZ2V0TGF5b3V0T3JQYWdlTW9kdWxlKGxvYWRlclRyZWUpIHtcbiAgICBjb25zdCB7IGxheW91dCwgcGFnZSwgZGVmYXVsdFBhZ2UgfSA9IGxvYWRlclRyZWVbMl07XG4gICAgY29uc3QgaXNMYXlvdXQgPSB0eXBlb2YgbGF5b3V0ICE9PSAndW5kZWZpbmVkJztcbiAgICBjb25zdCBpc1BhZ2UgPSB0eXBlb2YgcGFnZSAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgY29uc3QgaXNEZWZhdWx0UGFnZSA9IHR5cGVvZiBkZWZhdWx0UGFnZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbG9hZGVyVHJlZVswXSA9PT0gX3NlZ21lbnQuREVGQVVMVF9TRUdNRU5UX0tFWTtcbiAgICBsZXQgbW9kID0gdW5kZWZpbmVkO1xuICAgIGxldCBtb2RUeXBlID0gdW5kZWZpbmVkO1xuICAgIGxldCBmaWxlUGF0aCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoaXNMYXlvdXQpIHtcbiAgICAgICAgbW9kID0gYXdhaXQgbGF5b3V0WzBdKCk7XG4gICAgICAgIG1vZFR5cGUgPSAnbGF5b3V0JztcbiAgICAgICAgZmlsZVBhdGggPSBsYXlvdXRbMV07XG4gICAgfSBlbHNlIGlmIChpc1BhZ2UpIHtcbiAgICAgICAgbW9kID0gYXdhaXQgcGFnZVswXSgpO1xuICAgICAgICBtb2RUeXBlID0gJ3BhZ2UnO1xuICAgICAgICBmaWxlUGF0aCA9IHBhZ2VbMV07XG4gICAgfSBlbHNlIGlmIChpc0RlZmF1bHRQYWdlKSB7XG4gICAgICAgIG1vZCA9IGF3YWl0IGRlZmF1bHRQYWdlWzBdKCk7XG4gICAgICAgIG1vZFR5cGUgPSAncGFnZSc7XG4gICAgICAgIGZpbGVQYXRoID0gZGVmYXVsdFBhZ2VbMV07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIG1vZCxcbiAgICAgICAgbW9kVHlwZSxcbiAgICAgICAgZmlsZVBhdGhcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0Q29tcG9uZW50VHlwZU1vZHVsZShsb2FkZXJUcmVlLCBtb2R1bGVUeXBlKSB7XG4gICAgY29uc3QgeyBbbW9kdWxlVHlwZV06IG1vZHVsZTEgfSA9IGxvYWRlclRyZWVbMl07XG4gICAgaWYgKHR5cGVvZiBtb2R1bGUxICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gYXdhaXQgbW9kdWxlMVswXSgpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtZGlyLW1vZHVsZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/app-dir-module.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/cache-control.js":
/*!************************************************************!*\
!*** ./node_modules/next/dist/server/lib/cache-control.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getCacheControlHeader\", ({\n enumerable: true,\n get: function() {\n return getCacheControlHeader;\n }\n}));\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nfunction getCacheControlHeader({ revalidate, expire }) {\n const swrHeader = typeof revalidate === 'number' && expire !== undefined && revalidate < expire ? `, stale-while-revalidate=${expire - revalidate}` : '';\n if (revalidate === 0) {\n return 'private, no-cache, no-store, max-age=0, must-revalidate';\n } else if (typeof revalidate === 'number') {\n return `s-maxage=${revalidate}${swrHeader}`;\n }\n return `s-maxage=${_constants.CACHE_ONE_YEAR}${swrHeader}`;\n}\n\n//# sourceMappingURL=cache-control.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2FjaGUtY29udHJvbC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlEQUF3RDtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxpQ0FBaUMsb0JBQW9CO0FBQ3JELGtJQUFrSSxvQkFBb0I7QUFDdEo7QUFDQTtBQUNBLE1BQU07QUFDTiwyQkFBMkIsV0FBVyxFQUFFLFVBQVU7QUFDbEQ7QUFDQSx1QkFBdUIsMEJBQTBCLEVBQUUsVUFBVTtBQUM3RDs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL2NhY2hlLWNvbnRyb2wuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXRDYWNoZUNvbnRyb2xIZWFkZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldENhY2hlQ29udHJvbEhlYWRlcjtcbiAgICB9XG59KTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vLi4vbGliL2NvbnN0YW50c1wiKTtcbmZ1bmN0aW9uIGdldENhY2hlQ29udHJvbEhlYWRlcih7IHJldmFsaWRhdGUsIGV4cGlyZSB9KSB7XG4gICAgY29uc3Qgc3dySGVhZGVyID0gdHlwZW9mIHJldmFsaWRhdGUgPT09ICdudW1iZXInICYmIGV4cGlyZSAhPT0gdW5kZWZpbmVkICYmIHJldmFsaWRhdGUgPCBleHBpcmUgPyBgLCBzdGFsZS13aGlsZS1yZXZhbGlkYXRlPSR7ZXhwaXJlIC0gcmV2YWxpZGF0ZX1gIDogJyc7XG4gICAgaWYgKHJldmFsaWRhdGUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuICdwcml2YXRlLCBuby1jYWNoZSwgbm8tc3RvcmUsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXZhbGlkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXR1cm4gYHMtbWF4YWdlPSR7cmV2YWxpZGF0ZX0ke3N3ckhlYWRlcn1gO1xuICAgIH1cbiAgICByZXR1cm4gYHMtbWF4YWdlPSR7X2NvbnN0YW50cy5DQUNIRV9PTkVfWUVBUn0ke3N3ckhlYWRlcn1gO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jYWNoZS1jb250cm9sLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/cache-control.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/clone-response.js":
/*!*************************************************************!*\
!*** ./node_modules/next/dist/server/lib/clone-response.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Clones a response by teeing the body so we can return two independent\n * ReadableStreams from it. This avoids the bug in the undici library around\n * response cloning.\n *\n * After cloning, the original response's body will be consumed and closed.\n *\n * @see https://github.com/vercel/next.js/pull/73274\n *\n * @param original - The original response to clone.\n * @returns A tuple containing two independent clones of the original response.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"cloneResponse\", ({\n enumerable: true,\n get: function() {\n return cloneResponse;\n }\n}));\nfunction cloneResponse(original) {\n // If the response has no body, then we can just return the original response\n // twice because it's immutable.\n if (!original.body) {\n return [\n original,\n original\n ];\n }\n const [body1, body2] = original.body.tee();\n const cloned1 = new Response(body1, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers\n });\n Object.defineProperty(cloned1, 'url', {\n value: original.url,\n // How the original response.url behaves\n configurable: true,\n enumerable: true,\n writable: false\n });\n const cloned2 = new Response(body2, {\n status: original.status,\n statusText: original.statusText,\n headers: original.headers\n });\n Object.defineProperty(cloned2, 'url', {\n value: original.url,\n // How the original response.url behaves\n configurable: true,\n enumerable: true,\n writable: false\n });\n return [\n cloned1,\n cloned2\n ];\n}\n\n//# sourceMappingURL=clone-response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2xvbmUtcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGlEQUFnRDtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvY2xvbmUtcmVzcG9uc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDbG9uZXMgYSByZXNwb25zZSBieSB0ZWVpbmcgdGhlIGJvZHkgc28gd2UgY2FuIHJldHVybiB0d28gaW5kZXBlbmRlbnRcbiAqIFJlYWRhYmxlU3RyZWFtcyBmcm9tIGl0LiBUaGlzIGF2b2lkcyB0aGUgYnVnIGluIHRoZSB1bmRpY2kgbGlicmFyeSBhcm91bmRcbiAqIHJlc3BvbnNlIGNsb25pbmcuXG4gKlxuICogQWZ0ZXIgY2xvbmluZywgdGhlIG9yaWdpbmFsIHJlc3BvbnNlJ3MgYm9keSB3aWxsIGJlIGNvbnN1bWVkIGFuZCBjbG9zZWQuXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC83MzI3NFxuICpcbiAqIEBwYXJhbSBvcmlnaW5hbCAtIFRoZSBvcmlnaW5hbCByZXNwb25zZSB0byBjbG9uZS5cbiAqIEByZXR1cm5zIEEgdHVwbGUgY29udGFpbmluZyB0d28gaW5kZXBlbmRlbnQgY2xvbmVzIG9mIHRoZSBvcmlnaW5hbCByZXNwb25zZS5cbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNsb25lUmVzcG9uc2VcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNsb25lUmVzcG9uc2U7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBjbG9uZVJlc3BvbnNlKG9yaWdpbmFsKSB7XG4gICAgLy8gSWYgdGhlIHJlc3BvbnNlIGhhcyBubyBib2R5LCB0aGVuIHdlIGNhbiBqdXN0IHJldHVybiB0aGUgb3JpZ2luYWwgcmVzcG9uc2VcbiAgICAvLyB0d2ljZSBiZWNhdXNlIGl0J3MgaW1tdXRhYmxlLlxuICAgIGlmICghb3JpZ2luYWwuYm9keSkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgb3JpZ2luYWwsXG4gICAgICAgICAgICBvcmlnaW5hbFxuICAgICAgICBdO1xuICAgIH1cbiAgICBjb25zdCBbYm9keTEsIGJvZHkyXSA9IG9yaWdpbmFsLmJvZHkudGVlKCk7XG4gICAgY29uc3QgY2xvbmVkMSA9IG5ldyBSZXNwb25zZShib2R5MSwge1xuICAgICAgICBzdGF0dXM6IG9yaWdpbmFsLnN0YXR1cyxcbiAgICAgICAgc3RhdHVzVGV4dDogb3JpZ2luYWwuc3RhdHVzVGV4dCxcbiAgICAgICAgaGVhZGVyczogb3JpZ2luYWwuaGVhZGVyc1xuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjbG9uZWQxLCAndXJsJywge1xuICAgICAgICB2YWx1ZTogb3JpZ2luYWwudXJsLFxuICAgICAgICAvLyBIb3cgdGhlIG9yaWdpbmFsIHJlc3BvbnNlLnVybCBiZWhhdmVzXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlXG4gICAgfSk7XG4gICAgY29uc3QgY2xvbmVkMiA9IG5ldyBSZXNwb25zZShib2R5Miwge1xuICAgICAgICBzdGF0dXM6IG9yaWdpbmFsLnN0YXR1cyxcbiAgICAgICAgc3RhdHVzVGV4dDogb3JpZ2luYWwuc3RhdHVzVGV4dCxcbiAgICAgICAgaGVhZGVyczogb3JpZ2luYWwuaGVhZGVyc1xuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjbG9uZWQyLCAndXJsJywge1xuICAgICAgICB2YWx1ZTogb3JpZ2luYWwudXJsLFxuICAgICAgICAvLyBIb3cgdGhlIG9yaWdpbmFsIHJlc3BvbnNlLnVybCBiZWhhdmVzXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlXG4gICAgfSk7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgY2xvbmVkMSxcbiAgICAgICAgY2xvbmVkMlxuICAgIF07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsb25lLXJlc3BvbnNlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/clone-response.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/decode-query-path-parameter.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/server/lib/decode-query-path-parameter.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Decodes a query path parameter.\n *\n * @param value - The value to decode.\n * @returns The decoded value.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"decodeQueryPathParameter\", ({\n enumerable: true,\n get: function() {\n return decodeQueryPathParameter;\n }\n}));\nfunction decodeQueryPathParameter(value) {\n // When deployed to Vercel, the value may be encoded, so this attempts to\n // decode it and returns the original value if it fails.\n try {\n return decodeURIComponent(value);\n } catch {\n return value;\n }\n}\n\n//# sourceMappingURL=decode-query-path-parameter.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZGVjb2RlLXF1ZXJ5LXBhdGgtcGFyYW1ldGVyLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw0REFBMkQ7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL2RlY29kZS1xdWVyeS1wYXRoLXBhcmFtZXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlY29kZXMgYSBxdWVyeSBwYXRoIHBhcmFtZXRlci5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZGVjb2RlLlxuICogQHJldHVybnMgVGhlIGRlY29kZWQgdmFsdWUuXG4gKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWNvZGVRdWVyeVBhdGhQYXJhbWV0ZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRlY29kZVF1ZXJ5UGF0aFBhcmFtZXRlcjtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGRlY29kZVF1ZXJ5UGF0aFBhcmFtZXRlcih2YWx1ZSkge1xuICAgIC8vIFdoZW4gZGVwbG95ZWQgdG8gVmVyY2VsLCB0aGUgdmFsdWUgbWF5IGJlIGVuY29kZWQsIHNvIHRoaXMgYXR0ZW1wdHMgdG9cbiAgICAvLyBkZWNvZGUgaXQgYW5kIHJldHVybnMgdGhlIG9yaWdpbmFsIHZhbHVlIGlmIGl0IGZhaWxzLlxuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVjb2RlLXF1ZXJ5LXBhdGgtcGFyYW1ldGVyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/decode-query-path-parameter.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/dedupe-fetch.js":
/*!***********************************************************!*\
!*** ./node_modules/next/dist/server/lib/dedupe-fetch.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("/**\n * Based on https://github.com/facebook/react/blob/d4e78c42a94be027b4dc7ed2659a5fddfbf9bd4e/packages/react/src/ReactFetch.js\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createDedupeFetch\", ({\n enumerable: true,\n get: function() {\n return createDedupeFetch;\n }\n}));\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\"));\nconst _cloneresponse = __webpack_require__(/*! ./clone-response */ \"(rsc)/./node_modules/next/dist/server/lib/clone-response.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nconst simpleCacheKey = '[\"GET\",[],null,\"follow\",null,null,null,null]' // generateCacheKey(new Request('https://blank'));\n;\nfunction generateCacheKey(request) {\n // We pick the fields that goes into the key used to dedupe requests.\n // We don't include the `cache` field, because we end up using whatever\n // caching resulted from the first request.\n // Notably we currently don't consider non-standard (or future) options.\n // This might not be safe. TODO: warn for non-standard extensions differing.\n // IF YOU CHANGE THIS UPDATE THE simpleCacheKey ABOVE.\n return JSON.stringify([\n request.method,\n Array.from(request.headers.entries()),\n request.mode,\n request.redirect,\n request.credentials,\n request.referrer,\n request.referrerPolicy,\n request.integrity\n ]);\n}\nfunction createDedupeFetch(originalFetch) {\n const getCacheEntries = _react.cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- url is the cache key\n (url)=>[]);\n return function dedupeFetch(resource, options) {\n if (options && options.signal) {\n // If we're passed a signal, then we assume that\n // someone else controls the lifetime of this object and opts out of\n // caching. It's effectively the opt-out mechanism.\n // Ideally we should be able to check this on the Request but\n // it always gets initialized with its own signal so we don't\n // know if it's supposed to override - unless we also override the\n // Request constructor.\n return originalFetch(resource, options);\n }\n // Normalize the Request\n let url;\n let cacheKey;\n if (typeof resource === 'string' && !options) {\n // Fast path.\n cacheKey = simpleCacheKey;\n url = resource;\n } else {\n // Normalize the request.\n // if resource is not a string or a URL (its an instance of Request)\n // then do not instantiate a new Request but instead\n // reuse the request as to not disturb the body in the event it's a ReadableStream.\n const request = typeof resource === 'string' || resource instanceof URL ? new Request(resource, options) : resource;\n if (request.method !== 'GET' && request.method !== 'HEAD' || request.keepalive) {\n // We currently don't dedupe requests that might have side-effects. Those\n // have to be explicitly cached. We assume that the request doesn't have a\n // body if it's GET or HEAD.\n // keepalive gets treated the same as if you passed a custom cache signal.\n return originalFetch(resource, options);\n }\n cacheKey = generateCacheKey(request);\n url = request.url;\n }\n const cacheEntries = getCacheEntries(url);\n for(let i = 0, j = cacheEntries.length; i < j; i += 1){\n const [key, promise] = cacheEntries[i];\n if (key === cacheKey) {\n return promise.then(()=>{\n const response = cacheEntries[i][2];\n if (!response) throw Object.defineProperty(new _invarianterror.InvariantError('No cached response'), \"__NEXT_ERROR_CODE\", {\n value: \"E579\",\n enumerable: false,\n configurable: true\n });\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(response);\n cacheEntries[i][2] = cloned2;\n return cloned1;\n });\n }\n }\n // We pass the original arguments here in case normalizing the Request\n // doesn't include all the options in this environment.\n const promise = originalFetch(resource, options);\n const entry = [\n cacheKey,\n promise,\n null\n ];\n cacheEntries.push(entry);\n return promise.then((response)=>{\n // We're cloning the response using this utility because there exists\n // a bug in the undici library around response cloning. See the\n // following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(response);\n entry[2] = cloned2;\n return cloned1;\n });\n };\n}\n\n//# sourceMappingURL=dedupe-fetch.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZGVkdXBlLWZldGNoLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixxREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRix1REFBdUQsbUJBQU8sQ0FBQyxpR0FBTztBQUN0RSx1QkFBdUIsbUJBQU8sQ0FBQyxxRkFBa0I7QUFDakQsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxPQUFPO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL2RlZHVwZS1mZXRjaC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9ibG9iL2Q0ZTc4YzQyYTk0YmUwMjdiNGRjN2VkMjY1OWE1ZmRkZmJmOWJkNGUvcGFja2FnZXMvcmVhY3Qvc3JjL1JlYWN0RmV0Y2guanNcbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNyZWF0ZURlZHVwZUZldGNoXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEZWR1cGVGZXRjaDtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWFjdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZChyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX2Nsb25lcmVzcG9uc2UgPSByZXF1aXJlKFwiLi9jbG9uZS1yZXNwb25zZVwiKTtcbmNvbnN0IF9pbnZhcmlhbnRlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvclwiKTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICAgIH1cbiAgICB2YXIgbmV3T2JqID0ge1xuICAgICAgICBfX3Byb3RvX186IG51bGxcbiAgICB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuY29uc3Qgc2ltcGxlQ2FjaGVLZXkgPSAnW1wiR0VUXCIsW10sbnVsbCxcImZvbGxvd1wiLG51bGwsbnVsbCxudWxsLG51bGxdJyAvLyBnZW5lcmF0ZUNhY2hlS2V5KG5ldyBSZXF1ZXN0KCdodHRwczovL2JsYW5rJykpO1xuO1xuZnVuY3Rpb24gZ2VuZXJhdGVDYWNoZUtleShyZXF1ZXN0KSB7XG4gICAgLy8gV2UgcGljayB0aGUgZmllbGRzIHRoYXQgZ29lcyBpbnRvIHRoZSBrZXkgdXNlZCB0byBkZWR1cGUgcmVxdWVzdHMuXG4gICAgLy8gV2UgZG9uJ3QgaW5jbHVkZSB0aGUgYGNhY2hlYCBmaWVsZCwgYmVjYXVzZSB3ZSBlbmQgdXAgdXNpbmcgd2hhdGV2ZXJcbiAgICAvLyBjYWNoaW5nIHJlc3VsdGVkIGZyb20gdGhlIGZpcnN0IHJlcXVlc3QuXG4gICAgLy8gTm90YWJseSB3ZSBjdXJyZW50bHkgZG9uJ3QgY29uc2lkZXIgbm9uLXN0YW5kYXJkIChvciBmdXR1cmUpIG9wdGlvbnMuXG4gICAgLy8gVGhpcyBtaWdodCBub3QgYmUgc2FmZS4gVE9ETzogd2FybiBmb3Igbm9uLXN0YW5kYXJkIGV4dGVuc2lvbnMgZGlmZmVyaW5nLlxuICAgIC8vIElGIFlPVSBDSEFOR0UgVEhJUyBVUERBVEUgVEhFIHNpbXBsZUNhY2hlS2V5IEFCT1ZFLlxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgIHJlcXVlc3QubWV0aG9kLFxuICAgICAgICBBcnJheS5mcm9tKHJlcXVlc3QuaGVhZGVycy5lbnRyaWVzKCkpLFxuICAgICAgICByZXF1ZXN0Lm1vZGUsXG4gICAgICAgIHJlcXVlc3QucmVkaXJlY3QsXG4gICAgICAgIHJlcXVlc3QuY3JlZGVudGlhbHMsXG4gICAgICAgIHJlcXVlc3QucmVmZXJyZXIsXG4gICAgICAgIHJlcXVlc3QucmVmZXJyZXJQb2xpY3ksXG4gICAgICAgIHJlcXVlc3QuaW50ZWdyaXR5XG4gICAgXSk7XG59XG5mdW5jdGlvbiBjcmVhdGVEZWR1cGVGZXRjaChvcmlnaW5hbEZldGNoKSB7XG4gICAgY29uc3QgZ2V0Q2FjaGVFbnRyaWVzID0gX3JlYWN0LmNhY2hlKC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gdXJsIGlzIHRoZSBjYWNoZSBrZXlcbiAgICAodXJsKT0+W10pO1xuICAgIHJldHVybiBmdW5jdGlvbiBkZWR1cGVGZXRjaChyZXNvdXJjZSwgb3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNpZ25hbCkge1xuICAgICAgICAgICAgLy8gSWYgd2UncmUgcGFzc2VkIGEgc2lnbmFsLCB0aGVuIHdlIGFzc3VtZSB0aGF0XG4gICAgICAgICAgICAvLyBzb21lb25lIGVsc2UgY29udHJvbHMgdGhlIGxpZmV0aW1lIG9mIHRoaXMgb2JqZWN0IGFuZCBvcHRzIG91dCBvZlxuICAgICAgICAgICAgLy8gY2FjaGluZy4gSXQncyBlZmZlY3RpdmVseSB0aGUgb3B0LW91dCBtZWNoYW5pc20uXG4gICAgICAgICAgICAvLyBJZGVhbGx5IHdlIHNob3VsZCBiZSBhYmxlIHRvIGNoZWNrIHRoaXMgb24gdGhlIFJlcXVlc3QgYnV0XG4gICAgICAgICAgICAvLyBpdCBhbHdheXMgZ2V0cyBpbml0aWFsaXplZCB3aXRoIGl0cyBvd24gc2lnbmFsIHNvIHdlIGRvbid0XG4gICAgICAgICAgICAvLyBrbm93IGlmIGl0J3Mgc3VwcG9zZWQgdG8gb3ZlcnJpZGUgLSB1bmxlc3Mgd2UgYWxzbyBvdmVycmlkZSB0aGVcbiAgICAgICAgICAgIC8vIFJlcXVlc3QgY29uc3RydWN0b3IuXG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxGZXRjaChyZXNvdXJjZSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTm9ybWFsaXplIHRoZSBSZXF1ZXN0XG4gICAgICAgIGxldCB1cmw7XG4gICAgICAgIGxldCBjYWNoZUtleTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXNvdXJjZSA9PT0gJ3N0cmluZycgJiYgIW9wdGlvbnMpIHtcbiAgICAgICAgICAgIC8vIEZhc3QgcGF0aC5cbiAgICAgICAgICAgIGNhY2hlS2V5ID0gc2ltcGxlQ2FjaGVLZXk7XG4gICAgICAgICAgICB1cmwgPSByZXNvdXJjZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUgcmVxdWVzdC5cbiAgICAgICAgICAgIC8vIGlmIHJlc291cmNlIGlzIG5vdCBhIHN0cmluZyBvciBhIFVSTCAoaXRzIGFuIGluc3RhbmNlIG9mIFJlcXVlc3QpXG4gICAgICAgICAgICAvLyB0aGVuIGRvIG5vdCBpbnN0YW50aWF0ZSBhIG5ldyBSZXF1ZXN0IGJ1dCBpbnN0ZWFkXG4gICAgICAgICAgICAvLyByZXVzZSB0aGUgcmVxdWVzdCBhcyB0byBub3QgZGlzdHVyYiB0aGUgYm9keSBpbiB0aGUgZXZlbnQgaXQncyBhIFJlYWRhYmxlU3RyZWFtLlxuICAgICAgICAgICAgY29uc3QgcmVxdWVzdCA9IHR5cGVvZiByZXNvdXJjZSA9PT0gJ3N0cmluZycgfHwgcmVzb3VyY2UgaW5zdGFuY2VvZiBVUkwgPyBuZXcgUmVxdWVzdChyZXNvdXJjZSwgb3B0aW9ucykgOiByZXNvdXJjZTtcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxdWVzdC5tZXRob2QgIT09ICdIRUFEJyB8fCByZXF1ZXN0LmtlZXBhbGl2ZSkge1xuICAgICAgICAgICAgICAgIC8vIFdlIGN1cnJlbnRseSBkb24ndCBkZWR1cGUgcmVxdWVzdHMgdGhhdCBtaWdodCBoYXZlIHNpZGUtZWZmZWN0cy4gVGhvc2VcbiAgICAgICAgICAgICAgICAvLyBoYXZlIHRvIGJlIGV4cGxpY2l0bHkgY2FjaGVkLiBXZSBhc3N1bWUgdGhhdCB0aGUgcmVxdWVzdCBkb2Vzbid0IGhhdmUgYVxuICAgICAgICAgICAgICAgIC8vIGJvZHkgaWYgaXQncyBHRVQgb3IgSEVBRC5cbiAgICAgICAgICAgICAgICAvLyBrZWVwYWxpdmUgZ2V0cyB0cmVhdGVkIHRoZSBzYW1lIGFzIGlmIHlvdSBwYXNzZWQgYSBjdXN0b20gY2FjaGUgc2lnbmFsLlxuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbEZldGNoKHJlc291cmNlLCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhY2hlS2V5ID0gZ2VuZXJhdGVDYWNoZUtleShyZXF1ZXN0KTtcbiAgICAgICAgICAgIHVybCA9IHJlcXVlc3QudXJsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNhY2hlRW50cmllcyA9IGdldENhY2hlRW50cmllcyh1cmwpO1xuICAgICAgICBmb3IobGV0IGkgPSAwLCBqID0gY2FjaGVFbnRyaWVzLmxlbmd0aDsgaSA8IGo7IGkgKz0gMSl7XG4gICAgICAgICAgICBjb25zdCBba2V5LCBwcm9taXNlXSA9IGNhY2hlRW50cmllc1tpXTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IGNhY2hlS2V5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbigoKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGNhY2hlRW50cmllc1tpXVsyXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZSkgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBfaW52YXJpYW50ZXJyb3IuSW52YXJpYW50RXJyb3IoJ05vIGNhY2hlZCByZXNwb25zZScpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU1NzlcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAvLyBXZSdyZSBjbG9uaW5nIHRoZSByZXNwb25zZSB1c2luZyB0aGlzIHV0aWxpdHkgYmVjYXVzZSB0aGVyZSBleGlzdHNcbiAgICAgICAgICAgICAgICAgICAgLy8gYSBidWcgaW4gdGhlIHVuZGljaSBsaWJyYXJ5IGFyb3VuZCByZXNwb25zZSBjbG9uaW5nLiBTZWUgdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIGZvbGxvd2luZyBwdWxsIHJlcXVlc3QgZm9yIG1vcmUgZGV0YWlsczpcbiAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL3B1bGwvNzMyNzRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW2Nsb25lZDEsIGNsb25lZDJdID0gKDAsIF9jbG9uZXJlc3BvbnNlLmNsb25lUmVzcG9uc2UpKHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVFbnRyaWVzW2ldWzJdID0gY2xvbmVkMjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNsb25lZDE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gV2UgcGFzcyB0aGUgb3JpZ2luYWwgYXJndW1lbnRzIGhlcmUgaW4gY2FzZSBub3JtYWxpemluZyB0aGUgUmVxdWVzdFxuICAgICAgICAvLyBkb2Vzbid0IGluY2x1ZGUgYWxsIHRoZSBvcHRpb25zIGluIHRoaXMgZW52aXJvbm1lbnQuXG4gICAgICAgIGNvbnN0IHByb21pc2UgPSBvcmlnaW5hbEZldGNoKHJlc291cmNlLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgZW50cnkgPSBbXG4gICAgICAgICAgICBjYWNoZUtleSxcbiAgICAgICAgICAgIHByb21pc2UsXG4gICAgICAgICAgICBudWxsXG4gICAgICAgIF07XG4gICAgICAgIGNhY2hlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbigocmVzcG9uc2UpPT57XG4gICAgICAgICAgICAvLyBXZSdyZSBjbG9uaW5nIHRoZSByZXNwb25zZSB1c2luZyB0aGlzIHV0aWxpdHkgYmVjYXVzZSB0aGVyZSBleGlzdHNcbiAgICAgICAgICAgIC8vIGEgYnVnIGluIHRoZSB1bmRpY2kgbGlicmFyeSBhcm91bmQgcmVzcG9uc2UgY2xvbmluZy4gU2VlIHRoZVxuICAgICAgICAgICAgLy8gZm9sbG93aW5nIHB1bGwgcmVxdWVzdCBmb3IgbW9yZSBkZXRhaWxzOlxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL3B1bGwvNzMyNzRcbiAgICAgICAgICAgIGNvbnN0IFtjbG9uZWQxLCBjbG9uZWQyXSA9ICgwLCBfY2xvbmVyZXNwb25zZS5jbG9uZVJlc3BvbnNlKShyZXNwb25zZSk7XG4gICAgICAgICAgICBlbnRyeVsyXSA9IGNsb25lZDI7XG4gICAgICAgICAgICByZXR1cm4gY2xvbmVkMTtcbiAgICAgICAgfSk7XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVkdXBlLWZldGNoLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/dedupe-fetch.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/etag.js":
/*!***************************************************!*\
!*** ./node_modules/next/dist/server/lib/etag.js ***!
\***************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * FNV-1a Hash implementation\n * @author Travis Webb (tjwebb) <me@traviswebb.com>\n *\n * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js\n *\n * Simplified, optimized and add modified for 52 bit, which provides a larger hash space\n * and still making use of Javascript's 53-bit integer space.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fnv1a52: function() {\n return fnv1a52;\n },\n generateETag: function() {\n return generateETag;\n }\n});\nconst fnv1a52 = (str)=>{\n const len = str.length;\n let i = 0, t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n while(i < len){\n v0 ^= str.charCodeAt(i++);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = t3 + (t2 >>> 16) & 65535;\n v2 = t2 & 65535;\n }\n return (v3 & 15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0 ^ v3 >> 4);\n};\nconst generateETag = (payload, weak = false)=>{\n const prefix = weak ? 'W/\"' : '\"';\n return prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '\"';\n};\n\n//# sourceMappingURL=etag.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZXRhZy5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL2V0YWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGTlYtMWEgSGFzaCBpbXBsZW1lbnRhdGlvblxuICogQGF1dGhvciBUcmF2aXMgV2ViYiAodGp3ZWJiKSA8bWVAdHJhdmlzd2ViYi5jb20+XG4gKlxuICogUG9ydGVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3Rqd2ViYi9mbnYtcGx1cy9ibG9iL21hc3Rlci9pbmRleC5qc1xuICpcbiAqIFNpbXBsaWZpZWQsIG9wdGltaXplZCBhbmQgYWRkIG1vZGlmaWVkIGZvciA1MiBiaXQsIHdoaWNoIHByb3ZpZGVzIGEgbGFyZ2VyIGhhc2ggc3BhY2VcbiAqIGFuZCBzdGlsbCBtYWtpbmcgdXNlIG9mIEphdmFzY3JpcHQncyA1My1iaXQgaW50ZWdlciBzcGFjZS5cbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGZudjFhNTI6IG51bGwsXG4gICAgZ2VuZXJhdGVFVGFnOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGZudjFhNTI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZm52MWE1MjtcbiAgICB9LFxuICAgIGdlbmVyYXRlRVRhZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZW5lcmF0ZUVUYWc7XG4gICAgfVxufSk7XG5jb25zdCBmbnYxYTUyID0gKHN0cik9PntcbiAgICBjb25zdCBsZW4gPSBzdHIubGVuZ3RoO1xuICAgIGxldCBpID0gMCwgdDAgPSAwLCB2MCA9IDB4MjMyNSwgdDEgPSAwLCB2MSA9IDB4ODQyMiwgdDIgPSAwLCB2MiA9IDB4OWNlNCwgdDMgPSAwLCB2MyA9IDB4Y2JmMjtcbiAgICB3aGlsZShpIDwgbGVuKXtcbiAgICAgICAgdjAgXj0gc3RyLmNoYXJDb2RlQXQoaSsrKTtcbiAgICAgICAgdDAgPSB2MCAqIDQzNTtcbiAgICAgICAgdDEgPSB2MSAqIDQzNTtcbiAgICAgICAgdDIgPSB2MiAqIDQzNTtcbiAgICAgICAgdDMgPSB2MyAqIDQzNTtcbiAgICAgICAgdDIgKz0gdjAgPDwgODtcbiAgICAgICAgdDMgKz0gdjEgPDwgODtcbiAgICAgICAgdDEgKz0gdDAgPj4+IDE2O1xuICAgICAgICB2MCA9IHQwICYgNjU1MzU7XG4gICAgICAgIHQyICs9IHQxID4+PiAxNjtcbiAgICAgICAgdjEgPSB0MSAmIDY1NTM1O1xuICAgICAgICB2MyA9IHQzICsgKHQyID4+PiAxNikgJiA2NTUzNTtcbiAgICAgICAgdjIgPSB0MiAmIDY1NTM1O1xuICAgIH1cbiAgICByZXR1cm4gKHYzICYgMTUpICogMjgxNDc0OTc2NzEwNjU2ICsgdjIgKiA0Mjk0OTY3Mjk2ICsgdjEgKiA2NTUzNiArICh2MCBeIHYzID4+IDQpO1xufTtcbmNvbnN0IGdlbmVyYXRlRVRhZyA9IChwYXlsb2FkLCB3ZWFrID0gZmFsc2UpPT57XG4gICAgY29uc3QgcHJlZml4ID0gd2VhayA/ICdXL1wiJyA6ICdcIic7XG4gICAgcmV0dXJuIHByZWZpeCArIGZudjFhNTIocGF5bG9hZCkudG9TdHJpbmcoMzYpICsgcGF5bG9hZC5sZW5ndGgudG9TdHJpbmcoMzYpICsgJ1wiJztcbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWV0YWcuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/etag.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/experimental/ppr.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/server/lib/experimental/ppr.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * If set to `incremental`, only those leaf pages that export\n * `experimental_ppr = true` will have partial prerendering enabled. If any\n * page exports this value as `false` or does not export it at all will not\n * have partial prerendering enabled. If set to a boolean, the options for\n * `experimental_ppr` will be ignored.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n checkIsAppPPREnabled: function() {\n return checkIsAppPPREnabled;\n },\n checkIsRoutePPREnabled: function() {\n return checkIsRoutePPREnabled;\n }\n});\nfunction checkIsAppPPREnabled(config) {\n // If the config is undefined, partial prerendering is disabled.\n if (typeof config === 'undefined') return false;\n // If the config is a boolean, use it directly.\n if (typeof config === 'boolean') return config;\n // If the config is a string, it must be 'incremental' to enable partial\n // prerendering.\n if (config === 'incremental') return true;\n return false;\n}\nfunction checkIsRoutePPREnabled(config, appConfig) {\n // If the config is undefined, partial prerendering is disabled.\n if (typeof config === 'undefined') return false;\n // If the config is a boolean, use it directly.\n if (typeof config === 'boolean') return config;\n // If the config is a string, it must be 'incremental' to enable partial\n // prerendering.\n if (config === 'incremental' && appConfig.experimental_ppr === true) {\n return true;\n }\n return false;\n}\n\n//# sourceMappingURL=ppr.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvZXhwZXJpbWVudGFsL3Bwci5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9leHBlcmltZW50YWwvcHByLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSWYgc2V0IHRvIGBpbmNyZW1lbnRhbGAsIG9ubHkgdGhvc2UgbGVhZiBwYWdlcyB0aGF0IGV4cG9ydFxuICogYGV4cGVyaW1lbnRhbF9wcHIgPSB0cnVlYCB3aWxsIGhhdmUgcGFydGlhbCBwcmVyZW5kZXJpbmcgZW5hYmxlZC4gSWYgYW55XG4gKiBwYWdlIGV4cG9ydHMgdGhpcyB2YWx1ZSBhcyBgZmFsc2VgIG9yIGRvZXMgbm90IGV4cG9ydCBpdCBhdCBhbGwgd2lsbCBub3RcbiAqIGhhdmUgcGFydGlhbCBwcmVyZW5kZXJpbmcgZW5hYmxlZC4gSWYgc2V0IHRvIGEgYm9vbGVhbiwgdGhlIG9wdGlvbnMgZm9yXG4gKiBgZXhwZXJpbWVudGFsX3BwcmAgd2lsbCBiZSBpZ25vcmVkLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY2hlY2tJc0FwcFBQUkVuYWJsZWQ6IG51bGwsXG4gICAgY2hlY2tJc1JvdXRlUFBSRW5hYmxlZDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjaGVja0lzQXBwUFBSRW5hYmxlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjaGVja0lzQXBwUFBSRW5hYmxlZDtcbiAgICB9LFxuICAgIGNoZWNrSXNSb3V0ZVBQUkVuYWJsZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY2hlY2tJc1JvdXRlUFBSRW5hYmxlZDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGNoZWNrSXNBcHBQUFJFbmFibGVkKGNvbmZpZykge1xuICAgIC8vIElmIHRoZSBjb25maWcgaXMgdW5kZWZpbmVkLCBwYXJ0aWFsIHByZXJlbmRlcmluZyBpcyBkaXNhYmxlZC5cbiAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBmYWxzZTtcbiAgICAvLyBJZiB0aGUgY29uZmlnIGlzIGEgYm9vbGVhbiwgdXNlIGl0IGRpcmVjdGx5LlxuICAgIGlmICh0eXBlb2YgY29uZmlnID09PSAnYm9vbGVhbicpIHJldHVybiBjb25maWc7XG4gICAgLy8gSWYgdGhlIGNvbmZpZyBpcyBhIHN0cmluZywgaXQgbXVzdCBiZSAnaW5jcmVtZW50YWwnIHRvIGVuYWJsZSBwYXJ0aWFsXG4gICAgLy8gcHJlcmVuZGVyaW5nLlxuICAgIGlmIChjb25maWcgPT09ICdpbmNyZW1lbnRhbCcpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGNoZWNrSXNSb3V0ZVBQUkVuYWJsZWQoY29uZmlnLCBhcHBDb25maWcpIHtcbiAgICAvLyBJZiB0aGUgY29uZmlnIGlzIHVuZGVmaW5lZCwgcGFydGlhbCBwcmVyZW5kZXJpbmcgaXMgZGlzYWJsZWQuXG4gICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gZmFsc2U7XG4gICAgLy8gSWYgdGhlIGNvbmZpZyBpcyBhIGJvb2xlYW4sIHVzZSBpdCBkaXJlY3RseS5cbiAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gY29uZmlnO1xuICAgIC8vIElmIHRoZSBjb25maWcgaXMgYSBzdHJpbmcsIGl0IG11c3QgYmUgJ2luY3JlbWVudGFsJyB0byBlbmFibGUgcGFydGlhbFxuICAgIC8vIHByZXJlbmRlcmluZy5cbiAgICBpZiAoY29uZmlnID09PSAnaW5jcmVtZW50YWwnICYmIGFwcENvbmZpZy5leHBlcmltZW50YWxfcHByID09PSB0cnVlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBwci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/experimental/ppr.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/lru-cache.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/server/lib/lru-cache.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"LRUCache\", ({\n enumerable: true,\n get: function() {\n return LRUCache;\n }\n}));\nclass LRUCache {\n constructor(maxSize, calculateSize){\n this.cache = new Map();\n this.sizes = new Map();\n this.totalSize = 0;\n this.maxSize = maxSize;\n this.calculateSize = calculateSize || (()=>1);\n }\n set(key, value) {\n if (!key || !value) return;\n const size = this.calculateSize(value);\n if (size > this.maxSize) {\n console.warn('Single item size exceeds maxSize');\n return;\n }\n if (this.cache.has(key)) {\n this.totalSize -= this.sizes.get(key) || 0;\n }\n this.cache.set(key, value);\n this.sizes.set(key, size);\n this.totalSize += size;\n this.touch(key);\n }\n has(key) {\n if (!key) return false;\n this.touch(key);\n return Boolean(this.cache.get(key));\n }\n get(key) {\n if (!key) return;\n const value = this.cache.get(key);\n if (value === undefined) {\n return undefined;\n }\n this.touch(key);\n return value;\n }\n touch(key) {\n const value = this.cache.get(key);\n if (value !== undefined) {\n this.cache.delete(key);\n this.cache.set(key, value);\n this.evictIfNecessary();\n }\n }\n evictIfNecessary() {\n while(this.totalSize > this.maxSize && this.cache.size > 0){\n this.evictLeastRecentlyUsed();\n }\n }\n evictLeastRecentlyUsed() {\n const lruKey = this.cache.keys().next().value;\n if (lruKey !== undefined) {\n const lruSize = this.sizes.get(lruKey) || 0;\n this.totalSize -= lruSize;\n this.cache.delete(lruKey);\n this.sizes.delete(lruKey);\n }\n }\n reset() {\n this.cache.clear();\n this.sizes.clear();\n this.totalSize = 0;\n }\n keys() {\n return [\n ...this.cache.keys()\n ];\n }\n remove(key) {\n if (this.cache.has(key)) {\n this.totalSize -= this.sizes.get(key) || 0;\n this.cache.delete(key);\n this.sizes.delete(key);\n }\n }\n clear() {\n this.cache.clear();\n this.sizes.clear();\n this.totalSize = 0;\n }\n get size() {\n return this.cache.size;\n }\n get currentSize() {\n return this.totalSize;\n }\n}\n\n//# sourceMappingURL=lru-cache.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvbHJ1LWNhY2hlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNENBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9scnUtY2FjaGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJMUlVDYWNoZVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTFJVQ2FjaGU7XG4gICAgfVxufSk7XG5jbGFzcyBMUlVDYWNoZSB7XG4gICAgY29uc3RydWN0b3IobWF4U2l6ZSwgY2FsY3VsYXRlU2l6ZSl7XG4gICAgICAgIHRoaXMuY2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMuc2l6ZXMgPSBuZXcgTWFwKCk7XG4gICAgICAgIHRoaXMudG90YWxTaXplID0gMDtcbiAgICAgICAgdGhpcy5tYXhTaXplID0gbWF4U2l6ZTtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVTaXplID0gY2FsY3VsYXRlU2l6ZSB8fCAoKCk9PjEpO1xuICAgIH1cbiAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICBpZiAoIWtleSB8fCAhdmFsdWUpIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMuY2FsY3VsYXRlU2l6ZSh2YWx1ZSk7XG4gICAgICAgIGlmIChzaXplID4gdGhpcy5tYXhTaXplKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1NpbmdsZSBpdGVtIHNpemUgZXhjZWVkcyBtYXhTaXplJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHRoaXMudG90YWxTaXplIC09IHRoaXMuc2l6ZXMuZ2V0KGtleSkgfHwgMDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhY2hlLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgdGhpcy5zaXplcy5zZXQoa2V5LCBzaXplKTtcbiAgICAgICAgdGhpcy50b3RhbFNpemUgKz0gc2l6ZTtcbiAgICAgICAgdGhpcy50b3VjaChrZXkpO1xuICAgIH1cbiAgICBoYXMoa2V5KSB7XG4gICAgICAgIGlmICgha2V5KSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHRoaXMudG91Y2goa2V5KTtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGhpcy5jYWNoZS5nZXQoa2V5KSk7XG4gICAgfVxuICAgIGdldChrZXkpIHtcbiAgICAgICAgaWYgKCFrZXkpIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNhY2hlLmdldChrZXkpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvdWNoKGtleSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgdG91Y2goa2V5KSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZXZpY3RJZk5lY2Vzc2FyeSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGV2aWN0SWZOZWNlc3NhcnkoKSB7XG4gICAgICAgIHdoaWxlKHRoaXMudG90YWxTaXplID4gdGhpcy5tYXhTaXplICYmIHRoaXMuY2FjaGUuc2l6ZSA+IDApe1xuICAgICAgICAgICAgdGhpcy5ldmljdExlYXN0UmVjZW50bHlVc2VkKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXZpY3RMZWFzdFJlY2VudGx5VXNlZCgpIHtcbiAgICAgICAgY29uc3QgbHJ1S2V5ID0gdGhpcy5jYWNoZS5rZXlzKCkubmV4dCgpLnZhbHVlO1xuICAgICAgICBpZiAobHJ1S2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxydVNpemUgPSB0aGlzLnNpemVzLmdldChscnVLZXkpIHx8IDA7XG4gICAgICAgICAgICB0aGlzLnRvdGFsU2l6ZSAtPSBscnVTaXplO1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5kZWxldGUobHJ1S2V5KTtcbiAgICAgICAgICAgIHRoaXMuc2l6ZXMuZGVsZXRlKGxydUtleSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5zaXplcy5jbGVhcigpO1xuICAgICAgICB0aGlzLnRvdGFsU2l6ZSA9IDA7XG4gICAgfVxuICAgIGtleXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi50aGlzLmNhY2hlLmtleXMoKVxuICAgICAgICBdO1xuICAgIH1cbiAgICByZW1vdmUoa2V5KSB7XG4gICAgICAgIGlmICh0aGlzLmNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICB0aGlzLnRvdGFsU2l6ZSAtPSB0aGlzLnNpemVzLmdldChrZXkpIHx8IDA7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgdGhpcy5zaXplcy5kZWxldGUoa2V5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5jYWNoZS5jbGVhcigpO1xuICAgICAgICB0aGlzLnNpemVzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMudG90YWxTaXplID0gMDtcbiAgICB9XG4gICAgZ2V0IHNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhY2hlLnNpemU7XG4gICAgfVxuICAgIGdldCBjdXJyZW50U2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG90YWxTaXplO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bHJ1LWNhY2hlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/lru-cache.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/server/lib/patch-fetch.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NEXT_PATCH_SYMBOL: function() {\n return NEXT_PATCH_SYMBOL;\n },\n createPatchedFetcher: function() {\n return createPatchedFetcher;\n },\n patchFetch: function() {\n return patchFetch;\n },\n validateRevalidate: function() {\n return validateRevalidate;\n },\n validateTags: function() {\n return validateTags;\n }\n});\nconst _constants = __webpack_require__(/*! ./trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _tracer = __webpack_require__(/*! ./trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants1 = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _dedupefetch = __webpack_require__(/*! ./dedupe-fetch */ \"(rsc)/./node_modules/next/dist/server/lib/dedupe-fetch.js\");\nconst _responsecache = __webpack_require__(/*! ../response-cache */ \"(rsc)/./node_modules/next/dist/server/response-cache/index.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _cloneresponse = __webpack_require__(/*! ./clone-response */ \"(rsc)/./node_modules/next/dist/server/lib/clone-response.js\");\nconst isEdgeRuntime = \"nodejs\" === 'edge';\nconst NEXT_PATCH_SYMBOL = Symbol.for('next-patch');\nfunction isFetchPatched() {\n return globalThis[NEXT_PATCH_SYMBOL] === true;\n}\nfunction validateRevalidate(revalidateVal, route) {\n try {\n let normalizedRevalidate = undefined;\n if (revalidateVal === false) {\n normalizedRevalidate = _constants1.INFINITE_CACHE;\n } else if (typeof revalidateVal === 'number' && !isNaN(revalidateVal) && revalidateVal > -1) {\n normalizedRevalidate = revalidateVal;\n } else if (typeof revalidateVal !== 'undefined') {\n throw Object.defineProperty(new Error(`Invalid revalidate value \"${revalidateVal}\" on \"${route}\", must be a non-negative number or false`), \"__NEXT_ERROR_CODE\", {\n value: \"E179\",\n enumerable: false,\n configurable: true\n });\n }\n return normalizedRevalidate;\n } catch (err) {\n // handle client component error from attempting to check revalidate value\n if (err instanceof Error && err.message.includes('Invalid revalidate')) {\n throw err;\n }\n return undefined;\n }\n}\nfunction validateTags(tags, description) {\n const validTags = [];\n const invalidTags = [];\n for(let i = 0; i < tags.length; i++){\n const tag = tags[i];\n if (typeof tag !== 'string') {\n invalidTags.push({\n tag,\n reason: 'invalid type, must be a string'\n });\n } else if (tag.length > _constants1.NEXT_CACHE_TAG_MAX_LENGTH) {\n invalidTags.push({\n tag,\n reason: `exceeded max length of ${_constants1.NEXT_CACHE_TAG_MAX_LENGTH}`\n });\n } else {\n validTags.push(tag);\n }\n if (validTags.length > _constants1.NEXT_CACHE_TAG_MAX_ITEMS) {\n console.warn(`Warning: exceeded max tag count for ${description}, dropped tags:`, tags.slice(i).join(', '));\n break;\n }\n }\n if (invalidTags.length > 0) {\n console.warn(`Warning: invalid tags passed to ${description}: `);\n for (const { tag, reason } of invalidTags){\n console.log(`tag: \"${tag}\" ${reason}`);\n }\n }\n return validTags;\n}\nfunction trackFetchMetric(workStore, ctx) {\n var _workStore_requestEndedState;\n // If the static generation store is not available, we can't track the fetch\n if (!workStore) return;\n if ((_workStore_requestEndedState = workStore.requestEndedState) == null ? void 0 : _workStore_requestEndedState.ended) return;\n const isDebugBuild = (!!process.env.NEXT_DEBUG_BUILD || process.env.NEXT_SSG_FETCH_METRICS === '1') && workStore.isStaticGeneration;\n const isDevelopment = \"development\" === 'development';\n if (// The only time we want to track fetch metrics outside of development is when\n // we are performing a static generation & we are in debug mode.\n !isDebugBuild && !isDevelopment) {\n return;\n }\n workStore.fetchMetrics ??= [];\n workStore.fetchMetrics.push({\n ...ctx,\n end: performance.timeOrigin + performance.now(),\n idx: workStore.nextFetchId || 0\n });\n}\nfunction createPatchedFetcher(originFetch, { workAsyncStorage, workUnitAsyncStorage }) {\n // Create the patched fetch function.\n const patched = async function fetch(input, init) {\n var _init_method, _init_next;\n let url;\n try {\n url = new URL(input instanceof Request ? input.url : input);\n url.username = '';\n url.password = '';\n } catch {\n // Error caused by malformed URL should be handled by native fetch\n url = undefined;\n }\n const fetchUrl = (url == null ? void 0 : url.href) ?? '';\n const method = (init == null ? void 0 : (_init_method = init.method) == null ? void 0 : _init_method.toUpperCase()) || 'GET';\n // Do create a new span trace for internal fetches in the\n // non-verbose mode.\n const isInternal = (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next.internal) === true;\n const hideSpan = process.env.NEXT_OTEL_FETCH_DISABLED === '1';\n // We don't track fetch metrics for internal fetches\n // so it's not critical that we have a start time, as it won't be recorded.\n // This is to workaround a flaky issue where performance APIs might\n // not be available and will require follow-up investigation.\n const fetchStart = isInternal ? undefined : performance.timeOrigin + performance.now();\n const workStore = workAsyncStorage.getStore();\n const workUnitStore = workUnitAsyncStorage.getStore();\n // During static generation we track cache reads so we can reason about when they fill\n let cacheSignal = workUnitStore && workUnitStore.type === 'prerender' ? workUnitStore.cacheSignal : null;\n if (cacheSignal) {\n cacheSignal.beginRead();\n }\n const result = (0, _tracer.getTracer)().trace(isInternal ? _constants.NextNodeServerSpan.internalFetch : _constants.AppRenderSpan.fetch, {\n hideSpan,\n kind: _tracer.SpanKind.CLIENT,\n spanName: [\n 'fetch',\n method,\n fetchUrl\n ].filter(Boolean).join(' '),\n attributes: {\n 'http.url': fetchUrl,\n 'http.method': method,\n 'net.peer.name': url == null ? void 0 : url.hostname,\n 'net.peer.port': (url == null ? void 0 : url.port) || undefined\n }\n }, async ()=>{\n var _getRequestMeta;\n // If this is an internal fetch, we should not do any special treatment.\n if (isInternal) {\n return originFetch(input, init);\n }\n // If the workStore is not available, we can't do any\n // special treatment of fetch, therefore fallback to the original\n // fetch implementation.\n if (!workStore) {\n return originFetch(input, init);\n }\n // We should also fallback to the original fetch implementation if we\n // are in draft mode, it does not constitute a static generation.\n if (workStore.isDraftMode) {\n return originFetch(input, init);\n }\n const isRequestInput = input && typeof input === 'object' && typeof input.method === 'string';\n const getRequestMeta = (field)=>{\n // If request input is present but init is not, retrieve from input first.\n const value = init == null ? void 0 : init[field];\n return value || (isRequestInput ? input[field] : null);\n };\n let finalRevalidate = undefined;\n const getNextField = (field)=>{\n var _init_next, _init_next1, _input_next;\n return typeof (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next[field]) !== 'undefined' ? init == null ? void 0 : (_init_next1 = init.next) == null ? void 0 : _init_next1[field] : isRequestInput ? (_input_next = input.next) == null ? void 0 : _input_next[field] : undefined;\n };\n // RequestInit doesn't keep extra fields e.g. next so it's\n // only available if init is used separate\n const originalFetchRevalidate = getNextField('revalidate');\n let currentFetchRevalidate = originalFetchRevalidate;\n const tags = validateTags(getNextField('tags') || [], `fetch ${input.toString()}`);\n const revalidateStore = workUnitStore && (workUnitStore.type === 'cache' || workUnitStore.type === 'prerender' || // TODO: stop accumulating tags in client prerender\n workUnitStore.type === 'prerender-client' || workUnitStore.type === 'prerender-ppr' || workUnitStore.type === 'prerender-legacy') ? workUnitStore : undefined;\n if (revalidateStore) {\n if (Array.isArray(tags)) {\n // Collect tags onto parent caches or parent prerenders.\n const collectedTags = revalidateStore.tags ?? (revalidateStore.tags = []);\n for (const tag of tags){\n if (!collectedTags.includes(tag)) {\n collectedTags.push(tag);\n }\n }\n }\n }\n const implicitTags = workUnitStore == null ? void 0 : workUnitStore.implicitTags;\n // Inside unstable-cache we treat it the same as force-no-store on the\n // page.\n const pageFetchCacheMode = workUnitStore && workUnitStore.type === 'unstable-cache' ? 'force-no-store' : workStore.fetchCache;\n const isUsingNoStore = !!workStore.isUnstableNoStore;\n let currentFetchCacheConfig = getRequestMeta('cache');\n let cacheReason = '';\n let cacheWarning;\n if (typeof currentFetchCacheConfig === 'string' && typeof currentFetchRevalidate !== 'undefined') {\n // If the revalidate value conflicts with the cache value, we should warn the user and unset the conflicting values.\n const isConflictingRevalidate = // revalidate: 0 and cache: force-cache\n currentFetchCacheConfig === 'force-cache' && currentFetchRevalidate === 0 || // revalidate: >0 or revalidate: false and cache: no-store\n currentFetchCacheConfig === 'no-store' && (currentFetchRevalidate > 0 || currentFetchRevalidate === false);\n if (isConflictingRevalidate) {\n cacheWarning = `Specified \"cache: ${currentFetchCacheConfig}\" and \"revalidate: ${currentFetchRevalidate}\", only one should be specified.`;\n currentFetchCacheConfig = undefined;\n currentFetchRevalidate = undefined;\n }\n }\n const hasExplicitFetchCacheOptOut = // fetch config itself signals not to cache\n currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store' || // the fetch isn't explicitly caching and the segment level cache config signals not to cache\n // note: `pageFetchCacheMode` is also set by being in an unstable_cache context.\n pageFetchCacheMode === 'force-no-store' || pageFetchCacheMode === 'only-no-store';\n // If no explicit fetch cache mode is set, but dynamic = `force-dynamic` is set,\n // we shouldn't consider caching the fetch. This is because the `dynamic` cache\n // is considered a \"top-level\" cache mode, whereas something like `fetchCache` is more\n // fine-grained. Top-level modes are responsible for setting reasonable defaults for the\n // other configurations.\n const noFetchConfigAndForceDynamic = !pageFetchCacheMode && !currentFetchCacheConfig && !currentFetchRevalidate && workStore.forceDynamic;\n if (// force-cache was specified without a revalidate value. We set the revalidate value to false\n // which will signal the cache to not revalidate\n currentFetchCacheConfig === 'force-cache' && typeof currentFetchRevalidate === 'undefined') {\n currentFetchRevalidate = false;\n } else if (hasExplicitFetchCacheOptOut || noFetchConfigAndForceDynamic) {\n currentFetchRevalidate = 0;\n }\n if (currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store') {\n cacheReason = `cache: ${currentFetchCacheConfig}`;\n }\n finalRevalidate = validateRevalidate(currentFetchRevalidate, workStore.route);\n const _headers = getRequestMeta('headers');\n const initHeaders = typeof (_headers == null ? void 0 : _headers.get) === 'function' ? _headers : new Headers(_headers || {});\n const hasUnCacheableHeader = initHeaders.get('authorization') || initHeaders.get('cookie');\n const isUnCacheableMethod = ![\n 'get',\n 'head'\n ].includes(((_getRequestMeta = getRequestMeta('method')) == null ? void 0 : _getRequestMeta.toLowerCase()) || 'get');\n /**\n * We automatically disable fetch caching under the following conditions:\n * - Fetch cache configs are not set. Specifically:\n * - A page fetch cache mode is not set (export const fetchCache=...)\n * - A fetch cache mode is not set in the fetch call (fetch(url, { cache: ... }))\n * or the fetch cache mode is set to 'default'\n * - A fetch revalidate value is not set in the fetch call (fetch(url, { revalidate: ... }))\n * - OR the fetch comes after a configuration that triggered dynamic rendering (e.g., reading cookies())\n * and the fetch was considered uncacheable (e.g., POST method or has authorization headers)\n */ const hasNoExplicitCacheConfig = // eslint-disable-next-line eqeqeq\n pageFetchCacheMode == undefined && // eslint-disable-next-line eqeqeq\n (currentFetchCacheConfig == undefined || // when considering whether to opt into the default \"no-cache\" fetch semantics,\n // a \"default\" cache config should be treated the same as no cache config\n currentFetchCacheConfig === 'default') && // eslint-disable-next-line eqeqeq\n currentFetchRevalidate == undefined;\n let autoNoCache = Boolean((hasUnCacheableHeader || isUnCacheableMethod) && (revalidateStore == null ? void 0 : revalidateStore.revalidate) === 0);\n let isImplicitBuildTimeCache = false;\n if (!autoNoCache && hasNoExplicitCacheConfig) {\n // We don't enable automatic no-cache behavior during build-time\n // prerendering so that we can still leverage the fetch cache between\n // export workers.\n if (workStore.isBuildTimePrerendering) {\n isImplicitBuildTimeCache = true;\n } else {\n autoNoCache = true;\n }\n }\n if (hasNoExplicitCacheConfig && workUnitStore !== undefined && (workUnitStore.type === 'prerender' || // While we don't want to do caching in the client scope\n // we know the fetch will be dynamic for dynamicIO so we\n // may as well avoid the call here\n workUnitStore.type === 'prerender-client')) {\n // If we have no cache config, and we're in Dynamic I/O prerendering, it'll be a dynamic call.\n // We don't have to issue that dynamic call.\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\n }\n switch(pageFetchCacheMode){\n case 'force-no-store':\n {\n cacheReason = 'fetchCache = force-no-store';\n break;\n }\n case 'only-no-store':\n {\n if (currentFetchCacheConfig === 'force-cache' || typeof finalRevalidate !== 'undefined' && finalRevalidate > 0) {\n throw Object.defineProperty(new Error(`cache: 'force-cache' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-no-store'`), \"__NEXT_ERROR_CODE\", {\n value: \"E448\",\n enumerable: false,\n configurable: true\n });\n }\n cacheReason = 'fetchCache = only-no-store';\n break;\n }\n case 'only-cache':\n {\n if (currentFetchCacheConfig === 'no-store') {\n throw Object.defineProperty(new Error(`cache: 'no-store' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-cache'`), \"__NEXT_ERROR_CODE\", {\n value: \"E521\",\n enumerable: false,\n configurable: true\n });\n }\n break;\n }\n case 'force-cache':\n {\n if (typeof currentFetchRevalidate === 'undefined' || currentFetchRevalidate === 0) {\n cacheReason = 'fetchCache = force-cache';\n finalRevalidate = _constants1.INFINITE_CACHE;\n }\n break;\n }\n default:\n }\n if (typeof finalRevalidate === 'undefined') {\n if (pageFetchCacheMode === 'default-cache' && !isUsingNoStore) {\n finalRevalidate = _constants1.INFINITE_CACHE;\n cacheReason = 'fetchCache = default-cache';\n } else if (pageFetchCacheMode === 'default-no-store') {\n finalRevalidate = 0;\n cacheReason = 'fetchCache = default-no-store';\n } else if (isUsingNoStore) {\n finalRevalidate = 0;\n cacheReason = 'noStore call';\n } else if (autoNoCache) {\n finalRevalidate = 0;\n cacheReason = 'auto no cache';\n } else {\n // TODO: should we consider this case an invariant?\n cacheReason = 'auto cache';\n finalRevalidate = revalidateStore ? revalidateStore.revalidate : _constants1.INFINITE_CACHE;\n }\n } else if (!cacheReason) {\n cacheReason = `revalidate: ${finalRevalidate}`;\n }\n if (// when force static is configured we don't bail from\n // `revalidate: 0` values\n !(workStore.forceStatic && finalRevalidate === 0) && // we don't consider autoNoCache to switch to dynamic for ISR\n !autoNoCache && // If the revalidate value isn't currently set or the value is less\n // than the current revalidate value, we should update the revalidate\n // value.\n revalidateStore && finalRevalidate < revalidateStore.revalidate) {\n // If we were setting the revalidate value to 0, we should try to\n // postpone instead first.\n if (finalRevalidate === 0) {\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\n default:\n }\n }\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\n // We only want to set the revalidate store's revalidate time if it\n // was explicitly set for the fetch call, i.e.\n // originalFetchRevalidate.\n if (revalidateStore && originalFetchRevalidate === finalRevalidate) {\n revalidateStore.revalidate = finalRevalidate;\n }\n }\n const isCacheableRevalidate = typeof finalRevalidate === 'number' && finalRevalidate > 0;\n let cacheKey;\n const { incrementalCache } = workStore;\n const useCacheOrRequestStore = (workUnitStore == null ? void 0 : workUnitStore.type) === 'request' || (workUnitStore == null ? void 0 : workUnitStore.type) === 'cache' ? workUnitStore : undefined;\n if (incrementalCache && (isCacheableRevalidate || (useCacheOrRequestStore == null ? void 0 : useCacheOrRequestStore.serverComponentsHmrCache))) {\n try {\n cacheKey = await incrementalCache.generateCacheKey(fetchUrl, isRequestInput ? input : init);\n } catch (err) {\n console.error(`Failed to generate cache key for`, input);\n }\n }\n const fetchIdx = workStore.nextFetchId ?? 1;\n workStore.nextFetchId = fetchIdx + 1;\n let handleUnlock = ()=>{};\n const doOriginalFetch = async (isStale, cacheReasonOverride)=>{\n const requestInputFields = [\n 'cache',\n 'credentials',\n 'headers',\n 'integrity',\n 'keepalive',\n 'method',\n 'mode',\n 'redirect',\n 'referrer',\n 'referrerPolicy',\n 'window',\n 'duplex',\n // don't pass through signal when revalidating\n ...isStale ? [] : [\n 'signal'\n ]\n ];\n if (isRequestInput) {\n const reqInput = input;\n const reqOptions = {\n body: reqInput._ogBody || reqInput.body\n };\n for (const field of requestInputFields){\n // @ts-expect-error custom fields\n reqOptions[field] = reqInput[field];\n }\n input = new Request(reqInput.url, reqOptions);\n } else if (init) {\n const { _ogBody, body, signal, ...otherInput } = init;\n init = {\n ...otherInput,\n body: _ogBody || body,\n signal: isStale ? undefined : signal\n };\n }\n // add metadata to init without editing the original\n const clonedInit = {\n ...init,\n next: {\n ...init == null ? void 0 : init.next,\n fetchType: 'origin',\n fetchIdx\n }\n };\n return originFetch(input, clonedInit).then(async (res)=>{\n if (!isStale && fetchStart) {\n trackFetchMetric(workStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason: cacheReasonOverride || cacheReason,\n cacheStatus: finalRevalidate === 0 || cacheReasonOverride ? 'skip' : 'miss',\n cacheWarning,\n status: res.status,\n method: clonedInit.method || 'GET'\n });\n }\n if (res.status === 200 && incrementalCache && cacheKey && (isCacheableRevalidate || (useCacheOrRequestStore == null ? void 0 : useCacheOrRequestStore.serverComponentsHmrCache))) {\n const normalizedRevalidate = finalRevalidate >= _constants1.INFINITE_CACHE ? _constants1.CACHE_ONE_YEAR : finalRevalidate;\n if (workUnitStore && (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-client')) {\n // We are prerendering at build time or revalidate time with dynamicIO so we need to\n // buffer the response so we can guarantee it can be read in a microtask\n const bodyBuffer = await res.arrayBuffer();\n const fetchedData = {\n headers: Object.fromEntries(res.headers.entries()),\n body: Buffer.from(bodyBuffer).toString('base64'),\n status: res.status,\n url: res.url\n };\n // We can skip checking the serverComponentsHmrCache because we aren't in\n // dev mode.\n await incrementalCache.set(cacheKey, {\n kind: _responsecache.CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate: normalizedRevalidate\n }, {\n fetchCache: true,\n fetchUrl,\n fetchIdx,\n tags,\n isImplicitBuildTimeCache\n });\n await handleUnlock();\n // We return a new Response to the caller.\n return new Response(bodyBuffer, {\n headers: res.headers,\n status: res.status,\n statusText: res.statusText\n });\n } else {\n // We're cloning the response using this utility because there\n // exists a bug in the undici library around response cloning.\n // See the following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(res);\n // We are dynamically rendering including dev mode. We want to return\n // the response to the caller as soon as possible because it might stream\n // over a very long time.\n const cacheSetPromise = cloned1.arrayBuffer().then(async (arrayBuffer)=>{\n var _useCacheOrRequestStore_serverComponentsHmrCache;\n const bodyBuffer = Buffer.from(arrayBuffer);\n const fetchedData = {\n headers: Object.fromEntries(cloned1.headers.entries()),\n body: bodyBuffer.toString('base64'),\n status: cloned1.status,\n url: cloned1.url\n };\n useCacheOrRequestStore == null ? void 0 : (_useCacheOrRequestStore_serverComponentsHmrCache = useCacheOrRequestStore.serverComponentsHmrCache) == null ? void 0 : _useCacheOrRequestStore_serverComponentsHmrCache.set(cacheKey, fetchedData);\n if (isCacheableRevalidate) {\n await incrementalCache.set(cacheKey, {\n kind: _responsecache.CachedRouteKind.FETCH,\n data: fetchedData,\n revalidate: normalizedRevalidate\n }, {\n fetchCache: true,\n fetchUrl,\n fetchIdx,\n tags,\n isImplicitBuildTimeCache\n });\n }\n }).catch((error)=>console.warn(`Failed to set fetch cache`, input, error)).finally(handleUnlock);\n const pendingRevalidateKey = `cache-set-${cacheKey}`;\n workStore.pendingRevalidates ??= {};\n if (pendingRevalidateKey in workStore.pendingRevalidates) {\n // there is already a pending revalidate entry that\n // we need to await to avoid race conditions\n await workStore.pendingRevalidates[pendingRevalidateKey];\n }\n workStore.pendingRevalidates[pendingRevalidateKey] = cacheSetPromise.finally(()=>{\n var _workStore_pendingRevalidates;\n // If the pending revalidate is not present in the store, then\n // we have nothing to delete.\n if (!((_workStore_pendingRevalidates = workStore.pendingRevalidates) == null ? void 0 : _workStore_pendingRevalidates[pendingRevalidateKey])) {\n return;\n }\n delete workStore.pendingRevalidates[pendingRevalidateKey];\n });\n return cloned2;\n }\n }\n // we had response that we determined shouldn't be cached so we return it\n // and don't cache it. This also needs to unlock the cache lock we acquired.\n await handleUnlock();\n return res;\n }).catch((error)=>{\n handleUnlock();\n throw error;\n });\n };\n let cacheReasonOverride;\n let isForegroundRevalidate = false;\n let isHmrRefreshCache = false;\n if (cacheKey && incrementalCache) {\n let cachedFetchData;\n if ((useCacheOrRequestStore == null ? void 0 : useCacheOrRequestStore.isHmrRefresh) && useCacheOrRequestStore.serverComponentsHmrCache) {\n cachedFetchData = useCacheOrRequestStore.serverComponentsHmrCache.get(cacheKey);\n isHmrRefreshCache = true;\n }\n if (isCacheableRevalidate && !cachedFetchData) {\n handleUnlock = await incrementalCache.lock(cacheKey);\n const entry = workStore.isOnDemandRevalidate ? null : await incrementalCache.get(cacheKey, {\n kind: _responsecache.IncrementalCacheKind.FETCH,\n revalidate: finalRevalidate,\n fetchUrl,\n fetchIdx,\n tags,\n softTags: implicitTags == null ? void 0 : implicitTags.tags\n });\n if (hasNoExplicitCacheConfig) {\n // We sometimes use the cache to dedupe fetches that do not specify a cache configuration\n // In these cases we want to make sure we still exclude them from prerenders if dynamicIO is on\n // so we introduce an artificial Task boundary here.\n if (workUnitStore && (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-client')) {\n await (0, _scheduler.waitAtLeastOneReactRenderTask)();\n }\n }\n if (entry) {\n await handleUnlock();\n } else {\n // in dev, incremental cache response will be null in case the browser adds `cache-control: no-cache` in the request headers\n cacheReasonOverride = 'cache-control: no-cache (hard refresh)';\n }\n if ((entry == null ? void 0 : entry.value) && entry.value.kind === _responsecache.CachedRouteKind.FETCH) {\n // when stale and is revalidating we wait for fresh data\n // so the revalidated entry has the updated data\n if (workStore.isRevalidate && entry.isStale) {\n isForegroundRevalidate = true;\n } else {\n if (entry.isStale) {\n workStore.pendingRevalidates ??= {};\n if (!workStore.pendingRevalidates[cacheKey]) {\n const pendingRevalidate = doOriginalFetch(true).then(async (response)=>({\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n })).finally(()=>{\n workStore.pendingRevalidates ??= {};\n delete workStore.pendingRevalidates[cacheKey || ''];\n });\n // Attach the empty catch here so we don't get a \"unhandled\n // promise rejection\" warning.\n pendingRevalidate.catch(console.error);\n workStore.pendingRevalidates[cacheKey] = pendingRevalidate;\n }\n }\n cachedFetchData = entry.value.data;\n }\n }\n }\n if (cachedFetchData) {\n if (fetchStart) {\n trackFetchMetric(workStore, {\n start: fetchStart,\n url: fetchUrl,\n cacheReason,\n cacheStatus: isHmrRefreshCache ? 'hmr' : 'hit',\n cacheWarning,\n status: cachedFetchData.status || 200,\n method: (init == null ? void 0 : init.method) || 'GET'\n });\n }\n const response = new Response(Buffer.from(cachedFetchData.body, 'base64'), {\n headers: cachedFetchData.headers,\n status: cachedFetchData.status\n });\n Object.defineProperty(response, 'url', {\n value: cachedFetchData.url\n });\n return response;\n }\n }\n if (workStore.isStaticGeneration && init && typeof init === 'object') {\n const { cache } = init;\n // Delete `cache` property as Cloudflare Workers will throw an error\n if (isEdgeRuntime) delete init.cache;\n if (cache === 'no-store') {\n // If enabled, we should bail out of static generation.\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n if (cacheSignal) {\n cacheSignal.endRead();\n cacheSignal = null;\n }\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\n default:\n }\n }\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `no-store fetch ${input} ${workStore.route}`);\n }\n const hasNextConfig = 'next' in init;\n const { next = {} } = init;\n if (typeof next.revalidate === 'number' && revalidateStore && next.revalidate < revalidateStore.revalidate) {\n if (next.revalidate === 0) {\n // If enabled, we should bail out of static generation.\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, 'fetch()');\n default:\n }\n }\n (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`);\n }\n if (!workStore.forceStatic || next.revalidate !== 0) {\n revalidateStore.revalidate = next.revalidate;\n }\n }\n if (hasNextConfig) delete init.next;\n }\n // if we are revalidating the whole page via time or on-demand and\n // the fetch cache entry is stale we should still de-dupe the\n // origin hit if it's a cache-able entry\n if (cacheKey && isForegroundRevalidate) {\n const pendingRevalidateKey = cacheKey;\n workStore.pendingRevalidates ??= {};\n let pendingRevalidate = workStore.pendingRevalidates[pendingRevalidateKey];\n if (pendingRevalidate) {\n const revalidatedResult = await pendingRevalidate;\n return new Response(revalidatedResult.body, {\n headers: revalidatedResult.headers,\n status: revalidatedResult.status,\n statusText: revalidatedResult.statusText\n });\n }\n // We used to just resolve the Response and clone it however for\n // static generation with dynamicIO we need the response to be able to\n // be resolved in a microtask and cloning the response will never have\n // a body that can resolve in a microtask in node (as observed through\n // experimentation) So instead we await the body and then when it is\n // available we construct manually cloned Response objects with the\n // body as an ArrayBuffer. This will be resolvable in a microtask\n // making it compatible with dynamicIO.\n const pendingResponse = doOriginalFetch(true, cacheReasonOverride)// We're cloning the response using this utility because there\n // exists a bug in the undici library around response cloning.\n // See the following pull request for more details:\n // https://github.com/vercel/next.js/pull/73274\n .then(_cloneresponse.cloneResponse);\n pendingRevalidate = pendingResponse.then(async (responses)=>{\n const response = responses[0];\n return {\n body: await response.arrayBuffer(),\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n };\n }).finally(()=>{\n var _workStore_pendingRevalidates;\n // If the pending revalidate is not present in the store, then\n // we have nothing to delete.\n if (!((_workStore_pendingRevalidates = workStore.pendingRevalidates) == null ? void 0 : _workStore_pendingRevalidates[pendingRevalidateKey])) {\n return;\n }\n delete workStore.pendingRevalidates[pendingRevalidateKey];\n });\n // Attach the empty catch here so we don't get a \"unhandled promise\n // rejection\" warning\n pendingRevalidate.catch(()=>{});\n workStore.pendingRevalidates[pendingRevalidateKey] = pendingRevalidate;\n return pendingResponse.then((responses)=>responses[1]);\n } else {\n return doOriginalFetch(false, cacheReasonOverride);\n }\n });\n if (cacheSignal) {\n try {\n return await result;\n } finally{\n if (cacheSignal) {\n cacheSignal.endRead();\n }\n }\n }\n return result;\n };\n // Attach the necessary properties to the patched fetch function.\n // We don't use this to determine if the fetch function has been patched,\n // but for external consumers to determine if the fetch function has been\n // patched.\n patched.__nextPatched = true;\n patched.__nextGetStaticStore = ()=>workAsyncStorage;\n patched._nextOriginalFetch = originFetch;\n globalThis[NEXT_PATCH_SYMBOL] = true;\n // Assign the function name also as a name property, so that it's preserved\n // even when mangling is enabled.\n Object.defineProperty(patched, 'name', {\n value: 'fetch',\n writable: false\n });\n return patched;\n}\nfunction patchFetch(options) {\n // If we've already patched fetch, we should not patch it again.\n if (isFetchPatched()) return;\n // Grab the original fetch function. We'll attach this so we can use it in\n // the patched fetch function.\n const original = (0, _dedupefetch.createDedupeFetch)(globalThis.fetch);\n // Set the global fetch to the patched fetch.\n globalThis.fetch = createPatchedFetcher(original, options);\n}\n\n//# sourceMappingURL=patch-fetch.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcGF0Y2gtZmV0Y2guanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsdUZBQW1CO0FBQzlDLGdCQUFnQixtQkFBTyxDQUFDLGlGQUFnQjtBQUN4QyxvQkFBb0IsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDakQsMEJBQTBCLG1CQUFPLENBQUMsOEdBQWlDO0FBQ25FLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxxQkFBcUIsbUJBQU8sQ0FBQyxpRkFBZ0I7QUFDN0MsdUJBQXVCLG1CQUFPLENBQUMsd0ZBQW1CO0FBQ2xELG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCx1QkFBdUIsbUJBQU8sQ0FBQyxxRkFBa0I7QUFDakQsc0JBQXNCLFFBQXdCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDViwrRUFBK0UsY0FBYyxRQUFRLE1BQU07QUFDM0c7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsaUJBQWlCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsVUFBVTtBQUNWO0FBQ0E7QUFDQSxrREFBa0Qsc0NBQXNDO0FBQ3hGLGFBQWE7QUFDYixVQUFVO0FBQ1Y7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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcGF0Y2gtZmV0Y2guanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBORVhUX1BBVENIX1NZTUJPTDogbnVsbCxcbiAgICBjcmVhdGVQYXRjaGVkRmV0Y2hlcjogbnVsbCxcbiAgICBwYXRjaEZldGNoOiBudWxsLFxuICAgIHZhbGlkYXRlUmV2YWxpZGF0ZTogbnVsbCxcbiAgICB2YWxpZGF0ZVRhZ3M6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgTkVYVF9QQVRDSF9TWU1CT0w6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9QQVRDSF9TWU1CT0w7XG4gICAgfSxcbiAgICBjcmVhdGVQYXRjaGVkRmV0Y2hlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVQYXRjaGVkRmV0Y2hlcjtcbiAgICB9LFxuICAgIHBhdGNoRmV0Y2g6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGF0Y2hGZXRjaDtcbiAgICB9LFxuICAgIHZhbGlkYXRlUmV2YWxpZGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB2YWxpZGF0ZVJldmFsaWRhdGU7XG4gICAgfSxcbiAgICB2YWxpZGF0ZVRhZ3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVUYWdzO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuL3RyYWNlL2NvbnN0YW50c1wiKTtcbmNvbnN0IF90cmFjZXIgPSByZXF1aXJlKFwiLi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfY29uc3RhbnRzMSA9IHJlcXVpcmUoXCIuLi8uLi9saWIvY29uc3RhbnRzXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmcgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZ1wiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5ndXRpbHMgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHNcIik7XG5jb25zdCBfZGVkdXBlZmV0Y2ggPSByZXF1aXJlKFwiLi9kZWR1cGUtZmV0Y2hcIik7XG5jb25zdCBfcmVzcG9uc2VjYWNoZSA9IHJlcXVpcmUoXCIuLi9yZXNwb25zZS1jYWNoZVwiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmNvbnN0IF9jbG9uZXJlc3BvbnNlID0gcmVxdWlyZShcIi4vY2xvbmUtcmVzcG9uc2VcIik7XG5jb25zdCBpc0VkZ2VSdW50aW1lID0gcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZSc7XG5jb25zdCBORVhUX1BBVENIX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ25leHQtcGF0Y2gnKTtcbmZ1bmN0aW9uIGlzRmV0Y2hQYXRjaGVkKCkge1xuICAgIHJldHVybiBnbG9iYWxUaGlzW05FWFRfUEFUQ0hfU1lNQk9MXSA9PT0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIHZhbGlkYXRlUmV2YWxpZGF0ZShyZXZhbGlkYXRlVmFsLCByb3V0ZSkge1xuICAgIHRyeSB7XG4gICAgICAgIGxldCBub3JtYWxpemVkUmV2YWxpZGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHJldmFsaWRhdGVWYWwgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBub3JtYWxpemVkUmV2YWxpZGF0ZSA9IF9jb25zdGFudHMxLklORklOSVRFX0NBQ0hFO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXZhbGlkYXRlVmFsID09PSAnbnVtYmVyJyAmJiAhaXNOYU4ocmV2YWxpZGF0ZVZhbCkgJiYgcmV2YWxpZGF0ZVZhbCA+IC0xKSB7XG4gICAgICAgICAgICBub3JtYWxpemVkUmV2YWxpZGF0ZSA9IHJldmFsaWRhdGVWYWw7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldmFsaWRhdGVWYWwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBJbnZhbGlkIHJldmFsaWRhdGUgdmFsdWUgXCIke3JldmFsaWRhdGVWYWx9XCIgb24gXCIke3JvdXRlfVwiLCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIG51bWJlciBvciBmYWxzZWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMTc5XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZFJldmFsaWRhdGU7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIGhhbmRsZSBjbGllbnQgY29tcG9uZW50IGVycm9yIGZyb20gYXR0ZW1wdGluZyB0byBjaGVjayByZXZhbGlkYXRlIHZhbHVlXG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnIubWVzc2FnZS5pbmNsdWRlcygnSW52YWxpZCByZXZhbGlkYXRlJykpIHtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHZhbGlkYXRlVGFncyh0YWdzLCBkZXNjcmlwdGlvbikge1xuICAgIGNvbnN0IHZhbGlkVGFncyA9IFtdO1xuICAgIGNvbnN0IGludmFsaWRUYWdzID0gW107XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCB0YWcgPSB0YWdzW2ldO1xuICAgICAgICBpZiAodHlwZW9mIHRhZyAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGludmFsaWRUYWdzLnB1c2goe1xuICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICByZWFzb246ICdpbnZhbGlkIHR5cGUsIG11c3QgYmUgYSBzdHJpbmcnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0YWcubGVuZ3RoID4gX2NvbnN0YW50czEuTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSCkge1xuICAgICAgICAgICAgaW52YWxpZFRhZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgIHJlYXNvbjogYGV4Y2VlZGVkIG1heCBsZW5ndGggb2YgJHtfY29uc3RhbnRzMS5ORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIfWBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsaWRUYWdzLnB1c2godGFnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsaWRUYWdzLmxlbmd0aCA+IF9jb25zdGFudHMxLk5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBXYXJuaW5nOiBleGNlZWRlZCBtYXggdGFnIGNvdW50IGZvciAke2Rlc2NyaXB0aW9ufSwgZHJvcHBlZCB0YWdzOmAsIHRhZ3Muc2xpY2UoaSkuam9pbignLCAnKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoaW52YWxpZFRhZ3MubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFdhcm5pbmc6IGludmFsaWQgdGFncyBwYXNzZWQgdG8gJHtkZXNjcmlwdGlvbn06IGApO1xuICAgICAgICBmb3IgKGNvbnN0IHsgdGFnLCByZWFzb24gfSBvZiBpbnZhbGlkVGFncyl7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgdGFnOiBcIiR7dGFnfVwiICR7cmVhc29ufWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWxpZFRhZ3M7XG59XG5mdW5jdGlvbiB0cmFja0ZldGNoTWV0cmljKHdvcmtTdG9yZSwgY3R4KSB7XG4gICAgdmFyIF93b3JrU3RvcmVfcmVxdWVzdEVuZGVkU3RhdGU7XG4gICAgLy8gSWYgdGhlIHN0YXRpYyBnZW5lcmF0aW9uIHN0b3JlIGlzIG5vdCBhdmFpbGFibGUsIHdlIGNhbid0IHRyYWNrIHRoZSBmZXRjaFxuICAgIGlmICghd29ya1N0b3JlKSByZXR1cm47XG4gICAgaWYgKChfd29ya1N0b3JlX3JlcXVlc3RFbmRlZFN0YXRlID0gd29ya1N0b3JlLnJlcXVlc3RFbmRlZFN0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX3dvcmtTdG9yZV9yZXF1ZXN0RW5kZWRTdGF0ZS5lbmRlZCkgcmV0dXJuO1xuICAgIGNvbnN0IGlzRGVidWdCdWlsZCA9ICghIXByb2Nlc3MuZW52Lk5FWFRfREVCVUdfQlVJTEQgfHwgcHJvY2Vzcy5lbnYuTkVYVF9TU0dfRkVUQ0hfTUVUUklDUyA9PT0gJzEnKSAmJiB3b3JrU3RvcmUuaXNTdGF0aWNHZW5lcmF0aW9uO1xuICAgIGNvbnN0IGlzRGV2ZWxvcG1lbnQgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JztcbiAgICBpZiAoLy8gVGhlIG9ubHkgdGltZSB3ZSB3YW50IHRvIHRyYWNrIGZldGNoIG1ldHJpY3Mgb3V0c2lkZSBvZiBkZXZlbG9wbWVudCBpcyB3aGVuXG4gICAgLy8gd2UgYXJlIHBlcmZvcm1pbmcgYSBzdGF0aWMgZ2VuZXJhdGlvbiAmIHdlIGFyZSBpbiBkZWJ1ZyBtb2RlLlxuICAgICFpc0RlYnVnQnVpbGQgJiYgIWlzRGV2ZWxvcG1lbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB3b3JrU3RvcmUuZmV0Y2hNZXRyaWNzID8/PSBbXTtcbiAgICB3b3JrU3RvcmUuZmV0Y2hNZXRyaWNzLnB1c2goe1xuICAgICAgICAuLi5jdHgsXG4gICAgICAgIGVuZDogcGVyZm9ybWFuY2UudGltZU9yaWdpbiArIHBlcmZvcm1hbmNlLm5vdygpLFxuICAgICAgICBpZHg6IHdvcmtTdG9yZS5uZXh0RmV0Y2hJZCB8fCAwXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVQYXRjaGVkRmV0Y2hlcihvcmlnaW5GZXRjaCwgeyB3b3JrQXN5bmNTdG9yYWdlLCB3b3JrVW5pdEFzeW5jU3RvcmFnZSB9KSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBwYXRjaGVkIGZldGNoIGZ1bmN0aW9uLlxuICAgIGNvbnN0IHBhdGNoZWQgPSBhc3luYyBmdW5jdGlvbiBmZXRjaChpbnB1dCwgaW5pdCkge1xuICAgICAgICB2YXIgX2luaXRfbWV0aG9kLCBfaW5pdF9uZXh0O1xuICAgICAgICBsZXQgdXJsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QgPyBpbnB1dC51cmwgOiBpbnB1dCk7XG4gICAgICAgICAgICB1cmwudXNlcm5hbWUgPSAnJztcbiAgICAgICAgICAgIHVybC5wYXNzd29yZCA9ICcnO1xuICAgICAgICB9IGNhdGNoICB7XG4gICAgICAgICAgICAvLyBFcnJvciBjYXVzZWQgYnkgbWFsZm9ybWVkIFVSTCBzaG91bGQgYmUgaGFuZGxlZCBieSBuYXRpdmUgZmV0Y2hcbiAgICAgICAgICAgIHVybCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmZXRjaFVybCA9ICh1cmwgPT0gbnVsbCA/IHZvaWQgMCA6IHVybC5ocmVmKSA/PyAnJztcbiAgICAgICAgY29uc3QgbWV0aG9kID0gKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IChfaW5pdF9tZXRob2QgPSBpbml0Lm1ldGhvZCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X21ldGhvZC50b1VwcGVyQ2FzZSgpKSB8fCAnR0VUJztcbiAgICAgICAgLy8gRG8gY3JlYXRlIGEgbmV3IHNwYW4gdHJhY2UgZm9yIGludGVybmFsIGZldGNoZXMgaW4gdGhlXG4gICAgICAgIC8vIG5vbi12ZXJib3NlIG1vZGUuXG4gICAgICAgIGNvbnN0IGlzSW50ZXJuYWwgPSAoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogKF9pbml0X25leHQgPSBpbml0Lm5leHQpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9uZXh0LmludGVybmFsKSA9PT0gdHJ1ZTtcbiAgICAgICAgY29uc3QgaGlkZVNwYW4gPSBwcm9jZXNzLmVudi5ORVhUX09URUxfRkVUQ0hfRElTQUJMRUQgPT09ICcxJztcbiAgICAgICAgLy8gV2UgZG9uJ3QgdHJhY2sgZmV0Y2ggbWV0cmljcyBmb3IgaW50ZXJuYWwgZmV0Y2hlc1xuICAgICAgICAvLyBzbyBpdCdzIG5vdCBjcml0aWNhbCB0aGF0IHdlIGhhdmUgYSBzdGFydCB0aW1lLCBhcyBpdCB3b24ndCBiZSByZWNvcmRlZC5cbiAgICAgICAgLy8gVGhpcyBpcyB0byB3b3JrYXJvdW5kIGEgZmxha3kgaXNzdWUgd2hlcmUgcGVyZm9ybWFuY2UgQVBJcyBtaWdodFxuICAgICAgICAvLyBub3QgYmUgYXZhaWxhYmxlIGFuZCB3aWxsIHJlcXVpcmUgZm9sbG93LXVwIGludmVzdGlnYXRpb24uXG4gICAgICAgIGNvbnN0IGZldGNoU3RhcnQgPSBpc0ludGVybmFsID8gdW5kZWZpbmVkIDogcGVyZm9ybWFuY2UudGltZU9yaWdpbiArIHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAvLyBEdXJpbmcgc3RhdGljIGdlbmVyYXRpb24gd2UgdHJhY2sgY2FjaGUgcmVhZHMgc28gd2UgY2FuIHJlYXNvbiBhYm91dCB3aGVuIHRoZXkgZmlsbFxuICAgICAgICBsZXQgY2FjaGVTaWduYWwgPSB3b3JrVW5pdFN0b3JlICYmIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlcicgPyB3b3JrVW5pdFN0b3JlLmNhY2hlU2lnbmFsIDogbnVsbDtcbiAgICAgICAgaWYgKGNhY2hlU2lnbmFsKSB7XG4gICAgICAgICAgICBjYWNoZVNpZ25hbC5iZWdpblJlYWQoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSAoMCwgX3RyYWNlci5nZXRUcmFjZXIpKCkudHJhY2UoaXNJbnRlcm5hbCA/IF9jb25zdGFudHMuTmV4dE5vZGVTZXJ2ZXJTcGFuLmludGVybmFsRmV0Y2ggOiBfY29uc3RhbnRzLkFwcFJlbmRlclNwYW4uZmV0Y2gsIHtcbiAgICAgICAgICAgIGhpZGVTcGFuLFxuICAgICAgICAgICAga2luZDogX3RyYWNlci5TcGFuS2luZC5DTElFTlQsXG4gICAgICAgICAgICBzcGFuTmFtZTogW1xuICAgICAgICAgICAgICAgICdmZXRjaCcsXG4gICAgICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgICAgIGZldGNoVXJsXG4gICAgICAgICAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyksXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgJ2h0dHAudXJsJzogZmV0Y2hVcmwsXG4gICAgICAgICAgICAgICAgJ2h0dHAubWV0aG9kJzogbWV0aG9kLFxuICAgICAgICAgICAgICAgICduZXQucGVlci5uYW1lJzogdXJsID09IG51bGwgPyB2b2lkIDAgOiB1cmwuaG9zdG5hbWUsXG4gICAgICAgICAgICAgICAgJ25ldC5wZWVyLnBvcnQnOiAodXJsID09IG51bGwgPyB2b2lkIDAgOiB1cmwucG9ydCkgfHwgdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGFzeW5jICgpPT57XG4gICAgICAgICAgICB2YXIgX2dldFJlcXVlc3RNZXRhO1xuICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhbiBpbnRlcm5hbCBmZXRjaCwgd2Ugc2hvdWxkIG5vdCBkbyBhbnkgc3BlY2lhbCB0cmVhdG1lbnQuXG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5GZXRjaChpbnB1dCwgaW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGUgd29ya1N0b3JlIGlzIG5vdCBhdmFpbGFibGUsIHdlIGNhbid0IGRvIGFueVxuICAgICAgICAgICAgLy8gc3BlY2lhbCB0cmVhdG1lbnQgb2YgZmV0Y2gsIHRoZXJlZm9yZSBmYWxsYmFjayB0byB0aGUgb3JpZ2luYWxcbiAgICAgICAgICAgIC8vIGZldGNoIGltcGxlbWVudGF0aW9uLlxuICAgICAgICAgICAgaWYgKCF3b3JrU3RvcmUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luRmV0Y2goaW5wdXQsIGluaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIGFsc28gZmFsbGJhY2sgdG8gdGhlIG9yaWdpbmFsIGZldGNoIGltcGxlbWVudGF0aW9uIGlmIHdlXG4gICAgICAgICAgICAvLyBhcmUgaW4gZHJhZnQgbW9kZSwgaXQgZG9lcyBub3QgY29uc3RpdHV0ZSBhIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5pc0RyYWZ0TW9kZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5GZXRjaChpbnB1dCwgaW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpc1JlcXVlc3RJbnB1dCA9IGlucHV0ICYmIHR5cGVvZiBpbnB1dCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIGlucHV0Lm1ldGhvZCA9PT0gJ3N0cmluZyc7XG4gICAgICAgICAgICBjb25zdCBnZXRSZXF1ZXN0TWV0YSA9IChmaWVsZCk9PntcbiAgICAgICAgICAgICAgICAvLyBJZiByZXF1ZXN0IGlucHV0IGlzIHByZXNlbnQgYnV0IGluaXQgaXMgbm90LCByZXRyaWV2ZSBmcm9tIGlucHV0IGZpcnN0LlxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5pdCA9PSBudWxsID8gdm9pZCAwIDogaW5pdFtmaWVsZF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlIHx8IChpc1JlcXVlc3RJbnB1dCA/IGlucHV0W2ZpZWxkXSA6IG51bGwpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGxldCBmaW5hbFJldmFsaWRhdGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBnZXROZXh0RmllbGQgPSAoZmllbGQpPT57XG4gICAgICAgICAgICAgICAgdmFyIF9pbml0X25leHQsIF9pbml0X25leHQxLCBfaW5wdXRfbmV4dDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9mIChpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfbmV4dCA9IGluaXQubmV4dCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X25leHRbZmllbGRdKSAhPT0gJ3VuZGVmaW5lZCcgPyBpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfbmV4dDEgPSBpbml0Lm5leHQpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9uZXh0MVtmaWVsZF0gOiBpc1JlcXVlc3RJbnB1dCA/IChfaW5wdXRfbmV4dCA9IGlucHV0Lm5leHQpID09IG51bGwgPyB2b2lkIDAgOiBfaW5wdXRfbmV4dFtmaWVsZF0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gUmVxdWVzdEluaXQgZG9lc24ndCBrZWVwIGV4dHJhIGZpZWxkcyBlLmcuIG5leHQgc28gaXQnc1xuICAgICAgICAgICAgLy8gb25seSBhdmFpbGFibGUgaWYgaW5pdCBpcyB1c2VkIHNlcGFyYXRlXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbEZldGNoUmV2YWxpZGF0ZSA9IGdldE5leHRGaWVsZCgncmV2YWxpZGF0ZScpO1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPSBvcmlnaW5hbEZldGNoUmV2YWxpZGF0ZTtcbiAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSB2YWxpZGF0ZVRhZ3MoZ2V0TmV4dEZpZWxkKCd0YWdzJykgfHwgW10sIGBmZXRjaCAke2lucHV0LnRvU3RyaW5nKCl9YCk7XG4gICAgICAgICAgICBjb25zdCByZXZhbGlkYXRlU3RvcmUgPSB3b3JrVW5pdFN0b3JlICYmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdjYWNoZScgfHwgd29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJyB8fCAvLyBUT0RPOiBzdG9wIGFjY3VtdWxhdGluZyB0YWdzIGluIGNsaWVudCBwcmVyZW5kZXJcbiAgICAgICAgICAgIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1jbGllbnQnIHx8IHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInIHx8IHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1sZWdhY3knKSA/IHdvcmtVbml0U3RvcmUgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAocmV2YWxpZGF0ZVN0b3JlKSB7XG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFncykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29sbGVjdCB0YWdzIG9udG8gcGFyZW50IGNhY2hlcyBvciBwYXJlbnQgcHJlcmVuZGVycy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sbGVjdGVkVGFncyA9IHJldmFsaWRhdGVTdG9yZS50YWdzID8/IChyZXZhbGlkYXRlU3RvcmUudGFncyA9IFtdKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB0YWcgb2YgdGFncyl7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbGxlY3RlZFRhZ3MuaW5jbHVkZXModGFnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3RlZFRhZ3MucHVzaCh0YWcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaW1wbGljaXRUYWdzID0gd29ya1VuaXRTdG9yZSA9PSBudWxsID8gdm9pZCAwIDogd29ya1VuaXRTdG9yZS5pbXBsaWNpdFRhZ3M7XG4gICAgICAgICAgICAvLyBJbnNpZGUgdW5zdGFibGUtY2FjaGUgd2UgdHJlYXQgaXQgdGhlIHNhbWUgYXMgZm9yY2Utbm8tc3RvcmUgb24gdGhlXG4gICAgICAgICAgICAvLyBwYWdlLlxuICAgICAgICAgICAgY29uc3QgcGFnZUZldGNoQ2FjaGVNb2RlID0gd29ya1VuaXRTdG9yZSAmJiB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICd1bnN0YWJsZS1jYWNoZScgPyAnZm9yY2Utbm8tc3RvcmUnIDogd29ya1N0b3JlLmZldGNoQ2FjaGU7XG4gICAgICAgICAgICBjb25zdCBpc1VzaW5nTm9TdG9yZSA9ICEhd29ya1N0b3JlLmlzVW5zdGFibGVOb1N0b3JlO1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID0gZ2V0UmVxdWVzdE1ldGEoJ2NhY2hlJyk7XG4gICAgICAgICAgICBsZXQgY2FjaGVSZWFzb24gPSAnJztcbiAgICAgICAgICAgIGxldCBjYWNoZVdhcm5pbmc7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgY3VycmVudEZldGNoUmV2YWxpZGF0ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcmV2YWxpZGF0ZSB2YWx1ZSBjb25mbGljdHMgd2l0aCB0aGUgY2FjaGUgdmFsdWUsIHdlIHNob3VsZCB3YXJuIHRoZSB1c2VyIGFuZCB1bnNldCB0aGUgY29uZmxpY3RpbmcgdmFsdWVzLlxuICAgICAgICAgICAgICAgIGNvbnN0IGlzQ29uZmxpY3RpbmdSZXZhbGlkYXRlID0gLy8gcmV2YWxpZGF0ZTogMCBhbmQgY2FjaGU6IGZvcmNlLWNhY2hlXG4gICAgICAgICAgICAgICAgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICdmb3JjZS1jYWNoZScgJiYgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9PT0gMCB8fCAvLyByZXZhbGlkYXRlOiA+MCBvciByZXZhbGlkYXRlOiBmYWxzZSBhbmQgY2FjaGU6IG5vLXN0b3JlXG4gICAgICAgICAgICAgICAgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICduby1zdG9yZScgJiYgKGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPiAwIHx8IGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT09IGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNDb25mbGljdGluZ1JldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVXYXJuaW5nID0gYFNwZWNpZmllZCBcImNhY2hlOiAke2N1cnJlbnRGZXRjaENhY2hlQ29uZmlnfVwiIGFuZCBcInJldmFsaWRhdGU6ICR7Y3VycmVudEZldGNoUmV2YWxpZGF0ZX1cIiwgb25seSBvbmUgc2hvdWxkIGJlIHNwZWNpZmllZC5gO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoYXNFeHBsaWNpdEZldGNoQ2FjaGVPcHRPdXQgPSAvLyBmZXRjaCBjb25maWcgaXRzZWxmIHNpZ25hbHMgbm90IHRvIGNhY2hlXG4gICAgICAgICAgICBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ25vLWNhY2hlJyB8fCBjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ25vLXN0b3JlJyB8fCAvLyB0aGUgZmV0Y2ggaXNuJ3QgZXhwbGljaXRseSBjYWNoaW5nIGFuZCB0aGUgc2VnbWVudCBsZXZlbCBjYWNoZSBjb25maWcgc2lnbmFscyBub3QgdG8gY2FjaGVcbiAgICAgICAgICAgIC8vIG5vdGU6IGBwYWdlRmV0Y2hDYWNoZU1vZGVgIGlzIGFsc28gc2V0IGJ5IGJlaW5nIGluIGFuIHVuc3RhYmxlX2NhY2hlIGNvbnRleHQuXG4gICAgICAgICAgICBwYWdlRmV0Y2hDYWNoZU1vZGUgPT09ICdmb3JjZS1uby1zdG9yZScgfHwgcGFnZUZldGNoQ2FjaGVNb2RlID09PSAnb25seS1uby1zdG9yZSc7XG4gICAgICAgICAgICAvLyBJZiBubyBleHBsaWNpdCBmZXRjaCBjYWNoZSBtb2RlIGlzIHNldCwgYnV0IGR5bmFtaWMgPSBgZm9yY2UtZHluYW1pY2AgaXMgc2V0LFxuICAgICAgICAgICAgLy8gd2Ugc2hvdWxkbid0IGNvbnNpZGVyIGNhY2hpbmcgdGhlIGZldGNoLiBUaGlzIGlzIGJlY2F1c2UgdGhlIGBkeW5hbWljYCBjYWNoZVxuICAgICAgICAgICAgLy8gaXMgY29uc2lkZXJlZCBhIFwidG9wLWxldmVsXCIgY2FjaGUgbW9kZSwgd2hlcmVhcyBzb21ldGhpbmcgbGlrZSBgZmV0Y2hDYWNoZWAgaXMgbW9yZVxuICAgICAgICAgICAgLy8gZmluZS1ncmFpbmVkLiBUb3AtbGV2ZWwgbW9kZXMgYXJlIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHJlYXNvbmFibGUgZGVmYXVsdHMgZm9yIHRoZVxuICAgICAgICAgICAgLy8gb3RoZXIgY29uZmlndXJhdGlvbnMuXG4gICAgICAgICAgICBjb25zdCBub0ZldGNoQ29uZmlnQW5kRm9yY2VEeW5hbWljID0gIXBhZ2VGZXRjaENhY2hlTW9kZSAmJiAhY3VycmVudEZldGNoQ2FjaGVDb25maWcgJiYgIWN1cnJlbnRGZXRjaFJldmFsaWRhdGUgJiYgd29ya1N0b3JlLmZvcmNlRHluYW1pYztcbiAgICAgICAgICAgIGlmICgvLyBmb3JjZS1jYWNoZSB3YXMgc3BlY2lmaWVkIHdpdGhvdXQgYSByZXZhbGlkYXRlIHZhbHVlLiBXZSBzZXQgdGhlIHJldmFsaWRhdGUgdmFsdWUgdG8gZmFsc2VcbiAgICAgICAgICAgIC8vIHdoaWNoIHdpbGwgc2lnbmFsIHRoZSBjYWNoZSB0byBub3QgcmV2YWxpZGF0ZVxuICAgICAgICAgICAgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICdmb3JjZS1jYWNoZScgJiYgdHlwZW9mIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChoYXNFeHBsaWNpdEZldGNoQ2FjaGVPcHRPdXQgfHwgbm9GZXRjaENvbmZpZ0FuZEZvcmNlRHluYW1pYykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnbm8tY2FjaGUnIHx8IGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09PSAnbm8tc3RvcmUnKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSBgY2FjaGU6ICR7Y3VycmVudEZldGNoQ2FjaGVDb25maWd9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsUmV2YWxpZGF0ZSA9IHZhbGlkYXRlUmV2YWxpZGF0ZShjdXJyZW50RmV0Y2hSZXZhbGlkYXRlLCB3b3JrU3RvcmUucm91dGUpO1xuICAgICAgICAgICAgY29uc3QgX2hlYWRlcnMgPSBnZXRSZXF1ZXN0TWV0YSgnaGVhZGVycycpO1xuICAgICAgICAgICAgY29uc3QgaW5pdEhlYWRlcnMgPSB0eXBlb2YgKF9oZWFkZXJzID09IG51bGwgPyB2b2lkIDAgOiBfaGVhZGVycy5nZXQpID09PSAnZnVuY3Rpb24nID8gX2hlYWRlcnMgOiBuZXcgSGVhZGVycyhfaGVhZGVycyB8fCB7fSk7XG4gICAgICAgICAgICBjb25zdCBoYXNVbkNhY2hlYWJsZUhlYWRlciA9IGluaXRIZWFkZXJzLmdldCgnYXV0aG9yaXphdGlvbicpIHx8IGluaXRIZWFkZXJzLmdldCgnY29va2llJyk7XG4gICAgICAgICAgICBjb25zdCBpc1VuQ2FjaGVhYmxlTWV0aG9kID0gIVtcbiAgICAgICAgICAgICAgICAnZ2V0JyxcbiAgICAgICAgICAgICAgICAnaGVhZCdcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoKChfZ2V0UmVxdWVzdE1ldGEgPSBnZXRSZXF1ZXN0TWV0YSgnbWV0aG9kJykpID09IG51bGwgPyB2b2lkIDAgOiBfZ2V0UmVxdWVzdE1ldGEudG9Mb3dlckNhc2UoKSkgfHwgJ2dldCcpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAqIFdlIGF1dG9tYXRpY2FsbHkgZGlzYWJsZSBmZXRjaCBjYWNoaW5nIHVuZGVyIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAgICAgICAgICogLSBGZXRjaCBjYWNoZSBjb25maWdzIGFyZSBub3Qgc2V0LiBTcGVjaWZpY2FsbHk6XG4gICAgICAgICAqICAgIC0gQSBwYWdlIGZldGNoIGNhY2hlIG1vZGUgaXMgbm90IHNldCAoZXhwb3J0IGNvbnN0IGZldGNoQ2FjaGU9Li4uKVxuICAgICAgICAgKiAgICAtIEEgZmV0Y2ggY2FjaGUgbW9kZSBpcyBub3Qgc2V0IGluIHRoZSBmZXRjaCBjYWxsIChmZXRjaCh1cmwsIHsgY2FjaGU6IC4uLiB9KSlcbiAgICAgICAgICogICAgICBvciB0aGUgZmV0Y2ggY2FjaGUgbW9kZSBpcyBzZXQgdG8gJ2RlZmF1bHQnXG4gICAgICAgICAqICAgIC0gQSBmZXRjaCByZXZhbGlkYXRlIHZhbHVlIGlzIG5vdCBzZXQgaW4gdGhlIGZldGNoIGNhbGwgKGZldGNoKHVybCwgeyByZXZhbGlkYXRlOiAuLi4gfSkpXG4gICAgICAgICAqIC0gT1IgdGhlIGZldGNoIGNvbWVzIGFmdGVyIGEgY29uZmlndXJhdGlvbiB0aGF0IHRyaWdnZXJlZCBkeW5hbWljIHJlbmRlcmluZyAoZS5nLiwgcmVhZGluZyBjb29raWVzKCkpXG4gICAgICAgICAqICAgYW5kIHRoZSBmZXRjaCB3YXMgY29uc2lkZXJlZCB1bmNhY2hlYWJsZSAoZS5nLiwgUE9TVCBtZXRob2Qgb3IgaGFzIGF1dGhvcml6YXRpb24gaGVhZGVycylcbiAgICAgICAgICovIGNvbnN0IGhhc05vRXhwbGljaXRDYWNoZUNvbmZpZyA9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcbiAgICAgICAgICAgIHBhZ2VGZXRjaENhY2hlTW9kZSA9PSB1bmRlZmluZWQgJiYgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgKGN1cnJlbnRGZXRjaENhY2hlQ29uZmlnID09IHVuZGVmaW5lZCB8fCAvLyB3aGVuIGNvbnNpZGVyaW5nIHdoZXRoZXIgdG8gb3B0IGludG8gdGhlIGRlZmF1bHQgXCJuby1jYWNoZVwiIGZldGNoIHNlbWFudGljcyxcbiAgICAgICAgICAgIC8vIGEgXCJkZWZhdWx0XCIgY2FjaGUgY29uZmlnIHNob3VsZCBiZSB0cmVhdGVkIHRoZSBzYW1lIGFzIG5vIGNhY2hlIGNvbmZpZ1xuICAgICAgICAgICAgY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICdkZWZhdWx0JykgJiYgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICAgICAgY3VycmVudEZldGNoUmV2YWxpZGF0ZSA9PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBsZXQgYXV0b05vQ2FjaGUgPSBCb29sZWFuKChoYXNVbkNhY2hlYWJsZUhlYWRlciB8fCBpc1VuQ2FjaGVhYmxlTWV0aG9kKSAmJiAocmV2YWxpZGF0ZVN0b3JlID09IG51bGwgPyB2b2lkIDAgOiByZXZhbGlkYXRlU3RvcmUucmV2YWxpZGF0ZSkgPT09IDApO1xuICAgICAgICAgICAgbGV0IGlzSW1wbGljaXRCdWlsZFRpbWVDYWNoZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFhdXRvTm9DYWNoZSAmJiBoYXNOb0V4cGxpY2l0Q2FjaGVDb25maWcpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBlbmFibGUgYXV0b21hdGljIG5vLWNhY2hlIGJlaGF2aW9yIGR1cmluZyBidWlsZC10aW1lXG4gICAgICAgICAgICAgICAgLy8gcHJlcmVuZGVyaW5nIHNvIHRoYXQgd2UgY2FuIHN0aWxsIGxldmVyYWdlIHRoZSBmZXRjaCBjYWNoZSBiZXR3ZWVuXG4gICAgICAgICAgICAgICAgLy8gZXhwb3J0IHdvcmtlcnMuXG4gICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5pc0J1aWxkVGltZVByZXJlbmRlcmluZykge1xuICAgICAgICAgICAgICAgICAgICBpc0ltcGxpY2l0QnVpbGRUaW1lQ2FjaGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Ob0NhY2hlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGFzTm9FeHBsaWNpdENhY2hlQ29uZmlnICYmIHdvcmtVbml0U3RvcmUgIT09IHVuZGVmaW5lZCAmJiAod29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJyB8fCAvLyBXaGlsZSB3ZSBkb24ndCB3YW50IHRvIGRvIGNhY2hpbmcgaW4gdGhlIGNsaWVudCBzY29wZVxuICAgICAgICAgICAgLy8gd2Uga25vdyB0aGUgZmV0Y2ggd2lsbCBiZSBkeW5hbWljIGZvciBkeW5hbWljSU8gc28gd2VcbiAgICAgICAgICAgIC8vIG1heSBhcyB3ZWxsIGF2b2lkIHRoZSBjYWxsIGhlcmVcbiAgICAgICAgICAgIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1jbGllbnQnKSkge1xuICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgbm8gY2FjaGUgY29uZmlnLCBhbmQgd2UncmUgaW4gRHluYW1pYyBJL08gcHJlcmVuZGVyaW5nLCBpdCdsbCBiZSBhIGR5bmFtaWMgY2FsbC5cbiAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCBoYXZlIHRvIGlzc3VlIHRoYXQgZHluYW1pYyBjYWxsLlxuICAgICAgICAgICAgICAgIGlmIChjYWNoZVNpZ25hbCkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVNpZ25hbC5lbmRSZWFkKCk7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlU2lnbmFsID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkod29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsICdmZXRjaCgpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocGFnZUZldGNoQ2FjaGVNb2RlKXtcbiAgICAgICAgICAgICAgICBjYXNlICdmb3JjZS1uby1zdG9yZSc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ2ZldGNoQ2FjaGUgPSBmb3JjZS1uby1zdG9yZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ29ubHktbm8tc3RvcmUnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudEZldGNoQ2FjaGVDb25maWcgPT09ICdmb3JjZS1jYWNoZScgfHwgdHlwZW9mIGZpbmFsUmV2YWxpZGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgZmluYWxSZXZhbGlkYXRlID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYGNhY2hlOiAnZm9yY2UtY2FjaGUnIHVzZWQgb24gZmV0Y2ggZm9yICR7ZmV0Y2hVcmx9IHdpdGggJ2V4cG9ydCBjb25zdCBmZXRjaENhY2hlID0gJ29ubHktbm8tc3RvcmUnYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNDQ4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ2ZldGNoQ2FjaGUgPSBvbmx5LW5vLXN0b3JlJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnb25seS1jYWNoZSc6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50RmV0Y2hDYWNoZUNvbmZpZyA9PT0gJ25vLXN0b3JlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYGNhY2hlOiAnbm8tc3RvcmUnIHVzZWQgb24gZmV0Y2ggZm9yICR7ZmV0Y2hVcmx9IHdpdGggJ2V4cG9ydCBjb25zdCBmZXRjaENhY2hlID0gJ29ubHktY2FjaGUnYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTIxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnZm9yY2UtY2FjaGUnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT09ICd1bmRlZmluZWQnIHx8IGN1cnJlbnRGZXRjaFJldmFsaWRhdGUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9ICdmZXRjaENhY2hlID0gZm9yY2UtY2FjaGUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsUmV2YWxpZGF0ZSA9IF9jb25zdGFudHMxLklORklOSVRFX0NBQ0hFO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBmaW5hbFJldmFsaWRhdGUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VGZXRjaENhY2hlTW9kZSA9PT0gJ2RlZmF1bHQtY2FjaGUnICYmICFpc1VzaW5nTm9TdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICBmaW5hbFJldmFsaWRhdGUgPSBfY29uc3RhbnRzMS5JTkZJTklURV9DQUNIRTtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSAnZmV0Y2hDYWNoZSA9IGRlZmF1bHQtY2FjaGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFnZUZldGNoQ2FjaGVNb2RlID09PSAnZGVmYXVsdC1uby1zdG9yZScpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxSZXZhbGlkYXRlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSAnZmV0Y2hDYWNoZSA9IGRlZmF1bHQtbm8tc3RvcmUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNVc2luZ05vU3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgZmluYWxSZXZhbGlkYXRlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb24gPSAnbm9TdG9yZSBjYWxsJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGF1dG9Ob0NhY2hlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsUmV2YWxpZGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gJ2F1dG8gbm8gY2FjaGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHNob3VsZCB3ZSBjb25zaWRlciB0aGlzIGNhc2UgYW4gaW52YXJpYW50P1xuICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbiA9ICdhdXRvIGNhY2hlJztcbiAgICAgICAgICAgICAgICAgICAgZmluYWxSZXZhbGlkYXRlID0gcmV2YWxpZGF0ZVN0b3JlID8gcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUgOiBfY29uc3RhbnRzMS5JTkZJTklURV9DQUNIRTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFjYWNoZVJlYXNvbikge1xuICAgICAgICAgICAgICAgIGNhY2hlUmVhc29uID0gYHJldmFsaWRhdGU6ICR7ZmluYWxSZXZhbGlkYXRlfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoLy8gd2hlbiBmb3JjZSBzdGF0aWMgaXMgY29uZmlndXJlZCB3ZSBkb24ndCBiYWlsIGZyb21cbiAgICAgICAgICAgIC8vIGByZXZhbGlkYXRlOiAwYCB2YWx1ZXNcbiAgICAgICAgICAgICEod29ya1N0b3JlLmZvcmNlU3RhdGljICYmIGZpbmFsUmV2YWxpZGF0ZSA9PT0gMCkgJiYgLy8gd2UgZG9uJ3QgY29uc2lkZXIgYXV0b05vQ2FjaGUgdG8gc3dpdGNoIHRvIGR5bmFtaWMgZm9yIElTUlxuICAgICAgICAgICAgIWF1dG9Ob0NhY2hlICYmIC8vIElmIHRoZSByZXZhbGlkYXRlIHZhbHVlIGlzbid0IGN1cnJlbnRseSBzZXQgb3IgdGhlIHZhbHVlIGlzIGxlc3NcbiAgICAgICAgICAgIC8vIHRoYW4gdGhlIGN1cnJlbnQgcmV2YWxpZGF0ZSB2YWx1ZSwgd2Ugc2hvdWxkIHVwZGF0ZSB0aGUgcmV2YWxpZGF0ZVxuICAgICAgICAgICAgLy8gdmFsdWUuXG4gICAgICAgICAgICByZXZhbGlkYXRlU3RvcmUgJiYgZmluYWxSZXZhbGlkYXRlIDwgcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSB3ZXJlIHNldHRpbmcgdGhlIHJldmFsaWRhdGUgdmFsdWUgdG8gMCwgd2Ugc2hvdWxkIHRyeSB0b1xuICAgICAgICAgICAgICAgIC8vIHBvc3Rwb25lIGluc3RlYWQgZmlyc3QuXG4gICAgICAgICAgICAgICAgaWYgKGZpbmFsUmV2YWxpZGF0ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlU2lnbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVNpZ25hbC5lbmRSZWFkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVNpZ25hbCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkod29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsICdmZXRjaCgpJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcubWFya0N1cnJlbnRTY29wZUFzRHluYW1pYykod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlLCBgcmV2YWxpZGF0ZTogMCBmZXRjaCAke2lucHV0fSAke3dvcmtTdG9yZS5yb3V0ZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2Ugb25seSB3YW50IHRvIHNldCB0aGUgcmV2YWxpZGF0ZSBzdG9yZSdzIHJldmFsaWRhdGUgdGltZSBpZiBpdFxuICAgICAgICAgICAgICAgIC8vIHdhcyBleHBsaWNpdGx5IHNldCBmb3IgdGhlIGZldGNoIGNhbGwsIGkuZS5cbiAgICAgICAgICAgICAgICAvLyBvcmlnaW5hbEZldGNoUmV2YWxpZGF0ZS5cbiAgICAgICAgICAgICAgICBpZiAocmV2YWxpZGF0ZVN0b3JlICYmIG9yaWdpbmFsRmV0Y2hSZXZhbGlkYXRlID09PSBmaW5hbFJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUgPSBmaW5hbFJldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaXNDYWNoZWFibGVSZXZhbGlkYXRlID0gdHlwZW9mIGZpbmFsUmV2YWxpZGF0ZSA9PT0gJ251bWJlcicgJiYgZmluYWxSZXZhbGlkYXRlID4gMDtcbiAgICAgICAgICAgIGxldCBjYWNoZUtleTtcbiAgICAgICAgICAgIGNvbnN0IHsgaW5jcmVtZW50YWxDYWNoZSB9ID0gd29ya1N0b3JlO1xuICAgICAgICAgICAgY29uc3QgdXNlQ2FjaGVPclJlcXVlc3RTdG9yZSA9ICh3b3JrVW5pdFN0b3JlID09IG51bGwgPyB2b2lkIDAgOiB3b3JrVW5pdFN0b3JlLnR5cGUpID09PSAncmVxdWVzdCcgfHwgKHdvcmtVbml0U3RvcmUgPT0gbnVsbCA/IHZvaWQgMCA6IHdvcmtVbml0U3RvcmUudHlwZSkgPT09ICdjYWNoZScgPyB3b3JrVW5pdFN0b3JlIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKGluY3JlbWVudGFsQ2FjaGUgJiYgKGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSB8fCAodXNlQ2FjaGVPclJlcXVlc3RTdG9yZSA9PSBudWxsID8gdm9pZCAwIDogdXNlQ2FjaGVPclJlcXVlc3RTdG9yZS5zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUpKSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlS2V5ID0gYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5nZW5lcmF0ZUNhY2hlS2V5KGZldGNoVXJsLCBpc1JlcXVlc3RJbnB1dCA/IGlucHV0IDogaW5pdCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBnZW5lcmF0ZSBjYWNoZSBrZXkgZm9yYCwgaW5wdXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZldGNoSWR4ID0gd29ya1N0b3JlLm5leHRGZXRjaElkID8/IDE7XG4gICAgICAgICAgICB3b3JrU3RvcmUubmV4dEZldGNoSWQgPSBmZXRjaElkeCArIDE7XG4gICAgICAgICAgICBsZXQgaGFuZGxlVW5sb2NrID0gKCk9Pnt9O1xuICAgICAgICAgICAgY29uc3QgZG9PcmlnaW5hbEZldGNoID0gYXN5bmMgKGlzU3RhbGUsIGNhY2hlUmVhc29uT3ZlcnJpZGUpPT57XG4gICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdElucHV0RmllbGRzID0gW1xuICAgICAgICAgICAgICAgICAgICAnY2FjaGUnLFxuICAgICAgICAgICAgICAgICAgICAnY3JlZGVudGlhbHMnLFxuICAgICAgICAgICAgICAgICAgICAnaGVhZGVycycsXG4gICAgICAgICAgICAgICAgICAgICdpbnRlZ3JpdHknLFxuICAgICAgICAgICAgICAgICAgICAna2VlcGFsaXZlJyxcbiAgICAgICAgICAgICAgICAgICAgJ21ldGhvZCcsXG4gICAgICAgICAgICAgICAgICAgICdtb2RlJyxcbiAgICAgICAgICAgICAgICAgICAgJ3JlZGlyZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgJ3JlZmVycmVyJyxcbiAgICAgICAgICAgICAgICAgICAgJ3JlZmVycmVyUG9saWN5JyxcbiAgICAgICAgICAgICAgICAgICAgJ3dpbmRvdycsXG4gICAgICAgICAgICAgICAgICAgICdkdXBsZXgnLFxuICAgICAgICAgICAgICAgICAgICAvLyBkb24ndCBwYXNzIHRocm91Z2ggc2lnbmFsIHdoZW4gcmV2YWxpZGF0aW5nXG4gICAgICAgICAgICAgICAgICAgIC4uLmlzU3RhbGUgPyBbXSA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICdzaWduYWwnXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGlmIChpc1JlcXVlc3RJbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXFJbnB1dCA9IGlucHV0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXFPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogcmVxSW5wdXQuX29nQm9keSB8fCByZXFJbnB1dC5ib2R5XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcmVxdWVzdElucHV0RmllbGRzKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgY3VzdG9tIGZpZWxkc1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxT3B0aW9uc1tmaWVsZF0gPSByZXFJbnB1dFtmaWVsZF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBuZXcgUmVxdWVzdChyZXFJbnB1dC51cmwsIHJlcU9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5pdCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IF9vZ0JvZHksIGJvZHksIHNpZ25hbCwgLi4ub3RoZXJJbnB1dCB9ID0gaW5pdDtcbiAgICAgICAgICAgICAgICAgICAgaW5pdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLm90aGVySW5wdXQsXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBfb2dCb2R5IHx8IGJvZHksXG4gICAgICAgICAgICAgICAgICAgICAgICBzaWduYWw6IGlzU3RhbGUgPyB1bmRlZmluZWQgOiBzaWduYWxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gYWRkIG1ldGFkYXRhIHRvIGluaXQgd2l0aG91dCBlZGl0aW5nIHRoZSBvcmlnaW5hbFxuICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lZEluaXQgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmluaXQsXG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQubmV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoVHlwZTogJ29yaWdpbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZXRjaElkeFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luRmV0Y2goaW5wdXQsIGNsb25lZEluaXQpLnRoZW4oYXN5bmMgKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1N0YWxlICYmIGZldGNoU3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRmV0Y2hNZXRyaWMod29ya1N0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZldGNoU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbjogY2FjaGVSZWFzb25PdmVycmlkZSB8fCBjYWNoZVJlYXNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1czogZmluYWxSZXZhbGlkYXRlID09PSAwIHx8IGNhY2hlUmVhc29uT3ZlcnJpZGUgPyAnc2tpcCcgOiAnbWlzcycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVXYXJuaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IGNsb25lZEluaXQubWV0aG9kIHx8ICdHRVQnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjAwICYmIGluY3JlbWVudGFsQ2FjaGUgJiYgY2FjaGVLZXkgJiYgKGlzQ2FjaGVhYmxlUmV2YWxpZGF0ZSB8fCAodXNlQ2FjaGVPclJlcXVlc3RTdG9yZSA9PSBudWxsID8gdm9pZCAwIDogdXNlQ2FjaGVPclJlcXVlc3RTdG9yZS5zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplZFJldmFsaWRhdGUgPSBmaW5hbFJldmFsaWRhdGUgPj0gX2NvbnN0YW50czEuSU5GSU5JVEVfQ0FDSEUgPyBfY29uc3RhbnRzMS5DQUNIRV9PTkVfWUVBUiA6IGZpbmFsUmV2YWxpZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlICYmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXInIHx8IHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1jbGllbnQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBwcmVyZW5kZXJpbmcgYXQgYnVpbGQgdGltZSBvciByZXZhbGlkYXRlIHRpbWUgd2l0aCBkeW5hbWljSU8gc28gd2UgbmVlZCB0b1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ1ZmZlciB0aGUgcmVzcG9uc2Ugc28gd2UgY2FuIGd1YXJhbnRlZSBpdCBjYW4gYmUgcmVhZCBpbiBhIG1pY3JvdGFza1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHlCdWZmZXIgPSBhd2FpdCByZXMuYXJyYXlCdWZmZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmZXRjaGVkRGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHJlcy5oZWFkZXJzLmVudHJpZXMoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IEJ1ZmZlci5mcm9tKGJvZHlCdWZmZXIpLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHJlcy51cmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGNhbiBza2lwIGNoZWNraW5nIHRoZSBzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUgYmVjYXVzZSB3ZSBhcmVuJ3QgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXYgbW9kZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLnNldChjYWNoZUtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBfcmVzcG9uc2VjYWNoZS5DYWNoZWRSb3V0ZUtpbmQuRkVUQ0gsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGZldGNoZWREYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBub3JtYWxpemVkUmV2YWxpZGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hDYWNoZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoSWR4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ltcGxpY2l0QnVpbGRUaW1lQ2FjaGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBoYW5kbGVVbmxvY2soKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSByZXR1cm4gYSBuZXcgUmVzcG9uc2UgdG8gdGhlIGNhbGxlci5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKGJvZHlCdWZmZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmVzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogcmVzLnN0YXR1c1RleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UncmUgY2xvbmluZyB0aGUgcmVzcG9uc2UgdXNpbmcgdGhpcyB1dGlsaXR5IGJlY2F1c2UgdGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBleGlzdHMgYSBidWcgaW4gdGhlIHVuZGljaSBsaWJyYXJ5IGFyb3VuZCByZXNwb25zZSBjbG9uaW5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlZSB0aGUgZm9sbG93aW5nIHB1bGwgcmVxdWVzdCBmb3IgbW9yZSBkZXRhaWxzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzczMjc0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW2Nsb25lZDEsIGNsb25lZDJdID0gKDAsIF9jbG9uZXJlc3BvbnNlLmNsb25lUmVzcG9uc2UpKHJlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIGR5bmFtaWNhbGx5IHJlbmRlcmluZyBpbmNsdWRpbmcgZGV2IG1vZGUuIFdlIHdhbnQgdG8gcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHJlc3BvbnNlIHRvIHRoZSBjYWxsZXIgYXMgc29vbiBhcyBwb3NzaWJsZSBiZWNhdXNlIGl0IG1pZ2h0IHN0cmVhbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG92ZXIgYSB2ZXJ5IGxvbmcgdGltZS5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYWNoZVNldFByb21pc2UgPSBjbG9uZWQxLmFycmF5QnVmZmVyKCkudGhlbihhc3luYyAoYXJyYXlCdWZmZXIpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfdXNlQ2FjaGVPclJlcXVlc3RTdG9yZV9zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHlCdWZmZXIgPSBCdWZmZXIuZnJvbShhcnJheUJ1ZmZlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZldGNoZWREYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKGNsb25lZDEuaGVhZGVycy5lbnRyaWVzKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogYm9keUJ1ZmZlci50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGNsb25lZDEuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBjbG9uZWQxLnVybFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VDYWNoZU9yUmVxdWVzdFN0b3JlID09IG51bGwgPyB2b2lkIDAgOiAoX3VzZUNhY2hlT3JSZXF1ZXN0U3RvcmVfc2VydmVyQ29tcG9uZW50c0htckNhY2hlID0gdXNlQ2FjaGVPclJlcXVlc3RTdG9yZS5zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUpID09IG51bGwgPyB2b2lkIDAgOiBfdXNlQ2FjaGVPclJlcXVlc3RTdG9yZV9zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUuc2V0KGNhY2hlS2V5LCBmZXRjaGVkRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0NhY2hlYWJsZVJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGluY3JlbWVudGFsQ2FjaGUuc2V0KGNhY2hlS2V5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogX3Jlc3BvbnNlY2FjaGUuQ2FjaGVkUm91dGVLaW5kLkZFVENILFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGZldGNoZWREYXRhLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IG5vcm1hbGl6ZWRSZXZhbGlkYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hDYWNoZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaElkeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzSW1wbGljaXRCdWlsZFRpbWVDYWNoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyb3IpPT5jb25zb2xlLndhcm4oYEZhaWxlZCB0byBzZXQgZmV0Y2ggY2FjaGVgLCBpbnB1dCwgZXJyb3IpKS5maW5hbGx5KGhhbmRsZVVubG9jayk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVuZGluZ1JldmFsaWRhdGVLZXkgPSBgY2FjaGUtc2V0LSR7Y2FjaGVLZXl9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzID8/PSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVuZGluZ1JldmFsaWRhdGVLZXkgaW4gd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVyZSBpcyBhbHJlYWR5IGEgcGVuZGluZyByZXZhbGlkYXRlIGVudHJ5IHRoYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBhd2FpdCB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbcGVuZGluZ1JldmFsaWRhdGVLZXldID0gY2FjaGVTZXRQcm9taXNlLmZpbmFsbHkoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF93b3JrU3RvcmVfcGVuZGluZ1JldmFsaWRhdGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcGVuZGluZyByZXZhbGlkYXRlIGlzIG5vdCBwcmVzZW50IGluIHRoZSBzdG9yZSwgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYXZlIG5vdGhpbmcgdG8gZGVsZXRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISgoX3dvcmtTdG9yZV9wZW5kaW5nUmV2YWxpZGF0ZXMgPSB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzKSA9PSBudWxsID8gdm9pZCAwIDogX3dvcmtTdG9yZV9wZW5kaW5nUmV2YWxpZGF0ZXNbcGVuZGluZ1JldmFsaWRhdGVLZXldKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW3BlbmRpbmdSZXZhbGlkYXRlS2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2xvbmVkMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYWQgcmVzcG9uc2UgdGhhdCB3ZSBkZXRlcm1pbmVkIHNob3VsZG4ndCBiZSBjYWNoZWQgc28gd2UgcmV0dXJuIGl0XG4gICAgICAgICAgICAgICAgICAgIC8vIGFuZCBkb24ndCBjYWNoZSBpdC4gVGhpcyBhbHNvIG5lZWRzIHRvIHVubG9jayB0aGUgY2FjaGUgbG9jayB3ZSBhY3F1aXJlZC5cbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgaGFuZGxlVW5sb2NrKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycm9yKT0+e1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVVbmxvY2soKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGV0IGNhY2hlUmVhc29uT3ZlcnJpZGU7XG4gICAgICAgICAgICBsZXQgaXNGb3JlZ3JvdW5kUmV2YWxpZGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGlzSG1yUmVmcmVzaENhY2hlID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoY2FjaGVLZXkgJiYgaW5jcmVtZW50YWxDYWNoZSkge1xuICAgICAgICAgICAgICAgIGxldCBjYWNoZWRGZXRjaERhdGE7XG4gICAgICAgICAgICAgICAgaWYgKCh1c2VDYWNoZU9yUmVxdWVzdFN0b3JlID09IG51bGwgPyB2b2lkIDAgOiB1c2VDYWNoZU9yUmVxdWVzdFN0b3JlLmlzSG1yUmVmcmVzaCkgJiYgdXNlQ2FjaGVPclJlcXVlc3RTdG9yZS5zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVkRmV0Y2hEYXRhID0gdXNlQ2FjaGVPclJlcXVlc3RTdG9yZS5zZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGUuZ2V0KGNhY2hlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgaXNIbXJSZWZyZXNoQ2FjaGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNDYWNoZWFibGVSZXZhbGlkYXRlICYmICFjYWNoZWRGZXRjaERhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlVW5sb2NrID0gYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5sb2NrKGNhY2hlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSB3b3JrU3RvcmUuaXNPbkRlbWFuZFJldmFsaWRhdGUgPyBudWxsIDogYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5nZXQoY2FjaGVLZXksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IF9yZXNwb25zZWNhY2hlLkluY3JlbWVudGFsQ2FjaGVLaW5kLkZFVENILFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogZmluYWxSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBmZXRjaElkeCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBzb2Z0VGFnczogaW1wbGljaXRUYWdzID09IG51bGwgPyB2b2lkIDAgOiBpbXBsaWNpdFRhZ3MudGFnc1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc05vRXhwbGljaXRDYWNoZUNvbmZpZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugc29tZXRpbWVzIHVzZSB0aGUgY2FjaGUgdG8gZGVkdXBlIGZldGNoZXMgdGhhdCBkbyBub3Qgc3BlY2lmeSBhIGNhY2hlIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIHRoZXNlIGNhc2VzIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIHN0aWxsIGV4Y2x1ZGUgdGhlbSBmcm9tIHByZXJlbmRlcnMgaWYgZHluYW1pY0lPIGlzIG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzbyB3ZSBpbnRyb2R1Y2UgYW4gYXJ0aWZpY2lhbCBUYXNrIGJvdW5kYXJ5IGhlcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAod29ya1VuaXRTdG9yZSAmJiAod29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJyB8fCB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItY2xpZW50JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCAoMCwgX3NjaGVkdWxlci53YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaykoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGhhbmRsZVVubG9jaygpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW4gZGV2LCBpbmNyZW1lbnRhbCBjYWNoZSByZXNwb25zZSB3aWxsIGJlIG51bGwgaW4gY2FzZSB0aGUgYnJvd3NlciBhZGRzIGBjYWNoZS1jb250cm9sOiBuby1jYWNoZWAgaW4gdGhlIHJlcXVlc3QgaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVSZWFzb25PdmVycmlkZSA9ICdjYWNoZS1jb250cm9sOiBuby1jYWNoZSAoaGFyZCByZWZyZXNoKSc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKChlbnRyeSA9PSBudWxsID8gdm9pZCAwIDogZW50cnkudmFsdWUpICYmIGVudHJ5LnZhbHVlLmtpbmQgPT09IF9yZXNwb25zZWNhY2hlLkNhY2hlZFJvdXRlS2luZC5GRVRDSCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2hlbiBzdGFsZSBhbmQgaXMgcmV2YWxpZGF0aW5nIHdlIHdhaXQgZm9yIGZyZXNoIGRhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvIHRoZSByZXZhbGlkYXRlZCBlbnRyeSBoYXMgdGhlIHVwZGF0ZWQgZGF0YVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5pc1JldmFsaWRhdGUgJiYgZW50cnkuaXNTdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRm9yZWdyb3VuZFJldmFsaWRhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnkuaXNTdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzID8/PSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF3b3JrU3RvcmUucGVuZGluZ1JldmFsaWRhdGVzW2NhY2hlS2V5XSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGVuZGluZ1JldmFsaWRhdGUgPSBkb09yaWdpbmFsRmV0Y2godHJ1ZSkudGhlbihhc3luYyAocmVzcG9uc2UpPT4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5OiBhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKS5maW5hbGx5KCgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyA/Pz0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbY2FjaGVLZXkgfHwgJyddO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdHRhY2ggdGhlIGVtcHR5IGNhdGNoIGhlcmUgc28gd2UgZG9uJ3QgZ2V0IGEgXCJ1bmhhbmRsZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByb21pc2UgcmVqZWN0aW9uXCIgd2FybmluZy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdSZXZhbGlkYXRlLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1tjYWNoZUtleV0gPSBwZW5kaW5nUmV2YWxpZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZWRGZXRjaERhdGEgPSBlbnRyeS52YWx1ZS5kYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjYWNoZWRGZXRjaERhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZldGNoU3RhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrRmV0Y2hNZXRyaWMod29ya1N0b3JlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZldGNoU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBmZXRjaFVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVJlYXNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVN0YXR1czogaXNIbXJSZWZyZXNoQ2FjaGUgPyAnaG1yJyA6ICdoaXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlV2FybmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGNhY2hlZEZldGNoRGF0YS5zdGF0dXMgfHwgMjAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQubWV0aG9kKSB8fCAnR0VUJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoQnVmZmVyLmZyb20oY2FjaGVkRmV0Y2hEYXRhLmJvZHksICdiYXNlNjQnKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogY2FjaGVkRmV0Y2hEYXRhLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGNhY2hlZEZldGNoRGF0YS5zdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXNwb25zZSwgJ3VybCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjYWNoZWRGZXRjaERhdGEudXJsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5pc1N0YXRpY0dlbmVyYXRpb24gJiYgaW5pdCAmJiB0eXBlb2YgaW5pdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNhY2hlIH0gPSBpbml0O1xuICAgICAgICAgICAgICAgIC8vIERlbGV0ZSBgY2FjaGVgIHByb3BlcnR5IGFzIENsb3VkZmxhcmUgV29ya2VycyB3aWxsIHRocm93IGFuIGVycm9yXG4gICAgICAgICAgICAgICAgaWYgKGlzRWRnZVJ1bnRpbWUpIGRlbGV0ZSBpbml0LmNhY2hlO1xuICAgICAgICAgICAgICAgIGlmIChjYWNoZSA9PT0gJ25vLXN0b3JlJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiBlbmFibGVkLCB3ZSBzaG91bGQgYmFpbCBvdXQgb2Ygc3RhdGljIGdlbmVyYXRpb24uXG4gICAgICAgICAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVTaWduYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU2lnbmFsLmVuZFJlYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlU2lnbmFsID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKSh3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCwgJ2ZldGNoKCknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5tYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljKSh3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUsIGBuby1zdG9yZSBmZXRjaCAke2lucHV0fSAke3dvcmtTdG9yZS5yb3V0ZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzTmV4dENvbmZpZyA9ICduZXh0JyBpbiBpbml0O1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbmV4dCA9IHt9IH0gPSBpbml0O1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgbmV4dC5yZXZhbGlkYXRlID09PSAnbnVtYmVyJyAmJiByZXZhbGlkYXRlU3RvcmUgJiYgbmV4dC5yZXZhbGlkYXRlIDwgcmV2YWxpZGF0ZVN0b3JlLnJldmFsaWRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQucmV2YWxpZGF0ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgZW5hYmxlZCwgd2Ugc2hvdWxkIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKSh3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCwgJ2ZldGNoKCknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcubWFya0N1cnJlbnRTY29wZUFzRHluYW1pYykod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlLCBgcmV2YWxpZGF0ZTogMCBmZXRjaCAke2lucHV0fSAke3dvcmtTdG9yZS5yb3V0ZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXdvcmtTdG9yZS5mb3JjZVN0YXRpYyB8fCBuZXh0LnJldmFsaWRhdGUgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGVTdG9yZS5yZXZhbGlkYXRlID0gbmV4dC5yZXZhbGlkYXRlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChoYXNOZXh0Q29uZmlnKSBkZWxldGUgaW5pdC5uZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaWYgd2UgYXJlIHJldmFsaWRhdGluZyB0aGUgd2hvbGUgcGFnZSB2aWEgdGltZSBvciBvbi1kZW1hbmQgYW5kXG4gICAgICAgICAgICAvLyB0aGUgZmV0Y2ggY2FjaGUgZW50cnkgaXMgc3RhbGUgd2Ugc2hvdWxkIHN0aWxsIGRlLWR1cGUgdGhlXG4gICAgICAgICAgICAvLyBvcmlnaW4gaGl0IGlmIGl0J3MgYSBjYWNoZS1hYmxlIGVudHJ5XG4gICAgICAgICAgICBpZiAoY2FjaGVLZXkgJiYgaXNGb3JlZ3JvdW5kUmV2YWxpZGF0ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBlbmRpbmdSZXZhbGlkYXRlS2V5ID0gY2FjaGVLZXk7XG4gICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlcyA/Pz0ge307XG4gICAgICAgICAgICAgICAgbGV0IHBlbmRpbmdSZXZhbGlkYXRlID0gd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV07XG4gICAgICAgICAgICAgICAgaWYgKHBlbmRpbmdSZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJldmFsaWRhdGVkUmVzdWx0ID0gYXdhaXQgcGVuZGluZ1JldmFsaWRhdGU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UocmV2YWxpZGF0ZWRSZXN1bHQuYm9keSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogcmV2YWxpZGF0ZWRSZXN1bHQuaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmV2YWxpZGF0ZWRSZXN1bHQuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogcmV2YWxpZGF0ZWRSZXN1bHQuc3RhdHVzVGV4dFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2UgdXNlZCB0byBqdXN0IHJlc29sdmUgdGhlIFJlc3BvbnNlIGFuZCBjbG9uZSBpdCBob3dldmVyIGZvclxuICAgICAgICAgICAgICAgIC8vIHN0YXRpYyBnZW5lcmF0aW9uIHdpdGggZHluYW1pY0lPIHdlIG5lZWQgdGhlIHJlc3BvbnNlIHRvIGJlIGFibGUgdG9cbiAgICAgICAgICAgICAgICAvLyBiZSByZXNvbHZlZCBpbiBhIG1pY3JvdGFzayBhbmQgY2xvbmluZyB0aGUgcmVzcG9uc2Ugd2lsbCBuZXZlciBoYXZlXG4gICAgICAgICAgICAgICAgLy8gYSBib2R5IHRoYXQgY2FuIHJlc29sdmUgaW4gYSBtaWNyb3Rhc2sgaW4gbm9kZSAoYXMgb2JzZXJ2ZWQgdGhyb3VnaFxuICAgICAgICAgICAgICAgIC8vIGV4cGVyaW1lbnRhdGlvbikgU28gaW5zdGVhZCB3ZSBhd2FpdCB0aGUgYm9keSBhbmQgdGhlbiB3aGVuIGl0IGlzXG4gICAgICAgICAgICAgICAgLy8gYXZhaWxhYmxlIHdlIGNvbnN0cnVjdCBtYW51YWxseSBjbG9uZWQgUmVzcG9uc2Ugb2JqZWN0cyB3aXRoIHRoZVxuICAgICAgICAgICAgICAgIC8vIGJvZHkgYXMgYW4gQXJyYXlCdWZmZXIuIFRoaXMgd2lsbCBiZSByZXNvbHZhYmxlIGluIGEgbWljcm90YXNrXG4gICAgICAgICAgICAgICAgLy8gbWFraW5nIGl0IGNvbXBhdGlibGUgd2l0aCBkeW5hbWljSU8uXG4gICAgICAgICAgICAgICAgY29uc3QgcGVuZGluZ1Jlc3BvbnNlID0gZG9PcmlnaW5hbEZldGNoKHRydWUsIGNhY2hlUmVhc29uT3ZlcnJpZGUpLy8gV2UncmUgY2xvbmluZyB0aGUgcmVzcG9uc2UgdXNpbmcgdGhpcyB1dGlsaXR5IGJlY2F1c2UgdGhlcmVcbiAgICAgICAgICAgICAgICAvLyBleGlzdHMgYSBidWcgaW4gdGhlIHVuZGljaSBsaWJyYXJ5IGFyb3VuZCByZXNwb25zZSBjbG9uaW5nLlxuICAgICAgICAgICAgICAgIC8vIFNlZSB0aGUgZm9sbG93aW5nIHB1bGwgcmVxdWVzdCBmb3IgbW9yZSBkZXRhaWxzOlxuICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzczMjc0XG4gICAgICAgICAgICAgICAgLnRoZW4oX2Nsb25lcmVzcG9uc2UuY2xvbmVSZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgcGVuZGluZ1JldmFsaWRhdGUgPSBwZW5kaW5nUmVzcG9uc2UudGhlbihhc3luYyAocmVzcG9uc2VzKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHJlc3BvbnNlc1swXTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IGF3YWl0IHJlc3BvbnNlLmFycmF5QnVmZmVyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiByZXNwb25zZS5oZWFkZXJzLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNUZXh0XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSkuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3dvcmtTdG9yZV9wZW5kaW5nUmV2YWxpZGF0ZXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwZW5kaW5nIHJldmFsaWRhdGUgaXMgbm90IHByZXNlbnQgaW4gdGhlIHN0b3JlLCB0aGVuXG4gICAgICAgICAgICAgICAgICAgIC8vIHdlIGhhdmUgbm90aGluZyB0byBkZWxldGUuXG4gICAgICAgICAgICAgICAgICAgIGlmICghKChfd29ya1N0b3JlX3BlbmRpbmdSZXZhbGlkYXRlcyA9IHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXMpID09IG51bGwgPyB2b2lkIDAgOiBfd29ya1N0b3JlX3BlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHdvcmtTdG9yZS5wZW5kaW5nUmV2YWxpZGF0ZXNbcGVuZGluZ1JldmFsaWRhdGVLZXldO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIEF0dGFjaCB0aGUgZW1wdHkgY2F0Y2ggaGVyZSBzbyB3ZSBkb24ndCBnZXQgYSBcInVuaGFuZGxlZCBwcm9taXNlXG4gICAgICAgICAgICAgICAgLy8gcmVqZWN0aW9uXCIgd2FybmluZ1xuICAgICAgICAgICAgICAgIHBlbmRpbmdSZXZhbGlkYXRlLmNhdGNoKCgpPT57fSk7XG4gICAgICAgICAgICAgICAgd29ya1N0b3JlLnBlbmRpbmdSZXZhbGlkYXRlc1twZW5kaW5nUmV2YWxpZGF0ZUtleV0gPSBwZW5kaW5nUmV2YWxpZGF0ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGVuZGluZ1Jlc3BvbnNlLnRoZW4oKHJlc3BvbnNlcyk9PnJlc3BvbnNlc1sxXSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBkb09yaWdpbmFsRmV0Y2goZmFsc2UsIGNhY2hlUmVhc29uT3ZlcnJpZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNhY2hlU2lnbmFsKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCByZXN1bHQ7XG4gICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgaWYgKGNhY2hlU2lnbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlU2lnbmFsLmVuZFJlYWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIC8vIEF0dGFjaCB0aGUgbmVjZXNzYXJ5IHByb3BlcnRpZXMgdG8gdGhlIHBhdGNoZWQgZmV0Y2ggZnVuY3Rpb24uXG4gICAgLy8gV2UgZG9uJ3QgdXNlIHRoaXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmZXRjaCBmdW5jdGlvbiBoYXMgYmVlbiBwYXRjaGVkLFxuICAgIC8vIGJ1dCBmb3IgZXh0ZXJuYWwgY29uc3VtZXJzIHRvIGRldGVybWluZSBpZiB0aGUgZmV0Y2ggZnVuY3Rpb24gaGFzIGJlZW5cbiAgICAvLyBwYXRjaGVkLlxuICAgIHBhdGNoZWQuX19uZXh0UGF0Y2hlZCA9IHRydWU7XG4gICAgcGF0Y2hlZC5fX25leHRHZXRTdGF0aWNTdG9yZSA9ICgpPT53b3JrQXN5bmNTdG9yYWdlO1xuICAgIHBhdGNoZWQuX25leHRPcmlnaW5hbEZldGNoID0gb3JpZ2luRmV0Y2g7XG4gICAgZ2xvYmFsVGhpc1tORVhUX1BBVENIX1NZTUJPTF0gPSB0cnVlO1xuICAgIC8vIEFzc2lnbiB0aGUgZnVuY3Rpb24gbmFtZSBhbHNvIGFzIGEgbmFtZSBwcm9wZXJ0eSwgc28gdGhhdCBpdCdzIHByZXNlcnZlZFxuICAgIC8vIGV2ZW4gd2hlbiBtYW5nbGluZyBpcyBlbmFibGVkLlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwYXRjaGVkLCAnbmFtZScsIHtcbiAgICAgICAgdmFsdWU6ICdmZXRjaCcsXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZVxuICAgIH0pO1xuICAgIHJldHVybiBwYXRjaGVkO1xufVxuZnVuY3Rpb24gcGF0Y2hGZXRjaChvcHRpb25zKSB7XG4gICAgLy8gSWYgd2UndmUgYWxyZWFkeSBwYXRjaGVkIGZldGNoLCB3ZSBzaG91bGQgbm90IHBhdGNoIGl0IGFnYWluLlxuICAgIGlmIChpc0ZldGNoUGF0Y2hlZCgpKSByZXR1cm47XG4gICAgLy8gR3JhYiB0aGUgb3JpZ2luYWwgZmV0Y2ggZnVuY3Rpb24uIFdlJ2xsIGF0dGFjaCB0aGlzIHNvIHdlIGNhbiB1c2UgaXQgaW5cbiAgICAvLyB0aGUgcGF0Y2hlZCBmZXRjaCBmdW5jdGlvbi5cbiAgICBjb25zdCBvcmlnaW5hbCA9ICgwLCBfZGVkdXBlZmV0Y2guY3JlYXRlRGVkdXBlRmV0Y2gpKGdsb2JhbFRoaXMuZmV0Y2gpO1xuICAgIC8vIFNldCB0aGUgZ2xvYmFsIGZldGNoIHRvIHRoZSBwYXRjaGVkIGZldGNoLlxuICAgIGdsb2JhbFRoaXMuZmV0Y2ggPSBjcmVhdGVQYXRjaGVkRmV0Y2hlcihvcmlnaW5hbCwgb3B0aW9ucyk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhdGNoLWZldGNoLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js":
/*!***********************************************************************!*\
!*** ./node_modules/next/dist/server/lib/router-utils/is-postpone.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isPostpone\", ({\n enumerable: true,\n get: function() {\n return isPostpone;\n }\n}));\nconst REACT_POSTPONE_TYPE = Symbol.for('react.postpone');\nfunction isPostpone(error) {\n return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE;\n}\n\n//# sourceMappingURL=is-postpone.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcm91dGVyLXV0aWxzL2lzLXBvc3Rwb25lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOENBQTZDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9yb3V0ZXItdXRpbHMvaXMtcG9zdHBvbmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc1Bvc3Rwb25lXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1Bvc3Rwb25lO1xuICAgIH1cbn0pO1xuY29uc3QgUkVBQ1RfUE9TVFBPTkVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnBvc3Rwb25lJyk7XG5mdW5jdGlvbiBpc1Bvc3Rwb25lKGVycm9yKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgZXJyb3IuJCR0eXBlb2YgPT09IFJFQUNUX1BPU1RQT05FX1RZUEU7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXBvc3Rwb25lLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/server-action-request-meta.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/server/lib/server-action-request-meta.js ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getIsPossibleServerAction: function() {\n return getIsPossibleServerAction;\n },\n getServerActionRequestMetadata: function() {\n return getServerActionRequestMetadata;\n }\n});\nconst _approuterheaders = __webpack_require__(/*! ../../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nfunction getServerActionRequestMetadata(req) {\n let actionId;\n let contentType;\n if (req.headers instanceof Headers) {\n actionId = req.headers.get(_approuterheaders.ACTION_HEADER.toLowerCase()) ?? null;\n contentType = req.headers.get('content-type');\n } else {\n actionId = req.headers[_approuterheaders.ACTION_HEADER.toLowerCase()] ?? null;\n contentType = req.headers['content-type'] ?? null;\n }\n const isURLEncodedAction = Boolean(req.method === 'POST' && contentType === 'application/x-www-form-urlencoded');\n const isMultipartAction = Boolean(req.method === 'POST' && (contentType == null ? void 0 : contentType.startsWith('multipart/form-data')));\n const isFetchAction = Boolean(actionId !== undefined && typeof actionId === 'string' && req.method === 'POST');\n const isPossibleServerAction = Boolean(isFetchAction || isURLEncodedAction || isMultipartAction);\n return {\n actionId,\n isURLEncodedAction,\n isMultipartAction,\n isFetchAction,\n isPossibleServerAction\n };\n}\nfunction getIsPossibleServerAction(req) {\n return getServerActionRequestMetadata(req).isPossibleServerAction;\n}\n\n//# sourceMappingURL=server-action-request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvc2VydmVyLWFjdGlvbi1yZXF1ZXN0LW1ldGEuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsMEJBQTBCLG1CQUFPLENBQUMsMEhBQTRDO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9zZXJ2ZXItYWN0aW9uLXJlcXVlc3QtbWV0YS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGdldElzUG9zc2libGVTZXJ2ZXJBY3Rpb246IG51bGwsXG4gICAgZ2V0U2VydmVyQWN0aW9uUmVxdWVzdE1ldGFkYXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGdldElzUG9zc2libGVTZXJ2ZXJBY3Rpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0SXNQb3NzaWJsZVNlcnZlckFjdGlvbjtcbiAgICB9LFxuICAgIGdldFNlcnZlckFjdGlvblJlcXVlc3RNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRTZXJ2ZXJBY3Rpb25SZXF1ZXN0TWV0YWRhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfYXBwcm91dGVyaGVhZGVycyA9IHJlcXVpcmUoXCIuLi8uLi9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIik7XG5mdW5jdGlvbiBnZXRTZXJ2ZXJBY3Rpb25SZXF1ZXN0TWV0YWRhdGEocmVxKSB7XG4gICAgbGV0IGFjdGlvbklkO1xuICAgIGxldCBjb250ZW50VHlwZTtcbiAgICBpZiAocmVxLmhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzKSB7XG4gICAgICAgIGFjdGlvbklkID0gcmVxLmhlYWRlcnMuZ2V0KF9hcHByb3V0ZXJoZWFkZXJzLkFDVElPTl9IRUFERVIudG9Mb3dlckNhc2UoKSkgPz8gbnVsbDtcbiAgICAgICAgY29udGVudFR5cGUgPSByZXEuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGFjdGlvbklkID0gcmVxLmhlYWRlcnNbX2FwcHJvdXRlcmhlYWRlcnMuQUNUSU9OX0hFQURFUi50b0xvd2VyQ2FzZSgpXSA/PyBudWxsO1xuICAgICAgICBjb250ZW50VHlwZSA9IHJlcS5oZWFkZXJzWydjb250ZW50LXR5cGUnXSA/PyBudWxsO1xuICAgIH1cbiAgICBjb25zdCBpc1VSTEVuY29kZWRBY3Rpb24gPSBCb29sZWFuKHJlcS5tZXRob2QgPT09ICdQT1NUJyAmJiBjb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpO1xuICAgIGNvbnN0IGlzTXVsdGlwYXJ0QWN0aW9uID0gQm9vbGVhbihyZXEubWV0aG9kID09PSAnUE9TVCcgJiYgKGNvbnRlbnRUeXBlID09IG51bGwgPyB2b2lkIDAgOiBjb250ZW50VHlwZS5zdGFydHNXaXRoKCdtdWx0aXBhcnQvZm9ybS1kYXRhJykpKTtcbiAgICBjb25zdCBpc0ZldGNoQWN0aW9uID0gQm9vbGVhbihhY3Rpb25JZCAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBhY3Rpb25JZCA9PT0gJ3N0cmluZycgJiYgcmVxLm1ldGhvZCA9PT0gJ1BPU1QnKTtcbiAgICBjb25zdCBpc1Bvc3NpYmxlU2VydmVyQWN0aW9uID0gQm9vbGVhbihpc0ZldGNoQWN0aW9uIHx8IGlzVVJMRW5jb2RlZEFjdGlvbiB8fCBpc011bHRpcGFydEFjdGlvbik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYWN0aW9uSWQsXG4gICAgICAgIGlzVVJMRW5jb2RlZEFjdGlvbixcbiAgICAgICAgaXNNdWx0aXBhcnRBY3Rpb24sXG4gICAgICAgIGlzRmV0Y2hBY3Rpb24sXG4gICAgICAgIGlzUG9zc2libGVTZXJ2ZXJBY3Rpb25cbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0SXNQb3NzaWJsZVNlcnZlckFjdGlvbihyZXEpIHtcbiAgICByZXR1cm4gZ2V0U2VydmVyQWN0aW9uUmVxdWVzdE1ldGFkYXRhKHJlcSkuaXNQb3NzaWJsZVNlcnZlckFjdGlvbjtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VydmVyLWFjdGlvbi1yZXF1ZXN0LW1ldGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/server-action-request-meta.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/source-maps.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/server/lib/source-maps.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n devirtualizeReactServerURL: function() {\n return devirtualizeReactServerURL;\n },\n filterStackFrameDEV: function() {\n return filterStackFrameDEV;\n },\n findApplicableSourceMapPayload: function() {\n return findApplicableSourceMapPayload;\n },\n ignoreListAnonymousStackFramesIfSandwiched: function() {\n return ignoreListAnonymousStackFramesIfSandwiched;\n },\n sourceMapIgnoreListsEverything: function() {\n return sourceMapIgnoreListsEverything;\n }\n});\nvar _process_versions_node;\nfunction noSourceMap() {\n return undefined;\n}\n// Edge runtime does not implement `module`\nconst nativeFindSourceMap = false ? 0 : (__webpack_require__(/*! module */ \"module\").findSourceMap);\nfunction sourceMapIgnoreListsEverything(sourceMap) {\n return sourceMap.ignoreList !== undefined && sourceMap.sources.length === sourceMap.ignoreList.length;\n}\nfunction findApplicableSourceMapPayload(line0, column0, payload) {\n if ('sections' in payload) {\n if (payload.sections.length === 0) {\n return undefined;\n }\n // Sections must not overlap and must be sorted: https://tc39.es/source-map/#section-object\n // Therefore the last section that has an offset less than or equal to the frame is the applicable one.\n const sections = payload.sections;\n let left = 0;\n let right = sections.length - 1;\n let result = null;\n while(left <= right){\n // fast Math.floor\n const middle = ~~((left + right) / 2);\n const section = sections[middle];\n const offset = section.offset;\n if (offset.line < line0 || offset.line === line0 && offset.column <= column0) {\n result = section;\n left = middle + 1;\n } else {\n right = middle - 1;\n }\n }\n return result === null ? undefined : result.map;\n } else {\n return payload;\n }\n}\nconst didWarnAboutInvalidSourceMapDEV = new Set();\nconst findSourceMap = true && ((_process_versions_node = process.versions.node) == null ? void 0 : _process_versions_node.startsWith('18')) ? noSourceMap : nativeFindSourceMap;\nfunction filterStackFrameDEV(sourceURL, functionName, line1, column1) {\n if (sourceURL === '') {\n // The default implementation filters out <anonymous> stack frames\n // but we want to retain them because current Server Components and\n // built-in Components in parent stacks don't have source location.\n // Filter out frames that show up in Promises to get good names in React's\n // Server Request track until we come up with a better heuristic.\n return functionName !== 'new Promise' && functionName !== 'Promise.then' && functionName !== 'Promise.catch' && functionName !== 'Promise.finally' && functionName !== 'Function.withResolvers' && functionName !== 'Function.all' && functionName !== 'Function.allSettled';\n }\n if (sourceURL.startsWith('node:') || sourceURL.includes('node_modules')) {\n return false;\n }\n try {\n // Node.js loads source maps eagerly so this call is cheap.\n // TODO: ESM sourcemaps are O(1) but CommonJS sourcemaps are O(Number of CJS modules).\n // Make sure this doesn't adversely affect performance when CJS is used by Next.js.\n const sourceMap = findSourceMap(sourceURL);\n if (sourceMap === undefined) {\n // No source map assoicated.\n // TODO: Node.js types should reflect that `findSourceMap` can return `undefined`.\n return true;\n }\n const sourceMapPayload = findApplicableSourceMapPayload(line1 - 1, column1 - 1, sourceMap.payload);\n if (sourceMapPayload === undefined) {\n // No source map section applicable to the frame.\n return true;\n }\n return !sourceMapIgnoreListsEverything(sourceMapPayload);\n } catch (cause) {\n if (true) {\n // TODO: Share cache with patch-error-inspect\n if (!didWarnAboutInvalidSourceMapDEV.has(sourceURL)) {\n didWarnAboutInvalidSourceMapDEV.add(sourceURL);\n // We should not log an actual error instance here because that will re-enter\n // this codepath during error inspection and could lead to infinite recursion.\n console.error(`${sourceURL}: Invalid source map. Only conformant source maps can be used to filter stack frames. Cause: ${cause}`);\n }\n }\n return true;\n }\n}\nfunction devirtualizeReactServerURL(sourceURL) {\n if (sourceURL.startsWith('rsc://React/')) {\n // rsc://React/Server/file://<filename>?42 => file://<filename>\n const envIdx = sourceURL.indexOf('/', 'rsc://React/'.length);\n const suffixIdx = sourceURL.lastIndexOf('?');\n if (envIdx > -1 && suffixIdx > -1) {\n return decodeURI(sourceURL.slice(envIdx + 1, suffixIdx));\n }\n }\n return sourceURL;\n}\nfunction isAnonymousFrameLikelyJSNative(methodName) {\n // Anonymous frames can also be produced in React parent stacks either from\n // host components or Server Components. We don't want to ignore those.\n // This could hide user-space methods that are named like native JS methods but\n // should you really do that?\n return(// e.g. JSON.parse\n methodName.startsWith('JSON.') || // E.g. Promise.withResolves\n methodName.startsWith('Function.') || // various JS built-ins\n methodName.startsWith('Promise.') || methodName.startsWith('Array.') || methodName.startsWith('Set.') || methodName.startsWith('Map.'));\n}\nfunction ignoreListAnonymousStackFramesIfSandwiched(frames, isAnonymousFrame, isIgnoredFrame, getMethodName, /** only passes frames for which `isAnonymousFrame` and their method is a native JS method or `isIgnoredFrame` return true */ ignoreFrame) {\n for(let i = 1; i < frames.length; i++){\n const currentFrame = frames[i];\n if (!(isAnonymousFrame(currentFrame) && isAnonymousFrameLikelyJSNative(getMethodName(currentFrame)))) {\n continue;\n }\n const previousFrameIsIgnored = isIgnoredFrame(frames[i - 1]);\n if (previousFrameIsIgnored && i < frames.length - 1) {\n let ignoreSandwich = false;\n let j = i + 1;\n for(j; j < frames.length; j++){\n const nextFrame = frames[j];\n const nextFrameIsAnonymous = isAnonymousFrame(nextFrame) && isAnonymousFrameLikelyJSNative(getMethodName(nextFrame));\n if (nextFrameIsAnonymous) {\n continue;\n }\n const nextFrameIsIgnored = isIgnoredFrame(nextFrame);\n if (nextFrameIsIgnored) {\n ignoreSandwich = true;\n break;\n }\n }\n if (ignoreSandwich) {\n for(i; i < j; i++){\n ignoreFrame(frames[i]);\n }\n }\n }\n }\n}\n\n//# sourceMappingURL=source-maps.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvc291cmNlLW1hcHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixNQUFtQyxHQUFHLENBQVcsR0FBRywyREFBK0I7QUFDL0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsS0FBcUM7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sWUFBWSxJQUFxQztBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLFVBQVUsK0ZBQStGLE1BQU07QUFDaEo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFtQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsT0FBTztBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9zb3VyY2UtbWFwcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGRldmlydHVhbGl6ZVJlYWN0U2VydmVyVVJMOiBudWxsLFxuICAgIGZpbHRlclN0YWNrRnJhbWVERVY6IG51bGwsXG4gICAgZmluZEFwcGxpY2FibGVTb3VyY2VNYXBQYXlsb2FkOiBudWxsLFxuICAgIGlnbm9yZUxpc3RBbm9ueW1vdXNTdGFja0ZyYW1lc0lmU2FuZHdpY2hlZDogbnVsbCxcbiAgICBzb3VyY2VNYXBJZ25vcmVMaXN0c0V2ZXJ5dGhpbmc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgZGV2aXJ0dWFsaXplUmVhY3RTZXJ2ZXJVUkw6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGV2aXJ0dWFsaXplUmVhY3RTZXJ2ZXJVUkw7XG4gICAgfSxcbiAgICBmaWx0ZXJTdGFja0ZyYW1lREVWOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlclN0YWNrRnJhbWVERVY7XG4gICAgfSxcbiAgICBmaW5kQXBwbGljYWJsZVNvdXJjZU1hcFBheWxvYWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZmluZEFwcGxpY2FibGVTb3VyY2VNYXBQYXlsb2FkO1xuICAgIH0sXG4gICAgaWdub3JlTGlzdEFub255bW91c1N0YWNrRnJhbWVzSWZTYW5kd2ljaGVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlnbm9yZUxpc3RBbm9ueW1vdXNTdGFja0ZyYW1lc0lmU2FuZHdpY2hlZDtcbiAgICB9LFxuICAgIHNvdXJjZU1hcElnbm9yZUxpc3RzRXZlcnl0aGluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzb3VyY2VNYXBJZ25vcmVMaXN0c0V2ZXJ5dGhpbmc7XG4gICAgfVxufSk7XG52YXIgX3Byb2Nlc3NfdmVyc2lvbnNfbm9kZTtcbmZ1bmN0aW9uIG5vU291cmNlTWFwKCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG4vLyBFZGdlIHJ1bnRpbWUgZG9lcyBub3QgaW1wbGVtZW50IGBtb2R1bGVgXG5jb25zdCBuYXRpdmVGaW5kU291cmNlTWFwID0gcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScgPyBub1NvdXJjZU1hcCA6IHJlcXVpcmUoJ21vZHVsZScpLmZpbmRTb3VyY2VNYXA7XG5mdW5jdGlvbiBzb3VyY2VNYXBJZ25vcmVMaXN0c0V2ZXJ5dGhpbmcoc291cmNlTWFwKSB7XG4gICAgcmV0dXJuIHNvdXJjZU1hcC5pZ25vcmVMaXN0ICE9PSB1bmRlZmluZWQgJiYgc291cmNlTWFwLnNvdXJjZXMubGVuZ3RoID09PSBzb3VyY2VNYXAuaWdub3JlTGlzdC5sZW5ndGg7XG59XG5mdW5jdGlvbiBmaW5kQXBwbGljYWJsZVNvdXJjZU1hcFBheWxvYWQobGluZTAsIGNvbHVtbjAsIHBheWxvYWQpIHtcbiAgICBpZiAoJ3NlY3Rpb25zJyBpbiBwYXlsb2FkKSB7XG4gICAgICAgIGlmIChwYXlsb2FkLnNlY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICAvLyBTZWN0aW9ucyBtdXN0IG5vdCBvdmVybGFwIGFuZCBtdXN0IGJlIHNvcnRlZDogaHR0cHM6Ly90YzM5LmVzL3NvdXJjZS1tYXAvI3NlY3Rpb24tb2JqZWN0XG4gICAgICAgIC8vIFRoZXJlZm9yZSB0aGUgbGFzdCBzZWN0aW9uIHRoYXQgaGFzIGFuIG9mZnNldCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGZyYW1lIGlzIHRoZSBhcHBsaWNhYmxlIG9uZS5cbiAgICAgICAgY29uc3Qgc2VjdGlvbnMgPSBwYXlsb2FkLnNlY3Rpb25zO1xuICAgICAgICBsZXQgbGVmdCA9IDA7XG4gICAgICAgIGxldCByaWdodCA9IHNlY3Rpb25zLmxlbmd0aCAtIDE7XG4gICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xuICAgICAgICB3aGlsZShsZWZ0IDw9IHJpZ2h0KXtcbiAgICAgICAgICAgIC8vIGZhc3QgTWF0aC5mbG9vclxuICAgICAgICAgICAgY29uc3QgbWlkZGxlID0gfn4oKGxlZnQgKyByaWdodCkgLyAyKTtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSBzZWN0aW9uc1ttaWRkbGVdO1xuICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gc2VjdGlvbi5vZmZzZXQ7XG4gICAgICAgICAgICBpZiAob2Zmc2V0LmxpbmUgPCBsaW5lMCB8fCBvZmZzZXQubGluZSA9PT0gbGluZTAgJiYgb2Zmc2V0LmNvbHVtbiA8PSBjb2x1bW4wKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VjdGlvbjtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gbWlkZGxlICsgMTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSBtaWRkbGUgLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQgPT09IG51bGwgPyB1bmRlZmluZWQgOiByZXN1bHQubWFwO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgIH1cbn1cbmNvbnN0IGRpZFdhcm5BYm91dEludmFsaWRTb3VyY2VNYXBERVYgPSBuZXcgU2V0KCk7XG5jb25zdCBmaW5kU291cmNlTWFwID0gcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnbm9kZWpzJyAmJiAoKF9wcm9jZXNzX3ZlcnNpb25zX25vZGUgPSBwcm9jZXNzLnZlcnNpb25zLm5vZGUpID09IG51bGwgPyB2b2lkIDAgOiBfcHJvY2Vzc192ZXJzaW9uc19ub2RlLnN0YXJ0c1dpdGgoJzE4JykpID8gbm9Tb3VyY2VNYXAgOiBuYXRpdmVGaW5kU291cmNlTWFwO1xuZnVuY3Rpb24gZmlsdGVyU3RhY2tGcmFtZURFVihzb3VyY2VVUkwsIGZ1bmN0aW9uTmFtZSwgbGluZTEsIGNvbHVtbjEpIHtcbiAgICBpZiAoc291cmNlVVJMID09PSAnJykge1xuICAgICAgICAvLyBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmaWx0ZXJzIG91dCA8YW5vbnltb3VzPiBzdGFjayBmcmFtZXNcbiAgICAgICAgLy8gYnV0IHdlIHdhbnQgdG8gcmV0YWluIHRoZW0gYmVjYXVzZSBjdXJyZW50IFNlcnZlciBDb21wb25lbnRzIGFuZFxuICAgICAgICAvLyBidWlsdC1pbiBDb21wb25lbnRzIGluIHBhcmVudCBzdGFja3MgZG9uJ3QgaGF2ZSBzb3VyY2UgbG9jYXRpb24uXG4gICAgICAgIC8vIEZpbHRlciBvdXQgZnJhbWVzIHRoYXQgc2hvdyB1cCBpbiBQcm9taXNlcyB0byBnZXQgZ29vZCBuYW1lcyBpbiBSZWFjdCdzXG4gICAgICAgIC8vIFNlcnZlciBSZXF1ZXN0IHRyYWNrIHVudGlsIHdlIGNvbWUgdXAgd2l0aCBhIGJldHRlciBoZXVyaXN0aWMuXG4gICAgICAgIHJldHVybiBmdW5jdGlvbk5hbWUgIT09ICduZXcgUHJvbWlzZScgJiYgZnVuY3Rpb25OYW1lICE9PSAnUHJvbWlzZS50aGVuJyAmJiBmdW5jdGlvbk5hbWUgIT09ICdQcm9taXNlLmNhdGNoJyAmJiBmdW5jdGlvbk5hbWUgIT09ICdQcm9taXNlLmZpbmFsbHknICYmIGZ1bmN0aW9uTmFtZSAhPT0gJ0Z1bmN0aW9uLndpdGhSZXNvbHZlcnMnICYmIGZ1bmN0aW9uTmFtZSAhPT0gJ0Z1bmN0aW9uLmFsbCcgJiYgZnVuY3Rpb25OYW1lICE9PSAnRnVuY3Rpb24uYWxsU2V0dGxlZCc7XG4gICAgfVxuICAgIGlmIChzb3VyY2VVUkwuc3RhcnRzV2l0aCgnbm9kZTonKSB8fCBzb3VyY2VVUkwuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcycpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gTm9kZS5qcyBsb2FkcyBzb3VyY2UgbWFwcyBlYWdlcmx5IHNvIHRoaXMgY2FsbCBpcyBjaGVhcC5cbiAgICAgICAgLy8gVE9ETzogRVNNIHNvdXJjZW1hcHMgYXJlIE8oMSkgYnV0IENvbW1vbkpTIHNvdXJjZW1hcHMgYXJlIE8oTnVtYmVyIG9mIENKUyBtb2R1bGVzKS5cbiAgICAgICAgLy8gTWFrZSBzdXJlIHRoaXMgZG9lc24ndCBhZHZlcnNlbHkgYWZmZWN0IHBlcmZvcm1hbmNlIHdoZW4gQ0pTIGlzIHVzZWQgYnkgTmV4dC5qcy5cbiAgICAgICAgY29uc3Qgc291cmNlTWFwID0gZmluZFNvdXJjZU1hcChzb3VyY2VVUkwpO1xuICAgICAgICBpZiAoc291cmNlTWFwID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIE5vIHNvdXJjZSBtYXAgYXNzb2ljYXRlZC5cbiAgICAgICAgICAgIC8vIFRPRE86IE5vZGUuanMgdHlwZXMgc2hvdWxkIHJlZmxlY3QgdGhhdCBgZmluZFNvdXJjZU1hcGAgY2FuIHJldHVybiBgdW5kZWZpbmVkYC5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNvdXJjZU1hcFBheWxvYWQgPSBmaW5kQXBwbGljYWJsZVNvdXJjZU1hcFBheWxvYWQobGluZTEgLSAxLCBjb2x1bW4xIC0gMSwgc291cmNlTWFwLnBheWxvYWQpO1xuICAgICAgICBpZiAoc291cmNlTWFwUGF5bG9hZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBObyBzb3VyY2UgbWFwIHNlY3Rpb24gYXBwbGljYWJsZSB0byB0aGUgZnJhbWUuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIXNvdXJjZU1hcElnbm9yZUxpc3RzRXZlcnl0aGluZyhzb3VyY2VNYXBQYXlsb2FkKTtcbiAgICB9IGNhdGNoIChjYXVzZSkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgLy8gVE9ETzogU2hhcmUgY2FjaGUgd2l0aCBwYXRjaC1lcnJvci1pbnNwZWN0XG4gICAgICAgICAgICBpZiAoIWRpZFdhcm5BYm91dEludmFsaWRTb3VyY2VNYXBERVYuaGFzKHNvdXJjZVVSTCkpIHtcbiAgICAgICAgICAgICAgICBkaWRXYXJuQWJvdXRJbnZhbGlkU291cmNlTWFwREVWLmFkZChzb3VyY2VVUkwpO1xuICAgICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBub3QgbG9nIGFuIGFjdHVhbCBlcnJvciBpbnN0YW5jZSBoZXJlIGJlY2F1c2UgdGhhdCB3aWxsIHJlLWVudGVyXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBjb2RlcGF0aCBkdXJpbmcgZXJyb3IgaW5zcGVjdGlvbiBhbmQgY291bGQgbGVhZCB0byBpbmZpbml0ZSByZWN1cnNpb24uXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJHtzb3VyY2VVUkx9OiBJbnZhbGlkIHNvdXJjZSBtYXAuIE9ubHkgY29uZm9ybWFudCBzb3VyY2UgbWFwcyBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgc3RhY2sgZnJhbWVzLiBDYXVzZTogJHtjYXVzZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5mdW5jdGlvbiBkZXZpcnR1YWxpemVSZWFjdFNlcnZlclVSTChzb3VyY2VVUkwpIHtcbiAgICBpZiAoc291cmNlVVJMLnN0YXJ0c1dpdGgoJ3JzYzovL1JlYWN0LycpKSB7XG4gICAgICAgIC8vIHJzYzovL1JlYWN0L1NlcnZlci9maWxlOi8vPGZpbGVuYW1lPj80MiA9PiBmaWxlOi8vPGZpbGVuYW1lPlxuICAgICAgICBjb25zdCBlbnZJZHggPSBzb3VyY2VVUkwuaW5kZXhPZignLycsICdyc2M6Ly9SZWFjdC8nLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IHN1ZmZpeElkeCA9IHNvdXJjZVVSTC5sYXN0SW5kZXhPZignPycpO1xuICAgICAgICBpZiAoZW52SWR4ID4gLTEgJiYgc3VmZml4SWR4ID4gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWNvZGVVUkkoc291cmNlVVJMLnNsaWNlKGVudklkeCArIDEsIHN1ZmZpeElkeCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzb3VyY2VVUkw7XG59XG5mdW5jdGlvbiBpc0Fub255bW91c0ZyYW1lTGlrZWx5SlNOYXRpdmUobWV0aG9kTmFtZSkge1xuICAgIC8vIEFub255bW91cyBmcmFtZXMgY2FuIGFsc28gYmUgcHJvZHVjZWQgaW4gUmVhY3QgcGFyZW50IHN0YWNrcyBlaXRoZXIgZnJvbVxuICAgIC8vIGhvc3QgY29tcG9uZW50cyBvciBTZXJ2ZXIgQ29tcG9uZW50cy4gV2UgZG9uJ3Qgd2FudCB0byBpZ25vcmUgdGhvc2UuXG4gICAgLy8gVGhpcyBjb3VsZCBoaWRlIHVzZXItc3BhY2UgbWV0aG9kcyB0aGF0IGFyZSBuYW1lZCBsaWtlIG5hdGl2ZSBKUyBtZXRob2RzIGJ1dFxuICAgIC8vIHNob3VsZCB5b3UgcmVhbGx5IGRvIHRoYXQ/XG4gICAgcmV0dXJuKC8vIGUuZy4gSlNPTi5wYXJzZVxuICAgIG1ldGhvZE5hbWUuc3RhcnRzV2l0aCgnSlNPTi4nKSB8fCAvLyBFLmcuIFByb21pc2Uud2l0aFJlc29sdmVzXG4gICAgbWV0aG9kTmFtZS5zdGFydHNXaXRoKCdGdW5jdGlvbi4nKSB8fCAvLyB2YXJpb3VzIEpTIGJ1aWx0LWluc1xuICAgIG1ldGhvZE5hbWUuc3RhcnRzV2l0aCgnUHJvbWlzZS4nKSB8fCBtZXRob2ROYW1lLnN0YXJ0c1dpdGgoJ0FycmF5LicpIHx8IG1ldGhvZE5hbWUuc3RhcnRzV2l0aCgnU2V0LicpIHx8IG1ldGhvZE5hbWUuc3RhcnRzV2l0aCgnTWFwLicpKTtcbn1cbmZ1bmN0aW9uIGlnbm9yZUxpc3RBbm9ueW1vdXNTdGFja0ZyYW1lc0lmU2FuZHdpY2hlZChmcmFtZXMsIGlzQW5vbnltb3VzRnJhbWUsIGlzSWdub3JlZEZyYW1lLCBnZXRNZXRob2ROYW1lLCAvKiogb25seSBwYXNzZXMgZnJhbWVzIGZvciB3aGljaCBgaXNBbm9ueW1vdXNGcmFtZWAgYW5kIHRoZWlyIG1ldGhvZCBpcyBhIG5hdGl2ZSBKUyBtZXRob2Qgb3IgYGlzSWdub3JlZEZyYW1lYCByZXR1cm4gdHJ1ZSAqLyBpZ25vcmVGcmFtZSkge1xuICAgIGZvcihsZXQgaSA9IDE7IGkgPCBmcmFtZXMubGVuZ3RoOyBpKyspe1xuICAgICAgICBjb25zdCBjdXJyZW50RnJhbWUgPSBmcmFtZXNbaV07XG4gICAgICAgIGlmICghKGlzQW5vbnltb3VzRnJhbWUoY3VycmVudEZyYW1lKSAmJiBpc0Fub255bW91c0ZyYW1lTGlrZWx5SlNOYXRpdmUoZ2V0TWV0aG9kTmFtZShjdXJyZW50RnJhbWUpKSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByZXZpb3VzRnJhbWVJc0lnbm9yZWQgPSBpc0lnbm9yZWRGcmFtZShmcmFtZXNbaSAtIDFdKTtcbiAgICAgICAgaWYgKHByZXZpb3VzRnJhbWVJc0lnbm9yZWQgJiYgaSA8IGZyYW1lcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBsZXQgaWdub3JlU2FuZHdpY2ggPSBmYWxzZTtcbiAgICAgICAgICAgIGxldCBqID0gaSArIDE7XG4gICAgICAgICAgICBmb3IoajsgaiA8IGZyYW1lcy5sZW5ndGg7IGorKyl7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYW1lID0gZnJhbWVzW2pdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRGcmFtZUlzQW5vbnltb3VzID0gaXNBbm9ueW1vdXNGcmFtZShuZXh0RnJhbWUpICYmIGlzQW5vbnltb3VzRnJhbWVMaWtlbHlKU05hdGl2ZShnZXRNZXRob2ROYW1lKG5leHRGcmFtZSkpO1xuICAgICAgICAgICAgICAgIGlmIChuZXh0RnJhbWVJc0Fub255bW91cykge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYW1lSXNJZ25vcmVkID0gaXNJZ25vcmVkRnJhbWUobmV4dEZyYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAobmV4dEZyYW1lSXNJZ25vcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZVNhbmR3aWNoID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlnbm9yZVNhbmR3aWNoKSB7XG4gICAgICAgICAgICAgICAgZm9yKGk7IGkgPCBqOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBpZ25vcmVGcmFtZShmcmFtZXNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlLW1hcHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/source-maps.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/streaming-metadata.js":
/*!*****************************************************************!*\
!*** ./node_modules/next/dist/server/lib/streaming-metadata.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isHtmlBotRequest: function() {\n return isHtmlBotRequest;\n },\n shouldServeStreamingMetadata: function() {\n return shouldServeStreamingMetadata;\n }\n});\nconst _isbot = __webpack_require__(/*! ../../shared/lib/router/utils/is-bot */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nfunction shouldServeStreamingMetadata(userAgent, htmlLimitedBots) {\n const blockingMetadataUARegex = new RegExp(htmlLimitedBots || _isbot.HTML_LIMITED_BOT_UA_RE_STRING, 'i');\n // Only block metadata for HTML-limited bots\n if (userAgent && blockingMetadataUARegex.test(userAgent)) {\n return false;\n }\n return true;\n}\nfunction isHtmlBotRequest(req) {\n const ua = req.headers['user-agent'] || '';\n const botType = (0, _isbot.getBotType)(ua);\n return botType === 'html';\n}\n\n//# sourceMappingURL=streaming-metadata.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvc3RyZWFtaW5nLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGVBQWUsbUJBQU8sQ0FBQyw4R0FBc0M7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9zdHJlYW1pbmctbWV0YWRhdGEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc0h0bWxCb3RSZXF1ZXN0OiBudWxsLFxuICAgIHNob3VsZFNlcnZlU3RyZWFtaW5nTWV0YWRhdGE6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNIdG1sQm90UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0h0bWxCb3RSZXF1ZXN0O1xuICAgIH0sXG4gICAgc2hvdWxkU2VydmVTdHJlYW1pbmdNZXRhZGF0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzaG91bGRTZXJ2ZVN0cmVhbWluZ01ldGFkYXRhO1xuICAgIH1cbn0pO1xuY29uc3QgX2lzYm90ID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdFwiKTtcbmZ1bmN0aW9uIHNob3VsZFNlcnZlU3RyZWFtaW5nTWV0YWRhdGEodXNlckFnZW50LCBodG1sTGltaXRlZEJvdHMpIHtcbiAgICBjb25zdCBibG9ja2luZ01ldGFkYXRhVUFSZWdleCA9IG5ldyBSZWdFeHAoaHRtbExpbWl0ZWRCb3RzIHx8IF9pc2JvdC5IVE1MX0xJTUlURURfQk9UX1VBX1JFX1NUUklORywgJ2knKTtcbiAgICAvLyBPbmx5IGJsb2NrIG1ldGFkYXRhIGZvciBIVE1MLWxpbWl0ZWQgYm90c1xuICAgIGlmICh1c2VyQWdlbnQgJiYgYmxvY2tpbmdNZXRhZGF0YVVBUmVnZXgudGVzdCh1c2VyQWdlbnQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59XG5mdW5jdGlvbiBpc0h0bWxCb3RSZXF1ZXN0KHJlcSkge1xuICAgIGNvbnN0IHVhID0gcmVxLmhlYWRlcnNbJ3VzZXItYWdlbnQnXSB8fCAnJztcbiAgICBjb25zdCBib3RUeXBlID0gKDAsIF9pc2JvdC5nZXRCb3RUeXBlKSh1YSk7XG4gICAgcmV0dXJuIGJvdFR5cGUgPT09ICdodG1sJztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RyZWFtaW5nLW1ldGFkYXRhLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/streaming-metadata.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/trace/constants.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/server/lib/trace/constants.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/ // eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppRenderSpan: function() {\n return AppRenderSpan;\n },\n AppRouteRouteHandlersSpan: function() {\n return AppRouteRouteHandlersSpan;\n },\n BaseServerSpan: function() {\n return BaseServerSpan;\n },\n LoadComponentsSpan: function() {\n return LoadComponentsSpan;\n },\n LogSpanAllowList: function() {\n return LogSpanAllowList;\n },\n MiddlewareSpan: function() {\n return MiddlewareSpan;\n },\n NextNodeServerSpan: function() {\n return NextNodeServerSpan;\n },\n NextServerSpan: function() {\n return NextServerSpan;\n },\n NextVanillaSpanAllowlist: function() {\n return NextVanillaSpanAllowlist;\n },\n NodeSpan: function() {\n return NodeSpan;\n },\n RenderSpan: function() {\n return RenderSpan;\n },\n ResolveMetadataSpan: function() {\n return ResolveMetadataSpan;\n },\n RouterSpan: function() {\n return RouterSpan;\n },\n StartServerSpan: function() {\n return StartServerSpan;\n }\n});\nvar BaseServerSpan = /*#__PURE__*/ function(BaseServerSpan) {\n BaseServerSpan[\"handleRequest\"] = \"BaseServer.handleRequest\";\n BaseServerSpan[\"run\"] = \"BaseServer.run\";\n BaseServerSpan[\"pipe\"] = \"BaseServer.pipe\";\n BaseServerSpan[\"getStaticHTML\"] = \"BaseServer.getStaticHTML\";\n BaseServerSpan[\"render\"] = \"BaseServer.render\";\n BaseServerSpan[\"renderToResponseWithComponents\"] = \"BaseServer.renderToResponseWithComponents\";\n BaseServerSpan[\"renderToResponse\"] = \"BaseServer.renderToResponse\";\n BaseServerSpan[\"renderToHTML\"] = \"BaseServer.renderToHTML\";\n BaseServerSpan[\"renderError\"] = \"BaseServer.renderError\";\n BaseServerSpan[\"renderErrorToResponse\"] = \"BaseServer.renderErrorToResponse\";\n BaseServerSpan[\"renderErrorToHTML\"] = \"BaseServer.renderErrorToHTML\";\n BaseServerSpan[\"render404\"] = \"BaseServer.render404\";\n return BaseServerSpan;\n}(BaseServerSpan || {});\nvar LoadComponentsSpan = /*#__PURE__*/ function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n return LoadComponentsSpan;\n}(LoadComponentsSpan || {});\nvar NextServerSpan = /*#__PURE__*/ function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n return NextServerSpan;\n}(NextServerSpan || {});\nvar NextNodeServerSpan = /*#__PURE__*/ function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\n NextNodeServerSpan[\"createComponentTree\"] = \"NextNodeServer.createComponentTree\";\n NextNodeServerSpan[\"clientComponentLoading\"] = \"NextNodeServer.clientComponentLoading\";\n NextNodeServerSpan[\"getLayoutOrPageModule\"] = \"NextNodeServer.getLayoutOrPageModule\";\n NextNodeServerSpan[\"generateStaticRoutes\"] = \"NextNodeServer.generateStaticRoutes\";\n NextNodeServerSpan[\"generateFsStaticRoutes\"] = \"NextNodeServer.generateFsStaticRoutes\";\n NextNodeServerSpan[\"generatePublicRoutes\"] = \"NextNodeServer.generatePublicRoutes\";\n NextNodeServerSpan[\"generateImageRoutes\"] = \"NextNodeServer.generateImageRoutes.route\";\n NextNodeServerSpan[\"sendRenderResult\"] = \"NextNodeServer.sendRenderResult\";\n NextNodeServerSpan[\"proxyRequest\"] = \"NextNodeServer.proxyRequest\";\n NextNodeServerSpan[\"runApi\"] = \"NextNodeServer.runApi\";\n NextNodeServerSpan[\"render\"] = \"NextNodeServer.render\";\n NextNodeServerSpan[\"renderHTML\"] = \"NextNodeServer.renderHTML\";\n NextNodeServerSpan[\"imageOptimizer\"] = \"NextNodeServer.imageOptimizer\";\n NextNodeServerSpan[\"getPagePath\"] = \"NextNodeServer.getPagePath\";\n NextNodeServerSpan[\"getRoutesManifest\"] = \"NextNodeServer.getRoutesManifest\";\n NextNodeServerSpan[\"findPageComponents\"] = \"NextNodeServer.findPageComponents\";\n NextNodeServerSpan[\"getFontManifest\"] = \"NextNodeServer.getFontManifest\";\n NextNodeServerSpan[\"getServerComponentManifest\"] = \"NextNodeServer.getServerComponentManifest\";\n NextNodeServerSpan[\"getRequestHandler\"] = \"NextNodeServer.getRequestHandler\";\n NextNodeServerSpan[\"renderToHTML\"] = \"NextNodeServer.renderToHTML\";\n NextNodeServerSpan[\"renderError\"] = \"NextNodeServer.renderError\";\n NextNodeServerSpan[\"renderErrorToHTML\"] = \"NextNodeServer.renderErrorToHTML\";\n NextNodeServerSpan[\"render404\"] = \"NextNodeServer.render404\";\n NextNodeServerSpan[\"startResponse\"] = \"NextNodeServer.startResponse\";\n // nested inner span, does not require parent scope name\n NextNodeServerSpan[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n return NextNodeServerSpan;\n}(NextNodeServerSpan || {});\nvar StartServerSpan = /*#__PURE__*/ function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n return StartServerSpan;\n}(StartServerSpan || {});\nvar RenderSpan = /*#__PURE__*/ function(RenderSpan) {\n RenderSpan[\"getServerSideProps\"] = \"Render.getServerSideProps\";\n RenderSpan[\"getStaticProps\"] = \"Render.getStaticProps\";\n RenderSpan[\"renderToString\"] = \"Render.renderToString\";\n RenderSpan[\"renderDocument\"] = \"Render.renderDocument\";\n RenderSpan[\"createBodyResult\"] = \"Render.createBodyResult\";\n return RenderSpan;\n}(RenderSpan || {});\nvar AppRenderSpan = /*#__PURE__*/ function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n return AppRenderSpan;\n}(AppRenderSpan || {});\nvar RouterSpan = /*#__PURE__*/ function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n return RouterSpan;\n}(RouterSpan || {});\nvar NodeSpan = /*#__PURE__*/ function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n return NodeSpan;\n}(NodeSpan || {});\nvar AppRouteRouteHandlersSpan = /*#__PURE__*/ function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n return AppRouteRouteHandlersSpan;\n}(AppRouteRouteHandlersSpan || {});\nvar ResolveMetadataSpan = /*#__PURE__*/ function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n return ResolveMetadataSpan;\n}(ResolveMetadataSpan || {});\nvar MiddlewareSpan = /*#__PURE__*/ function(MiddlewareSpan) {\n MiddlewareSpan[\"execute\"] = \"Middleware.execute\";\n return MiddlewareSpan;\n}(MiddlewareSpan || {});\nconst NextVanillaSpanAllowlist = [\n \"Middleware.execute\",\n \"BaseServer.handleRequest\",\n \"Render.getServerSideProps\",\n \"Render.getStaticProps\",\n \"AppRender.fetch\",\n \"AppRender.getBodyResult\",\n \"Render.renderDocument\",\n \"Node.runHandler\",\n \"AppRouteRouteHandlers.runHandler\",\n \"ResolveMetadata.generateMetadata\",\n \"ResolveMetadata.generateViewport\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\",\n \"NextNodeServer.startResponse\",\n \"NextNodeServer.clientComponentLoading\"\n];\nconst LogSpanAllowList = [\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.clientComponentLoading\"\n];\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUE0QztBQUM1Qyw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBZUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMscUJBQXFCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxxQkFBcUI7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxzQkFBc0I7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG9CQUFvQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGVBQWU7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxnQ0FBZ0M7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDBCQUEwQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLHFCQUFxQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGFpbnMgcHJlZGVmaW5lZCBjb25zdGFudHMgZm9yIHRoZSB0cmFjZSBzcGFuIG5hbWUgaW4gbmV4dC9zZXJ2ZXIuXG4gKlxuICogQ3VycmVudGx5LCBuZXh0L3NlcnZlci90cmFjZXIgaXMgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gb25seSBmb3IgdHJhY2tpbmdcbiAqIG5leHQuanMncyBpbXBsZW1lbnRhdGlvbiBvbmx5IHdpdGgga25vd24gc3BhbiBuYW1lcyBkZWZpbmVkIGhlcmUuXG4gKiovIC8vIGVzbGludCB0eXBlc2NyaXB0IGhhcyBhIGJ1ZyB3aXRoIFRTIGVudW1zXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1zaGFkb3cgKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBBcHBSZW5kZXJTcGFuOiBudWxsLFxuICAgIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW46IG51bGwsXG4gICAgQmFzZVNlcnZlclNwYW46IG51bGwsXG4gICAgTG9hZENvbXBvbmVudHNTcGFuOiBudWxsLFxuICAgIExvZ1NwYW5BbGxvd0xpc3Q6IG51bGwsXG4gICAgTWlkZGxld2FyZVNwYW46IG51bGwsXG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuOiBudWxsLFxuICAgIE5leHRTZXJ2ZXJTcGFuOiBudWxsLFxuICAgIE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdDogbnVsbCxcbiAgICBOb2RlU3BhbjogbnVsbCxcbiAgICBSZW5kZXJTcGFuOiBudWxsLFxuICAgIFJlc29sdmVNZXRhZGF0YVNwYW46IG51bGwsXG4gICAgUm91dGVyU3BhbjogbnVsbCxcbiAgICBTdGFydFNlcnZlclNwYW46IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQXBwUmVuZGVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBcHBSZW5kZXJTcGFuO1xuICAgIH0sXG4gICAgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuO1xuICAgIH0sXG4gICAgQmFzZVNlcnZlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQmFzZVNlcnZlclNwYW47XG4gICAgfSxcbiAgICBMb2FkQ29tcG9uZW50c1NwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTG9hZENvbXBvbmVudHNTcGFuO1xuICAgIH0sXG4gICAgTG9nU3BhbkFsbG93TGlzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBMb2dTcGFuQWxsb3dMaXN0O1xuICAgIH0sXG4gICAgTWlkZGxld2FyZVNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTWlkZGxld2FyZVNwYW47XG4gICAgfSxcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTmV4dE5vZGVTZXJ2ZXJTcGFuO1xuICAgIH0sXG4gICAgTmV4dFNlcnZlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTmV4dFNlcnZlclNwYW47XG4gICAgfSxcbiAgICBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0O1xuICAgIH0sXG4gICAgTm9kZVNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTm9kZVNwYW47XG4gICAgfSxcbiAgICBSZW5kZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlbmRlclNwYW47XG4gICAgfSxcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlc29sdmVNZXRhZGF0YVNwYW47XG4gICAgfSxcbiAgICBSb3V0ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJvdXRlclNwYW47XG4gICAgfSxcbiAgICBTdGFydFNlcnZlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU3RhcnRTZXJ2ZXJTcGFuO1xuICAgIH1cbn0pO1xudmFyIEJhc2VTZXJ2ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihCYXNlU2VydmVyU3Bhbikge1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wiaGFuZGxlUmVxdWVzdFwiXSA9IFwiQmFzZVNlcnZlci5oYW5kbGVSZXF1ZXN0XCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJydW5cIl0gPSBcIkJhc2VTZXJ2ZXIucnVuXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJwaXBlXCJdID0gXCJCYXNlU2VydmVyLnBpcGVcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcImdldFN0YXRpY0hUTUxcIl0gPSBcIkJhc2VTZXJ2ZXIuZ2V0U3RhdGljSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyVG9SZXNwb25zZVdpdGhDb21wb25lbnRzXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvUmVzcG9uc2VXaXRoQ29tcG9uZW50c1wiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyVG9SZXNwb25zZVwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb1Jlc3BvbnNlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJUb0hUTUxcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9IVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXJFcnJvclwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JUb1Jlc3BvbnNlXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yVG9SZXNwb25zZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JUb0hUTUxcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JUb0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlcjQwNFwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXI0MDRcIjtcbiAgICByZXR1cm4gQmFzZVNlcnZlclNwYW47XG59KEJhc2VTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBMb2FkQ29tcG9uZW50c1NwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKExvYWRDb21wb25lbnRzU3Bhbikge1xuICAgIExvYWRDb21wb25lbnRzU3BhbltcImxvYWREZWZhdWx0RXJyb3JDb21wb25lbnRzXCJdID0gXCJMb2FkQ29tcG9uZW50cy5sb2FkRGVmYXVsdEVycm9yQ29tcG9uZW50c1wiO1xuICAgIExvYWRDb21wb25lbnRzU3BhbltcImxvYWRDb21wb25lbnRzXCJdID0gXCJMb2FkQ29tcG9uZW50cy5sb2FkQ29tcG9uZW50c1wiO1xuICAgIHJldHVybiBMb2FkQ29tcG9uZW50c1NwYW47XG59KExvYWRDb21wb25lbnRzU3BhbiB8fCB7fSk7XG52YXIgTmV4dFNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE5leHRTZXJ2ZXJTcGFuKSB7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJnZXRSZXF1ZXN0SGFuZGxlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiZ2V0U2VydmVyXCJdID0gXCJOZXh0U2VydmVyLmdldFNlcnZlclwiO1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiZ2V0U2VydmVyUmVxdWVzdEhhbmRsZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0U2VydmVyUmVxdWVzdEhhbmRsZXJcIjtcbiAgICBOZXh0U2VydmVyU3BhbltcImNyZWF0ZVNlcnZlclwiXSA9IFwiY3JlYXRlU2VydmVyLmNyZWF0ZVNlcnZlclwiO1xuICAgIHJldHVybiBOZXh0U2VydmVyU3Bhbjtcbn0oTmV4dFNlcnZlclNwYW4gfHwge30pO1xudmFyIE5leHROb2RlU2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTmV4dE5vZGVTZXJ2ZXJTcGFuKSB7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiY29tcHJlc3Npb25cIl0gPSBcIk5leHROb2RlU2VydmVyLmNvbXByZXNzaW9uXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0QnVpbGRJZFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0QnVpbGRJZFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImNyZWF0ZUNvbXBvbmVudFRyZWVcIl0gPSBcIk5leHROb2RlU2VydmVyLmNyZWF0ZUNvbXBvbmVudFRyZWVcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJjbGllbnRDb21wb25lbnRMb2FkaW5nXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5jbGllbnRDb21wb25lbnRMb2FkaW5nXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRMYXlvdXRPclBhZ2VNb2R1bGVcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZVN0YXRpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVTdGF0aWNSb3V0ZXNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZW5lcmF0ZUZzU3RhdGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZUZzU3RhdGljUm91dGVzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVQdWJsaWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlUHVibGljUm91dGVzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVJbWFnZVJvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVJbWFnZVJvdXRlcy5yb3V0ZVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInNlbmRSZW5kZXJSZXN1bHRcIl0gPSBcIk5leHROb2RlU2VydmVyLnNlbmRSZW5kZXJSZXN1bHRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJwcm94eVJlcXVlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLnByb3h5UmVxdWVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJ1bkFwaVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucnVuQXBpXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJIVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJIVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiaW1hZ2VPcHRpbWl6ZXJcIl0gPSBcIk5leHROb2RlU2VydmVyLmltYWdlT3B0aW1pemVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0UGFnZVBhdGhcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFBhZ2VQYXRoXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0Um91dGVzTWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldFJvdXRlc01hbmlmZXN0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZmluZFBhZ2VDb21wb25lbnRzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5maW5kUGFnZUNvbXBvbmVudHNcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRGb250TWFuaWZlc3RcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldEZvbnRNYW5pZmVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFNlcnZlckNvbXBvbmVudE1hbmlmZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRTZXJ2ZXJDb21wb25lbnRNYW5pZmVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRSZXF1ZXN0SGFuZGxlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlclRvSFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyVG9IVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckVycm9yXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JUb0hUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlckVycm9yVG9IVE1MXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVyNDA0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXI0MDRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJzdGFydFJlc3BvbnNlXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5zdGFydFJlc3BvbnNlXCI7XG4gICAgLy8gbmVzdGVkIGlubmVyIHNwYW4sIGRvZXMgbm90IHJlcXVpcmUgcGFyZW50IHNjb3BlIG5hbWVcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyb3V0ZVwiXSA9IFwicm91dGVcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJvblByb3h5UmVxXCJdID0gXCJvblByb3h5UmVxXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiYXBpUmVzb2x2ZXJcIl0gPSBcImFwaVJlc29sdmVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiaW50ZXJuYWxGZXRjaFwiXSA9IFwiaW50ZXJuYWxGZXRjaFwiO1xuICAgIHJldHVybiBOZXh0Tm9kZVNlcnZlclNwYW47XG59KE5leHROb2RlU2VydmVyU3BhbiB8fCB7fSk7XG52YXIgU3RhcnRTZXJ2ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihTdGFydFNlcnZlclNwYW4pIHtcbiAgICBTdGFydFNlcnZlclNwYW5bXCJzdGFydFNlcnZlclwiXSA9IFwic3RhcnRTZXJ2ZXIuc3RhcnRTZXJ2ZXJcIjtcbiAgICByZXR1cm4gU3RhcnRTZXJ2ZXJTcGFuO1xufShTdGFydFNlcnZlclNwYW4gfHwge30pO1xudmFyIFJlbmRlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJlbmRlclNwYW4pIHtcbiAgICBSZW5kZXJTcGFuW1wiZ2V0U2VydmVyU2lkZVByb3BzXCJdID0gXCJSZW5kZXIuZ2V0U2VydmVyU2lkZVByb3BzXCI7XG4gICAgUmVuZGVyU3BhbltcImdldFN0YXRpY1Byb3BzXCJdID0gXCJSZW5kZXIuZ2V0U3RhdGljUHJvcHNcIjtcbiAgICBSZW5kZXJTcGFuW1wicmVuZGVyVG9TdHJpbmdcIl0gPSBcIlJlbmRlci5yZW5kZXJUb1N0cmluZ1wiO1xuICAgIFJlbmRlclNwYW5bXCJyZW5kZXJEb2N1bWVudFwiXSA9IFwiUmVuZGVyLnJlbmRlckRvY3VtZW50XCI7XG4gICAgUmVuZGVyU3BhbltcImNyZWF0ZUJvZHlSZXN1bHRcIl0gPSBcIlJlbmRlci5jcmVhdGVCb2R5UmVzdWx0XCI7XG4gICAgcmV0dXJuIFJlbmRlclNwYW47XG59KFJlbmRlclNwYW4gfHwge30pO1xudmFyIEFwcFJlbmRlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEFwcFJlbmRlclNwYW4pIHtcbiAgICBBcHBSZW5kZXJTcGFuW1wicmVuZGVyVG9TdHJpbmdcIl0gPSBcIkFwcFJlbmRlci5yZW5kZXJUb1N0cmluZ1wiO1xuICAgIEFwcFJlbmRlclNwYW5bXCJyZW5kZXJUb1JlYWRhYmxlU3RyZWFtXCJdID0gXCJBcHBSZW5kZXIucmVuZGVyVG9SZWFkYWJsZVN0cmVhbVwiO1xuICAgIEFwcFJlbmRlclNwYW5bXCJnZXRCb2R5UmVzdWx0XCJdID0gXCJBcHBSZW5kZXIuZ2V0Qm9keVJlc3VsdFwiO1xuICAgIEFwcFJlbmRlclNwYW5bXCJmZXRjaFwiXSA9IFwiQXBwUmVuZGVyLmZldGNoXCI7XG4gICAgcmV0dXJuIEFwcFJlbmRlclNwYW47XG59KEFwcFJlbmRlclNwYW4gfHwge30pO1xudmFyIFJvdXRlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKFJvdXRlclNwYW4pIHtcbiAgICBSb3V0ZXJTcGFuW1wiZXhlY3V0ZVJvdXRlXCJdID0gXCJSb3V0ZXIuZXhlY3V0ZVJvdXRlXCI7XG4gICAgcmV0dXJuIFJvdXRlclNwYW47XG59KFJvdXRlclNwYW4gfHwge30pO1xudmFyIE5vZGVTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihOb2RlU3Bhbikge1xuICAgIE5vZGVTcGFuW1wicnVuSGFuZGxlclwiXSA9IFwiTm9kZS5ydW5IYW5kbGVyXCI7XG4gICAgcmV0dXJuIE5vZGVTcGFuO1xufShOb2RlU3BhbiB8fCB7fSk7XG52YXIgQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3Bhbikge1xuICAgIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW5bXCJydW5IYW5kbGVyXCJdID0gXCJBcHBSb3V0ZVJvdXRlSGFuZGxlcnMucnVuSGFuZGxlclwiO1xuICAgIHJldHVybiBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuO1xufShBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuIHx8IHt9KTtcbnZhciBSZXNvbHZlTWV0YWRhdGFTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihSZXNvbHZlTWV0YWRhdGFTcGFuKSB7XG4gICAgUmVzb2x2ZU1ldGFkYXRhU3BhbltcImdlbmVyYXRlTWV0YWRhdGFcIl0gPSBcIlJlc29sdmVNZXRhZGF0YS5nZW5lcmF0ZU1ldGFkYXRhXCI7XG4gICAgUmVzb2x2ZU1ldGFkYXRhU3BhbltcImdlbmVyYXRlVmlld3BvcnRcIl0gPSBcIlJlc29sdmVNZXRhZGF0YS5nZW5lcmF0ZVZpZXdwb3J0XCI7XG4gICAgcmV0dXJuIFJlc29sdmVNZXRhZGF0YVNwYW47XG59KFJlc29sdmVNZXRhZGF0YVNwYW4gfHwge30pO1xudmFyIE1pZGRsZXdhcmVTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihNaWRkbGV3YXJlU3Bhbikge1xuICAgIE1pZGRsZXdhcmVTcGFuW1wiZXhlY3V0ZVwiXSA9IFwiTWlkZGxld2FyZS5leGVjdXRlXCI7XG4gICAgcmV0dXJuIE1pZGRsZXdhcmVTcGFuO1xufShNaWRkbGV3YXJlU3BhbiB8fCB7fSk7XG5jb25zdCBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QgPSBbXG4gICAgXCJNaWRkbGV3YXJlLmV4ZWN1dGVcIixcbiAgICBcIkJhc2VTZXJ2ZXIuaGFuZGxlUmVxdWVzdFwiLFxuICAgIFwiUmVuZGVyLmdldFNlcnZlclNpZGVQcm9wc1wiLFxuICAgIFwiUmVuZGVyLmdldFN0YXRpY1Byb3BzXCIsXG4gICAgXCJBcHBSZW5kZXIuZmV0Y2hcIixcbiAgICBcIkFwcFJlbmRlci5nZXRCb2R5UmVzdWx0XCIsXG4gICAgXCJSZW5kZXIucmVuZGVyRG9jdW1lbnRcIixcbiAgICBcIk5vZGUucnVuSGFuZGxlclwiLFxuICAgIFwiQXBwUm91dGVSb3V0ZUhhbmRsZXJzLnJ1bkhhbmRsZXJcIixcbiAgICBcIlJlc29sdmVNZXRhZGF0YS5nZW5lcmF0ZU1ldGFkYXRhXCIsXG4gICAgXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVWaWV3cG9ydFwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuY3JlYXRlQ29tcG9uZW50VHJlZVwiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuZmluZFBhZ2VDb21wb25lbnRzXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5nZXRMYXlvdXRPclBhZ2VNb2R1bGVcIixcbiAgICBcIk5leHROb2RlU2VydmVyLnN0YXJ0UmVzcG9uc2VcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmNsaWVudENvbXBvbmVudExvYWRpbmdcIlxuXTtcbmNvbnN0IExvZ1NwYW5BbGxvd0xpc3QgPSBbXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5maW5kUGFnZUNvbXBvbmVudHNcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmNyZWF0ZUNvbXBvbmVudFRyZWVcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmNsaWVudENvbXBvbmVudExvYWRpbmdcIlxuXTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js":
/*!***********************************************************!*\
!*** ./node_modules/next/dist/server/lib/trace/tracer.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BubbledError: function() {\n return BubbledError;\n },\n SpanKind: function() {\n return SpanKind;\n },\n SpanStatusCode: function() {\n return SpanStatusCode;\n },\n getTracer: function() {\n return getTracer;\n },\n isBubbledError: function() {\n return isBubbledError;\n }\n});\nconst _constants = __webpack_require__(/*! ./constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _isthenable = __webpack_require__(/*! ../../../shared/lib/is-thenable */ \"(rsc)/./node_modules/next/dist/shared/lib/is-thenable.js\");\nlet api;\n// we want to allow users to use their own version of @opentelemetry/api if they\n// want to, so we try to require it first, and if it fails we fall back to the\n// version that is bundled with Next.js\n// this is because @opentelemetry/api has to be synced with the version of\n// @opentelemetry/tracing that is used, and we don't want to force users to use\n// the version that is bundled with Next.js.\n// the API is ~stable, so this should be fine\nif (false) {} else {\n try {\n api = __webpack_require__(/*! @opentelemetry/api */ \"(rsc)/./node_modules/@opentelemetry/api/build/esm/index.js\");\n } catch (err) {\n api = __webpack_require__(/*! next/dist/compiled/@opentelemetry/api */ \"(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n }\n}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nclass BubbledError extends Error {\n constructor(bubble, result){\n super(), this.bubble = bubble, this.result = result;\n }\n}\nfunction isBubbledError(error) {\n if (typeof error !== 'object' || error === null) return false;\n return error instanceof BubbledError;\n}\nconst closeSpanWithError = (span, error)=>{\n if (isBubbledError(error) && error.bubble) {\n span.setAttribute('next.bubble', true);\n } else {\n if (error) {\n span.recordException(error);\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error == null ? void 0 : error.message\n });\n }\n span.end();\n};\n/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map();\nconst rootSpanIdKey = api.createContextKey('next.rootSpanId');\nlet lastSpanId = 0;\nconst getSpanId = ()=>lastSpanId++;\nconst clientTraceDataSetter = {\n set (carrier, key, value) {\n carrier.push({\n key,\n value\n });\n }\n};\nclass NextTracerImpl {\n /**\n * Returns an instance to the trace with configured name.\n * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization,\n * This should be lazily evaluated.\n */ getTracerInstance() {\n return trace.getTracer('next.js', '0.0.1');\n }\n getContext() {\n return context;\n }\n getTracePropagationData() {\n const activeContext = context.active();\n const entries = [];\n propagation.inject(activeContext, entries, clientTraceDataSetter);\n return entries;\n }\n getActiveScopeSpan() {\n return trace.getSpan(context == null ? void 0 : context.active());\n }\n withPropagatedContext(carrier, fn, getter) {\n const activeContext = context.active();\n if (trace.getSpanContext(activeContext)) {\n // Active span is already set, too late to propagate.\n return fn();\n }\n const remoteContext = propagation.extract(activeContext, carrier, getter);\n return context.with(remoteContext, fn);\n }\n trace(...args) {\n var _trace_getSpanContext;\n const [type, fnOrOptions, fnOrEmpty] = args;\n // coerce options form overload\n const { fn, options } = typeof fnOrOptions === 'function' ? {\n fn: fnOrOptions,\n options: {}\n } : {\n fn: fnOrEmpty,\n options: {\n ...fnOrOptions\n }\n };\n const spanName = options.spanName ?? type;\n if (!_constants.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== '1' || options.hideSpan) {\n return fn();\n }\n // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.\n let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n let isRootSpan = false;\n if (!spanContext) {\n spanContext = (context == null ? void 0 : context.active()) ?? ROOT_CONTEXT;\n isRootSpan = true;\n } else if ((_trace_getSpanContext = trace.getSpanContext(spanContext)) == null ? void 0 : _trace_getSpanContext.isRemote) {\n isRootSpan = true;\n }\n const spanId = getSpanId();\n options.attributes = {\n 'next.span_name': spanName,\n 'next.span_type': type,\n ...options.attributes\n };\n return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{\n const startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined;\n const onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\n if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || '')) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, {\n start: startTime,\n end: performance.now()\n });\n }\n };\n if (isRootSpan) {\n rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));\n }\n try {\n if (fn.length > 1) {\n return fn(span, (err)=>closeSpanWithError(span, err));\n }\n const result = fn(span);\n if ((0, _isthenable.isThenable)(result)) {\n // If there's error make sure it throws\n return result.then((res)=>{\n span.end();\n // Need to pass down the promise result,\n // it could be react stream response with error { error, stream }\n return res;\n }).catch((err)=>{\n closeSpanWithError(span, err);\n throw err;\n }).finally(onCleanup);\n } else {\n span.end();\n onCleanup();\n }\n return result;\n } catch (err) {\n closeSpanWithError(span, err);\n onCleanup();\n throw err;\n }\n }));\n }\n wrap(...args) {\n const tracer = this;\n const [name, options, fn] = args.length === 3 ? args : [\n args[0],\n {},\n args[1]\n ];\n if (!_constants.NextVanillaSpanAllowlist.includes(name) && process.env.NEXT_OTEL_VERBOSE !== '1') {\n return fn;\n }\n return function() {\n let optionsObj = options;\n if (typeof optionsObj === 'function' && typeof fn === 'function') {\n optionsObj = optionsObj.apply(this, arguments);\n }\n const lastArgId = arguments.length - 1;\n const cb = arguments[lastArgId];\n if (typeof cb === 'function') {\n const scopeBoundCb = tracer.getContext().bind(context.active(), cb);\n return tracer.trace(name, optionsObj, (_span, done)=>{\n arguments[lastArgId] = function(err) {\n done == null ? void 0 : done(err);\n return scopeBoundCb.apply(this, arguments);\n };\n return fn.apply(this, arguments);\n });\n } else {\n return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments));\n }\n };\n }\n startSpan(...args) {\n const [type, options] = args;\n const spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n return this.getTracerInstance().startSpan(type, options, spanContext);\n }\n getSpanContext(parentSpan) {\n const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined;\n return spanContext;\n }\n getRootSpanAttributes() {\n const spanId = context.active().getValue(rootSpanIdKey);\n return rootSpanAttributesStore.get(spanId);\n }\n setRootSpanAttribute(key, value) {\n const spanId = context.active().getValue(rootSpanIdKey);\n const attributes = rootSpanAttributesStore.get(spanId);\n if (attributes) {\n attributes.set(key, value);\n }\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n\n//# sourceMappingURL=tracer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdHJhY2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG1CQUFtQixtQkFBTyxDQUFDLGlGQUFhO0FBQ3hDLG9CQUFvQixtQkFBTyxDQUFDLGlHQUFpQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRjtBQUNBLGNBQWMsbUJBQU8sQ0FBQyxzRkFBb0I7QUFDMUMsTUFBTTtBQUNOLGNBQWMsbUJBQU8sQ0FBQyxrSEFBdUM7QUFDN0Q7QUFDQTtBQUNBLFFBQVEsc0VBQXNFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsY0FBYztBQUM5QjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyx5Q0FBeUMsUUFBUSxvRkFBb0Y7QUFDcEw7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSx1R0FBdUc7QUFDdkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhFQUE4RTtBQUM5RTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3RyYWNlL3RyYWNlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEJ1YmJsZWRFcnJvcjogbnVsbCxcbiAgICBTcGFuS2luZDogbnVsbCxcbiAgICBTcGFuU3RhdHVzQ29kZTogbnVsbCxcbiAgICBnZXRUcmFjZXI6IG51bGwsXG4gICAgaXNCdWJibGVkRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQnViYmxlZEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEJ1YmJsZWRFcnJvcjtcbiAgICB9LFxuICAgIFNwYW5LaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNwYW5LaW5kO1xuICAgIH0sXG4gICAgU3BhblN0YXR1c0NvZGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU3BhblN0YXR1c0NvZGU7XG4gICAgfSxcbiAgICBnZXRUcmFjZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0VHJhY2VyO1xuICAgIH0sXG4gICAgaXNCdWJibGVkRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNCdWJibGVkRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4vY29uc3RhbnRzXCIpO1xuY29uc3QgX2lzdGhlbmFibGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vc2hhcmVkL2xpYi9pcy10aGVuYWJsZVwiKTtcbmxldCBhcGk7XG4vLyB3ZSB3YW50IHRvIGFsbG93IHVzZXJzIHRvIHVzZSB0aGVpciBvd24gdmVyc2lvbiBvZiBAb3BlbnRlbGVtZXRyeS9hcGkgaWYgdGhleVxuLy8gd2FudCB0bywgc28gd2UgdHJ5IHRvIHJlcXVpcmUgaXQgZmlyc3QsIGFuZCBpZiBpdCBmYWlscyB3ZSBmYWxsIGJhY2sgdG8gdGhlXG4vLyB2ZXJzaW9uIHRoYXQgaXMgYnVuZGxlZCB3aXRoIE5leHQuanNcbi8vIHRoaXMgaXMgYmVjYXVzZSBAb3BlbnRlbGVtZXRyeS9hcGkgaGFzIHRvIGJlIHN5bmNlZCB3aXRoIHRoZSB2ZXJzaW9uIG9mXG4vLyBAb3BlbnRlbGVtZXRyeS90cmFjaW5nIHRoYXQgaXMgdXNlZCwgYW5kIHdlIGRvbid0IHdhbnQgdG8gZm9yY2UgdXNlcnMgdG8gdXNlXG4vLyB0aGUgdmVyc2lvbiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCBOZXh0LmpzLlxuLy8gdGhlIEFQSSBpcyB+c3RhYmxlLCBzbyB0aGlzIHNob3VsZCBiZSBmaW5lXG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICBhcGkgPSByZXF1aXJlKCdAb3BlbnRlbGVtZXRyeS9hcGknKTtcbn0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgICAgYXBpID0gcmVxdWlyZSgnQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGFwaSA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9Ab3BlbnRlbGVtZXRyeS9hcGknKTtcbiAgICB9XG59XG5jb25zdCB7IGNvbnRleHQsIHByb3BhZ2F0aW9uLCB0cmFjZSwgU3BhblN0YXR1c0NvZGUsIFNwYW5LaW5kLCBST09UX0NPTlRFWFQgfSA9IGFwaTtcbmNsYXNzIEJ1YmJsZWRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihidWJibGUsIHJlc3VsdCl7XG4gICAgICAgIHN1cGVyKCksIHRoaXMuYnViYmxlID0gYnViYmxlLCB0aGlzLnJlc3VsdCA9IHJlc3VsdDtcbiAgICB9XG59XG5mdW5jdGlvbiBpc0J1YmJsZWRFcnJvcihlcnJvcikge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgIT09ICdvYmplY3QnIHx8IGVycm9yID09PSBudWxsKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGVycm9yIGluc3RhbmNlb2YgQnViYmxlZEVycm9yO1xufVxuY29uc3QgY2xvc2VTcGFuV2l0aEVycm9yID0gKHNwYW4sIGVycm9yKT0+e1xuICAgIGlmIChpc0J1YmJsZWRFcnJvcihlcnJvcikgJiYgZXJyb3IuYnViYmxlKSB7XG4gICAgICAgIHNwYW4uc2V0QXR0cmlidXRlKCduZXh0LmJ1YmJsZScsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgc3Bhbi5yZWNvcmRFeGNlcHRpb24oZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHNwYW4uc2V0U3RhdHVzKHtcbiAgICAgICAgICAgIGNvZGU6IFNwYW5TdGF0dXNDb2RlLkVSUk9SLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IgPT0gbnVsbCA/IHZvaWQgMCA6IGVycm9yLm1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNwYW4uZW5kKCk7XG59O1xuLyoqIHdlIHVzZSB0aGlzIG1hcCB0byBwcm9wYWdhdGUgYXR0cmlidXRlcyBmcm9tIG5lc3RlZCBzcGFucyB0byB0aGUgdG9wIHNwYW4gKi8gY29uc3Qgcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUgPSBuZXcgTWFwKCk7XG5jb25zdCByb290U3BhbklkS2V5ID0gYXBpLmNyZWF0ZUNvbnRleHRLZXkoJ25leHQucm9vdFNwYW5JZCcpO1xubGV0IGxhc3RTcGFuSWQgPSAwO1xuY29uc3QgZ2V0U3BhbklkID0gKCk9Pmxhc3RTcGFuSWQrKztcbmNvbnN0IGNsaWVudFRyYWNlRGF0YVNldHRlciA9IHtcbiAgICBzZXQgKGNhcnJpZXIsIGtleSwgdmFsdWUpIHtcbiAgICAgICAgY2Fycmllci5wdXNoKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5jbGFzcyBOZXh0VHJhY2VySW1wbCB7XG4gICAgLyoqXG4gICAqIFJldHVybnMgYW4gaW5zdGFuY2UgdG8gdGhlIHRyYWNlIHdpdGggY29uZmlndXJlZCBuYW1lLlxuICAgKiBTaW5jZSB3cmFwIC8gdHJhY2UgY2FuIGJlIGRlZmluZWQgaW4gYW55IHBsYWNlIHByaW9yIHRvIGFjdHVhbCB0cmFjZSBzdWJzY3JpYmVyIGluaXRpYWxpemF0aW9uLFxuICAgKiBUaGlzIHNob3VsZCBiZSBsYXppbHkgZXZhbHVhdGVkLlxuICAgKi8gZ2V0VHJhY2VySW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0cmFjZS5nZXRUcmFjZXIoJ25leHQuanMnLCAnMC4wLjEnKTtcbiAgICB9XG4gICAgZ2V0Q29udGV4dCgpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgfVxuICAgIGdldFRyYWNlUHJvcGFnYXRpb25EYXRhKCkge1xuICAgICAgICBjb25zdCBhY3RpdmVDb250ZXh0ID0gY29udGV4dC5hY3RpdmUoKTtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IFtdO1xuICAgICAgICBwcm9wYWdhdGlvbi5pbmplY3QoYWN0aXZlQ29udGV4dCwgZW50cmllcywgY2xpZW50VHJhY2VEYXRhU2V0dGVyKTtcbiAgICAgICAgcmV0dXJuIGVudHJpZXM7XG4gICAgfVxuICAgIGdldEFjdGl2ZVNjb3BlU3BhbigpIHtcbiAgICAgICAgcmV0dXJuIHRyYWNlLmdldFNwYW4oY29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogY29udGV4dC5hY3RpdmUoKSk7XG4gICAgfVxuICAgIHdpdGhQcm9wYWdhdGVkQ29udGV4dChjYXJyaWVyLCBmbiwgZ2V0dGVyKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUNvbnRleHQgPSBjb250ZXh0LmFjdGl2ZSgpO1xuICAgICAgICBpZiAodHJhY2UuZ2V0U3BhbkNvbnRleHQoYWN0aXZlQ29udGV4dCkpIHtcbiAgICAgICAgICAgIC8vIEFjdGl2ZSBzcGFuIGlzIGFscmVhZHkgc2V0LCB0b28gbGF0ZSB0byBwcm9wYWdhdGUuXG4gICAgICAgICAgICByZXR1cm4gZm4oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZW1vdGVDb250ZXh0ID0gcHJvcGFnYXRpb24uZXh0cmFjdChhY3RpdmVDb250ZXh0LCBjYXJyaWVyLCBnZXR0ZXIpO1xuICAgICAgICByZXR1cm4gY29udGV4dC53aXRoKHJlbW90ZUNvbnRleHQsIGZuKTtcbiAgICB9XG4gICAgdHJhY2UoLi4uYXJncykge1xuICAgICAgICB2YXIgX3RyYWNlX2dldFNwYW5Db250ZXh0O1xuICAgICAgICBjb25zdCBbdHlwZSwgZm5Pck9wdGlvbnMsIGZuT3JFbXB0eV0gPSBhcmdzO1xuICAgICAgICAvLyBjb2VyY2Ugb3B0aW9ucyBmb3JtIG92ZXJsb2FkXG4gICAgICAgIGNvbnN0IHsgZm4sIG9wdGlvbnMgfSA9IHR5cGVvZiBmbk9yT3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJyA/IHtcbiAgICAgICAgICAgIGZuOiBmbk9yT3B0aW9ucyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHt9XG4gICAgICAgIH0gOiB7XG4gICAgICAgICAgICBmbjogZm5PckVtcHR5LFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIC4uLmZuT3JPcHRpb25zXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHNwYW5OYW1lID0gb3B0aW9ucy5zcGFuTmFtZSA/PyB0eXBlO1xuICAgICAgICBpZiAoIV9jb25zdGFudHMuTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0LmluY2x1ZGVzKHR5cGUpICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9WRVJCT1NFICE9PSAnMScgfHwgb3B0aW9ucy5oaWRlU3Bhbikge1xuICAgICAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gVHJ5aW5nIHRvIGdldCBhY3RpdmUgc2NvcGVkIHNwYW4gdG8gYXNzaWduIHBhcmVudC4gSWYgb3B0aW9uIHNwZWNpZmllcyBwYXJlbnQgc3BhbiBtYW51YWxseSwgd2lsbCB0cnkgdG8gdXNlIGl0LlxuICAgICAgICBsZXQgc3BhbkNvbnRleHQgPSB0aGlzLmdldFNwYW5Db250ZXh0KChvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLnBhcmVudFNwYW4pID8/IHRoaXMuZ2V0QWN0aXZlU2NvcGVTcGFuKCkpO1xuICAgICAgICBsZXQgaXNSb290U3BhbiA9IGZhbHNlO1xuICAgICAgICBpZiAoIXNwYW5Db250ZXh0KSB7XG4gICAgICAgICAgICBzcGFuQ29udGV4dCA9IChjb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBjb250ZXh0LmFjdGl2ZSgpKSA/PyBST09UX0NPTlRFWFQ7XG4gICAgICAgICAgICBpc1Jvb3RTcGFuID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICgoX3RyYWNlX2dldFNwYW5Db250ZXh0ID0gdHJhY2UuZ2V0U3BhbkNvbnRleHQoc3BhbkNvbnRleHQpKSA9PSBudWxsID8gdm9pZCAwIDogX3RyYWNlX2dldFNwYW5Db250ZXh0LmlzUmVtb3RlKSB7XG4gICAgICAgICAgICBpc1Jvb3RTcGFuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzcGFuSWQgPSBnZXRTcGFuSWQoKTtcbiAgICAgICAgb3B0aW9ucy5hdHRyaWJ1dGVzID0ge1xuICAgICAgICAgICAgJ25leHQuc3Bhbl9uYW1lJzogc3Bhbk5hbWUsXG4gICAgICAgICAgICAnbmV4dC5zcGFuX3R5cGUnOiB0eXBlLFxuICAgICAgICAgICAgLi4ub3B0aW9ucy5hdHRyaWJ1dGVzXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBjb250ZXh0LndpdGgoc3BhbkNvbnRleHQuc2V0VmFsdWUocm9vdFNwYW5JZEtleSwgc3BhbklkKSwgKCk9PnRoaXMuZ2V0VHJhY2VySW5zdGFuY2UoKS5zdGFydEFjdGl2ZVNwYW4oc3Bhbk5hbWUsIG9wdGlvbnMsIChzcGFuKT0+e1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9ICdwZXJmb3JtYW5jZScgaW4gZ2xvYmFsVGhpcyAmJiAnbWVhc3VyZScgaW4gcGVyZm9ybWFuY2UgPyBnbG9iYWxUaGlzLnBlcmZvcm1hbmNlLm5vdygpIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9uQ2xlYW51cCA9ICgpPT57XG4gICAgICAgICAgICAgICAgICAgIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLmRlbGV0ZShzcGFuSWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRUaW1lICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9QRVJGT1JNQU5DRV9QUkVGSVggJiYgX2NvbnN0YW50cy5Mb2dTcGFuQWxsb3dMaXN0LmluY2x1ZGVzKHR5cGUgfHwgJycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZS5tZWFzdXJlKGAke3Byb2Nlc3MuZW52Lk5FWFRfT1RFTF9QRVJGT1JNQU5DRV9QUkVGSVh9Om5leHQtJHsodHlwZS5zcGxpdCgnLicpLnBvcCgpIHx8ICcnKS5yZXBsYWNlKC9bQS1aXS9nLCAobWF0Y2gpPT4nLScgKyBtYXRjaC50b0xvd2VyQ2FzZSgpKX1gLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IHBlcmZvcm1hbmNlLm5vdygpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKGlzUm9vdFNwYW4pIHtcbiAgICAgICAgICAgICAgICAgICAgcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuc2V0KHNwYW5JZCwgbmV3IE1hcChPYmplY3QuZW50cmllcyhvcHRpb25zLmF0dHJpYnV0ZXMgPz8ge30pKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm4oc3BhbiwgKGVycik9PmNsb3NlU3BhbldpdGhFcnJvcihzcGFuLCBlcnIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBmbihzcGFuKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCgwLCBfaXN0aGVuYWJsZS5pc1RoZW5hYmxlKShyZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSdzIGVycm9yIG1ha2Ugc3VyZSBpdCB0aHJvd3NcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQudGhlbigocmVzKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmVlZCB0byBwYXNzIGRvd24gdGhlIHByb21pc2UgcmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0IGNvdWxkIGJlIHJlYWN0IHN0cmVhbSByZXNwb25zZSB3aXRoIGVycm9yIHsgZXJyb3IsIHN0cmVhbSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlcnIpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTcGFuV2l0aEVycm9yKHNwYW4sIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkuZmluYWxseShvbkNsZWFudXApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xlYW51cCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsb3NlU3BhbldpdGhFcnJvcihzcGFuLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG4gICAgd3JhcCguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHRyYWNlciA9IHRoaXM7XG4gICAgICAgIGNvbnN0IFtuYW1lLCBvcHRpb25zLCBmbl0gPSBhcmdzLmxlbmd0aCA9PT0gMyA/IGFyZ3MgOiBbXG4gICAgICAgICAgICBhcmdzWzBdLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICBhcmdzWzFdXG4gICAgICAgIF07XG4gICAgICAgIGlmICghX2NvbnN0YW50cy5OZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3QuaW5jbHVkZXMobmFtZSkgJiYgcHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1ZFUkJPU0UgIT09ICcxJykge1xuICAgICAgICAgICAgcmV0dXJuIGZuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGxldCBvcHRpb25zT2JqID0gb3B0aW9ucztcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09iaiA9PT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zT2JqID0gb3B0aW9uc09iai5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGFzdEFyZ0lkID0gYXJndW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBjb25zdCBjYiA9IGFyZ3VtZW50c1tsYXN0QXJnSWRdO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjYiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjb3BlQm91bmRDYiA9IHRyYWNlci5nZXRDb250ZXh0KCkuYmluZChjb250ZXh0LmFjdGl2ZSgpLCBjYik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYWNlci50cmFjZShuYW1lLCBvcHRpb25zT2JqLCAoX3NwYW4sIGRvbmUpPT57XG4gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50c1tsYXN0QXJnSWRdID0gZnVuY3Rpb24oZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb25lID09IG51bGwgPyB2b2lkIDAgOiBkb25lKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2NvcGVCb3VuZENiLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhY2VyLnRyYWNlKG5hbWUsIG9wdGlvbnNPYmosICgpPT5mbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG4gICAgc3RhcnRTcGFuKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgW3R5cGUsIG9wdGlvbnNdID0gYXJncztcbiAgICAgICAgY29uc3Qgc3BhbkNvbnRleHQgPSB0aGlzLmdldFNwYW5Db250ZXh0KChvcHRpb25zID09IG51bGwgPyB2b2lkIDAgOiBvcHRpb25zLnBhcmVudFNwYW4pID8/IHRoaXMuZ2V0QWN0aXZlU2NvcGVTcGFuKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFjZXJJbnN0YW5jZSgpLnN0YXJ0U3Bhbih0eXBlLCBvcHRpb25zLCBzcGFuQ29udGV4dCk7XG4gICAgfVxuICAgIGdldFNwYW5Db250ZXh0KHBhcmVudFNwYW4pIHtcbiAgICAgICAgY29uc3Qgc3BhbkNvbnRleHQgPSBwYXJlbnRTcGFuID8gdHJhY2Uuc2V0U3Bhbihjb250ZXh0LmFjdGl2ZSgpLCBwYXJlbnRTcGFuKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHNwYW5Db250ZXh0O1xuICAgIH1cbiAgICBnZXRSb290U3BhbkF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIGNvbnN0IHNwYW5JZCA9IGNvbnRleHQuYWN0aXZlKCkuZ2V0VmFsdWUocm9vdFNwYW5JZEtleSk7XG4gICAgICAgIHJldHVybiByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5nZXQoc3BhbklkKTtcbiAgICB9XG4gICAgc2V0Um9vdFNwYW5BdHRyaWJ1dGUoa2V5LCB2YWx1ZSkge1xuICAgICAgICBjb25zdCBzcGFuSWQgPSBjb250ZXh0LmFjdGl2ZSgpLmdldFZhbHVlKHJvb3RTcGFuSWRLZXkpO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuZ2V0KHNwYW5JZCk7XG4gICAgICAgIGlmIChhdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICBhdHRyaWJ1dGVzLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmNvbnN0IGdldFRyYWNlciA9ICgoKT0+e1xuICAgIGNvbnN0IHRyYWNlciA9IG5ldyBOZXh0VHJhY2VySW1wbCgpO1xuICAgIHJldHVybiAoKT0+dHJhY2VyO1xufSkoKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHJhY2VyLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/pipe-readable.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/server/pipe-readable.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isAbortError: function() {\n return isAbortError;\n },\n pipeToNodeResponse: function() {\n return pipeToNodeResponse;\n }\n});\nconst _nextrequest = __webpack_require__(/*! ./web/spec-extension/adapters/next-request */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\");\nconst _detachedpromise = __webpack_require__(/*! ../lib/detached-promise */ \"(rsc)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _tracer = __webpack_require__(/*! ./lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ./lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _clientcomponentrendererlogger = __webpack_require__(/*! ./client-component-renderer-logger */ \"(rsc)/./node_modules/next/dist/server/client-component-renderer-logger.js\");\nfunction isAbortError(e) {\n return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === _nextrequest.ResponseAbortedName;\n}\nfunction createWriterFromResponse(res, waitUntilForEnd) {\n let started = false;\n // Create a promise that will resolve once the response has drained. See\n // https://nodejs.org/api/stream.html#stream_event_drain\n let drained = new _detachedpromise.DetachedPromise();\n function onDrain() {\n drained.resolve();\n }\n res.on('drain', onDrain);\n // If the finish event fires, it means we shouldn't block and wait for the\n // drain event.\n res.once('close', ()=>{\n res.off('drain', onDrain);\n drained.resolve();\n });\n // Create a promise that will resolve once the response has finished. See\n // https://nodejs.org/api/http.html#event-finish_1\n const finished = new _detachedpromise.DetachedPromise();\n res.once('finish', ()=>{\n finished.resolve();\n });\n // Create a writable stream that will write to the response.\n return new WritableStream({\n write: async (chunk)=>{\n // You'd think we'd want to use `start` instead of placing this in `write`\n // but this ensures that we don't actually flush the headers until we've\n // started writing chunks.\n if (!started) {\n started = true;\n if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) {\n const metrics = (0, _clientcomponentrendererlogger.getClientComponentLoaderMetrics)();\n if (metrics) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, {\n start: metrics.clientComponentLoadStart,\n end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes\n });\n }\n }\n res.flushHeaders();\n (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.startResponse, {\n spanName: 'start response'\n }, ()=>undefined);\n }\n try {\n const ok = res.write(chunk);\n // Added by the `compression` middleware, this is a function that will\n // flush the partially-compressed response to the client.\n if ('flush' in res && typeof res.flush === 'function') {\n res.flush();\n }\n // If the write returns false, it means there's some backpressure, so\n // wait until it's streamed before continuing.\n if (!ok) {\n await drained.promise;\n // Reset the drained promise so that we can wait for the next drain event.\n drained = new _detachedpromise.DetachedPromise();\n }\n } catch (err) {\n res.end();\n throw Object.defineProperty(new Error('failed to write chunk to response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E321\",\n enumerable: false,\n configurable: true\n });\n }\n },\n abort: (err)=>{\n if (res.writableFinished) return;\n res.destroy(err);\n },\n close: async ()=>{\n // if a waitUntil promise was passed, wait for it to resolve before\n // ending the response.\n if (waitUntilForEnd) {\n await waitUntilForEnd;\n }\n if (res.writableFinished) return;\n res.end();\n return finished.promise;\n }\n });\n}\nasync function pipeToNodeResponse(readable, res, waitUntilForEnd) {\n try {\n // If the response has already errored, then just return now.\n const { errored, destroyed } = res;\n if (errored || destroyed) return;\n // Create a new AbortController so that we can abort the readable if the\n // client disconnects.\n const controller = (0, _nextrequest.createAbortController)(res);\n const writer = createWriterFromResponse(res, waitUntilForEnd);\n await readable.pipeTo(writer, {\n signal: controller.signal\n });\n } catch (err) {\n // If this isn't related to an abort error, re-throw it.\n if (isAbortError(err)) return;\n throw Object.defineProperty(new Error('failed to pipe response', {\n cause: err\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E180\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=pipe-readable.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9waXBlLXJlYWRhYmxlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQUdMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQixtQkFBTyxDQUFDLHFJQUE0QztBQUN6RSx5QkFBeUIsbUJBQU8sQ0FBQyx1RkFBeUI7QUFDMUQsZ0JBQWdCLG1CQUFPLENBQUMscUZBQW9CO0FBQzVDLG1CQUFtQixtQkFBTyxDQUFDLDJGQUF1QjtBQUNsRCx1Q0FBdUMsbUJBQU8sQ0FBQyxxSEFBb0M7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MseUNBQXlDO0FBQ3hGO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IscUJBQXFCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcGlwZS1yZWFkYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGlzQWJvcnRFcnJvcjogbnVsbCxcbiAgICBwaXBlVG9Ob2RlUmVzcG9uc2U6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNBYm9ydEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQWJvcnRFcnJvcjtcbiAgICB9LFxuICAgIHBpcGVUb05vZGVSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwaXBlVG9Ob2RlUmVzcG9uc2U7XG4gICAgfVxufSk7XG5jb25zdCBfbmV4dHJlcXVlc3QgPSByZXF1aXJlKFwiLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0XCIpO1xuY29uc3QgX2RldGFjaGVkcHJvbWlzZSA9IHJlcXVpcmUoXCIuLi9saWIvZGV0YWNoZWQtcHJvbWlzZVwiKTtcbmNvbnN0IF90cmFjZXIgPSByZXF1aXJlKFwiLi9saWIvdHJhY2UvdHJhY2VyXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfY2xpZW50Y29tcG9uZW50cmVuZGVyZXJsb2dnZXIgPSByZXF1aXJlKFwiLi9jbGllbnQtY29tcG9uZW50LXJlbmRlcmVyLWxvZ2dlclwiKTtcbmZ1bmN0aW9uIGlzQWJvcnRFcnJvcihlKSB7XG4gICAgcmV0dXJuIChlID09IG51bGwgPyB2b2lkIDAgOiBlLm5hbWUpID09PSAnQWJvcnRFcnJvcicgfHwgKGUgPT0gbnVsbCA/IHZvaWQgMCA6IGUubmFtZSkgPT09IF9uZXh0cmVxdWVzdC5SZXNwb25zZUFib3J0ZWROYW1lO1xufVxuZnVuY3Rpb24gY3JlYXRlV3JpdGVyRnJvbVJlc3BvbnNlKHJlcywgd2FpdFVudGlsRm9yRW5kKSB7XG4gICAgbGV0IHN0YXJ0ZWQgPSBmYWxzZTtcbiAgICAvLyBDcmVhdGUgYSBwcm9taXNlIHRoYXQgd2lsbCByZXNvbHZlIG9uY2UgdGhlIHJlc3BvbnNlIGhhcyBkcmFpbmVkLiBTZWVcbiAgICAvLyBodHRwczovL25vZGVqcy5vcmcvYXBpL3N0cmVhbS5odG1sI3N0cmVhbV9ldmVudF9kcmFpblxuICAgIGxldCBkcmFpbmVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgZnVuY3Rpb24gb25EcmFpbigpIHtcbiAgICAgICAgZHJhaW5lZC5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHJlcy5vbignZHJhaW4nLCBvbkRyYWluKTtcbiAgICAvLyBJZiB0aGUgZmluaXNoIGV2ZW50IGZpcmVzLCBpdCBtZWFucyB3ZSBzaG91bGRuJ3QgYmxvY2sgYW5kIHdhaXQgZm9yIHRoZVxuICAgIC8vIGRyYWluIGV2ZW50LlxuICAgIHJlcy5vbmNlKCdjbG9zZScsICgpPT57XG4gICAgICAgIHJlcy5vZmYoJ2RyYWluJywgb25EcmFpbik7XG4gICAgICAgIGRyYWluZWQucmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIC8vIENyZWF0ZSBhIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgb25jZSB0aGUgcmVzcG9uc2UgaGFzIGZpbmlzaGVkLiBTZWVcbiAgICAvLyBodHRwczovL25vZGVqcy5vcmcvYXBpL2h0dHAuaHRtbCNldmVudC1maW5pc2hfMVxuICAgIGNvbnN0IGZpbmlzaGVkID0gbmV3IF9kZXRhY2hlZHByb21pc2UuRGV0YWNoZWRQcm9taXNlKCk7XG4gICAgcmVzLm9uY2UoJ2ZpbmlzaCcsICgpPT57XG4gICAgICAgIGZpbmlzaGVkLnJlc29sdmUoKTtcbiAgICB9KTtcbiAgICAvLyBDcmVhdGUgYSB3cml0YWJsZSBzdHJlYW0gdGhhdCB3aWxsIHdyaXRlIHRvIHRoZSByZXNwb25zZS5cbiAgICByZXR1cm4gbmV3IFdyaXRhYmxlU3RyZWFtKHtcbiAgICAgICAgd3JpdGU6IGFzeW5jIChjaHVuayk9PntcbiAgICAgICAgICAgIC8vIFlvdSdkIHRoaW5rIHdlJ2Qgd2FudCB0byB1c2UgYHN0YXJ0YCBpbnN0ZWFkIG9mIHBsYWNpbmcgdGhpcyBpbiBgd3JpdGVgXG4gICAgICAgICAgICAvLyBidXQgdGhpcyBlbnN1cmVzIHRoYXQgd2UgZG9uJ3QgYWN0dWFsbHkgZmx1c2ggdGhlIGhlYWRlcnMgdW50aWwgd2UndmVcbiAgICAgICAgICAgIC8vIHN0YXJ0ZWQgd3JpdGluZyBjaHVua3MuXG4gICAgICAgICAgICBpZiAoIXN0YXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICBzdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoJ3BlcmZvcm1hbmNlJyBpbiBnbG9iYWxUaGlzICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9QRVJGT1JNQU5DRV9QUkVGSVgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWV0cmljcyA9ICgwLCBfY2xpZW50Y29tcG9uZW50cmVuZGVyZXJsb2dnZXIuZ2V0Q2xpZW50Q29tcG9uZW50TG9hZGVyTWV0cmljcykoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldHJpY3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoYCR7cHJvY2Vzcy5lbnYuTkVYVF9PVEVMX1BFUkZPUk1BTkNFX1BSRUZJWH06bmV4dC1jbGllbnQtY29tcG9uZW50LWxvYWRpbmdgLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IG1ldHJpY3MuY2xpZW50Q29tcG9uZW50TG9hZFN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogbWV0cmljcy5jbGllbnRDb21wb25lbnRMb2FkU3RhcnQgKyBtZXRyaWNzLmNsaWVudENvbXBvbmVudExvYWRUaW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVzLmZsdXNoSGVhZGVycygpO1xuICAgICAgICAgICAgICAgICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS50cmFjZShfY29uc3RhbnRzLk5leHROb2RlU2VydmVyU3Bhbi5zdGFydFJlc3BvbnNlLCB7XG4gICAgICAgICAgICAgICAgICAgIHNwYW5OYW1lOiAnc3RhcnQgcmVzcG9uc2UnXG4gICAgICAgICAgICAgICAgfSwgKCk9PnVuZGVmaW5lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9rID0gcmVzLndyaXRlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAvLyBBZGRlZCBieSB0aGUgYGNvbXByZXNzaW9uYCBtaWRkbGV3YXJlLCB0aGlzIGlzIGEgZnVuY3Rpb24gdGhhdCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gZmx1c2ggdGhlIHBhcnRpYWxseS1jb21wcmVzc2VkIHJlc3BvbnNlIHRvIHRoZSBjbGllbnQuXG4gICAgICAgICAgICAgICAgaWYgKCdmbHVzaCcgaW4gcmVzICYmIHR5cGVvZiByZXMuZmx1c2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLmZsdXNoKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSB3cml0ZSByZXR1cm5zIGZhbHNlLCBpdCBtZWFucyB0aGVyZSdzIHNvbWUgYmFja3ByZXNzdXJlLCBzb1xuICAgICAgICAgICAgICAgIC8vIHdhaXQgdW50aWwgaXQncyBzdHJlYW1lZCBiZWZvcmUgY29udGludWluZy5cbiAgICAgICAgICAgICAgICBpZiAoIW9rKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGRyYWluZWQucHJvbWlzZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGRyYWluZWQgcHJvbWlzZSBzbyB0aGF0IHdlIGNhbiB3YWl0IGZvciB0aGUgbmV4dCBkcmFpbiBldmVudC5cbiAgICAgICAgICAgICAgICAgICAgZHJhaW5lZCA9IG5ldyBfZGV0YWNoZWRwcm9taXNlLkRldGFjaGVkUHJvbWlzZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdmYWlsZWQgdG8gd3JpdGUgY2h1bmsgdG8gcmVzcG9uc2UnLCB7XG4gICAgICAgICAgICAgICAgICAgIGNhdXNlOiBlcnJcbiAgICAgICAgICAgICAgICB9KSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzMjFcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBhYm9ydDogKGVycik9PntcbiAgICAgICAgICAgIGlmIChyZXMud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcmVzLmRlc3Ryb3koZXJyKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2U6IGFzeW5jICgpPT57XG4gICAgICAgICAgICAvLyBpZiBhIHdhaXRVbnRpbCBwcm9taXNlIHdhcyBwYXNzZWQsIHdhaXQgZm9yIGl0IHRvIHJlc29sdmUgYmVmb3JlXG4gICAgICAgICAgICAvLyBlbmRpbmcgdGhlIHJlc3BvbnNlLlxuICAgICAgICAgICAgaWYgKHdhaXRVbnRpbEZvckVuZCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHdhaXRVbnRpbEZvckVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXMud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgcmV0dXJuIGZpbmlzaGVkLnByb21pc2U7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIHBpcGVUb05vZGVSZXNwb25zZShyZWFkYWJsZSwgcmVzLCB3YWl0VW50aWxGb3JFbmQpIHtcbiAgICB0cnkge1xuICAgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaGFzIGFscmVhZHkgZXJyb3JlZCwgdGhlbiBqdXN0IHJldHVybiBub3cuXG4gICAgICAgIGNvbnN0IHsgZXJyb3JlZCwgZGVzdHJveWVkIH0gPSByZXM7XG4gICAgICAgIGlmIChlcnJvcmVkIHx8IGRlc3Ryb3llZCkgcmV0dXJuO1xuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgQWJvcnRDb250cm9sbGVyIHNvIHRoYXQgd2UgY2FuIGFib3J0IHRoZSByZWFkYWJsZSBpZiB0aGVcbiAgICAgICAgLy8gY2xpZW50IGRpc2Nvbm5lY3RzLlxuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gKDAsIF9uZXh0cmVxdWVzdC5jcmVhdGVBYm9ydENvbnRyb2xsZXIpKHJlcyk7XG4gICAgICAgIGNvbnN0IHdyaXRlciA9IGNyZWF0ZVdyaXRlckZyb21SZXNwb25zZShyZXMsIHdhaXRVbnRpbEZvckVuZCk7XG4gICAgICAgIGF3YWl0IHJlYWRhYmxlLnBpcGVUbyh3cml0ZXIsIHtcbiAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWxcbiAgICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIElmIHRoaXMgaXNuJ3QgcmVsYXRlZCB0byBhbiBhYm9ydCBlcnJvciwgcmUtdGhyb3cgaXQuXG4gICAgICAgIGlmIChpc0Fib3J0RXJyb3IoZXJyKSkgcmV0dXJuO1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdmYWlsZWQgdG8gcGlwZSByZXNwb25zZScsIHtcbiAgICAgICAgICAgIGNhdXNlOiBlcnJcbiAgICAgICAgfSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTE4MFwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1waXBlLXJlYWRhYmxlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/pipe-readable.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/render-result.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/server/render-result.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RenderResult;\n }\n}));\nconst _nodewebstreamshelper = __webpack_require__(/*! ./stream-utils/node-web-streams-helper */ \"(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\");\nconst _pipereadable = __webpack_require__(/*! ./pipe-readable */ \"(rsc)/./node_modules/next/dist/server/pipe-readable.js\");\nclass RenderResult {\n /**\n * Creates a new RenderResult instance from a static response.\n *\n * @param value the static response value\n * @returns a new RenderResult instance\n */ static fromStatic(value) {\n return new RenderResult(value, {\n metadata: {}\n });\n }\n constructor(response, { contentType, waitUntil, metadata }){\n this.response = response;\n this.contentType = contentType;\n this.metadata = metadata;\n this.waitUntil = waitUntil;\n }\n assignMetadata(metadata) {\n Object.assign(this.metadata, metadata);\n }\n /**\n * Returns true if the response is null. It can be null if the response was\n * not found or was already sent.\n */ get isNull() {\n return this.response === null;\n }\n /**\n * Returns false if the response is a string. It can be a string if the page\n * was prerendered. If it's not, then it was generated dynamically.\n */ get isDynamic() {\n return typeof this.response !== 'string';\n }\n toUnchunkedBuffer(stream = false) {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: null responses cannot be unchunked'), \"__NEXT_ERROR_CODE\", {\n value: \"E274\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw Object.defineProperty(new Error('Invariant: dynamic responses cannot be unchunked. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E81\",\n enumerable: false,\n configurable: true\n });\n }\n return (0, _nodewebstreamshelper.streamToBuffer)(this.readable);\n }\n return Buffer.from(this.response);\n }\n toUnchunkedString(stream = false) {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: null responses cannot be unchunked'), \"__NEXT_ERROR_CODE\", {\n value: \"E274\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof this.response !== 'string') {\n if (!stream) {\n throw Object.defineProperty(new Error('Invariant: dynamic responses cannot be unchunked. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E81\",\n enumerable: false,\n configurable: true\n });\n }\n return (0, _nodewebstreamshelper.streamToString)(this.readable);\n }\n return this.response;\n }\n /**\n * Returns the response if it is a stream, or throws an error if it is a\n * string.\n */ get readable() {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: null responses cannot be streamed'), \"__NEXT_ERROR_CODE\", {\n value: \"E14\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof this.response === 'string') {\n throw Object.defineProperty(new Error('Invariant: static responses cannot be streamed'), \"__NEXT_ERROR_CODE\", {\n value: \"E151\",\n enumerable: false,\n configurable: true\n });\n }\n if (Buffer.isBuffer(this.response)) {\n return (0, _nodewebstreamshelper.streamFromBuffer)(this.response);\n }\n // If the response is an array of streams, then chain them together.\n if (Array.isArray(this.response)) {\n return (0, _nodewebstreamshelper.chainStreams)(...this.response);\n }\n return this.response;\n }\n /**\n * Chains a new stream to the response. This will convert the response to an\n * array of streams if it is not already one and will add the new stream to\n * the end. When this response is piped, all of the streams will be piped\n * one after the other.\n *\n * @param readable The new stream to chain\n */ chain(readable) {\n if (this.response === null) {\n throw Object.defineProperty(new Error('Invariant: response is null. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E258\",\n enumerable: false,\n configurable: true\n });\n }\n // If the response is not an array of streams already, make it one.\n let responses;\n if (typeof this.response === 'string') {\n responses = [\n (0, _nodewebstreamshelper.streamFromString)(this.response)\n ];\n } else if (Array.isArray(this.response)) {\n responses = this.response;\n } else if (Buffer.isBuffer(this.response)) {\n responses = [\n (0, _nodewebstreamshelper.streamFromBuffer)(this.response)\n ];\n } else {\n responses = [\n this.response\n ];\n }\n // Add the new stream to the array.\n responses.push(readable);\n // Update the response.\n this.response = responses;\n }\n /**\n * Pipes the response to a writable stream. This will close/cancel the\n * writable stream if an error is encountered. If this doesn't throw, then\n * the writable stream will be closed or aborted.\n *\n * @param writable Writable stream to pipe the response to\n */ async pipeTo(writable) {\n try {\n await this.readable.pipeTo(writable, {\n // We want to close the writable stream ourselves so that we can wait\n // for the waitUntil promise to resolve before closing it. If an error\n // is encountered, we'll abort the writable stream if we swallowed the\n // error.\n preventClose: true\n });\n // If there is a waitUntil promise, wait for it to resolve before\n // closing the writable stream.\n if (this.waitUntil) await this.waitUntil;\n // Close the writable stream.\n await writable.close();\n } catch (err) {\n // If this is an abort error, we should abort the writable stream (as we\n // took ownership of it when we started piping). We don't need to re-throw\n // because we handled the error.\n if ((0, _pipereadable.isAbortError)(err)) {\n // Abort the writable stream if an error is encountered.\n await writable.abort(err);\n return;\n }\n // We're not aborting the writer here as when this method throws it's not\n // clear as to how so the caller should assume it's their responsibility\n // to clean up the writer.\n throw err;\n }\n }\n /**\n * Pipes the response to a node response. This will close/cancel the node\n * response if an error is encountered.\n *\n * @param res\n */ async pipeToNodeResponse(res) {\n await (0, _pipereadable.pipeToNodeResponse)(this.readable, res, this.waitUntil);\n }\n}\n\n//# sourceMappingURL=render-result.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZW5kZXItcmVzdWx0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOEJBQThCLG1CQUFPLENBQUMsNkhBQXdDO0FBQzlFLHNCQUFzQixtQkFBTyxDQUFDLCtFQUFpQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSw0QkFBNEIsa0NBQWtDO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVuZGVyLXJlc3VsdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlbmRlclJlc3VsdDtcbiAgICB9XG59KTtcbmNvbnN0IF9ub2Rld2Vic3RyZWFtc2hlbHBlciA9IHJlcXVpcmUoXCIuL3N0cmVhbS11dGlscy9ub2RlLXdlYi1zdHJlYW1zLWhlbHBlclwiKTtcbmNvbnN0IF9waXBlcmVhZGFibGUgPSByZXF1aXJlKFwiLi9waXBlLXJlYWRhYmxlXCIpO1xuY2xhc3MgUmVuZGVyUmVzdWx0IHtcbiAgICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBSZW5kZXJSZXN1bHQgaW5zdGFuY2UgZnJvbSBhIHN0YXRpYyByZXNwb25zZS5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIHRoZSBzdGF0aWMgcmVzcG9uc2UgdmFsdWVcbiAgICogQHJldHVybnMgYSBuZXcgUmVuZGVyUmVzdWx0IGluc3RhbmNlXG4gICAqLyBzdGF0aWMgZnJvbVN0YXRpYyh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gbmV3IFJlbmRlclJlc3VsdCh2YWx1ZSwge1xuICAgICAgICAgICAgbWV0YWRhdGE6IHt9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvcihyZXNwb25zZSwgeyBjb250ZW50VHlwZSwgd2FpdFVudGlsLCBtZXRhZGF0YSB9KXtcbiAgICAgICAgdGhpcy5yZXNwb25zZSA9IHJlc3BvbnNlO1xuICAgICAgICB0aGlzLmNvbnRlbnRUeXBlID0gY29udGVudFR5cGU7XG4gICAgICAgIHRoaXMubWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICAgICAgdGhpcy53YWl0VW50aWwgPSB3YWl0VW50aWw7XG4gICAgfVxuICAgIGFzc2lnbk1ldGFkYXRhKG1ldGFkYXRhKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tZXRhZGF0YSwgbWV0YWRhdGEpO1xuICAgIH1cbiAgICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSByZXNwb25zZSBpcyBudWxsLiBJdCBjYW4gYmUgbnVsbCBpZiB0aGUgcmVzcG9uc2Ugd2FzXG4gICAqIG5vdCBmb3VuZCBvciB3YXMgYWxyZWFkeSBzZW50LlxuICAgKi8gZ2V0IGlzTnVsbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2UgPT09IG51bGw7XG4gICAgfVxuICAgIC8qKlxuICAgKiBSZXR1cm5zIGZhbHNlIGlmIHRoZSByZXNwb25zZSBpcyBhIHN0cmluZy4gSXQgY2FuIGJlIGEgc3RyaW5nIGlmIHRoZSBwYWdlXG4gICAqIHdhcyBwcmVyZW5kZXJlZC4gSWYgaXQncyBub3QsIHRoZW4gaXQgd2FzIGdlbmVyYXRlZCBkeW5hbWljYWxseS5cbiAgICovIGdldCBpc0R5bmFtaWMoKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5yZXNwb25zZSAhPT0gJ3N0cmluZyc7XG4gICAgfVxuICAgIHRvVW5jaHVua2VkQnVmZmVyKHN0cmVhbSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IG51bGwgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTI3NFwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKCFzdHJlYW0pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IGR5bmFtaWMgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTgxXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbVRvQnVmZmVyKSh0aGlzLnJlYWRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20odGhpcy5yZXNwb25zZSk7XG4gICAgfVxuICAgIHRvVW5jaHVua2VkU3RyaW5nKHN0cmVhbSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IG51bGwgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTI3NFwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKCFzdHJlYW0pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IGR5bmFtaWMgcmVzcG9uc2VzIGNhbm5vdCBiZSB1bmNodW5rZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTgxXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbVRvU3RyaW5nKSh0aGlzLnJlYWRhYmxlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZTtcbiAgICB9XG4gICAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJlc3BvbnNlIGlmIGl0IGlzIGEgc3RyZWFtLCBvciB0aHJvd3MgYW4gZXJyb3IgaWYgaXQgaXMgYVxuICAgKiBzdHJpbmcuXG4gICAqLyBnZXQgcmVhZGFibGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IG51bGwgcmVzcG9uc2VzIGNhbm5vdCBiZSBzdHJlYW1lZCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMTRcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogc3RhdGljIHJlc3BvbnNlcyBjYW5ub3QgYmUgc3RyZWFtZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTE1MVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcih0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtRnJvbUJ1ZmZlcikodGhpcy5yZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSWYgdGhlIHJlc3BvbnNlIGlzIGFuIGFycmF5IG9mIHN0cmVhbXMsIHRoZW4gY2hhaW4gdGhlbSB0b2dldGhlci5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJldHVybiAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLmNoYWluU3RyZWFtcykoLi4udGhpcy5yZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2U7XG4gICAgfVxuICAgIC8qKlxuICAgKiBDaGFpbnMgYSBuZXcgc3RyZWFtIHRvIHRoZSByZXNwb25zZS4gVGhpcyB3aWxsIGNvbnZlcnQgdGhlIHJlc3BvbnNlIHRvIGFuXG4gICAqIGFycmF5IG9mIHN0cmVhbXMgaWYgaXQgaXMgbm90IGFscmVhZHkgb25lIGFuZCB3aWxsIGFkZCB0aGUgbmV3IHN0cmVhbSB0b1xuICAgKiB0aGUgZW5kLiBXaGVuIHRoaXMgcmVzcG9uc2UgaXMgcGlwZWQsIGFsbCBvZiB0aGUgc3RyZWFtcyB3aWxsIGJlIHBpcGVkXG4gICAqIG9uZSBhZnRlciB0aGUgb3RoZXIuXG4gICAqXG4gICAqIEBwYXJhbSByZWFkYWJsZSBUaGUgbmV3IHN0cmVhbSB0byBjaGFpblxuICAgKi8gY2hhaW4ocmVhZGFibGUpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogcmVzcG9uc2UgaXMgbnVsbC4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUyNThcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpcyBub3QgYW4gYXJyYXkgb2Ygc3RyZWFtcyBhbHJlYWR5LCBtYWtlIGl0IG9uZS5cbiAgICAgICAgbGV0IHJlc3BvbnNlcztcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmVzcG9uc2VzID0gW1xuICAgICAgICAgICAgICAgICgwLCBfbm9kZXdlYnN0cmVhbXNoZWxwZXIuc3RyZWFtRnJvbVN0cmluZykodGhpcy5yZXNwb25zZSlcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmVzcG9uc2VzID0gdGhpcy5yZXNwb25zZTtcbiAgICAgICAgfSBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIodGhpcy5yZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJlc3BvbnNlcyA9IFtcbiAgICAgICAgICAgICAgICAoMCwgX25vZGV3ZWJzdHJlYW1zaGVscGVyLnN0cmVhbUZyb21CdWZmZXIpKHRoaXMucmVzcG9uc2UpXG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzcG9uc2VzID0gW1xuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWRkIHRoZSBuZXcgc3RyZWFtIHRvIHRoZSBhcnJheS5cbiAgICAgICAgcmVzcG9uc2VzLnB1c2gocmVhZGFibGUpO1xuICAgICAgICAvLyBVcGRhdGUgdGhlIHJlc3BvbnNlLlxuICAgICAgICB0aGlzLnJlc3BvbnNlID0gcmVzcG9uc2VzO1xuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgd3JpdGFibGUgc3RyZWFtLiBUaGlzIHdpbGwgY2xvc2UvY2FuY2VsIHRoZVxuICAgKiB3cml0YWJsZSBzdHJlYW0gaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuIElmIHRoaXMgZG9lc24ndCB0aHJvdywgdGhlblxuICAgKiB0aGUgd3JpdGFibGUgc3RyZWFtIHdpbGwgYmUgY2xvc2VkIG9yIGFib3J0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB3cml0YWJsZSBXcml0YWJsZSBzdHJlYW0gdG8gcGlwZSB0aGUgcmVzcG9uc2UgdG9cbiAgICovIGFzeW5jIHBpcGVUbyh3cml0YWJsZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWFkYWJsZS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgICAgICAgICAvLyBXZSB3YW50IHRvIGNsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0gb3Vyc2VsdmVzIHNvIHRoYXQgd2UgY2FuIHdhaXRcbiAgICAgICAgICAgICAgICAvLyBmb3IgdGhlIHdhaXRVbnRpbCBwcm9taXNlIHRvIHJlc29sdmUgYmVmb3JlIGNsb3NpbmcgaXQuIElmIGFuIGVycm9yXG4gICAgICAgICAgICAgICAgLy8gaXMgZW5jb3VudGVyZWQsIHdlJ2xsIGFib3J0IHRoZSB3cml0YWJsZSBzdHJlYW0gaWYgd2Ugc3dhbGxvd2VkIHRoZVxuICAgICAgICAgICAgICAgIC8vIGVycm9yLlxuICAgICAgICAgICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHdhaXRVbnRpbCBwcm9taXNlLCB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZVxuICAgICAgICAgICAgLy8gY2xvc2luZyB0aGUgd3JpdGFibGUgc3RyZWFtLlxuICAgICAgICAgICAgaWYgKHRoaXMud2FpdFVudGlsKSBhd2FpdCB0aGlzLndhaXRVbnRpbDtcbiAgICAgICAgICAgIC8vIENsb3NlIHRoZSB3cml0YWJsZSBzdHJlYW0uXG4gICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5jbG9zZSgpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYW4gYWJvcnQgZXJyb3IsIHdlIHNob3VsZCBhYm9ydCB0aGUgd3JpdGFibGUgc3RyZWFtIChhcyB3ZVxuICAgICAgICAgICAgLy8gdG9vayBvd25lcnNoaXAgb2YgaXQgd2hlbiB3ZSBzdGFydGVkIHBpcGluZykuIFdlIGRvbid0IG5lZWQgdG8gcmUtdGhyb3dcbiAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgaGFuZGxlZCB0aGUgZXJyb3IuXG4gICAgICAgICAgICBpZiAoKDAsIF9waXBlcmVhZGFibGUuaXNBYm9ydEVycm9yKShlcnIpKSB7XG4gICAgICAgICAgICAgICAgLy8gQWJvcnQgdGhlIHdyaXRhYmxlIHN0cmVhbSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0YWJsZS5hYm9ydChlcnIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFdlJ3JlIG5vdCBhYm9ydGluZyB0aGUgd3JpdGVyIGhlcmUgYXMgd2hlbiB0aGlzIG1ldGhvZCB0aHJvd3MgaXQncyBub3RcbiAgICAgICAgICAgIC8vIGNsZWFyIGFzIHRvIGhvdyBzbyB0aGUgY2FsbGVyIHNob3VsZCBhc3N1bWUgaXQncyB0aGVpciByZXNwb25zaWJpbGl0eVxuICAgICAgICAgICAgLy8gdG8gY2xlYW4gdXAgdGhlIHdyaXRlci5cbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICogUGlwZXMgdGhlIHJlc3BvbnNlIHRvIGEgbm9kZSByZXNwb25zZS4gVGhpcyB3aWxsIGNsb3NlL2NhbmNlbCB0aGUgbm9kZVxuICAgKiByZXNwb25zZSBpZiBhbiBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAgICpcbiAgICogQHBhcmFtIHJlc1xuICAgKi8gYXN5bmMgcGlwZVRvTm9kZVJlc3BvbnNlKHJlcykge1xuICAgICAgICBhd2FpdCAoMCwgX3BpcGVyZWFkYWJsZS5waXBlVG9Ob2RlUmVzcG9uc2UpKHRoaXMucmVhZGFibGUsIHJlcywgdGhpcy53YWl0VW50aWwpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVuZGVyLXJlc3VsdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/render-result.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/request-meta.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/server/request-meta.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/* eslint-disable no-redeclare */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NEXT_REQUEST_META: function() {\n return NEXT_REQUEST_META;\n },\n addRequestMeta: function() {\n return addRequestMeta;\n },\n getRequestMeta: function() {\n return getRequestMeta;\n },\n removeRequestMeta: function() {\n return removeRequestMeta;\n },\n setRequestMeta: function() {\n return setRequestMeta;\n }\n});\nconst NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta');\nfunction getRequestMeta(req, key) {\n const meta = req[NEXT_REQUEST_META] || {};\n return typeof key === 'string' ? meta[key] : meta;\n}\nfunction setRequestMeta(req, meta) {\n req[NEXT_REQUEST_META] = meta;\n return meta;\n}\nfunction addRequestMeta(request, key, value) {\n const meta = getRequestMeta(request);\n meta[key] = value;\n return setRequestMeta(request, meta);\n}\nfunction removeRequestMeta(request, key) {\n const meta = getRequestMeta(request);\n delete meta[key];\n return setRequestMeta(request, meta);\n}\n\n//# sourceMappingURL=request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0LW1ldGEuanMiLCJtYXBwaW5ncyI6IkFBQUEsa0NBQStDO0FBQy9DLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVxdWVzdC1tZXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlZGVjbGFyZSAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE5FWFRfUkVRVUVTVF9NRVRBOiBudWxsLFxuICAgIGFkZFJlcXVlc3RNZXRhOiBudWxsLFxuICAgIGdldFJlcXVlc3RNZXRhOiBudWxsLFxuICAgIHJlbW92ZVJlcXVlc3RNZXRhOiBudWxsLFxuICAgIHNldFJlcXVlc3RNZXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE5FWFRfUkVRVUVTVF9NRVRBOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUkVRVUVTVF9NRVRBO1xuICAgIH0sXG4gICAgYWRkUmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWRkUmVxdWVzdE1ldGE7XG4gICAgfSxcbiAgICBnZXRSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRSZXF1ZXN0TWV0YTtcbiAgICB9LFxuICAgIHJlbW92ZVJlcXVlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlbW92ZVJlcXVlc3RNZXRhO1xuICAgIH0sXG4gICAgc2V0UmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGE7XG4gICAgfVxufSk7XG5jb25zdCBORVhUX1JFUVVFU1RfTUVUQSA9IFN5bWJvbC5mb3IoJ05leHRJbnRlcm5hbFJlcXVlc3RNZXRhJyk7XG5mdW5jdGlvbiBnZXRSZXF1ZXN0TWV0YShyZXEsIGtleSkge1xuICAgIGNvbnN0IG1ldGEgPSByZXFbTkVYVF9SRVFVRVNUX01FVEFdIHx8IHt9O1xuICAgIHJldHVybiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyA/IG1ldGFba2V5XSA6IG1ldGE7XG59XG5mdW5jdGlvbiBzZXRSZXF1ZXN0TWV0YShyZXEsIG1ldGEpIHtcbiAgICByZXFbTkVYVF9SRVFVRVNUX01FVEFdID0gbWV0YTtcbiAgICByZXR1cm4gbWV0YTtcbn1cbmZ1bmN0aW9uIGFkZFJlcXVlc3RNZXRhKHJlcXVlc3QsIGtleSwgdmFsdWUpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0UmVxdWVzdE1ldGEocmVxdWVzdCk7XG4gICAgbWV0YVtrZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIHNldFJlcXVlc3RNZXRhKHJlcXVlc3QsIG1ldGEpO1xufVxuZnVuY3Rpb24gcmVtb3ZlUmVxdWVzdE1ldGEocmVxdWVzdCwga2V5KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldFJlcXVlc3RNZXRhKHJlcXVlc3QpO1xuICAgIGRlbGV0ZSBtZXRhW2tleV07XG4gICAgcmV0dXJuIHNldFJlcXVlc3RNZXRhKHJlcXVlc3QsIG1ldGEpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1ZXN0LW1ldGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request-meta.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/request/connection.js":
/*!*************************************************************!*\
!*** ./node_modules/next/dist/server/request/connection.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"connection\", ({\n enumerable: true,\n get: function() {\n return connection;\n }\n}));\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/request/utils.js\");\nfunction connection() {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workStore) {\n if (workUnitStore && workUnitStore.phase === 'after' && !(0, _utils.isRequestAPICallableInsideAfter)()) {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"connection\" inside \"after(...)\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but \"after(...)\" executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`), \"__NEXT_ERROR_CODE\", {\n value: \"E186\",\n enumerable: false,\n configurable: true\n });\n }\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // headers object without tracking\n return Promise.resolve(undefined);\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'cache') {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"connection\" inside \"use cache\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E111\",\n enumerable: false,\n configurable: true\n });\n } else if (workUnitStore.type === 'unstable-cache') {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"connection\" inside a function cached with \"unstable_cache(...)\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E1\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (workStore.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`connection\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E562\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-client') {\n // dynamicIO Prerender\n // We return a promise that never resolves to allow the prender to stall at this point\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, '`connection()`');\n } else if (workUnitStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n // We use React's postpone API to interrupt rendering here to create a dynamic hole\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, 'connection', workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n // Legacy Prerender\n // We throw an error here to interrupt prerendering to mark the route as dynamic\n (0, _dynamicrendering.throwToInterruptStaticGeneration)('connection', workStore, workUnitStore);\n }\n }\n // We fall through to the dynamic context below but we still track dynamic access\n // because in dev we can still error for things like using headers inside a cache context\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workStore, workUnitStore);\n }\n return Promise.resolve(undefined);\n} //# sourceMappingURL=connection.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2Nvbm5lY3Rpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FnQmdCQTs7O2VBQUFBOzs7c0RBaEJpQjswREFDSTs4Q0FLOUI7cURBQytCO21EQUNIO21DQUNhO0FBT3pDLFNBQVNBO0lBQ2QsTUFBTUMsWUFBWUMsMEJBQUFBLGdCQUFnQixDQUFDQyxRQUFRO0lBQzNDLE1BQU1DLGdCQUFnQkMsOEJBQUFBLG9CQUFvQixDQUFDRixRQUFRO0lBRW5ELElBQUlGLFdBQVc7UUFDYixJQUNFRyxpQkFDQUEsY0FBY0UsS0FBSyxLQUFLLFdBQ3hCLENBQUNDLENBQUFBLEdBQUFBLE9BQUFBLCtCQUFBQSxLQUNEO1lBQ0EsTUFBTSxxQkFFTCxDQUZLLElBQUlDLE1BQ1IsQ0FBQyxNQUFNLEVBQUVQLFVBQVVRLEtBQUssQ0FBQyw2VUFBNlUsQ0FBQyxHQURuVzt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFFQSxJQUFJUixVQUFVUyxXQUFXLEVBQUU7WUFDekIscUZBQXFGO1lBQ3JGLGtDQUFrQztZQUNsQyxPQUFPQyxRQUFRQyxPQUFPLENBQUNDO1FBQ3pCO1FBRUEsSUFBSVQsZUFBZTtZQUNqQixJQUFJQSxjQUFjVSxJQUFJLEtBQUssU0FBUztnQkFDbEMsTUFBTSxxQkFFTCxDQUZLLElBQUlOLE1BQ1IsQ0FBQyxNQUFNLEVBQUVQLFVBQVVRLEtBQUssQ0FBQyxpVkFBaVYsQ0FBQyxHQUR2VzsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGLE9BQU8sSUFBSUwsY0FBY1UsSUFBSSxLQUFLLGtCQUFrQjtnQkFDbEQsTUFBTSxxQkFFTCxDQUZLLElBQUlOLE1BQ1IsQ0FBQyxNQUFNLEVBQUVQLFVBQVVRLEtBQUssQ0FBQywwWEFBMFgsQ0FBQyxHQURoWjsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGO1FBQ0Y7UUFDQSxJQUFJUixVQUFVYyxrQkFBa0IsRUFBRTtZQUNoQyxNQUFNLHFCQUVMLENBRkssSUFBSUMseUJBQUFBLHFCQUFxQixDQUM3QixDQUFDLE1BQU0sRUFBRWYsVUFBVVEsS0FBSyxDQUFDLG9OQUFvTixDQUFDLEdBRDFPO3VCQUFBOzRCQUFBOzhCQUFBO1lBRU47UUFDRjtRQUVBLElBQUlMLGVBQWU7WUFDakIsSUFDRUEsY0FBY1UsSUFBSSxLQUFLLGVBQ3ZCVixjQUFjVSxJQUFJLEtBQUssb0JBQ3ZCO2dCQUNBLHNCQUFzQjtnQkFDdEIsc0ZBQXNGO2dCQUN0RixPQUFPRyxDQUFBQSxHQUFBQSx1QkFBQUEsa0JBQUFBLEVBQW1CYixjQUFjYyxZQUFZLEVBQUU7WUFDeEQsT0FBTyxJQUFJZCxjQUFjVSxJQUFJLEtBQUssaUJBQWlCO2dCQUNqRCwrQkFBK0I7Z0JBQy9CLG1GQUFtRjtnQkFDbkZLLENBQUFBLEdBQUFBLGtCQUFBQSxvQkFBQUEsRUFDRWxCLFVBQVVRLEtBQUssRUFDZixjQUNBTCxjQUFjZ0IsZUFBZTtZQUVqQyxPQUFPLElBQUloQixjQUFjVSxJQUFJLEtBQUssb0JBQW9CO2dCQUNwRCxtQkFBbUI7Z0JBQ25CLGdGQUFnRjtnQkFDaEZPLENBQUFBLEdBQUFBLGtCQUFBQSxnQ0FBQUEsRUFBaUMsY0FBY3BCLFdBQVdHO1lBQzVEO1FBQ0Y7UUFDQSxpRkFBaUY7UUFDakYseUZBQXlGO1FBQ3pGa0IsQ0FBQUEsR0FBQUEsa0JBQUFBLCtCQUFBQSxFQUFnQ3JCLFdBQVdHO0lBQzdDO0lBRUEsT0FBT08sUUFBUUMsT0FBTyxDQUFDQztBQUN6QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NlcnZlci9yZXF1ZXN0L2Nvbm5lY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd29ya0FzeW5jU3RvcmFnZSB9IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgd29ya1VuaXRBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHtcbiAgcG9zdHBvbmVXaXRoVHJhY2tpbmcsXG4gIHRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uLFxuICB0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyLFxufSBmcm9tICcuLi9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nJ1xuaW1wb3J0IHsgU3RhdGljR2VuQmFpbG91dEVycm9yIH0gZnJvbSAnLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dCdcbmltcG9ydCB7IG1ha2VIYW5naW5nUHJvbWlzZSB9IGZyb20gJy4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzJ1xuaW1wb3J0IHsgaXNSZXF1ZXN0QVBJQ2FsbGFibGVJbnNpZGVBZnRlciB9IGZyb20gJy4vdXRpbHMnXG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIGluZGljYXRlIHRoYXQgeW91IHJlcXVpcmUgYW4gYWN0dWFsIHVzZXIgUmVxdWVzdCBiZWZvcmUgY29udGludWluZy5cbiAqXG4gKiBEdXJpbmcgcHJlcmVuZGVyaW5nIGl0IHdpbGwgbmV2ZXIgcmVzb2x2ZSBhbmQgZHVyaW5nIHJlbmRlcmluZyBpdCByZXNvbHZlcyBpbW1lZGlhdGVseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbm5lY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHdvcmtTdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuXG4gIGlmICh3b3JrU3RvcmUpIHtcbiAgICBpZiAoXG4gICAgICB3b3JrVW5pdFN0b3JlICYmXG4gICAgICB3b3JrVW5pdFN0b3JlLnBoYXNlID09PSAnYWZ0ZXInICYmXG4gICAgICAhaXNSZXF1ZXN0QVBJQ2FsbGFibGVJbnNpZGVBZnRlcigpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBSb3V0ZSAke3dvcmtTdG9yZS5yb3V0ZX0gdXNlZCBcImNvbm5lY3Rpb25cIiBpbnNpZGUgXCJhZnRlciguLi4pXCIuIFRoZSBcXGBjb25uZWN0aW9uKClcXGAgZnVuY3Rpb24gaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGUgc3Vic2VxdWVudCBjb2RlIG11c3Qgb25seSBydW4gd2hlbiB0aGVyZSBpcyBhbiBhY3R1YWwgUmVxdWVzdCwgYnV0IFwiYWZ0ZXIoLi4uKVwiIGV4ZWN1dGVzIGFmdGVyIHRoZSByZXF1ZXN0LCBzbyB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgc2NvcGUuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvY2FuYXJ5L2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9hZnRlcmBcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAod29ya1N0b3JlLmZvcmNlU3RhdGljKSB7XG4gICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAvLyBoZWFkZXJzIG9iamVjdCB3aXRob3V0IHRyYWNraW5nXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZClcbiAgICB9XG5cbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ2NhY2hlJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFJvdXRlICR7d29ya1N0b3JlLnJvdXRlfSB1c2VkIFwiY29ubmVjdGlvblwiIGluc2lkZSBcInVzZSBjYWNoZVwiLiBUaGUgXFxgY29ubmVjdGlvbigpXFxgIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhlIHN1YnNlcXVlbnQgY29kZSBtdXN0IG9ubHkgcnVuIHdoZW4gdGhlcmUgaXMgYW4gYWN0dWFsIFJlcXVlc3QsIGJ1dCBjYWNoZXMgbXVzdCBiZSBhYmxlIHRvIGJlIHByb2R1Y2VkIGJlZm9yZSBhIFJlcXVlc3Qgc28gdGhpcyBmdW5jdGlvbiBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHNjb3BlLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcmVxdWVzdC1pbi11c2UtY2FjaGVgXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAndW5zdGFibGUtY2FjaGUnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJjb25uZWN0aW9uXCIgaW5zaWRlIGEgZnVuY3Rpb24gY2FjaGVkIHdpdGggXCJ1bnN0YWJsZV9jYWNoZSguLi4pXCIuIFRoZSBcXGBjb25uZWN0aW9uKClcXGAgZnVuY3Rpb24gaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGUgc3Vic2VxdWVudCBjb2RlIG11c3Qgb25seSBydW4gd2hlbiB0aGVyZSBpcyBhbiBhY3R1YWwgUmVxdWVzdCwgYnV0IGNhY2hlcyBtdXN0IGJlIGFibGUgdG8gYmUgcHJvZHVjZWQgYmVmb3JlIGEgUmVxdWVzdCBzbyB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgc2NvcGUuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3Vuc3RhYmxlX2NhY2hlYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKFxuICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCBcXGBjb25uZWN0aW9uXFxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgd29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJyB8fFxuICAgICAgICB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItY2xpZW50J1xuICAgICAgKSB7XG4gICAgICAgIC8vIGR5bmFtaWNJTyBQcmVyZW5kZXJcbiAgICAgICAgLy8gV2UgcmV0dXJuIGEgcHJvbWlzZSB0aGF0IG5ldmVyIHJlc29sdmVzIHRvIGFsbG93IHRoZSBwcmVuZGVyIHRvIHN0YWxsIGF0IHRoaXMgcG9pbnRcbiAgICAgICAgcmV0dXJuIG1ha2VIYW5naW5nUHJvbWlzZSh3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCwgJ2Bjb25uZWN0aW9uKClgJylcbiAgICAgIH0gZWxzZSBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gZHluYW1pY0lPKVxuICAgICAgICAvLyBXZSB1c2UgUmVhY3QncyBwb3N0cG9uZSBBUEkgdG8gaW50ZXJydXB0IHJlbmRlcmluZyBoZXJlIHRvIGNyZWF0ZSBhIGR5bmFtaWMgaG9sZVxuICAgICAgICBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgICAgICAgICB3b3JrU3RvcmUucm91dGUsXG4gICAgICAgICAgJ2Nvbm5lY3Rpb24nLFxuICAgICAgICAgIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLWxlZ2FjeScpIHtcbiAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAvLyBXZSB0aHJvdyBhbiBlcnJvciBoZXJlIHRvIGludGVycnVwdCBwcmVyZW5kZXJpbmcgdG8gbWFyayB0aGUgcm91dGUgYXMgZHluYW1pY1xuICAgICAgICB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbignY29ubmVjdGlvbicsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSlcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gV2UgZmFsbCB0aHJvdWdoIHRvIHRoZSBkeW5hbWljIGNvbnRleHQgYmVsb3cgYnV0IHdlIHN0aWxsIHRyYWNrIGR5bmFtaWMgYWNjZXNzXG4gICAgLy8gYmVjYXVzZSBpbiBkZXYgd2UgY2FuIHN0aWxsIGVycm9yIGZvciB0aGluZ3MgbGlrZSB1c2luZyBoZWFkZXJzIGluc2lkZSBhIGNhY2hlIGNvbnRleHRcbiAgICB0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSlcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKVxufVxuIl0sIm5hbWVzIjpbImNvbm5lY3Rpb24iLCJ3b3JrU3RvcmUiLCJ3b3JrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJ3b3JrVW5pdFN0b3JlIiwid29ya1VuaXRBc3luY1N0b3JhZ2UiLCJwaGFzZSIsImlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIiLCJFcnJvciIsInJvdXRlIiwiZm9yY2VTdGF0aWMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInVuZGVmaW5lZCIsInR5cGUiLCJkeW5hbWljU2hvdWxkRXJyb3IiLCJTdGF0aWNHZW5CYWlsb3V0RXJyb3IiLCJtYWtlSGFuZ2luZ1Byb21pc2UiLCJyZW5kZXJTaWduYWwiLCJwb3N0cG9uZVdpdGhUcmFja2luZyIsImR5bmFtaWNUcmFja2luZyIsInRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uIiwidHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/connection.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/request/fallback-params.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/server/request/fallback-params.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getFallbackRouteParams\", ({\n enumerable: true,\n get: function() {\n return getFallbackRouteParams;\n }\n}));\nconst _routematcher = __webpack_require__(/*! ../../shared/lib/router/utils/route-matcher */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ../../shared/lib/router/utils/route-regex */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nfunction getParamKeys(page) {\n const pattern = (0, _routeregex.getRouteRegex)(page);\n const matcher = (0, _routematcher.getRouteMatcher)(pattern);\n // Get the default list of allowed params.\n return Object.keys(matcher(page));\n}\nfunction getFallbackRouteParams(pageOrKeys) {\n let keys;\n if (typeof pageOrKeys === 'string') {\n keys = getParamKeys(pageOrKeys);\n } else {\n keys = pageOrKeys;\n }\n // If there are no keys, we can return early.\n if (keys.length === 0) return null;\n const params = new Map();\n // As we're creating unique keys for each of the dynamic route params, we only\n // need to generate a unique ID once per request because each of the keys will\n // be also be unique.\n const uniqueID = Math.random().toString(16).slice(2);\n for (const key of keys){\n params.set(key, `%%drp:${key}:${uniqueID}%%`);\n }\n return params;\n}\n\n//# sourceMappingURL=fallback-params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2ZhbGxiYWNrLXBhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDBEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLHNCQUFzQixtQkFBTyxDQUFDLDRIQUE2QztBQUMzRSxvQkFBb0IsbUJBQU8sQ0FBQyx3SEFBMkM7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsSUFBSSxHQUFHLFNBQVM7QUFDakQ7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2ZhbGxiYWNrLXBhcmFtcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImdldEZhbGxiYWNrUm91dGVQYXJhbXNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldEZhbGxiYWNrUm91dGVQYXJhbXM7XG4gICAgfVxufSk7XG5jb25zdCBfcm91dGVtYXRjaGVyID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXJcIik7XG5jb25zdCBfcm91dGVyZWdleCA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1yZWdleFwiKTtcbmZ1bmN0aW9uIGdldFBhcmFtS2V5cyhwYWdlKSB7XG4gICAgY29uc3QgcGF0dGVybiA9ICgwLCBfcm91dGVyZWdleC5nZXRSb3V0ZVJlZ2V4KShwYWdlKTtcbiAgICBjb25zdCBtYXRjaGVyID0gKDAsIF9yb3V0ZW1hdGNoZXIuZ2V0Um91dGVNYXRjaGVyKShwYXR0ZXJuKTtcbiAgICAvLyBHZXQgdGhlIGRlZmF1bHQgbGlzdCBvZiBhbGxvd2VkIHBhcmFtcy5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMobWF0Y2hlcihwYWdlKSk7XG59XG5mdW5jdGlvbiBnZXRGYWxsYmFja1JvdXRlUGFyYW1zKHBhZ2VPcktleXMpIHtcbiAgICBsZXQga2V5cztcbiAgICBpZiAodHlwZW9mIHBhZ2VPcktleXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGtleXMgPSBnZXRQYXJhbUtleXMocGFnZU9yS2V5cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAga2V5cyA9IHBhZ2VPcktleXM7XG4gICAgfVxuICAgIC8vIElmIHRoZXJlIGFyZSBubyBrZXlzLCB3ZSBjYW4gcmV0dXJuIGVhcmx5LlxuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IE1hcCgpO1xuICAgIC8vIEFzIHdlJ3JlIGNyZWF0aW5nIHVuaXF1ZSBrZXlzIGZvciBlYWNoIG9mIHRoZSBkeW5hbWljIHJvdXRlIHBhcmFtcywgd2Ugb25seVxuICAgIC8vIG5lZWQgdG8gZ2VuZXJhdGUgYSB1bmlxdWUgSUQgb25jZSBwZXIgcmVxdWVzdCBiZWNhdXNlIGVhY2ggb2YgdGhlIGtleXMgd2lsbFxuICAgIC8vIGJlIGFsc28gYmUgdW5pcXVlLlxuICAgIGNvbnN0IHVuaXF1ZUlEID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygxNikuc2xpY2UoMik7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cyl7XG4gICAgICAgIHBhcmFtcy5zZXQoa2V5LCBgJSVkcnA6JHtrZXl9OiR7dW5pcXVlSUR9JSVgKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmFsbGJhY2stcGFyYW1zLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/fallback-params.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/request/params.js":
/*!*********************************************************!*\
!*** ./node_modules/next/dist/server/request/params.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createParamsFromClient: function() {\n return createParamsFromClient;\n },\n createPrerenderParamsForClientSegment: function() {\n return createPrerenderParamsForClientSegment;\n },\n createServerParamsForMetadata: function() {\n return createServerParamsForMetadata;\n },\n createServerParamsForRoute: function() {\n return createServerParamsForRoute;\n },\n createServerParamsForServerSegment: function() {\n return createServerParamsForServerSegment;\n }\n});\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _dynamicaccessasyncstorageexternal = __webpack_require__(/*! ../app-render/dynamic-access-async-storage.external */ \"../app-render/dynamic-access-async-storage.external\");\nfunction createParamsFromClient(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\n}\nconst createServerParamsForMetadata = createServerParamsForServerSegment;\nfunction createServerParamsForRoute(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\n}\nfunction createServerParamsForServerSegment(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\n}\nfunction createPrerenderParamsForClientSegment(underlyingParams, workStore) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (prerenderStore && (prerenderStore.type === 'prerender' || prerenderStore.type === 'prerender-client')) {\n const fallbackParams = workStore.fallbackRouteParams;\n if (fallbackParams) {\n for(let key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one of more fallback params so we need to consider\n // the awaiting of this params object \"dynamic\". Since we are in dynamicIO mode\n // we encode this as a promise that never resolves\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`params`');\n }\n }\n }\n }\n // We're prerendering in a mode that does not abort. We resolve the promise without\n // any tracking because we're just transporting a value from server to client where the tracking\n // will be applied.\n return Promise.resolve(underlyingParams);\n}\nfunction createPrerenderParams(underlyingParams, workStore, prerenderStore) {\n const fallbackParams = workStore.fallbackRouteParams;\n if (fallbackParams) {\n let hasSomeFallbackParams = false;\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n hasSomeFallbackParams = true;\n break;\n }\n }\n if (hasSomeFallbackParams) {\n // params need to be treated as dynamic because we have at least one fallback param\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n // We are in a dynamicIO prerender\n return makeHangingParams(underlyingParams, prerenderStore);\n default:\n return makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore);\n }\n }\n }\n // We don't have any fallback params so we have an entirely static safe params object\n return makeUntrackedExoticParams(underlyingParams);\n}\nfunction createRenderParams(underlyingParams, workStore) {\n if ( true && !workStore.isPrefetchRequest) {\n if (false) {}\n return makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, workStore);\n } else {\n if (false) {}\n return makeUntrackedExoticParams(underlyingParams);\n }\n}\nconst CachedParams = new WeakMap();\nconst fallbackParamsProxyHandler = {\n get: function get(target, prop, receiver) {\n if (prop === 'then' || prop === 'catch' || prop === 'finally') {\n const originalMethod = _reflect.ReflectAdapter.get(target, prop, receiver);\n return ({\n [prop]: (...args)=>{\n const store = _dynamicaccessasyncstorageexternal.dynamicAccessAsyncStorage.getStore();\n if (store) {\n store.abortController.abort(Object.defineProperty(new Error(`Accessed fallback \\`params\\` during prerendering.`), \"__NEXT_ERROR_CODE\", {\n value: \"E691\",\n enumerable: false,\n configurable: true\n }));\n }\n return new Proxy(originalMethod.apply(target, args), fallbackParamsProxyHandler);\n }\n })[prop];\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n};\nfunction makeHangingParams(underlyingParams, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = new Proxy((0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`params`'), fallbackParamsProxyHandler);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const augmentedUnderlying = {\n ...underlyingParams\n };\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(augmentedUnderlying);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n if (fallbackParams.has(prop)) {\n Object.defineProperty(augmentedUnderlying, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n enumerable: true\n });\n Object.defineProperty(promise, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n }\n });\n return promise;\n}\nfunction makeUntrackedExoticParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n });\n return promise;\n}\nfunction makeUntrackedParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingParams)));\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n promise[prop] = underlyingParams[prop];\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticParamsWithDevWarnings`, but just\n// logging the sync access without actually defining the params on the promise.\nfunction makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingParams)));\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore && workUnitStore.type === 'request' && workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore;\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);\n }\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createParamsAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createParamsAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E307\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E482\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQyw0SEFBd0M7QUFDakUsMEJBQTBCLG1CQUFPLENBQUMsOEdBQWlDO0FBQ25FLHNDQUFzQyxtQkFBTyxDQUFDLHVIQUFnRDtBQUM5Rix3QkFBd0IsbUJBQU8sQ0FBQyxzR0FBa0M7QUFDbEUsc0JBQXNCLG1CQUFPLENBQUMsOEdBQXNDO0FBQ3BFLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxrREFBa0QsbUJBQU8sQ0FBQyxrSkFBbUQ7QUFDN0csbUJBQW1CLG1CQUFPLENBQUMsNEVBQXFCO0FBQ2hELDJDQUEyQyxtQkFBTyxDQUFDLGdIQUFxRDtBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUFzQztBQUM5QyxZQUFZLEtBQTZCLEVBQUUsRUFFbEM7QUFDVDtBQUNBLE1BQU07QUFDTixZQUFZLEtBQTZCLEVBQUUsRUFFbEM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsTUFBTTtBQUMzQyw4Q0FBOEMsT0FBTyxPQUFPLFdBQVc7QUFDdkU7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxxQ0FBcUMsTUFBTTtBQUMzQyw4Q0FBOEMsT0FBTyxPQUFPLFdBQVcscU1BQXFNLCtDQUErQztBQUMzVDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLHdCQUF3QixjQUFjO0FBQ3RDO0FBQ0Esd0JBQXdCLGNBQWMsV0FBVyxjQUFjO0FBQy9EO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiwyQkFBMkI7QUFDMUQsd0NBQXdDLGNBQWM7QUFDdEQ7QUFDQSwwQ0FBMEMsa0NBQWtDO0FBQzVFO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQ6IG51bGwsXG4gICAgY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YTogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZTogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUGFyYW1zRnJvbUNsaWVudDtcbiAgICB9LFxuICAgIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhO1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGU7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ7XG4gICAgfVxufSk7XG5jb25zdCBfcmVmbGVjdCA9IHJlcXVpcmUoXCIuLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmdcIik7XG5jb25zdCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2ludmFyaWFudGVycm9yID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yXCIpO1xuY29uc3QgX3JlZmxlY3R1dGlscyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3V0aWxzL3JlZmxlY3QtdXRpbHNcIik7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzID0gcmVxdWlyZShcIi4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzXCIpO1xuY29uc3QgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIgPSByZXF1aXJlKFwiLi4vY3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlclwiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmNvbnN0IF9keW5hbWljYWNjZXNzYXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLWFjY2Vzcy1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuZnVuY3Rpb24gY3JlYXRlUGFyYW1zRnJvbUNsaWVudCh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSk7XG59XG5jb25zdCBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YSA9IGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ7XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZSh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSk7XG59XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50KHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQodW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmIChwcmVyZW5kZXJTdG9yZSAmJiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlcicgfHwgcHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1jbGllbnQnKSkge1xuICAgICAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgIGZvcihsZXQga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHBhcmFtcyBvYmplY3QgaGFzIG9uZSBvZiBtb3JlIGZhbGxiYWNrIHBhcmFtcyBzbyB3ZSBuZWVkIHRvIGNvbnNpZGVyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBhd2FpdGluZyBvZiB0aGlzIHBhcmFtcyBvYmplY3QgXCJkeW5hbWljXCIuIFNpbmNlIHdlIGFyZSBpbiBkeW5hbWljSU8gbW9kZVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBlbmNvZGUgdGhpcyBhcyBhIHByb21pc2UgdGhhdCBuZXZlciByZXNvbHZlc1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgcGFyYW1zYCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgZG9lcyBub3QgYWJvcnQuIFdlIHJlc29sdmUgdGhlIHByb21pc2Ugd2l0aG91dFxuICAgIC8vIGFueSB0cmFja2luZyBiZWNhdXNlIHdlJ3JlIGp1c3QgdHJhbnNwb3J0aW5nIGEgdmFsdWUgZnJvbSBzZXJ2ZXIgdG8gY2xpZW50IHdoZXJlIHRoZSB0cmFja2luZ1xuICAgIC8vIHdpbGwgYmUgYXBwbGllZC5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xufVxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgIGlmIChmYWxsYmFja1BhcmFtcykge1xuICAgICAgICBsZXQgaGFzU29tZUZhbGxiYWNrUGFyYW1zID0gZmFsc2U7XG4gICAgICAgIGZvcihjb25zdCBrZXkgaW4gdW5kZXJseWluZ1BhcmFtcyl7XG4gICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICBoYXNTb21lRmFsbGJhY2tQYXJhbXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNTb21lRmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgIC8vIHBhcmFtcyBuZWVkIHRvIGJlIHRyZWF0ZWQgYXMgZHluYW1pYyBiZWNhdXNlIHdlIGhhdmUgYXQgbGVhc3Qgb25lIGZhbGxiYWNrIHBhcmFtXG4gICAgICAgICAgICBzd2l0Y2gocHJlcmVuZGVyU3RvcmUudHlwZSl7XG4gICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIGluIGEgZHluYW1pY0lPIHByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZUhhbmdpbmdQYXJhbXModW5kZXJseWluZ1BhcmFtcywgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcywgZmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IGhhdmUgYW55IGZhbGxiYWNrIHBhcmFtcyBzbyB3ZSBoYXZlIGFuIGVudGlyZWx5IHN0YXRpYyBzYWZlIHBhcmFtcyBvYmplY3RcbiAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgIXdvcmtTdG9yZS5pc1ByZWZldGNoUmVxdWVzdCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0RZTkFNSUNfSU8pIHtcbiAgICAgICAgICAgIHJldHVybiBtYWtlRHluYW1pY2FsbHlUcmFja2VkUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0RZTkFNSUNfSU8pIHtcbiAgICAgICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIH1cbn1cbmNvbnN0IENhY2hlZFBhcmFtcyA9IG5ldyBXZWFrTWFwKCk7XG5jb25zdCBmYWxsYmFja1BhcmFtc1Byb3h5SGFuZGxlciA9IHtcbiAgICBnZXQ6IGZ1bmN0aW9uIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgIGlmIChwcm9wID09PSAndGhlbicgfHwgcHJvcCA9PT0gJ2NhdGNoJyB8fCBwcm9wID09PSAnZmluYWxseScpIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgcmV0dXJuICh7XG4gICAgICAgICAgICAgICAgW3Byb3BdOiAoLi4uYXJncyk9PntcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RvcmUgPSBfZHluYW1pY2FjY2Vzc2FzeW5jc3RvcmFnZWV4dGVybmFsLmR5bmFtaWNBY2Nlc3NBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3JlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZS5hYm9ydENvbnRyb2xsZXIuYWJvcnQoT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgQWNjZXNzZWQgZmFsbGJhY2sgXFxgcGFyYW1zXFxgIGR1cmluZyBwcmVyZW5kZXJpbmcuYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU2OTFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb3h5KG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRhcmdldCwgYXJncyksIGZhbGxiYWNrUGFyYW1zUHJveHlIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVtwcm9wXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgIH1cbn07XG5mdW5jdGlvbiBtYWtlSGFuZ2luZ1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb3h5KCgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkocHJlcmVuZGVyU3RvcmUucmVuZGVyU2lnbmFsLCAnYHBhcmFtc2AnKSwgZmFsbGJhY2tQYXJhbXNQcm94eUhhbmRsZXIpO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlRXJyb3JpbmdFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcywgZmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgYXVnbWVudGVkVW5kZXJseWluZyA9IHtcbiAgICAgICAgLi4udW5kZXJseWluZ1BhcmFtc1xuICAgIH07XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShhdWdtZW50ZWRVbmRlcmx5aW5nKTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb21pc2UpO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXVnbWVudGVkVW5kZXJseWluZywgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdwYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIG1vc3QgZHluYW1pYyBBUElzIHdlIGFsc28gdGhyb3cgaWYgYGR5bmFtaWMgPSBcImVycm9yXCJgIGhvd2V2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBwYXJhbXMgaXMgb25seSBkeW5hbWljIHdoZW4gd2UncmUgZ2VuZXJhdGluZyBhIGZhbGxiYWNrIHNoZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgZXZlbiB3aGVuIGBkeW5hbWljID0gXCJlcnJvclwiYCB3ZSBzdGlsbCBzdXBwb3J0IGdlbmVyYXRpbmcgZHluYW1pY1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFsbGJhY2sgc2hlbGxzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIHJlbW92ZSB0aGlzIGNvbW1lbnQgd2hlbiBkeW5hbWljSU8gaXMgdGhlIGRlZmF1bHQgc2luY2UgdGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgbm8gYGR5bmFtaWMgPSBcImVycm9yXCJgXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gZHluYW1pY0lPKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gbW9zdCBkeW5hbWljIEFQSXMgd2UgYWxzbyB0aHJvdyBpZiBgZHluYW1pYyA9IFwiZXJyb3JcImAgaG93ZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHBhcmFtcyBpcyBvbmx5IGR5bmFtaWMgd2hlbiB3ZSdyZSBnZW5lcmF0aW5nIGEgZmFsbGJhY2sgc2hlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBldmVuIHdoZW4gYGR5bmFtaWMgPSBcImVycm9yXCJgIHdlIHN0aWxsIHN1cHBvcnQgZ2VuZXJhdGluZyBkeW5hbWljXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWxsYmFjayBzaGVsbHNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gcmVtb3ZlIHRoaXMgY29tbWVudCB3aGVuIGR5bmFtaWNJTyBpcyB0aGUgZGVmYXVsdCBzaW5jZSB0aGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSBubyBgZHluYW1pYyA9IFwiZXJyb3JcImBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZFBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgc3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+KDAsIF9zY2hlZHVsZXIuc2NoZWR1bGVJbW1lZGlhdGUpKCgpPT5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpKSk7XG4gICAgY29uc3QgcHJveGllZFByb3BlcnRpZXMgPSBuZXcgU2V0KCk7XG4gICAgY29uc3QgdW5wcm94aWVkUHJvcGVydGllcyA9IFtdO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgICAgIC8vIHRydWUgdW5kZXJseWluZyB2YWx1ZSBmb3IgUHJvbWlzZXMgdG8gd29yayBjb3JyZWN0bHkgYXQgcnVudGltZVxuICAgICAgICAgICAgdW5wcm94aWVkUHJvcGVydGllcy5wdXNoKHByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuYWRkKHByb3ApO1xuICAgICAgICAgICAgcHJvbWlzZVtwcm9wXSA9IHVuZGVybHlpbmdQYXJhbXNbcHJvcF07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICgvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCB3YXMgcHJveGllZCB0byB0aGUgcHJvbWlzZSBpbnN0YW5jZVxuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5kZWxldGUocHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2AuLi5wYXJhbXNgIG9yIHNpbWlsYXIgZXhwcmVzc2lvbic7XG4gICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuLy8gU2ltaWxhciB0byBgbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1BhcmFtc1dpdGhEZXZXYXJuaW5nc2AsIGJ1dCBqdXN0XG4vLyBsb2dnaW5nIHRoZSBzeW5jIGFjY2VzcyB3aXRob3V0IGFjdHVhbGx5IGRlZmluaW5nIHRoZSBwYXJhbXMgb24gdGhlIHByb21pc2UuXG5mdW5jdGlvbiBtYWtlRHluYW1pY2FsbHlUcmFja2VkUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdQYXJhbXMsIHN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PigwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+cmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zKSkpO1xuICAgIGNvbnN0IHByb3hpZWRQcm9wZXJ0aWVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHVucHJveGllZFByb3BlcnRpZXMgPSBbXTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IHdhcyBwcm94aWVkIHRvIHRoZSBwcm9taXNlIGluc3RhbmNlXG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgncGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQgKHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuZGVsZXRlKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgLi4ucGFyYW1zYCBvciBzaW1pbGFyIGV4cHJlc3Npb24nO1xuICAgICAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgdW5wcm94aWVkUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUgJiYgd29ya1VuaXRTdG9yZS50eXBlID09PSAncmVxdWVzdCcgJiYgd29ya1VuaXRTdG9yZS5wcmVyZW5kZXJQaGFzZSA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBXaGVuIHdlJ3JlIHJlbmRlcmluZyBkeW5hbWljYWxseSBpbiBkZXYgd2UgbmVlZCB0byBhZHZhbmNlIG91dCBvZiB0aGVcbiAgICAgICAgLy8gUHJlcmVuZGVyIGVudmlyb25tZW50IHdoZW4gd2UgcmVhZCBSZXF1ZXN0IGRhdGEgc3luY2hyb25vdXNseVxuICAgICAgICBjb25zdCByZXF1ZXN0U3RvcmUgPSB3b3JrVW5pdFN0b3JlO1xuICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYpKHJlcXVlc3RTdG9yZSk7XG4gICAgfVxuICAgIC8vIEluIGFsbCBjYXNlcyB3ZSB3YXJuIG5vcm1hbGx5XG4gICAgaWYgKG1pc3NpbmdQcm9wZXJ0aWVzICYmIG1pc3NpbmdQcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uKTtcbiAgICB9XG59XG5jb25zdCB3YXJuRm9yU3luY0FjY2VzcyA9ICgwLCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlci5jcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KShjcmVhdGVQYXJhbXNBY2Nlc3NFcnJvcik7XG5jb25zdCB3YXJuRm9ySW5jb21wbGV0ZUVudW1lcmF0aW9uID0gKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKTtcbmZ1bmN0aW9uIGNyZWF0ZVBhcmFtc0FjY2Vzc0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGAke3ByZWZpeH11c2VkICR7ZXhwcmVzc2lvbn0uIGAgKyBgXFxgcGFyYW1zXFxgIHNob3VsZCBiZSBhd2FpdGVkIGJlZm9yZSB1c2luZyBpdHMgcHJvcGVydGllcy4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTMwN1wiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBwYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB3ZXJlIG5vdCBhdmFpbGFibGUgdGhyb3VnaCBlbnVtZXJhdGlvbiBgICsgYGJlY2F1c2UgdGhleSBjb25mbGljdCB3aXRoIGJ1aWx0aW4gcHJvcGVydHkgbmFtZXM6IGAgKyBgJHtkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMobWlzc2luZ1Byb3BlcnRpZXMpfS4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTQ4MlwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMocHJvcGVydGllcykge1xuICAgIHN3aXRjaChwcm9wZXJ0aWVzLmxlbmd0aCl7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdFeHBlY3RlZCBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMgdG8gYmUgY2FsbGVkIHdpdGggYSBub24tZW1wdHkgbGlzdCBvZiBzdHJpbmdzLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTMxXCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgYDtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgIGFuZCBcXGAke3Byb3BlcnRpZXNbMV19XFxgYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSAnJztcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiArPSBgXFxgJHtwcm9wZXJ0aWVzW2ldfVxcYCwgYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYCwgYW5kIFxcYCR7cHJvcGVydGllc1twcm9wZXJ0aWVzLmxlbmd0aCAtIDFdfVxcYGA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFyYW1zLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/params.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/request/pathname.js":
/*!***********************************************************!*\
!*** ./node_modules/next/dist/server/request/pathname.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createServerPathnameForMetadata\", ({\n enumerable: true,\n get: function() {\n return createServerPathnameForMetadata;\n }\n}));\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction createServerPathnameForMetadata(underlyingPathname, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n {\n return createPrerenderPathname(underlyingPathname, workStore, workUnitStore);\n }\n default:\n }\n }\n return createRenderPathname(underlyingPathname);\n}\nfunction createPrerenderPathname(underlyingPathname, workStore, prerenderStore) {\n const fallbackParams = workStore.fallbackRouteParams;\n if (fallbackParams && fallbackParams.size > 0) {\n switch(prerenderStore.type){\n case 'prerender':\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`pathname`');\n case 'prerender-client':\n throw Object.defineProperty(new _invarianterror.InvariantError('createPrerenderPathname was called inside a client component scope.'), \"__NEXT_ERROR_CODE\", {\n value: \"E694\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n return makeErroringPathname(workStore, prerenderStore.dynamicTracking);\n break;\n default:\n return makeErroringPathname(workStore, null);\n }\n }\n // We don't have any fallback params so we have an entirely static safe params object\n return Promise.resolve(underlyingPathname);\n}\nfunction makeErroringPathname(workStore, dynamicTracking) {\n let reject = null;\n const promise = new Promise((_, re)=>{\n reject = re;\n });\n const originalThen = promise.then.bind(promise);\n // We instrument .then so that we can generate a tracking event only if you actually\n // await this promise, not just that it is created.\n promise.then = (onfulfilled, onrejected)=>{\n if (reject) {\n try {\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, 'metadata relative url resolving', dynamicTracking);\n } catch (error) {\n reject(error);\n reject = null;\n }\n }\n return originalThen(onfulfilled, onrejected);\n };\n // We wrap in a noop proxy to trick the runtime into thinking it\n // isn't a native promise (it's not really). This is so that awaiting\n // the promise will call the `then` property triggering the lazy postpone\n return new Proxy(promise, {});\n}\nfunction createRenderPathname(underlyingPathname) {\n return Promise.resolve(underlyingPathname);\n}\n\n//# sourceMappingURL=pathname.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhdGhuYW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsbUVBQWtFO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsMEJBQTBCLG1CQUFPLENBQUMsOEdBQWlDO0FBQ25FLHNDQUFzQyxtQkFBTyxDQUFDLHVIQUFnRDtBQUM5RiwrQkFBK0IsbUJBQU8sQ0FBQyxvR0FBNEI7QUFDbkUsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVxdWVzdC9wYXRobmFtZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNyZWF0ZVNlcnZlclBhdGhuYW1lRm9yTWV0YWRhdGFcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclBhdGhuYW1lRm9yTWV0YWRhdGE7XG4gICAgfVxufSk7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZyA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nXCIpO1xuY29uc3QgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5ndXRpbHMgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHNcIik7XG5jb25zdCBfaW52YXJpYW50ZXJyb3IgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3JcIik7XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJQYXRobmFtZUZvck1ldGFkYXRhKHVuZGVybHlpbmdQYXRobmFtZSwgd29ya1N0b3JlKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgc3dpdGNoKHdvcmtVbml0U3RvcmUudHlwZSl7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclBhdGhuYW1lKHVuZGVybHlpbmdQYXRobmFtZSwgd29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXRobmFtZSh1bmRlcmx5aW5nUGF0aG5hbWUpO1xufVxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVyUGF0aG5hbWUodW5kZXJseWluZ1BhdGhuYW1lLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgZmFsbGJhY2tQYXJhbXMgPSB3b3JrU3RvcmUuZmFsbGJhY2tSb3V0ZVBhcmFtcztcbiAgICBpZiAoZmFsbGJhY2tQYXJhbXMgJiYgZmFsbGJhY2tQYXJhbXMuc2l6ZSA+IDApIHtcbiAgICAgICAgc3dpdGNoKHByZXJlbmRlclN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgcGF0aG5hbWVgJyk7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignY3JlYXRlUHJlcmVuZGVyUGF0aG5hbWUgd2FzIGNhbGxlZCBpbnNpZGUgYSBjbGllbnQgY29tcG9uZW50IHNjb3BlLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTY5NFwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFrZUVycm9yaW5nUGF0aG5hbWUod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFrZUVycm9yaW5nUGF0aG5hbWUod29ya1N0b3JlLCBudWxsKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSBkb24ndCBoYXZlIGFueSBmYWxsYmFjayBwYXJhbXMgc28gd2UgaGF2ZSBhbiBlbnRpcmVseSBzdGF0aWMgc2FmZSBwYXJhbXMgb2JqZWN0XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nUGF0aG5hbWUpO1xufVxuZnVuY3Rpb24gbWFrZUVycm9yaW5nUGF0aG5hbWUod29ya1N0b3JlLCBkeW5hbWljVHJhY2tpbmcpIHtcbiAgICBsZXQgcmVqZWN0ID0gbnVsbDtcbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKF8sIHJlKT0+e1xuICAgICAgICByZWplY3QgPSByZTtcbiAgICB9KTtcbiAgICBjb25zdCBvcmlnaW5hbFRoZW4gPSBwcm9taXNlLnRoZW4uYmluZChwcm9taXNlKTtcbiAgICAvLyBXZSBpbnN0cnVtZW50IC50aGVuIHNvIHRoYXQgd2UgY2FuIGdlbmVyYXRlIGEgdHJhY2tpbmcgZXZlbnQgb25seSBpZiB5b3UgYWN0dWFsbHlcbiAgICAvLyBhd2FpdCB0aGlzIHByb21pc2UsIG5vdCBqdXN0IHRoYXQgaXQgaXMgY3JlYXRlZC5cbiAgICBwcm9taXNlLnRoZW4gPSAob25mdWxmaWxsZWQsIG9ucmVqZWN0ZWQpPT57XG4gICAgICAgIGlmIChyZWplY3QpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsICdtZXRhZGF0YSByZWxhdGl2ZSB1cmwgcmVzb2x2aW5nJywgZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICByZWplY3QgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcmlnaW5hbFRoZW4ob25mdWxmaWxsZWQsIG9ucmVqZWN0ZWQpO1xuICAgIH07XG4gICAgLy8gV2Ugd3JhcCBpbiBhIG5vb3AgcHJveHkgdG8gdHJpY2sgdGhlIHJ1bnRpbWUgaW50byB0aGlua2luZyBpdFxuICAgIC8vIGlzbid0IGEgbmF0aXZlIHByb21pc2UgKGl0J3Mgbm90IHJlYWxseSkuIFRoaXMgaXMgc28gdGhhdCBhd2FpdGluZ1xuICAgIC8vIHRoZSBwcm9taXNlIHdpbGwgY2FsbCB0aGUgYHRoZW5gIHByb3BlcnR5IHRyaWdnZXJpbmcgdGhlIGxhenkgcG9zdHBvbmVcbiAgICByZXR1cm4gbmV3IFByb3h5KHByb21pc2UsIHt9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVJlbmRlclBhdGhuYW1lKHVuZGVybHlpbmdQYXRobmFtZSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhdGhuYW1lKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGF0aG5hbWUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/pathname.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/request/root-params.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/server/request/root-params.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unstable_rootParams\", ({\n enumerable: true,\n get: function() {\n return unstable_rootParams;\n }\n}));\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst CachedParams = new WeakMap();\nasync function unstable_rootParams() {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing workStore in unstable_rootParams'), \"__NEXT_ERROR_CODE\", {\n value: \"E615\",\n enumerable: false,\n configurable: true\n });\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!workUnitStore) {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \\`unstable_rootParams()\\` in Pages Router. This API is only available within App Router.`), \"__NEXT_ERROR_CODE\", {\n value: \"E641\",\n enumerable: false,\n configurable: true\n });\n }\n switch(workUnitStore.type){\n case 'unstable-cache':\n case 'cache':\n {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \\`unstable_rootParams()\\` inside \\`\"use cache\"\\` or \\`unstable_cache\\`. Support for this API inside cache scopes is planned for a future version of Next.js.`), \"__NEXT_ERROR_CODE\", {\n value: \"E642\",\n enumerable: false,\n configurable: true\n });\n }\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderRootParams(workUnitStore.rootParams, workStore, workUnitStore);\n default:\n return Promise.resolve(workUnitStore.rootParams);\n }\n}\nfunction createPrerenderRootParams(underlyingParams, workStore, prerenderStore) {\n const fallbackParams = workStore.fallbackRouteParams;\n if (fallbackParams) {\n let hasSomeFallbackParams = false;\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n hasSomeFallbackParams = true;\n break;\n }\n }\n if (hasSomeFallbackParams) {\n // params need to be treated as dynamic because we have at least one fallback param\n switch(prerenderStore.type){\n case 'prerender':\n // We are in a dynamicIO prerender\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`unstable_rootParams`');\n CachedParams.set(underlyingParams, promise);\n return promise;\n case 'prerender-client':\n const exportName = '`unstable_rootParams`';\n throw Object.defineProperty(new _invarianterror.InvariantError(`${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E693\",\n enumerable: false,\n configurable: true\n });\n default:\n // remaining cases are prerender-ppr and prerender-legacy\n // We aren't in a dynamicIO prerender but we do have fallback params at this\n // level so we need to make an erroring params object which will postpone\n // if you access the fallback params\n return makeErroringRootParams(underlyingParams, fallbackParams, workStore, prerenderStore);\n }\n }\n }\n // We don't have any fallback params so we have an entirely static safe params object\n return Promise.resolve(underlyingParams);\n}\nfunction makeErroringRootParams(underlyingParams, fallbackParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const augmentedUnderlying = {\n ...underlyingParams\n };\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(augmentedUnderlying);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n if (fallbackParams.has(prop)) {\n Object.defineProperty(augmentedUnderlying, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('unstable_rootParams', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n enumerable: true\n });\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n }\n });\n return promise;\n} //# sourceMappingURL=root-params.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3Jvb3QtcGFyYW1zLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBMEJzQkE7OztlQUFBQTs7OzRDQTFCUzs4Q0FJeEI7c0RBSUE7MERBTUE7bURBQzRCOzBDQU01QjtBQUdQLE1BQU1DLGVBQWUsSUFBSUM7QUFFbEIsZUFBZUY7SUFDcEIsTUFBTUcsWUFBWUMsMEJBQUFBLGdCQUFnQixDQUFDQyxRQUFRO0lBQzNDLElBQUksQ0FBQ0YsV0FBVztRQUNkLE1BQU0scUJBQThELENBQTlELElBQUlHLGdCQUFBQSxjQUFjLENBQUMsNkNBQW5CO21CQUFBO3dCQUFBOzBCQUFBO1FBQTZEO0lBQ3JFO0lBRUEsTUFBTUMsZ0JBQWdCQyw4QkFBQUEsb0JBQW9CLENBQUNILFFBQVE7SUFFbkQsSUFBSSxDQUFDRSxlQUFlO1FBQ2xCLE1BQU0scUJBRUwsQ0FGSyxJQUFJRSxNQUNSLENBQUMsTUFBTSxFQUFFTixVQUFVTyxLQUFLLENBQUMsOEZBQThGLENBQUMsR0FEcEg7bUJBQUE7d0JBQUE7MEJBQUE7UUFFTjtJQUNGO0lBRUEsT0FBUUgsY0FBY0ksSUFBSTtRQUN4QixLQUFLO1FBQ0wsS0FBSztZQUFTO2dCQUNaLE1BQU0scUJBRUwsQ0FGSyxJQUFJRixNQUNSLENBQUMsTUFBTSxFQUFFTixVQUFVTyxLQUFLLENBQUMsa0tBQWtLLENBQUMsR0FEeEw7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtRQUNBLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7WUFDSCxPQUFPRSwwQkFDTEwsY0FBY00sVUFBVSxFQUN4QlYsV0FDQUk7UUFFSjtZQUNFLE9BQU9PLFFBQVFDLE9BQU8sQ0FBQ1IsY0FBY00sVUFBVTtJQUNuRDtBQUNGO0FBRUEsU0FBU0QsMEJBQ1BJLGdCQUF3QixFQUN4QmIsU0FBb0IsRUFDcEJjLGNBQThCO0lBRTlCLE1BQU1DLGlCQUFpQmYsVUFBVWdCLG1CQUFtQjtJQUNwRCxJQUFJRCxnQkFBZ0I7UUFDbEIsSUFBSUUsd0JBQXdCO1FBQzVCLElBQUssTUFBTUMsT0FBT0wsaUJBQWtCO1lBQ2xDLElBQUlFLGVBQWVJLEdBQUcsQ0FBQ0QsTUFBTTtnQkFDM0JELHdCQUF3QjtnQkFDeEI7WUFDRjtRQUNGO1FBRUEsSUFBSUEsdUJBQXVCO1lBQ3pCLG1GQUFtRjtZQUNuRixPQUFRSCxlQUFlTixJQUFJO2dCQUN6QixLQUFLO29CQUNILGtDQUFrQztvQkFDbEMsTUFBTVksZUFBZXRCLGFBQWF1QixHQUFHLENBQUNSO29CQUN0QyxJQUFJTyxjQUFjO3dCQUNoQixPQUFPQTtvQkFDVDtvQkFFQSxNQUFNRSxVQUFVQyxDQUFBQSxHQUFBQSx1QkFBQUEsa0JBQUFBLEVBQ2RULGVBQWVVLFlBQVksRUFDM0I7b0JBRUYxQixhQUFhMkIsR0FBRyxDQUFDWixrQkFBa0JTO29CQUVuQyxPQUFPQTtnQkFDVCxLQUFLO29CQUNILE1BQU1JLGFBQWE7b0JBQ25CLE1BQU0scUJBRUwsQ0FGSyxJQUFJdkIsZ0JBQUFBLGNBQWMsQ0FDdEIsR0FBR3VCLFdBQVcsMEVBQTBFLEVBQUVBLFdBQVcsK0VBQStFLENBQUMsR0FEakw7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0Y7b0JBQ0UseURBQXlEO29CQUN6RCw0RUFBNEU7b0JBQzVFLHlFQUF5RTtvQkFDekUsb0NBQW9DO29CQUNwQyxPQUFPQyx1QkFDTGQsa0JBQ0FFLGdCQUNBZixXQUNBYztZQUVOO1FBQ0Y7SUFDRjtJQUVBLHFGQUFxRjtJQUNyRixPQUFPSCxRQUFRQyxPQUFPLENBQUNDO0FBQ3pCO0FBRUEsU0FBU2MsdUJBQ1BkLGdCQUF3QixFQUN4QkUsY0FBbUMsRUFDbkNmLFNBQW9CLEVBQ3BCYyxjQUF3RDtJQUV4RCxNQUFNTSxlQUFldEIsYUFBYXVCLEdBQUcsQ0FBQ1I7SUFDdEMsSUFBSU8sY0FBYztRQUNoQixPQUFPQTtJQUNUO0lBRUEsTUFBTVEsc0JBQXNCO1FBQUUsR0FBR2YsZ0JBQWdCO0lBQUM7SUFFbEQsNERBQTREO0lBQzVELGtFQUFrRTtJQUNsRSxxRUFBcUU7SUFDckUsTUFBTVMsVUFBVVgsUUFBUUMsT0FBTyxDQUFDZ0I7SUFDaEM5QixhQUFhMkIsR0FBRyxDQUFDWixrQkFBa0JTO0lBRW5DTyxPQUFPQyxJQUFJLENBQUNqQixrQkFBa0JrQixPQUFPLENBQUMsQ0FBQ0M7UUFDckMsSUFBSUMsY0FBQUEsbUJBQW1CLENBQUNkLEdBQUcsQ0FBQ2EsT0FBTztRQUNqQyxrRUFBa0U7UUFDbEUsa0VBQWtFO1FBQ3BFLE9BQU87WUFDTCxJQUFJakIsZUFBZUksR0FBRyxDQUFDYSxPQUFPO2dCQUM1QkgsT0FBT0ssY0FBYyxDQUFDTixxQkFBcUJJLE1BQU07b0JBQy9DWDt3QkFDRSxNQUFNYyxhQUFhQyxDQUFBQSxHQUFBQSxjQUFBQSw0QkFBQUEsRUFDakIsdUJBQ0FKO3dCQUVGLG9FQUFvRTt3QkFDcEUsb0VBQW9FO3dCQUNwRSx3RUFBd0U7d0JBQ3hFLGtCQUFrQjt3QkFDbEIscUVBQXFFO3dCQUNyRSxpQ0FBaUM7d0JBQ2pDLElBQUlsQixlQUFlTixJQUFJLEtBQUssaUJBQWlCOzRCQUMzQywrQkFBK0I7NEJBQy9CNkIsQ0FBQUEsR0FBQUEsa0JBQUFBLG9CQUFBQSxFQUNFckMsVUFBVU8sS0FBSyxFQUNmNEIsWUFDQXJCLGVBQWV3QixlQUFlO3dCQUVsQyxPQUFPOzRCQUNMLG1CQUFtQjs0QkFDbkJDLENBQUFBLEdBQUFBLGtCQUFBQSxnQ0FBQUEsRUFDRUosWUFDQW5DLFdBQ0FjO3dCQUVKO29CQUNGO29CQUNBMEIsWUFBWTtnQkFDZDtZQUNGLE9BQU87O2dCQUNIbEIsT0FBZSxDQUFDVSxLQUFLLEdBQUduQixnQkFBZ0IsQ0FBQ21CLEtBQUs7WUFDbEQ7UUFDRjtJQUNGO0lBRUEsT0FBT1Y7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NlcnZlci9yZXF1ZXN0L3Jvb3QtcGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludmFyaWFudEVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3InXG5pbXBvcnQge1xuICBwb3N0cG9uZVdpdGhUcmFja2luZyxcbiAgdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24sXG59IGZyb20gJy4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmcnXG5pbXBvcnQge1xuICB3b3JrQXN5bmNTdG9yYWdlLFxuICB0eXBlIFdvcmtTdG9yZSxcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5pbXBvcnQge1xuICB3b3JrVW5pdEFzeW5jU3RvcmFnZSxcbiAgdHlwZSBQcmVyZW5kZXJTdG9yZSxcbiAgdHlwZSBQcmVyZW5kZXJTdG9yZUxlZ2FjeSxcbiAgdHlwZSBQcmVyZW5kZXJTdG9yZVBQUixcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB7IG1ha2VIYW5naW5nUHJvbWlzZSB9IGZyb20gJy4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzJ1xuaW1wb3J0IHR5cGUgeyBGYWxsYmFja1JvdXRlUGFyYW1zIH0gZnJvbSAnLi9mYWxsYmFjay1wYXJhbXMnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4vcGFyYW1zJ1xuaW1wb3J0IHtcbiAgZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcyxcbiAgd2VsbEtub3duUHJvcGVydGllcyxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi91dGlscy9yZWZsZWN0LXV0aWxzJ1xuXG5pbnRlcmZhY2UgQ2FjaGVMaWZldGltZSB7fVxuY29uc3QgQ2FjaGVkUGFyYW1zID0gbmV3IFdlYWtNYXA8Q2FjaGVMaWZldGltZSwgUHJvbWlzZTxQYXJhbXM+PigpXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1bnN0YWJsZV9yb290UGFyYW1zKCk6IFByb21pc2U8UGFyYW1zPiB7XG4gIGNvbnN0IHdvcmtTdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBpZiAoIXdvcmtTdG9yZSkge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcignTWlzc2luZyB3b3JrU3RvcmUgaW4gdW5zdGFibGVfcm9vdFBhcmFtcycpXG4gIH1cblxuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuXG4gIGlmICghd29ya1VuaXRTdG9yZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBSb3V0ZSAke3dvcmtTdG9yZS5yb3V0ZX0gdXNlZCBcXGB1bnN0YWJsZV9yb290UGFyYW1zKClcXGAgaW4gUGFnZXMgUm91dGVyLiBUaGlzIEFQSSBpcyBvbmx5IGF2YWlsYWJsZSB3aXRoaW4gQXBwIFJvdXRlci5gXG4gICAgKVxuICB9XG5cbiAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgY2FzZSAnY2FjaGUnOiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBSb3V0ZSAke3dvcmtTdG9yZS5yb3V0ZX0gdXNlZCBcXGB1bnN0YWJsZV9yb290UGFyYW1zKClcXGAgaW5zaWRlIFxcYFwidXNlIGNhY2hlXCJcXGAgb3IgXFxgdW5zdGFibGVfY2FjaGVcXGAuIFN1cHBvcnQgZm9yIHRoaXMgQVBJIGluc2lkZSBjYWNoZSBzY29wZXMgaXMgcGxhbm5lZCBmb3IgYSBmdXR1cmUgdmVyc2lvbiBvZiBOZXh0LmpzLmBcbiAgICAgIClcbiAgICB9XG4gICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJSb290UGFyYW1zKFxuICAgICAgICB3b3JrVW5pdFN0b3JlLnJvb3RQYXJhbXMsXG4gICAgICAgIHdvcmtTdG9yZSxcbiAgICAgICAgd29ya1VuaXRTdG9yZVxuICAgICAgKVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHdvcmtVbml0U3RvcmUucm9vdFBhcmFtcylcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJSb290UGFyYW1zKFxuICB1bmRlcmx5aW5nUGFyYW1zOiBQYXJhbXMsXG4gIHdvcmtTdG9yZTogV29ya1N0b3JlLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVcbik6IFByb21pc2U8UGFyYW1zPiB7XG4gIGNvbnN0IGZhbGxiYWNrUGFyYW1zID0gd29ya1N0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXNcbiAgaWYgKGZhbGxiYWNrUGFyYW1zKSB7XG4gICAgbGV0IGhhc1NvbWVGYWxsYmFja1BhcmFtcyA9IGZhbHNlXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdW5kZXJseWluZ1BhcmFtcykge1xuICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhrZXkpKSB7XG4gICAgICAgIGhhc1NvbWVGYWxsYmFja1BhcmFtcyA9IHRydWVcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzU29tZUZhbGxiYWNrUGFyYW1zKSB7XG4gICAgICAvLyBwYXJhbXMgbmVlZCB0byBiZSB0cmVhdGVkIGFzIGR5bmFtaWMgYmVjYXVzZSB3ZSBoYXZlIGF0IGxlYXN0IG9uZSBmYWxsYmFjayBwYXJhbVxuICAgICAgc3dpdGNoIChwcmVyZW5kZXJTdG9yZS50eXBlKSB7XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgLy8gV2UgYXJlIGluIGEgZHluYW1pY0lPIHByZXJlbmRlclxuICAgICAgICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcylcbiAgICAgICAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcHJvbWlzZSA9IG1ha2VIYW5naW5nUHJvbWlzZTxQYXJhbXM+KFxuICAgICAgICAgICAgcHJlcmVuZGVyU3RvcmUucmVuZGVyU2lnbmFsLFxuICAgICAgICAgICAgJ2B1bnN0YWJsZV9yb290UGFyYW1zYCdcbiAgICAgICAgICApXG4gICAgICAgICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKVxuXG4gICAgICAgICAgcmV0dXJuIHByb21pc2VcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgY29uc3QgZXhwb3J0TmFtZSA9ICdgdW5zdGFibGVfcm9vdFBhcmFtc2AnXG4gICAgICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAgICAgYCR7ZXhwb3J0TmFtZX0gbXVzdCBub3QgYmUgdXNlZCB3aXRoaW4gYSBjbGllbnQgY29tcG9uZW50LiBOZXh0LmpzIHNob3VsZCBiZSBwcmV2ZW50aW5nICR7ZXhwb3J0TmFtZX0gZnJvbSBiZWluZyBpbmNsdWRlZCBpbiBjbGllbnQgY29tcG9uZW50cyBzdGF0aWNhbGx5LCBidXQgZGlkIG5vdCBpbiB0aGlzIGNhc2UuYFxuICAgICAgICAgIClcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyByZW1haW5pbmcgY2FzZXMgYXJlIHByZXJlbmRlci1wcHIgYW5kIHByZXJlbmRlci1sZWdhY3lcbiAgICAgICAgICAvLyBXZSBhcmVuJ3QgaW4gYSBkeW5hbWljSU8gcHJlcmVuZGVyIGJ1dCB3ZSBkbyBoYXZlIGZhbGxiYWNrIHBhcmFtcyBhdCB0aGlzXG4gICAgICAgICAgLy8gbGV2ZWwgc28gd2UgbmVlZCB0byBtYWtlIGFuIGVycm9yaW5nIHBhcmFtcyBvYmplY3Qgd2hpY2ggd2lsbCBwb3N0cG9uZVxuICAgICAgICAgIC8vIGlmIHlvdSBhY2Nlc3MgdGhlIGZhbGxiYWNrIHBhcmFtc1xuICAgICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdSb290UGFyYW1zKFxuICAgICAgICAgICAgdW5kZXJseWluZ1BhcmFtcyxcbiAgICAgICAgICAgIGZhbGxiYWNrUGFyYW1zLFxuICAgICAgICAgICAgd29ya1N0b3JlLFxuICAgICAgICAgICAgcHJlcmVuZGVyU3RvcmVcbiAgICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgZG9uJ3QgaGF2ZSBhbnkgZmFsbGJhY2sgcGFyYW1zIHNvIHdlIGhhdmUgYW4gZW50aXJlbHkgc3RhdGljIHNhZmUgcGFyYW1zIG9iamVjdFxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpXG59XG5cbmZ1bmN0aW9uIG1ha2VFcnJvcmluZ1Jvb3RQYXJhbXMoXG4gIHVuZGVybHlpbmdQYXJhbXM6IFBhcmFtcyxcbiAgZmFsbGJhY2tQYXJhbXM6IEZhbGxiYWNrUm91dGVQYXJhbXMsXG4gIHdvcmtTdG9yZTogV29ya1N0b3JlLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVQUFIgfCBQcmVyZW5kZXJTdG9yZUxlZ2FjeVxuKTogUHJvbWlzZTxQYXJhbXM+IHtcbiAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKVxuICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgcmV0dXJuIGNhY2hlZFBhcmFtc1xuICB9XG5cbiAgY29uc3QgYXVnbWVudGVkVW5kZXJseWluZyA9IHsgLi4udW5kZXJseWluZ1BhcmFtcyB9XG5cbiAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShhdWdtZW50ZWRVbmRlcmx5aW5nKVxuICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb21pc2UpXG5cbiAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCkgPT4ge1xuICAgIGlmICh3ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhwcm9wKSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXVnbWVudGVkVW5kZXJseWluZywgcHJvcCwge1xuICAgICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKFxuICAgICAgICAgICAgICAndW5zdGFibGVfcm9vdFBhcmFtcycsXG4gICAgICAgICAgICAgIHByb3BcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC8vIEluIG1vc3QgZHluYW1pYyBBUElzIHdlIGFsc28gdGhyb3cgaWYgYGR5bmFtaWMgPSBcImVycm9yXCJgIGhvd2V2ZXJcbiAgICAgICAgICAgIC8vIGZvciBwYXJhbXMgaXMgb25seSBkeW5hbWljIHdoZW4gd2UncmUgZ2VuZXJhdGluZyBhIGZhbGxiYWNrIHNoZWxsXG4gICAgICAgICAgICAvLyBhbmQgZXZlbiB3aGVuIGBkeW5hbWljID0gXCJlcnJvclwiYCB3ZSBzdGlsbCBzdXBwb3J0IGdlbmVyYXRpbmcgZHluYW1pY1xuICAgICAgICAgICAgLy8gZmFsbGJhY2sgc2hlbGxzXG4gICAgICAgICAgICAvLyBUT0RPIHJlbW92ZSB0aGlzIGNvbW1lbnQgd2hlbiBkeW5hbWljSU8gaXMgdGhlIGRlZmF1bHQgc2luY2UgdGhlcmVcbiAgICAgICAgICAgIC8vIHdpbGwgYmUgbm8gYGR5bmFtaWMgPSBcImVycm9yXCJgXG4gICAgICAgICAgICBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGR5bmFtaWNJTylcbiAgICAgICAgICAgICAgcG9zdHBvbmVXaXRoVHJhY2tpbmcoXG4gICAgICAgICAgICAgICAgd29ya1N0b3JlLnJvdXRlLFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb24sXG4gICAgICAgICAgICAgICAgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24oXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbixcbiAgICAgICAgICAgICAgICB3b3JrU3RvcmUsXG4gICAgICAgICAgICAgICAgcHJlcmVuZGVyU3RvcmVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDsocHJvbWlzZSBhcyBhbnkpW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gcHJvbWlzZVxufVxuIl0sIm5hbWVzIjpbInVuc3RhYmxlX3Jvb3RQYXJhbXMiLCJDYWNoZWRQYXJhbXMiLCJXZWFrTWFwIiwid29ya1N0b3JlIiwid29ya0FzeW5jU3RvcmFnZSIsImdldFN0b3JlIiwiSW52YXJpYW50RXJyb3IiLCJ3b3JrVW5pdFN0b3JlIiwid29ya1VuaXRBc3luY1N0b3JhZ2UiLCJFcnJvciIsInJvdXRlIiwidHlwZSIsImNyZWF0ZVByZXJlbmRlclJvb3RQYXJhbXMiLCJyb290UGFyYW1zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ1bmRlcmx5aW5nUGFyYW1zIiwicHJlcmVuZGVyU3RvcmUiLCJmYWxsYmFja1BhcmFtcyIsImZhbGxiYWNrUm91dGVQYXJhbXMiLCJoYXNTb21lRmFsbGJhY2tQYXJhbXMiLCJrZXkiLCJoYXMiLCJjYWNoZWRQYXJhbXMiLCJnZXQiLCJwcm9taXNlIiwibWFrZUhhbmdpbmdQcm9taXNlIiwicmVuZGVyU2lnbmFsIiwic2V0IiwiZXhwb3J0TmFtZSIsIm1ha2VFcnJvcmluZ1Jvb3RQYXJhbXMiLCJhdWdtZW50ZWRVbmRlcmx5aW5nIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJwcm9wIiwid2VsbEtub3duUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZXhwcmVzc2lvbiIsImRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MiLCJwb3N0cG9uZVdpdGhUcmFja2luZyIsImR5bmFtaWNUcmFja2luZyIsInRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uIiwiZW51bWVyYWJsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/root-params.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/request/search-params.js":
/*!****************************************************************!*\
!*** ./node_modules/next/dist/server/request/search-params.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createPrerenderSearchParamsForClientPage: function() {\n return createPrerenderSearchParamsForClientPage;\n },\n createSearchParamsFromClient: function() {\n return createSearchParamsFromClient;\n },\n createServerSearchParamsForMetadata: function() {\n return createServerSearchParamsForMetadata;\n },\n createServerSearchParamsForServerPage: function() {\n return createServerSearchParamsForServerPage;\n },\n makeErroringExoticSearchParamsForUseCache: function() {\n return makeErroringExoticSearchParamsForUseCache;\n }\n});\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/request/utils.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nfunction createSearchParamsFromClient(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderSearchParams(workStore, workUnitStore);\n default:\n }\n }\n return createRenderSearchParams(underlyingSearchParams, workStore);\n}\nconst createServerSearchParamsForMetadata = createServerSearchParamsForServerPage;\nfunction createServerSearchParamsForServerPage(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderSearchParams(workStore, workUnitStore);\n default:\n }\n }\n return createRenderSearchParams(underlyingSearchParams, workStore);\n}\nfunction createPrerenderSearchParamsForClientPage(workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (prerenderStore && (prerenderStore.type === 'prerender' || prerenderStore.type === 'prerender-client')) {\n // dynamicIO Prerender\n // We're prerendering in a mode that aborts (dynamicIO) and should stall\n // the promise to ensure the RSC side is considered dynamic\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`searchParams`');\n }\n // We're prerendering in a mode that does not aborts. We resolve the promise without\n // any tracking because we're just transporting a value from server to client where the tracking\n // will be applied.\n return Promise.resolve({});\n}\nfunction createPrerenderSearchParams(workStore, prerenderStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n // We are in a dynamicIO (PPR or otherwise) prerender\n return makeHangingSearchParams(prerenderStore);\n default:\n // The remaining cases are prerender-ppr and prerender-legacy\n // We are in a legacy static generation and need to interrupt the prerender\n // when search params are accessed.\n return makeErroringExoticSearchParams(workStore, prerenderStore);\n }\n}\nfunction createRenderSearchParams(underlyingSearchParams, workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n } else {\n if ( true && !workStore.isPrefetchRequest) {\n if (false) {}\n return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore);\n } else {\n if (false) {}\n return makeUntrackedExoticSearchParams(underlyingSearchParams, workStore);\n }\n }\n}\nconst CachedSearchParams = new WeakMap();\nconst CachedSearchParamsForUseCache = new WeakMap();\nfunction makeHangingSearchParams(prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(prerenderStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`searchParams`');\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n default:\n {\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n }\n });\n CachedSearchParams.set(prerenderStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringExoticSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const underlyingSearchParams = {};\n // For search params we don't construct a ReactPromise because we want to interrupt\n // rendering on any property access that was not set from outside and so we only want\n // to have properties like value and status if React sets them.\n const promise = Promise.resolve(underlyingSearchParams);\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n default:\n {\n if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n },\n has (target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests trigger dynamic. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string') {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return false;\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys () {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n });\n CachedSearchParams.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringExoticSearchParamsForUseCache(workStore) {\n const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve({});\n const proxiedPromise = new Proxy(promise, {\n get: function get(target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it. We know it\n // isn't a dynamic access because it can only be something that was\n // previously written to the promise and thus not an underlying\n // searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get);\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has: function has(target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests throw an error. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has);\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys: function ownKeys() {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys);\n }\n });\n CachedSearchParamsForUseCache.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeUntrackedExoticSearchParams(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (!_reflectutils.wellKnownProperties.has(prop)) {\n Object.defineProperty(promise, prop, {\n get () {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(store, workUnitStore);\n return underlyingSearchParams[prop];\n },\n set (value) {\n Object.defineProperty(promise, prop, {\n value,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n return promise;\n}\nfunction makeUntrackedSearchParams(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying\n // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender\n // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking\n // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger\n // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce\n // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise.\n let promiseInitialized = false;\n const proxiedUnderlying = new Proxy(underlyingSearchParams, {\n get (target, prop, receiver) {\n if (typeof prop === 'string' && promiseInitialized) {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(store, workUnitStore);\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n if (store.dynamicShouldError) {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n return Reflect.ownKeys(target);\n }\n });\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingSearchParams)));\n promise.then(()=>{\n promiseInitialized = true;\n });\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n Object.defineProperty(promise, prop, {\n get () {\n return proxiedUnderlying[prop];\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (prop === 'then' && store.dynamicShouldError) {\n const expression = '`searchParams.then`';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticSearchParamsWithDevWarnings`, but\n// just logging the sync access without actually defining the search params on\n// the promise.\nfunction makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n const promise = Promise.resolve(underlyingSearchParams);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore && workUnitStore.type === 'request' && workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore;\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createSearchAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E249\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E2\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=search-params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsNEhBQXdDO0FBQ2pFLDBCQUEwQixtQkFBTyxDQUFDLDhHQUFpQztBQUNuRSxzQ0FBc0MsbUJBQU8sQ0FBQyx1SEFBZ0Q7QUFDOUYsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxrREFBa0QsbUJBQU8sQ0FBQyxrSkFBbUQ7QUFDN0csc0JBQXNCLG1CQUFPLENBQUMsOEdBQXNDO0FBQ3BFLGVBQWUsbUJBQU8sQ0FBQyx1RUFBUztBQUNoQyxtQkFBbUIsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQSx3QkFBd0IsY0FBYyxXQUFXLGNBQWM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDJCQUEyQjtBQUMxRCx3Q0FBd0MsY0FBYztBQUN0RDtBQUNBLDBDQUEwQyxrQ0FBa0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3Qvc2VhcmNoLXBhcmFtcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2U6IG51bGwsXG4gICAgY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudDogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YTogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlOiBudWxsLFxuICAgIG1ha2VFcnJvcmluZ0V4b3RpY1NlYXJjaFBhcmFtc0ZvclVzZUNhY2hlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudDtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhO1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlO1xuICAgIH0sXG4gICAgbWFrZUVycm9yaW5nRXhvdGljU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbWFrZUVycm9yaW5nRXhvdGljU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGU7XG4gICAgfVxufSk7XG5jb25zdCBfcmVmbGVjdCA9IHJlcXVpcmUoXCIuLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmdcIik7XG5jb25zdCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2ludmFyaWFudGVycm9yID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmd1dGlscyA9IHJlcXVpcmUoXCIuLi9keW5hbWljLXJlbmRlcmluZy11dGlsc1wiKTtcbmNvbnN0IF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyID0gcmVxdWlyZShcIi4uL2NyZWF0ZS1kZWR1cGVkLWJ5LWNhbGxzaXRlLXNlcnZlci1lcnJvci1sb2dnZXJcIik7XG5jb25zdCBfcmVmbGVjdHV0aWxzID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlsc1wiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuZnVuY3Rpb24gY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG59XG5jb25zdCBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YSA9IGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U7XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2Uod29ya1N0b3JlKSB7XG4gICAgaWYgKHdvcmtTdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAgIC8vIGRpY3Rpb25hcnkgb2JqZWN0LlxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9XG4gICAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmIChwcmVyZW5kZXJTdG9yZSAmJiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlcicgfHwgcHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1jbGllbnQnKSkge1xuICAgICAgICAvLyBkeW5hbWljSU8gUHJlcmVuZGVyXG4gICAgICAgIC8vIFdlJ3JlIHByZXJlbmRlcmluZyBpbiBhIG1vZGUgdGhhdCBhYm9ydHMgKGR5bmFtaWNJTykgYW5kIHNob3VsZCBzdGFsbFxuICAgICAgICAvLyB0aGUgcHJvbWlzZSB0byBlbnN1cmUgdGhlIFJTQyBzaWRlIGlzIGNvbnNpZGVyZWQgZHluYW1pY1xuICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgc2VhcmNoUGFyYW1zYCcpO1xuICAgIH1cbiAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgZG9lcyBub3QgYWJvcnRzLiBXZSByZXNvbHZlIHRoZSBwcm9taXNlIHdpdGhvdXRcbiAgICAvLyBhbnkgdHJhY2tpbmcgYmVjYXVzZSB3ZSdyZSBqdXN0IHRyYW5zcG9ydGluZyBhIHZhbHVlIGZyb20gc2VydmVyIHRvIGNsaWVudCB3aGVyZSB0aGUgdHJhY2tpbmdcbiAgICAvLyB3aWxsIGJlIGFwcGxpZWQuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG59XG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGlmICh3b3JrU3RvcmUuZm9yY2VTdGF0aWMpIHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYyB3ZSBvdmVycmlkZSBhbGwgb3RoZXIgbG9naWMgYW5kIGFsd2F5cyBqdXN0IHJldHVybiBhbiBlbXB0eVxuICAgICAgICAvLyBkaWN0aW9uYXJ5IG9iamVjdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfVxuICAgIHN3aXRjaChwcmVyZW5kZXJTdG9yZS50eXBlKXtcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAvLyBXZSBhcmUgaW4gYSBkeW5hbWljSU8gKFBQUiBvciBvdGhlcndpc2UpIHByZXJlbmRlclxuICAgICAgICAgICAgcmV0dXJuIG1ha2VIYW5naW5nU2VhcmNoUGFyYW1zKHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIFRoZSByZW1haW5pbmcgY2FzZXMgYXJlIHByZXJlbmRlci1wcHIgYW5kIHByZXJlbmRlci1sZWdhY3lcbiAgICAgICAgICAgIC8vIFdlIGFyZSBpbiBhIGxlZ2FjeSBzdGF0aWMgZ2VuZXJhdGlvbiBhbmQgbmVlZCB0byBpbnRlcnJ1cHQgdGhlIHByZXJlbmRlclxuICAgICAgICAgICAgLy8gd2hlbiBzZWFyY2ggcGFyYW1zIGFyZSBhY2Nlc3NlZC5cbiAgICAgICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdFeG90aWNTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGlmICh3b3JrU3RvcmUuZm9yY2VTdGF0aWMpIHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYyB3ZSBvdmVycmlkZSBhbGwgb3RoZXIgbG9naWMgYW5kIGFsd2F5cyBqdXN0IHJldHVybiBhbiBlbXB0eVxuICAgICAgICAvLyBkaWN0aW9uYXJ5IG9iamVjdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmICF3b3JrU3RvcmUuaXNQcmVmZXRjaFJlcXVlc3QpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfRFlOQU1JQ19JTykge1xuICAgICAgICAgICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9EWU5BTUlDX0lPKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgQ2FjaGVkU2VhcmNoUGFyYW1zID0gbmV3IFdlYWtNYXAoKTtcbmNvbnN0IENhY2hlZFNlYXJjaFBhcmFtc0ZvclVzZUNhY2hlID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIG1ha2VIYW5naW5nU2VhcmNoUGFyYW1zKHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldChwcmVyZW5kZXJTdG9yZSk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgc2VhcmNoUGFyYW1zYCcpO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihwcm9taXNlLCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBwcm9taXNlIGhhcyB0aGlzIHByb3BlcnR5IGRpcmVjdGx5LiB3ZSBtdXN0IHJldHVybiBpdC5cbiAgICAgICAgICAgICAgICAvLyBXZSBrbm93IGl0IGlzbid0IGEgZHluYW1pYyBhY2Nlc3MgYmVjYXVzZSBpdCBjYW4gb25seSBiZSBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAvLyB0aGF0IHdhcyBwcmV2aW91c2x5IHdyaXR0ZW4gdG8gdGhlIHByb21pc2UgYW5kIHRodXMgbm90IGFuIHVuZGVybHlpbmcgc2VhcmNoUGFyYW0gdmFsdWVcbiAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoKHByb3Ape1xuICAgICAgICAgICAgICAgIGNhc2UgJ3RoZW4nOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2Bhd2FpdCBzZWFyY2hQYXJhbXNgLCBgc2VhcmNoUGFyYW1zLnRoZW5gLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5hbm5vdGF0ZUR5bmFtaWNBY2Nlc3MpKGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdzdGF0dXMnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2B1c2Uoc2VhcmNoUGFyYW1zKWAsIGBzZWFyY2hQYXJhbXMuc3RhdHVzYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcuYW5ub3RhdGVEeW5hbWljQWNjZXNzKShleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldChwcmVyZW5kZXJTdG9yZSwgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VFcnJvcmluZ0V4b3RpY1NlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldCh3b3JrU3RvcmUpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgdW5kZXJseWluZ1NlYXJjaFBhcmFtcyA9IHt9O1xuICAgIC8vIEZvciBzZWFyY2ggcGFyYW1zIHdlIGRvbid0IGNvbnN0cnVjdCBhIFJlYWN0UHJvbWlzZSBiZWNhdXNlIHdlIHdhbnQgdG8gaW50ZXJydXB0XG4gICAgLy8gcmVuZGVyaW5nIG9uIGFueSBwcm9wZXJ0eSBhY2Nlc3MgdGhhdCB3YXMgbm90IHNldCBmcm9tIG91dHNpZGUgYW5kIHNvIHdlIG9ubHkgd2FudFxuICAgIC8vIHRvIGhhdmUgcHJvcGVydGllcyBsaWtlIHZhbHVlIGFuZCBzdGF0dXMgaWYgUmVhY3Qgc2V0cyB0aGVtLlxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duKHByb21pc2UsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByb21pc2UgaGFzIHRoaXMgcHJvcGVydHkgZGlyZWN0bHkuIHdlIG11c3QgcmV0dXJuIGl0LlxuICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgaXQgaXNuJ3QgYSBkeW5hbWljIGFjY2VzcyBiZWNhdXNlIGl0IGNhbiBvbmx5IGJlIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoYXQgd2FzIHByZXZpb3VzbHkgd3JpdHRlbiB0byB0aGUgcHJvbWlzZSBhbmQgdGh1cyBub3QgYW4gdW5kZXJseWluZyBzZWFyY2hQYXJhbSB2YWx1ZVxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgY2FzZSAndGhlbic6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGF3YWl0IHNlYXJjaFBhcmFtc2AsIGBzZWFyY2hQYXJhbXMudGhlbmAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RhdHVzJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgdXNlKHNlYXJjaFBhcmFtcylgLCBgc2VhcmNoUGFyYW1zLnN0YXR1c2AsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiAhX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICAvLyBXZSBkb24ndCBleHBlY3Qga2V5IGNoZWNraW5nIHRvIGJlIHVzZWQgZXhjZXB0IGZvciB0ZXN0aW5nIHRoZSBleGlzdGVuY2Ugb2ZcbiAgICAgICAgICAgIC8vIHNlYXJjaFBhcmFtcyBzbyB3ZSBtYWtlIGFsbCBoYXMgdGVzdHMgdHJpZ2dlciBkeW5hbWljLiB0aGlzIG1lYW5zIHRoYXQgYHByb21pc2UudGhlbmBcbiAgICAgICAgICAgIC8vIGNhbiByZXNvbHZlIHRvIHRoZSB0aGVuIGZ1bmN0aW9uIG9uIHRoZSBQcm9taXNlIHByb3RvdHlwZSBidXQgJ3RoZW4nIGluIHByb21pc2Ugd2lsbCBhc3N1bWVcbiAgICAgICAgICAgIC8vIHlvdSBhcmUgdGVzdGluZyB3aGV0aGVyIHRoZSBzZWFyY2hQYXJhbXMgaGFzIGEgJ3RoZW4nIHByb3BlcnR5LlxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGR5bmFtaWNJTylcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgey4uLnNlYXJjaFBhcmFtc31gLCBgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldCh3b3JrU3RvcmUsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlRXJyb3JpbmdFeG90aWNTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZSh3b3JrU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZS5nZXQod29ya1N0b3JlKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5oYXNPd24ocHJvbWlzZSwgcHJvcCkpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgcHJvbWlzZSBoYXMgdGhpcyBwcm9wZXJ0eSBkaXJlY3RseS4gd2UgbXVzdCByZXR1cm4gaXQuIFdlIGtub3cgaXRcbiAgICAgICAgICAgICAgICAvLyBpc24ndCBhIGR5bmFtaWMgYWNjZXNzIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgc29tZXRoaW5nIHRoYXQgd2FzXG4gICAgICAgICAgICAgICAgLy8gcHJldmlvdXNseSB3cml0dGVuIHRvIHRoZSBwcm9taXNlIGFuZCB0aHVzIG5vdCBhbiB1bmRlcmx5aW5nXG4gICAgICAgICAgICAgICAgLy8gc2VhcmNoUGFyYW0gdmFsdWVcbiAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiAocHJvcCA9PT0gJ3RoZW4nIHx8ICFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSkge1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dGb3JTZWFyY2hQYXJhbXNBY2Nlc3NJblVzZUNhY2hlKSh3b3JrU3RvcmUsIGdldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBoYXM6IGZ1bmN0aW9uIGhhcyh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGV4cGVjdCBrZXkgY2hlY2tpbmcgdG8gYmUgdXNlZCBleGNlcHQgZm9yIHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvZlxuICAgICAgICAgICAgLy8gc2VhcmNoUGFyYW1zIHNvIHdlIG1ha2UgYWxsIGhhcyB0ZXN0cyB0aHJvdyBhbiBlcnJvci4gdGhpcyBtZWFucyB0aGF0IGBwcm9taXNlLnRoZW5gXG4gICAgICAgICAgICAvLyBjYW4gcmVzb2x2ZSB0byB0aGUgdGhlbiBmdW5jdGlvbiBvbiB0aGUgUHJvbWlzZSBwcm90b3R5cGUgYnV0ICd0aGVuJyBpbiBwcm9taXNlIHdpbGwgYXNzdW1lXG4gICAgICAgICAgICAvLyB5b3UgYXJlIHRlc3Rpbmcgd2hldGhlciB0aGUgc2VhcmNoUGFyYW1zIGhhcyBhICd0aGVuJyBwcm9wZXJ0eS5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycgJiYgKHByb3AgPT09ICd0aGVuJyB8fCAhX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkpIHtcbiAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZSkod29ya1N0b3JlLCBoYXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzOiBmdW5jdGlvbiBvd25LZXlzKCkge1xuICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd0ZvclNlYXJjaFBhcmFtc0FjY2Vzc0luVXNlQ2FjaGUpKHdvcmtTdG9yZSwgb3duS2V5cyk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZS5zZXQod29ya1N0b3JlLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBzZWFyY2hQYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcikoc3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZXJseWluZ1NlYXJjaFBhcmFtc1twcm9wXTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHByb21pc2UpO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgLy8gV2UgaGF2ZSBhbiB1bmZvcnR1bmF0ZSBzZXF1ZW5jZSBvZiBldmVudHMgdGhhdCByZXF1aXJlcyB0aGlzIGluaXRpYWxpemF0aW9uIGxvZ2ljLiBXZSB3YW50IHRvIGluc3RydW1lbnQgdGhlIHVuZGVybHlpbmdcbiAgICAvLyBzZWFyY2hQYXJhbXMgb2JqZWN0IHRvIGRldGVjdCBpZiB5b3UgYXJlIGFjY2Vzc2luZyB2YWx1ZXMgaW4gZGV2LiBUaGlzIGlzIHVzZWQgZm9yIHdhcm5pbmdzIGFuZCBmb3IgdGhpbmdzIGxpa2UgdGhlIHN0YXRpYyBwcmVyZW5kZXJcbiAgICAvLyBpbmRpY2F0b3IuIEhvd2V2ZXIgd2hlbiB3ZSBwYXNzIHRoaXMgcHJveHkgdG8gb3VyIFByb21pc2UucmVzb2x2ZSgpIGJlbG93IHRoZSBWTSBjaGVja3MgaWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzIGEgcHJvbWlzZSBieSBsb29raW5nXG4gICAgLy8gYXQgdGhlIGAudGhlbmAgcHJvcGVydHkuIFRvIG91ciBkeW5hbWljIHRyYWNraW5nIGxvZ2ljIHRoaXMgaXMgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBhIGB0aGVuYCBzZWFyY2hQYXJhbSBhbmQgc28gd2Ugd291bGQgbm9ybWFsbHkgdHJpZ2dlclxuICAgIC8vIGR5bmFtaWMgdHJhY2tpbmcuIEhvd2V2ZXIgd2Uga25vdyB0aGF0IHRoaXMgLnRoZW4gaXMgbm90IHJlYWwgZHluYW1pYyBhY2Nlc3MsIGl0J3MganVzdCBob3cgdGhlbmFibGVzIHJlc29sdmUgaW4gc2VxdWVuY2UuIFNvIHdlIGludHJvZHVjZVxuICAgIC8vIHRoaXMgaW5pdGlhbGl6YXRpb24gY29uY2VwdCBzbyB3ZSBvbWl0IHRoZSBkeW5hbWljIGNoZWNrIHVudGlsIGFmdGVyIHdlJ3ZlIGNvbnN0cnVjdGVkIG91ciByZXNvbHZlZCBwcm9taXNlLlxuICAgIGxldCBwcm9taXNlSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBwcm94aWVkVW5kZXJseWluZyA9IG5ldyBQcm94eSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiBwcm9taXNlSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIpKHN0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgey4uLnNlYXJjaFBhcmFtc31gLCBgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHNlYXJjaFBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PigwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+cmVzb2x2ZSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKSkpO1xuICAgIHByb21pc2UudGhlbigoKT0+e1xuICAgICAgICBwcm9taXNlSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH0pO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgICAgIC8vIHRydWUgdW5kZXJseWluZyB2YWx1ZSBmb3IgUHJvbWlzZXMgdG8gd29yayBjb3JyZWN0bHkgYXQgcnVudGltZVxuICAgICAgICAgICAgdW5wcm94aWVkUHJvcGVydGllcy5wdXNoKHByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuYWRkKHByb3ApO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJveGllZFVuZGVybHlpbmdbcHJvcF07XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHByb3AgPT09ICd0aGVuJyAmJiBzdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BzZWFyY2hQYXJhbXMudGhlbmAnO1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkgJiYgKHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSB8fCAvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwcm9taXNlIG5vclxuICAgICAgICAgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtcy5cbiAgICAgICAgICAgICAgICBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApID09PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgc3luY0lPRGV2KHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQgKHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuZGVsZXRlKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkgJiYgKHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSB8fCAvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwcm9taXNlIG5vclxuICAgICAgICAgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtcy5cbiAgICAgICAgICAgICAgICBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApID09PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSkoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICh0YXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgc3luY0lPRGV2KHN0b3JlLnJvdXRlLCBleHByZXNzaW9uLCB1bnByb3hpZWRQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbi8vIFNpbWlsYXIgdG8gYG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNTZWFyY2hQYXJhbXNXaXRoRGV2V2FybmluZ3NgLCBidXRcbi8vIGp1c3QgbG9nZ2luZyB0aGUgc3luYyBhY2Nlc3Mgd2l0aG91dCBhY3R1YWxseSBkZWZpbmluZyB0aGUgc2VhcmNoIHBhcmFtcyBvblxuLy8gdGhlIHByb21pc2UuXG5mdW5jdGlvbiBtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb3hpZWRQcm9wZXJ0aWVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHVucHJveGllZFByb3BlcnRpZXMgPSBbXTtcbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgICAgIC8vIHRydWUgdW5kZXJseWluZyB2YWx1ZSBmb3IgUHJvbWlzZXMgdG8gd29yayBjb3JyZWN0bHkgYXQgcnVudGltZVxuICAgICAgICAgICAgdW5wcm94aWVkUHJvcGVydGllcy5wdXNoKHByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuYWRkKHByb3ApO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkgJiYgKHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSB8fCAvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwcm9taXNlIG5vclxuICAgICAgICAgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtcy5cbiAgICAgICAgICAgICAgICBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApID09PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgd2FybkZvclN5bmNBY2Nlc3Moc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5kZWxldGUocHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBoYXMgKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICghX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSAmJiAocHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApIHx8IC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHByb21pc2Ugbm9yXG4gICAgICAgICAgICAgICAgLy8gdGhlIHVuZGVybHlpbmcgc2VhcmNoUGFyYW1zLlxuICAgICAgICAgICAgICAgIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCkgPT09IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpYCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgIHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24oc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcykge1xuICAgIC8vIEluIGFsbCBjYXNlcyB3ZSB3YXJuIG5vcm1hbGx5XG4gICAgaWYgKG1pc3NpbmdQcm9wZXJ0aWVzICYmIG1pc3NpbmdQcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uKTtcbiAgICB9XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUgJiYgd29ya1VuaXRTdG9yZS50eXBlID09PSAncmVxdWVzdCcgJiYgd29ya1VuaXRTdG9yZS5wcmVyZW5kZXJQaGFzZSA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBXaGVuIHdlJ3JlIHJlbmRlcmluZyBkeW5hbWljYWxseSBpbiBkZXYgd2UgbmVlZCB0byBhZHZhbmNlIG91dCBvZiB0aGVcbiAgICAgICAgLy8gUHJlcmVuZGVyIGVudmlyb25tZW50IHdoZW4gd2UgcmVhZCBSZXF1ZXN0IGRhdGEgc3luY2hyb25vdXNseVxuICAgICAgICBjb25zdCByZXF1ZXN0U3RvcmUgPSB3b3JrVW5pdFN0b3JlO1xuICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYpKHJlcXVlc3RTdG9yZSk7XG4gICAgfVxufVxuY29uc3Qgd2FybkZvclN5bmNBY2Nlc3MgPSAoMCwgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIuY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldikoY3JlYXRlU2VhcmNoQWNjZXNzRXJyb3IpO1xuY29uc3Qgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbiA9ICgwLCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlci5jcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KShjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcik7XG5mdW5jdGlvbiBjcmVhdGVTZWFyY2hBY2Nlc3NFcnJvcihyb3V0ZSwgZXhwcmVzc2lvbikge1xuICAgIGNvbnN0IHByZWZpeCA9IHJvdXRlID8gYFJvdXRlIFwiJHtyb3V0ZX1cIiBgIDogJ1RoaXMgcm91dGUgJztcbiAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgJHtwcmVmaXh9dXNlZCAke2V4cHJlc3Npb259LiBgICsgYFxcYHNlYXJjaFBhcmFtc1xcYCBzaG91bGQgYmUgYXdhaXRlZCBiZWZvcmUgdXNpbmcgaXRzIHByb3BlcnRpZXMuIGAgKyBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkUyNDlcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlSW5jb21wbGV0ZUVudW1lcmF0aW9uRXJyb3Iocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGAke3ByZWZpeH11c2VkICR7ZXhwcmVzc2lvbn0uIGAgKyBgXFxgc2VhcmNoUGFyYW1zXFxgIHNob3VsZCBiZSBhd2FpdGVkIGJlZm9yZSB1c2luZyBpdHMgcHJvcGVydGllcy4gYCArIGBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgd2VyZSBub3QgYXZhaWxhYmxlIHRocm91Z2ggZW51bWVyYXRpb24gYCArIGBiZWNhdXNlIHRoZXkgY29uZmxpY3Qgd2l0aCBidWlsdGluIG9yIHdlbGwta25vd24gcHJvcGVydHkgbmFtZXM6IGAgKyBgJHtkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMobWlzc2luZ1Byb3BlcnRpZXMpfS4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTJcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzKHByb3BlcnRpZXMpIHtcbiAgICBzd2l0Y2gocHJvcGVydGllcy5sZW5ndGgpe1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignRXhwZWN0ZWQgZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzIHRvIGJlIGNhbGxlZCB3aXRoIGEgbm9uLWVtcHR5IGxpc3Qgb2Ygc3RyaW5ncy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTUzMVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYGA7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYCBhbmQgXFxgJHtwcm9wZXJ0aWVzWzFdfVxcYGA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoIC0gMTsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYFxcYCR7cHJvcGVydGllc1tpXX1cXGAsIGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICs9IGAsIGFuZCBcXGAke3Byb3BlcnRpZXNbcHJvcGVydGllcy5sZW5ndGggLSAxXX1cXGBgO1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlYXJjaC1wYXJhbXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/search-params.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/request/utils.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/server/request/utils.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isRequestAPICallableInsideAfter: function() {\n return isRequestAPICallableInsideAfter;\n },\n throwForSearchParamsAccessInUseCache: function() {\n return throwForSearchParamsAccessInUseCache;\n },\n throwWithStaticGenerationBailoutError: function() {\n return throwWithStaticGenerationBailoutError;\n },\n throwWithStaticGenerationBailoutErrorWithDynamicError: function() {\n return throwWithStaticGenerationBailoutErrorWithDynamicError;\n }\n});\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _aftertaskasyncstorageexternal = __webpack_require__(/*! ../app-render/after-task-async-storage.external */ \"../app-render/after-task-async-storage.external\");\nfunction throwWithStaticGenerationBailoutError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E576\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E543\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwForSearchParamsAccessInUseCache(workStore, constructorOpt) {\n const error = Object.defineProperty(new Error(`Route ${workStore.route} used \"searchParams\" inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \"searchParams\" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E634\",\n enumerable: false,\n configurable: true\n });\n Error.captureStackTrace(error, constructorOpt);\n workStore.invalidDynamicUsageError ??= error;\n throw error;\n}\nfunction isRequestAPICallableInsideAfter() {\n const afterTaskStore = _aftertaskasyncstorageexternal.afterTaskAsyncStorage.getStore();\n return (afterTaskStore == null ? void 0 : afterTaskStore.rootTaskSpawnPhase) === 'action';\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW9DZ0JBLCtCQUErQjtlQUEvQkE7O0lBZEFDLG9DQUFvQztlQUFwQ0E7O0lBbEJBQyxxQ0FBcUM7ZUFBckNBOztJQVNBQyxxREFBcUQ7ZUFBckRBOzs7cURBYnNCOzJEQUNBO0FBRy9CLFNBQVNELHNDQUNkRSxLQUFhLEVBQ2JDLFVBQWtCO0lBRWxCLE1BQU0scUJBRUwsQ0FGSyxJQUFJQyx5QkFBQUEscUJBQXFCLENBQzdCLENBQUMsTUFBTSxFQUFFRixNQUFNLGlEQUFpRCxFQUFFQyxXQUFXLDBIQUEwSCxDQUFDLEdBRHBNO2VBQUE7b0JBQUE7c0JBQUE7SUFFTjtBQUNGO0FBRU8sU0FBU0Ysc0RBQ2RDLEtBQWEsRUFDYkMsVUFBa0I7SUFFbEIsTUFBTSxxQkFFTCxDQUZLLElBQUlDLHlCQUFBQSxxQkFBcUIsQ0FDN0IsQ0FBQyxNQUFNLEVBQUVGLE1BQU0sNEVBQTRFLEVBQUVDLFdBQVcsMEhBQTBILENBQUMsR0FEL047ZUFBQTtvQkFBQTtzQkFBQTtJQUVOO0FBQ0Y7QUFFTyxTQUFTSixxQ0FDZE0sU0FBb0IsRUFDcEJDLGNBQXdCO0lBRXhCLE1BQU1DLFFBQVEscUJBRWIsQ0FGYSxJQUFJQyxNQUNoQixDQUFDLE1BQU0sRUFBRUgsVUFBVUgsS0FBSyxDQUFDLG9WQUFvVixDQUFDLEdBRGxXO2VBQUE7b0JBQUE7c0JBQUE7SUFFZDtJQUVBTSxNQUFNQyxpQkFBaUIsQ0FBQ0YsT0FBT0Q7SUFDL0JELFVBQVVLLHdCQUF3QixLQUFLSDtJQUV2QyxNQUFNQTtBQUNSO0FBRU8sU0FBU1Q7SUFDZCxNQUFNYSxpQkFBaUJDLCtCQUFBQSxxQkFBcUIsQ0FBQ0MsUUFBUTtJQUNyRCxPQUFPRixDQUFBQSxrQkFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsZUFBZ0JHLGtCQUFBQSxNQUF1QjtBQUNoRCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NlcnZlci9yZXF1ZXN0L3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRpY0dlbkJhaWxvdXRFcnJvciB9IGZyb20gJy4uLy4uL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQnXG5pbXBvcnQgeyBhZnRlclRhc2tBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi9hcHAtcmVuZGVyL2FmdGVyLXRhc2stYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB0eXBlIHsgV29ya1N0b3JlIH0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmdcbik6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICBgUm91dGUgJHtyb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcihcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiBuZXZlciB7XG4gIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gICAgYFJvdXRlICR7cm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZShcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGNvbnN0cnVjdG9yT3B0OiBGdW5jdGlvblxuKTogbmV2ZXIge1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJzZWFyY2hQYXJhbXNcIiBpbnNpZGUgXCJ1c2UgY2FjaGVcIi4gQWNjZXNzaW5nIER5bmFtaWMgZGF0YSBzb3VyY2VzIGluc2lkZSBhIGNhY2hlIHNjb3BlIGlzIG5vdCBzdXBwb3J0ZWQuIElmIHlvdSBuZWVkIHRoaXMgZGF0YSBpbnNpZGUgYSBjYWNoZWQgZnVuY3Rpb24gdXNlIFwic2VhcmNoUGFyYW1zXCIgb3V0c2lkZSBvZiB0aGUgY2FjaGVkIGZ1bmN0aW9uIGFuZCBwYXNzIHRoZSByZXF1aXJlZCBkeW5hbWljIGRhdGEgaW4gYXMgYW4gYXJndW1lbnQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1yZXF1ZXN0LWluLXVzZS1jYWNoZWBcbiAgKVxuXG4gIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKGVycm9yLCBjb25zdHJ1Y3Rvck9wdClcbiAgd29ya1N0b3JlLmludmFsaWREeW5hbWljVXNhZ2VFcnJvciA/Pz0gZXJyb3JcblxuICB0aHJvdyBlcnJvclxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXF1ZXN0QVBJQ2FsbGFibGVJbnNpZGVBZnRlcigpIHtcbiAgY29uc3QgYWZ0ZXJUYXNrU3RvcmUgPSBhZnRlclRhc2tBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICByZXR1cm4gYWZ0ZXJUYXNrU3RvcmU/LnJvb3RUYXNrU3Bhd25QaGFzZSA9PT0gJ2FjdGlvbidcbn1cbiJdLCJuYW1lcyI6WyJpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyIiwidGhyb3dGb3JTZWFyY2hQYXJhbXNBY2Nlc3NJblVzZUNhY2hlIiwidGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvciIsInRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yIiwicm91dGUiLCJleHByZXNzaW9uIiwiU3RhdGljR2VuQmFpbG91dEVycm9yIiwid29ya1N0b3JlIiwiY29uc3RydWN0b3JPcHQiLCJlcnJvciIsIkVycm9yIiwiY2FwdHVyZVN0YWNrVHJhY2UiLCJpbnZhbGlkRHluYW1pY1VzYWdlRXJyb3IiLCJhZnRlclRhc2tTdG9yZSIsImFmdGVyVGFza0FzeW5jU3RvcmFnZSIsImdldFN0b3JlIiwicm9vdFRhc2tTcGF3blBoYXNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/response-cache/index.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/server/response-cache/index.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return ResponseCache;\n }\n}));\n0 && 0;\nconst _batcher = __webpack_require__(/*! ../../lib/batcher */ \"(rsc)/./node_modules/next/dist/lib/batcher.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/response-cache/utils.js\");\n_export_star(__webpack_require__(/*! ./types */ \"(rsc)/./node_modules/next/dist/server/response-cache/types.js\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\nclass ResponseCache {\n constructor(minimal_mode){\n this.batcher = _batcher.Batcher.create({\n // Ensure on-demand revalidate doesn't block normal requests, it should be\n // safe to run an on-demand revalidate for the same key as a normal request.\n cacheKeyFn: ({ key, isOnDemandRevalidate })=>`${key}-${isOnDemandRevalidate ? '1' : '0'}`,\n // We wait to do any async work until after we've added our promise to\n // `pendingResponses` to ensure that any any other calls will reuse the\n // same promise until we've fully finished our work.\n schedulerFn: _scheduler.scheduleOnNextTick\n });\n this.minimal_mode = minimal_mode;\n }\n async get(key, responseGenerator, context) {\n // If there is no key for the cache, we can't possibly look this up in the\n // cache so just return the result of the response generator.\n if (!key) {\n return responseGenerator({\n hasResolved: false,\n previousCacheEntry: null\n });\n }\n const { incrementalCache, isOnDemandRevalidate = false, isFallback = false, isRoutePPREnabled = false, waitUntil } = context;\n const response = await this.batcher.batch({\n key,\n isOnDemandRevalidate\n }, (cacheKey, resolve)=>{\n const prom = (async ()=>{\n var _this_previousCacheItem;\n // We keep the previous cache entry around to leverage when the\n // incremental cache is disabled in minimal mode.\n if (this.minimal_mode && ((_this_previousCacheItem = this.previousCacheItem) == null ? void 0 : _this_previousCacheItem.key) === cacheKey && this.previousCacheItem.expiresAt > Date.now()) {\n return this.previousCacheItem.entry;\n }\n // Coerce the kindHint into a given kind for the incremental cache.\n const kind = (0, _utils.routeKindToIncrementalCacheKind)(context.routeKind);\n let resolved = false;\n let cachedResponse = null;\n try {\n cachedResponse = !this.minimal_mode ? await incrementalCache.get(key, {\n kind,\n isRoutePPREnabled: context.isRoutePPREnabled,\n isFallback\n }) : null;\n if (cachedResponse && !isOnDemandRevalidate) {\n resolve(cachedResponse);\n resolved = true;\n if (!cachedResponse.isStale || context.isPrefetch) {\n // The cached value is still valid, so we don't need\n // to update it yet.\n return null;\n }\n }\n const cacheEntry = await responseGenerator({\n hasResolved: resolved,\n previousCacheEntry: cachedResponse,\n isRevalidating: true\n });\n // If the cache entry couldn't be generated, we don't want to cache\n // the result.\n if (!cacheEntry) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n const resolveValue = await (0, _utils.fromResponseCacheEntry)({\n ...cacheEntry,\n isMiss: !cachedResponse\n });\n if (!resolveValue) {\n // Unset the previous cache item if it was set.\n if (this.minimal_mode) this.previousCacheItem = undefined;\n return null;\n }\n // For on-demand revalidate wait to resolve until cache is set.\n // Otherwise resolve now.\n if (!isOnDemandRevalidate && !resolved) {\n resolve(resolveValue);\n resolved = true;\n }\n // We want to persist the result only if it has a cache control value\n // defined.\n if (resolveValue.cacheControl) {\n if (this.minimal_mode) {\n this.previousCacheItem = {\n key: cacheKey,\n entry: resolveValue,\n expiresAt: Date.now() + 1000\n };\n } else {\n await incrementalCache.set(key, resolveValue.value, {\n cacheControl: resolveValue.cacheControl,\n isRoutePPREnabled,\n isFallback\n });\n }\n }\n return resolveValue;\n } catch (err) {\n // When a path is erroring we automatically re-set the existing cache\n // with new revalidate and expire times to prevent non-stop retrying.\n if (cachedResponse == null ? void 0 : cachedResponse.cacheControl) {\n const newRevalidate = Math.min(Math.max(cachedResponse.cacheControl.revalidate || 3, 3), 30);\n const newExpire = cachedResponse.cacheControl.expire === undefined ? undefined : Math.max(newRevalidate + 3, cachedResponse.cacheControl.expire);\n await incrementalCache.set(key, cachedResponse.value, {\n cacheControl: {\n revalidate: newRevalidate,\n expire: newExpire\n },\n isRoutePPREnabled,\n isFallback\n });\n }\n // While revalidating in the background we can't reject as we already\n // resolved the cache entry so log the error here.\n if (resolved) {\n console.error(err);\n return null;\n }\n // We haven't resolved yet, so let's throw to indicate an error.\n throw err;\n }\n })();\n // we need to ensure background revalidates are\n // passed to waitUntil\n if (waitUntil) {\n waitUntil(prom);\n }\n return prom;\n });\n return (0, _utils.toResponseCacheEntry)(response);\n }\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLEtBQUssQ0FBNEI7QUFDakMsaUJBQWlCLG1CQUFPLENBQUMsd0VBQW1CO0FBQzVDLG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxlQUFlLG1CQUFPLENBQUMsOEVBQVM7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLDhFQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsMkJBQTJCLE1BQU0sSUFBSSxHQUFHLGlDQUFpQztBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxnQkFBZ0IsMkdBQTJHO0FBQzNIO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImRlZmF1bHRcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlc3BvbnNlQ2FjaGU7XG4gICAgfVxufSk7XG4wICYmIF9fZXhwb3J0KHJlcXVpcmUoXCIuL3R5cGVzXCIpKTtcbmNvbnN0IF9iYXRjaGVyID0gcmVxdWlyZShcIi4uLy4uL2xpYi9iYXRjaGVyXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG5fZXhwb3J0X3N0YXIocmVxdWlyZShcIi4vdHlwZXNcIiksIGV4cG9ydHMpO1xuZnVuY3Rpb24gX2V4cG9ydF9zdGFyKGZyb20sIHRvKSB7XG4gICAgT2JqZWN0LmtleXMoZnJvbSkuZm9yRWFjaChmdW5jdGlvbihrKSB7XG4gICAgICAgIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRvLCBrKSkge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRvLCBrLCB7XG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbVtrXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmcm9tO1xufVxuY2xhc3MgUmVzcG9uc2VDYWNoZSB7XG4gICAgY29uc3RydWN0b3IobWluaW1hbF9tb2RlKXtcbiAgICAgICAgdGhpcy5iYXRjaGVyID0gX2JhdGNoZXIuQmF0Y2hlci5jcmVhdGUoe1xuICAgICAgICAgICAgLy8gRW5zdXJlIG9uLWRlbWFuZCByZXZhbGlkYXRlIGRvZXNuJ3QgYmxvY2sgbm9ybWFsIHJlcXVlc3RzLCBpdCBzaG91bGQgYmVcbiAgICAgICAgICAgIC8vIHNhZmUgdG8gcnVuIGFuIG9uLWRlbWFuZCByZXZhbGlkYXRlIGZvciB0aGUgc2FtZSBrZXkgYXMgYSBub3JtYWwgcmVxdWVzdC5cbiAgICAgICAgICAgIGNhY2hlS2V5Rm46ICh7IGtleSwgaXNPbkRlbWFuZFJldmFsaWRhdGUgfSk9PmAke2tleX0tJHtpc09uRGVtYW5kUmV2YWxpZGF0ZSA/ICcxJyA6ICcwJ31gLFxuICAgICAgICAgICAgLy8gV2Ugd2FpdCB0byBkbyBhbnkgYXN5bmMgd29yayB1bnRpbCBhZnRlciB3ZSd2ZSBhZGRlZCBvdXIgcHJvbWlzZSB0b1xuICAgICAgICAgICAgLy8gYHBlbmRpbmdSZXNwb25zZXNgIHRvIGVuc3VyZSB0aGF0IGFueSBhbnkgb3RoZXIgY2FsbHMgd2lsbCByZXVzZSB0aGVcbiAgICAgICAgICAgIC8vIHNhbWUgcHJvbWlzZSB1bnRpbCB3ZSd2ZSBmdWxseSBmaW5pc2hlZCBvdXIgd29yay5cbiAgICAgICAgICAgIHNjaGVkdWxlckZuOiBfc2NoZWR1bGVyLnNjaGVkdWxlT25OZXh0VGlja1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5taW5pbWFsX21vZGUgPSBtaW5pbWFsX21vZGU7XG4gICAgfVxuICAgIGFzeW5jIGdldChrZXksIHJlc3BvbnNlR2VuZXJhdG9yLCBjb250ZXh0KSB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGtleSBmb3IgdGhlIGNhY2hlLCB3ZSBjYW4ndCBwb3NzaWJseSBsb29rIHRoaXMgdXAgaW4gdGhlXG4gICAgICAgIC8vIGNhY2hlIHNvIGp1c3QgcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIHJlc3BvbnNlIGdlbmVyYXRvci5cbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZUdlbmVyYXRvcih7XG4gICAgICAgICAgICAgICAgaGFzUmVzb2x2ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzQ2FjaGVFbnRyeTogbnVsbFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBpbmNyZW1lbnRhbENhY2hlLCBpc09uRGVtYW5kUmV2YWxpZGF0ZSA9IGZhbHNlLCBpc0ZhbGxiYWNrID0gZmFsc2UsIGlzUm91dGVQUFJFbmFibGVkID0gZmFsc2UsIHdhaXRVbnRpbCB9ID0gY29udGV4dDtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJhdGNoZXIuYmF0Y2goe1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGVcbiAgICAgICAgfSwgKGNhY2hlS2V5LCByZXNvbHZlKT0+e1xuICAgICAgICAgICAgY29uc3QgcHJvbSA9IChhc3luYyAoKT0+e1xuICAgICAgICAgICAgICAgIHZhciBfdGhpc19wcmV2aW91c0NhY2hlSXRlbTtcbiAgICAgICAgICAgICAgICAvLyBXZSBrZWVwIHRoZSBwcmV2aW91cyBjYWNoZSBlbnRyeSBhcm91bmQgdG8gbGV2ZXJhZ2Ugd2hlbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBpbmNyZW1lbnRhbCBjYWNoZSBpcyBkaXNhYmxlZCBpbiBtaW5pbWFsIG1vZGUuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWluaW1hbF9tb2RlICYmICgoX3RoaXNfcHJldmlvdXNDYWNoZUl0ZW0gPSB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfcHJldmlvdXNDYWNoZUl0ZW0ua2V5KSA9PT0gY2FjaGVLZXkgJiYgdGhpcy5wcmV2aW91c0NhY2hlSXRlbS5leHBpcmVzQXQgPiBEYXRlLm5vdygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtLmVudHJ5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBDb2VyY2UgdGhlIGtpbmRIaW50IGludG8gYSBnaXZlbiBraW5kIGZvciB0aGUgaW5jcmVtZW50YWwgY2FjaGUuXG4gICAgICAgICAgICAgICAgY29uc3Qga2luZCA9ICgwLCBfdXRpbHMucm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZCkoY29udGV4dC5yb3V0ZUtpbmQpO1xuICAgICAgICAgICAgICAgIGxldCByZXNvbHZlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGxldCBjYWNoZWRSZXNwb25zZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVkUmVzcG9uc2UgPSAhdGhpcy5taW5pbWFsX21vZGUgPyBhd2FpdCBpbmNyZW1lbnRhbENhY2hlLmdldChrZXksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZDogY29udGV4dC5pc1JvdXRlUFBSRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgfSkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVzcG9uc2UgJiYgIWlzT25EZW1hbmRSZXZhbGlkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGNhY2hlZFJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2FjaGVkUmVzcG9uc2UuaXNTdGFsZSB8fCBjb250ZXh0LmlzUHJlZmV0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgY2FjaGVkIHZhbHVlIGlzIHN0aWxsIHZhbGlkLCBzbyB3ZSBkb24ndCBuZWVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gdXBkYXRlIGl0IHlldC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYWNoZUVudHJ5ID0gYXdhaXQgcmVzcG9uc2VHZW5lcmF0b3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFzUmVzb2x2ZWQ6IHJlc29sdmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDYWNoZUVudHJ5OiBjYWNoZWRSZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUmV2YWxpZGF0aW5nOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2FjaGUgZW50cnkgY291bGRuJ3QgYmUgZ2VuZXJhdGVkLCB3ZSBkb24ndCB3YW50IHRvIGNhY2hlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSByZXN1bHQuXG4gICAgICAgICAgICAgICAgICAgIGlmICghY2FjaGVFbnRyeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5zZXQgdGhlIHByZXZpb3VzIGNhY2hlIGl0ZW0gaWYgaXQgd2FzIHNldC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbmltYWxfbW9kZSkgdGhpcy5wcmV2aW91c0NhY2hlSXRlbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVWYWx1ZSA9IGF3YWl0ICgwLCBfdXRpbHMuZnJvbVJlc3BvbnNlQ2FjaGVFbnRyeSkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY2FjaGVFbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTWlzczogIWNhY2hlZFJlc3BvbnNlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc29sdmVWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVW5zZXQgdGhlIHByZXZpb3VzIGNhY2hlIGl0ZW0gaWYgaXQgd2FzIHNldC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbmltYWxfbW9kZSkgdGhpcy5wcmV2aW91c0NhY2hlSXRlbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIEZvciBvbi1kZW1hbmQgcmV2YWxpZGF0ZSB3YWl0IHRvIHJlc29sdmUgdW50aWwgY2FjaGUgaXMgc2V0LlxuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UgcmVzb2x2ZSBub3cuXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNPbkRlbWFuZFJldmFsaWRhdGUgJiYgIXJlc29sdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc29sdmVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBwZXJzaXN0IHRoZSByZXN1bHQgb25seSBpZiBpdCBoYXMgYSBjYWNoZSBjb250cm9sIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgIC8vIGRlZmluZWQuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlVmFsdWUuY2FjaGVDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5taW5pbWFsX21vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzQ2FjaGVJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNhY2hlS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeTogcmVzb2x2ZVZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyAxMDAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5zZXQoa2V5LCByZXNvbHZlVmFsdWUudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiByZXNvbHZlVmFsdWUuY2FjaGVDb250cm9sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlVmFsdWU7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gYSBwYXRoIGlzIGVycm9yaW5nIHdlIGF1dG9tYXRpY2FsbHkgcmUtc2V0IHRoZSBleGlzdGluZyBjYWNoZVxuICAgICAgICAgICAgICAgICAgICAvLyB3aXRoIG5ldyByZXZhbGlkYXRlIGFuZCBleHBpcmUgdGltZXMgdG8gcHJldmVudCBub24tc3RvcCByZXRyeWluZy5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlZFJlc3BvbnNlID09IG51bGwgPyB2b2lkIDAgOiBjYWNoZWRSZXNwb25zZS5jYWNoZUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1JldmFsaWRhdGUgPSBNYXRoLm1pbihNYXRoLm1heChjYWNoZWRSZXNwb25zZS5jYWNoZUNvbnRyb2wucmV2YWxpZGF0ZSB8fCAzLCAzKSwgMzApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3RXhwaXJlID0gY2FjaGVkUmVzcG9uc2UuY2FjaGVDb250cm9sLmV4cGlyZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogTWF0aC5tYXgobmV3UmV2YWxpZGF0ZSArIDMsIGNhY2hlZFJlc3BvbnNlLmNhY2hlQ29udHJvbC5leHBpcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgaW5jcmVtZW50YWxDYWNoZS5zZXQoa2V5LCBjYWNoZWRSZXNwb25zZS52YWx1ZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBuZXdSZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IG5ld0V4cGlyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFja1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gV2hpbGUgcmV2YWxpZGF0aW5nIGluIHRoZSBiYWNrZ3JvdW5kIHdlIGNhbid0IHJlamVjdCBhcyB3ZSBhbHJlYWR5XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlc29sdmVkIHRoZSBjYWNoZSBlbnRyeSBzbyBsb2cgdGhlIGVycm9yIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgaGF2ZW4ndCByZXNvbHZlZCB5ZXQsIHNvIGxldCdzIHRocm93IHRvIGluZGljYXRlIGFuIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKTtcbiAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gZW5zdXJlIGJhY2tncm91bmQgcmV2YWxpZGF0ZXMgYXJlXG4gICAgICAgICAgICAvLyBwYXNzZWQgdG8gd2FpdFVudGlsXG4gICAgICAgICAgICBpZiAod2FpdFVudGlsKSB7XG4gICAgICAgICAgICAgICAgd2FpdFVudGlsKHByb20pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHByb207XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKDAsIF91dGlscy50b1Jlc3BvbnNlQ2FjaGVFbnRyeSkocmVzcG9uc2UpO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/response-cache/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/response-cache/types.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/server/response-cache/types.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n CachedRouteKind: function() {\n return CachedRouteKind;\n },\n IncrementalCacheKind: function() {\n return IncrementalCacheKind;\n }\n});\nvar CachedRouteKind = /*#__PURE__*/ function(CachedRouteKind) {\n CachedRouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n CachedRouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n CachedRouteKind[\"PAGES\"] = \"PAGES\";\n CachedRouteKind[\"FETCH\"] = \"FETCH\";\n CachedRouteKind[\"REDIRECT\"] = \"REDIRECT\";\n CachedRouteKind[\"IMAGE\"] = \"IMAGE\";\n return CachedRouteKind;\n}({});\nvar IncrementalCacheKind = /*#__PURE__*/ function(IncrementalCacheKind) {\n IncrementalCacheKind[\"APP_PAGE\"] = \"APP_PAGE\";\n IncrementalCacheKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n IncrementalCacheKind[\"PAGES\"] = \"PAGES\";\n IncrementalCacheKind[\"FETCH\"] = \"FETCH\";\n IncrementalCacheKind[\"IMAGE\"] = \"IMAGE\";\n return IncrementalCacheKind;\n}({});\n\n//# sourceMappingURL=types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS90eXBlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUoiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlL3R5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQ2FjaGVkUm91dGVLaW5kOiBudWxsLFxuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIENhY2hlZFJvdXRlS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBDYWNoZWRSb3V0ZUtpbmQ7XG4gICAgfSxcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJbmNyZW1lbnRhbENhY2hlS2luZDtcbiAgICB9XG59KTtcbnZhciBDYWNoZWRSb3V0ZUtpbmQgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKENhY2hlZFJvdXRlS2luZCkge1xuICAgIENhY2hlZFJvdXRlS2luZFtcIkFQUF9QQUdFXCJdID0gXCJBUFBfUEFHRVwiO1xuICAgIENhY2hlZFJvdXRlS2luZFtcIkFQUF9ST1VURVwiXSA9IFwiQVBQX1JPVVRFXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiUEFHRVNcIl0gPSBcIlBBR0VTXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiRkVUQ0hcIl0gPSBcIkZFVENIXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiUkVESVJFQ1RcIl0gPSBcIlJFRElSRUNUXCI7XG4gICAgQ2FjaGVkUm91dGVLaW5kW1wiSU1BR0VcIl0gPSBcIklNQUdFXCI7XG4gICAgcmV0dXJuIENhY2hlZFJvdXRlS2luZDtcbn0oe30pO1xudmFyIEluY3JlbWVudGFsQ2FjaGVLaW5kID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihJbmNyZW1lbnRhbENhY2hlS2luZCkge1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiQVBQX1BBR0VcIl0gPSBcIkFQUF9QQUdFXCI7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJBUFBfUk9VVEVcIl0gPSBcIkFQUF9ST1VURVwiO1xuICAgIEluY3JlbWVudGFsQ2FjaGVLaW5kW1wiUEFHRVNcIl0gPSBcIlBBR0VTXCI7XG4gICAgSW5jcmVtZW50YWxDYWNoZUtpbmRbXCJGRVRDSFwiXSA9IFwiRkVUQ0hcIjtcbiAgICBJbmNyZW1lbnRhbENhY2hlS2luZFtcIklNQUdFXCJdID0gXCJJTUFHRVwiO1xuICAgIHJldHVybiBJbmNyZW1lbnRhbENhY2hlS2luZDtcbn0oe30pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10eXBlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/response-cache/types.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/response-cache/utils.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/server/response-cache/utils.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromResponseCacheEntry: function() {\n return fromResponseCacheEntry;\n },\n routeKindToIncrementalCacheKind: function() {\n return routeKindToIncrementalCacheKind;\n },\n toResponseCacheEntry: function() {\n return toResponseCacheEntry;\n }\n});\nconst _types = __webpack_require__(/*! ./types */ \"(rsc)/./node_modules/next/dist/server/response-cache/types.js\");\nconst _renderresult = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../render-result */ \"(rsc)/./node_modules/next/dist/server/render-result.js\"));\nconst _routekind = __webpack_require__(/*! ../route-kind */ \"(rsc)/./node_modules/next/dist/server/route-kind.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nasync function fromResponseCacheEntry(cacheEntry) {\n var _cacheEntry_value, _cacheEntry_value1;\n return {\n ...cacheEntry,\n value: ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n pageData: cacheEntry.value.pageData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status\n } : ((_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: await cacheEntry.value.html.toUnchunkedString(true),\n postponed: cacheEntry.value.postponed,\n rscData: cacheEntry.value.rscData,\n headers: cacheEntry.value.headers,\n status: cacheEntry.value.status,\n segmentData: cacheEntry.value.segmentData\n } : cacheEntry.value\n };\n}\nasync function toResponseCacheEntry(response) {\n var _response_value, _response_value1;\n if (!response) return null;\n return {\n isMiss: response.isMiss,\n isStale: response.isStale,\n cacheControl: response.cacheControl,\n value: ((_response_value = response.value) == null ? void 0 : _response_value.kind) === _types.CachedRouteKind.PAGES ? {\n kind: _types.CachedRouteKind.PAGES,\n html: _renderresult.default.fromStatic(response.value.html),\n pageData: response.value.pageData,\n headers: response.value.headers,\n status: response.value.status\n } : ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === _types.CachedRouteKind.APP_PAGE ? {\n kind: _types.CachedRouteKind.APP_PAGE,\n html: _renderresult.default.fromStatic(response.value.html),\n rscData: response.value.rscData,\n headers: response.value.headers,\n status: response.value.status,\n postponed: response.value.postponed,\n segmentData: response.value.segmentData\n } : response.value\n };\n}\nfunction routeKindToIncrementalCacheKind(routeKind) {\n switch(routeKind){\n case _routekind.RouteKind.PAGES:\n return _types.IncrementalCacheKind.PAGES;\n case _routekind.RouteKind.APP_PAGE:\n return _types.IncrementalCacheKind.APP_PAGE;\n case _routekind.RouteKind.IMAGE:\n return _types.IncrementalCacheKind.IMAGE;\n case _routekind.RouteKind.APP_ROUTE:\n return _types.IncrementalCacheKind.APP_ROUTE;\n default:\n throw Object.defineProperty(new Error(`Unexpected route kind ${routeKind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E64\",\n enumerable: false,\n configurable: true\n });\n }\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGVBQWUsbUJBQU8sQ0FBQyw4RUFBUztBQUNoQyw2REFBNkQsbUJBQU8sQ0FBQyxnRkFBa0I7QUFDdkYsbUJBQW1CLG1CQUFPLENBQUMsMEVBQWU7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxVQUFVO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZS91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGZyb21SZXNwb25zZUNhY2hlRW50cnk6IG51bGwsXG4gICAgcm91dGVLaW5kVG9JbmNyZW1lbnRhbENhY2hlS2luZDogbnVsbCxcbiAgICB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBmcm9tUmVzcG9uc2VDYWNoZUVudHJ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGZyb21SZXNwb25zZUNhY2hlRW50cnk7XG4gICAgfSxcbiAgICByb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJvdXRlS2luZFRvSW5jcmVtZW50YWxDYWNoZUtpbmQ7XG4gICAgfSxcbiAgICB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0b1Jlc3BvbnNlQ2FjaGVFbnRyeTtcbiAgICB9XG59KTtcbmNvbnN0IF90eXBlcyA9IHJlcXVpcmUoXCIuL3R5cGVzXCIpO1xuY29uc3QgX3JlbmRlcnJlc3VsdCA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCIuLi9yZW5kZXItcmVzdWx0XCIpKTtcbmNvbnN0IF9yb3V0ZWtpbmQgPSByZXF1aXJlKFwiLi4vcm91dGUta2luZFwiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuYXN5bmMgZnVuY3Rpb24gZnJvbVJlc3BvbnNlQ2FjaGVFbnRyeShjYWNoZUVudHJ5KSB7XG4gICAgdmFyIF9jYWNoZUVudHJ5X3ZhbHVlLCBfY2FjaGVFbnRyeV92YWx1ZTE7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY2FjaGVFbnRyeSxcbiAgICAgICAgdmFsdWU6ICgoX2NhY2hlRW50cnlfdmFsdWUgPSBjYWNoZUVudHJ5LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlRW50cnlfdmFsdWUua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgaHRtbDogYXdhaXQgY2FjaGVFbnRyeS52YWx1ZS5odG1sLnRvVW5jaHVua2VkU3RyaW5nKHRydWUpLFxuICAgICAgICAgICAgcGFnZURhdGE6IGNhY2hlRW50cnkudmFsdWUucGFnZURhdGEsXG4gICAgICAgICAgICBoZWFkZXJzOiBjYWNoZUVudHJ5LnZhbHVlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IGNhY2hlRW50cnkudmFsdWUuc3RhdHVzXG4gICAgICAgIH0gOiAoKF9jYWNoZUVudHJ5X3ZhbHVlMSA9IGNhY2hlRW50cnkudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfY2FjaGVFbnRyeV92YWx1ZTEua2luZCkgPT09IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UgPyB7XG4gICAgICAgICAgICBraW5kOiBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICAgICAgaHRtbDogYXdhaXQgY2FjaGVFbnRyeS52YWx1ZS5odG1sLnRvVW5jaHVua2VkU3RyaW5nKHRydWUpLFxuICAgICAgICAgICAgcG9zdHBvbmVkOiBjYWNoZUVudHJ5LnZhbHVlLnBvc3Rwb25lZCxcbiAgICAgICAgICAgIHJzY0RhdGE6IGNhY2hlRW50cnkudmFsdWUucnNjRGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnM6IGNhY2hlRW50cnkudmFsdWUuaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1czogY2FjaGVFbnRyeS52YWx1ZS5zdGF0dXMsXG4gICAgICAgICAgICBzZWdtZW50RGF0YTogY2FjaGVFbnRyeS52YWx1ZS5zZWdtZW50RGF0YVxuICAgICAgICB9IDogY2FjaGVFbnRyeS52YWx1ZVxuICAgIH07XG59XG5hc3luYyBmdW5jdGlvbiB0b1Jlc3BvbnNlQ2FjaGVFbnRyeShyZXNwb25zZSkge1xuICAgIHZhciBfcmVzcG9uc2VfdmFsdWUsIF9yZXNwb25zZV92YWx1ZTE7XG4gICAgaWYgKCFyZXNwb25zZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaXNNaXNzOiByZXNwb25zZS5pc01pc3MsXG4gICAgICAgIGlzU3RhbGU6IHJlc3BvbnNlLmlzU3RhbGUsXG4gICAgICAgIGNhY2hlQ29udHJvbDogcmVzcG9uc2UuY2FjaGVDb250cm9sLFxuICAgICAgICB2YWx1ZTogKChfcmVzcG9uc2VfdmFsdWUgPSByZXNwb25zZS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXNwb25zZV92YWx1ZS5raW5kKSA9PT0gX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5QQUdFUyA/IHtcbiAgICAgICAgICAgIGtpbmQ6IF90eXBlcy5DYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICBodG1sOiBfcmVuZGVycmVzdWx0LmRlZmF1bHQuZnJvbVN0YXRpYyhyZXNwb25zZS52YWx1ZS5odG1sKSxcbiAgICAgICAgICAgIHBhZ2VEYXRhOiByZXNwb25zZS52YWx1ZS5wYWdlRGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLnZhbHVlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnZhbHVlLnN0YXR1c1xuICAgICAgICB9IDogKChfcmVzcG9uc2VfdmFsdWUxID0gcmVzcG9uc2UudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzcG9uc2VfdmFsdWUxLmtpbmQpID09PSBfdHlwZXMuQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFID8ge1xuICAgICAgICAgICAga2luZDogX3R5cGVzLkNhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgICAgIGh0bWw6IF9yZW5kZXJyZXN1bHQuZGVmYXVsdC5mcm9tU3RhdGljKHJlc3BvbnNlLnZhbHVlLmh0bWwpLFxuICAgICAgICAgICAgcnNjRGF0YTogcmVzcG9uc2UudmFsdWUucnNjRGF0YSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlLnZhbHVlLmhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnZhbHVlLnN0YXR1cyxcbiAgICAgICAgICAgIHBvc3Rwb25lZDogcmVzcG9uc2UudmFsdWUucG9zdHBvbmVkLFxuICAgICAgICAgICAgc2VnbWVudERhdGE6IHJlc3BvbnNlLnZhbHVlLnNlZ21lbnREYXRhXG4gICAgICAgIH0gOiByZXNwb25zZS52YWx1ZVxuICAgIH07XG59XG5mdW5jdGlvbiByb3V0ZUtpbmRUb0luY3JlbWVudGFsQ2FjaGVLaW5kKHJvdXRlS2luZCkge1xuICAgIHN3aXRjaChyb3V0ZUtpbmQpe1xuICAgICAgICBjYXNlIF9yb3V0ZWtpbmQuUm91dGVLaW5kLlBBR0VTOlxuICAgICAgICAgICAgcmV0dXJuIF90eXBlcy5JbmNyZW1lbnRhbENhY2hlS2luZC5QQUdFUztcbiAgICAgICAgY2FzZSBfcm91dGVraW5kLlJvdXRlS2luZC5BUFBfUEFHRTpcbiAgICAgICAgICAgIHJldHVybiBfdHlwZXMuSW5jcmVtZW50YWxDYWNoZUtpbmQuQVBQX1BBR0U7XG4gICAgICAgIGNhc2UgX3JvdXRla2luZC5Sb3V0ZUtpbmQuSU1BR0U6XG4gICAgICAgICAgICByZXR1cm4gX3R5cGVzLkluY3JlbWVudGFsQ2FjaGVLaW5kLklNQUdFO1xuICAgICAgICBjYXNlIF9yb3V0ZWtpbmQuUm91dGVLaW5kLkFQUF9ST1VURTpcbiAgICAgICAgICAgIHJldHVybiBfdHlwZXMuSW5jcmVtZW50YWxDYWNoZUtpbmQuQVBQX1JPVVRFO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgVW5leHBlY3RlZCByb3V0ZSBraW5kICR7cm91dGVLaW5kfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNjRcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/response-cache/utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/route-kind.js":
/*!*****************************************************!*\
!*** ./node_modules/next/dist/server/route-kind.js ***!
\*****************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouteKind\", ({\n enumerable: true,\n get: function() {\n return RouteKind;\n }\n}));\nvar RouteKind = /*#__PURE__*/ function(RouteKind) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ RouteKind[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ RouteKind[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ RouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ RouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `IMAGE` represents all the images that are generated by `next/image`.\n */ RouteKind[\"IMAGE\"] = \"IMAGE\";\n return RouteKind;\n}({});\n\n//# sourceMappingURL=route-kind.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNkNBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLElBQUksRUFBRSxHQUFHO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixJQUFJLEVBQUUsR0FBRztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiUm91dGVLaW5kXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSb3V0ZUtpbmQ7XG4gICAgfVxufSk7XG52YXIgUm91dGVLaW5kID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihSb3V0ZUtpbmQpIHtcbiAgICAvKipcbiAgICogYFBBR0VTYCByZXByZXNlbnRzIGFsbCB0aGUgUmVhY3QgcGFnZXMgdGhhdCBhcmUgdW5kZXIgYHBhZ2VzL2AuXG4gICAqLyBSb3V0ZUtpbmRbXCJQQUdFU1wiXSA9IFwiUEFHRVNcIjtcbiAgICAvKipcbiAgICogYFBBR0VTX0FQSWAgcmVwcmVzZW50cyBhbGwgdGhlIEFQSSByb3V0ZXMgdW5kZXIgYHBhZ2VzL2FwaS9gLlxuICAgKi8gUm91dGVLaW5kW1wiUEFHRVNfQVBJXCJdID0gXCJQQUdFU19BUElcIjtcbiAgICAvKipcbiAgICogYEFQUF9QQUdFYCByZXByZXNlbnRzIGFsbCB0aGUgUmVhY3QgcGFnZXMgdGhhdCBhcmUgdW5kZXIgYGFwcC9gIHdpdGggdGhlXG4gICAqIGZpbGVuYW1lIG9mIGBwYWdlLntqLHR9c3sseH1gLlxuICAgKi8gUm91dGVLaW5kW1wiQVBQX1BBR0VcIl0gPSBcIkFQUF9QQUdFXCI7XG4gICAgLyoqXG4gICAqIGBBUFBfUk9VVEVgIHJlcHJlc2VudHMgYWxsIHRoZSBBUEkgcm91dGVzIGFuZCBtZXRhZGF0YSByb3V0ZXMgdGhhdCBhcmUgdW5kZXIgYGFwcC9gIHdpdGggdGhlXG4gICAqIGZpbGVuYW1lIG9mIGByb3V0ZS57aix0fXN7LHh9YC5cbiAgICovIFJvdXRlS2luZFtcIkFQUF9ST1VURVwiXSA9IFwiQVBQX1JPVVRFXCI7XG4gICAgLyoqXG4gICAqIGBJTUFHRWAgcmVwcmVzZW50cyBhbGwgdGhlIGltYWdlcyB0aGF0IGFyZSBnZW5lcmF0ZWQgYnkgYG5leHQvaW1hZ2VgLlxuICAgKi8gUm91dGVLaW5kW1wiSU1BR0VcIl0gPSBcIklNQUdFXCI7XG4gICAgcmV0dXJuIFJvdXRlS2luZDtcbn0oe30pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yb3V0ZS1raW5kLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-kind.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js":
/*!****************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js ***!
\****************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?2eb7\").vendored[\"react-rsc\"].ReactDOM;\n\n//# sourceMappingURL=react-dom.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1kb20uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYix3TEFBZ0Y7O0FBRWhGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1kb20uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1yc2MnXS5SZWFjdERPTTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtZG9tLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js":
/*!****************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js ***!
\****************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?2eb7\").vendored[\"react-rsc\"].ReactJsxDevRuntime;\n\n//# sourceMappingURL=react-jsx-dev-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixrTUFBMEY7O0FBRTFGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1yc2MnXS5SZWFjdEpzeERldlJ1bnRpbWU7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWpzeC1kZXYtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js":
/*!************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js ***!
\************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?2eb7\").vendored[\"react-rsc\"].ReactJsxRuntime;\n\n//# sourceMappingURL=react-jsx-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1qc3gtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLCtMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvcnNjL3JlYWN0LWpzeC1ydW50aW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3QtcnNjJ10uUmVhY3RKc3hSdW50aW1lO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1qc3gtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js":
/*!**************************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js ***!
\**************************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?2eb7\").vendored[\"react-rsc\"].ReactServerDOMWebpackServer;\n\n//# sourceMappingURL=react-server-dom-webpack-server.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc2VydmVyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMk1BQW1HOztBQUVuRyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9yc2MvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLXNlcnZlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ3JlYWN0LXJzYyddLlJlYWN0U2VydmVyRE9NV2VicGFja1NlcnZlcjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLXNlcnZlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js":
/*!**************************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js ***!
\**************************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?2eb7\").vendored[\"react-rsc\"].ReactServerDOMWebpackStatic;\n\n//# sourceMappingURL=react-server-dom-webpack-static.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stc3RhdGljLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMk1BQW1HOztBQUVuRyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9yc2MvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLXN0YXRpYy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ3JlYWN0LXJzYyddLlJlYWN0U2VydmVyRE9NV2VicGFja1N0YXRpYztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLXN0YXRpYy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js":
/*!************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js ***!
\************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?2eb7\").vendored[\"react-rsc\"].React;\n\n//# sourceMappingURL=react.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3JzYy9yZWFjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLHFMQUE2RTs7QUFFN0UiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvcnNjL3JlYWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3QtcnNjJ10uUmVhY3Q7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-route/module.compiled.js":
/*!**********************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-route/module.compiled.js ***!
\**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nif (false) {} else {\n if (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/app-route.runtime.dev.js */ \"next/dist/compiled/next-server/app-route.runtime.dev.js\");\n }\n } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1yb3V0ZS9tb2R1bGUuY29tcGlsZWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixJQUFJLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNGLFFBQVEsS0FBcUMsRUFBRSxFQWMxQyxDQUFDO0FBQ04sWUFBWSxJQUFzQztBQUNsRCxnQkFBZ0IsS0FBcUIsRUFBRSxFQUUxQixDQUFDO0FBQ2QsZ0JBQWdCLDhKQUFtRjtBQUNuRztBQUNBLFVBQVUsS0FBSyxFQU1OO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcm91dGUvbW9kdWxlLmNvbXBpbGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXJvdXRlL21vZHVsZS5qcycpO1xufSBlbHNlIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0VYUEVSSU1FTlRBTF9SRUFDVCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcm91dGUtdHVyYm8tZXhwZXJpbWVudGFsLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1yb3V0ZS1leHBlcmltZW50YWwucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcm91dGUtdHVyYm8tZXhwZXJpbWVudGFsLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcm91dGUtZXhwZXJpbWVudGFsLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXJvdXRlLXR1cmJvLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1yb3V0ZS5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1yb3V0ZS10dXJiby5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXJvdXRlLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuY29tcGlsZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-route/module.compiled.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/send-payload.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/server/send-payload.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n sendEtagResponse: function() {\n return sendEtagResponse;\n },\n sendRenderResult: function() {\n return sendRenderResult;\n }\n});\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _etag = __webpack_require__(/*! ./lib/etag */ \"(rsc)/./node_modules/next/dist/server/lib/etag.js\");\nconst _fresh = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/fresh */ \"(rsc)/./node_modules/next/dist/compiled/fresh/index.js\"));\nconst _cachecontrol = __webpack_require__(/*! ./lib/cache-control */ \"(rsc)/./node_modules/next/dist/server/lib/cache-control.js\");\nconst _approuterheaders = __webpack_require__(/*! ../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction sendEtagResponse(req, res, etag) {\n if (etag) {\n /**\n * The server generating a 304 response MUST generate any of the\n * following header fields that would have been sent in a 200 (OK)\n * response to the same request: Cache-Control, Content-Location, Date,\n * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1\n */ res.setHeader('ETag', etag);\n }\n if ((0, _fresh.default)(req.headers, {\n etag\n })) {\n res.statusCode = 304;\n res.end();\n return true;\n }\n return false;\n}\nasync function sendRenderResult({ req, res, result, type, generateEtags, poweredByHeader, cacheControl }) {\n if ((0, _utils.isResSent)(res)) {\n return;\n }\n if (poweredByHeader && type === 'html') {\n res.setHeader('X-Powered-By', 'Next.js');\n }\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (cacheControl && !res.getHeader('Cache-Control')) {\n res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl));\n }\n const payload = result.isDynamic ? null : result.toUnchunkedString();\n if (generateEtags && payload !== null) {\n const etag = (0, _etag.generateETag)(payload);\n if (sendEtagResponse(req, res, etag)) {\n return;\n }\n }\n if (!res.getHeader('Content-Type')) {\n res.setHeader('Content-Type', result.contentType ? result.contentType : type === 'rsc' ? _approuterheaders.RSC_CONTENT_TYPE_HEADER : type === 'json' ? 'application/json' : 'text/html; charset=utf-8');\n }\n if (payload) {\n res.setHeader('Content-Length', Buffer.byteLength(payload));\n }\n if (req.method === 'HEAD') {\n res.end(null);\n return;\n }\n if (payload !== null) {\n res.end(payload);\n return;\n }\n // Pipe the render result to the response after we get a writer for it.\n await result.pipeToNodeResponse(res);\n}\n\n//# sourceMappingURL=send-payload.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zZW5kLXBheWxvYWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsZUFBZSxtQkFBTyxDQUFDLCtFQUFxQjtBQUM1QyxjQUFjLG1CQUFPLENBQUMscUVBQVk7QUFDbEMsc0RBQXNELG1CQUFPLENBQUMsd0ZBQTBCO0FBQ3hGLHNCQUFzQixtQkFBTyxDQUFDLHVGQUFxQjtBQUNuRCwwQkFBMEIsbUJBQU8sQ0FBQyx1SEFBeUM7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLHNFQUFzRTtBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdNQUFnTTtBQUNoTTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3NlbmQtcGF5bG9hZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIHNlbmRFdGFnUmVzcG9uc2U6IG51bGwsXG4gICAgc2VuZFJlbmRlclJlc3VsdDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBzZW5kRXRhZ1Jlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRFdGFnUmVzcG9uc2U7XG4gICAgfSxcbiAgICBzZW5kUmVuZGVyUmVzdWx0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQ7XG4gICAgfVxufSk7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi91dGlsc1wiKTtcbmNvbnN0IF9ldGFnID0gcmVxdWlyZShcIi4vbGliL2V0YWdcIik7XG5jb25zdCBfZnJlc2ggPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2ZyZXNoXCIpKTtcbmNvbnN0IF9jYWNoZWNvbnRyb2wgPSByZXF1aXJlKFwiLi9saWIvY2FjaGUtY29udHJvbFwiKTtcbmNvbnN0IF9hcHByb3V0ZXJoZWFkZXJzID0gcmVxdWlyZShcIi4uL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVyc1wiKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gc2VuZEV0YWdSZXNwb25zZShyZXEsIHJlcywgZXRhZykge1xuICAgIGlmIChldGFnKSB7XG4gICAgICAgIC8qKlxuICAgICAqIFRoZSBzZXJ2ZXIgZ2VuZXJhdGluZyBhIDMwNCByZXNwb25zZSBNVVNUIGdlbmVyYXRlIGFueSBvZiB0aGVcbiAgICAgKiBmb2xsb3dpbmcgaGVhZGVyIGZpZWxkcyB0aGF0IHdvdWxkIGhhdmUgYmVlbiBzZW50IGluIGEgMjAwIChPSylcbiAgICAgKiByZXNwb25zZSB0byB0aGUgc2FtZSByZXF1ZXN0OiBDYWNoZS1Db250cm9sLCBDb250ZW50LUxvY2F0aW9uLCBEYXRlLFxuICAgICAqIEVUYWcsIEV4cGlyZXMsIGFuZCBWYXJ5LiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNzIzMiNzZWN0aW9uLTQuMVxuICAgICAqLyByZXMuc2V0SGVhZGVyKCdFVGFnJywgZXRhZyk7XG4gICAgfVxuICAgIGlmICgoMCwgX2ZyZXNoLmRlZmF1bHQpKHJlcS5oZWFkZXJzLCB7XG4gICAgICAgIGV0YWdcbiAgICB9KSkge1xuICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDMwNDtcbiAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuYXN5bmMgZnVuY3Rpb24gc2VuZFJlbmRlclJlc3VsdCh7IHJlcSwgcmVzLCByZXN1bHQsIHR5cGUsIGdlbmVyYXRlRXRhZ3MsIHBvd2VyZWRCeUhlYWRlciwgY2FjaGVDb250cm9sIH0pIHtcbiAgICBpZiAoKDAsIF91dGlscy5pc1Jlc1NlbnQpKHJlcykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocG93ZXJlZEJ5SGVhZGVyICYmIHR5cGUgPT09ICdodG1sJykge1xuICAgICAgICByZXMuc2V0SGVhZGVyKCdYLVBvd2VyZWQtQnknLCAnTmV4dC5qcycpO1xuICAgIH1cbiAgICAvLyBJZiBjYWNoZSBjb250cm9sIGlzIGFscmVhZHkgc2V0IG9uIHRoZSByZXNwb25zZSB3ZSBkb24ndFxuICAgIC8vIG92ZXJyaWRlIGl0IHRvIGFsbG93IHVzZXJzIHRvIGN1c3RvbWl6ZSBpdCB2aWEgbmV4dC5jb25maWdcbiAgICBpZiAoY2FjaGVDb250cm9sICYmICFyZXMuZ2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJykpIHtcbiAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICgwLCBfY2FjaGVjb250cm9sLmdldENhY2hlQ29udHJvbEhlYWRlcikoY2FjaGVDb250cm9sKSk7XG4gICAgfVxuICAgIGNvbnN0IHBheWxvYWQgPSByZXN1bHQuaXNEeW5hbWljID8gbnVsbCA6IHJlc3VsdC50b1VuY2h1bmtlZFN0cmluZygpO1xuICAgIGlmIChnZW5lcmF0ZUV0YWdzICYmIHBheWxvYWQgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZXRhZyA9ICgwLCBfZXRhZy5nZW5lcmF0ZUVUYWcpKHBheWxvYWQpO1xuICAgICAgICBpZiAoc2VuZEV0YWdSZXNwb25zZShyZXEsIHJlcywgZXRhZykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXJlcy5nZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScpKSB7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtVHlwZScsIHJlc3VsdC5jb250ZW50VHlwZSA/IHJlc3VsdC5jb250ZW50VHlwZSA6IHR5cGUgPT09ICdyc2MnID8gX2FwcHJvdXRlcmhlYWRlcnMuUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIgOiB0eXBlID09PSAnanNvbicgPyAnYXBwbGljYXRpb24vanNvbicgOiAndGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Jyk7XG4gICAgfVxuICAgIGlmIChwYXlsb2FkKSB7XG4gICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJywgQnVmZmVyLmJ5dGVMZW5ndGgocGF5bG9hZCkpO1xuICAgIH1cbiAgICBpZiAocmVxLm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgICAgIHJlcy5lbmQobnVsbCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHBheWxvYWQgIT09IG51bGwpIHtcbiAgICAgICAgcmVzLmVuZChwYXlsb2FkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBQaXBlIHRoZSByZW5kZXIgcmVzdWx0IHRvIHRoZSByZXNwb25zZSBhZnRlciB3ZSBnZXQgYSB3cml0ZXIgZm9yIGl0LlxuICAgIGF3YWl0IHJlc3VsdC5waXBlVG9Ob2RlUmVzcG9uc2UocmVzKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VuZC1wYXlsb2FkLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/send-payload.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/send-response.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/server/send-response.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"sendResponse\", ({\n enumerable: true,\n get: function() {\n return sendResponse;\n }\n}));\nconst _helpers = __webpack_require__(/*! ./base-http/helpers */ \"(rsc)/./node_modules/next/dist/server/base-http/helpers.js\");\nconst _pipereadable = __webpack_require__(/*! ./pipe-readable */ \"(rsc)/./node_modules/next/dist/server/pipe-readable.js\");\nconst _utils = __webpack_require__(/*! ./web/utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nasync function sendResponse(req, res, response, waitUntil) {\n if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n true && (0, _helpers.isNodeNextResponse)(res)) {\n var // Copy over the response headers.\n _response_headers;\n // Copy over the response status.\n res.statusCode = response.status;\n res.statusMessage = response.statusText;\n // TODO: this is not spec-compliant behavior and we should not restrict\n // headers that are allowed to appear many times.\n //\n // See:\n // https://github.com/vercel/next.js/pull/70127\n const headersWithMultipleValuesAllowed = [\n // can add more headers to this list if needed\n 'set-cookie',\n 'www-authenticate',\n 'proxy-authenticate',\n 'vary'\n ];\n (_response_headers = response.headers) == null ? void 0 : _response_headers.forEach((value, name)=>{\n // `x-middleware-set-cookie` is an internal header not needed for the response\n if (name.toLowerCase() === 'x-middleware-set-cookie') {\n return;\n }\n // The append handling is special cased for `set-cookie`.\n if (name.toLowerCase() === 'set-cookie') {\n // TODO: (wyattjoh) replace with native response iteration when we can upgrade undici\n for (const cookie of (0, _utils.splitCookiesString)(value)){\n res.appendHeader(name, cookie);\n }\n } else {\n // only append the header if it is either not present in the outbound response\n // or if the header supports multiple values\n const isHeaderPresent = typeof res.getHeader(name) !== 'undefined';\n if (headersWithMultipleValuesAllowed.includes(name.toLowerCase()) || !isHeaderPresent) {\n res.appendHeader(name, value);\n }\n }\n });\n /**\n * The response can't be directly piped to the underlying response. The\n * following is duplicated from the edge runtime handler.\n *\n * See packages/next/server/next-server.ts\n */ const { originalResponse } = res;\n // A response body must not be sent for HEAD requests. See https://httpwg.org/specs/rfc9110.html#HEAD\n if (response.body && req.method !== 'HEAD') {\n await (0, _pipereadable.pipeToNodeResponse)(response.body, originalResponse, waitUntil);\n } else {\n originalResponse.end();\n }\n }\n}\n\n//# sourceMappingURL=send-response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zZW5kLXJlc3BvbnNlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZ0RBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsaUJBQWlCLG1CQUFPLENBQUMsdUZBQXFCO0FBQzlDLHNCQUFzQixtQkFBTyxDQUFDLCtFQUFpQjtBQUMvQyxlQUFlLG1CQUFPLENBQUMsdUVBQWE7QUFDcEM7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFtQztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1CQUFtQjtBQUNuQztBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3NlbmQtcmVzcG9uc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJzZW5kUmVzcG9uc2VcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9oZWxwZXJzID0gcmVxdWlyZShcIi4vYmFzZS1odHRwL2hlbHBlcnNcIik7XG5jb25zdCBfcGlwZXJlYWRhYmxlID0gcmVxdWlyZShcIi4vcGlwZS1yZWFkYWJsZVwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL3dlYi91dGlsc1wiKTtcbmFzeW5jIGZ1bmN0aW9uIHNlbmRSZXNwb25zZShyZXEsIHJlcywgcmVzcG9uc2UsIHdhaXRVbnRpbCkge1xuICAgIGlmICgvLyBUaGUgdHlwZSBjaGVjayBoZXJlIGVuc3VyZXMgdGhhdCBgcmVxYCBpcyBjb3JyZWN0bHkgdHlwZWQsIGFuZCB0aGVcbiAgICAvLyBlbnZpcm9ubWVudCB2YXJpYWJsZSBjaGVjayBwcm92aWRlcyBkZWFkIGNvZGUgZWxpbWluYXRpb24uXG4gICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgKDAsIF9oZWxwZXJzLmlzTm9kZU5leHRSZXNwb25zZSkocmVzKSkge1xuICAgICAgICB2YXIgLy8gQ29weSBvdmVyIHRoZSByZXNwb25zZSBoZWFkZXJzLlxuICAgICAgICBfcmVzcG9uc2VfaGVhZGVycztcbiAgICAgICAgLy8gQ29weSBvdmVyIHRoZSByZXNwb25zZSBzdGF0dXMuXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gcmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICByZXMuc3RhdHVzTWVzc2FnZSA9IHJlc3BvbnNlLnN0YXR1c1RleHQ7XG4gICAgICAgIC8vIFRPRE86IHRoaXMgaXMgbm90IHNwZWMtY29tcGxpYW50IGJlaGF2aW9yIGFuZCB3ZSBzaG91bGQgbm90IHJlc3RyaWN0XG4gICAgICAgIC8vIGhlYWRlcnMgdGhhdCBhcmUgYWxsb3dlZCB0byBhcHBlYXIgbWFueSB0aW1lcy5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gU2VlOlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC83MDEyN1xuICAgICAgICBjb25zdCBoZWFkZXJzV2l0aE11bHRpcGxlVmFsdWVzQWxsb3dlZCA9IFtcbiAgICAgICAgICAgIC8vIGNhbiBhZGQgbW9yZSBoZWFkZXJzIHRvIHRoaXMgbGlzdCBpZiBuZWVkZWRcbiAgICAgICAgICAgICdzZXQtY29va2llJyxcbiAgICAgICAgICAgICd3d3ctYXV0aGVudGljYXRlJyxcbiAgICAgICAgICAgICdwcm94eS1hdXRoZW50aWNhdGUnLFxuICAgICAgICAgICAgJ3ZhcnknXG4gICAgICAgIF07XG4gICAgICAgIChfcmVzcG9uc2VfaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnMpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzcG9uc2VfaGVhZGVycy5mb3JFYWNoKCh2YWx1ZSwgbmFtZSk9PntcbiAgICAgICAgICAgIC8vIGB4LW1pZGRsZXdhcmUtc2V0LWNvb2tpZWAgaXMgYW4gaW50ZXJuYWwgaGVhZGVyIG5vdCBuZWVkZWQgZm9yIHRoZSByZXNwb25zZVxuICAgICAgICAgICAgaWYgKG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3gtbWlkZGxld2FyZS1zZXQtY29va2llJykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRoZSBhcHBlbmQgaGFuZGxpbmcgaXMgc3BlY2lhbCBjYXNlZCBmb3IgYHNldC1jb29raWVgLlxuICAgICAgICAgICAgaWYgKG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3NldC1jb29raWUnKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogKHd5YXR0am9oKSByZXBsYWNlIHdpdGggbmF0aXZlIHJlc3BvbnNlIGl0ZXJhdGlvbiB3aGVuIHdlIGNhbiB1cGdyYWRlIHVuZGljaVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29va2llIG9mICgwLCBfdXRpbHMuc3BsaXRDb29raWVzU3RyaW5nKSh2YWx1ZSkpe1xuICAgICAgICAgICAgICAgICAgICByZXMuYXBwZW5kSGVhZGVyKG5hbWUsIGNvb2tpZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBvbmx5IGFwcGVuZCB0aGUgaGVhZGVyIGlmIGl0IGlzIGVpdGhlciBub3QgcHJlc2VudCBpbiB0aGUgb3V0Ym91bmQgcmVzcG9uc2VcbiAgICAgICAgICAgICAgICAvLyBvciBpZiB0aGUgaGVhZGVyIHN1cHBvcnRzIG11bHRpcGxlIHZhbHVlc1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSGVhZGVyUHJlc2VudCA9IHR5cGVvZiByZXMuZ2V0SGVhZGVyKG5hbWUpICE9PSAndW5kZWZpbmVkJztcbiAgICAgICAgICAgICAgICBpZiAoaGVhZGVyc1dpdGhNdWx0aXBsZVZhbHVlc0FsbG93ZWQuaW5jbHVkZXMobmFtZS50b0xvd2VyQ2FzZSgpKSB8fCAhaXNIZWFkZXJQcmVzZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRIZWFkZXIobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAqIFRoZSByZXNwb25zZSBjYW4ndCBiZSBkaXJlY3RseSBwaXBlZCB0byB0aGUgdW5kZXJseWluZyByZXNwb25zZS4gVGhlXG4gICAgICogZm9sbG93aW5nIGlzIGR1cGxpY2F0ZWQgZnJvbSB0aGUgZWRnZSBydW50aW1lIGhhbmRsZXIuXG4gICAgICpcbiAgICAgKiBTZWUgcGFja2FnZXMvbmV4dC9zZXJ2ZXIvbmV4dC1zZXJ2ZXIudHNcbiAgICAgKi8gY29uc3QgeyBvcmlnaW5hbFJlc3BvbnNlIH0gPSByZXM7XG4gICAgICAgIC8vIEEgcmVzcG9uc2UgYm9keSBtdXN0IG5vdCBiZSBzZW50IGZvciBIRUFEIHJlcXVlc3RzLiBTZWUgaHR0cHM6Ly9odHRwd2cub3JnL3NwZWNzL3JmYzkxMTAuaHRtbCNIRUFEXG4gICAgICAgIGlmIChyZXNwb25zZS5ib2R5ICYmIHJlcS5tZXRob2QgIT09ICdIRUFEJykge1xuICAgICAgICAgICAgYXdhaXQgKDAsIF9waXBlcmVhZGFibGUucGlwZVRvTm9kZVJlc3BvbnNlKShyZXNwb25zZS5ib2R5LCBvcmlnaW5hbFJlc3BvbnNlLCB3YWl0VW50aWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3JpZ2luYWxSZXNwb25zZS5lbmQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VuZC1yZXNwb25zZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/send-response.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/server-utils.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/server/server-utils.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getPreviouslyRevalidatedTags: function() {\n return getPreviouslyRevalidatedTags;\n },\n getServerUtils: function() {\n return getServerUtils;\n },\n interpolateDynamicPath: function() {\n return interpolateDynamicPath;\n },\n normalizeCdnUrl: function() {\n return normalizeCdnUrl;\n },\n normalizeDynamicRouteParams: function() {\n return normalizeDynamicRouteParams;\n }\n});\nconst _normalizelocalepath = __webpack_require__(/*! ../shared/lib/i18n/normalize-locale-path */ \"(rsc)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _pathmatch = __webpack_require__(/*! ../shared/lib/router/utils/path-match */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-match.js\");\nconst _routeregex = __webpack_require__(/*! ../shared/lib/router/utils/route-regex */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nconst _routematcher = __webpack_require__(/*! ../shared/lib/router/utils/route-matcher */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _preparedestination = __webpack_require__(/*! ../shared/lib/router/utils/prepare-destination */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/prepare-destination.js\");\nconst _removetrailingslash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _apppaths = __webpack_require__(/*! ../shared/lib/router/utils/app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _constants = __webpack_require__(/*! ../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nconst _utils = __webpack_require__(/*! ./web/utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _decodequerypathparameter = __webpack_require__(/*! ./lib/decode-query-path-parameter */ \"(rsc)/./node_modules/next/dist/server/lib/decode-query-path-parameter.js\");\nconst _url = __webpack_require__(/*! ../lib/url */ \"(rsc)/./node_modules/next/dist/lib/url.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _parseandvalidateflightrouterstate = __webpack_require__(/*! ./app-render/parse-and-validate-flight-router-state */ \"(rsc)/./node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js\");\nconst _generateinterceptionroutesrewrites = __webpack_require__(/*! ../lib/generate-interception-routes-rewrites */ \"(rsc)/./node_modules/next/dist/lib/generate-interception-routes-rewrites.js\");\nconst _approuterheaders = __webpack_require__(/*! ../client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _computechangedpath = __webpack_require__(/*! ../client/components/router-reducer/compute-changed-path */ \"(rsc)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\");\nfunction filterInternalQuery(query, paramKeys) {\n // this is used to pass query information in rewrites\n // but should not be exposed in final query\n delete query['nextInternalLocale'];\n for(const key in query){\n const isNextQueryPrefix = key !== _constants.NEXT_QUERY_PARAM_PREFIX && key.startsWith(_constants.NEXT_QUERY_PARAM_PREFIX);\n const isNextInterceptionMarkerPrefix = key !== _constants.NEXT_INTERCEPTION_MARKER_PREFIX && key.startsWith(_constants.NEXT_INTERCEPTION_MARKER_PREFIX);\n if (isNextQueryPrefix || isNextInterceptionMarkerPrefix || paramKeys.includes(key)) {\n delete query[key];\n }\n }\n}\nfunction normalizeCdnUrl(req, paramKeys) {\n // make sure to normalize req.url from CDNs to strip dynamic and rewrite\n // params from the query which are added during routing\n const _parsedUrl = (0, _url.parseReqUrl)(req.url);\n // we can't normalize if we can't parse\n if (!_parsedUrl) {\n return req.url;\n }\n delete _parsedUrl.search;\n filterInternalQuery(_parsedUrl.query, paramKeys);\n req.url = (0, _formaturl.formatUrl)(_parsedUrl);\n}\nfunction interpolateDynamicPath(pathname, params, defaultRouteRegex) {\n if (!defaultRouteRegex) return pathname;\n for (const param of Object.keys(defaultRouteRegex.groups)){\n const { optional, repeat } = defaultRouteRegex.groups[param];\n let builtParam = `[${repeat ? '...' : ''}${param}]`;\n if (optional) {\n builtParam = `[${builtParam}]`;\n }\n let paramValue;\n const value = params[param];\n if (Array.isArray(value)) {\n paramValue = value.map((v)=>v && encodeURIComponent(v)).join('/');\n } else if (value) {\n paramValue = encodeURIComponent(value);\n } else {\n paramValue = '';\n }\n if (paramValue || optional) {\n pathname = pathname.replaceAll(builtParam, paramValue);\n }\n }\n return pathname;\n}\nfunction normalizeDynamicRouteParams(query, defaultRouteRegex, defaultRouteMatches, ignoreMissingOptional) {\n let hasValidParams = true;\n let params = {};\n for (const key of Object.keys(defaultRouteRegex.groups)){\n let value = query[key];\n if (typeof value === 'string') {\n value = (0, _apppaths.normalizeRscURL)(value);\n } else if (Array.isArray(value)) {\n value = value.map(_apppaths.normalizeRscURL);\n }\n // if the value matches the default value we can't rely\n // on the parsed params, this is used to signal if we need\n // to parse x-now-route-matches or not\n const defaultValue = defaultRouteMatches[key];\n const isOptional = defaultRouteRegex.groups[key].optional;\n const isDefaultValue = Array.isArray(defaultValue) ? defaultValue.some((defaultVal)=>{\n return Array.isArray(value) ? value.some((val)=>val.includes(defaultVal)) : value == null ? void 0 : value.includes(defaultVal);\n }) : value == null ? void 0 : value.includes(defaultValue);\n if (isDefaultValue || typeof value === 'undefined' && !(isOptional && ignoreMissingOptional)) {\n return {\n params: {},\n hasValidParams: false\n };\n }\n // non-provided optional values should be undefined so normalize\n // them to undefined\n if (isOptional && (!value || Array.isArray(value) && value.length === 1 && // fallback optional catch-all SSG pages have\n // [[...paramName]] for the root path on Vercel\n (value[0] === 'index' || value[0] === `[[...${key}]]`))) {\n value = undefined;\n delete query[key];\n }\n // query values from the proxy aren't already split into arrays\n // so make sure to normalize catch-all values\n if (value && typeof value === 'string' && defaultRouteRegex.groups[key].repeat) {\n value = value.split('/');\n }\n if (value) {\n params[key] = value;\n }\n }\n return {\n params,\n hasValidParams\n };\n}\nfunction getServerUtils({ page, i18n, basePath, rewrites, pageIsDynamic, trailingSlash, caseSensitive }) {\n let defaultRouteRegex;\n let dynamicRouteMatcher;\n let defaultRouteMatches;\n if (pageIsDynamic) {\n defaultRouteRegex = (0, _routeregex.getNamedRouteRegex)(page, {\n prefixRouteKeys: false\n });\n dynamicRouteMatcher = (0, _routematcher.getRouteMatcher)(defaultRouteRegex);\n defaultRouteMatches = dynamicRouteMatcher(page);\n }\n function handleRewrites(req, parsedUrl) {\n const rewriteParams = {};\n let fsPathname = parsedUrl.pathname;\n const matchesPage = ()=>{\n const fsPathnameNoSlash = (0, _removetrailingslash.removeTrailingSlash)(fsPathname || '');\n return fsPathnameNoSlash === (0, _removetrailingslash.removeTrailingSlash)(page) || (dynamicRouteMatcher == null ? void 0 : dynamicRouteMatcher(fsPathnameNoSlash));\n };\n const checkRewrite = (rewrite)=>{\n const matcher = (0, _pathmatch.getPathMatch)(rewrite.source + (trailingSlash ? '(/)?' : ''), {\n removeUnnamedParams: true,\n strict: true,\n sensitive: !!caseSensitive\n });\n if (!parsedUrl.pathname) return false;\n let params = matcher(parsedUrl.pathname);\n if ((rewrite.has || rewrite.missing) && params) {\n const hasParams = (0, _preparedestination.matchHas)(req, parsedUrl.query, rewrite.has, rewrite.missing);\n if (hasParams) {\n Object.assign(params, hasParams);\n } else {\n params = false;\n }\n }\n if (params) {\n try {\n // An interception rewrite might reference a dynamic param for a route the user\n // is currently on, which wouldn't be extractable from the matched route params.\n // This attempts to extract the dynamic params from the provided router state.\n if ((0, _generateinterceptionroutesrewrites.isInterceptionRouteRewrite)(rewrite)) {\n const stateHeader = req.headers[_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER.toLowerCase()];\n if (stateHeader) {\n params = {\n ...(0, _computechangedpath.getSelectedParams)((0, _parseandvalidateflightrouterstate.parseAndValidateFlightRouterState)(stateHeader)),\n ...params\n };\n }\n }\n } catch (err) {\n // this is a no-op -- we couldn't extract dynamic params from the provided router state,\n // so we'll just use the params from the route matcher\n }\n const { parsedDestination, destQuery } = (0, _preparedestination.prepareDestination)({\n appendParamsToQuery: true,\n destination: rewrite.destination,\n params: params,\n query: parsedUrl.query\n });\n // if the rewrite destination is external break rewrite chain\n if (parsedDestination.protocol) {\n return true;\n }\n Object.assign(rewriteParams, destQuery, params);\n Object.assign(parsedUrl.query, parsedDestination.query);\n delete parsedDestination.query;\n // for each property in parsedUrl.query, if the value is parametrized (eg :foo), look up the value\n // in rewriteParams and replace the parametrized value with the actual value\n // this is used when the rewrite destination does not contain the original source param\n // and so the value is still parametrized and needs to be replaced with the actual rewrite param\n Object.entries(parsedUrl.query).forEach(([key, value])=>{\n if (value && typeof value === 'string' && value.startsWith(':')) {\n const paramName = value.slice(1);\n const actualValue = rewriteParams[paramName];\n if (actualValue) {\n parsedUrl.query[key] = actualValue;\n }\n }\n });\n Object.assign(parsedUrl, parsedDestination);\n fsPathname = parsedUrl.pathname;\n if (!fsPathname) return false;\n if (basePath) {\n fsPathname = fsPathname.replace(new RegExp(`^${basePath}`), '') || '/';\n }\n if (i18n) {\n const result = (0, _normalizelocalepath.normalizeLocalePath)(fsPathname, i18n.locales);\n fsPathname = result.pathname;\n parsedUrl.query.nextInternalLocale = result.detectedLocale || params.nextInternalLocale;\n }\n if (fsPathname === page) {\n return true;\n }\n if (pageIsDynamic && dynamicRouteMatcher) {\n const dynamicParams = dynamicRouteMatcher(fsPathname);\n if (dynamicParams) {\n parsedUrl.query = {\n ...parsedUrl.query,\n ...dynamicParams\n };\n return true;\n }\n }\n }\n return false;\n };\n for (const rewrite of rewrites.beforeFiles || []){\n checkRewrite(rewrite);\n }\n if (fsPathname !== page) {\n let finished = false;\n for (const rewrite of rewrites.afterFiles || []){\n finished = checkRewrite(rewrite);\n if (finished) break;\n }\n if (!finished && !matchesPage()) {\n for (const rewrite of rewrites.fallback || []){\n finished = checkRewrite(rewrite);\n if (finished) break;\n }\n }\n }\n return rewriteParams;\n }\n function getParamsFromRouteMatches(routeMatchesHeader) {\n // If we don't have a default route regex, we can't get params from route\n // matches\n if (!defaultRouteRegex) return null;\n const { groups, routeKeys } = defaultRouteRegex;\n const matcher = (0, _routematcher.getRouteMatcher)({\n re: {\n // Simulate a RegExp match from the \\`req.url\\` input\n exec: (str)=>{\n // Normalize all the prefixed query params.\n const obj = Object.fromEntries(new URLSearchParams(str));\n for (const [key, value] of Object.entries(obj)){\n const normalizedKey = (0, _utils.normalizeNextQueryParam)(key);\n if (!normalizedKey) continue;\n obj[normalizedKey] = value;\n delete obj[key];\n }\n // Use all the named route keys.\n const result = {};\n for (const keyName of Object.keys(routeKeys)){\n const paramName = routeKeys[keyName];\n // If this param name is not a valid parameter name, then skip it.\n if (!paramName) continue;\n const group = groups[paramName];\n const value = obj[keyName];\n // When we're missing a required param, we can't match the route.\n if (!group.optional && !value) return null;\n result[group.pos] = value;\n }\n return result;\n }\n },\n groups\n });\n const routeMatches = matcher(routeMatchesHeader);\n if (!routeMatches) return null;\n return routeMatches;\n }\n function normalizeQueryParams(query, routeParamKeys) {\n // this is used to pass query information in rewrites\n // but should not be exposed in final query\n delete query['nextInternalLocale'];\n for (const [key, value] of Object.entries(query)){\n const normalizedKey = (0, _utils.normalizeNextQueryParam)(key);\n if (!normalizedKey) continue;\n // Remove the prefixed key from the query params because we want\n // to consume it for the dynamic route matcher.\n delete query[key];\n routeParamKeys.add(normalizedKey);\n if (typeof value === 'undefined') continue;\n query[normalizedKey] = Array.isArray(value) ? value.map((v)=>(0, _decodequerypathparameter.decodeQueryPathParameter)(v)) : (0, _decodequerypathparameter.decodeQueryPathParameter)(value);\n }\n }\n return {\n handleRewrites,\n defaultRouteRegex,\n dynamicRouteMatcher,\n defaultRouteMatches,\n normalizeQueryParams,\n getParamsFromRouteMatches,\n /**\n * Normalize dynamic route params.\n *\n * @param query - The query params to normalize.\n * @param ignoreMissingOptional - Whether to ignore missing optional params.\n * @returns The normalized params and whether they are valid.\n */ normalizeDynamicRouteParams: (query, ignoreMissingOptional)=>{\n if (!defaultRouteRegex || !defaultRouteMatches) {\n return {\n params: {},\n hasValidParams: false\n };\n }\n return normalizeDynamicRouteParams(query, defaultRouteRegex, defaultRouteMatches, ignoreMissingOptional);\n },\n normalizeCdnUrl: (req, paramKeys)=>normalizeCdnUrl(req, paramKeys),\n interpolateDynamicPath: (pathname, params)=>interpolateDynamicPath(pathname, params, defaultRouteRegex),\n filterInternalQuery: (query, paramKeys)=>filterInternalQuery(query, paramKeys)\n };\n}\nfunction getPreviouslyRevalidatedTags(headers, previewModeId) {\n return typeof headers[_constants.NEXT_CACHE_REVALIDATED_TAGS_HEADER] === 'string' && headers[_constants.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER] === previewModeId ? headers[_constants.NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(',') : [];\n}\n\n//# sourceMappingURL=server-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zZXJ2ZXItdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsNkJBQTZCLG1CQUFPLENBQUMseUhBQTBDO0FBQy9FLG1CQUFtQixtQkFBTyxDQUFDLG1IQUF1QztBQUNsRSxvQkFBb0IsbUJBQU8sQ0FBQyxxSEFBd0M7QUFDcEUsc0JBQXNCLG1CQUFPLENBQUMseUhBQTBDO0FBQ3hFLDRCQUE0QixtQkFBTyxDQUFDLHFJQUFnRDtBQUNwRiw2QkFBNkIsbUJBQU8sQ0FBQyx5SUFBa0Q7QUFDdkYsa0JBQWtCLG1CQUFPLENBQUMsaUhBQXNDO0FBQ2hFLG1CQUFtQixtQkFBTyxDQUFDLHlFQUFrQjtBQUM3QyxlQUFlLG1CQUFPLENBQUMsdUVBQWE7QUFDcEMsa0NBQWtDLG1CQUFPLENBQUMsbUhBQW1DO0FBQzdFLGFBQWEsbUJBQU8sQ0FBQyw2REFBWTtBQUNqQyxtQkFBbUIsbUJBQU8sQ0FBQyxtSEFBdUM7QUFDbEUsMkNBQTJDLG1CQUFPLENBQUMsdUpBQXFEO0FBQ3hHLDRDQUE0QyxtQkFBTyxDQUFDLGlJQUE4QztBQUNsRywwQkFBMEIsbUJBQU8sQ0FBQyx1SEFBeUM7QUFDM0UsNEJBQTRCLG1CQUFPLENBQUMseUpBQTBEO0FBQzlGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtQkFBbUI7QUFDbkMsNkJBQTZCLG9CQUFvQixFQUFFLE1BQU07QUFDekQ7QUFDQSw2QkFBNkIsV0FBVztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRCxJQUFJO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsNkVBQTZFO0FBQ3ZHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLCtCQUErQjtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1FQUFtRSxTQUFTO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zZXJ2ZXItdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBnZXRQcmV2aW91c2x5UmV2YWxpZGF0ZWRUYWdzOiBudWxsLFxuICAgIGdldFNlcnZlclV0aWxzOiBudWxsLFxuICAgIGludGVycG9sYXRlRHluYW1pY1BhdGg6IG51bGwsXG4gICAgbm9ybWFsaXplQ2RuVXJsOiBudWxsLFxuICAgIG5vcm1hbGl6ZUR5bmFtaWNSb3V0ZVBhcmFtczogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBnZXRQcmV2aW91c2x5UmV2YWxpZGF0ZWRUYWdzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFByZXZpb3VzbHlSZXZhbGlkYXRlZFRhZ3M7XG4gICAgfSxcbiAgICBnZXRTZXJ2ZXJVdGlsczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRTZXJ2ZXJVdGlscztcbiAgICB9LFxuICAgIGludGVycG9sYXRlRHluYW1pY1BhdGg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW50ZXJwb2xhdGVEeW5hbWljUGF0aDtcbiAgICB9LFxuICAgIG5vcm1hbGl6ZUNkblVybDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVDZG5Vcmw7XG4gICAgfSxcbiAgICBub3JtYWxpemVEeW5hbWljUm91dGVQYXJhbXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zO1xuICAgIH1cbn0pO1xuY29uc3QgX25vcm1hbGl6ZWxvY2FsZXBhdGggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aFwiKTtcbmNvbnN0IF9wYXRobWF0Y2ggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1tYXRjaFwiKTtcbmNvbnN0IF9yb3V0ZXJlZ2V4ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4XCIpO1xuY29uc3QgX3JvdXRlbWF0Y2hlciA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1tYXRjaGVyXCIpO1xuY29uc3QgX3ByZXBhcmVkZXN0aW5hdGlvbiA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wcmVwYXJlLWRlc3RpbmF0aW9uXCIpO1xuY29uc3QgX3JlbW92ZXRyYWlsaW5nc2xhc2ggPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoXCIpO1xuY29uc3QgX2FwcHBhdGhzID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiKTtcbmNvbnN0IF9jb25zdGFudHMgPSByZXF1aXJlKFwiLi4vbGliL2NvbnN0YW50c1wiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL3dlYi91dGlsc1wiKTtcbmNvbnN0IF9kZWNvZGVxdWVyeXBhdGhwYXJhbWV0ZXIgPSByZXF1aXJlKFwiLi9saWIvZGVjb2RlLXF1ZXJ5LXBhdGgtcGFyYW1ldGVyXCIpO1xuY29uc3QgX3VybCA9IHJlcXVpcmUoXCIuLi9saWIvdXJsXCIpO1xuY29uc3QgX2Zvcm1hdHVybCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsXCIpO1xuY29uc3QgX3BhcnNlYW5kdmFsaWRhdGVmbGlnaHRyb3V0ZXJzdGF0ZSA9IHJlcXVpcmUoXCIuL2FwcC1yZW5kZXIvcGFyc2UtYW5kLXZhbGlkYXRlLWZsaWdodC1yb3V0ZXItc3RhdGVcIik7XG5jb25zdCBfZ2VuZXJhdGVpbnRlcmNlcHRpb25yb3V0ZXNyZXdyaXRlcyA9IHJlcXVpcmUoXCIuLi9saWIvZ2VuZXJhdGUtaW50ZXJjZXB0aW9uLXJvdXRlcy1yZXdyaXRlc1wiKTtcbmNvbnN0IF9hcHByb3V0ZXJoZWFkZXJzID0gcmVxdWlyZShcIi4uL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVyc1wiKTtcbmNvbnN0IF9jb21wdXRlY2hhbmdlZHBhdGggPSByZXF1aXJlKFwiLi4vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY29tcHV0ZS1jaGFuZ2VkLXBhdGhcIik7XG5mdW5jdGlvbiBmaWx0ZXJJbnRlcm5hbFF1ZXJ5KHF1ZXJ5LCBwYXJhbUtleXMpIHtcbiAgICAvLyB0aGlzIGlzIHVzZWQgdG8gcGFzcyBxdWVyeSBpbmZvcm1hdGlvbiBpbiByZXdyaXRlc1xuICAgIC8vIGJ1dCBzaG91bGQgbm90IGJlIGV4cG9zZWQgaW4gZmluYWwgcXVlcnlcbiAgICBkZWxldGUgcXVlcnlbJ25leHRJbnRlcm5hbExvY2FsZSddO1xuICAgIGZvcihjb25zdCBrZXkgaW4gcXVlcnkpe1xuICAgICAgICBjb25zdCBpc05leHRRdWVyeVByZWZpeCA9IGtleSAhPT0gX2NvbnN0YW50cy5ORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCAmJiBrZXkuc3RhcnRzV2l0aChfY29uc3RhbnRzLk5FWFRfUVVFUllfUEFSQU1fUFJFRklYKTtcbiAgICAgICAgY29uc3QgaXNOZXh0SW50ZXJjZXB0aW9uTWFya2VyUHJlZml4ID0ga2V5ICE9PSBfY29uc3RhbnRzLk5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVggJiYga2V5LnN0YXJ0c1dpdGgoX2NvbnN0YW50cy5ORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYKTtcbiAgICAgICAgaWYgKGlzTmV4dFF1ZXJ5UHJlZml4IHx8IGlzTmV4dEludGVyY2VwdGlvbk1hcmtlclByZWZpeCB8fCBwYXJhbUtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5W2tleV07XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBub3JtYWxpemVDZG5VcmwocmVxLCBwYXJhbUtleXMpIHtcbiAgICAvLyBtYWtlIHN1cmUgdG8gbm9ybWFsaXplIHJlcS51cmwgZnJvbSBDRE5zIHRvIHN0cmlwIGR5bmFtaWMgYW5kIHJld3JpdGVcbiAgICAvLyBwYXJhbXMgZnJvbSB0aGUgcXVlcnkgd2hpY2ggYXJlIGFkZGVkIGR1cmluZyByb3V0aW5nXG4gICAgY29uc3QgX3BhcnNlZFVybCA9ICgwLCBfdXJsLnBhcnNlUmVxVXJsKShyZXEudXJsKTtcbiAgICAvLyB3ZSBjYW4ndCBub3JtYWxpemUgaWYgd2UgY2FuJ3QgcGFyc2VcbiAgICBpZiAoIV9wYXJzZWRVcmwpIHtcbiAgICAgICAgcmV0dXJuIHJlcS51cmw7XG4gICAgfVxuICAgIGRlbGV0ZSBfcGFyc2VkVXJsLnNlYXJjaDtcbiAgICBmaWx0ZXJJbnRlcm5hbFF1ZXJ5KF9wYXJzZWRVcmwucXVlcnksIHBhcmFtS2V5cyk7XG4gICAgcmVxLnVybCA9ICgwLCBfZm9ybWF0dXJsLmZvcm1hdFVybCkoX3BhcnNlZFVybCk7XG59XG5mdW5jdGlvbiBpbnRlcnBvbGF0ZUR5bmFtaWNQYXRoKHBhdGhuYW1lLCBwYXJhbXMsIGRlZmF1bHRSb3V0ZVJlZ2V4KSB7XG4gICAgaWYgKCFkZWZhdWx0Um91dGVSZWdleCkgcmV0dXJuIHBhdGhuYW1lO1xuICAgIGZvciAoY29uc3QgcGFyYW0gb2YgT2JqZWN0LmtleXMoZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzKSl7XG4gICAgICAgIGNvbnN0IHsgb3B0aW9uYWwsIHJlcGVhdCB9ID0gZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzW3BhcmFtXTtcbiAgICAgICAgbGV0IGJ1aWx0UGFyYW0gPSBgWyR7cmVwZWF0ID8gJy4uLicgOiAnJ30ke3BhcmFtfV1gO1xuICAgICAgICBpZiAob3B0aW9uYWwpIHtcbiAgICAgICAgICAgIGJ1aWx0UGFyYW0gPSBgWyR7YnVpbHRQYXJhbX1dYDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFyYW1WYWx1ZTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNbcGFyYW1dO1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHBhcmFtVmFsdWUgPSB2YWx1ZS5tYXAoKHYpPT52ICYmIGVuY29kZVVSSUNvbXBvbmVudCh2KSkuam9pbignLycpO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBwYXJhbVZhbHVlID0gZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcmFtVmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFyYW1WYWx1ZSB8fCBvcHRpb25hbCkge1xuICAgICAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlQWxsKGJ1aWx0UGFyYW0sIHBhcmFtVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXRobmFtZTtcbn1cbmZ1bmN0aW9uIG5vcm1hbGl6ZUR5bmFtaWNSb3V0ZVBhcmFtcyhxdWVyeSwgZGVmYXVsdFJvdXRlUmVnZXgsIGRlZmF1bHRSb3V0ZU1hdGNoZXMsIGlnbm9yZU1pc3NpbmdPcHRpb25hbCkge1xuICAgIGxldCBoYXNWYWxpZFBhcmFtcyA9IHRydWU7XG4gICAgbGV0IHBhcmFtcyA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRlZmF1bHRSb3V0ZVJlZ2V4Lmdyb3Vwcykpe1xuICAgICAgICBsZXQgdmFsdWUgPSBxdWVyeVtrZXldO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdmFsdWUgPSAoMCwgX2FwcHBhdGhzLm5vcm1hbGl6ZVJzY1VSTCkodmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLm1hcChfYXBwcGF0aHMubm9ybWFsaXplUnNjVVJMKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiB0aGUgdmFsdWUgbWF0Y2hlcyB0aGUgZGVmYXVsdCB2YWx1ZSB3ZSBjYW4ndCByZWx5XG4gICAgICAgIC8vIG9uIHRoZSBwYXJzZWQgcGFyYW1zLCB0aGlzIGlzIHVzZWQgdG8gc2lnbmFsIGlmIHdlIG5lZWRcbiAgICAgICAgLy8gdG8gcGFyc2UgeC1ub3ctcm91dGUtbWF0Y2hlcyBvciBub3RcbiAgICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gZGVmYXVsdFJvdXRlTWF0Y2hlc1trZXldO1xuICAgICAgICBjb25zdCBpc09wdGlvbmFsID0gZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzW2tleV0ub3B0aW9uYWw7XG4gICAgICAgIGNvbnN0IGlzRGVmYXVsdFZhbHVlID0gQXJyYXkuaXNBcnJheShkZWZhdWx0VmFsdWUpID8gZGVmYXVsdFZhbHVlLnNvbWUoKGRlZmF1bHRWYWwpPT57XG4gICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5zb21lKCh2YWwpPT52YWwuaW5jbHVkZXMoZGVmYXVsdFZhbCkpIDogdmFsdWUgPT0gbnVsbCA/IHZvaWQgMCA6IHZhbHVlLmluY2x1ZGVzKGRlZmF1bHRWYWwpO1xuICAgICAgICB9KSA6IHZhbHVlID09IG51bGwgPyB2b2lkIDAgOiB2YWx1ZS5pbmNsdWRlcyhkZWZhdWx0VmFsdWUpO1xuICAgICAgICBpZiAoaXNEZWZhdWx0VmFsdWUgfHwgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyAmJiAhKGlzT3B0aW9uYWwgJiYgaWdub3JlTWlzc2luZ09wdGlvbmFsKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHt9LFxuICAgICAgICAgICAgICAgIGhhc1ZhbGlkUGFyYW1zOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBub24tcHJvdmlkZWQgb3B0aW9uYWwgdmFsdWVzIHNob3VsZCBiZSB1bmRlZmluZWQgc28gbm9ybWFsaXplXG4gICAgICAgIC8vIHRoZW0gdG8gdW5kZWZpbmVkXG4gICAgICAgIGlmIChpc09wdGlvbmFsICYmICghdmFsdWUgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAxICYmIC8vIGZhbGxiYWNrIG9wdGlvbmFsIGNhdGNoLWFsbCBTU0cgcGFnZXMgaGF2ZVxuICAgICAgICAvLyBbWy4uLnBhcmFtTmFtZV1dIGZvciB0aGUgcm9vdCBwYXRoIG9uIFZlcmNlbFxuICAgICAgICAodmFsdWVbMF0gPT09ICdpbmRleCcgfHwgdmFsdWVbMF0gPT09IGBbWy4uLiR7a2V5fV1dYCkpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGRlbGV0ZSBxdWVyeVtrZXldO1xuICAgICAgICB9XG4gICAgICAgIC8vIHF1ZXJ5IHZhbHVlcyBmcm9tIHRoZSBwcm94eSBhcmVuJ3QgYWxyZWFkeSBzcGxpdCBpbnRvIGFycmF5c1xuICAgICAgICAvLyBzbyBtYWtlIHN1cmUgdG8gbm9ybWFsaXplIGNhdGNoLWFsbCB2YWx1ZXNcbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgZGVmYXVsdFJvdXRlUmVnZXguZ3JvdXBzW2tleV0ucmVwZWF0KSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCcvJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBwYXJhbXNba2V5XSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgaGFzVmFsaWRQYXJhbXNcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0U2VydmVyVXRpbHMoeyBwYWdlLCBpMThuLCBiYXNlUGF0aCwgcmV3cml0ZXMsIHBhZ2VJc0R5bmFtaWMsIHRyYWlsaW5nU2xhc2gsIGNhc2VTZW5zaXRpdmUgfSkge1xuICAgIGxldCBkZWZhdWx0Um91dGVSZWdleDtcbiAgICBsZXQgZHluYW1pY1JvdXRlTWF0Y2hlcjtcbiAgICBsZXQgZGVmYXVsdFJvdXRlTWF0Y2hlcztcbiAgICBpZiAocGFnZUlzRHluYW1pYykge1xuICAgICAgICBkZWZhdWx0Um91dGVSZWdleCA9ICgwLCBfcm91dGVyZWdleC5nZXROYW1lZFJvdXRlUmVnZXgpKHBhZ2UsIHtcbiAgICAgICAgICAgIHByZWZpeFJvdXRlS2V5czogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGR5bmFtaWNSb3V0ZU1hdGNoZXIgPSAoMCwgX3JvdXRlbWF0Y2hlci5nZXRSb3V0ZU1hdGNoZXIpKGRlZmF1bHRSb3V0ZVJlZ2V4KTtcbiAgICAgICAgZGVmYXVsdFJvdXRlTWF0Y2hlcyA9IGR5bmFtaWNSb3V0ZU1hdGNoZXIocGFnZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZVJld3JpdGVzKHJlcSwgcGFyc2VkVXJsKSB7XG4gICAgICAgIGNvbnN0IHJld3JpdGVQYXJhbXMgPSB7fTtcbiAgICAgICAgbGV0IGZzUGF0aG5hbWUgPSBwYXJzZWRVcmwucGF0aG5hbWU7XG4gICAgICAgIGNvbnN0IG1hdGNoZXNQYWdlID0gKCk9PntcbiAgICAgICAgICAgIGNvbnN0IGZzUGF0aG5hbWVOb1NsYXNoID0gKDAsIF9yZW1vdmV0cmFpbGluZ3NsYXNoLnJlbW92ZVRyYWlsaW5nU2xhc2gpKGZzUGF0aG5hbWUgfHwgJycpO1xuICAgICAgICAgICAgcmV0dXJuIGZzUGF0aG5hbWVOb1NsYXNoID09PSAoMCwgX3JlbW92ZXRyYWlsaW5nc2xhc2gucmVtb3ZlVHJhaWxpbmdTbGFzaCkocGFnZSkgfHwgKGR5bmFtaWNSb3V0ZU1hdGNoZXIgPT0gbnVsbCA/IHZvaWQgMCA6IGR5bmFtaWNSb3V0ZU1hdGNoZXIoZnNQYXRobmFtZU5vU2xhc2gpKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY2hlY2tSZXdyaXRlID0gKHJld3JpdGUpPT57XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVyID0gKDAsIF9wYXRobWF0Y2guZ2V0UGF0aE1hdGNoKShyZXdyaXRlLnNvdXJjZSArICh0cmFpbGluZ1NsYXNoID8gJygvKT8nIDogJycpLCB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlVW5uYW1lZFBhcmFtczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICAgICAgICAgICAgc2Vuc2l0aXZlOiAhIWNhc2VTZW5zaXRpdmVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKCFwYXJzZWRVcmwucGF0aG5hbWUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGxldCBwYXJhbXMgPSBtYXRjaGVyKHBhcnNlZFVybC5wYXRobmFtZSk7XG4gICAgICAgICAgICBpZiAoKHJld3JpdGUuaGFzIHx8IHJld3JpdGUubWlzc2luZykgJiYgcGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzUGFyYW1zID0gKDAsIF9wcmVwYXJlZGVzdGluYXRpb24ubWF0Y2hIYXMpKHJlcSwgcGFyc2VkVXJsLnF1ZXJ5LCByZXdyaXRlLmhhcywgcmV3cml0ZS5taXNzaW5nKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzUGFyYW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCBoYXNQYXJhbXMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJhbXMpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAvLyBBbiBpbnRlcmNlcHRpb24gcmV3cml0ZSBtaWdodCByZWZlcmVuY2UgYSBkeW5hbWljIHBhcmFtIGZvciBhIHJvdXRlIHRoZSB1c2VyXG4gICAgICAgICAgICAgICAgICAgIC8vIGlzIGN1cnJlbnRseSBvbiwgd2hpY2ggd291bGRuJ3QgYmUgZXh0cmFjdGFibGUgZnJvbSB0aGUgbWF0Y2hlZCByb3V0ZSBwYXJhbXMuXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgYXR0ZW1wdHMgdG8gZXh0cmFjdCB0aGUgZHluYW1pYyBwYXJhbXMgZnJvbSB0aGUgcHJvdmlkZWQgcm91dGVyIHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICBpZiAoKDAsIF9nZW5lcmF0ZWludGVyY2VwdGlvbnJvdXRlc3Jld3JpdGVzLmlzSW50ZXJjZXB0aW9uUm91dGVSZXdyaXRlKShyZXdyaXRlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdGVIZWFkZXIgPSByZXEuaGVhZGVyc1tfYXBwcm91dGVyaGVhZGVycy5ORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUi50b0xvd2VyQ2FzZSgpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZUhlYWRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKDAsIF9jb21wdXRlY2hhbmdlZHBhdGguZ2V0U2VsZWN0ZWRQYXJhbXMpKCgwLCBfcGFyc2VhbmR2YWxpZGF0ZWZsaWdodHJvdXRlcnN0YXRlLnBhcnNlQW5kVmFsaWRhdGVGbGlnaHRSb3V0ZXJTdGF0ZSkoc3RhdGVIZWFkZXIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucGFyYW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBuby1vcCAtLSB3ZSBjb3VsZG4ndCBleHRyYWN0IGR5bmFtaWMgcGFyYW1zIGZyb20gdGhlIHByb3ZpZGVkIHJvdXRlciBzdGF0ZSxcbiAgICAgICAgICAgICAgICAvLyBzbyB3ZSdsbCBqdXN0IHVzZSB0aGUgcGFyYW1zIGZyb20gdGhlIHJvdXRlIG1hdGNoZXJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBwYXJzZWREZXN0aW5hdGlvbiwgZGVzdFF1ZXJ5IH0gPSAoMCwgX3ByZXBhcmVkZXN0aW5hdGlvbi5wcmVwYXJlRGVzdGluYXRpb24pKHtcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kUGFyYW1zVG9RdWVyeTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb246IHJld3JpdGUuZGVzdGluYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICBxdWVyeTogcGFyc2VkVXJsLnF1ZXJ5XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIHJld3JpdGUgZGVzdGluYXRpb24gaXMgZXh0ZXJuYWwgYnJlYWsgcmV3cml0ZSBjaGFpblxuICAgICAgICAgICAgICAgIGlmIChwYXJzZWREZXN0aW5hdGlvbi5wcm90b2NvbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihyZXdyaXRlUGFyYW1zLCBkZXN0UXVlcnksIHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJzZWRVcmwucXVlcnksIHBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5KTtcbiAgICAgICAgICAgICAgICBkZWxldGUgcGFyc2VkRGVzdGluYXRpb24ucXVlcnk7XG4gICAgICAgICAgICAgICAgLy8gZm9yIGVhY2ggcHJvcGVydHkgaW4gcGFyc2VkVXJsLnF1ZXJ5LCBpZiB0aGUgdmFsdWUgaXMgcGFyYW1ldHJpemVkIChlZyA6Zm9vKSwgbG9vayB1cCB0aGUgdmFsdWVcbiAgICAgICAgICAgICAgICAvLyBpbiByZXdyaXRlUGFyYW1zIGFuZCByZXBsYWNlIHRoZSBwYXJhbWV0cml6ZWQgdmFsdWUgd2l0aCB0aGUgYWN0dWFsIHZhbHVlXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB1c2VkIHdoZW4gdGhlIHJld3JpdGUgZGVzdGluYXRpb24gZG9lcyBub3QgY29udGFpbiB0aGUgb3JpZ2luYWwgc291cmNlIHBhcmFtXG4gICAgICAgICAgICAgICAgLy8gYW5kIHNvIHRoZSB2YWx1ZSBpcyBzdGlsbCBwYXJhbWV0cml6ZWQgYW5kIG5lZWRzIHRvIGJlIHJlcGxhY2VkIHdpdGggdGhlIGFjdHVhbCByZXdyaXRlIHBhcmFtXG4gICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocGFyc2VkVXJsLnF1ZXJ5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pPT57XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnN0YXJ0c1dpdGgoJzonKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1OYW1lID0gdmFsdWUuc2xpY2UoMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWxWYWx1ZSA9IHJld3JpdGVQYXJhbXNbcGFyYW1OYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY3R1YWxWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFVybC5xdWVyeVtrZXldID0gYWN0dWFsVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcnNlZFVybCwgcGFyc2VkRGVzdGluYXRpb24pO1xuICAgICAgICAgICAgICAgIGZzUGF0aG5hbWUgPSBwYXJzZWRVcmwucGF0aG5hbWU7XG4gICAgICAgICAgICAgICAgaWYgKCFmc1BhdGhuYW1lKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKGJhc2VQYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZzUGF0aG5hbWUgPSBmc1BhdGhuYW1lLnJlcGxhY2UobmV3IFJlZ0V4cChgXiR7YmFzZVBhdGh9YCksICcnKSB8fCAnLyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpMThuKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9ICgwLCBfbm9ybWFsaXplbG9jYWxlcGF0aC5ub3JtYWxpemVMb2NhbGVQYXRoKShmc1BhdGhuYW1lLCBpMThuLmxvY2FsZXMpO1xuICAgICAgICAgICAgICAgICAgICBmc1BhdGhuYW1lID0gcmVzdWx0LnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWRVcmwucXVlcnkubmV4dEludGVybmFsTG9jYWxlID0gcmVzdWx0LmRldGVjdGVkTG9jYWxlIHx8IHBhcmFtcy5uZXh0SW50ZXJuYWxMb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChmc1BhdGhuYW1lID09PSBwYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocGFnZUlzRHluYW1pYyAmJiBkeW5hbWljUm91dGVNYXRjaGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGR5bmFtaWNQYXJhbXMgPSBkeW5hbWljUm91dGVNYXRjaGVyKGZzUGF0aG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZHluYW1pY1BhcmFtcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkVXJsLnF1ZXJ5ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnBhcnNlZFVybC5xdWVyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5keW5hbWljUGFyYW1zXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgcmV3cml0ZSBvZiByZXdyaXRlcy5iZWZvcmVGaWxlcyB8fCBbXSl7XG4gICAgICAgICAgICBjaGVja1Jld3JpdGUocmV3cml0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZzUGF0aG5hbWUgIT09IHBhZ2UpIHtcbiAgICAgICAgICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlO1xuICAgICAgICAgICAgZm9yIChjb25zdCByZXdyaXRlIG9mIHJld3JpdGVzLmFmdGVyRmlsZXMgfHwgW10pe1xuICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gY2hlY2tSZXdyaXRlKHJld3JpdGUpO1xuICAgICAgICAgICAgICAgIGlmIChmaW5pc2hlZCkgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWZpbmlzaGVkICYmICFtYXRjaGVzUGFnZSgpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZXdyaXRlIG9mIHJld3JpdGVzLmZhbGxiYWNrIHx8IFtdKXtcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWQgPSBjaGVja1Jld3JpdGUocmV3cml0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaW5pc2hlZCkgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXdyaXRlUGFyYW1zO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRQYXJhbXNGcm9tUm91dGVNYXRjaGVzKHJvdXRlTWF0Y2hlc0hlYWRlcikge1xuICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgZGVmYXVsdCByb3V0ZSByZWdleCwgd2UgY2FuJ3QgZ2V0IHBhcmFtcyBmcm9tIHJvdXRlXG4gICAgICAgIC8vIG1hdGNoZXNcbiAgICAgICAgaWYgKCFkZWZhdWx0Um91dGVSZWdleCkgcmV0dXJuIG51bGw7XG4gICAgICAgIGNvbnN0IHsgZ3JvdXBzLCByb3V0ZUtleXMgfSA9IGRlZmF1bHRSb3V0ZVJlZ2V4O1xuICAgICAgICBjb25zdCBtYXRjaGVyID0gKDAsIF9yb3V0ZW1hdGNoZXIuZ2V0Um91dGVNYXRjaGVyKSh7XG4gICAgICAgICAgICByZToge1xuICAgICAgICAgICAgICAgIC8vIFNpbXVsYXRlIGEgUmVnRXhwIG1hdGNoIGZyb20gdGhlIFxcYHJlcS51cmxcXGAgaW5wdXRcbiAgICAgICAgICAgICAgICBleGVjOiAoc3RyKT0+e1xuICAgICAgICAgICAgICAgICAgICAvLyBOb3JtYWxpemUgYWxsIHRoZSBwcmVmaXhlZCBxdWVyeSBwYXJhbXMuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IE9iamVjdC5mcm9tRW50cmllcyhuZXcgVVJMU2VhcmNoUGFyYW1zKHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvYmopKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRLZXkgPSAoMCwgX3V0aWxzLm5vcm1hbGl6ZU5leHRRdWVyeVBhcmFtKShrZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFub3JtYWxpemVkS2V5KSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ialtub3JtYWxpemVkS2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG9ialtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIFVzZSBhbGwgdGhlIG5hbWVkIHJvdXRlIGtleXMuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleU5hbWUgb2YgT2JqZWN0LmtleXMocm91dGVLZXlzKSl7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbU5hbWUgPSByb3V0ZUtleXNba2V5TmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIHBhcmFtIG5hbWUgaXMgbm90IGEgdmFsaWQgcGFyYW1ldGVyIG5hbWUsIHRoZW4gc2tpcCBpdC5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFyYW1OYW1lKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gZ3JvdXBzW3BhcmFtTmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG9ialtrZXlOYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UncmUgbWlzc2luZyBhIHJlcXVpcmVkIHBhcmFtLCB3ZSBjYW4ndCBtYXRjaCB0aGUgcm91dGUuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdyb3VwLm9wdGlvbmFsICYmICF2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbZ3JvdXAucG9zXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdyb3Vwc1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgcm91dGVNYXRjaGVzID0gbWF0Y2hlcihyb3V0ZU1hdGNoZXNIZWFkZXIpO1xuICAgICAgICBpZiAoIXJvdXRlTWF0Y2hlcykgcmV0dXJuIG51bGw7XG4gICAgICAgIHJldHVybiByb3V0ZU1hdGNoZXM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVF1ZXJ5UGFyYW1zKHF1ZXJ5LCByb3V0ZVBhcmFtS2V5cykge1xuICAgICAgICAvLyB0aGlzIGlzIHVzZWQgdG8gcGFzcyBxdWVyeSBpbmZvcm1hdGlvbiBpbiByZXdyaXRlc1xuICAgICAgICAvLyBidXQgc2hvdWxkIG5vdCBiZSBleHBvc2VkIGluIGZpbmFsIHF1ZXJ5XG4gICAgICAgIGRlbGV0ZSBxdWVyeVsnbmV4dEludGVybmFsTG9jYWxlJ107XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHF1ZXJ5KSl7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkS2V5ID0gKDAsIF91dGlscy5ub3JtYWxpemVOZXh0UXVlcnlQYXJhbSkoa2V5KTtcbiAgICAgICAgICAgIGlmICghbm9ybWFsaXplZEtleSkgY29udGludWU7XG4gICAgICAgICAgICAvLyBSZW1vdmUgdGhlIHByZWZpeGVkIGtleSBmcm9tIHRoZSBxdWVyeSBwYXJhbXMgYmVjYXVzZSB3ZSB3YW50XG4gICAgICAgICAgICAvLyB0byBjb25zdW1lIGl0IGZvciB0aGUgZHluYW1pYyByb3V0ZSBtYXRjaGVyLlxuICAgICAgICAgICAgZGVsZXRlIHF1ZXJ5W2tleV07XG4gICAgICAgICAgICByb3V0ZVBhcmFtS2V5cy5hZGQobm9ybWFsaXplZEtleSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgY29udGludWU7XG4gICAgICAgICAgICBxdWVyeVtub3JtYWxpemVkS2V5XSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUubWFwKCh2KT0+KDAsIF9kZWNvZGVxdWVyeXBhdGhwYXJhbWV0ZXIuZGVjb2RlUXVlcnlQYXRoUGFyYW1ldGVyKSh2KSkgOiAoMCwgX2RlY29kZXF1ZXJ5cGF0aHBhcmFtZXRlci5kZWNvZGVRdWVyeVBhdGhQYXJhbWV0ZXIpKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBoYW5kbGVSZXdyaXRlcyxcbiAgICAgICAgZGVmYXVsdFJvdXRlUmVnZXgsXG4gICAgICAgIGR5bmFtaWNSb3V0ZU1hdGNoZXIsXG4gICAgICAgIGRlZmF1bHRSb3V0ZU1hdGNoZXMsXG4gICAgICAgIG5vcm1hbGl6ZVF1ZXJ5UGFyYW1zLFxuICAgICAgICBnZXRQYXJhbXNGcm9tUm91dGVNYXRjaGVzLFxuICAgICAgICAvKipcbiAgICAgKiBOb3JtYWxpemUgZHluYW1pYyByb3V0ZSBwYXJhbXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcXVlcnkgLSBUaGUgcXVlcnkgcGFyYW1zIHRvIG5vcm1hbGl6ZS5cbiAgICAgKiBAcGFyYW0gaWdub3JlTWlzc2luZ09wdGlvbmFsIC0gV2hldGhlciB0byBpZ25vcmUgbWlzc2luZyBvcHRpb25hbCBwYXJhbXMuXG4gICAgICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGFyYW1zIGFuZCB3aGV0aGVyIHRoZXkgYXJlIHZhbGlkLlxuICAgICAqLyBub3JtYWxpemVEeW5hbWljUm91dGVQYXJhbXM6IChxdWVyeSwgaWdub3JlTWlzc2luZ09wdGlvbmFsKT0+e1xuICAgICAgICAgICAgaWYgKCFkZWZhdWx0Um91dGVSZWdleCB8fCAhZGVmYXVsdFJvdXRlTWF0Y2hlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge30sXG4gICAgICAgICAgICAgICAgICAgIGhhc1ZhbGlkUGFyYW1zOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplRHluYW1pY1JvdXRlUGFyYW1zKHF1ZXJ5LCBkZWZhdWx0Um91dGVSZWdleCwgZGVmYXVsdFJvdXRlTWF0Y2hlcywgaWdub3JlTWlzc2luZ09wdGlvbmFsKTtcbiAgICAgICAgfSxcbiAgICAgICAgbm9ybWFsaXplQ2RuVXJsOiAocmVxLCBwYXJhbUtleXMpPT5ub3JtYWxpemVDZG5VcmwocmVxLCBwYXJhbUtleXMpLFxuICAgICAgICBpbnRlcnBvbGF0ZUR5bmFtaWNQYXRoOiAocGF0aG5hbWUsIHBhcmFtcyk9PmludGVycG9sYXRlRHluYW1pY1BhdGgocGF0aG5hbWUsIHBhcmFtcywgZGVmYXVsdFJvdXRlUmVnZXgpLFxuICAgICAgICBmaWx0ZXJJbnRlcm5hbFF1ZXJ5OiAocXVlcnksIHBhcmFtS2V5cyk9PmZpbHRlckludGVybmFsUXVlcnkocXVlcnksIHBhcmFtS2V5cylcbiAgICB9O1xufVxuZnVuY3Rpb24gZ2V0UHJldmlvdXNseVJldmFsaWRhdGVkVGFncyhoZWFkZXJzLCBwcmV2aWV3TW9kZUlkKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBoZWFkZXJzW19jb25zdGFudHMuTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUl0gPT09ICdzdHJpbmcnICYmIGhlYWRlcnNbX2NvbnN0YW50cy5ORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUl0gPT09IHByZXZpZXdNb2RlSWQgPyBoZWFkZXJzW19jb25zdGFudHMuTkVYVF9DQUNIRV9SRVZBTElEQVRFRF9UQUdTX0hFQURFUl0uc3BsaXQoJywnKSA6IFtdO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXItdXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/server-utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/stream-utils/encoded-tags.js":
/*!********************************************************************!*\
!*** ./node_modules/next/dist/server/stream-utils/encoded-tags.js ***!
\********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ENCODED_TAGS\", ({\n enumerable: true,\n get: function() {\n return ENCODED_TAGS;\n }\n}));\nconst ENCODED_TAGS = {\n // opening tags do not have the closing `>` since they can contain other attributes such as `<body className=''>`\n OPENING: {\n // <html\n HTML: new Uint8Array([\n 60,\n 104,\n 116,\n 109,\n 108\n ]),\n // <body\n BODY: new Uint8Array([\n 60,\n 98,\n 111,\n 100,\n 121\n ])\n },\n CLOSED: {\n // </head>\n HEAD: new Uint8Array([\n 60,\n 47,\n 104,\n 101,\n 97,\n 100,\n 62\n ]),\n // </body>\n BODY: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62\n ]),\n // </html>\n HTML: new Uint8Array([\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ]),\n // </body></html>\n BODY_AND_HTML: new Uint8Array([\n 60,\n 47,\n 98,\n 111,\n 100,\n 121,\n 62,\n 60,\n 47,\n 104,\n 116,\n 109,\n 108,\n 62\n ])\n },\n META: {\n // Only the match the prefix cause the suffix can be different wether it's xml compatible or not \">\" or \"/>\"\n // <meta name=\"«nxt-icon»\"\n // This is a special mark that will be replaced by the icon insertion script tag.\n ICON_MARK: new Uint8Array([\n 60,\n 109,\n 101,\n 116,\n 97,\n 32,\n 110,\n 97,\n 109,\n 101,\n 61,\n 34,\n 194,\n 171,\n 110,\n 120,\n 116,\n 45,\n 105,\n 99,\n 111,\n 110,\n 194,\n 187,\n 34\n ])\n }\n};\n\n//# sourceMappingURL=encoded-tags.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvZW5jb2RlZC10YWdzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZ0RBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvc3RyZWFtLXV0aWxzL2VuY29kZWQtdGFncy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkVOQ09ERURfVEFHU1wiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRU5DT0RFRF9UQUdTO1xuICAgIH1cbn0pO1xuY29uc3QgRU5DT0RFRF9UQUdTID0ge1xuICAgIC8vIG9wZW5pbmcgdGFncyBkbyBub3QgaGF2ZSB0aGUgY2xvc2luZyBgPmAgc2luY2UgdGhleSBjYW4gY29udGFpbiBvdGhlciBhdHRyaWJ1dGVzIHN1Y2ggYXMgYDxib2R5IGNsYXNzTmFtZT0nJz5gXG4gICAgT1BFTklORzoge1xuICAgICAgICAvLyA8aHRtbFxuICAgICAgICBIVE1MOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDEwNCxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgIDEwOFxuICAgICAgICBdKSxcbiAgICAgICAgLy8gPGJvZHlcbiAgICAgICAgQk9EWTogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA5OCxcbiAgICAgICAgICAgIDExMSxcbiAgICAgICAgICAgIDEwMCxcbiAgICAgICAgICAgIDEyMVxuICAgICAgICBdKVxuICAgIH0sXG4gICAgQ0xPU0VEOiB7XG4gICAgICAgIC8vIDwvaGVhZD5cbiAgICAgICAgSEVBRDogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDEwNCxcbiAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgIDk3LFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgNjJcbiAgICAgICAgXSksXG4gICAgICAgIC8vIDwvYm9keT5cbiAgICAgICAgQk9EWTogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDk4LFxuICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgMTAwLFxuICAgICAgICAgICAgMTIxLFxuICAgICAgICAgICAgNjJcbiAgICAgICAgXSksXG4gICAgICAgIC8vIDwvaHRtbD5cbiAgICAgICAgSFRNTDogbmV3IFVpbnQ4QXJyYXkoW1xuICAgICAgICAgICAgNjAsXG4gICAgICAgICAgICA0NyxcbiAgICAgICAgICAgIDEwNCxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgIDEwOCxcbiAgICAgICAgICAgIDYyXG4gICAgICAgIF0pLFxuICAgICAgICAvLyA8L2JvZHk+PC9odG1sPlxuICAgICAgICBCT0RZX0FORF9IVE1MOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDQ3LFxuICAgICAgICAgICAgOTgsXG4gICAgICAgICAgICAxMTEsXG4gICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICAxMjEsXG4gICAgICAgICAgICA2MixcbiAgICAgICAgICAgIDYwLFxuICAgICAgICAgICAgNDcsXG4gICAgICAgICAgICAxMDQsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICAxMDksXG4gICAgICAgICAgICAxMDgsXG4gICAgICAgICAgICA2MlxuICAgICAgICBdKVxuICAgIH0sXG4gICAgTUVUQToge1xuICAgICAgICAvLyBPbmx5IHRoZSBtYXRjaCB0aGUgcHJlZml4IGNhdXNlIHRoZSBzdWZmaXggY2FuIGJlIGRpZmZlcmVudCB3ZXRoZXIgaXQncyB4bWwgY29tcGF0aWJsZSBvciBub3QgXCI+XCIgb3IgXCIvPlwiXG4gICAgICAgIC8vIDxtZXRhIG5hbWU9XCLCq254dC1pY29uwrtcIlxuICAgICAgICAvLyBUaGlzIGlzIGEgc3BlY2lhbCBtYXJrIHRoYXQgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgaWNvbiBpbnNlcnRpb24gc2NyaXB0IHRhZy5cbiAgICAgICAgSUNPTl9NQVJLOiBuZXcgVWludDhBcnJheShbXG4gICAgICAgICAgICA2MCxcbiAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgIDExNixcbiAgICAgICAgICAgIDk3LFxuICAgICAgICAgICAgMzIsXG4gICAgICAgICAgICAxMTAsXG4gICAgICAgICAgICA5NyxcbiAgICAgICAgICAgIDEwOSxcbiAgICAgICAgICAgIDEwMSxcbiAgICAgICAgICAgIDYxLFxuICAgICAgICAgICAgMzQsXG4gICAgICAgICAgICAxOTQsXG4gICAgICAgICAgICAxNzEsXG4gICAgICAgICAgICAxMTAsXG4gICAgICAgICAgICAxMjAsXG4gICAgICAgICAgICAxMTYsXG4gICAgICAgICAgICA0NSxcbiAgICAgICAgICAgIDEwNSxcbiAgICAgICAgICAgIDk5LFxuICAgICAgICAgICAgMTExLFxuICAgICAgICAgICAgMTEwLFxuICAgICAgICAgICAgMTk0LFxuICAgICAgICAgICAgMTg3LFxuICAgICAgICAgICAgMzRcbiAgICAgICAgXSlcbiAgICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1lbmNvZGVkLXRhZ3MuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js":
/*!*******************************************************************************!*\
!*** ./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js ***!
\*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n chainStreams: function() {\n return chainStreams;\n },\n continueDynamicHTMLResume: function() {\n return continueDynamicHTMLResume;\n },\n continueDynamicPrerender: function() {\n return continueDynamicPrerender;\n },\n continueFizzStream: function() {\n return continueFizzStream;\n },\n continueStaticPrerender: function() {\n return continueStaticPrerender;\n },\n createBufferedTransformStream: function() {\n return createBufferedTransformStream;\n },\n createDocumentClosingStream: function() {\n return createDocumentClosingStream;\n },\n createRootLayoutValidatorStream: function() {\n return createRootLayoutValidatorStream;\n },\n renderToInitialFizzStream: function() {\n return renderToInitialFizzStream;\n },\n streamFromBuffer: function() {\n return streamFromBuffer;\n },\n streamFromString: function() {\n return streamFromString;\n },\n streamToBuffer: function() {\n return streamToBuffer;\n },\n streamToString: function() {\n return streamToString;\n }\n});\nconst _tracer = __webpack_require__(/*! ../lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _constants = __webpack_require__(/*! ../lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _detachedpromise = __webpack_require__(/*! ../../lib/detached-promise */ \"(rsc)/./node_modules/next/dist/lib/detached-promise.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _encodedtags = __webpack_require__(/*! ./encoded-tags */ \"(rsc)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\");\nconst _uint8arrayhelpers = __webpack_require__(/*! ./uint8array-helpers */ \"(rsc)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\");\nconst _constants1 = __webpack_require__(/*! ../../shared/lib/errors/constants */ \"(rsc)/./node_modules/next/dist/shared/lib/errors/constants.js\");\nconst _outputexportprefetchencoding = __webpack_require__(/*! ../../shared/lib/segment-cache/output-export-prefetch-encoding */ \"(rsc)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\");\nfunction voidCatch() {\n// this catcher is designed to be used with pipeTo where we expect the underlying\n// pipe implementation to forward errors but we don't want the pipeTo promise to reject\n// and be unhandled\n}\n// We can share the same encoder instance everywhere\n// Notably we cannot do the same for TextDecoder because it is stateful\n// when handling streaming data\nconst encoder = new TextEncoder();\nfunction chainStreams(...streams) {\n // We could encode this invariant in the arguments but current uses of this function pass\n // use spread so it would be missed by\n if (streams.length === 0) {\n throw Object.defineProperty(new Error('Invariant: chainStreams requires at least one stream'), \"__NEXT_ERROR_CODE\", {\n value: \"E437\",\n enumerable: false,\n configurable: true\n });\n }\n // If we only have 1 stream we fast path it by returning just this stream\n if (streams.length === 1) {\n return streams[0];\n }\n const { readable, writable } = new TransformStream();\n // We always initiate pipeTo immediately. We know we have at least 2 streams\n // so we need to avoid closing the writable when this one finishes.\n let promise = streams[0].pipeTo(writable, {\n preventClose: true\n });\n let i = 1;\n for(; i < streams.length - 1; i++){\n const nextStream = streams[i];\n promise = promise.then(()=>nextStream.pipeTo(writable, {\n preventClose: true\n }));\n }\n // We can omit the length check because we halted before the last stream and there\n // is at least two streams so the lastStream here will always be defined\n const lastStream = streams[i];\n promise = promise.then(()=>lastStream.pipeTo(writable));\n // Catch any errors from the streams and ignore them, they will be handled\n // by whatever is consuming the readable stream.\n promise.catch(voidCatch);\n return readable;\n}\nfunction streamFromString(str) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(encoder.encode(str));\n controller.close();\n }\n });\n}\nfunction streamFromBuffer(chunk) {\n return new ReadableStream({\n start (controller) {\n controller.enqueue(chunk);\n controller.close();\n }\n });\n}\nasync function streamToBuffer(stream) {\n const reader = stream.getReader();\n const chunks = [];\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n chunks.push(value);\n }\n return Buffer.concat(chunks);\n}\nasync function streamToString(stream, signal) {\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n let string = '';\n for await (const chunk of stream){\n if (signal == null ? void 0 : signal.aborted) {\n return string;\n }\n string += decoder.decode(chunk, {\n stream: true\n });\n }\n string += decoder.decode();\n return string;\n}\nfunction createBufferedTransformStream() {\n let bufferedChunks = [];\n let bufferByteLength = 0;\n let pending;\n const flush = (controller)=>{\n // If we already have a pending flush, then return early.\n if (pending) return;\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n const chunk = new Uint8Array(bufferByteLength);\n let copiedBytes = 0;\n for(let i = 0; i < bufferedChunks.length; i++){\n const bufferedChunk = bufferedChunks[i];\n chunk.set(bufferedChunk, copiedBytes);\n copiedBytes += bufferedChunk.byteLength;\n }\n // We just wrote all the buffered chunks so we need to reset the bufferedChunks array\n // and our bufferByteLength to prepare for the next round of buffered chunks\n bufferedChunks.length = 0;\n bufferByteLength = 0;\n controller.enqueue(chunk);\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n // Combine the previous buffer with the new chunk.\n bufferedChunks.push(chunk);\n bufferByteLength += chunk.byteLength;\n // Flush the buffer to the controller.\n flush(controller);\n },\n flush () {\n if (!pending) return;\n return pending.promise;\n }\n });\n}\nfunction createPrefetchCommentStream(isBuildTimePrerendering, buildId) {\n // Insert an extra comment at the beginning of the HTML document. This must\n // come after the DOCTYPE, which is inserted by React.\n //\n // The first chunk sent by React will contain the doctype. After that, we can\n // pass through the rest of the chunks as-is.\n let didTransformFirstChunk = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (isBuildTimePrerendering && !didTransformFirstChunk) {\n didTransformFirstChunk = true;\n const decoder = new TextDecoder('utf-8', {\n fatal: true\n });\n const chunkStr = decoder.decode(chunk, {\n stream: true\n });\n const updatedChunkStr = (0, _outputexportprefetchencoding.insertBuildIdComment)(chunkStr, buildId);\n controller.enqueue(encoder.encode(updatedChunkStr));\n return;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) {\n return (0, _tracer.getTracer)().trace(_constants.AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions));\n}\nfunction createMetadataTransformStream(insert) {\n let chunkIndex = -1;\n let isMarkRemoved = false;\n return new TransformStream({\n async transform (chunk, controller) {\n let iconMarkIndex = -1;\n let closedHeadIndex = -1;\n chunkIndex++;\n if (isMarkRemoved) {\n controller.enqueue(chunk);\n return;\n }\n let iconMarkLength = 0;\n // Only search for the closed head tag once\n if (iconMarkIndex === -1) {\n iconMarkIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.META.ICON_MARK);\n if (iconMarkIndex === -1) {\n controller.enqueue(chunk);\n return;\n } else {\n // When we found the `<meta name=\"«nxt-icon»\"` tag prefix, we will remove it from the chunk.\n // Its close tag could either be `/>` or `>`, checking the next char to ensure we cover both cases.\n iconMarkLength = _encodedtags.ENCODED_TAGS.META.ICON_MARK.length;\n // Check if next char is /, this is for xml mode.\n if (chunk[iconMarkIndex + iconMarkLength] === 47) {\n iconMarkLength += 2;\n } else {\n // The last char is `>`\n iconMarkLength++;\n }\n }\n }\n // Check if icon mark is inside <head> tag in the first chunk.\n if (chunkIndex === 0) {\n closedHeadIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n if (iconMarkIndex !== -1) {\n // The mark icon is located in the 1st chunk before the head tag.\n // We do not need to insert the script tag in this case because it's in the head.\n // Just remove the icon mark from the chunk.\n if (iconMarkIndex < closedHeadIndex) {\n const replaced = new Uint8Array(chunk.length - iconMarkLength);\n // Remove the icon mark from the chunk.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex);\n chunk = replaced;\n } else {\n // The icon mark is after the head tag, replace and insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n replaced.set(chunk.subarray(0, iconMarkIndex));\n replaced.set(encodedInsertion, iconMarkIndex);\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n }\n isMarkRemoved = true;\n }\n // If there's no icon mark located, it will be handled later when if present in the following chunks.\n } else {\n // When it's appeared in the following chunks, we'll need to\n // remove the mark and then insert the script tag at that position.\n const insertion = await insert();\n const encodedInsertion = encoder.encode(insertion);\n const insertionLength = encodedInsertion.length;\n // Replace the icon mark with the hoist script or empty string.\n const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength);\n // Set the first part of the chunk, before the icon mark.\n replaced.set(chunk.subarray(0, iconMarkIndex));\n // Set the insertion after the icon mark.\n replaced.set(encodedInsertion, iconMarkIndex);\n // Set the rest of the chunk after the icon mark.\n replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength);\n chunk = replaced;\n isMarkRemoved = true;\n }\n controller.enqueue(chunk);\n }\n });\n}\nfunction createHeadInsertionTransformStream(insert) {\n let inserted = false;\n // We need to track if this transform saw any bytes because if it didn't\n // we won't want to insert any server HTML at all\n let hasBytes = false;\n return new TransformStream({\n async transform (chunk, controller) {\n hasBytes = true;\n const insertion = await insert();\n if (inserted) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n controller.enqueue(encodedInsertion);\n }\n controller.enqueue(chunk);\n } else {\n // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for.\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD);\n // In fully static rendering or non PPR rendering cases:\n // `/head>` will always be found in the chunk in first chunk rendering.\n if (index !== -1) {\n if (insertion) {\n const encodedInsertion = encoder.encode(insertion);\n // Get the total count of the bytes in the chunk and the insertion\n // e.g.\n // chunk = <head><meta charset=\"utf-8\"></head>\n // insertion = <script>...</script>\n // output = <head><meta charset=\"utf-8\"> [ <script>...</script> ] </head>\n const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length);\n // Append the first part of the chunk, before the head tag\n insertedHeadContent.set(chunk.slice(0, index));\n // Append the server inserted content\n insertedHeadContent.set(encodedInsertion, index);\n // Append the rest of the chunk\n insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length);\n controller.enqueue(insertedHeadContent);\n } else {\n controller.enqueue(chunk);\n }\n inserted = true;\n } else {\n // This will happens in PPR rendering during next start, when the page is partially rendered.\n // When the page resumes, the head tag will be found in the middle of the chunk.\n // Where we just need to append the insertion and chunk to the current stream.\n // e.g.\n // PPR-static: <head>...</head><body> [ resume content ] </body>\n // PPR-resume: [ insertion ] [ rest content ]\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n controller.enqueue(chunk);\n inserted = true;\n }\n }\n },\n async flush (controller) {\n // Check before closing if there's anything remaining to insert.\n if (hasBytes) {\n const insertion = await insert();\n if (insertion) {\n controller.enqueue(encoder.encode(insertion));\n }\n }\n }\n });\n}\n// Suffix after main body content - scripts before </body>,\n// but wait for the major chunks to be enqueued.\nfunction createDeferredSuffixStream(suffix) {\n let flushed = false;\n let pending;\n const flush = (controller)=>{\n const detached = new _detachedpromise.DetachedPromise();\n pending = detached;\n (0, _scheduler.scheduleImmediate)(()=>{\n try {\n controller.enqueue(encoder.encode(suffix));\n } catch {\n // If an error occurs while enqueuing it can't be due to this\n // transformers fault. It's likely due to the controller being\n // errored due to the stream being cancelled.\n } finally{\n pending = undefined;\n detached.resolve();\n }\n });\n };\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // If we've already flushed, we're done.\n if (flushed) return;\n // Schedule the flush to happen.\n flushed = true;\n flush(controller);\n },\n flush (controller) {\n if (pending) return pending.promise;\n if (flushed) return;\n // Flush now.\n controller.enqueue(encoder.encode(suffix));\n }\n });\n}\n// Merge two streams into one. Ensure the final transform stream is closed\n// when both are finished.\nfunction createMergedTransformStream(stream) {\n let pull = null;\n let donePulling = false;\n async function startPulling(controller) {\n if (pull) {\n return;\n }\n const reader = stream.getReader();\n // NOTE: streaming flush\n // We are buffering here for the inlined data stream because the\n // \"shell\" stream might be chunkenized again by the underlying stream\n // implementation, e.g. with a specific high-water mark. To ensure it's\n // the safe timing to pipe the data stream, this extra tick is\n // necessary.\n // We don't start reading until we've left the current Task to ensure\n // that it's inserted after flushing the shell. Note that this implementation\n // might get stale if impl details of Fizz change in the future.\n await (0, _scheduler.atLeastOneTask)();\n try {\n while(true){\n const { done, value } = await reader.read();\n if (done) {\n donePulling = true;\n return;\n }\n controller.enqueue(value);\n }\n } catch (err) {\n controller.error(err);\n }\n }\n return new TransformStream({\n transform (chunk, controller) {\n controller.enqueue(chunk);\n // Start the streaming if it hasn't already been started yet.\n if (!pull) {\n pull = startPulling(controller);\n }\n },\n flush (controller) {\n if (donePulling) {\n return;\n }\n return pull || startPulling(controller);\n }\n });\n}\nconst CLOSE_TAG = '</body></html>';\n/**\n * This transform stream moves the suffix to the end of the stream, so results\n * like `</body></html><script>...</script>` will be transformed to\n * `<script>...</script></body></html>`.\n */ function createMoveSuffixStream() {\n let foundSuffix = false;\n return new TransformStream({\n transform (chunk, controller) {\n if (foundSuffix) {\n return controller.enqueue(chunk);\n }\n const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n if (index > -1) {\n foundSuffix = true;\n // If the whole chunk is the suffix, then don't write anything, it will\n // be written in the flush.\n if (chunk.length === _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length) {\n return;\n }\n // Write out the part before the suffix.\n const before = chunk.slice(0, index);\n controller.enqueue(before);\n // In the case where the suffix is in the middle of the chunk, we need\n // to split the chunk into two parts.\n if (chunk.length > _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length + index) {\n // Write out the part after the suffix.\n const after = chunk.slice(index + _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);\n controller.enqueue(after);\n }\n } else {\n controller.enqueue(chunk);\n }\n },\n flush (controller) {\n // Even if we didn't find the suffix, the HTML is not valid if we don't\n // add it, so insert it at the end.\n controller.enqueue(_encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n }\n });\n}\nfunction createStripDocumentClosingTagsTransform() {\n return new TransformStream({\n transform (chunk, controller) {\n // We rely on the assumption that chunks will never break across a code unit.\n // This is reasonable because we currently concat all of React's output from a single\n // flush into one chunk before streaming it forward which means the chunk will represent\n // a single coherent utf-8 string. This is not safe to use if we change our streaming to no\n // longer do this large buffered chunk\n if ((0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML)) {\n // the entire chunk is the closing tags; return without enqueueing anything.\n return;\n }\n // We assume these tags will go at together at the end of the document and that\n // they won't appear anywhere else in the document. This is not really a safe assumption\n // but until we revamp our streaming infra this is a performant way to string the tags\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY);\n chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML);\n controller.enqueue(chunk);\n }\n });\n}\nfunction createRootLayoutValidatorStream() {\n let foundHtml = false;\n let foundBody = false;\n return new TransformStream({\n async transform (chunk, controller) {\n // Peek into the streamed chunk to see if the tags are present.\n if (!foundHtml && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.HTML) > -1) {\n foundHtml = true;\n }\n if (!foundBody && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.BODY) > -1) {\n foundBody = true;\n }\n controller.enqueue(chunk);\n },\n flush (controller) {\n const missingTags = [];\n if (!foundHtml) missingTags.push('html');\n if (!foundBody) missingTags.push('body');\n if (!missingTags.length) return;\n controller.enqueue(encoder.encode(`<html id=\"__next_error__\">\n <template\n data-next-error-message=\"Missing ${missingTags.map((c)=>`<${c}>`).join(missingTags.length > 1 ? ' and ' : '')} tags in the root layout.\\nRead more at https://nextjs.org/docs/messages/missing-root-layout-tags\"\"\n data-next-error-digest=\"${_constants1.MISSING_ROOT_TAGS_ERROR}\"\n data-next-error-stack=\"\"\n ></template>\n `));\n }\n });\n}\nfunction chainTransformers(readable, transformers) {\n let stream = readable;\n for (const transformer of transformers){\n if (!transformer) continue;\n stream = stream.pipeThrough(transformer);\n }\n return stream;\n}\nasync function continueFizzStream(renderStream, { suffix, inlinedDataStream, isStaticGeneration, isBuildTimePrerendering, buildId, getServerInsertedHTML, getServerInsertedMetadata, validateRootLayout }) {\n // Suffix itself might contain close tags at the end, so we need to split it.\n const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null;\n // If we're generating static HTML and there's an `allReady` promise on the\n // stream, we need to wait for it to resolve before continuing.\n if (isStaticGeneration && 'allReady' in renderStream) {\n await renderStream.allReady;\n }\n return chainTransformers(renderStream, [\n // Buffer everything to avoid flushing too frequently\n createBufferedTransformStream(),\n // Add build id comment to start of the HTML document (in export mode)\n createPrefetchCommentStream(isBuildTimePrerendering, buildId),\n // Transform metadata\n createMetadataTransformStream(getServerInsertedMetadata),\n // Insert suffix content\n suffixUnclosed != null && suffixUnclosed.length > 0 ? createDeferredSuffixStream(suffixUnclosed) : null,\n // Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n inlinedDataStream ? createMergedTransformStream(inlinedDataStream) : null,\n // Validate the root layout for missing html or body tags\n validateRootLayout ? createRootLayoutValidatorStream() : null,\n // Close tags should always be deferred to the end\n createMoveSuffixStream(),\n // Special head insertions\n // TODO-APP: Insert server side html to end of head in app layout rendering, to avoid\n // hydration errors. Remove this once it's ready to be handled by react itself.\n createHeadInsertionTransformStream(getServerInsertedHTML)\n ]);\n}\nasync function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML, getServerInsertedMetadata }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream()).pipeThrough(createStripDocumentClosingTagsTransform())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata));\n}\nasync function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, isBuildTimePrerendering, buildId }) {\n return prerenderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Add build id comment to start of the HTML document (in export mode)\n .pipeThrough(createPrefetchCommentStream(isBuildTimePrerendering, buildId))// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createMergedTransformStream(inlinedDataStream))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nasync function continueDynamicHTMLResume(renderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata }) {\n return renderStream// Buffer everything to avoid flushing too frequently\n .pipeThrough(createBufferedTransformStream())// Insert generated tags to head\n .pipeThrough(createHeadInsertionTransformStream(getServerInsertedHTML))// Transform metadata\n .pipeThrough(createMetadataTransformStream(getServerInsertedMetadata))// Insert the inlined data (Flight data, form state, etc.) stream into the HTML\n .pipeThrough(createMergedTransformStream(inlinedDataStream))// Close tags should always be deferred to the end\n .pipeThrough(createMoveSuffixStream());\n}\nfunction createDocumentClosingStream() {\n return streamFromString(CLOSE_TAG);\n}\n\n//# sourceMappingURL=node-web-streams-helper.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvbm9kZS13ZWItc3RyZWFtcy1oZWxwZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBY0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGdCQUFnQixtQkFBTyxDQUFDLHNGQUFxQjtBQUM3QyxtQkFBbUIsbUJBQU8sQ0FBQyw0RkFBd0I7QUFDbkQseUJBQXlCLG1CQUFPLENBQUMsMEZBQTRCO0FBQzdELG1CQUFtQixtQkFBTyxDQUFDLDRFQUFxQjtBQUNoRCxxQkFBcUIsbUJBQU8sQ0FBQywwRkFBZ0I7QUFDN0MsMkJBQTJCLG1CQUFPLENBQUMsc0dBQXNCO0FBQ3pELG9CQUFvQixtQkFBTyxDQUFDLHdHQUFtQztBQUMvRCxzQ0FBc0MsbUJBQU8sQ0FBQyxrS0FBZ0U7QUFDOUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxQkFBcUI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxVQUFVLHdCQUF3QjtBQUNsQztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixjQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsMkJBQTJCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLHFDQUFxQyx3Q0FBd0M7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsY0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRCx5QkFBeUIsRUFBRSxpREFBaUQ7QUFDN0gsd0NBQXdDLG9DQUFvQztBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsdUpBQXVKO0FBQ3pNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJELGtEQUFrRDtBQUM3RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBELHVHQUF1RztBQUNqSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlELHFFQUFxRTtBQUM5SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvc3RyZWFtLXV0aWxzL25vZGUtd2ViLXN0cmVhbXMtaGVscGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY2hhaW5TdHJlYW1zOiBudWxsLFxuICAgIGNvbnRpbnVlRHluYW1pY0hUTUxSZXN1bWU6IG51bGwsXG4gICAgY29udGludWVEeW5hbWljUHJlcmVuZGVyOiBudWxsLFxuICAgIGNvbnRpbnVlRml6elN0cmVhbTogbnVsbCxcbiAgICBjb250aW51ZVN0YXRpY1ByZXJlbmRlcjogbnVsbCxcbiAgICBjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbTogbnVsbCxcbiAgICBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW06IG51bGwsXG4gICAgY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbTogbnVsbCxcbiAgICByZW5kZXJUb0luaXRpYWxGaXp6U3RyZWFtOiBudWxsLFxuICAgIHN0cmVhbUZyb21CdWZmZXI6IG51bGwsXG4gICAgc3RyZWFtRnJvbVN0cmluZzogbnVsbCxcbiAgICBzdHJlYW1Ub0J1ZmZlcjogbnVsbCxcbiAgICBzdHJlYW1Ub1N0cmluZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjaGFpblN0cmVhbXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY2hhaW5TdHJlYW1zO1xuICAgIH0sXG4gICAgY29udGludWVEeW5hbWljSFRNTFJlc3VtZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZUR5bmFtaWNIVE1MUmVzdW1lO1xuICAgIH0sXG4gICAgY29udGludWVEeW5hbWljUHJlcmVuZGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRpbnVlRHluYW1pY1ByZXJlbmRlcjtcbiAgICB9LFxuICAgIGNvbnRpbnVlRml6elN0cmVhbTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZUZpenpTdHJlYW07XG4gICAgfSxcbiAgICBjb250aW51ZVN0YXRpY1ByZXJlbmRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb250aW51ZVN0YXRpY1ByZXJlbmRlcjtcbiAgICB9LFxuICAgIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtO1xuICAgIH0sXG4gICAgY3JlYXRlRG9jdW1lbnRDbG9zaW5nU3RyZWFtOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURvY3VtZW50Q2xvc2luZ1N0cmVhbTtcbiAgICB9LFxuICAgIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbTtcbiAgICB9LFxuICAgIHJlbmRlclRvSW5pdGlhbEZpenpTdHJlYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcmVuZGVyVG9Jbml0aWFsRml6elN0cmVhbTtcbiAgICB9LFxuICAgIHN0cmVhbUZyb21CdWZmZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyZWFtRnJvbUJ1ZmZlcjtcbiAgICB9LFxuICAgIHN0cmVhbUZyb21TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyZWFtRnJvbVN0cmluZztcbiAgICB9LFxuICAgIHN0cmVhbVRvQnVmZmVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbVRvQnVmZmVyO1xuICAgIH0sXG4gICAgc3RyZWFtVG9TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3RyZWFtVG9TdHJpbmc7XG4gICAgfVxufSk7XG5jb25zdCBfdHJhY2VyID0gcmVxdWlyZShcIi4uL2xpYi90cmFjZS90cmFjZXJcIik7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uL2xpYi90cmFjZS9jb25zdGFudHNcIik7XG5jb25zdCBfZGV0YWNoZWRwcm9taXNlID0gcmVxdWlyZShcIi4uLy4uL2xpYi9kZXRhY2hlZC1wcm9taXNlXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuY29uc3QgX2VuY29kZWR0YWdzID0gcmVxdWlyZShcIi4vZW5jb2RlZC10YWdzXCIpO1xuY29uc3QgX3VpbnQ4YXJyYXloZWxwZXJzID0gcmVxdWlyZShcIi4vdWludDhhcnJheS1oZWxwZXJzXCIpO1xuY29uc3QgX2NvbnN0YW50czEgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9lcnJvcnMvY29uc3RhbnRzXCIpO1xuY29uc3QgX291dHB1dGV4cG9ydHByZWZldGNoZW5jb2RpbmcgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50LWNhY2hlL291dHB1dC1leHBvcnQtcHJlZmV0Y2gtZW5jb2RpbmdcIik7XG5mdW5jdGlvbiB2b2lkQ2F0Y2goKSB7XG4vLyB0aGlzIGNhdGNoZXIgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIHBpcGVUbyB3aGVyZSB3ZSBleHBlY3QgdGhlIHVuZGVybHlpbmdcbi8vIHBpcGUgaW1wbGVtZW50YXRpb24gdG8gZm9yd2FyZCBlcnJvcnMgYnV0IHdlIGRvbid0IHdhbnQgdGhlIHBpcGVUbyBwcm9taXNlIHRvIHJlamVjdFxuLy8gYW5kIGJlIHVuaGFuZGxlZFxufVxuLy8gV2UgY2FuIHNoYXJlIHRoZSBzYW1lIGVuY29kZXIgaW5zdGFuY2UgZXZlcnl3aGVyZVxuLy8gTm90YWJseSB3ZSBjYW5ub3QgZG8gdGhlIHNhbWUgZm9yIFRleHREZWNvZGVyIGJlY2F1c2UgaXQgaXMgc3RhdGVmdWxcbi8vIHdoZW4gaGFuZGxpbmcgc3RyZWFtaW5nIGRhdGFcbmNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbmZ1bmN0aW9uIGNoYWluU3RyZWFtcyguLi5zdHJlYW1zKSB7XG4gICAgLy8gV2UgY291bGQgZW5jb2RlIHRoaXMgaW52YXJpYW50IGluIHRoZSBhcmd1bWVudHMgYnV0IGN1cnJlbnQgdXNlcyBvZiB0aGlzIGZ1bmN0aW9uIHBhc3NcbiAgICAvLyB1c2Ugc3ByZWFkIHNvIGl0IHdvdWxkIGJlIG1pc3NlZCBieVxuICAgIGlmIChzdHJlYW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IGNoYWluU3RyZWFtcyByZXF1aXJlcyBhdCBsZWFzdCBvbmUgc3RyZWFtJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTQzN1wiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8vIElmIHdlIG9ubHkgaGF2ZSAxIHN0cmVhbSB3ZSBmYXN0IHBhdGggaXQgYnkgcmV0dXJuaW5nIGp1c3QgdGhpcyBzdHJlYW1cbiAgICBpZiAoc3RyZWFtcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHN0cmVhbXNbMF07XG4gICAgfVxuICAgIGNvbnN0IHsgcmVhZGFibGUsIHdyaXRhYmxlIH0gPSBuZXcgVHJhbnNmb3JtU3RyZWFtKCk7XG4gICAgLy8gV2UgYWx3YXlzIGluaXRpYXRlIHBpcGVUbyBpbW1lZGlhdGVseS4gV2Uga25vdyB3ZSBoYXZlIGF0IGxlYXN0IDIgc3RyZWFtc1xuICAgIC8vIHNvIHdlIG5lZWQgdG8gYXZvaWQgY2xvc2luZyB0aGUgd3JpdGFibGUgd2hlbiB0aGlzIG9uZSBmaW5pc2hlcy5cbiAgICBsZXQgcHJvbWlzZSA9IHN0cmVhbXNbMF0ucGlwZVRvKHdyaXRhYmxlLCB7XG4gICAgICAgIHByZXZlbnRDbG9zZTogdHJ1ZVxuICAgIH0pO1xuICAgIGxldCBpID0gMTtcbiAgICBmb3IoOyBpIDwgc3RyZWFtcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICBjb25zdCBuZXh0U3RyZWFtID0gc3RyZWFtc1tpXTtcbiAgICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigoKT0+bmV4dFN0cmVhbS5waXBlVG8od3JpdGFibGUsIHtcbiAgICAgICAgICAgICAgICBwcmV2ZW50Q2xvc2U6IHRydWVcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG4gICAgLy8gV2UgY2FuIG9taXQgdGhlIGxlbmd0aCBjaGVjayBiZWNhdXNlIHdlIGhhbHRlZCBiZWZvcmUgdGhlIGxhc3Qgc3RyZWFtIGFuZCB0aGVyZVxuICAgIC8vIGlzIGF0IGxlYXN0IHR3byBzdHJlYW1zIHNvIHRoZSBsYXN0U3RyZWFtIGhlcmUgd2lsbCBhbHdheXMgYmUgZGVmaW5lZFxuICAgIGNvbnN0IGxhc3RTdHJlYW0gPSBzdHJlYW1zW2ldO1xuICAgIHByb21pc2UgPSBwcm9taXNlLnRoZW4oKCk9Pmxhc3RTdHJlYW0ucGlwZVRvKHdyaXRhYmxlKSk7XG4gICAgLy8gQ2F0Y2ggYW55IGVycm9ycyBmcm9tIHRoZSBzdHJlYW1zIGFuZCBpZ25vcmUgdGhlbSwgdGhleSB3aWxsIGJlIGhhbmRsZWRcbiAgICAvLyBieSB3aGF0ZXZlciBpcyBjb25zdW1pbmcgdGhlIHJlYWRhYmxlIHN0cmVhbS5cbiAgICBwcm9taXNlLmNhdGNoKHZvaWRDYXRjaCk7XG4gICAgcmV0dXJuIHJlYWRhYmxlO1xufVxuZnVuY3Rpb24gc3RyZWFtRnJvbVN0cmluZyhzdHIpIHtcbiAgICByZXR1cm4gbmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShzdHIpKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuZnVuY3Rpb24gc3RyZWFtRnJvbUJ1ZmZlcihjaHVuaykge1xuICAgIHJldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe1xuICAgICAgICBzdGFydCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuYXN5bmMgZnVuY3Rpb24gc3RyZWFtVG9CdWZmZXIoc3RyZWFtKSB7XG4gICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpO1xuICAgIGNvbnN0IGNodW5rcyA9IFtdO1xuICAgIHdoaWxlKHRydWUpe1xuICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpO1xuICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2h1bmtzLnB1c2godmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChjaHVua3MpO1xufVxuYXN5bmMgZnVuY3Rpb24gc3RyZWFtVG9TdHJpbmcoc3RyZWFtLCBzaWduYWwpIHtcbiAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCd1dGYtOCcsIHtcbiAgICAgICAgZmF0YWw6IHRydWVcbiAgICB9KTtcbiAgICBsZXQgc3RyaW5nID0gJyc7XG4gICAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBzdHJlYW0pe1xuICAgICAgICBpZiAoc2lnbmFsID09IG51bGwgPyB2b2lkIDAgOiBzaWduYWwuYWJvcnRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICBzdHJpbmcgKz0gZGVjb2Rlci5kZWNvZGUoY2h1bmssIHtcbiAgICAgICAgICAgIHN0cmVhbTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RyaW5nICs9IGRlY29kZXIuZGVjb2RlKCk7XG4gICAgcmV0dXJuIHN0cmluZztcbn1cbmZ1bmN0aW9uIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkge1xuICAgIGxldCBidWZmZXJlZENodW5rcyA9IFtdO1xuICAgIGxldCBidWZmZXJCeXRlTGVuZ3RoID0gMDtcbiAgICBsZXQgcGVuZGluZztcbiAgICBjb25zdCBmbHVzaCA9IChjb250cm9sbGVyKT0+e1xuICAgICAgICAvLyBJZiB3ZSBhbHJlYWR5IGhhdmUgYSBwZW5kaW5nIGZsdXNoLCB0aGVuIHJldHVybiBlYXJseS5cbiAgICAgICAgaWYgKHBlbmRpbmcpIHJldHVybjtcbiAgICAgICAgY29uc3QgZGV0YWNoZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgcGVuZGluZyA9IGRldGFjaGVkO1xuICAgICAgICAoMCwgX3NjaGVkdWxlci5zY2hlZHVsZUltbWVkaWF0ZSkoKCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2h1bmsgPSBuZXcgVWludDhBcnJheShidWZmZXJCeXRlTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBsZXQgY29waWVkQnl0ZXMgPSAwO1xuICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBidWZmZXJlZENodW5rcy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ1ZmZlcmVkQ2h1bmsgPSBidWZmZXJlZENodW5rc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgY2h1bmsuc2V0KGJ1ZmZlcmVkQ2h1bmssIGNvcGllZEJ5dGVzKTtcbiAgICAgICAgICAgICAgICAgICAgY29waWVkQnl0ZXMgKz0gYnVmZmVyZWRDaHVuay5ieXRlTGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZSBqdXN0IHdyb3RlIGFsbCB0aGUgYnVmZmVyZWQgY2h1bmtzIHNvIHdlIG5lZWQgdG8gcmVzZXQgdGhlIGJ1ZmZlcmVkQ2h1bmtzIGFycmF5XG4gICAgICAgICAgICAgICAgLy8gYW5kIG91ciBidWZmZXJCeXRlTGVuZ3RoIHRvIHByZXBhcmUgZm9yIHRoZSBuZXh0IHJvdW5kIG9mIGJ1ZmZlcmVkIGNodW5rc1xuICAgICAgICAgICAgICAgIGJ1ZmZlcmVkQ2h1bmtzLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgICAgYnVmZmVyQnl0ZUxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggIHtcbiAgICAgICAgICAgIC8vIElmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBlbnF1ZXVpbmcgaXQgY2FuJ3QgYmUgZHVlIHRvIHRoaXNcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybWVycyBmYXVsdC4gSXQncyBsaWtlbHkgZHVlIHRvIHRoZSBjb250cm9sbGVyIGJlaW5nXG4gICAgICAgICAgICAvLyBlcnJvcmVkIGR1ZSB0byB0aGUgc3RyZWFtIGJlaW5nIGNhbmNlbGxlZC5cbiAgICAgICAgICAgIH0gZmluYWxseXtcbiAgICAgICAgICAgICAgICBwZW5kaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGRldGFjaGVkLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIENvbWJpbmUgdGhlIHByZXZpb3VzIGJ1ZmZlciB3aXRoIHRoZSBuZXcgY2h1bmsuXG4gICAgICAgICAgICBidWZmZXJlZENodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgICAgICAgIGJ1ZmZlckJ5dGVMZW5ndGggKz0gY2h1bmsuYnl0ZUxlbmd0aDtcbiAgICAgICAgICAgIC8vIEZsdXNoIHRoZSBidWZmZXIgdG8gdGhlIGNvbnRyb2xsZXIuXG4gICAgICAgICAgICBmbHVzaChjb250cm9sbGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgZmx1c2ggKCkge1xuICAgICAgICAgICAgaWYgKCFwZW5kaW5nKSByZXR1cm47XG4gICAgICAgICAgICByZXR1cm4gcGVuZGluZy5wcm9taXNlO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVQcmVmZXRjaENvbW1lbnRTdHJlYW0oaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQpIHtcbiAgICAvLyBJbnNlcnQgYW4gZXh0cmEgY29tbWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBIVE1MIGRvY3VtZW50LiBUaGlzIG11c3RcbiAgICAvLyBjb21lIGFmdGVyIHRoZSBET0NUWVBFLCB3aGljaCBpcyBpbnNlcnRlZCBieSBSZWFjdC5cbiAgICAvL1xuICAgIC8vIFRoZSBmaXJzdCBjaHVuayBzZW50IGJ5IFJlYWN0IHdpbGwgY29udGFpbiB0aGUgZG9jdHlwZS4gQWZ0ZXIgdGhhdCwgd2UgY2FuXG4gICAgLy8gcGFzcyB0aHJvdWdoIHRoZSByZXN0IG9mIHRoZSBjaHVua3MgYXMtaXMuXG4gICAgbGV0IGRpZFRyYW5zZm9ybUZpcnN0Q2h1bmsgPSBmYWxzZTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGlmIChpc0J1aWxkVGltZVByZXJlbmRlcmluZyAmJiAhZGlkVHJhbnNmb3JtRmlyc3RDaHVuaykge1xuICAgICAgICAgICAgICAgIGRpZFRyYW5zZm9ybUZpcnN0Q2h1bmsgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoJ3V0Zi04Jywge1xuICAgICAgICAgICAgICAgICAgICBmYXRhbDogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rU3RyID0gZGVjb2Rlci5kZWNvZGUoY2h1bmssIHtcbiAgICAgICAgICAgICAgICAgICAgc3RyZWFtOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZENodW5rU3RyID0gKDAsIF9vdXRwdXRleHBvcnRwcmVmZXRjaGVuY29kaW5nLmluc2VydEJ1aWxkSWRDb21tZW50KShjaHVua1N0ciwgYnVpbGRJZCk7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHVwZGF0ZWRDaHVua1N0cikpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHJlbmRlclRvSW5pdGlhbEZpenpTdHJlYW0oeyBSZWFjdERPTVNlcnZlciwgZWxlbWVudCwgc3RyZWFtT3B0aW9ucyB9KSB7XG4gICAgcmV0dXJuICgwLCBfdHJhY2VyLmdldFRyYWNlcikoKS50cmFjZShfY29uc3RhbnRzLkFwcFJlbmRlclNwYW4ucmVuZGVyVG9SZWFkYWJsZVN0cmVhbSwgYXN5bmMgKCk9PlJlYWN0RE9NU2VydmVyLnJlbmRlclRvUmVhZGFibGVTdHJlYW0oZWxlbWVudCwgc3RyZWFtT3B0aW9ucykpO1xufVxuZnVuY3Rpb24gY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oaW5zZXJ0KSB7XG4gICAgbGV0IGNodW5rSW5kZXggPSAtMTtcbiAgICBsZXQgaXNNYXJrUmVtb3ZlZCA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgbGV0IGljb25NYXJrSW5kZXggPSAtMTtcbiAgICAgICAgICAgIGxldCBjbG9zZWRIZWFkSW5kZXggPSAtMTtcbiAgICAgICAgICAgIGNodW5rSW5kZXgrKztcbiAgICAgICAgICAgIGlmIChpc01hcmtSZW1vdmVkKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgaWNvbk1hcmtMZW5ndGggPSAwO1xuICAgICAgICAgICAgLy8gT25seSBzZWFyY2ggZm9yIHRoZSBjbG9zZWQgaGVhZCB0YWcgb25jZVxuICAgICAgICAgICAgaWYgKGljb25NYXJrSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaWNvbk1hcmtJbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLk1FVEEuSUNPTl9NQVJLKTtcbiAgICAgICAgICAgICAgICBpZiAoaWNvbk1hcmtJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UgZm91bmQgdGhlIGA8bWV0YSBuYW1lPVwiwqtueHQtaWNvbsK7XCJgIHRhZyBwcmVmaXgsIHdlIHdpbGwgcmVtb3ZlIGl0IGZyb20gdGhlIGNodW5rLlxuICAgICAgICAgICAgICAgICAgICAvLyBJdHMgY2xvc2UgdGFnIGNvdWxkIGVpdGhlciBiZSBgLz5gIG9yIGA+YCwgY2hlY2tpbmcgdGhlIG5leHQgY2hhciB0byBlbnN1cmUgd2UgY292ZXIgYm90aCBjYXNlcy5cbiAgICAgICAgICAgICAgICAgICAgaWNvbk1hcmtMZW5ndGggPSBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLk1FVEEuSUNPTl9NQVJLLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgbmV4dCBjaGFyIGlzIC8sIHRoaXMgaXMgZm9yIHhtbCBtb2RlLlxuICAgICAgICAgICAgICAgICAgICBpZiAoY2h1bmtbaWNvbk1hcmtJbmRleCArIGljb25NYXJrTGVuZ3RoXSA9PT0gNDcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25NYXJrTGVuZ3RoICs9IDI7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgbGFzdCBjaGFyIGlzIGA+YFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbk1hcmtMZW5ndGgrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIGljb24gbWFyayBpcyBpbnNpZGUgPGhlYWQ+IHRhZyBpbiB0aGUgZmlyc3QgY2h1bmsuXG4gICAgICAgICAgICBpZiAoY2h1bmtJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNsb3NlZEhlYWRJbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5IRUFEKTtcbiAgICAgICAgICAgICAgICBpZiAoaWNvbk1hcmtJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG1hcmsgaWNvbiBpcyBsb2NhdGVkIGluIHRoZSAxc3QgY2h1bmsgYmVmb3JlIHRoZSBoZWFkIHRhZy5cbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgZG8gbm90IG5lZWQgdG8gaW5zZXJ0IHRoZSBzY3JpcHQgdGFnIGluIHRoaXMgY2FzZSBiZWNhdXNlIGl0J3MgaW4gdGhlIGhlYWQuXG4gICAgICAgICAgICAgICAgICAgIC8vIEp1c3QgcmVtb3ZlIHRoZSBpY29uIG1hcmsgZnJvbSB0aGUgY2h1bmsuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpY29uTWFya0luZGV4IDwgY2xvc2VkSGVhZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXBsYWNlZCA9IG5ldyBVaW50OEFycmF5KGNodW5rLmxlbmd0aCAtIGljb25NYXJrTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgaWNvbiBtYXJrIGZyb20gdGhlIGNodW5rLlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGNodW5rLnN1YmFycmF5KDAsIGljb25NYXJrSW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheShpY29uTWFya0luZGV4ICsgaWNvbk1hcmtMZW5ndGgpLCBpY29uTWFya0luZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rID0gcmVwbGFjZWQ7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgaWNvbiBtYXJrIGlzIGFmdGVyIHRoZSBoZWFkIHRhZywgcmVwbGFjZSBhbmQgaW5zZXJ0IHRoZSBzY3JpcHQgdGFnIGF0IHRoYXQgcG9zaXRpb24uXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5zZXJ0aW9uTGVuZ3RoID0gZW5jb2RlZEluc2VydGlvbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXBsYWNlZCA9IG5ldyBVaW50OEFycmF5KGNodW5rLmxlbmd0aCAtIGljb25NYXJrTGVuZ3RoICsgaW5zZXJ0aW9uTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkLnNldChjaHVuay5zdWJhcnJheSgwLCBpY29uTWFya0luZGV4KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoZW5jb2RlZEluc2VydGlvbiwgaWNvbk1hcmtJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoaWNvbk1hcmtJbmRleCArIGljb25NYXJrTGVuZ3RoKSwgaWNvbk1hcmtJbmRleCArIGluc2VydGlvbkxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaHVuayA9IHJlcGxhY2VkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlzTWFya1JlbW92ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gaWNvbiBtYXJrIGxvY2F0ZWQsIGl0IHdpbGwgYmUgaGFuZGxlZCBsYXRlciB3aGVuIGlmIHByZXNlbnQgaW4gdGhlIGZvbGxvd2luZyBjaHVua3MuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFdoZW4gaXQncyBhcHBlYXJlZCBpbiB0aGUgZm9sbG93aW5nIGNodW5rcywgd2UnbGwgbmVlZCB0b1xuICAgICAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgbWFyayBhbmQgdGhlbiBpbnNlcnQgdGhlIHNjcmlwdCB0YWcgYXQgdGhhdCBwb3NpdGlvbi5cbiAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmNvZGVkSW5zZXJ0aW9uID0gZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRpb25MZW5ndGggPSBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBpY29uIG1hcmsgd2l0aCB0aGUgaG9pc3Qgc2NyaXB0IG9yIGVtcHR5IHN0cmluZy5cbiAgICAgICAgICAgICAgICBjb25zdCByZXBsYWNlZCA9IG5ldyBVaW50OEFycmF5KGNodW5rLmxlbmd0aCAtIGljb25NYXJrTGVuZ3RoICsgaW5zZXJ0aW9uTGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAvLyBTZXQgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGNodW5rLCBiZWZvcmUgdGhlIGljb24gbWFyay5cbiAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoMCwgaWNvbk1hcmtJbmRleCkpO1xuICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgaW5zZXJ0aW9uIGFmdGVyIHRoZSBpY29uIG1hcmsuXG4gICAgICAgICAgICAgICAgcmVwbGFjZWQuc2V0KGVuY29kZWRJbnNlcnRpb24sIGljb25NYXJrSW5kZXgpO1xuICAgICAgICAgICAgICAgIC8vIFNldCB0aGUgcmVzdCBvZiB0aGUgY2h1bmsgYWZ0ZXIgdGhlIGljb24gbWFyay5cbiAgICAgICAgICAgICAgICByZXBsYWNlZC5zZXQoY2h1bmsuc3ViYXJyYXkoaWNvbk1hcmtJbmRleCArIGljb25NYXJrTGVuZ3RoKSwgaWNvbk1hcmtJbmRleCArIGluc2VydGlvbkxlbmd0aCk7XG4gICAgICAgICAgICAgICAgY2h1bmsgPSByZXBsYWNlZDtcbiAgICAgICAgICAgICAgICBpc01hcmtSZW1vdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oaW5zZXJ0KSB7XG4gICAgbGV0IGluc2VydGVkID0gZmFsc2U7XG4gICAgLy8gV2UgbmVlZCB0byB0cmFjayBpZiB0aGlzIHRyYW5zZm9ybSBzYXcgYW55IGJ5dGVzIGJlY2F1c2UgaWYgaXQgZGlkbid0XG4gICAgLy8gd2Ugd29uJ3Qgd2FudCB0byBpbnNlcnQgYW55IHNlcnZlciBIVE1MIGF0IGFsbFxuICAgIGxldCBoYXNCeXRlcyA9IGZhbHNlO1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgYXN5bmMgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgaGFzQnl0ZXMgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3QgaW5zZXJ0aW9uID0gYXdhaXQgaW5zZXJ0KCk7XG4gICAgICAgICAgICBpZiAoaW5zZXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuY29kZWRJbnNlcnRpb24gPSBlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pO1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZW5jb2RlZEluc2VydGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFRPRE8gKEBFdGhhbi1BcnJvd29vZCk6IFJlcGxhY2UgdGhlIGdlbmVyaWMgYGluZGV4T2ZVaW50OEFycmF5YCBtZXRob2Qgd2l0aCBzb21ldGhpbmcgZmluZWx5IHR1bmVkIGZvciB0aGUgc3Vic2V0IG9mIHRoaW5ncyBhY3R1YWxseSBiZWluZyBjaGVja2VkIGZvci5cbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5IRUFEKTtcbiAgICAgICAgICAgICAgICAvLyBJbiBmdWxseSBzdGF0aWMgcmVuZGVyaW5nIG9yIG5vbiBQUFIgcmVuZGVyaW5nIGNhc2VzOlxuICAgICAgICAgICAgICAgIC8vIGAvaGVhZD5gIHdpbGwgYWx3YXlzIGJlIGZvdW5kIGluIHRoZSBjaHVuayBpbiBmaXJzdCBjaHVuayByZW5kZXJpbmcuXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmNvZGVkSW5zZXJ0aW9uID0gZW5jb2Rlci5lbmNvZGUoaW5zZXJ0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgdG90YWwgY291bnQgb2YgdGhlIGJ5dGVzIGluIHRoZSBjaHVuayBhbmQgdGhlIGluc2VydGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZS5nLlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2h1bmsgPSA8aGVhZD48bWV0YSBjaGFyc2V0PVwidXRmLThcIj48L2hlYWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnNlcnRpb24gPSA8c2NyaXB0Pi4uLjwvc2NyaXB0PlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3V0cHV0ID0gPGhlYWQ+PG1ldGEgY2hhcnNldD1cInV0Zi04XCI+IFsgPHNjcmlwdD4uLi48L3NjcmlwdD4gXSA8L2hlYWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRlZEhlYWRDb250ZW50ID0gbmV3IFVpbnQ4QXJyYXkoY2h1bmsubGVuZ3RoICsgZW5jb2RlZEluc2VydGlvbi5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBjaHVuaywgYmVmb3JlIHRoZSBoZWFkIHRhZ1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWRIZWFkQ29udGVudC5zZXQoY2h1bmsuc2xpY2UoMCwgaW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgc2VydmVyIGluc2VydGVkIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydGVkSGVhZENvbnRlbnQuc2V0KGVuY29kZWRJbnNlcnRpb24sIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgcmVzdCBvZiB0aGUgY2h1bmtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluc2VydGVkSGVhZENvbnRlbnQuc2V0KGNodW5rLnNsaWNlKGluZGV4KSwgaW5kZXggKyBlbmNvZGVkSW5zZXJ0aW9uLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoaW5zZXJ0ZWRIZWFkQ29udGVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGluc2VydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgaGFwcGVucyBpbiBQUFIgcmVuZGVyaW5nIGR1cmluZyBuZXh0IHN0YXJ0LCB3aGVuIHRoZSBwYWdlIGlzIHBhcnRpYWxseSByZW5kZXJlZC5cbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgcGFnZSByZXN1bWVzLCB0aGUgaGVhZCB0YWcgd2lsbCBiZSBmb3VuZCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBjaHVuay5cbiAgICAgICAgICAgICAgICAgICAgLy8gV2hlcmUgd2UganVzdCBuZWVkIHRvIGFwcGVuZCB0aGUgaW5zZXJ0aW9uIGFuZCBjaHVuayB0byB0aGUgY3VycmVudCBzdHJlYW0uXG4gICAgICAgICAgICAgICAgICAgIC8vIGUuZy5cbiAgICAgICAgICAgICAgICAgICAgLy8gUFBSLXN0YXRpYzogPGhlYWQ+Li4uPC9oZWFkPjxib2R5PiBbIHJlc3VtZSBjb250ZW50IF0gPC9ib2R5PlxuICAgICAgICAgICAgICAgICAgICAvLyBQUFItcmVzdW1lOiBbIGluc2VydGlvbiBdIFsgcmVzdCBjb250ZW50IF1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc2VydGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKGluc2VydGlvbikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgICAgICAgICAgICAgIGluc2VydGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIGZsdXNoIChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAvLyBDaGVjayBiZWZvcmUgY2xvc2luZyBpZiB0aGVyZSdzIGFueXRoaW5nIHJlbWFpbmluZyB0byBpbnNlcnQuXG4gICAgICAgICAgICBpZiAoaGFzQnl0ZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRpb24gPSBhd2FpdCBpbnNlcnQoKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShpbnNlcnRpb24pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbi8vIFN1ZmZpeCBhZnRlciBtYWluIGJvZHkgY29udGVudCAtIHNjcmlwdHMgYmVmb3JlIDwvYm9keT4sXG4vLyBidXQgd2FpdCBmb3IgdGhlIG1ham9yIGNodW5rcyB0byBiZSBlbnF1ZXVlZC5cbmZ1bmN0aW9uIGNyZWF0ZURlZmVycmVkU3VmZml4U3RyZWFtKHN1ZmZpeCkge1xuICAgIGxldCBmbHVzaGVkID0gZmFsc2U7XG4gICAgbGV0IHBlbmRpbmc7XG4gICAgY29uc3QgZmx1c2ggPSAoY29udHJvbGxlcik9PntcbiAgICAgICAgY29uc3QgZGV0YWNoZWQgPSBuZXcgX2RldGFjaGVkcHJvbWlzZS5EZXRhY2hlZFByb21pc2UoKTtcbiAgICAgICAgcGVuZGluZyA9IGRldGFjaGVkO1xuICAgICAgICAoMCwgX3NjaGVkdWxlci5zY2hlZHVsZUltbWVkaWF0ZSkoKCk9PntcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKHN1ZmZpeCkpO1xuICAgICAgICAgICAgfSBjYXRjaCAge1xuICAgICAgICAgICAgLy8gSWYgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIGVucXVldWluZyBpdCBjYW4ndCBiZSBkdWUgdG8gdGhpc1xuICAgICAgICAgICAgLy8gdHJhbnNmb3JtZXJzIGZhdWx0LiBJdCdzIGxpa2VseSBkdWUgdG8gdGhlIGNvbnRyb2xsZXIgYmVpbmdcbiAgICAgICAgICAgIC8vIGVycm9yZWQgZHVlIHRvIHRoZSBzdHJlYW0gYmVpbmcgY2FuY2VsbGVkLlxuICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgIHBlbmRpbmcgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWQucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtIChjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZmx1c2hlZCwgd2UncmUgZG9uZS5cbiAgICAgICAgICAgIGlmIChmbHVzaGVkKSByZXR1cm47XG4gICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUgZmx1c2ggdG8gaGFwcGVuLlxuICAgICAgICAgICAgZmx1c2hlZCA9IHRydWU7XG4gICAgICAgICAgICBmbHVzaChjb250cm9sbGVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGlmIChwZW5kaW5nKSByZXR1cm4gcGVuZGluZy5wcm9taXNlO1xuICAgICAgICAgICAgaWYgKGZsdXNoZWQpIHJldHVybjtcbiAgICAgICAgICAgIC8vIEZsdXNoIG5vdy5cbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShzdWZmaXgpKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuLy8gTWVyZ2UgdHdvIHN0cmVhbXMgaW50byBvbmUuIEVuc3VyZSB0aGUgZmluYWwgdHJhbnNmb3JtIHN0cmVhbSBpcyBjbG9zZWRcbi8vIHdoZW4gYm90aCBhcmUgZmluaXNoZWQuXG5mdW5jdGlvbiBjcmVhdGVNZXJnZWRUcmFuc2Zvcm1TdHJlYW0oc3RyZWFtKSB7XG4gICAgbGV0IHB1bGwgPSBudWxsO1xuICAgIGxldCBkb25lUHVsbGluZyA9IGZhbHNlO1xuICAgIGFzeW5jIGZ1bmN0aW9uIHN0YXJ0UHVsbGluZyhjb250cm9sbGVyKSB7XG4gICAgICAgIGlmIChwdWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpO1xuICAgICAgICAvLyBOT1RFOiBzdHJlYW1pbmcgZmx1c2hcbiAgICAgICAgLy8gV2UgYXJlIGJ1ZmZlcmluZyBoZXJlIGZvciB0aGUgaW5saW5lZCBkYXRhIHN0cmVhbSBiZWNhdXNlIHRoZVxuICAgICAgICAvLyBcInNoZWxsXCIgc3RyZWFtIG1pZ2h0IGJlIGNodW5rZW5pemVkIGFnYWluIGJ5IHRoZSB1bmRlcmx5aW5nIHN0cmVhbVxuICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiwgZS5nLiB3aXRoIGEgc3BlY2lmaWMgaGlnaC13YXRlciBtYXJrLiBUbyBlbnN1cmUgaXQnc1xuICAgICAgICAvLyB0aGUgc2FmZSB0aW1pbmcgdG8gcGlwZSB0aGUgZGF0YSBzdHJlYW0sIHRoaXMgZXh0cmEgdGljayBpc1xuICAgICAgICAvLyBuZWNlc3NhcnkuXG4gICAgICAgIC8vIFdlIGRvbid0IHN0YXJ0IHJlYWRpbmcgdW50aWwgd2UndmUgbGVmdCB0aGUgY3VycmVudCBUYXNrIHRvIGVuc3VyZVxuICAgICAgICAvLyB0aGF0IGl0J3MgaW5zZXJ0ZWQgYWZ0ZXIgZmx1c2hpbmcgdGhlIHNoZWxsLiBOb3RlIHRoYXQgdGhpcyBpbXBsZW1lbnRhdGlvblxuICAgICAgICAvLyBtaWdodCBnZXQgc3RhbGUgaWYgaW1wbCBkZXRhaWxzIG9mIEZpenogY2hhbmdlIGluIHRoZSBmdXR1cmUuXG4gICAgICAgIGF3YWl0ICgwLCBfc2NoZWR1bGVyLmF0TGVhc3RPbmVUYXNrKSgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgd2hpbGUodHJ1ZSl7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgICAgICAgICAgICAgICBpZiAoZG9uZSkge1xuICAgICAgICAgICAgICAgICAgICBkb25lUHVsbGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgLy8gU3RhcnQgdGhlIHN0cmVhbWluZyBpZiBpdCBoYXNuJ3QgYWxyZWFkeSBiZWVuIHN0YXJ0ZWQgeWV0LlxuICAgICAgICAgICAgaWYgKCFwdWxsKSB7XG4gICAgICAgICAgICAgICAgcHVsbCA9IHN0YXJ0UHVsbGluZyhjb250cm9sbGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGlmIChkb25lUHVsbGluZykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwdWxsIHx8IHN0YXJ0UHVsbGluZyhjb250cm9sbGVyKTtcbiAgICAgICAgfVxuICAgIH0pO1xufVxuY29uc3QgQ0xPU0VfVEFHID0gJzwvYm9keT48L2h0bWw+Jztcbi8qKlxuICogVGhpcyB0cmFuc2Zvcm0gc3RyZWFtIG1vdmVzIHRoZSBzdWZmaXggdG8gdGhlIGVuZCBvZiB0aGUgc3RyZWFtLCBzbyByZXN1bHRzXG4gKiBsaWtlIGA8L2JvZHk+PC9odG1sPjxzY3JpcHQ+Li4uPC9zY3JpcHQ+YCB3aWxsIGJlIHRyYW5zZm9ybWVkIHRvXG4gKiBgPHNjcmlwdD4uLi48L3NjcmlwdD48L2JvZHk+PC9odG1sPmAuXG4gKi8gZnVuY3Rpb24gY3JlYXRlTW92ZVN1ZmZpeFN0cmVhbSgpIHtcbiAgICBsZXQgZm91bmRTdWZmaXggPSBmYWxzZTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIGlmIChmb3VuZFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmluZGV4T2ZVaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGZvdW5kU3VmZml4ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgd2hvbGUgY2h1bmsgaXMgdGhlIHN1ZmZpeCwgdGhlbiBkb24ndCB3cml0ZSBhbnl0aGluZywgaXQgd2lsbFxuICAgICAgICAgICAgICAgIC8vIGJlIHdyaXR0ZW4gaW4gdGhlIGZsdXNoLlxuICAgICAgICAgICAgICAgIGlmIChjaHVuay5sZW5ndGggPT09IF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV3JpdGUgb3V0IHRoZSBwYXJ0IGJlZm9yZSB0aGUgc3VmZml4LlxuICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IGNodW5rLnNsaWNlKDAsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoYmVmb3JlKTtcbiAgICAgICAgICAgICAgICAvLyBJbiB0aGUgY2FzZSB3aGVyZSB0aGUgc3VmZml4IGlzIGluIHRoZSBtaWRkbGUgb2YgdGhlIGNodW5rLCB3ZSBuZWVkXG4gICAgICAgICAgICAgICAgLy8gdG8gc3BsaXQgdGhlIGNodW5rIGludG8gdHdvIHBhcnRzLlxuICAgICAgICAgICAgICAgIGlmIChjaHVuay5sZW5ndGggPiBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MLmxlbmd0aCArIGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdyaXRlIG91dCB0aGUgcGFydCBhZnRlciB0aGUgc3VmZml4LlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZnRlciA9IGNodW5rLnNsaWNlKGluZGV4ICsgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoYWZ0ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZmx1c2ggKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIEV2ZW4gaWYgd2UgZGlkbid0IGZpbmQgdGhlIHN1ZmZpeCwgdGhlIEhUTUwgaXMgbm90IHZhbGlkIGlmIHdlIGRvbid0XG4gICAgICAgICAgICAvLyBhZGQgaXQsIHNvIGluc2VydCBpdCBhdCB0aGUgZW5kLlxuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVTdHJpcERvY3VtZW50Q2xvc2luZ1RhZ3NUcmFuc2Zvcm0oKSB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0gKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAvLyBXZSByZWx5IG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgY2h1bmtzIHdpbGwgbmV2ZXIgYnJlYWsgYWNyb3NzIGEgY29kZSB1bml0LlxuICAgICAgICAgICAgLy8gVGhpcyBpcyByZWFzb25hYmxlIGJlY2F1c2Ugd2UgY3VycmVudGx5IGNvbmNhdCBhbGwgb2YgUmVhY3QncyBvdXRwdXQgZnJvbSBhIHNpbmdsZVxuICAgICAgICAgICAgLy8gZmx1c2ggaW50byBvbmUgY2h1bmsgYmVmb3JlIHN0cmVhbWluZyBpdCBmb3J3YXJkIHdoaWNoIG1lYW5zIHRoZSBjaHVuayB3aWxsIHJlcHJlc2VudFxuICAgICAgICAgICAgLy8gYSBzaW5nbGUgY29oZXJlbnQgdXRmLTggc3RyaW5nLiBUaGlzIGlzIG5vdCBzYWZlIHRvIHVzZSBpZiB3ZSBjaGFuZ2Ugb3VyIHN0cmVhbWluZyB0byBub1xuICAgICAgICAgICAgLy8gbG9uZ2VyIGRvIHRoaXMgbGFyZ2UgYnVmZmVyZWQgY2h1bmtcbiAgICAgICAgICAgIGlmICgoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLmlzRXF1aXZhbGVudFVpbnQ4QXJyYXlzKShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWV9BTkRfSFRNTCkgfHwgKDAsIF91aW50OGFycmF5aGVscGVycy5pc0VxdWl2YWxlbnRVaW50OEFycmF5cykoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuQ0xPU0VELkJPRFkpIHx8ICgwLCBfdWludDhhcnJheWhlbHBlcnMuaXNFcXVpdmFsZW50VWludDhBcnJheXMpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5IVE1MKSkge1xuICAgICAgICAgICAgICAgIC8vIHRoZSBlbnRpcmUgY2h1bmsgaXMgdGhlIGNsb3NpbmcgdGFnczsgcmV0dXJuIHdpdGhvdXQgZW5xdWV1ZWluZyBhbnl0aGluZy5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXZSBhc3N1bWUgdGhlc2UgdGFncyB3aWxsIGdvIGF0IHRvZ2V0aGVyIGF0IHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50IGFuZCB0aGF0XG4gICAgICAgICAgICAvLyB0aGV5IHdvbid0IGFwcGVhciBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC4gVGhpcyBpcyBub3QgcmVhbGx5IGEgc2FmZSBhc3N1bXB0aW9uXG4gICAgICAgICAgICAvLyBidXQgdW50aWwgd2UgcmV2YW1wIG91ciBzdHJlYW1pbmcgaW5mcmEgdGhpcyBpcyBhIHBlcmZvcm1hbnQgd2F5IHRvIHN0cmluZyB0aGUgdGFnc1xuICAgICAgICAgICAgY2h1bmsgPSAoMCwgX3VpbnQ4YXJyYXloZWxwZXJzLnJlbW92ZUZyb21VaW50OEFycmF5KShjaHVuaywgX2VuY29kZWR0YWdzLkVOQ09ERURfVEFHUy5DTE9TRUQuQk9EWSk7XG4gICAgICAgICAgICBjaHVuayA9ICgwLCBfdWludDhhcnJheWhlbHBlcnMucmVtb3ZlRnJvbVVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLkNMT1NFRC5IVE1MKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVJvb3RMYXlvdXRWYWxpZGF0b3JTdHJlYW0oKSB7XG4gICAgbGV0IGZvdW5kSHRtbCA9IGZhbHNlO1xuICAgIGxldCBmb3VuZEJvZHkgPSBmYWxzZTtcbiAgICByZXR1cm4gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgIGFzeW5jIHRyYW5zZm9ybSAoY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgIC8vIFBlZWsgaW50byB0aGUgc3RyZWFtZWQgY2h1bmsgdG8gc2VlIGlmIHRoZSB0YWdzIGFyZSBwcmVzZW50LlxuICAgICAgICAgICAgaWYgKCFmb3VuZEh0bWwgJiYgKDAsIF91aW50OGFycmF5aGVscGVycy5pbmRleE9mVWludDhBcnJheSkoY2h1bmssIF9lbmNvZGVkdGFncy5FTkNPREVEX1RBR1MuT1BFTklORy5IVE1MKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZm91bmRIdG1sID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZm91bmRCb2R5ICYmICgwLCBfdWludDhhcnJheWhlbHBlcnMuaW5kZXhPZlVpbnQ4QXJyYXkpKGNodW5rLCBfZW5jb2RlZHRhZ3MuRU5DT0RFRF9UQUdTLk9QRU5JTkcuQk9EWSkgPiAtMSkge1xuICAgICAgICAgICAgICAgIGZvdW5kQm9keSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspO1xuICAgICAgICB9LFxuICAgICAgICBmbHVzaCAoY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29uc3QgbWlzc2luZ1RhZ3MgPSBbXTtcbiAgICAgICAgICAgIGlmICghZm91bmRIdG1sKSBtaXNzaW5nVGFncy5wdXNoKCdodG1sJyk7XG4gICAgICAgICAgICBpZiAoIWZvdW5kQm9keSkgbWlzc2luZ1RhZ3MucHVzaCgnYm9keScpO1xuICAgICAgICAgICAgaWYgKCFtaXNzaW5nVGFncy5sZW5ndGgpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZShgPGh0bWwgaWQ9XCJfX25leHRfZXJyb3JfX1wiPlxuICAgICAgICAgICAgPHRlbXBsYXRlXG4gICAgICAgICAgICAgIGRhdGEtbmV4dC1lcnJvci1tZXNzYWdlPVwiTWlzc2luZyAke21pc3NpbmdUYWdzLm1hcCgoYyk9PmA8JHtjfT5gKS5qb2luKG1pc3NpbmdUYWdzLmxlbmd0aCA+IDEgPyAnIGFuZCAnIDogJycpfSB0YWdzIGluIHRoZSByb290IGxheW91dC5cXG5SZWFkIG1vcmUgYXQgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlzc2luZy1yb290LWxheW91dC10YWdzXCJcIlxuICAgICAgICAgICAgICBkYXRhLW5leHQtZXJyb3ItZGlnZXN0PVwiJHtfY29uc3RhbnRzMS5NSVNTSU5HX1JPT1RfVEFHU19FUlJPUn1cIlxuICAgICAgICAgICAgICBkYXRhLW5leHQtZXJyb3Itc3RhY2s9XCJcIlxuICAgICAgICAgICAgPjwvdGVtcGxhdGU+XG4gICAgICAgICAgYCkpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBjaGFpblRyYW5zZm9ybWVycyhyZWFkYWJsZSwgdHJhbnNmb3JtZXJzKSB7XG4gICAgbGV0IHN0cmVhbSA9IHJlYWRhYmxlO1xuICAgIGZvciAoY29uc3QgdHJhbnNmb3JtZXIgb2YgdHJhbnNmb3JtZXJzKXtcbiAgICAgICAgaWYgKCF0cmFuc2Zvcm1lcikgY29udGludWU7XG4gICAgICAgIHN0cmVhbSA9IHN0cmVhbS5waXBlVGhyb3VnaCh0cmFuc2Zvcm1lcik7XG4gICAgfVxuICAgIHJldHVybiBzdHJlYW07XG59XG5hc3luYyBmdW5jdGlvbiBjb250aW51ZUZpenpTdHJlYW0ocmVuZGVyU3RyZWFtLCB7IHN1ZmZpeCwgaW5saW5lZERhdGFTdHJlYW0sIGlzU3RhdGljR2VuZXJhdGlvbiwgaXNCdWlsZFRpbWVQcmVyZW5kZXJpbmcsIGJ1aWxkSWQsIGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSwgdmFsaWRhdGVSb290TGF5b3V0IH0pIHtcbiAgICAvLyBTdWZmaXggaXRzZWxmIG1pZ2h0IGNvbnRhaW4gY2xvc2UgdGFncyBhdCB0aGUgZW5kLCBzbyB3ZSBuZWVkIHRvIHNwbGl0IGl0LlxuICAgIGNvbnN0IHN1ZmZpeFVuY2xvc2VkID0gc3VmZml4ID8gc3VmZml4LnNwbGl0KENMT1NFX1RBRywgMSlbMF0gOiBudWxsO1xuICAgIC8vIElmIHdlJ3JlIGdlbmVyYXRpbmcgc3RhdGljIEhUTUwgYW5kIHRoZXJlJ3MgYW4gYGFsbFJlYWR5YCBwcm9taXNlIG9uIHRoZVxuICAgIC8vIHN0cmVhbSwgd2UgbmVlZCB0byB3YWl0IGZvciBpdCB0byByZXNvbHZlIGJlZm9yZSBjb250aW51aW5nLlxuICAgIGlmIChpc1N0YXRpY0dlbmVyYXRpb24gJiYgJ2FsbFJlYWR5JyBpbiByZW5kZXJTdHJlYW0pIHtcbiAgICAgICAgYXdhaXQgcmVuZGVyU3RyZWFtLmFsbFJlYWR5O1xuICAgIH1cbiAgICByZXR1cm4gY2hhaW5UcmFuc2Zvcm1lcnMocmVuZGVyU3RyZWFtLCBbXG4gICAgICAgIC8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgICAgIGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCksXG4gICAgICAgIC8vIEFkZCBidWlsZCBpZCBjb21tZW50IHRvIHN0YXJ0IG9mIHRoZSBIVE1MIGRvY3VtZW50IChpbiBleHBvcnQgbW9kZSlcbiAgICAgICAgY3JlYXRlUHJlZmV0Y2hDb21tZW50U3RyZWFtKGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nLCBidWlsZElkKSxcbiAgICAgICAgLy8gVHJhbnNmb3JtIG1ldGFkYXRhXG4gICAgICAgIGNyZWF0ZU1ldGFkYXRhVHJhbnNmb3JtU3RyZWFtKGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEpLFxuICAgICAgICAvLyBJbnNlcnQgc3VmZml4IGNvbnRlbnRcbiAgICAgICAgc3VmZml4VW5jbG9zZWQgIT0gbnVsbCAmJiBzdWZmaXhVbmNsb3NlZC5sZW5ndGggPiAwID8gY3JlYXRlRGVmZXJyZWRTdWZmaXhTdHJlYW0oc3VmZml4VW5jbG9zZWQpIDogbnVsbCxcbiAgICAgICAgLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgICAgICBpbmxpbmVkRGF0YVN0cmVhbSA/IGNyZWF0ZU1lcmdlZFRyYW5zZm9ybVN0cmVhbShpbmxpbmVkRGF0YVN0cmVhbSkgOiBudWxsLFxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgcm9vdCBsYXlvdXQgZm9yIG1pc3NpbmcgaHRtbCBvciBib2R5IHRhZ3NcbiAgICAgICAgdmFsaWRhdGVSb290TGF5b3V0ID8gY3JlYXRlUm9vdExheW91dFZhbGlkYXRvclN0cmVhbSgpIDogbnVsbCxcbiAgICAgICAgLy8gQ2xvc2UgdGFncyBzaG91bGQgYWx3YXlzIGJlIGRlZmVycmVkIHRvIHRoZSBlbmRcbiAgICAgICAgY3JlYXRlTW92ZVN1ZmZpeFN0cmVhbSgpLFxuICAgICAgICAvLyBTcGVjaWFsIGhlYWQgaW5zZXJ0aW9uc1xuICAgICAgICAvLyBUT0RPLUFQUDogSW5zZXJ0IHNlcnZlciBzaWRlIGh0bWwgdG8gZW5kIG9mIGhlYWQgaW4gYXBwIGxheW91dCByZW5kZXJpbmcsIHRvIGF2b2lkXG4gICAgICAgIC8vIGh5ZHJhdGlvbiBlcnJvcnMuIFJlbW92ZSB0aGlzIG9uY2UgaXQncyByZWFkeSB0byBiZSBoYW5kbGVkIGJ5IHJlYWN0IGl0c2VsZi5cbiAgICAgICAgY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpXG4gICAgXSk7XG59XG5hc3luYyBmdW5jdGlvbiBjb250aW51ZUR5bmFtaWNQcmVyZW5kZXIocHJlcmVuZGVyU3RyZWFtLCB7IGdldFNlcnZlckluc2VydGVkSFRNTCwgZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSB9KSB7XG4gICAgcmV0dXJuIHByZXJlbmRlclN0cmVhbS8vIEJ1ZmZlciBldmVyeXRoaW5nIHRvIGF2b2lkIGZsdXNoaW5nIHRvbyBmcmVxdWVudGx5XG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUJ1ZmZlcmVkVHJhbnNmb3JtU3RyZWFtKCkpLnBpcGVUaHJvdWdoKGNyZWF0ZVN0cmlwRG9jdW1lbnRDbG9zaW5nVGFnc1RyYW5zZm9ybSgpKS8vIEluc2VydCBnZW5lcmF0ZWQgdGFncyB0byBoZWFkXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKSkvLyBUcmFuc2Zvcm0gbWV0YWRhdGFcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSkpO1xufVxuYXN5bmMgZnVuY3Rpb24gY29udGludWVTdGF0aWNQcmVyZW5kZXIocHJlcmVuZGVyU3RyZWFtLCB7IGlubGluZWREYXRhU3RyZWFtLCBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwsIGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEsIGlzQnVpbGRUaW1lUHJlcmVuZGVyaW5nLCBidWlsZElkIH0pIHtcbiAgICByZXR1cm4gcHJlcmVuZGVyU3RyZWFtLy8gQnVmZmVyIGV2ZXJ5dGhpbmcgdG8gYXZvaWQgZmx1c2hpbmcgdG9vIGZyZXF1ZW50bHlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlQnVmZmVyZWRUcmFuc2Zvcm1TdHJlYW0oKSkvLyBBZGQgYnVpbGQgaWQgY29tbWVudCB0byBzdGFydCBvZiB0aGUgSFRNTCBkb2N1bWVudCAoaW4gZXhwb3J0IG1vZGUpXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZVByZWZldGNoQ29tbWVudFN0cmVhbShpc0J1aWxkVGltZVByZXJlbmRlcmluZywgYnVpbGRJZCkpLy8gSW5zZXJ0IGdlbmVyYXRlZCB0YWdzIHRvIGhlYWRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlSGVhZEluc2VydGlvblRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwpKS8vIFRyYW5zZm9ybSBtZXRhZGF0YVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNZXRhZGF0YVRyYW5zZm9ybVN0cmVhbShnZXRTZXJ2ZXJJbnNlcnRlZE1ldGFkYXRhKSkvLyBJbnNlcnQgdGhlIGlubGluZWQgZGF0YSAoRmxpZ2h0IGRhdGEsIGZvcm0gc3RhdGUsIGV0Yy4pIHN0cmVhbSBpbnRvIHRoZSBIVE1MXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1lcmdlZFRyYW5zZm9ybVN0cmVhbShpbmxpbmVkRGF0YVN0cmVhbSkpLy8gQ2xvc2UgdGFncyBzaG91bGQgYWx3YXlzIGJlIGRlZmVycmVkIHRvIHRoZSBlbmRcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTW92ZVN1ZmZpeFN0cmVhbSgpKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGNvbnRpbnVlRHluYW1pY0hUTUxSZXN1bWUocmVuZGVyU3RyZWFtLCB7IGlubGluZWREYXRhU3RyZWFtLCBnZXRTZXJ2ZXJJbnNlcnRlZEhUTUwsIGdldFNlcnZlckluc2VydGVkTWV0YWRhdGEgfSkge1xuICAgIHJldHVybiByZW5kZXJTdHJlYW0vLyBCdWZmZXIgZXZlcnl0aGluZyB0byBhdm9pZCBmbHVzaGluZyB0b28gZnJlcXVlbnRseVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVCdWZmZXJlZFRyYW5zZm9ybVN0cmVhbSgpKS8vIEluc2VydCBnZW5lcmF0ZWQgdGFncyB0byBoZWFkXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUhlYWRJbnNlcnRpb25UcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRIVE1MKSkvLyBUcmFuc2Zvcm0gbWV0YWRhdGFcbiAgICAucGlwZVRocm91Z2goY3JlYXRlTWV0YWRhdGFUcmFuc2Zvcm1TdHJlYW0oZ2V0U2VydmVySW5zZXJ0ZWRNZXRhZGF0YSkpLy8gSW5zZXJ0IHRoZSBpbmxpbmVkIGRhdGEgKEZsaWdodCBkYXRhLCBmb3JtIHN0YXRlLCBldGMuKSBzdHJlYW0gaW50byB0aGUgSFRNTFxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVNZXJnZWRUcmFuc2Zvcm1TdHJlYW0oaW5saW5lZERhdGFTdHJlYW0pKS8vIENsb3NlIHRhZ3Mgc2hvdWxkIGFsd2F5cyBiZSBkZWZlcnJlZCB0byB0aGUgZW5kXG4gICAgLnBpcGVUaHJvdWdoKGNyZWF0ZU1vdmVTdWZmaXhTdHJlYW0oKSk7XG59XG5mdW5jdGlvbiBjcmVhdGVEb2N1bWVudENsb3NpbmdTdHJlYW0oKSB7XG4gICAgcmV0dXJuIHN0cmVhbUZyb21TdHJpbmcoQ0xPU0VfVEFHKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9kZS13ZWItc3RyZWFtcy1oZWxwZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/stream-utils/node-web-streams-helper.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/server/stream-utils/uint8array-helpers.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Find the starting index of Uint8Array `b` within Uint8Array `a`.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n indexOfUint8Array: function() {\n return indexOfUint8Array;\n },\n isEquivalentUint8Arrays: function() {\n return isEquivalentUint8Arrays;\n },\n removeFromUint8Array: function() {\n return removeFromUint8Array;\n }\n});\nfunction indexOfUint8Array(a, b) {\n if (b.length === 0) return 0;\n if (a.length === 0 || b.length > a.length) return -1;\n // start iterating through `a`\n for(let i = 0; i <= a.length - b.length; i++){\n let completeMatch = true;\n // from index `i`, iterate through `b` and check for mismatch\n for(let j = 0; j < b.length; j++){\n // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`.\n if (a[i + j] !== b[j]) {\n completeMatch = false;\n break;\n }\n }\n if (completeMatch) {\n return i;\n }\n }\n return -1;\n}\nfunction isEquivalentUint8Arrays(a, b) {\n if (a.length !== b.length) return false;\n for(let i = 0; i < a.length; i++){\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\nfunction removeFromUint8Array(a, b) {\n const tagIndex = indexOfUint8Array(a, b);\n if (tagIndex === 0) return a.subarray(b.length);\n if (tagIndex > -1) {\n const removed = new Uint8Array(a.length - b.length);\n removed.set(a.slice(0, tagIndex));\n removed.set(a.slice(tagIndex + b.length), tagIndex);\n return removed;\n } else {\n return a;\n }\n}\n\n//# sourceMappingURL=uint8array-helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvdWludDhhcnJheS1oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxJQUFpQjtBQUNqQiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwwQkFBMEI7QUFDN0M7QUFDQTtBQUNBLHVCQUF1QixjQUFjO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsY0FBYztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvdWludDhhcnJheS1oZWxwZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmluZCB0aGUgc3RhcnRpbmcgaW5kZXggb2YgVWludDhBcnJheSBgYmAgd2l0aGluIFVpbnQ4QXJyYXkgYGFgLlxuICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaW5kZXhPZlVpbnQ4QXJyYXk6IG51bGwsXG4gICAgaXNFcXVpdmFsZW50VWludDhBcnJheXM6IG51bGwsXG4gICAgcmVtb3ZlRnJvbVVpbnQ4QXJyYXk6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaW5kZXhPZlVpbnQ4QXJyYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaW5kZXhPZlVpbnQ4QXJyYXk7XG4gICAgfSxcbiAgICBpc0VxdWl2YWxlbnRVaW50OEFycmF5czogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0VxdWl2YWxlbnRVaW50OEFycmF5cztcbiAgICB9LFxuICAgIHJlbW92ZUZyb21VaW50OEFycmF5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlbW92ZUZyb21VaW50OEFycmF5O1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaW5kZXhPZlVpbnQ4QXJyYXkoYSwgYikge1xuICAgIGlmIChiLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG4gICAgaWYgKGEubGVuZ3RoID09PSAwIHx8IGIubGVuZ3RoID4gYS5sZW5ndGgpIHJldHVybiAtMTtcbiAgICAvLyBzdGFydCBpdGVyYXRpbmcgdGhyb3VnaCBgYWBcbiAgICBmb3IobGV0IGkgPSAwOyBpIDw9IGEubGVuZ3RoIC0gYi5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGxldCBjb21wbGV0ZU1hdGNoID0gdHJ1ZTtcbiAgICAgICAgLy8gZnJvbSBpbmRleCBgaWAsIGl0ZXJhdGUgdGhyb3VnaCBgYmAgYW5kIGNoZWNrIGZvciBtaXNtYXRjaFxuICAgICAgICBmb3IobGV0IGogPSAwOyBqIDwgYi5sZW5ndGg7IGorKyl7XG4gICAgICAgICAgICAvLyBpZiB0aGUgdmFsdWVzIGRvIG5vdCBtYXRjaCwgdGhlbiB0aGlzIGlzbid0IGEgY29tcGxldGUgbWF0Y2gsIGV4aXQgYGJgIGl0ZXJhdGlvbiBlYXJseSBhbmQgaXRlcmF0ZSB0byBuZXh0IGluZGV4IG9mIGBhYC5cbiAgICAgICAgICAgIGlmIChhW2kgKyBqXSAhPT0gYltqXSkge1xuICAgICAgICAgICAgICAgIGNvbXBsZXRlTWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY29tcGxldGVNYXRjaCkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIC0xO1xufVxuZnVuY3Rpb24gaXNFcXVpdmFsZW50VWludDhBcnJheXMoYSwgYikge1xuICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICBmb3IobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKyl7XG4gICAgICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gcmVtb3ZlRnJvbVVpbnQ4QXJyYXkoYSwgYikge1xuICAgIGNvbnN0IHRhZ0luZGV4ID0gaW5kZXhPZlVpbnQ4QXJyYXkoYSwgYik7XG4gICAgaWYgKHRhZ0luZGV4ID09PSAwKSByZXR1cm4gYS5zdWJhcnJheShiLmxlbmd0aCk7XG4gICAgaWYgKHRhZ0luZGV4ID4gLTEpIHtcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IG5ldyBVaW50OEFycmF5KGEubGVuZ3RoIC0gYi5sZW5ndGgpO1xuICAgICAgICByZW1vdmVkLnNldChhLnNsaWNlKDAsIHRhZ0luZGV4KSk7XG4gICAgICAgIHJlbW92ZWQuc2V0KGEuc2xpY2UodGFnSW5kZXggKyBiLmxlbmd0aCksIHRhZ0luZGV4KTtcbiAgICAgICAgcmV0dXJuIHJlbW92ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGE7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11aW50OGFycmF5LWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/stream-utils/uint8array-helpers.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/error.js":
/*!****************************************************!*\
!*** ./node_modules/next/dist/server/web/error.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PageSignatureError: function() {\n return PageSignatureError;\n },\n RemovedPageError: function() {\n return RemovedPageError;\n },\n RemovedUAError: function() {\n return RemovedUAError;\n }\n});\nclass PageSignatureError extends Error {\n constructor({ page }){\n super(`The middleware \"${page}\" accepts an async API directly with the form:\n \n export function middleware(request, event) {\n return NextResponse.redirect('/new-location')\n }\n \n Read more: https://nextjs.org/docs/messages/middleware-new-signature\n `);\n }\n}\nclass RemovedPageError extends Error {\n constructor(){\n super(`The request.page has been deprecated in favour of \\`URLPattern\\`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n `);\n }\n}\nclass RemovedUAError extends Error {\n constructor(){\n super(`The request.ua has been removed in favour of \\`userAgent\\` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n `);\n }\n}\n\n//# sourceMappingURL=error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLGtCQUFrQixNQUFNO0FBQ3hCLGlDQUFpQyxLQUFLO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIFBhZ2VTaWduYXR1cmVFcnJvcjogbnVsbCxcbiAgICBSZW1vdmVkUGFnZUVycm9yOiBudWxsLFxuICAgIFJlbW92ZWRVQUVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIFBhZ2VTaWduYXR1cmVFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQYWdlU2lnbmF0dXJlRXJyb3I7XG4gICAgfSxcbiAgICBSZW1vdmVkUGFnZUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlbW92ZWRQYWdlRXJyb3I7XG4gICAgfSxcbiAgICBSZW1vdmVkVUFFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZW1vdmVkVUFFcnJvcjtcbiAgICB9XG59KTtcbmNsYXNzIFBhZ2VTaWduYXR1cmVFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcih7IHBhZ2UgfSl7XG4gICAgICAgIHN1cGVyKGBUaGUgbWlkZGxld2FyZSBcIiR7cGFnZX1cIiBhY2NlcHRzIGFuIGFzeW5jIEFQSSBkaXJlY3RseSB3aXRoIHRoZSBmb3JtOlxuICBcbiAgZXhwb3J0IGZ1bmN0aW9uIG1pZGRsZXdhcmUocmVxdWVzdCwgZXZlbnQpIHtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLnJlZGlyZWN0KCcvbmV3LWxvY2F0aW9uJylcbiAgfVxuICBcbiAgUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLW5ldy1zaWduYXR1cmVcbiAgYCk7XG4gICAgfVxufVxuY2xhc3MgUmVtb3ZlZFBhZ2VFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcihgVGhlIHJlcXVlc3QucGFnZSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBcXGBVUkxQYXR0ZXJuXFxgLlxuICBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcmVxdWVzdC1wYWdlXG4gIGApO1xuICAgIH1cbn1cbmNsYXNzIFJlbW92ZWRVQUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKGBUaGUgcmVxdWVzdC51YSBoYXMgYmVlbiByZW1vdmVkIGluIGZhdm91ciBvZiBcXGB1c2VyQWdlbnRcXGAgZnVuY3Rpb24uXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlkZGxld2FyZS1wYXJzZS11c2VyLWFnZW50XG4gIGApO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXJyb3IuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/error.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/exports/index.js":
/*!************************************************************!*\
!*** ./node_modules/next/dist/server/web/exports/index.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("// Alias index file of next/server for edge runtime for tree-shaking purpose\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ImageResponse: function() {\n return _imageresponse.ImageResponse;\n },\n NextRequest: function() {\n return _request.NextRequest;\n },\n NextResponse: function() {\n return _response.NextResponse;\n },\n URLPattern: function() {\n return _urlpattern.URLPattern;\n },\n after: function() {\n return _after.after;\n },\n connection: function() {\n return _connection.connection;\n },\n unstable_rootParams: function() {\n return _rootparams.unstable_rootParams;\n },\n userAgent: function() {\n return _useragent.userAgent;\n },\n userAgentFromString: function() {\n return _useragent.userAgentFromString;\n }\n});\nconst _imageresponse = __webpack_require__(/*! ../spec-extension/image-response */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js\");\nconst _request = __webpack_require__(/*! ../spec-extension/request */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js\");\nconst _response = __webpack_require__(/*! ../spec-extension/response */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js\");\nconst _useragent = __webpack_require__(/*! ../spec-extension/user-agent */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js\");\nconst _urlpattern = __webpack_require__(/*! ../spec-extension/url-pattern */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js\");\nconst _after = __webpack_require__(/*! ../../after */ \"(rsc)/./node_modules/next/dist/server/after/index.js\");\nconst _connection = __webpack_require__(/*! ../../request/connection */ \"(rsc)/./node_modules/next/dist/server/request/connection.js\");\nconst _rootparams = __webpack_require__(/*! ../../request/root-params */ \"(rsc)/./node_modules/next/dist/server/request/root-params.js\");\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvZXhwb3J0cy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQVVMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdUJBQXVCLG1CQUFPLENBQUMsb0hBQWtDO0FBQ2pFLGlCQUFpQixtQkFBTyxDQUFDLHNHQUEyQjtBQUNwRCxrQkFBa0IsbUJBQU8sQ0FBQyx3R0FBNEI7QUFDdEQsbUJBQW1CLG1CQUFPLENBQUMsNEdBQThCO0FBQ3pELG9CQUFvQixtQkFBTyxDQUFDLDhHQUErQjtBQUMzRCxlQUFlLG1CQUFPLENBQUMseUVBQWE7QUFDcEMsb0JBQW9CLG1CQUFPLENBQUMsNkZBQTBCO0FBQ3RELG9CQUFvQixtQkFBTyxDQUFDLCtGQUEyQjs7QUFFdkQiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFsaWFzIGluZGV4IGZpbGUgb2YgbmV4dC9zZXJ2ZXIgZm9yIGVkZ2UgcnVudGltZSBmb3IgdHJlZS1zaGFraW5nIHB1cnBvc2VcblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgSW1hZ2VSZXNwb25zZTogbnVsbCxcbiAgICBOZXh0UmVxdWVzdDogbnVsbCxcbiAgICBOZXh0UmVzcG9uc2U6IG51bGwsXG4gICAgVVJMUGF0dGVybjogbnVsbCxcbiAgICBhZnRlcjogbnVsbCxcbiAgICBjb25uZWN0aW9uOiBudWxsLFxuICAgIHVuc3RhYmxlX3Jvb3RQYXJhbXM6IG51bGwsXG4gICAgdXNlckFnZW50OiBudWxsLFxuICAgIHVzZXJBZ2VudEZyb21TdHJpbmc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgSW1hZ2VSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfaW1hZ2VyZXNwb25zZS5JbWFnZVJlc3BvbnNlO1xuICAgIH0sXG4gICAgTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3JlcXVlc3QuTmV4dFJlcXVlc3Q7XG4gICAgfSxcbiAgICBOZXh0UmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3Jlc3BvbnNlLk5leHRSZXNwb25zZTtcbiAgICB9LFxuICAgIFVSTFBhdHRlcm46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3VybHBhdHRlcm4uVVJMUGF0dGVybjtcbiAgICB9LFxuICAgIGFmdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9hZnRlci5hZnRlcjtcbiAgICB9LFxuICAgIGNvbm5lY3Rpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2Nvbm5lY3Rpb24uY29ubmVjdGlvbjtcbiAgICB9LFxuICAgIHVuc3RhYmxlX3Jvb3RQYXJhbXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3Jvb3RwYXJhbXMudW5zdGFibGVfcm9vdFBhcmFtcztcbiAgICB9LFxuICAgIHVzZXJBZ2VudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdXNlcmFnZW50LnVzZXJBZ2VudDtcbiAgICB9LFxuICAgIHVzZXJBZ2VudEZyb21TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3VzZXJhZ2VudC51c2VyQWdlbnRGcm9tU3RyaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgX2ltYWdlcmVzcG9uc2UgPSByZXF1aXJlKFwiLi4vc3BlYy1leHRlbnNpb24vaW1hZ2UtcmVzcG9uc2VcIik7XG5jb25zdCBfcmVxdWVzdCA9IHJlcXVpcmUoXCIuLi9zcGVjLWV4dGVuc2lvbi9yZXF1ZXN0XCIpO1xuY29uc3QgX3Jlc3BvbnNlID0gcmVxdWlyZShcIi4uL3NwZWMtZXh0ZW5zaW9uL3Jlc3BvbnNlXCIpO1xuY29uc3QgX3VzZXJhZ2VudCA9IHJlcXVpcmUoXCIuLi9zcGVjLWV4dGVuc2lvbi91c2VyLWFnZW50XCIpO1xuY29uc3QgX3VybHBhdHRlcm4gPSByZXF1aXJlKFwiLi4vc3BlYy1leHRlbnNpb24vdXJsLXBhdHRlcm5cIik7XG5jb25zdCBfYWZ0ZXIgPSByZXF1aXJlKFwiLi4vLi4vYWZ0ZXJcIik7XG5jb25zdCBfY29ubmVjdGlvbiA9IHJlcXVpcmUoXCIuLi8uLi9yZXF1ZXN0L2Nvbm5lY3Rpb25cIik7XG5jb25zdCBfcm9vdHBhcmFtcyA9IHJlcXVpcmUoXCIuLi8uLi9yZXF1ZXN0L3Jvb3QtcGFyYW1zXCIpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/exports/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/next-url.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/server/web/next-url.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NextURL\", ({\n enumerable: true,\n get: function() {\n return NextURL;\n }\n}));\nconst _detectdomainlocale = __webpack_require__(/*! ../../shared/lib/i18n/detect-domain-locale */ \"(rsc)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\");\nconst _formatnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/format-next-pathname-info */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\");\nconst _gethostname = __webpack_require__(/*! ../../shared/lib/get-hostname */ \"(rsc)/./node_modules/next/dist/shared/lib/get-hostname.js\");\nconst _getnextpathnameinfo = __webpack_require__(/*! ../../shared/lib/router/utils/get-next-pathname-info */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\");\nconst REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\\/\\/)(127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1\\]|localhost)/;\nfunction parseURL(url, base) {\n return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, 'localhost'));\n}\nconst Internal = Symbol('NextURLInternal');\nclass NextURL {\n constructor(input, baseOrOpts, opts){\n let base;\n let options;\n if (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts || typeof baseOrOpts === 'string') {\n base = baseOrOpts;\n options = opts || {};\n } else {\n options = opts || baseOrOpts || {};\n }\n this[Internal] = {\n url: parseURL(input, base ?? options.base),\n options: options,\n basePath: ''\n };\n this.analyze();\n }\n analyze() {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1;\n const info = (0, _getnextpathnameinfo.getNextPathnameInfo)(this[Internal].url.pathname, {\n nextConfig: this[Internal].options.nextConfig,\n parseData: !undefined,\n i18nProvider: this[Internal].options.i18nProvider\n });\n const hostname = (0, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers);\n this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname);\n const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale);\n this[Internal].url.pathname = info.pathname;\n this[Internal].defaultLocale = defaultLocale;\n this[Internal].basePath = info.basePath ?? '';\n this[Internal].buildId = info.buildId;\n this[Internal].locale = info.locale ?? defaultLocale;\n this[Internal].trailingSlash = info.trailingSlash;\n }\n formatPathname() {\n return (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n basePath: this[Internal].basePath,\n buildId: this[Internal].buildId,\n defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined,\n locale: this[Internal].locale,\n pathname: this[Internal].url.pathname,\n trailingSlash: this[Internal].trailingSlash\n });\n }\n formatSearch() {\n return this[Internal].url.search;\n }\n get buildId() {\n return this[Internal].buildId;\n }\n set buildId(buildId) {\n this[Internal].buildId = buildId;\n }\n get locale() {\n return this[Internal].locale ?? '';\n }\n set locale(locale) {\n var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig;\n if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) {\n throw Object.defineProperty(new TypeError(`The NextURL configuration includes no locale \"${locale}\"`), \"__NEXT_ERROR_CODE\", {\n value: \"E597\",\n enumerable: false,\n configurable: true\n });\n }\n this[Internal].locale = locale;\n }\n get defaultLocale() {\n return this[Internal].defaultLocale;\n }\n get domainLocale() {\n return this[Internal].domainLocale;\n }\n get searchParams() {\n return this[Internal].url.searchParams;\n }\n get host() {\n return this[Internal].url.host;\n }\n set host(value) {\n this[Internal].url.host = value;\n }\n get hostname() {\n return this[Internal].url.hostname;\n }\n set hostname(value) {\n this[Internal].url.hostname = value;\n }\n get port() {\n return this[Internal].url.port;\n }\n set port(value) {\n this[Internal].url.port = value;\n }\n get protocol() {\n return this[Internal].url.protocol;\n }\n set protocol(value) {\n this[Internal].url.protocol = value;\n }\n get href() {\n const pathname = this.formatPathname();\n const search = this.formatSearch();\n return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`;\n }\n set href(url) {\n this[Internal].url = parseURL(url);\n this.analyze();\n }\n get origin() {\n return this[Internal].url.origin;\n }\n get pathname() {\n return this[Internal].url.pathname;\n }\n set pathname(value) {\n this[Internal].url.pathname = value;\n }\n get hash() {\n return this[Internal].url.hash;\n }\n set hash(value) {\n this[Internal].url.hash = value;\n }\n get search() {\n return this[Internal].url.search;\n }\n set search(value) {\n this[Internal].url.search = value;\n }\n get password() {\n return this[Internal].url.password;\n }\n set password(value) {\n this[Internal].url.password = value;\n }\n get username() {\n return this[Internal].url.username;\n }\n set username(value) {\n this[Internal].url.username = value;\n }\n get basePath() {\n return this[Internal].basePath;\n }\n set basePath(value) {\n this[Internal].basePath = value.startsWith('/') ? value : `/${value}`;\n }\n toString() {\n return this.href;\n }\n toJSON() {\n return this.href;\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n href: this.href,\n origin: this.origin,\n protocol: this.protocol,\n username: this.username,\n password: this.password,\n host: this.host,\n hostname: this.hostname,\n port: this.port,\n pathname: this.pathname,\n search: this.search,\n searchParams: this.searchParams,\n hash: this.hash\n };\n }\n clone() {\n return new NextURL(String(this), this[Internal].options);\n }\n}\n\n//# sourceMappingURL=next-url.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvbmV4dC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiw0QkFBNEIsbUJBQU8sQ0FBQywwSEFBNEM7QUFDaEYsZ0NBQWdDLG1CQUFPLENBQUMsb0pBQXlEO0FBQ2pHLHFCQUFxQixtQkFBTyxDQUFDLGdHQUErQjtBQUM1RCw2QkFBNkIsbUJBQU8sQ0FBQyw4SUFBc0Q7QUFDM0YscUdBQXFHLEVBQUU7QUFDdkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixTQUE4QztBQUN0RTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1R0FBdUcsT0FBTztBQUM5RztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGNBQWMsSUFBSSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNFQUFzRSxNQUFNO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL25leHQtdXJsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTmV4dFVSTFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTmV4dFVSTDtcbiAgICB9XG59KTtcbmNvbnN0IF9kZXRlY3Rkb21haW5sb2NhbGUgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlXCIpO1xuY29uc3QgX2Zvcm1hdG5leHRwYXRobmFtZWluZm8gPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mb1wiKTtcbmNvbnN0IF9nZXRob3N0bmFtZSA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL2dldC1ob3N0bmFtZVwiKTtcbmNvbnN0IF9nZXRuZXh0cGF0aG5hbWVpbmZvID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1uZXh0LXBhdGhuYW1lLWluZm9cIik7XG5jb25zdCBSRUdFWF9MT0NBTEhPU1RfSE9TVE5BTUUgPSAvKD8hXmh0dHBzPzpcXC9cXC8pKDEyNyg/OlxcLig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPykpezN9fFxcWzo6MVxcXXxsb2NhbGhvc3QpLztcbmZ1bmN0aW9uIHBhcnNlVVJMKHVybCwgYmFzZSkge1xuICAgIHJldHVybiBuZXcgVVJMKFN0cmluZyh1cmwpLnJlcGxhY2UoUkVHRVhfTE9DQUxIT1NUX0hPU1ROQU1FLCAnbG9jYWxob3N0JyksIGJhc2UgJiYgU3RyaW5nKGJhc2UpLnJlcGxhY2UoUkVHRVhfTE9DQUxIT1NUX0hPU1ROQU1FLCAnbG9jYWxob3N0JykpO1xufVxuY29uc3QgSW50ZXJuYWwgPSBTeW1ib2woJ05leHRVUkxJbnRlcm5hbCcpO1xuY2xhc3MgTmV4dFVSTCB7XG4gICAgY29uc3RydWN0b3IoaW5wdXQsIGJhc2VPck9wdHMsIG9wdHMpe1xuICAgICAgICBsZXQgYmFzZTtcbiAgICAgICAgbGV0IG9wdGlvbnM7XG4gICAgICAgIGlmICh0eXBlb2YgYmFzZU9yT3B0cyA9PT0gJ29iamVjdCcgJiYgJ3BhdGhuYW1lJyBpbiBiYXNlT3JPcHRzIHx8IHR5cGVvZiBiYXNlT3JPcHRzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgYmFzZSA9IGJhc2VPck9wdHM7XG4gICAgICAgICAgICBvcHRpb25zID0gb3B0cyB8fCB7fTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRzIHx8IGJhc2VPck9wdHMgfHwge307XG4gICAgICAgIH1cbiAgICAgICAgdGhpc1tJbnRlcm5hbF0gPSB7XG4gICAgICAgICAgICB1cmw6IHBhcnNlVVJMKGlucHV0LCBiYXNlID8/IG9wdGlvbnMuYmFzZSksXG4gICAgICAgICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgICAgICAgYmFzZVBhdGg6ICcnXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuYW5hbHl6ZSgpO1xuICAgIH1cbiAgICBhbmFseXplKCkge1xuICAgICAgICB2YXIgX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4sIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZywgX3RoaXNfSW50ZXJuYWxfZG9tYWluTG9jYWxlLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4bjEsIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZzE7XG4gICAgICAgIGNvbnN0IGluZm8gPSAoMCwgX2dldG5leHRwYXRobmFtZWluZm8uZ2V0TmV4dFBhdGhuYW1lSW5mbykodGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lLCB7XG4gICAgICAgICAgICBuZXh0Q29uZmlnOiB0aGlzW0ludGVybmFsXS5vcHRpb25zLm5leHRDb25maWcsXG4gICAgICAgICAgICBwYXJzZURhdGE6ICFwcm9jZXNzLmVudi5fX05FWFRfTk9fTUlERExFV0FSRV9VUkxfTk9STUFMSVpFLFxuICAgICAgICAgICAgaTE4blByb3ZpZGVyOiB0aGlzW0ludGVybmFsXS5vcHRpb25zLmkxOG5Qcm92aWRlclxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaG9zdG5hbWUgPSAoMCwgX2dldGhvc3RuYW1lLmdldEhvc3RuYW1lKSh0aGlzW0ludGVybmFsXS51cmwsIHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaGVhZGVycyk7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmRvbWFpbkxvY2FsZSA9IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMuaTE4blByb3ZpZGVyID8gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5pMThuUHJvdmlkZXIuZGV0ZWN0RG9tYWluTG9jYWxlKGhvc3RuYW1lKSA6ICgwLCBfZGV0ZWN0ZG9tYWlubG9jYWxlLmRldGVjdERvbWFpbkxvY2FsZSkoKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZyA9IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biA9IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4uZG9tYWlucywgaG9zdG5hbWUpO1xuICAgICAgICBjb25zdCBkZWZhdWx0TG9jYWxlID0gKChfdGhpc19JbnRlcm5hbF9kb21haW5Mb2NhbGUgPSB0aGlzW0ludGVybmFsXS5kb21haW5Mb2NhbGUpID09IG51bGwgPyB2b2lkIDAgOiBfdGhpc19JbnRlcm5hbF9kb21haW5Mb2NhbGUuZGVmYXVsdExvY2FsZSkgfHwgKChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWcxID0gdGhpc1tJbnRlcm5hbF0ub3B0aW9ucy5uZXh0Q29uZmlnKSA9PSBudWxsID8gdm9pZCAwIDogKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuMSA9IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZzEuaTE4bikgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuMS5kZWZhdWx0TG9jYWxlKTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBhdGhuYW1lID0gaW5mby5wYXRobmFtZTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uZGVmYXVsdExvY2FsZSA9IGRlZmF1bHRMb2NhbGU7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoID0gaW5mby5iYXNlUGF0aCA/PyAnJztcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0uYnVpbGRJZCA9IGluZm8uYnVpbGRJZDtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0ubG9jYWxlID0gaW5mby5sb2NhbGUgPz8gZGVmYXVsdExvY2FsZTtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udHJhaWxpbmdTbGFzaCA9IGluZm8udHJhaWxpbmdTbGFzaDtcbiAgICB9XG4gICAgZm9ybWF0UGF0aG5hbWUoKSB7XG4gICAgICAgIHJldHVybiAoMCwgX2Zvcm1hdG5leHRwYXRobmFtZWluZm8uZm9ybWF0TmV4dFBhdGhuYW1lSW5mbykoe1xuICAgICAgICAgICAgYmFzZVBhdGg6IHRoaXNbSW50ZXJuYWxdLmJhc2VQYXRoLFxuICAgICAgICAgICAgYnVpbGRJZDogdGhpc1tJbnRlcm5hbF0uYnVpbGRJZCxcbiAgICAgICAgICAgIGRlZmF1bHRMb2NhbGU6ICF0aGlzW0ludGVybmFsXS5vcHRpb25zLmZvcmNlTG9jYWxlID8gdGhpc1tJbnRlcm5hbF0uZGVmYXVsdExvY2FsZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxvY2FsZTogdGhpc1tJbnRlcm5hbF0ubG9jYWxlLFxuICAgICAgICAgICAgcGF0aG5hbWU6IHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSxcbiAgICAgICAgICAgIHRyYWlsaW5nU2xhc2g6IHRoaXNbSW50ZXJuYWxdLnRyYWlsaW5nU2xhc2hcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZvcm1hdFNlYXJjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5zZWFyY2g7XG4gICAgfVxuICAgIGdldCBidWlsZElkKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uYnVpbGRJZDtcbiAgICB9XG4gICAgc2V0IGJ1aWxkSWQoYnVpbGRJZCkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS5idWlsZElkID0gYnVpbGRJZDtcbiAgICB9XG4gICAgZ2V0IGxvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmxvY2FsZSA/PyAnJztcbiAgICB9XG4gICAgc2V0IGxvY2FsZShsb2NhbGUpIHtcbiAgICAgICAgdmFyIF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZ19pMThuLCBfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWc7XG4gICAgICAgIGlmICghdGhpc1tJbnRlcm5hbF0ubG9jYWxlIHx8ICEoKF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZyA9IHRoaXNbSW50ZXJuYWxdLm9wdGlvbnMubmV4dENvbmZpZykgPT0gbnVsbCA/IHZvaWQgMCA6IChfdGhpc19JbnRlcm5hbF9vcHRpb25zX25leHRDb25maWdfaTE4biA9IF90aGlzX0ludGVybmFsX29wdGlvbnNfbmV4dENvbmZpZy5pMThuKSA9PSBudWxsID8gdm9pZCAwIDogX3RoaXNfSW50ZXJuYWxfb3B0aW9uc19uZXh0Q29uZmlnX2kxOG4ubG9jYWxlcy5pbmNsdWRlcyhsb2NhbGUpKSkge1xuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBUeXBlRXJyb3IoYFRoZSBOZXh0VVJMIGNvbmZpZ3VyYXRpb24gaW5jbHVkZXMgbm8gbG9jYWxlIFwiJHtsb2NhbGV9XCJgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTU5N1wiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpc1tJbnRlcm5hbF0ubG9jYWxlID0gbG9jYWxlO1xuICAgIH1cbiAgICBnZXQgZGVmYXVsdExvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLmRlZmF1bHRMb2NhbGU7XG4gICAgfVxuICAgIGdldCBkb21haW5Mb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS5kb21haW5Mb2NhbGU7XG4gICAgfVxuICAgIGdldCBzZWFyY2hQYXJhbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBnZXQgaG9zdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5ob3N0O1xuICAgIH1cbiAgICBzZXQgaG9zdCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaG9zdCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaG9zdG5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwuaG9zdG5hbWU7XG4gICAgfVxuICAgIHNldCBob3N0bmFtZSh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaG9zdG5hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHBvcnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwucG9ydDtcbiAgICB9XG4gICAgc2V0IHBvcnQodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnBvcnQgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHByb3RvY29sKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnByb3RvY29sO1xuICAgIH1cbiAgICBzZXQgcHJvdG9jb2wodmFsdWUpIHtcbiAgICAgICAgdGhpc1tJbnRlcm5hbF0udXJsLnByb3RvY29sID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBocmVmKCkge1xuICAgICAgICBjb25zdCBwYXRobmFtZSA9IHRoaXMuZm9ybWF0UGF0aG5hbWUoKTtcbiAgICAgICAgY29uc3Qgc2VhcmNoID0gdGhpcy5mb3JtYXRTZWFyY2goKTtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMucHJvdG9jb2x9Ly8ke3RoaXMuaG9zdH0ke3BhdGhuYW1lfSR7c2VhcmNofSR7dGhpcy5oYXNofWA7XG4gICAgfVxuICAgIHNldCBocmVmKHVybCkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwgPSBwYXJzZVVSTCh1cmwpO1xuICAgICAgICB0aGlzLmFuYWx5emUoKTtcbiAgICB9XG4gICAgZ2V0IG9yaWdpbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5vcmlnaW47XG4gICAgfVxuICAgIGdldCBwYXRobmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZTtcbiAgICB9XG4gICAgc2V0IHBhdGhuYW1lKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wYXRobmFtZSA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaGFzaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5oYXNoO1xuICAgIH1cbiAgICBzZXQgaGFzaCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuaGFzaCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgc2VhcmNoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0udXJsLnNlYXJjaDtcbiAgICB9XG4gICAgc2V0IHNlYXJjaCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwuc2VhcmNoID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBwYXNzd29yZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXNbSW50ZXJuYWxdLnVybC5wYXNzd29yZDtcbiAgICB9XG4gICAgc2V0IHBhc3N3b3JkKHZhbHVlKSB7XG4gICAgICAgIHRoaXNbSW50ZXJuYWxdLnVybC5wYXNzd29yZCA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgdXNlcm5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0ludGVybmFsXS51cmwudXNlcm5hbWU7XG4gICAgfVxuICAgIHNldCB1c2VybmFtZSh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS51cmwudXNlcm5hbWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGJhc2VQYXRoKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJbnRlcm5hbF0uYmFzZVBhdGg7XG4gICAgfVxuICAgIHNldCBiYXNlUGF0aCh2YWx1ZSkge1xuICAgICAgICB0aGlzW0ludGVybmFsXS5iYXNlUGF0aCA9IHZhbHVlLnN0YXJ0c1dpdGgoJy8nKSA/IHZhbHVlIDogYC8ke3ZhbHVlfWA7XG4gICAgfVxuICAgIHRvU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ocmVmO1xuICAgIH1cbiAgICB0b0pTT04oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhyZWY7XG4gICAgfVxuICAgIFtTeW1ib2wuZm9yKCdlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b20nKV0oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBocmVmOiB0aGlzLmhyZWYsXG4gICAgICAgICAgICBvcmlnaW46IHRoaXMub3JpZ2luLFxuICAgICAgICAgICAgcHJvdG9jb2w6IHRoaXMucHJvdG9jb2wsXG4gICAgICAgICAgICB1c2VybmFtZTogdGhpcy51c2VybmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB0aGlzLnBhc3N3b3JkLFxuICAgICAgICAgICAgaG9zdDogdGhpcy5ob3N0LFxuICAgICAgICAgICAgaG9zdG5hbWU6IHRoaXMuaG9zdG5hbWUsXG4gICAgICAgICAgICBwb3J0OiB0aGlzLnBvcnQsXG4gICAgICAgICAgICBwYXRobmFtZTogdGhpcy5wYXRobmFtZSxcbiAgICAgICAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2gsXG4gICAgICAgICAgICBzZWFyY2hQYXJhbXM6IHRoaXMuc2VhcmNoUGFyYW1zLFxuICAgICAgICAgICAgaGFzaDogdGhpcy5oYXNoXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNsb25lKCkge1xuICAgICAgICByZXR1cm4gbmV3IE5leHRVUkwoU3RyaW5nKHRoaXMpLCB0aGlzW0ludGVybmFsXS5vcHRpb25zKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5leHQtdXJsLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/next-url.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/headers.js":
/*!******************************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/adapters/headers.js ***!
\******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HeadersAdapter: function() {\n return HeadersAdapter;\n },\n ReadonlyHeadersError: function() {\n return ReadonlyHeadersError;\n }\n});\nconst _reflect = __webpack_require__(/*! ./reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nclass ReadonlyHeadersError extends Error {\n constructor(){\n super('Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers');\n }\n static callable() {\n throw new ReadonlyHeadersError();\n }\n}\nclass HeadersAdapter extends Headers {\n constructor(headers){\n // We've already overridden the methods that would be called, so we're just\n // calling the super constructor to ensure that the instanceof check works.\n super();\n this.headers = new Proxy(headers, {\n get (target, prop, receiver) {\n // Because this is just an object, we expect that all \"get\" operations\n // are for properties. If it's a \"get\" for a symbol, we'll just return\n // the symbol.\n if (typeof prop === 'symbol') {\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return undefined.\n if (typeof original === 'undefined') return;\n // If the original casing exists, return the value.\n return _reflect.ReflectAdapter.get(target, original, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'symbol') {\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n }\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, use the prop as the key.\n return _reflect.ReflectAdapter.set(target, original ?? prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'symbol') return _reflect.ReflectAdapter.has(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return false.\n if (typeof original === 'undefined') return false;\n // If the original casing exists, return true.\n return _reflect.ReflectAdapter.has(target, original);\n },\n deleteProperty (target, prop) {\n if (typeof prop === 'symbol') return _reflect.ReflectAdapter.deleteProperty(target, prop);\n const lowercased = prop.toLowerCase();\n // Let's find the original casing of the key. This assumes that there is\n // no mixed case keys (e.g. \"Content-Type\" and \"content-type\") in the\n // headers object.\n const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased);\n // If the original casing doesn't exist, return true.\n if (typeof original === 'undefined') return true;\n // If the original casing exists, delete the property.\n return _reflect.ReflectAdapter.deleteProperty(target, original);\n }\n });\n }\n /**\n * Seals a Headers instance to prevent modification by throwing an error when\n * any mutating method is called.\n */ static seal(headers) {\n return new Proxy(headers, {\n get (target, prop, receiver) {\n switch(prop){\n case 'append':\n case 'delete':\n case 'set':\n return ReadonlyHeadersError.callable;\n default:\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n /**\n * Merges a header value into a string. This stores multiple values as an\n * array, so we need to merge them into a string.\n *\n * @param value a header value\n * @returns a merged header value (a string)\n */ merge(value) {\n if (Array.isArray(value)) return value.join(', ');\n return value;\n }\n /**\n * Creates a Headers instance from a plain object or a Headers instance.\n *\n * @param headers a plain object or a Headers instance\n * @returns a headers instance\n */ static from(headers) {\n if (headers instanceof Headers) return headers;\n return new HeadersAdapter(headers);\n }\n append(name, value) {\n const existing = this.headers[name];\n if (typeof existing === 'string') {\n this.headers[name] = [\n existing,\n value\n ];\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n this.headers[name] = value;\n }\n }\n delete(name) {\n delete this.headers[name];\n }\n get(name) {\n const value = this.headers[name];\n if (typeof value !== 'undefined') return this.merge(value);\n return null;\n }\n has(name) {\n return typeof this.headers[name] !== 'undefined';\n }\n set(name, value) {\n this.headers[name] = value;\n }\n forEach(callbackfn, thisArg) {\n for (const [name, value] of this.entries()){\n callbackfn.call(thisArg, value, name, this);\n }\n }\n *entries() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(name);\n yield [\n name,\n value\n ];\n }\n }\n *keys() {\n for (const key of Object.keys(this.headers)){\n const name = key.toLowerCase();\n yield name;\n }\n }\n *values() {\n for (const key of Object.keys(this.headers)){\n // We assert here that this is a string because we got it from the\n // Object.keys() call above.\n const value = this.get(key);\n yield value;\n }\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n}\n\n//# sourceMappingURL=headers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQywrRkFBVztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9oZWFkZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgSGVhZGVyc0FkYXB0ZXI6IG51bGwsXG4gICAgUmVhZG9ubHlIZWFkZXJzRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgSGVhZGVyc0FkYXB0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSGVhZGVyc0FkYXB0ZXI7XG4gICAgfSxcbiAgICBSZWFkb25seUhlYWRlcnNFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZWFkb25seUhlYWRlcnNFcnJvcjtcbiAgICB9XG59KTtcbmNvbnN0IF9yZWZsZWN0ID0gcmVxdWlyZShcIi4vcmVmbGVjdFwiKTtcbmNsYXNzIFJlYWRvbmx5SGVhZGVyc0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKCl7XG4gICAgICAgIHN1cGVyKCdIZWFkZXJzIGNhbm5vdCBiZSBtb2RpZmllZC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvaGVhZGVycycpO1xuICAgIH1cbiAgICBzdGF0aWMgY2FsbGFibGUoKSB7XG4gICAgICAgIHRocm93IG5ldyBSZWFkb25seUhlYWRlcnNFcnJvcigpO1xuICAgIH1cbn1cbmNsYXNzIEhlYWRlcnNBZGFwdGVyIGV4dGVuZHMgSGVhZGVycyB7XG4gICAgY29uc3RydWN0b3IoaGVhZGVycyl7XG4gICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgb3ZlcnJpZGRlbiB0aGUgbWV0aG9kcyB0aGF0IHdvdWxkIGJlIGNhbGxlZCwgc28gd2UncmUganVzdFxuICAgICAgICAvLyBjYWxsaW5nIHRoZSBzdXBlciBjb25zdHJ1Y3RvciB0byBlbnN1cmUgdGhhdCB0aGUgaW5zdGFuY2VvZiBjaGVjayB3b3Jrcy5cbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gbmV3IFByb3h5KGhlYWRlcnMsIHtcbiAgICAgICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgICAgIC8vIEJlY2F1c2UgdGhpcyBpcyBqdXN0IGFuIG9iamVjdCwgd2UgZXhwZWN0IHRoYXQgYWxsIFwiZ2V0XCIgb3BlcmF0aW9uc1xuICAgICAgICAgICAgICAgIC8vIGFyZSBmb3IgcHJvcGVydGllcy4gSWYgaXQncyBhIFwiZ2V0XCIgZm9yIGEgc3ltYm9sLCB3ZSdsbCBqdXN0IHJldHVyblxuICAgICAgICAgICAgICAgIC8vIHRoZSBzeW1ib2wuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3ltYm9sJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBsb3dlcmNhc2VkID0gcHJvcC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIC8vIExldCdzIGZpbmQgdGhlIG9yaWdpbmFsIGNhc2luZyBvZiB0aGUga2V5LiBUaGlzIGFzc3VtZXMgdGhhdCB0aGVyZSBpc1xuICAgICAgICAgICAgICAgIC8vIG5vIG1peGVkIGNhc2Uga2V5cyAoZS5nLiBcIkNvbnRlbnQtVHlwZVwiIGFuZCBcImNvbnRlbnQtdHlwZVwiKSBpbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBoZWFkZXJzIG9iamVjdC5cbiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoKG8pPT5vLnRvTG93ZXJDYXNlKCkgPT09IGxvd2VyY2FzZWQpO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZG9lc24ndCBleGlzdCwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9yaWdpbmFsID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZXhpc3RzLCByZXR1cm4gdGhlIHZhbHVlLlxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBvcmlnaW5hbCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzeW1ib2wnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBsb3dlcmNhc2VkID0gcHJvcC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIC8vIExldCdzIGZpbmQgdGhlIG9yaWdpbmFsIGNhc2luZyBvZiB0aGUga2V5LiBUaGlzIGFzc3VtZXMgdGhhdCB0aGVyZSBpc1xuICAgICAgICAgICAgICAgIC8vIG5vIG1peGVkIGNhc2Uga2V5cyAoZS5nLiBcIkNvbnRlbnQtVHlwZVwiIGFuZCBcImNvbnRlbnQtdHlwZVwiKSBpbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBoZWFkZXJzIG9iamVjdC5cbiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoKG8pPT5vLnRvTG93ZXJDYXNlKCkgPT09IGxvd2VyY2FzZWQpO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZG9lc24ndCBleGlzdCwgdXNlIHRoZSBwcm9wIGFzIHRoZSBrZXkuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIG9yaWdpbmFsID8/IHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzeW1ib2wnKSByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbG93ZXJjYXNlZCA9IHByb3AudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICAvLyBMZXQncyBmaW5kIHRoZSBvcmlnaW5hbCBjYXNpbmcgb2YgdGhlIGtleS4gVGhpcyBhc3N1bWVzIHRoYXQgdGhlcmUgaXNcbiAgICAgICAgICAgICAgICAvLyBubyBtaXhlZCBjYXNlIGtleXMgKGUuZy4gXCJDb250ZW50LVR5cGVcIiBhbmQgXCJjb250ZW50LXR5cGVcIikgaW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gaGVhZGVycyBvYmplY3QuXG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBPYmplY3Qua2V5cyhoZWFkZXJzKS5maW5kKChvKT0+by50b0xvd2VyQ2FzZSgpID09PSBsb3dlcmNhc2VkKTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb3JpZ2luYWwgY2FzaW5nIGRvZXNuJ3QgZXhpc3QsIHJldHVybiBmYWxzZS5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9yaWdpbmFsID09PSAndW5kZWZpbmVkJykgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZXhpc3RzLCByZXR1cm4gdHJ1ZS5cbiAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuaGFzKHRhcmdldCwgb3JpZ2luYWwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlbGV0ZVByb3BlcnR5ICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzeW1ib2wnKSByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb3dlcmNhc2VkID0gcHJvcC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIC8vIExldCdzIGZpbmQgdGhlIG9yaWdpbmFsIGNhc2luZyBvZiB0aGUga2V5LiBUaGlzIGFzc3VtZXMgdGhhdCB0aGVyZSBpc1xuICAgICAgICAgICAgICAgIC8vIG5vIG1peGVkIGNhc2Uga2V5cyAoZS5nLiBcIkNvbnRlbnQtVHlwZVwiIGFuZCBcImNvbnRlbnQtdHlwZVwiKSBpbiB0aGVcbiAgICAgICAgICAgICAgICAvLyBoZWFkZXJzIG9iamVjdC5cbiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5hbCA9IE9iamVjdC5rZXlzKGhlYWRlcnMpLmZpbmQoKG8pPT5vLnRvTG93ZXJDYXNlKCkgPT09IGxvd2VyY2FzZWQpO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZG9lc24ndCBleGlzdCwgcmV0dXJuIHRydWUuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcmlnaW5hbCBjYXNpbmcgZXhpc3RzLCBkZWxldGUgdGhlIHByb3BlcnR5LlxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIG9yaWdpbmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBTZWFscyBhIEhlYWRlcnMgaW5zdGFuY2UgdG8gcHJldmVudCBtb2RpZmljYXRpb24gYnkgdGhyb3dpbmcgYW4gZXJyb3Igd2hlblxuICAgKiBhbnkgbXV0YXRpbmcgbWV0aG9kIGlzIGNhbGxlZC5cbiAgICovIHN0YXRpYyBzZWFsKGhlYWRlcnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm94eShoZWFkZXJzLCB7XG4gICAgICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2FwcGVuZCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NldCc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVhZG9ubHlIZWFkZXJzRXJyb3IuY2FsbGFibGU7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBNZXJnZXMgYSBoZWFkZXIgdmFsdWUgaW50byBhIHN0cmluZy4gVGhpcyBzdG9yZXMgbXVsdGlwbGUgdmFsdWVzIGFzIGFuXG4gICAqIGFycmF5LCBzbyB3ZSBuZWVkIHRvIG1lcmdlIHRoZW0gaW50byBhIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIGEgaGVhZGVyIHZhbHVlXG4gICAqIEByZXR1cm5zIGEgbWVyZ2VkIGhlYWRlciB2YWx1ZSAoYSBzdHJpbmcpXG4gICAqLyBtZXJnZSh2YWx1ZSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZS5qb2luKCcsICcpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIC8qKlxuICAgKiBDcmVhdGVzIGEgSGVhZGVycyBpbnN0YW5jZSBmcm9tIGEgcGxhaW4gb2JqZWN0IG9yIGEgSGVhZGVycyBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGhlYWRlcnMgYSBwbGFpbiBvYmplY3Qgb3IgYSBIZWFkZXJzIGluc3RhbmNlXG4gICAqIEByZXR1cm5zIGEgaGVhZGVycyBpbnN0YW5jZVxuICAgKi8gc3RhdGljIGZyb20oaGVhZGVycykge1xuICAgICAgICBpZiAoaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpIHJldHVybiBoZWFkZXJzO1xuICAgICAgICByZXR1cm4gbmV3IEhlYWRlcnNBZGFwdGVyKGhlYWRlcnMpO1xuICAgIH1cbiAgICBhcHBlbmQobmFtZSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmhlYWRlcnNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlcnNbbmFtZV0gPSBbXG4gICAgICAgICAgICAgICAgZXhpc3RpbmcsXG4gICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZykpIHtcbiAgICAgICAgICAgIGV4aXN0aW5nLnB1c2godmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJzW25hbWVdID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVsZXRlKG5hbWUpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuaGVhZGVyc1tuYW1lXTtcbiAgICB9XG4gICAgZ2V0KG5hbWUpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmhlYWRlcnNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSByZXR1cm4gdGhpcy5tZXJnZSh2YWx1ZSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBoYXMobmFtZSkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuaGVhZGVyc1tuYW1lXSAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgfVxuICAgIHNldChuYW1lLCB2YWx1ZSkge1xuICAgICAgICB0aGlzLmhlYWRlcnNbbmFtZV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgZm9yRWFjaChjYWxsYmFja2ZuLCB0aGlzQXJnKSB7XG4gICAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiB0aGlzLmVudHJpZXMoKSl7XG4gICAgICAgICAgICBjYWxsYmFja2ZuLmNhbGwodGhpc0FyZywgdmFsdWUsIG5hbWUsIHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgICplbnRyaWVzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpKXtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIC8vIFdlIGFzc2VydCBoZXJlIHRoYXQgdGhpcyBpcyBhIHN0cmluZyBiZWNhdXNlIHdlIGdvdCBpdCBmcm9tIHRoZVxuICAgICAgICAgICAgLy8gT2JqZWN0LmtleXMoKSBjYWxsIGFib3ZlLlxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldChuYW1lKTtcbiAgICAgICAgICAgIHlpZWxkIFtcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgfVxuICAgICprZXlzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpKXtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHlpZWxkIG5hbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgKnZhbHVlcygpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5oZWFkZXJzKSl7XG4gICAgICAgICAgICAvLyBXZSBhc3NlcnQgaGVyZSB0aGF0IHRoaXMgaXMgYSBzdHJpbmcgYmVjYXVzZSB3ZSBnb3QgaXQgZnJvbSB0aGVcbiAgICAgICAgICAgIC8vIE9iamVjdC5rZXlzKCkgY2FsbCBhYm92ZS5cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbnRyaWVzKCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWFkZXJzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/headers.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js":
/*!***********************************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js ***!
\***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NextRequestAdapter: function() {\n return NextRequestAdapter;\n },\n ResponseAborted: function() {\n return ResponseAborted;\n },\n ResponseAbortedName: function() {\n return ResponseAbortedName;\n },\n createAbortController: function() {\n return createAbortController;\n },\n signalFromNodeResponse: function() {\n return signalFromNodeResponse;\n }\n});\nconst _requestmeta = __webpack_require__(/*! ../../../request-meta */ \"(rsc)/./node_modules/next/dist/server/request-meta.js\");\nconst _utils = __webpack_require__(/*! ../../utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _request = __webpack_require__(/*! ../request */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js\");\nconst _helpers = __webpack_require__(/*! ../../../base-http/helpers */ \"(rsc)/./node_modules/next/dist/server/base-http/helpers.js\");\nconst ResponseAbortedName = 'ResponseAborted';\nclass ResponseAborted extends Error {\n constructor(...args){\n super(...args), this.name = ResponseAbortedName;\n }\n}\nfunction createAbortController(response) {\n const controller = new AbortController();\n // If `finish` fires first, then `res.end()` has been called and the close is\n // just us finishing the stream on our side. If `close` fires first, then we\n // know the client disconnected before we finished.\n response.once('close', ()=>{\n if (response.writableFinished) return;\n controller.abort(new ResponseAborted());\n });\n return controller;\n}\nfunction signalFromNodeResponse(response) {\n const { errored, destroyed } = response;\n if (errored || destroyed) {\n return AbortSignal.abort(errored ?? new ResponseAborted());\n }\n const { signal } = createAbortController(response);\n return signal;\n}\nclass NextRequestAdapter {\n static fromBaseNextRequest(request, signal) {\n if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n false) {} else if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n true && (0, _helpers.isNodeNextRequest)(request)) {\n return NextRequestAdapter.fromNodeNextRequest(request, signal);\n } else {\n throw Object.defineProperty(new Error('Invariant: Unsupported NextRequest type'), \"__NEXT_ERROR_CODE\", {\n value: \"E345\",\n enumerable: false,\n configurable: true\n });\n }\n }\n static fromNodeNextRequest(request, signal) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) {\n // @ts-expect-error - this is handled by undici, when streams/web land use it instead\n body = request.body;\n }\n let url;\n if (request.url.startsWith('http')) {\n url = new URL(request.url);\n } else {\n // Grab the full URL from the request metadata.\n const base = (0, _requestmeta.getRequestMeta)(request, 'initURL');\n if (!base || !base.startsWith('http')) {\n // Because the URL construction relies on the fact that the URL provided\n // is absolute, we need to provide a base URL. We can't use the request\n // URL because it's relative, so we use a dummy URL instead.\n url = new URL(request.url, 'http://n');\n } else {\n url = new URL(request.url, base);\n }\n }\n return new _request.NextRequest(url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...signal.aborted ? {} : {\n body\n }\n });\n }\n static fromWebNextRequest(request) {\n // HEAD and GET requests can not have a body.\n let body = null;\n if (request.method !== 'GET' && request.method !== 'HEAD') {\n body = request.body;\n }\n return new _request.NextRequest(request.url, {\n method: request.method,\n headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers),\n duplex: 'half',\n signal: request.request.signal,\n // geo\n // ip\n // nextConfig\n // body can not be passed if request was aborted\n // or we get a Request body was disturbed error\n ...request.request.signal.aborted ? {} : {\n body\n }\n });\n }\n}\n\n//# sourceMappingURL=next-request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHFCQUFxQixtQkFBTyxDQUFDLG9GQUF1QjtBQUNwRCxlQUFlLG1CQUFPLENBQUMsdUVBQWE7QUFDcEMsaUJBQWlCLG1CQUFPLENBQUMsdUZBQVk7QUFDckMsaUJBQWlCLG1CQUFPLENBQUMsOEZBQTRCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxQkFBcUI7QUFDakM7QUFDQTtBQUNBO0FBQ0EsWUFBWSxTQUFTO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBOEUsRUFBRSxFQUUvRSxDQUFDO0FBQ1Y7QUFDQSxRQUFRLEtBQW1DO0FBQzNDO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvbmV4dC1yZXF1ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTmV4dFJlcXVlc3RBZGFwdGVyOiBudWxsLFxuICAgIFJlc3BvbnNlQWJvcnRlZDogbnVsbCxcbiAgICBSZXNwb25zZUFib3J0ZWROYW1lOiBudWxsLFxuICAgIGNyZWF0ZUFib3J0Q29udHJvbGxlcjogbnVsbCxcbiAgICBzaWduYWxGcm9tTm9kZVJlc3BvbnNlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE5leHRSZXF1ZXN0QWRhcHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0UmVxdWVzdEFkYXB0ZXI7XG4gICAgfSxcbiAgICBSZXNwb25zZUFib3J0ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVzcG9uc2VBYm9ydGVkO1xuICAgIH0sXG4gICAgUmVzcG9uc2VBYm9ydGVkTmFtZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNwb25zZUFib3J0ZWROYW1lO1xuICAgIH0sXG4gICAgY3JlYXRlQWJvcnRDb250cm9sbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUFib3J0Q29udHJvbGxlcjtcbiAgICB9LFxuICAgIHNpZ25hbEZyb21Ob2RlUmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2lnbmFsRnJvbU5vZGVSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9yZXF1ZXN0bWV0YSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9yZXF1ZXN0LW1ldGFcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vLi4vdXRpbHNcIik7XG5jb25zdCBfcmVxdWVzdCA9IHJlcXVpcmUoXCIuLi9yZXF1ZXN0XCIpO1xuY29uc3QgX2hlbHBlcnMgPSByZXF1aXJlKFwiLi4vLi4vLi4vYmFzZS1odHRwL2hlbHBlcnNcIik7XG5jb25zdCBSZXNwb25zZUFib3J0ZWROYW1lID0gJ1Jlc3BvbnNlQWJvcnRlZCc7XG5jbGFzcyBSZXNwb25zZUFib3J0ZWQgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoLi4uYXJncyl7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3MpLCB0aGlzLm5hbWUgPSBSZXNwb25zZUFib3J0ZWROYW1lO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNyZWF0ZUFib3J0Q29udHJvbGxlcihyZXNwb25zZSkge1xuICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgLy8gSWYgYGZpbmlzaGAgZmlyZXMgZmlyc3QsIHRoZW4gYHJlcy5lbmQoKWAgaGFzIGJlZW4gY2FsbGVkIGFuZCB0aGUgY2xvc2UgaXNcbiAgICAvLyBqdXN0IHVzIGZpbmlzaGluZyB0aGUgc3RyZWFtIG9uIG91ciBzaWRlLiBJZiBgY2xvc2VgIGZpcmVzIGZpcnN0LCB0aGVuIHdlXG4gICAgLy8ga25vdyB0aGUgY2xpZW50IGRpc2Nvbm5lY3RlZCBiZWZvcmUgd2UgZmluaXNoZWQuXG4gICAgcmVzcG9uc2Uub25jZSgnY2xvc2UnLCAoKT0+e1xuICAgICAgICBpZiAocmVzcG9uc2Uud3JpdGFibGVGaW5pc2hlZCkgcmV0dXJuO1xuICAgICAgICBjb250cm9sbGVyLmFib3J0KG5ldyBSZXNwb25zZUFib3J0ZWQoKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbnRyb2xsZXI7XG59XG5mdW5jdGlvbiBzaWduYWxGcm9tTm9kZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgY29uc3QgeyBlcnJvcmVkLCBkZXN0cm95ZWQgfSA9IHJlc3BvbnNlO1xuICAgIGlmIChlcnJvcmVkIHx8IGRlc3Ryb3llZCkge1xuICAgICAgICByZXR1cm4gQWJvcnRTaWduYWwuYWJvcnQoZXJyb3JlZCA/PyBuZXcgUmVzcG9uc2VBYm9ydGVkKCkpO1xuICAgIH1cbiAgICBjb25zdCB7IHNpZ25hbCB9ID0gY3JlYXRlQWJvcnRDb250cm9sbGVyKHJlc3BvbnNlKTtcbiAgICByZXR1cm4gc2lnbmFsO1xufVxuY2xhc3MgTmV4dFJlcXVlc3RBZGFwdGVyIHtcbiAgICBzdGF0aWMgZnJvbUJhc2VOZXh0UmVxdWVzdChyZXF1ZXN0LCBzaWduYWwpIHtcbiAgICAgICAgaWYgKC8vIFRoZSB0eXBlIGNoZWNrIGhlcmUgZW5zdXJlcyB0aGF0IGByZXFgIGlzIGNvcnJlY3RseSB0eXBlZCwgYW5kIHRoZVxuICAgICAgICAvLyBlbnZpcm9ubWVudCB2YXJpYWJsZSBjaGVjayBwcm92aWRlcyBkZWFkIGNvZGUgZWxpbWluYXRpb24uXG4gICAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnICYmICgwLCBfaGVscGVycy5pc1dlYk5leHRSZXF1ZXN0KShyZXF1ZXN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0QWRhcHRlci5mcm9tV2ViTmV4dFJlcXVlc3QocmVxdWVzdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoLy8gVGhlIHR5cGUgY2hlY2sgaGVyZSBlbnN1cmVzIHRoYXQgYHJlcWAgaXMgY29ycmVjdGx5IHR5cGVkLCBhbmQgdGhlXG4gICAgICAgIC8vIGVudmlyb25tZW50IHZhcmlhYmxlIGNoZWNrIHByb3ZpZGVzIGRlYWQgY29kZSBlbGltaW5hdGlvbi5cbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgKDAsIF9oZWxwZXJzLmlzTm9kZU5leHRSZXF1ZXN0KShyZXF1ZXN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIE5leHRSZXF1ZXN0QWRhcHRlci5mcm9tTm9kZU5leHRSZXF1ZXN0KHJlcXVlc3QsIHNpZ25hbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IFVuc3VwcG9ydGVkIE5leHRSZXF1ZXN0IHR5cGUnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTM0NVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIGZyb21Ob2RlTmV4dFJlcXVlc3QocmVxdWVzdCwgc2lnbmFsKSB7XG4gICAgICAgIC8vIEhFQUQgYW5kIEdFVCByZXF1ZXN0cyBjYW4gbm90IGhhdmUgYSBib2R5LlxuICAgICAgICBsZXQgYm9keSA9IG51bGw7XG4gICAgICAgIGlmIChyZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxdWVzdC5tZXRob2QgIT09ICdIRUFEJyAmJiByZXF1ZXN0LmJvZHkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSB0aGlzIGlzIGhhbmRsZWQgYnkgdW5kaWNpLCB3aGVuIHN0cmVhbXMvd2ViIGxhbmQgdXNlIGl0IGluc3RlYWRcbiAgICAgICAgICAgIGJvZHkgPSByZXF1ZXN0LmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgaWYgKHJlcXVlc3QudXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBHcmFiIHRoZSBmdWxsIFVSTCBmcm9tIHRoZSByZXF1ZXN0IG1ldGFkYXRhLlxuICAgICAgICAgICAgY29uc3QgYmFzZSA9ICgwLCBfcmVxdWVzdG1ldGEuZ2V0UmVxdWVzdE1ldGEpKHJlcXVlc3QsICdpbml0VVJMJyk7XG4gICAgICAgICAgICBpZiAoIWJhc2UgfHwgIWJhc2Uuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgVVJMIGNvbnN0cnVjdGlvbiByZWxpZXMgb24gdGhlIGZhY3QgdGhhdCB0aGUgVVJMIHByb3ZpZGVkXG4gICAgICAgICAgICAgICAgLy8gaXMgYWJzb2x1dGUsIHdlIG5lZWQgdG8gcHJvdmlkZSBhIGJhc2UgVVJMLiBXZSBjYW4ndCB1c2UgdGhlIHJlcXVlc3RcbiAgICAgICAgICAgICAgICAvLyBVUkwgYmVjYXVzZSBpdCdzIHJlbGF0aXZlLCBzbyB3ZSB1c2UgYSBkdW1teSBVUkwgaW5zdGVhZC5cbiAgICAgICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHJlcXVlc3QudXJsLCAnaHR0cDovL24nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdXJsID0gbmV3IFVSTChyZXF1ZXN0LnVybCwgYmFzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBfcmVxdWVzdC5OZXh0UmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiAoMCwgX3V0aWxzLmZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgICAgICAgIGR1cGxleDogJ2hhbGYnLFxuICAgICAgICAgICAgc2lnbmFsLFxuICAgICAgICAgICAgLy8gZ2VvXG4gICAgICAgICAgICAvLyBpcFxuICAgICAgICAgICAgLy8gbmV4dENvbmZpZ1xuICAgICAgICAgICAgLy8gYm9keSBjYW4gbm90IGJlIHBhc3NlZCBpZiByZXF1ZXN0IHdhcyBhYm9ydGVkXG4gICAgICAgICAgICAvLyBvciB3ZSBnZXQgYSBSZXF1ZXN0IGJvZHkgd2FzIGRpc3R1cmJlZCBlcnJvclxuICAgICAgICAgICAgLi4uc2lnbmFsLmFib3J0ZWQgPyB7fSA6IHtcbiAgICAgICAgICAgICAgICBib2R5XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgZnJvbVdlYk5leHRSZXF1ZXN0KHJlcXVlc3QpIHtcbiAgICAgICAgLy8gSEVBRCBhbmQgR0VUIHJlcXVlc3RzIGNhbiBub3QgaGF2ZSBhIGJvZHkuXG4gICAgICAgIGxldCBib2R5ID0gbnVsbDtcbiAgICAgICAgaWYgKHJlcXVlc3QubWV0aG9kICE9PSAnR0VUJyAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0hFQUQnKSB7XG4gICAgICAgICAgICBib2R5ID0gcmVxdWVzdC5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgX3JlcXVlc3QuTmV4dFJlcXVlc3QocmVxdWVzdC51cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogcmVxdWVzdC5tZXRob2QsXG4gICAgICAgICAgICBoZWFkZXJzOiAoMCwgX3V0aWxzLmZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycykocmVxdWVzdC5oZWFkZXJzKSxcbiAgICAgICAgICAgIGR1cGxleDogJ2hhbGYnLFxuICAgICAgICAgICAgc2lnbmFsOiByZXF1ZXN0LnJlcXVlc3Quc2lnbmFsLFxuICAgICAgICAgICAgLy8gZ2VvXG4gICAgICAgICAgICAvLyBpcFxuICAgICAgICAgICAgLy8gbmV4dENvbmZpZ1xuICAgICAgICAgICAgLy8gYm9keSBjYW4gbm90IGJlIHBhc3NlZCBpZiByZXF1ZXN0IHdhcyBhYm9ydGVkXG4gICAgICAgICAgICAvLyBvciB3ZSBnZXQgYSBSZXF1ZXN0IGJvZHkgd2FzIGRpc3R1cmJlZCBlcnJvclxuICAgICAgICAgICAgLi4ucmVxdWVzdC5yZXF1ZXN0LnNpZ25hbC5hYm9ydGVkID8ge30gOiB7XG4gICAgICAgICAgICAgICAgYm9keVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5leHQtcmVxdWVzdC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/next-request.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js":
/*!******************************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js ***!
\******************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ReflectAdapter\", ({\n enumerable: true,\n get: function() {\n return ReflectAdapter;\n }\n}));\nclass ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function') {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n}\n\n//# sourceMappingURL=reflect.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlZmxlY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWZsZWN0QWRhcHRlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXI7XG4gICAgfVxufSk7XG5jbGFzcyBSZWZsZWN0QWRhcHRlciB7XG4gICAgc3RhdGljIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5iaW5kKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBzdGF0aWMgc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgfVxuICAgIHN0YXRpYyBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgIH1cbiAgICBzdGF0aWMgZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KHRhcmdldCwgcHJvcCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWZsZWN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js":
/*!*********************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/cookies.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RequestCookies: function() {\n return _cookies.RequestCookies;\n },\n ResponseCookies: function() {\n return _cookies.ResponseCookies;\n },\n stringifyCookie: function() {\n return _cookies.stringifyCookie;\n }\n});\nconst _cookies = __webpack_require__(/*! next/dist/compiled/@edge-runtime/cookies */ \"(rsc)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js\");\n\n//# sourceMappingURL=cookies.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vY29va2llcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLHdIQUEwQzs7QUFFbkUiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9jb29raWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgUmVxdWVzdENvb2tpZXM6IG51bGwsXG4gICAgUmVzcG9uc2VDb29raWVzOiBudWxsLFxuICAgIHN0cmluZ2lmeUNvb2tpZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBSZXF1ZXN0Q29va2llczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29va2llcy5SZXF1ZXN0Q29va2llcztcbiAgICB9LFxuICAgIFJlc3BvbnNlQ29va2llczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29va2llcy5SZXNwb25zZUNvb2tpZXM7XG4gICAgfSxcbiAgICBzdHJpbmdpZnlDb29raWU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2Nvb2tpZXMuc3RyaW5naWZ5Q29va2llO1xuICAgIH1cbn0pO1xuY29uc3QgX2Nvb2tpZXMgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llc1wiKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29va2llcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js":
/*!****************************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/image-response.js ***!
\****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * @deprecated ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead.\n * Migration with codemods: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#next-og-import\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ImageResponse\", ({\n enumerable: true,\n get: function() {\n return ImageResponse;\n }\n}));\nfunction ImageResponse() {\n throw Object.defineProperty(new Error('ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead'), \"__NEXT_ERROR_CODE\", {\n value: \"E183\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=image-response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vaW1hZ2UtcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsaURBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2ltYWdlLXJlc3BvbnNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlcHJlY2F0ZWQgSW1hZ2VSZXNwb25zZSBtb3ZlZCBmcm9tIFwibmV4dC9zZXJ2ZXJcIiB0byBcIm5leHQvb2dcIiBzaW5jZSBOZXh0LmpzIDE0LCBwbGVhc2UgaW1wb3J0IGZyb20gXCJuZXh0L29nXCIgaW5zdGVhZC5cbiAqIE1pZ3JhdGlvbiB3aXRoIGNvZGVtb2RzOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi91cGdyYWRpbmcvY29kZW1vZHMjbmV4dC1vZy1pbXBvcnRcbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkltYWdlUmVzcG9uc2VcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEltYWdlUmVzcG9uc2U7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBJbWFnZVJlc3BvbnNlKCkge1xuICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ltYWdlUmVzcG9uc2UgbW92ZWQgZnJvbSBcIm5leHQvc2VydmVyXCIgdG8gXCJuZXh0L29nXCIgc2luY2UgTmV4dC5qcyAxNCwgcGxlYXNlIGltcG9ydCBmcm9tIFwibmV4dC9vZ1wiIGluc3RlYWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkUxODNcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1yZXNwb25zZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js":
/*!*********************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/request.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERNALS: function() {\n return INTERNALS;\n },\n NextRequest: function() {\n return NextRequest;\n }\n});\nconst _nexturl = __webpack_require__(/*! ../next-url */ \"(rsc)/./node_modules/next/dist/server/web/next-url.js\");\nconst _utils = __webpack_require__(/*! ../utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _error = __webpack_require__(/*! ../error */ \"(rsc)/./node_modules/next/dist/server/web/error.js\");\nconst _cookies = __webpack_require__(/*! ./cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst INTERNALS = Symbol('internal request');\nclass NextRequest extends Request {\n constructor(input, init = {}){\n const url = typeof input !== 'string' && 'url' in input ? input.url : String(input);\n (0, _utils.validateURL)(url);\n // node Request instance requires duplex option when a body\n // is present or it errors, we don't handle this for\n // Request being passed in since it would have already\n // errored if this wasn't configured\n if (true) {\n if (init.body && init.duplex !== 'half') {\n init.duplex = 'half';\n }\n }\n if (input instanceof Request) super(input, init);\n else super(url, init);\n const nextUrl = new _nexturl.NextURL(url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers),\n nextConfig: init.nextConfig\n });\n this[INTERNALS] = {\n cookies: new _cookies.RequestCookies(this.headers),\n nextUrl,\n url: false ? 0 : nextUrl.toString()\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n nextUrl: this.nextUrl,\n url: this.url,\n // rest of props come from Request\n bodyUsed: this.bodyUsed,\n cache: this.cache,\n credentials: this.credentials,\n destination: this.destination,\n headers: Object.fromEntries(this.headers),\n integrity: this.integrity,\n keepalive: this.keepalive,\n method: this.method,\n mode: this.mode,\n redirect: this.redirect,\n referrer: this.referrer,\n referrerPolicy: this.referrerPolicy,\n signal: this.signal\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n get nextUrl() {\n return this[INTERNALS].nextUrl;\n }\n /**\n * @deprecated\n * `page` has been deprecated in favour of `URLPattern`.\n * Read more: https://nextjs.org/docs/messages/middleware-request-page\n */ get page() {\n throw new _error.RemovedPageError();\n }\n /**\n * @deprecated\n * `ua` has been removed in favour of \\`userAgent\\` function.\n * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n */ get ua() {\n throw new _error.RemovedUAError();\n }\n get url() {\n return this[INTERNALS].url;\n }\n}\n\n//# sourceMappingURL=request.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVxdWVzdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQywwRUFBYTtBQUN0QyxlQUFlLG1CQUFPLENBQUMsb0VBQVU7QUFDakMsZUFBZSxtQkFBTyxDQUFDLG9FQUFVO0FBQ2pDLGlCQUFpQixtQkFBTyxDQUFDLHNGQUFXO0FBQ3BDO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxJQUFtQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLE1BQThDLEdBQUcsQ0FBRztBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVxdWVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIElOVEVSTkFMUzogbnVsbCxcbiAgICBOZXh0UmVxdWVzdDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBJTlRFUk5BTFM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSU5URVJOQUxTO1xuICAgIH0sXG4gICAgTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTmV4dFJlcXVlc3Q7XG4gICAgfVxufSk7XG5jb25zdCBfbmV4dHVybCA9IHJlcXVpcmUoXCIuLi9uZXh0LXVybFwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuLi91dGlsc1wiKTtcbmNvbnN0IF9lcnJvciA9IHJlcXVpcmUoXCIuLi9lcnJvclwiKTtcbmNvbnN0IF9jb29raWVzID0gcmVxdWlyZShcIi4vY29va2llc1wiKTtcbmNvbnN0IElOVEVSTkFMUyA9IFN5bWJvbCgnaW50ZXJuYWwgcmVxdWVzdCcpO1xuY2xhc3MgTmV4dFJlcXVlc3QgZXh0ZW5kcyBSZXF1ZXN0IHtcbiAgICBjb25zdHJ1Y3RvcihpbnB1dCwgaW5pdCA9IHt9KXtcbiAgICAgICAgY29uc3QgdXJsID0gdHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJyAmJiAndXJsJyBpbiBpbnB1dCA/IGlucHV0LnVybCA6IFN0cmluZyhpbnB1dCk7XG4gICAgICAgICgwLCBfdXRpbHMudmFsaWRhdGVVUkwpKHVybCk7XG4gICAgICAgIC8vIG5vZGUgUmVxdWVzdCBpbnN0YW5jZSByZXF1aXJlcyBkdXBsZXggb3B0aW9uIHdoZW4gYSBib2R5XG4gICAgICAgIC8vIGlzIHByZXNlbnQgb3IgaXQgZXJyb3JzLCB3ZSBkb24ndCBoYW5kbGUgdGhpcyBmb3JcbiAgICAgICAgLy8gUmVxdWVzdCBiZWluZyBwYXNzZWQgaW4gc2luY2UgaXQgd291bGQgaGF2ZSBhbHJlYWR5XG4gICAgICAgIC8vIGVycm9yZWQgaWYgdGhpcyB3YXNuJ3QgY29uZmlndXJlZFxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScpIHtcbiAgICAgICAgICAgIGlmIChpbml0LmJvZHkgJiYgaW5pdC5kdXBsZXggIT09ICdoYWxmJykge1xuICAgICAgICAgICAgICAgIGluaXQuZHVwbGV4ID0gJ2hhbGYnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIFJlcXVlc3QpIHN1cGVyKGlucHV0LCBpbml0KTtcbiAgICAgICAgZWxzZSBzdXBlcih1cmwsIGluaXQpO1xuICAgICAgICBjb25zdCBuZXh0VXJsID0gbmV3IF9uZXh0dXJsLk5leHRVUkwodXJsLCB7XG4gICAgICAgICAgICBoZWFkZXJzOiAoMCwgX3V0aWxzLnRvTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMpKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBuZXh0Q29uZmlnOiBpbml0Lm5leHRDb25maWdcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXNbSU5URVJOQUxTXSA9IHtcbiAgICAgICAgICAgIGNvb2tpZXM6IG5ldyBfY29va2llcy5SZXF1ZXN0Q29va2llcyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgbmV4dFVybCxcbiAgICAgICAgICAgIHVybDogcHJvY2Vzcy5lbnYuX19ORVhUX05PX01JRERMRVdBUkVfVVJMX05PUk1BTElaRSA/IHVybCA6IG5leHRVcmwudG9TdHJpbmcoKVxuICAgICAgICB9O1xuICAgIH1cbiAgICBbU3ltYm9sLmZvcignZWRnZS1ydW50aW1lLmluc3BlY3QuY3VzdG9tJyldKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29va2llczogdGhpcy5jb29raWVzLFxuICAgICAgICAgICAgbmV4dFVybDogdGhpcy5uZXh0VXJsLFxuICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgICAgICAgIC8vIHJlc3Qgb2YgcHJvcHMgY29tZSBmcm9tIFJlcXVlc3RcbiAgICAgICAgICAgIGJvZHlVc2VkOiB0aGlzLmJvZHlVc2VkLFxuICAgICAgICAgICAgY2FjaGU6IHRoaXMuY2FjaGUsXG4gICAgICAgICAgICBjcmVkZW50aWFsczogdGhpcy5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLmRlc3RpbmF0aW9uLFxuICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBpbnRlZ3JpdHk6IHRoaXMuaW50ZWdyaXR5LFxuICAgICAgICAgICAga2VlcGFsaXZlOiB0aGlzLmtlZXBhbGl2ZSxcbiAgICAgICAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgICAgICByZWRpcmVjdDogdGhpcy5yZWRpcmVjdCxcbiAgICAgICAgICAgIHJlZmVycmVyOiB0aGlzLnJlZmVycmVyLFxuICAgICAgICAgICAgcmVmZXJyZXJQb2xpY3k6IHRoaXMucmVmZXJyZXJQb2xpY3ksXG4gICAgICAgICAgICBzaWduYWw6IHRoaXMuc2lnbmFsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldCBjb29raWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJTlRFUk5BTFNdLmNvb2tpZXM7XG4gICAgfVxuICAgIGdldCBuZXh0VXJsKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJTlRFUk5BTFNdLm5leHRVcmw7XG4gICAgfVxuICAgIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBgcGFnZWAgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgYFVSTFBhdHRlcm5gLlxuICAgKiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL21pZGRsZXdhcmUtcmVxdWVzdC1wYWdlXG4gICAqLyBnZXQgcGFnZSgpIHtcbiAgICAgICAgdGhyb3cgbmV3IF9lcnJvci5SZW1vdmVkUGFnZUVycm9yKCk7XG4gICAgfVxuICAgIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBgdWFgIGhhcyBiZWVuIHJlbW92ZWQgaW4gZmF2b3VyIG9mIFxcYHVzZXJBZ2VudFxcYCBmdW5jdGlvbi5cbiAgICogUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXBhcnNlLXVzZXItYWdlbnRcbiAgICovIGdldCB1YSgpIHtcbiAgICAgICAgdGhyb3cgbmV3IF9lcnJvci5SZW1vdmVkVUFFcnJvcigpO1xuICAgIH1cbiAgICBnZXQgdXJsKCkge1xuICAgICAgICByZXR1cm4gdGhpc1tJTlRFUk5BTFNdLnVybDtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlcXVlc3QuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/response.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NextResponse\", ({\n enumerable: true,\n get: function() {\n return NextResponse;\n }\n}));\nconst _cookies = __webpack_require__(/*! ../../web/spec-extension/cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst _nexturl = __webpack_require__(/*! ../next-url */ \"(rsc)/./node_modules/next/dist/server/web/next-url.js\");\nconst _utils = __webpack_require__(/*! ../utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _reflect = __webpack_require__(/*! ./adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _cookies1 = __webpack_require__(/*! ./cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst INTERNALS = Symbol('internal response');\nconst REDIRECTS = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction handleMiddlewareField(init, headers) {\n var _init_request;\n if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) {\n if (!(init.request.headers instanceof Headers)) {\n throw Object.defineProperty(new Error('request.headers must be an instance of Headers'), \"__NEXT_ERROR_CODE\", {\n value: \"E119\",\n enumerable: false,\n configurable: true\n });\n }\n const keys = [];\n for (const [key, value] of init.request.headers){\n headers.set('x-middleware-request-' + key, value);\n keys.push(key);\n }\n headers.set('x-middleware-override-headers', keys.join(','));\n }\n}\nclass NextResponse extends Response {\n constructor(body, init = {}){\n super(body, init);\n const headers = this.headers;\n const cookies = new _cookies1.ResponseCookies(headers);\n const cookiesProxy = new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case 'delete':\n case 'set':\n {\n return (...args)=>{\n const result = Reflect.apply(target[prop], target, args);\n const newHeaders = new Headers(headers);\n if (result instanceof _cookies1.ResponseCookies) {\n headers.set('x-middleware-set-cookie', result.getAll().map((cookie)=>(0, _cookies.stringifyCookie)(cookie)).join(','));\n }\n handleMiddlewareField(init, newHeaders);\n return result;\n };\n }\n default:\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n this[INTERNALS] = {\n cookies: cookiesProxy,\n url: init.url ? new _nexturl.NextURL(init.url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(headers),\n nextConfig: init.nextConfig\n }) : undefined\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n url: this.url,\n // rest of props come from Response\n body: this.body,\n bodyUsed: this.bodyUsed,\n headers: Object.fromEntries(this.headers),\n ok: this.ok,\n redirected: this.redirected,\n status: this.status,\n statusText: this.statusText,\n type: this.type\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n static json(body, init) {\n const response = Response.json(body, init);\n return new NextResponse(response.body, response);\n }\n static redirect(url, init) {\n const status = typeof init === 'number' ? init : (init == null ? void 0 : init.status) ?? 307;\n if (!REDIRECTS.has(status)) {\n throw Object.defineProperty(new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code'), \"__NEXT_ERROR_CODE\", {\n value: \"E529\",\n enumerable: false,\n configurable: true\n });\n }\n const initObj = typeof init === 'object' ? init : {};\n const headers = new Headers(initObj == null ? void 0 : initObj.headers);\n headers.set('Location', (0, _utils.validateURL)(url));\n return new NextResponse(null, {\n ...initObj,\n headers,\n status\n });\n }\n static rewrite(destination, init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set('x-middleware-rewrite', (0, _utils.validateURL)(destination));\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n static next(init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set('x-middleware-next', '1');\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n}\n\n//# sourceMappingURL=response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixnREFBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixpQkFBaUIsbUJBQU8sQ0FBQyw2R0FBa0M7QUFDM0QsaUJBQWlCLG1CQUFPLENBQUMsMEVBQWE7QUFDdEMsZUFBZSxtQkFBTyxDQUFDLG9FQUFVO0FBQ2pDLGlCQUFpQixtQkFBTyxDQUFDLHdHQUFvQjtBQUM3QyxrQkFBa0IsbUJBQU8sQ0FBQyxzRkFBVztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL3Jlc3BvbnNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTmV4dFJlc3BvbnNlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0UmVzcG9uc2U7XG4gICAgfVxufSk7XG5jb25zdCBfY29va2llcyA9IHJlcXVpcmUoXCIuLi8uLi93ZWIvc3BlYy1leHRlbnNpb24vY29va2llc1wiKTtcbmNvbnN0IF9uZXh0dXJsID0gcmVxdWlyZShcIi4uL25leHQtdXJsXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xuY29uc3QgX3JlZmxlY3QgPSByZXF1aXJlKFwiLi9hZGFwdGVycy9yZWZsZWN0XCIpO1xuY29uc3QgX2Nvb2tpZXMxID0gcmVxdWlyZShcIi4vY29va2llc1wiKTtcbmNvbnN0IElOVEVSTkFMUyA9IFN5bWJvbCgnaW50ZXJuYWwgcmVzcG9uc2UnKTtcbmNvbnN0IFJFRElSRUNUUyA9IG5ldyBTZXQoW1xuICAgIDMwMSxcbiAgICAzMDIsXG4gICAgMzAzLFxuICAgIDMwNyxcbiAgICAzMDhcbl0pO1xuZnVuY3Rpb24gaGFuZGxlTWlkZGxld2FyZUZpZWxkKGluaXQsIGhlYWRlcnMpIHtcbiAgICB2YXIgX2luaXRfcmVxdWVzdDtcbiAgICBpZiAoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogKF9pbml0X3JlcXVlc3QgPSBpbml0LnJlcXVlc3QpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9yZXF1ZXN0LmhlYWRlcnMpIHtcbiAgICAgICAgaWYgKCEoaW5pdC5yZXF1ZXN0LmhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzKSkge1xuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcigncmVxdWVzdC5oZWFkZXJzIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSGVhZGVycycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMTE5XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGluaXQucmVxdWVzdC5oZWFkZXJzKXtcbiAgICAgICAgICAgIGhlYWRlcnMuc2V0KCd4LW1pZGRsZXdhcmUtcmVxdWVzdC0nICsga2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBoZWFkZXJzLnNldCgneC1taWRkbGV3YXJlLW92ZXJyaWRlLWhlYWRlcnMnLCBrZXlzLmpvaW4oJywnKSk7XG4gICAgfVxufVxuY2xhc3MgTmV4dFJlc3BvbnNlIGV4dGVuZHMgUmVzcG9uc2Uge1xuICAgIGNvbnN0cnVjdG9yKGJvZHksIGluaXQgPSB7fSl7XG4gICAgICAgIHN1cGVyKGJvZHksIGluaXQpO1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5oZWFkZXJzO1xuICAgICAgICBjb25zdCBjb29raWVzID0gbmV3IF9jb29raWVzMS5SZXNwb25zZUNvb2tpZXMoaGVhZGVycyk7XG4gICAgICAgIGNvbnN0IGNvb2tpZXNQcm94eSA9IG5ldyBQcm94eShjb29raWVzLCB7XG4gICAgICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NldCc6XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBSZWZsZWN0LmFwcGx5KHRhcmdldFtwcm9wXSwgdGFyZ2V0LCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlcnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgX2Nvb2tpZXMxLlJlc3BvbnNlQ29va2llcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycy5zZXQoJ3gtbWlkZGxld2FyZS1zZXQtY29va2llJywgcmVzdWx0LmdldEFsbCgpLm1hcCgoY29va2llKT0+KDAsIF9jb29raWVzLnN0cmluZ2lmeUNvb2tpZSkoY29va2llKSkuam9pbignLCcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVNaWRkbGV3YXJlRmllbGQoaW5pdCwgbmV3SGVhZGVycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpc1tJTlRFUk5BTFNdID0ge1xuICAgICAgICAgICAgY29va2llczogY29va2llc1Byb3h5LFxuICAgICAgICAgICAgdXJsOiBpbml0LnVybCA/IG5ldyBfbmV4dHVybC5OZXh0VVJMKGluaXQudXJsLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogKDAsIF91dGlscy50b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKShoZWFkZXJzKSxcbiAgICAgICAgICAgICAgICBuZXh0Q29uZmlnOiBpbml0Lm5leHRDb25maWdcbiAgICAgICAgICAgIH0pIDogdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgfVxuICAgIFtTeW1ib2wuZm9yKCdlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b20nKV0oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb29raWVzOiB0aGlzLmNvb2tpZXMsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgLy8gcmVzdCBvZiBwcm9wcyBjb21lIGZyb20gUmVzcG9uc2VcbiAgICAgICAgICAgIGJvZHk6IHRoaXMuYm9keSxcbiAgICAgICAgICAgIGJvZHlVc2VkOiB0aGlzLmJvZHlVc2VkLFxuICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBvazogdGhpcy5vayxcbiAgICAgICAgICAgIHJlZGlyZWN0ZWQ6IHRoaXMucmVkaXJlY3RlZCxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgICAgICBzdGF0dXNUZXh0OiB0aGlzLnN0YXR1c1RleHQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGVcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10uY29va2llcztcbiAgICB9XG4gICAgc3RhdGljIGpzb24oYm9keSwgaW5pdCkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IFJlc3BvbnNlLmpzb24oYm9keSwgaW5pdCk7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFJlc3BvbnNlKHJlc3BvbnNlLmJvZHksIHJlc3BvbnNlKTtcbiAgICB9XG4gICAgc3RhdGljIHJlZGlyZWN0KHVybCwgaW5pdCkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSB0eXBlb2YgaW5pdCA9PT0gJ251bWJlcicgPyBpbml0IDogKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQuc3RhdHVzKSA/PyAzMDc7XG4gICAgICAgIGlmICghUkVESVJFQ1RTLmhhcyhzdGF0dXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IFJhbmdlRXJyb3IoJ0ZhaWxlZCB0byBleGVjdXRlIFwicmVkaXJlY3RcIiBvbiBcInJlc3BvbnNlXCI6IEludmFsaWQgc3RhdHVzIGNvZGUnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTUyOVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5pdE9iaiA9IHR5cGVvZiBpbml0ID09PSAnb2JqZWN0JyA/IGluaXQgOiB7fTtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGluaXRPYmogPT0gbnVsbCA/IHZvaWQgMCA6IGluaXRPYmouaGVhZGVycyk7XG4gICAgICAgIGhlYWRlcnMuc2V0KCdMb2NhdGlvbicsICgwLCBfdXRpbHMudmFsaWRhdGVVUkwpKHVybCkpO1xuICAgICAgICByZXR1cm4gbmV3IE5leHRSZXNwb25zZShudWxsLCB7XG4gICAgICAgICAgICAuLi5pbml0T2JqLFxuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1c1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RhdGljIHJld3JpdGUoZGVzdGluYXRpb24sIGluaXQpIHtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQuaGVhZGVycyk7XG4gICAgICAgIGhlYWRlcnMuc2V0KCd4LW1pZGRsZXdhcmUtcmV3cml0ZScsICgwLCBfdXRpbHMudmFsaWRhdGVVUkwpKGRlc3RpbmF0aW9uKSk7XG4gICAgICAgIGhhbmRsZU1pZGRsZXdhcmVGaWVsZChpbml0LCBoZWFkZXJzKTtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXh0UmVzcG9uc2UobnVsbCwge1xuICAgICAgICAgICAgLi4uaW5pdCxcbiAgICAgICAgICAgIGhlYWRlcnNcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyBuZXh0KGluaXQpIHtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQuaGVhZGVycyk7XG4gICAgICAgIGhlYWRlcnMuc2V0KCd4LW1pZGRsZXdhcmUtbmV4dCcsICcxJyk7XG4gICAgICAgIGhhbmRsZU1pZGRsZXdhcmVGaWVsZChpbml0LCBoZWFkZXJzKTtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXh0UmVzcG9uc2UobnVsbCwge1xuICAgICAgICAgICAgLi4uaW5pdCxcbiAgICAgICAgICAgIGhlYWRlcnNcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNwb25zZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/url-pattern.js ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"URLPattern\", ({\n enumerable: true,\n get: function() {\n return GlobalURLPattern;\n }\n}));\nconst GlobalURLPattern = // @ts-expect-error: URLPattern is not available in Node.js\ntypeof URLPattern === 'undefined' ? undefined : URLPattern;\n\n//# sourceMappingURL=url-pattern.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vdXJsLXBhdHRlcm4uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw4Q0FBNkM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vdXJsLXBhdHRlcm4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJVUkxQYXR0ZXJuXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHbG9iYWxVUkxQYXR0ZXJuO1xuICAgIH1cbn0pO1xuY29uc3QgR2xvYmFsVVJMUGF0dGVybiA9IC8vIEB0cy1leHBlY3QtZXJyb3I6IFVSTFBhdHRlcm4gaXMgbm90IGF2YWlsYWJsZSBpbiBOb2RlLmpzXG50eXBlb2YgVVJMUGF0dGVybiA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBVUkxQYXR0ZXJuO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11cmwtcGF0dGVybi5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js":
/*!************************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/user-agent.js ***!
\************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isBot: function() {\n return isBot;\n },\n userAgent: function() {\n return userAgent;\n },\n userAgentFromString: function() {\n return userAgentFromString;\n }\n});\nconst _uaparserjs = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/ua-parser-js */ \"(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isBot(input) {\n return /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(input);\n}\nfunction userAgentFromString(input) {\n return {\n ...(0, _uaparserjs.default)(input),\n isBot: input === undefined ? false : isBot(input)\n };\n}\nfunction userAgent({ headers }) {\n return userAgentFromString(headers.get('user-agent') || undefined);\n}\n\n//# sourceMappingURL=user-agent.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vdXNlci1hZ2VudC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDJEQUEyRCxtQkFBTyxDQUFDLDBHQUFpQztBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLFNBQVM7QUFDOUI7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL3VzZXItYWdlbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc0JvdDogbnVsbCxcbiAgICB1c2VyQWdlbnQ6IG51bGwsXG4gICAgdXNlckFnZW50RnJvbVN0cmluZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc0JvdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0JvdDtcbiAgICB9LFxuICAgIHVzZXJBZ2VudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB1c2VyQWdlbnQ7XG4gICAgfSxcbiAgICB1c2VyQWdlbnRGcm9tU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHVzZXJBZ2VudEZyb21TdHJpbmc7XG4gICAgfVxufSk7XG5jb25zdCBfdWFwYXJzZXJqcyA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvdWEtcGFyc2VyLWpzXCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gaXNCb3QoaW5wdXQpIHtcbiAgICByZXR1cm4gL0dvb2dsZWJvdHxNZWRpYXBhcnRuZXJzLUdvb2dsZXxBZHNCb3QtR29vZ2xlfGdvb2dsZXdlYmxpZ2h0fFN0b3JlYm90LUdvb2dsZXxHb29nbGUtUGFnZVJlbmRlcmVyfEdvb2dsZS1JbnNwZWN0aW9uVG9vbHxCaW5nYm90fEJpbmdQcmV2aWV3fFNsdXJwfER1Y2tEdWNrQm90fGJhaWR1c3BpZGVyfHlhbmRleHxzb2dvdXxMaW5rZWRJbkJvdHxiaXRseWJvdHx0dW1ibHJ8dmtTaGFyZXxxdW9yYSBsaW5rIHByZXZpZXd8ZmFjZWJvb2tleHRlcm5hbGhpdHxmYWNlYm9va2NhdGFsb2d8VHdpdHRlcmJvdHxhcHBsZWJvdHxyZWRkaXRib3R8U2xhY2tib3R8RGlzY29yZGJvdHxXaGF0c0FwcHxTa3lwZVVyaVByZXZpZXd8aWFfYXJjaGl2ZXIvaS50ZXN0KGlucHV0KTtcbn1cbmZ1bmN0aW9uIHVzZXJBZ2VudEZyb21TdHJpbmcoaW5wdXQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi4oMCwgX3VhcGFyc2VyanMuZGVmYXVsdCkoaW5wdXQpLFxuICAgICAgICBpc0JvdDogaW5wdXQgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogaXNCb3QoaW5wdXQpXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHVzZXJBZ2VudCh7IGhlYWRlcnMgfSkge1xuICAgIHJldHVybiB1c2VyQWdlbnRGcm9tU3RyaW5nKGhlYWRlcnMuZ2V0KCd1c2VyLWFnZW50JykgfHwgdW5kZWZpbmVkKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlci1hZ2VudC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/web/utils.js":
/*!****************************************************!*\
!*** ./node_modules/next/dist/server/web/utils.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fromNodeOutgoingHttpHeaders: function() {\n return fromNodeOutgoingHttpHeaders;\n },\n normalizeNextQueryParam: function() {\n return normalizeNextQueryParam;\n },\n splitCookiesString: function() {\n return splitCookiesString;\n },\n toNodeOutgoingHttpHeaders: function() {\n return toNodeOutgoingHttpHeaders;\n },\n validateURL: function() {\n return validateURL;\n }\n});\nconst _constants = __webpack_require__(/*! ../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nfunction fromNodeOutgoingHttpHeaders(nodeHeaders) {\n const headers = new Headers();\n for (let [key, value] of Object.entries(nodeHeaders)){\n const values = Array.isArray(value) ? value : [\n value\n ];\n for (let v of values){\n if (typeof v === 'undefined') continue;\n if (typeof v === 'number') {\n v = v.toString();\n }\n headers.append(key, v);\n }\n }\n return headers;\n}\nfunction splitCookiesString(cookiesString) {\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n function skipWhitespace() {\n while(pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))){\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n return ch !== '=' && ch !== ';' && ch !== ',';\n }\n while(pos < cookiesString.length){\n start = pos;\n cookiesSeparatorFound = false;\n while(skipWhitespace()){\n ch = cookiesString.charAt(pos);\n if (ch === ',') {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n skipWhitespace();\n nextStart = pos;\n while(pos < cookiesString.length && notSpecialChar()){\n pos += 1;\n }\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n return cookiesStrings;\n}\nfunction toNodeOutgoingHttpHeaders(headers) {\n const nodeHeaders = {};\n const cookies = [];\n if (headers) {\n for (const [key, value] of headers.entries()){\n if (key.toLowerCase() === 'set-cookie') {\n // We may have gotten a comma joined string of cookies, or multiple\n // set-cookie headers. We need to merge them into one header array\n // to represent all the cookies.\n cookies.push(...splitCookiesString(value));\n nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies;\n } else {\n nodeHeaders[key] = value;\n }\n }\n }\n return nodeHeaders;\n}\nfunction validateURL(url) {\n try {\n return String(new URL(String(url)));\n } catch (error) {\n throw Object.defineProperty(new Error(`URL is malformed \"${String(url)}\". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, {\n cause: error\n }), \"__NEXT_ERROR_CODE\", {\n value: \"E61\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction normalizeNextQueryParam(key) {\n const prefixes = [\n _constants.NEXT_QUERY_PARAM_PREFIX,\n _constants.NEXT_INTERCEPTION_MARKER_PREFIX\n ];\n for (const prefix of prefixes){\n if (key !== prefix && key.startsWith(prefix)) {\n return key.substring(prefix.length);\n }\n }\n return null;\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsbUJBQW1CLG1CQUFPLENBQUMsNEVBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrRUFBK0U7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLHlEQUF5RDtBQUN6RDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sbUVBQW1FLFlBQVk7QUFDL0U7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGZyb21Ob2RlT3V0Z29pbmdIdHRwSGVhZGVyczogbnVsbCxcbiAgICBub3JtYWxpemVOZXh0UXVlcnlQYXJhbTogbnVsbCxcbiAgICBzcGxpdENvb2tpZXNTdHJpbmc6IG51bGwsXG4gICAgdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVyczogbnVsbCxcbiAgICB2YWxpZGF0ZVVSTDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZnJvbU5vZGVPdXRnb2luZ0h0dHBIZWFkZXJzO1xuICAgIH0sXG4gICAgbm9ybWFsaXplTmV4dFF1ZXJ5UGFyYW06IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplTmV4dFF1ZXJ5UGFyYW07XG4gICAgfSxcbiAgICBzcGxpdENvb2tpZXNTdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc3BsaXRDb29raWVzU3RyaW5nO1xuICAgIH0sXG4gICAgdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVyczogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzO1xuICAgIH0sXG4gICAgdmFsaWRhdGVVUkw6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVVUkw7XG4gICAgfVxufSk7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uLy4uL2xpYi9jb25zdGFudHNcIik7XG5mdW5jdGlvbiBmcm9tTm9kZU91dGdvaW5nSHR0cEhlYWRlcnMobm9kZUhlYWRlcnMpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEhlYWRlcnMoKTtcbiAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobm9kZUhlYWRlcnMpKXtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgIF07XG4gICAgICAgIGZvciAobGV0IHYgb2YgdmFsdWVzKXtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ3VuZGVmaW5lZCcpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHYgPSB2LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBoZWFkZXJzLmFwcGVuZChrZXksIHYpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoZWFkZXJzO1xufVxuZnVuY3Rpb24gc3BsaXRDb29raWVzU3RyaW5nKGNvb2tpZXNTdHJpbmcpIHtcbiAgICB2YXIgY29va2llc1N0cmluZ3MgPSBbXTtcbiAgICB2YXIgcG9zID0gMDtcbiAgICB2YXIgc3RhcnQ7XG4gICAgdmFyIGNoO1xuICAgIHZhciBsYXN0Q29tbWE7XG4gICAgdmFyIG5leHRTdGFydDtcbiAgICB2YXIgY29va2llc1NlcGFyYXRvckZvdW5kO1xuICAgIGZ1bmN0aW9uIHNraXBXaGl0ZXNwYWNlKCkge1xuICAgICAgICB3aGlsZShwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCAmJiAvXFxzLy50ZXN0KGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykpKXtcbiAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm90U3BlY2lhbENoYXIoKSB7XG4gICAgICAgIGNoID0gY29va2llc1N0cmluZy5jaGFyQXQocG9zKTtcbiAgICAgICAgcmV0dXJuIGNoICE9PSAnPScgJiYgY2ggIT09ICc7JyAmJiBjaCAhPT0gJywnO1xuICAgIH1cbiAgICB3aGlsZShwb3MgPCBjb29raWVzU3RyaW5nLmxlbmd0aCl7XG4gICAgICAgIHN0YXJ0ID0gcG9zO1xuICAgICAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSBmYWxzZTtcbiAgICAgICAgd2hpbGUoc2tpcFdoaXRlc3BhY2UoKSl7XG4gICAgICAgICAgICBjaCA9IGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcyk7XG4gICAgICAgICAgICBpZiAoY2ggPT09ICcsJykge1xuICAgICAgICAgICAgICAgIC8vICcsJyBpcyBhIGNvb2tpZSBzZXBhcmF0b3IgaWYgd2UgaGF2ZSBsYXRlciBmaXJzdCAnPScsIG5vdCAnOycgb3IgJywnXG4gICAgICAgICAgICAgICAgbGFzdENvbW1hID0gcG9zO1xuICAgICAgICAgICAgICAgIHBvcyArPSAxO1xuICAgICAgICAgICAgICAgIHNraXBXaGl0ZXNwYWNlKCk7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXJ0ID0gcG9zO1xuICAgICAgICAgICAgICAgIHdoaWxlKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIG5vdFNwZWNpYWxDaGFyKCkpe1xuICAgICAgICAgICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gY3VycmVudGx5IHNwZWNpYWwgY2hhcmFjdGVyXG4gICAgICAgICAgICAgICAgaWYgKHBvcyA8IGNvb2tpZXNTdHJpbmcubGVuZ3RoICYmIGNvb2tpZXNTdHJpbmcuY2hhckF0KHBvcykgPT09ICc9Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBmb3VuZCBjb29raWVzIHNlcGFyYXRvclxuICAgICAgICAgICAgICAgICAgICBjb29raWVzU2VwYXJhdG9yRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAvLyBwb3MgaXMgaW5zaWRlIHRoZSBuZXh0IGNvb2tpZSwgc28gYmFjayB1cCBhbmQgcmV0dXJuIGl0LlxuICAgICAgICAgICAgICAgICAgICBwb3MgPSBuZXh0U3RhcnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZXNTdHJpbmdzLnB1c2goY29va2llc1N0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGxhc3RDb21tYSkpO1xuICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHBvcztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBpbiBwYXJhbSAnLCcgb3IgcGFyYW0gc2VwYXJhdG9yICc7JyxcbiAgICAgICAgICAgICAgICAgICAgLy8gd2UgY29udGludWUgZnJvbSB0aGF0IGNvbW1hXG4gICAgICAgICAgICAgICAgICAgIHBvcyA9IGxhc3RDb21tYSArIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwb3MgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvb2tpZXNTZXBhcmF0b3JGb3VuZCB8fCBwb3MgPj0gY29va2llc1N0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvb2tpZXNTdHJpbmdzLnB1c2goY29va2llc1N0cmluZy5zdWJzdHJpbmcoc3RhcnQsIGNvb2tpZXNTdHJpbmcubGVuZ3RoKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvb2tpZXNTdHJpbmdzO1xufVxuZnVuY3Rpb24gdG9Ob2RlT3V0Z29pbmdIdHRwSGVhZGVycyhoZWFkZXJzKSB7XG4gICAgY29uc3Qgbm9kZUhlYWRlcnMgPSB7fTtcbiAgICBjb25zdCBjb29raWVzID0gW107XG4gICAgaWYgKGhlYWRlcnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgaGVhZGVycy5lbnRyaWVzKCkpe1xuICAgICAgICAgICAgaWYgKGtleS50b0xvd2VyQ2FzZSgpID09PSAnc2V0LWNvb2tpZScpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBtYXkgaGF2ZSBnb3R0ZW4gYSBjb21tYSBqb2luZWQgc3RyaW5nIG9mIGNvb2tpZXMsIG9yIG11bHRpcGxlXG4gICAgICAgICAgICAgICAgLy8gc2V0LWNvb2tpZSBoZWFkZXJzLiBXZSBuZWVkIHRvIG1lcmdlIHRoZW0gaW50byBvbmUgaGVhZGVyIGFycmF5XG4gICAgICAgICAgICAgICAgLy8gdG8gcmVwcmVzZW50IGFsbCB0aGUgY29va2llcy5cbiAgICAgICAgICAgICAgICBjb29raWVzLnB1c2goLi4uc3BsaXRDb29raWVzU3RyaW5nKHZhbHVlKSk7XG4gICAgICAgICAgICAgICAgbm9kZUhlYWRlcnNba2V5XSA9IGNvb2tpZXMubGVuZ3RoID09PSAxID8gY29va2llc1swXSA6IGNvb2tpZXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5vZGVIZWFkZXJzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbm9kZUhlYWRlcnM7XG59XG5mdW5jdGlvbiB2YWxpZGF0ZVVSTCh1cmwpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gU3RyaW5nKG5ldyBVUkwoU3RyaW5nKHVybCkpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBVUkwgaXMgbWFsZm9ybWVkIFwiJHtTdHJpbmcodXJsKX1cIi4gUGxlYXNlIHVzZSBvbmx5IGFic29sdXRlIFVSTHMgLSBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taWRkbGV3YXJlLXJlbGF0aXZlLXVybHNgLCB7XG4gICAgICAgICAgICBjYXVzZTogZXJyb3JcbiAgICAgICAgfSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTYxXCIsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBub3JtYWxpemVOZXh0UXVlcnlQYXJhbShrZXkpIHtcbiAgICBjb25zdCBwcmVmaXhlcyA9IFtcbiAgICAgICAgX2NvbnN0YW50cy5ORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCxcbiAgICAgICAgX2NvbnN0YW50cy5ORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYXG4gICAgXTtcbiAgICBmb3IgKGNvbnN0IHByZWZpeCBvZiBwcmVmaXhlcyl7XG4gICAgICAgIGlmIChrZXkgIT09IHByZWZpeCAmJiBrZXkuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5LnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/constants.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/shared/lib/constants.js ***!
\********************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n APP_BUILD_MANIFEST: function() {\n return APP_BUILD_MANIFEST;\n },\n APP_CLIENT_INTERNALS: function() {\n return APP_CLIENT_INTERNALS;\n },\n APP_PATHS_MANIFEST: function() {\n return APP_PATHS_MANIFEST;\n },\n APP_PATH_ROUTES_MANIFEST: function() {\n return APP_PATH_ROUTES_MANIFEST;\n },\n BARREL_OPTIMIZATION_PREFIX: function() {\n return BARREL_OPTIMIZATION_PREFIX;\n },\n BLOCKED_PAGES: function() {\n return BLOCKED_PAGES;\n },\n BUILD_ID_FILE: function() {\n return BUILD_ID_FILE;\n },\n BUILD_MANIFEST: function() {\n return BUILD_MANIFEST;\n },\n CLIENT_PUBLIC_FILES_PATH: function() {\n return CLIENT_PUBLIC_FILES_PATH;\n },\n CLIENT_REFERENCE_MANIFEST: function() {\n return CLIENT_REFERENCE_MANIFEST;\n },\n CLIENT_STATIC_FILES_PATH: function() {\n return CLIENT_STATIC_FILES_PATH;\n },\n CLIENT_STATIC_FILES_RUNTIME_AMP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_AMP;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN_APP;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\n },\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: function() {\n return CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH;\n },\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK: function() {\n return CLIENT_STATIC_FILES_RUNTIME_WEBPACK;\n },\n COMPILER_INDEXES: function() {\n return COMPILER_INDEXES;\n },\n COMPILER_NAMES: function() {\n return COMPILER_NAMES;\n },\n CONFIG_FILES: function() {\n return CONFIG_FILES;\n },\n DEFAULT_RUNTIME_WEBPACK: function() {\n return DEFAULT_RUNTIME_WEBPACK;\n },\n DEFAULT_SANS_SERIF_FONT: function() {\n return DEFAULT_SANS_SERIF_FONT;\n },\n DEFAULT_SERIF_FONT: function() {\n return DEFAULT_SERIF_FONT;\n },\n DEV_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return DEV_CLIENT_MIDDLEWARE_MANIFEST;\n },\n DEV_CLIENT_PAGES_MANIFEST: function() {\n return DEV_CLIENT_PAGES_MANIFEST;\n },\n DYNAMIC_CSS_MANIFEST: function() {\n return DYNAMIC_CSS_MANIFEST;\n },\n EDGE_RUNTIME_WEBPACK: function() {\n return EDGE_RUNTIME_WEBPACK;\n },\n EDGE_UNSUPPORTED_NODE_APIS: function() {\n return EDGE_UNSUPPORTED_NODE_APIS;\n },\n EXPORT_DETAIL: function() {\n return EXPORT_DETAIL;\n },\n EXPORT_MARKER: function() {\n return EXPORT_MARKER;\n },\n FUNCTIONS_CONFIG_MANIFEST: function() {\n return FUNCTIONS_CONFIG_MANIFEST;\n },\n IMAGES_MANIFEST: function() {\n return IMAGES_MANIFEST;\n },\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: function() {\n return INTERCEPTION_ROUTE_REWRITE_MANIFEST;\n },\n MIDDLEWARE_BUILD_MANIFEST: function() {\n return MIDDLEWARE_BUILD_MANIFEST;\n },\n MIDDLEWARE_MANIFEST: function() {\n return MIDDLEWARE_MANIFEST;\n },\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: function() {\n return MIDDLEWARE_REACT_LOADABLE_MANIFEST;\n },\n MODERN_BROWSERSLIST_TARGET: function() {\n return _modernbrowserslisttarget.default;\n },\n NEXT_BUILTIN_DOCUMENT: function() {\n return NEXT_BUILTIN_DOCUMENT;\n },\n NEXT_FONT_MANIFEST: function() {\n return NEXT_FONT_MANIFEST;\n },\n PAGES_MANIFEST: function() {\n return PAGES_MANIFEST;\n },\n PHASE_DEVELOPMENT_SERVER: function() {\n return PHASE_DEVELOPMENT_SERVER;\n },\n PHASE_EXPORT: function() {\n return PHASE_EXPORT;\n },\n PHASE_INFO: function() {\n return PHASE_INFO;\n },\n PHASE_PRODUCTION_BUILD: function() {\n return PHASE_PRODUCTION_BUILD;\n },\n PHASE_PRODUCTION_SERVER: function() {\n return PHASE_PRODUCTION_SERVER;\n },\n PHASE_TEST: function() {\n return PHASE_TEST;\n },\n PRERENDER_MANIFEST: function() {\n return PRERENDER_MANIFEST;\n },\n REACT_LOADABLE_MANIFEST: function() {\n return REACT_LOADABLE_MANIFEST;\n },\n ROUTES_MANIFEST: function() {\n return ROUTES_MANIFEST;\n },\n RSC_MODULE_TYPES: function() {\n return RSC_MODULE_TYPES;\n },\n SERVER_DIRECTORY: function() {\n return SERVER_DIRECTORY;\n },\n SERVER_FILES_MANIFEST: function() {\n return SERVER_FILES_MANIFEST;\n },\n SERVER_PROPS_ID: function() {\n return SERVER_PROPS_ID;\n },\n SERVER_REFERENCE_MANIFEST: function() {\n return SERVER_REFERENCE_MANIFEST;\n },\n STATIC_PROPS_ID: function() {\n return STATIC_PROPS_ID;\n },\n STATIC_STATUS_PAGES: function() {\n return STATIC_STATUS_PAGES;\n },\n STRING_LITERAL_DROP_BUNDLE: function() {\n return STRING_LITERAL_DROP_BUNDLE;\n },\n SUBRESOURCE_INTEGRITY_MANIFEST: function() {\n return SUBRESOURCE_INTEGRITY_MANIFEST;\n },\n SYSTEM_ENTRYPOINTS: function() {\n return SYSTEM_ENTRYPOINTS;\n },\n TRACE_OUTPUT_VERSION: function() {\n return TRACE_OUTPUT_VERSION;\n },\n TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST;\n },\n TURBO_TRACE_DEFAULT_MEMORY_LIMIT: function() {\n return TURBO_TRACE_DEFAULT_MEMORY_LIMIT;\n },\n UNDERSCORE_NOT_FOUND_ROUTE: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE;\n },\n UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE_ENTRY;\n },\n WEBPACK_STATS: function() {\n return WEBPACK_STATS;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(rsc)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./modern-browserslist-target */ \"(rsc)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\"));\nconst COMPILER_NAMES = {\n client: 'client',\n server: 'server',\n edgeServer: 'edge-server'\n};\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\nconst UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found';\nconst UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = \"\" + UNDERSCORE_NOT_FOUND_ROUTE + \"/page\";\nconst PHASE_EXPORT = 'phase-export';\nconst PHASE_PRODUCTION_BUILD = 'phase-production-build';\nconst PHASE_PRODUCTION_SERVER = 'phase-production-server';\nconst PHASE_DEVELOPMENT_SERVER = 'phase-development-server';\nconst PHASE_TEST = 'phase-test';\nconst PHASE_INFO = 'phase-info';\nconst PAGES_MANIFEST = 'pages-manifest.json';\nconst WEBPACK_STATS = 'webpack-stats.json';\nconst APP_PATHS_MANIFEST = 'app-paths-manifest.json';\nconst APP_PATH_ROUTES_MANIFEST = 'app-path-routes-manifest.json';\nconst BUILD_MANIFEST = 'build-manifest.json';\nconst APP_BUILD_MANIFEST = 'app-build-manifest.json';\nconst FUNCTIONS_CONFIG_MANIFEST = 'functions-config-manifest.json';\nconst SUBRESOURCE_INTEGRITY_MANIFEST = 'subresource-integrity-manifest';\nconst NEXT_FONT_MANIFEST = 'next-font-manifest';\nconst EXPORT_MARKER = 'export-marker.json';\nconst EXPORT_DETAIL = 'export-detail.json';\nconst PRERENDER_MANIFEST = 'prerender-manifest.json';\nconst ROUTES_MANIFEST = 'routes-manifest.json';\nconst IMAGES_MANIFEST = 'images-manifest.json';\nconst SERVER_FILES_MANIFEST = 'required-server-files.json';\nconst DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json';\nconst MIDDLEWARE_MANIFEST = 'middleware-manifest.json';\nconst TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST = '_clientMiddlewareManifest.json';\nconst DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json';\nconst REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json';\nconst SERVER_DIRECTORY = 'server';\nconst CONFIG_FILES = [\n 'next.config.js',\n 'next.config.mjs',\n 'next.config.ts'\n];\nconst BUILD_ID_FILE = 'BUILD_ID';\nconst BLOCKED_PAGES = [\n '/_document',\n '/_app',\n '/_error'\n];\nconst CLIENT_PUBLIC_FILES_PATH = 'public';\nconst CLIENT_STATIC_FILES_PATH = 'static';\nconst STRING_LITERAL_DROP_BUNDLE = '__NEXT_DROP_CLIENT_FILE__';\nconst NEXT_BUILTIN_DOCUMENT = '__NEXT_BUILTIN_DOCUMENT__';\nconst BARREL_OPTIMIZATION_PREFIX = '__barrel_optimize__';\nconst CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest';\nconst SERVER_REFERENCE_MANIFEST = 'server-reference-manifest';\nconst MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest';\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = 'middleware-react-loadable-manifest';\nconst INTERCEPTION_ROUTE_REWRITE_MANIFEST = 'interception-route-rewrite-manifest';\nconst DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest';\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\nconst APP_CLIENT_INTERNALS = 'app-pages-internals';\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills';\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\nconst DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime';\nconst EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack';\nconst STATIC_PROPS_ID = '__N_SSG';\nconst SERVER_PROPS_ID = '__N_SSP';\nconst DEFAULT_SERIF_FONT = {\n name: 'Times New Roman',\n xAvgCharWidth: 821,\n azAvgWidth: 854.3953488372093,\n unitsPerEm: 2048\n};\nconst DEFAULT_SANS_SERIF_FONT = {\n name: 'Arial',\n xAvgCharWidth: 904,\n azAvgWidth: 934.5116279069767,\n unitsPerEm: 2048\n};\nconst STATIC_STATUS_PAGES = [\n '/500'\n];\nconst TRACE_OUTPUT_VERSION = 1;\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: 'client',\n server: 'server'\n};\nconst EDGE_UNSUPPORTED_NODE_APIS = [\n 'clearImmediate',\n 'setImmediate',\n 'BroadcastChannel',\n 'ByteLengthQueuingStrategy',\n 'CompressionStream',\n 'CountQueuingStrategy',\n 'DecompressionStream',\n 'DomException',\n 'MessageChannel',\n 'MessageEvent',\n 'MessagePort',\n 'ReadableByteStreamController',\n 'ReadableStreamBYOBRequest',\n 'ReadableStreamDefaultController',\n 'TransformStreamDefaultController',\n 'WritableStreamDefaultController'\n];\nconst SYSTEM_ENTRYPOINTS = new Set([\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP\n]);\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW1DYUEsa0JBQWtCO2VBQWxCQTs7SUFpREFDLG9CQUFvQjtlQUFwQkE7O0lBcERBQyxrQkFBa0I7ZUFBbEJBOztJQUNBQyx3QkFBd0I7ZUFBeEJBOztJQThCQUMsMEJBQTBCO2VBQTFCQTs7SUFMQUMsYUFBYTtlQUFiQTs7SUFEQUMsYUFBYTtlQUFiQTs7SUF2QkFDLGNBQWM7ZUFBZEE7O0lBeUJBQyx3QkFBd0I7ZUFBeEJBOztJQU9BQyx5QkFBeUI7ZUFBekJBOztJQU5BQyx3QkFBd0I7ZUFBeEJBOztJQTRCQUMsK0JBQStCO2VBQS9CQTs7SUFQQUMsZ0NBQWdDO2VBQWhDQTs7SUFDQUMsb0NBQW9DO2VBQXBDQTs7SUFVQUMscUNBQXFDO2VBQXJDQTs7SUFDQUMsNENBQTRDO2VBQTVDQTs7SUFQQUMseUNBQXlDO2VBQXpDQTs7SUFJQUMsbUNBQW1DO2VBQW5DQTs7SUE1RUFDLGdCQUFnQjtlQUFoQkE7O0lBUkFDLGNBQWM7ZUFBZEE7O0lBOENBQyxZQUFZO2VBQVpBOztJQTRDQUMsdUJBQXVCO2VBQXZCQTs7SUFVQUMsdUJBQXVCO2VBQXZCQTs7SUFOQUMsa0JBQWtCO2VBQWxCQTs7SUFuREFDLDhCQUE4QjtlQUE5QkE7O0lBSkFDLHlCQUF5QjtlQUF6QkE7O0lBaUNBQyxvQkFBb0I7ZUFBcEJBOztJQW1CQUMsb0JBQW9CO2VBQXBCQTs7SUE2QkFDLDBCQUEwQjtlQUExQkE7O0lBdEZBQyxhQUFhO2VBQWJBOztJQURBQyxhQUFhO2VBQWJBOztJQUhBQyx5QkFBeUI7ZUFBekJBOztJQU9BQyxlQUFlO2VBQWZBOztJQWdDQUMsbUNBQW1DO2VBQW5DQTs7SUFMQUMseUJBQXlCO2VBQXpCQTs7SUF4QkFDLG1CQUFtQjtlQUFuQkE7O0lBMEJBQyxrQ0FBa0M7ZUFBbENBOztJQXRFSkMsMEJBQTBCO2VBQTFCQSwwQkFBQUEs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d0M7QUFDOUMsTUFBTUMsK0NBQStDc0QsT0FDMUR2RDtBQUVLLE1BQU1PLDBCQUEwQjtBQUNoQyxNQUFNTSx1QkFBdUI7QUFDN0IsTUFBTTRCLGtCQUFrQjtBQUN4QixNQUFNRixrQkFBa0I7QUFDeEIsTUFBTTlCLHFCQUFxQjtJQUNoQytDLE1BQU07SUFDTkMsZUFBZTtJQUNmQyxZQUFZO0lBQ1pDLFlBQVk7QUFDZDtBQUNPLE1BQU1uRCwwQkFBMEI7SUFDckNnRCxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2Q7QUFDTyxNQUFNakIsc0JBQXNCO0lBQUM7Q0FBTztBQUNwQyxNQUFNSSx1QkFBdUI7QUFFN0IsTUFBTUUsbUNBQW1DO0FBRXpDLE1BQU1aLG1CQUFtQjtJQUM5QmdCLFFBQVE7SUFDUkMsUUFBUTtBQUNWO0FBTU8sTUFBTXZDLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sTUFBTStCLHFCQUFxQixJQUFJZSxJQUFZO0lBQ2hEOUQ7SUFDQUk7SUFDQUw7SUFDQUU7Q0FDRCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCBmcm9tICcuL21vZGVybi1icm93c2Vyc2xpc3QtdGFyZ2V0J1xuXG5leHBvcnQgeyBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCB9XG5cbmV4cG9ydCB0eXBlIFZhbHVlT2Y8VD4gPSBSZXF1aXJlZDxUPltrZXlvZiBUXVxuXG5leHBvcnQgY29uc3QgQ09NUElMRVJfTkFNRVMgPSB7XG4gIGNsaWVudDogJ2NsaWVudCcsXG4gIHNlcnZlcjogJ3NlcnZlcicsXG4gIGVkZ2VTZXJ2ZXI6ICdlZGdlLXNlcnZlcicsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIENvbXBpbGVyTmFtZVZhbHVlcyA9IFZhbHVlT2Y8dHlwZW9mIENPTVBJTEVSX05BTUVTPlxuXG5leHBvcnQgY29uc3QgQ09NUElMRVJfSU5ERVhFUzoge1xuICBbY29tcGlsZXJLZXkgaW4gQ29tcGlsZXJOYW1lVmFsdWVzXTogbnVtYmVyXG59ID0ge1xuICBbQ09NUElMRVJfTkFNRVMuY2xpZW50XTogMCxcbiAgW0NPTVBJTEVSX05BTUVTLnNlcnZlcl06IDEsXG4gIFtDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXTogMixcbn0gYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IFVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFID0gJy9fbm90LWZvdW5kJ1xuZXhwb3J0IGNvbnN0IFVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFX0VOVFJZID0gYCR7VU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEV9L3BhZ2VgXG5leHBvcnQgY29uc3QgUEhBU0VfRVhQT1JUID0gJ3BoYXNlLWV4cG9ydCdcbmV4cG9ydCBjb25zdCBQSEFTRV9QUk9EVUNUSU9OX0JVSUxEID0gJ3BoYXNlLXByb2R1Y3Rpb24tYnVpbGQnXG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9TRVJWRVIgPSAncGhhc2UtcHJvZHVjdGlvbi1zZXJ2ZXInXG5leHBvcnQgY29uc3QgUEhBU0VfREVWRUxPUE1FTlRfU0VSVkVSID0gJ3BoYXNlLWRldmVsb3BtZW50LXNlcnZlcidcbmV4cG9ydCBjb25zdCBQSEFTRV9URVNUID0gJ3BoYXNlLXRlc3QnXG5leHBvcnQgY29uc3QgUEhBU0VfSU5GTyA9ICdwaGFzZS1pbmZvJ1xuZXhwb3J0IGNvbnN0IFBBR0VTX01BTklGRVNUID0gJ3BhZ2VzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgV0VCUEFDS19TVEFUUyA9ICd3ZWJwYWNrLXN0YXRzLmpzb24nXG5leHBvcnQgY29uc3QgQVBQX1BBVEhTX01BTklGRVNUID0gJ2FwcC1wYXRocy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIX1JPVVRFU19NQU5JRkVTVCA9ICdhcHAtcGF0aC1yb3V0ZXMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBCVUlMRF9NQU5JRkVTVCA9ICdidWlsZC1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9CVUlMRF9NQU5JRkVTVCA9ICdhcHAtYnVpbGQtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBGVU5DVElPTlNfQ09ORklHX01BTklGRVNUID0gJ2Z1bmN0aW9ucy1jb25maWctbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBTVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QgPSAnc3VicmVzb3VyY2UtaW50ZWdyaXR5LW1hbmlmZXN0J1xuZXhwb3J0IGNvbnN0IE5FWFRfRk9OVF9NQU5JRkVTVCA9ICduZXh0LWZvbnQtbWFuaWZlc3QnXG5leHBvcnQgY29uc3QgRVhQT1JUX01BUktFUiA9ICdleHBvcnQtbWFya2VyLmpzb24nXG5leHBvcnQgY29uc3QgRVhQT1JUX0RFVEFJTCA9ICdleHBvcnQtZGV0YWlsLmpzb24nXG5leHBvcnQgY29uc3QgUFJFUkVOREVSX01BTklGRVNUID0gJ3ByZXJlbmRlci1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFJPVVRFU19NQU5JRkVTVCA9ICdyb3V0ZXMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBJTUFHRVNfTUFOSUZFU1QgPSAnaW1hZ2VzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU0VSVkVSX0ZJTEVTX01BTklGRVNUID0gJ3JlcXVpcmVkLXNlcnZlci1maWxlcy5qc29uJ1xuZXhwb3J0IGNvbnN0IERFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QgPSAnX2RldlBhZ2VzTWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX01BTklGRVNUID0gJ21pZGRsZXdhcmUtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QgPVxuICAnX2NsaWVudE1pZGRsZXdhcmVNYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IERFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCA9ICdfZGV2TWlkZGxld2FyZU1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QgPSAncmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBTRVJWRVJfRElSRUNUT1JZID0gJ3NlcnZlcidcbmV4cG9ydCBjb25zdCBDT05GSUdfRklMRVMgPSBbXG4gICduZXh0LmNvbmZpZy5qcycsXG4gICduZXh0LmNvbmZpZy5tanMnLFxuICAnbmV4dC5jb25maWcudHMnLFxuXVxuZXhwb3J0IGNvbnN0IEJVSUxEX0lEX0ZJTEUgPSAnQlVJTERfSUQnXG5leHBvcnQgY29uc3QgQkxPQ0tFRF9QQUdFUyA9IFsnL19kb2N1bWVudCcsICcvX2FwcCcsICcvX2Vycm9yJ11cbmV4cG9ydCBjb25zdCBDTElFTlRfUFVCTElDX0ZJTEVTX1BBVEggPSAncHVibGljJ1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCA9ICdzdGF0aWMnXG5leHBvcnQgY29uc3QgU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUgPSAnX19ORVhUX0RST1BfQ0xJRU5UX0ZJTEVfXydcbmV4cG9ydCBjb25zdCBORVhUX0JVSUxUSU5fRE9DVU1FTlQgPSAnX19ORVhUX0JVSUxUSU5fRE9DVU1FTlRfXydcbmV4cG9ydCBjb25zdCBCQVJSRUxfT1BUSU1JWkFUSU9OX1BSRUZJWCA9ICdfX2JhcnJlbF9vcHRpbWl6ZV9fJ1xuXG4vLyBzZXJ2ZXIvW2VudHJ5XS9wYWdlX2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfUkVGRVJFTkNFX01BTklGRVNUID0gJ2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdFxuZXhwb3J0IGNvbnN0IFNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QgPSAnc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9taWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0J1xuLy8gc2VydmVyL21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX1JFQUNUX0xPQURBQkxFX01BTklGRVNUID1cbiAgJ21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvaW50ZXJjZXB0aW9uLXJvdXRlLXJld3JpdGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfUkVXUklURV9NQU5JRkVTVCA9XG4gICdpbnRlcmNlcHRpb24tcm91dGUtcmV3cml0ZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9keW5hbWljLWNzcy1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IERZTkFNSUNfQ1NTX01BTklGRVNUID0gJ2R5bmFtaWMtY3NzLW1hbmlmZXN0J1xuXG4vLyBzdGF0aWMvcnVudGltZS9tYWluLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4gPSBgbWFpbmBcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAgPSBgJHtDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTn0tYXBwYFxuLy8gbmV4dCBpbnRlcm5hbCBjbGllbnQgY29tcG9uZW50cyBjaHVuayBmb3IgbGF5b3V0c1xuZXhwb3J0IGNvbnN0IEFQUF9DTElFTlRfSU5URVJOQUxTID0gJ2FwcC1wYWdlcy1pbnRlcm5hbHMnXG4vLyBzdGF0aWMvcnVudGltZS9yZWFjdC1yZWZyZXNoLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1JFQUNUX1JFRlJFU0ggPSBgcmVhY3QtcmVmcmVzaGBcbi8vIHN0YXRpYy9ydW50aW1lL2FtcC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAgPSBgYW1wYFxuLy8gc3RhdGljL3J1bnRpbWUvd2VicGFjay5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9XRUJQQUNLID0gYHdlYnBhY2tgXG4vLyBzdGF0aWMvcnVudGltZS9wb2x5ZmlsbHMuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTID0gJ3BvbHlmaWxscydcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCA9IFN5bWJvbChcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU1xuKVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUlVOVElNRV9XRUJQQUNLID0gJ3dlYnBhY2stcnVudGltZSdcbmV4cG9ydCBjb25zdCBFREdFX1JVTlRJTUVfV0VCUEFDSyA9ICdlZGdlLXJ1bnRpbWUtd2VicGFjaydcbmV4cG9ydCBjb25zdCBTVEFUSUNfUFJPUFNfSUQgPSAnX19OX1NTRydcbmV4cG9ydCBjb25zdCBTRVJWRVJfUFJPUFNfSUQgPSAnX19OX1NTUCdcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFUklGX0ZPTlQgPSB7XG4gIG5hbWU6ICdUaW1lcyBOZXcgUm9tYW4nLFxuICB4QXZnQ2hhcldpZHRoOiA4MjEsXG4gIGF6QXZnV2lkdGg6IDg1NC4zOTUzNDg4MzcyMDkzLFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0FOU19TRVJJRl9GT05UID0ge1xuICBuYW1lOiAnQXJpYWwnLFxuICB4QXZnQ2hhcldpZHRoOiA5MDQsXG4gIGF6QXZnV2lkdGg6IDkzNC41MTE2Mjc5MDY5NzY3LFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IFNUQVRJQ19TVEFUVVNfUEFHRVMgPSBbJy81MDAnXVxuZXhwb3J0IGNvbnN0IFRSQUNFX09VVFBVVF9WRVJTSU9OID0gMVxuLy8gaW4gYE1CYFxuZXhwb3J0IGNvbnN0IFRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUID0gNjAwMFxuXG5leHBvcnQgY29uc3QgUlNDX01PRFVMRV9UWVBFUyA9IHtcbiAgY2xpZW50OiAnY2xpZW50JyxcbiAgc2VydmVyOiAnc2VydmVyJyxcbn0gYXMgY29uc3RcblxuLy8gY29tcGFyaW5nXG4vLyBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL2VkZ2UtcnVudGltZVxuLy8gd2l0aFxuLy8gaHR0cHM6Ly9ub2RlanMub3JnL2RvY3MvbGF0ZXN0L2FwaS9nbG9iYWxzLmh0bWxcbmV4cG9ydCBjb25zdCBFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyA9IFtcbiAgJ2NsZWFySW1tZWRpYXRlJyxcbiAgJ3NldEltbWVkaWF0ZScsXG4gICdCcm9hZGNhc3RDaGFubmVsJyxcbiAgJ0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3knLFxuICAnQ29tcHJlc3Npb25TdHJlYW0nLFxuICAnQ291bnRRdWV1aW5nU3RyYXRlZ3knLFxuICAnRGVjb21wcmVzc2lvblN0cmVhbScsXG4gICdEb21FeGNlcHRpb24nLFxuICAnTWVzc2FnZUNoYW5uZWwnLFxuICAnTWVzc2FnZUV2ZW50JyxcbiAgJ01lc3NhZ2VQb3J0JyxcbiAgJ1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXInLFxuICAnUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdCcsXG4gICdSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1RyYW5zZm9ybVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1dyaXRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXInLFxuXVxuXG5leHBvcnQgY29uc3QgU1lTVEVNX0VOVFJZUE9JTlRTID0gbmV3IFNldDxzdHJpbmc+KFtcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4sXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNILFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QLFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAsXG5dKVxuIl0sIm5hbWVzIjpbIkFQUF9CVUlMRF9NQU5JRkVTVCIsIkFQUF9DTElFTlRfSU5URVJOQUxTIiwiQVBQX1BBVEhTX01BTklGRVNUIiwiQVBQX1BBVEhfUk9VVEVTX01BTklGRVNUIiwiQkFSUkVMX09QVElNSVpBVElPTl9QUkVGSVgiLCJCTE9DS0VEX1BBR0VTIiwiQlVJTERfSURfRklMRSIsIkJVSUxEX01BTklGRVNUIiwiQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIIiwiQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTiIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOX0FQUCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFMiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNIIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1dFQlBBQ0siLCJDT01QSUxFUl9JTkRFWEVTIiwiQ09NUElMRVJfTkFNRVMiLCJDT05GSUdfRklMRVMiLCJERUZBVUxUX1JVTlRJTUVfV0VCUEFDSyIsIkRFRkFVTFRfU0FOU19TRVJJRl9GT05UIiwiREVGQVVMVF9TRVJJRl9GT05UIiwiREVWX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUIiwiREVWX0NMSUVOVF9QQUdFU19NQU5JRkVTVCIsIkRZTkFNSUNfQ1NTX01BTklGRVNUIiwiRURHRV9SVU5USU1FX1dFQlBBQ0siLCJFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyIsIkVYUE9SVF9ERVRBSUwiLCJFWFBPUlRfTUFSS0VSIiwiRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCIsIklNQUdFU19NQU5JRkVTVCIsIklOVEVSQ0VQVElPTl9ST1VURV9SRVdSSVRFX01BTklGRVNUIiwiTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCIsIk1JRERMRVdBUkVfTUFOSUZFU1QiLCJNSURETEVXQVJFX1JFQUNUX0xPQURBQkxFX01BTklGRVNUIiwiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJORVhUX0JVSUxUSU5fRE9DVU1FTlQiLCJORVhUX0ZPTlRfTUFOSUZFU1QiLCJQQUdFU19NQU5JRkVTVCIsIlBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiIsIlBIQVNFX0VYUE9SVCIsIlBIQVNFX0lORk8iLCJQSEFTRV9QUk9EVUNUSU9OX0JVSUxEIiwiUEhBU0VfUFJPRFVDVElPTl9TRVJWRVIiLCJQSEFTRV9URVNUIiwiUFJFUkVOREVSX01BTklGRVNUIiwiUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QiLCJST1VURVNfTUFOSUZFU1QiLCJSU0NfTU9EVUxFX1RZUEVTIiwiU0VSVkVSX0RJUkVDVE9SWSIsIlNFUlZFUl9GSUxFU19NQU5JRkVTVCIsIlNFUlZFUl9QUk9QU19JRCIsIlNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QiLCJTVEFUSUNfUFJPUFNfSUQiLCJTVEFUSUNfU1RBVFVTX1BBR0VTIiwiU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUiLCJTVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QiLCJTWVNURU1fRU5UUllQT0lOVFMiLCJUUkFDRV9PVVRQVVRfVkVSU0lPTiIsIlRVUkJPUEFDS19DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIlRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUIiwiVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEUiLCJVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSIsIldFQlBBQ0tfU1RBVFMiLCJjbGllbnQiLCJzZXJ2ZXIiLCJlZGdlU2VydmVyIiwiU3ltYm9sIiwibmFtZSIsInhBdmdDaGFyV2lkdGgiLCJhekF2Z1dpZHRoIiwidW5pdHNQZXJFbSIsIlNldCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/constants.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/deep-freeze.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/shared/lib/deep-freeze.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"deepFreeze\", ({\n enumerable: true,\n get: function() {\n return deepFreeze;\n }\n}));\nfunction deepFreeze(obj) {\n // If the object is already frozen, there's no need to freeze it again.\n if (Object.isFrozen(obj)) return obj;\n // An array is an object, but we also want to freeze each element in the array\n // as well.\n if (Array.isArray(obj)) {\n for (const item of obj){\n if (!item || typeof item !== 'object') continue;\n deepFreeze(item);\n }\n return Object.freeze(obj);\n }\n for (const value of Object.values(obj)){\n if (!value || typeof value !== 'object') continue;\n deepFreeze(value);\n }\n return Object.freeze(obj);\n} //# sourceMappingURL=deep-freeze.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZGVlcC1mcmVlemUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FVZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQTZCQyxHQUFNO0lBQ2pELHVFQUF1RTtJQUN2RSxJQUFJQyxPQUFPQyxRQUFRLENBQUNGLE1BQU0sT0FBT0E7SUFFakMsOEVBQThFO0lBQzlFLFdBQVc7SUFDWCxJQUFJRyxNQUFNQyxPQUFPLENBQUNKLE1BQU07UUFDdEIsS0FBSyxNQUFNSyxRQUFRTCxJQUFLO1lBQ3RCLElBQUksQ0FBQ0ssUUFBUSxPQUFPQSxTQUFTLFVBQVU7WUFDdkNOLFdBQVdNO1FBQ2I7UUFFQSxPQUFPSixPQUFPSyxNQUFNLENBQUNOO0lBQ3ZCO0lBRUEsS0FBSyxNQUFNTyxTQUFTTixPQUFPTyxNQUFNLENBQUNSLEtBQU07UUFDdEMsSUFBSSxDQUFDTyxTQUFTLE9BQU9BLFVBQVUsVUFBVTtRQUN6Q1IsV0FBV1E7SUFDYjtJQUVBLE9BQU9OLE9BQU9LLE1BQU0sQ0FBQ047QUFDdkIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2RlZXAtZnJlZXplLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVlcFJlYWRvbmx5IH0gZnJvbSAnLi9kZWVwLXJlYWRvbmx5J1xuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGZyZWV6ZXMgYW4gb2JqZWN0IGFuZCBhbGwgb2YgaXRzIHByb3BlcnRpZXMuIFRoaXMgcHJldmVudHMgdGhlXG4gKiBvYmplY3QgZnJvbSBiZWluZyBtb2RpZmllZCBhdCBydW50aW1lLiBXaGVuIHRoZSBKUyBydW50aW1lIGlzIHJ1bm5pbmcgaW5cbiAqIHN0cmljdCBtb2RlLCBhbnkgYXR0ZW1wdHMgdG8gbW9kaWZ5IGEgZnJvemVuIG9iamVjdCB3aWxsIHRocm93IGFuIGVycm9yLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2ZyZWV6ZVxuICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGZyZWV6ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBGcmVlemU8VCBleHRlbmRzIG9iamVjdD4ob2JqOiBUKTogRGVlcFJlYWRvbmx5PFQ+IHtcbiAgLy8gSWYgdGhlIG9iamVjdCBpcyBhbHJlYWR5IGZyb3plbiwgdGhlcmUncyBubyBuZWVkIHRvIGZyZWV6ZSBpdCBhZ2Fpbi5cbiAgaWYgKE9iamVjdC5pc0Zyb3plbihvYmopKSByZXR1cm4gb2JqIGFzIERlZXBSZWFkb25seTxUPlxuXG4gIC8vIEFuIGFycmF5IGlzIGFuIG9iamVjdCwgYnV0IHdlIGFsc28gd2FudCB0byBmcmVlemUgZWFjaCBlbGVtZW50IGluIHRoZSBhcnJheVxuICAvLyBhcyB3ZWxsLlxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIG9iaikge1xuICAgICAgaWYgKCFpdGVtIHx8IHR5cGVvZiBpdGVtICE9PSAnb2JqZWN0JykgY29udGludWVcbiAgICAgIGRlZXBGcmVlemUoaXRlbSlcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShvYmopIGFzIERlZXBSZWFkb25seTxUPlxuICB9XG5cbiAgZm9yIChjb25zdCB2YWx1ZSBvZiBPYmplY3QudmFsdWVzKG9iaikpIHtcbiAgICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIGNvbnRpbnVlXG4gICAgZGVlcEZyZWV6ZSh2YWx1ZSlcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iaikgYXMgRGVlcFJlYWRvbmx5PFQ+XG59XG4iXSwibmFtZXMiOlsiZGVlcEZyZWV6ZSIsIm9iaiIsIk9iamVjdCIsImlzRnJvemVuIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbSIsImZyZWV6ZSIsInZhbHVlIiwidmFsdWVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/deep-freeze.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/errors/constants.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/errors/constants.js ***!
\***************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"MISSING_ROOT_TAGS_ERROR\", ({\n enumerable: true,\n get: function() {\n return MISSING_ROOT_TAGS_ERROR;\n }\n}));\nconst MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7OzJEQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSwwQkFBMEIiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL2Vycm9ycy9jb25zdGFudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SID0gJ05FWFRfTUlTU0lOR19ST09UX1RBR1MnXG4iXSwibmFtZXMiOlsiTUlTU0lOR19ST09UX1RBR1NfRVJST1IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/errors/constants.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/escape-regexp.js":
/*!************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/escape-regexp.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// regexp is based on https://github.com/sindresorhus/escape-string-regexp\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"escapeStringRegexp\", ({\n enumerable: true,\n get: function() {\n return escapeStringRegexp;\n }\n}));\nconst reHasRegExp = /[|\\\\{}()[\\]^$+*?.-]/;\nconst reReplaceRegExp = /[|\\\\{}()[\\]^$+*?.-]/g;\nfunction escapeStringRegexp(str) {\n // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23\n if (reHasRegExp.test(str)) {\n return str.replace(reReplaceRegExp, '\\\\$&');\n }\n return str;\n} //# sourceMappingURL=escape-regexp.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXNjYXBlLXJlZ2V4cC5qcyIsIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7Ozs7O3NEQUkxREE7OztlQUFBQTs7O0FBSGhCLE1BQU1DLGNBQWM7QUFDcEIsTUFBTUMsa0JBQWtCO0FBRWpCLFNBQVNGLG1CQUFtQkcsR0FBVztJQUM1QywrR0FBK0c7SUFDL0csSUFBSUYsWUFBWUcsSUFBSSxDQUFDRCxNQUFNO1FBQ3pCLE9BQU9BLElBQUlFLE9BQU8sQ0FBQ0gsaUJBQWlCO0lBQ3RDO0lBQ0EsT0FBT0M7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvZXNjYXBlLXJlZ2V4cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWdleHAgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9lc2NhcGUtc3RyaW5nLXJlZ2V4cFxuY29uc3QgcmVIYXNSZWdFeHAgPSAvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9cbmNvbnN0IHJlUmVwbGFjZVJlZ0V4cCA9IC9bfFxcXFx7fSgpW1xcXV4kKyo/Li1dL2dcblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVN0cmluZ1JlZ2V4cChzdHI6IHN0cmluZykge1xuICAvLyBzZWUgYWxzbzogaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi8yZGEwMjRjM2I0Zjk5NDdhNDg1MTc2MzlkZTc1NjA0NTdjZDRlYzZjL2VzY2FwZVJlZ0V4cC5qcyNMMjNcbiAgaWYgKHJlSGFzUmVnRXhwLnRlc3Qoc3RyKSkge1xuICAgIHJldHVybiBzdHIucmVwbGFjZShyZVJlcGxhY2VSZWdFeHAsICdcXFxcJCYnKVxuICB9XG4gIHJldHVybiBzdHJcbn1cbiJdLCJuYW1lcyI6WyJlc2NhcGVTdHJpbmdSZWdleHAiLCJyZUhhc1JlZ0V4cCIsInJlUmVwbGFjZVJlZ0V4cCIsInN0ciIsInRlc3QiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/escape-regexp.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/get-hostname.js":
/*!***********************************************************!*\
!*** ./node_modules/next/dist/shared/lib/get-hostname.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getHostname\", ({\n enumerable: true,\n get: function() {\n return getHostname;\n }\n}));\nfunction getHostname(parsed, headers) {\n // Get the hostname from the headers if it exists, otherwise use the parsed\n // hostname.\n let hostname;\n if ((headers == null ? void 0 : headers.host) && !Array.isArray(headers.host)) {\n hostname = headers.host.toString().split(':', 1)[0];\n } else if (parsed.hostname) {\n hostname = parsed.hostname;\n } else return;\n return hostname.toLowerCase();\n} //# sourceMappingURL=get-hostname.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBUWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxZQUNkQyxNQUFvQyxFQUNwQ0MsT0FBNkI7SUFFN0IsMkVBQTJFO0lBQzNFLFlBQVk7SUFDWixJQUFJQztJQUNKLElBQUlELENBQUFBLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFFBQVNFLElBQUFBLEtBQVEsQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDSixRQUFRRSxJQUFJLEdBQUc7UUFDakRELFdBQVdELFFBQVFFLElBQUksQ0FBQ0csUUFBUSxHQUFHQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtJQUNyRCxPQUFPLElBQUlQLE9BQU9FLFFBQVEsRUFBRTtRQUMxQkEsV0FBV0YsT0FBT0UsUUFBUTtJQUM1QixPQUFPO0lBRVAsT0FBT0EsU0FBU00sV0FBVztBQUM3QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvZ2V0LWhvc3RuYW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT3V0Z29pbmdIdHRwSGVhZGVycyB9IGZyb20gJ2h0dHAnXG5cbi8qKlxuICogVGFrZXMgYW4gb2JqZWN0IHdpdGggYSBob3N0bmFtZSBwcm9wZXJ0eSAobGlrZSBhIHBhcnNlZCBVUkwpIGFuZCBzb21lXG4gKiBoZWFkZXJzIHRoYXQgbWF5IGNvbnRhaW4gSG9zdCBhbmQgcmV0dXJucyB0aGUgcHJlZmVycmVkIGhvc3RuYW1lLlxuICogQHBhcmFtIHBhcnNlZCBBbiBvYmplY3QgY29udGFpbmluZyBhIGhvc3RuYW1lIHByb3BlcnR5LlxuICogQHBhcmFtIGhlYWRlcnMgQSBkaWN0aW9uYXJ5IHdpdGggaGVhZGVycyBjb250YWluaW5nIGEgYGhvc3RgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9zdG5hbWUoXG4gIHBhcnNlZDogeyBob3N0bmFtZT86IHN0cmluZyB8IG51bGwgfSxcbiAgaGVhZGVycz86IE91dGdvaW5nSHR0cEhlYWRlcnNcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIC8vIEdldCB0aGUgaG9zdG5hbWUgZnJvbSB0aGUgaGVhZGVycyBpZiBpdCBleGlzdHMsIG90aGVyd2lzZSB1c2UgdGhlIHBhcnNlZFxuICAvLyBob3N0bmFtZS5cbiAgbGV0IGhvc3RuYW1lOiBzdHJpbmdcbiAgaWYgKGhlYWRlcnM/Lmhvc3QgJiYgIUFycmF5LmlzQXJyYXkoaGVhZGVycy5ob3N0KSkge1xuICAgIGhvc3RuYW1lID0gaGVhZGVycy5ob3N0LnRvU3RyaW5nKCkuc3BsaXQoJzonLCAxKVswXVxuICB9IGVsc2UgaWYgKHBhcnNlZC5ob3N0bmFtZSkge1xuICAgIGhvc3RuYW1lID0gcGFyc2VkLmhvc3RuYW1lXG4gIH0gZWxzZSByZXR1cm5cblxuICByZXR1cm4gaG9zdG5hbWUudG9Mb3dlckNhc2UoKVxufVxuIl0sIm5hbWVzIjpbImdldEhvc3RuYW1lIiwicGFyc2VkIiwiaGVhZGVycyIsImhvc3RuYW1lIiwiaG9zdCIsIkFycmF5IiwiaXNBcnJheSIsInRvU3RyaW5nIiwic3BsaXQiLCJ0b0xvd2VyQ2FzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/get-hostname.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/hash.js":
/*!***************************************************!*\
!*** ./node_modules/next/dist/shared/lib/hash.js ***!
\***************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// http://www.cse.yorku.ca/~oz/hash.html\n// More specifically, 32-bit hash via djbxor\n// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765)\n// This is due to number type differences between rust for turbopack to js number types,\n// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching\n// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation\n// as can gaurantee determinstic output from 32bit hash.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n djb2Hash: function() {\n return djb2Hash;\n },\n hexHash: function() {\n return hexHash;\n }\n});\nfunction djb2Hash(str) {\n let hash = 5381;\n for(let i = 0; i < str.length; i++){\n const char = str.charCodeAt(i);\n hash = (hash << 5) + hash + char & 0xffffffff;\n }\n return hash >>> 0;\n}\nfunction hexHash(str) {\n return djb2Hash(str).toString(36).slice(0, 5);\n} //# sourceMappingURL=hash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsNENBQTRDO0FBQzVDLGlIQUFpSDtBQUNqSCx3RkFBd0Y7QUFDeEYsZ0dBQWdHO0FBQ2hHLHdIQUF3SDtBQUN4SCx3REFBd0Q7Ozs7Ozs7Ozs7Ozs7SUFDeENBLFFBQVE7ZUFBUkE7O0lBU0FDLE9BQU87ZUFBUEE7OztBQVRULFNBQVNELFNBQVNFLEdBQVc7SUFDbEMsSUFBSUMsT0FBTztJQUNYLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJRixJQUFJRyxNQUFNLEVBQUVELElBQUs7UUFDbkMsTUFBTUUsT0FBT0osSUFBSUssVUFBVSxDQUFDSDtRQUM1QkQsT0FBU0EsQ0FBQUEsU0FBUSxJQUFLQSxPQUFPRyxPQUFRO0lBQ3ZDO0lBQ0EsT0FBT0gsU0FBUztBQUNsQjtBQUVPLFNBQVNGLFFBQVFDLEdBQVc7SUFDakMsT0FBT0YsU0FBU0UsS0FBS00sUUFBUSxDQUFDLElBQUlDLEtBQUssQ0FBQyxHQUFHO0FBQzdDIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9oYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHA6Ly93d3cuY3NlLnlvcmt1LmNhL35vei9oYXNoLmh0bWxcbi8vIE1vcmUgc3BlY2lmaWNhbGx5LCAzMi1iaXQgaGFzaCB2aWEgZGpieG9yXG4vLyAocmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9lcGxhd2xlc3MvNTI4MTNiMWQ4YWQ5YWY1MTBkODU/cGVybWFsaW5rX2NvbW1lbnRfaWQ9MzM2Nzc2NSNnaXN0Y29tbWVudC0zMzY3NzY1KVxuLy8gVGhpcyBpcyBkdWUgdG8gbnVtYmVyIHR5cGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBydXN0IGZvciB0dXJib3BhY2sgdG8ganMgbnVtYmVyIHR5cGVzLFxuLy8gd2hlcmUgcnVzdCBkb2VzIG5vdCBoYXZlIGVhc3kgd2F5IHRvIHJlcHJlZXNudCBqcydzIDUzLWJpdCBmbG9hdCBudW1iZXIgdHlwZSBmb3IgdGhlIG1hdGNoaW5nXG4vLyBvdmVyZmxvdyBiZWhhdmlvci4gVGhpcyBpcyBtb3JlIGBjb3JyZWN0YCBpbiB0ZXJtcyBvZiBoYXZpbmcgY2Fub25pY2FsIGhhc2ggYWNyb3NzIGRpZmZlcmVudCBydW50aW1lIC8gaW1wbGVtZW50YXRpb25cbi8vIGFzIGNhbiBnYXVyYW50ZWUgZGV0ZXJtaW5zdGljIG91dHB1dCBmcm9tIDMyYml0IGhhc2guXG5leHBvcnQgZnVuY3Rpb24gZGpiMkhhc2goc3RyOiBzdHJpbmcpIHtcbiAgbGV0IGhhc2ggPSA1MzgxXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGFzaCA9ICgoaGFzaCA8PCA1KSArIGhhc2ggKyBjaGFyKSAmIDB4ZmZmZmZmZmZcbiAgfVxuICByZXR1cm4gaGFzaCA+Pj4gMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGV4SGFzaChzdHI6IHN0cmluZykge1xuICByZXR1cm4gZGpiMkhhc2goc3RyKS50b1N0cmluZygzNikuc2xpY2UoMCwgNSlcbn1cbiJdLCJuYW1lcyI6WyJkamIySGFzaCIsImhleEhhc2giLCJzdHIiLCJoYXNoIiwiaSIsImxlbmd0aCIsImNoYXIiLCJjaGFyQ29kZUF0IiwidG9TdHJpbmciLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/hash.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js":
/*!************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js ***!
\************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"detectDomainLocale\", ({\n enumerable: true,\n get: function() {\n return detectDomainLocale;\n }\n}));\nfunction detectDomainLocale(domainItems, hostname, detectedLocale) {\n if (!domainItems) return;\n if (detectedLocale) {\n detectedLocale = detectedLocale.toLowerCase();\n }\n for (const item of domainItems){\n var _item_domain, _item_locales;\n // remove port if present\n const domainHostname = (_item_domain = item.domain) == null ? void 0 : _item_domain.split(':', 1)[0].toLowerCase();\n if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || ((_item_locales = item.locales) == null ? void 0 : _item_locales.some((locale)=>locale.toLowerCase() === detectedLocale))) {\n return item;\n }\n }\n} //# sourceMappingURL=detect-domain-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7O3NEQUVnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQ2RDLFdBQXFDLEVBQ3JDQyxRQUFpQixFQUNqQkMsY0FBdUI7SUFFdkIsSUFBSSxDQUFDRixhQUFhO0lBRWxCLElBQUlFLGdCQUFnQjtRQUNsQkEsaUJBQWlCQSxlQUFlQyxXQUFXO0lBQzdDO0lBRUEsS0FBSyxNQUFNQyxRQUFRSixZQUFhO1lBRVBJLGNBSXJCQTtRQUxGLHlCQUF5QjtRQUN6QixNQUFNQyxpQkFBQUEsQ0FBaUJELGVBQUFBLEtBQUtFLE1BQUFBLEtBQU0sZ0JBQVhGLGFBQWFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUNKLFdBQVc7UUFDaEUsSUFDRUYsYUFBYUksa0JBQ2JILG1CQUFtQkUsS0FBS0ksYUFBYSxDQUFDTCxXQUFXLFFBQ2pEQyxnQkFBQUEsS0FBS0ssT0FBQUEsS0FBTyxnQkFBWkwsY0FBY00sSUFBSSxDQUFDLENBQUNDLFNBQVdBLE9BQU9SLFdBQVcsT0FBT0QsZUFBQUEsR0FDeEQ7WUFDQSxPQUFPRTtRQUNUO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERvbWFpbkxvY2FsZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9jb25maWctc2hhcmVkJ1xuXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0RG9tYWluTG9jYWxlKFxuICBkb21haW5JdGVtcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdLFxuICBob3N0bmFtZT86IHN0cmluZyxcbiAgZGV0ZWN0ZWRMb2NhbGU/OiBzdHJpbmdcbikge1xuICBpZiAoIWRvbWFpbkl0ZW1zKSByZXR1cm5cblxuICBpZiAoZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICBkZXRlY3RlZExvY2FsZSA9IGRldGVjdGVkTG9jYWxlLnRvTG93ZXJDYXNlKClcbiAgfVxuXG4gIGZvciAoY29uc3QgaXRlbSBvZiBkb21haW5JdGVtcykge1xuICAgIC8vIHJlbW92ZSBwb3J0IGlmIHByZXNlbnRcbiAgICBjb25zdCBkb21haW5Ib3N0bmFtZSA9IGl0ZW0uZG9tYWluPy5zcGxpdCgnOicsIDEpWzBdLnRvTG93ZXJDYXNlKClcbiAgICBpZiAoXG4gICAgICBob3N0bmFtZSA9PT0gZG9tYWluSG9zdG5hbWUgfHxcbiAgICAgIGRldGVjdGVkTG9jYWxlID09PSBpdGVtLmRlZmF1bHRMb2NhbGUudG9Mb3dlckNhc2UoKSB8fFxuICAgICAgaXRlbS5sb2NhbGVzPy5zb21lKChsb2NhbGUpID0+IGxvY2FsZS50b0xvd2VyQ2FzZSgpID09PSBkZXRlY3RlZExvY2FsZSlcbiAgICApIHtcbiAgICAgIHJldHVybiBpdGVtXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZGV0ZWN0RG9tYWluTG9jYWxlIiwiZG9tYWluSXRlbXMiLCJob3N0bmFtZSIsImRldGVjdGVkTG9jYWxlIiwidG9Mb3dlckNhc2UiLCJpdGVtIiwiZG9tYWluSG9zdG5hbWUiLCJkb21haW4iLCJzcGxpdCIsImRlZmF1bHRMb2NhbGUiLCJsb2NhbGVzIiwic29tZSIsImxvY2FsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeLocalePath\", ({\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n}));\n/**\n * A cache of lowercased locales for each list of locales. This is stored as a\n * WeakMap so if the locales are garbage collected, the cache entry will be\n * removed as well.\n */ const cache = new WeakMap();\nfunction normalizeLocalePath(pathname, locales) {\n // If locales is undefined, return the pathname as is.\n if (!locales) return {\n pathname\n };\n // Get the cached lowercased locales or create a new cache entry.\n let lowercasedLocales = cache.get(locales);\n if (!lowercasedLocales) {\n lowercasedLocales = locales.map((locale)=>locale.toLowerCase());\n cache.set(locales, lowercasedLocales);\n }\n let detectedLocale;\n // The first segment will be empty, because it has a leading `/`. If\n // there is no further segment, there is no locale (or it's the default).\n const segments = pathname.split('/', 2);\n // If there's no second segment (ie, the pathname is just `/`), there's no\n // locale.\n if (!segments[1]) return {\n pathname\n };\n // The second segment will contain the locale part if any.\n const segment = segments[1].toLowerCase();\n // See if the segment matches one of the locales. If it doesn't, there is\n // no locale (or it's the default).\n const index = lowercasedLocales.indexOf(segment);\n if (index < 0) return {\n pathname\n };\n // Return the case-sensitive locale.\n detectedLocale = locales[index];\n // Remove the `/${locale}` part of the pathname.\n pathname = pathname.slice(detectedLocale.length + 1) || '/';\n return {\n pathname,\n detectedLocale\n };\n} //# sourceMappingURL=normalize-locale-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFxQmdCQTs7O2VBQUFBOzs7QUFoQmhCOzs7O0NBSUMsR0FDRCxNQUFNQyxRQUFRLElBQUlDO0FBV1gsU0FBU0Ysb0JBQ2RHLFFBQWdCLEVBQ2hCQyxPQUEyQjtJQUUzQixzREFBc0Q7SUFDdEQsSUFBSSxDQUFDQSxTQUFTLE9BQU87UUFBRUQ7SUFBUztJQUVoQyxpRUFBaUU7SUFDakUsSUFBSUUsb0JBQW9CSixNQUFNSyxHQUFHLENBQUNGO0lBQ2xDLElBQUksQ0FBQ0MsbUJBQW1CO1FBQ3RCQSxvQkFBb0JELFFBQVFHLEdBQUcsQ0FBQyxDQUFDQyxTQUFXQSxPQUFPQyxXQUFXO1FBQzlEUixNQUFNUyxHQUFHLENBQUNOLFNBQVNDO0lBQ3JCO0lBRUEsSUFBSU07SUFFSixvRUFBb0U7SUFDcEUseUVBQXlFO0lBQ3pFLE1BQU1DLFdBQVdULFNBQVNVLEtBQUssQ0FBQyxLQUFLO0lBRXJDLDBFQUEwRTtJQUMxRSxVQUFVO0lBQ1YsSUFBSSxDQUFDRCxRQUFRLENBQUMsRUFBRSxFQUFFLE9BQU87UUFBRVQ7SUFBUztJQUVwQywwREFBMEQ7SUFDMUQsTUFBTVcsVUFBVUYsUUFBUSxDQUFDLEVBQUUsQ0FBQ0gsV0FBVztJQUV2Qyx5RUFBeUU7SUFDekUsbUNBQW1DO0lBQ25DLE1BQU1NLFFBQVFWLGtCQUFrQlcsT0FBTyxDQUFDRjtJQUN4QyxJQUFJQyxRQUFRLEdBQUcsT0FBTztRQUFFWjtJQUFTO0lBRWpDLG9DQUFvQztJQUNwQ1EsaUJBQWlCUCxPQUFPLENBQUNXLE1BQU07SUFFL0IsZ0RBQWdEO0lBQ2hEWixXQUFXQSxTQUFTYyxLQUFLLENBQUNOLGVBQWVPLE1BQU0sR0FBRyxNQUFNO0lBRXhELE9BQU87UUFBRWY7UUFBVVE7SUFBZTtBQUNwQyIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQYXRoTG9jYWxlIHtcbiAgZGV0ZWN0ZWRMb2NhbGU/OiBzdHJpbmdcbiAgcGF0aG5hbWU6IHN0cmluZ1xufVxuXG4vKipcbiAqIEEgY2FjaGUgb2YgbG93ZXJjYXNlZCBsb2NhbGVzIGZvciBlYWNoIGxpc3Qgb2YgbG9jYWxlcy4gVGhpcyBpcyBzdG9yZWQgYXMgYVxuICogV2Vha01hcCBzbyBpZiB0aGUgbG9jYWxlcyBhcmUgZ2FyYmFnZSBjb2xsZWN0ZWQsIHRoZSBjYWNoZSBlbnRyeSB3aWxsIGJlXG4gKiByZW1vdmVkIGFzIHdlbGwuXG4gKi9cbmNvbnN0IGNhY2hlID0gbmV3IFdlYWtNYXA8cmVhZG9ubHkgc3RyaW5nW10sIHJlYWRvbmx5IHN0cmluZ1tdPigpXG5cbi8qKlxuICogRm9yIGEgcGF0aG5hbWUgdGhhdCBtYXkgaW5jbHVkZSBhIGxvY2FsZSBmcm9tIGEgbGlzdCBvZiBsb2NhbGVzLCBpdFxuICogcmVtb3ZlcyB0aGUgbG9jYWxlIGZyb20gdGhlIHBhdGhuYW1lIHJldHVybmluZyBpdCBhbG9uZ3NpZGUgd2l0aCB0aGVcbiAqIGRldGVjdGVkIGxvY2FsZS5cbiAqXG4gKiBAcGFyYW0gcGF0aG5hbWUgQSBwYXRobmFtZSB0aGF0IG1heSBpbmNsdWRlIGEgbG9jYWxlLlxuICogQHBhcmFtIGxvY2FsZXMgQSBsaXN0IG9mIGxvY2FsZXMuXG4gKiBAcmV0dXJucyBUaGUgZGV0ZWN0ZWQgbG9jYWxlIGFuZCBwYXRobmFtZSB3aXRob3V0IGxvY2FsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlUGF0aChcbiAgcGF0aG5hbWU6IHN0cmluZyxcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4pOiBQYXRoTG9jYWxlIHtcbiAgLy8gSWYgbG9jYWxlcyBpcyB1bmRlZmluZWQsIHJldHVybiB0aGUgcGF0aG5hbWUgYXMgaXMuXG4gIGlmICghbG9jYWxlcykgcmV0dXJuIHsgcGF0aG5hbWUgfVxuXG4gIC8vIEdldCB0aGUgY2FjaGVkIGxvd2VyY2FzZWQgbG9jYWxlcyBvciBjcmVhdGUgYSBuZXcgY2FjaGUgZW50cnkuXG4gIGxldCBsb3dlcmNhc2VkTG9jYWxlcyA9IGNhY2hlLmdldChsb2NhbGVzKVxuICBpZiAoIWxvd2VyY2FzZWRMb2NhbGVzKSB7XG4gICAgbG93ZXJjYXNlZExvY2FsZXMgPSBsb2NhbGVzLm1hcCgobG9jYWxlKSA9PiBsb2NhbGUudG9Mb3dlckNhc2UoKSlcbiAgICBjYWNoZS5zZXQobG9jYWxlcywgbG93ZXJjYXNlZExvY2FsZXMpXG4gIH1cblxuICBsZXQgZGV0ZWN0ZWRMb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIC8vIFRoZSBmaXJzdCBzZWdtZW50IHdpbGwgYmUgZW1wdHksIGJlY2F1c2UgaXQgaGFzIGEgbGVhZGluZyBgL2AuIElmXG4gIC8vIHRoZXJlIGlzIG5vIGZ1cnRoZXIgc2VnbWVudCwgdGhlcmUgaXMgbm8gbG9jYWxlIChvciBpdCdzIHRoZSBkZWZhdWx0KS5cbiAgY29uc3Qgc2VnbWVudHMgPSBwYXRobmFtZS5zcGxpdCgnLycsIDIpXG5cbiAgLy8gSWYgdGhlcmUncyBubyBzZWNvbmQgc2VnbWVudCAoaWUsIHRoZSBwYXRobmFtZSBpcyBqdXN0IGAvYCksIHRoZXJlJ3Mgbm9cbiAgLy8gbG9jYWxlLlxuICBpZiAoIXNlZ21lbnRzWzFdKSByZXR1cm4geyBwYXRobmFtZSB9XG5cbiAgLy8gVGhlIHNlY29uZCBzZWdtZW50IHdpbGwgY29udGFpbiB0aGUgbG9jYWxlIHBhcnQgaWYgYW55LlxuICBjb25zdCBzZWdtZW50ID0gc2VnbWVudHNbMV0udG9Mb3dlckNhc2UoKVxuXG4gIC8vIFNlZSBpZiB0aGUgc2VnbWVudCBtYXRjaGVzIG9uZSBvZiB0aGUgbG9jYWxlcy4gSWYgaXQgZG9lc24ndCwgdGhlcmUgaXNcbiAgLy8gbm8gbG9jYWxlIChvciBpdCdzIHRoZSBkZWZhdWx0KS5cbiAgY29uc3QgaW5kZXggPSBsb3dlcmNhc2VkTG9jYWxlcy5pbmRleE9mKHNlZ21lbnQpXG4gIGlmIChpbmRleCA8IDApIHJldHVybiB7IHBhdGhuYW1lIH1cblxuICAvLyBSZXR1cm4gdGhlIGNhc2Utc2Vuc2l0aXZlIGxvY2FsZS5cbiAgZGV0ZWN0ZWRMb2NhbGUgPSBsb2NhbGVzW2luZGV4XVxuXG4gIC8vIFJlbW92ZSB0aGUgYC8ke2xvY2FsZX1gIHBhcnQgb2YgdGhlIHBhdGhuYW1lLlxuICBwYXRobmFtZSA9IHBhdGhuYW1lLnNsaWNlKGRldGVjdGVkTG9jYWxlLmxlbmd0aCArIDEpIHx8ICcvJ1xuXG4gIHJldHVybiB7IHBhdGhuYW1lLCBkZXRlY3RlZExvY2FsZSB9XG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplTG9jYWxlUGF0aCIsImNhY2hlIiwiV2Vha01hcCIsInBhdGhuYW1lIiwibG9jYWxlcyIsImxvd2VyY2FzZWRMb2NhbGVzIiwiZ2V0IiwibWFwIiwibG9jYWxlIiwidG9Mb3dlckNhc2UiLCJzZXQiLCJkZXRlY3RlZExvY2FsZSIsInNlZ21lbnRzIiwic3BsaXQiLCJzZWdtZW50IiwiaW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/invariant-error.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"InvariantError\", ({\n enumerable: true,\n get: function() {\n return InvariantError;\n }\n}));\nclass InvariantError extends Error {\n constructor(message, options){\n super(\"Invariant: \" + (message.endsWith('.') ? message : message + '.') + \" This is a bug in Next.js.\", options);\n this.name = 'InvariantError';\n }\n} //# sourceMappingURL=invariant-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHVCQUF1QkM7SUFDbENDLFlBQVlDLE9BQWUsRUFBRUMsT0FBc0IsQ0FBRTtRQUNuRCxLQUFLLENBQ0YsZ0JBQWFELENBQUFBLFFBQVFFLFFBQVEsQ0FBQyxPQUFPRixVQUFVQSxVQUFVLElBQUUsR0FBRSw4QkFDOURDO1FBRUYsSUFBSSxDQUFDRSxJQUFJLEdBQUc7SUFDZDtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEludmFyaWFudEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBFcnJvck9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIGBJbnZhcmlhbnQ6ICR7bWVzc2FnZS5lbmRzV2l0aCgnLicpID8gbWVzc2FnZSA6IG1lc3NhZ2UgKyAnLid9IFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcy5gLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgICB0aGlzLm5hbWUgPSAnSW52YXJpYW50RXJyb3InXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJJbnZhcmlhbnRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwib3B0aW9ucyIsImVuZHNXaXRoIiwibmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/is-plain-object.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\nfunction getObjectClassLabel(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isPlainObject(value) {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');\n} //# sourceMappingURL=is-plain-object.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFnQkEsbUJBQW1CO2VBQW5CQTs7SUFJQUMsYUFBYTtlQUFiQTs7O0FBSlQsU0FBU0Qsb0JBQW9CRSxLQUFVO0lBQzVDLE9BQU9DLE9BQU9DLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNKO0FBQ3hDO0FBRU8sU0FBU0QsY0FBY0MsS0FBVTtJQUN0QyxJQUFJRixvQkFBb0JFLFdBQVcsbUJBQW1CO1FBQ3BELE9BQU87SUFDVDtJQUVBLE1BQU1FLFlBQVlELE9BQU9JLGNBQWMsQ0FBQ0w7SUFFeEM7Ozs7Ozs7O0dBUUMsR0FDRCxPQUFPRSxjQUFjLFFBQVFBLFVBQVVJLGNBQWMsQ0FBQztBQUN4RCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSlcblxuICAvKipcbiAgICogdGhpcyB1c2VkIHRvIGJlIHByZXZpb3VzbHk6XG4gICAqXG4gICAqIGByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZWBcbiAgICpcbiAgICogYnV0IEVkZ2UgUnVudGltZSBleHBvc2UgT2JqZWN0IGZyb20gdm0sIGJlaW5nIHRoYXQga2luZCBvZiB0eXBlLWNoZWNraW5nIHdyb25nbHkgZmFpbC5cbiAgICpcbiAgICogSXQgd2FzIGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc2luY2UgaXQncyByZXNpbGllbnQgdG8gc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlLmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRPYmplY3RDbGFzc0xhYmVsIiwiaXNQbGFpbk9iamVjdCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJoYXNPd25Qcm9wZXJ0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/is-plain-object.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/is-thenable.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/shared/lib/is-thenable.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isThenable\", ({\n enumerable: true,\n get: function() {\n return isThenable;\n }\n}));\nfunction isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n} //# sourceMappingURL=is-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0M7Ozs7OENBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQ2RDLE9BQXVCO0lBRXZCLE9BQ0VBLFlBQVksUUFDWixPQUFPQSxZQUFZLFlBQ25CLFVBQVVBLFdBQ1YsT0FBT0EsUUFBUUMsSUFBSSxLQUFLO0FBRTVCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pcy10aGVuYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIHRvIHNlZSBpZiBhIHZhbHVlIGlzIFRoZW5hYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9taXNlIHRoZSBtYXliZS10aGVuYWJsZSB2YWx1ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdGhlbmFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGU8VCA9IHVua25vd24+KFxuICBwcm9taXNlOiBQcm9taXNlPFQ+IHwgVFxuKTogcHJvbWlzZSBpcyBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9taXNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHByb21pc2UgPT09ICdvYmplY3QnICYmXG4gICAgJ3RoZW4nIGluIHByb21pc2UgJiZcbiAgICB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpc1RoZW5hYmxlIiwicHJvbWlzZSIsInRoZW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/is-thenable.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/isomorphic/path.js ***!
\**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("/**\n * This module is for next.js server internal usage of path module.\n * It will use native path module for nodejs runtime.\n * It will use path-browserify polyfill for edge runtime.\n */ \nlet path;\nif (false) {} else {\n path = __webpack_require__(/*! path */ \"path\");\n}\nmodule.exports = path; //# sourceMappingURL=path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXNvbW9ycGhpYy9wYXRoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7O0NBSUM7QUFDRCxJQUFJQTtBQUVKLElBQUlDLEtBQW1DLEVBQUUsRUFFeEMsTUFBTTtJQUNMRCxPQUFPSSxtQkFBT0EsQ0FBQyxrQkFBTTtBQUN2QjtBQUVBQyxPQUFPQyxPQUFPLEdBQUdOIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9pc29tb3JwaGljL3BhdGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIG1vZHVsZSBpcyBmb3IgbmV4dC5qcyBzZXJ2ZXIgaW50ZXJuYWwgdXNhZ2Ugb2YgcGF0aCBtb2R1bGUuXG4gKiBJdCB3aWxsIHVzZSBuYXRpdmUgcGF0aCBtb2R1bGUgZm9yIG5vZGVqcyBydW50aW1lLlxuICogSXQgd2lsbCB1c2UgcGF0aC1icm93c2VyaWZ5IHBvbHlmaWxsIGZvciBlZGdlIHJ1bnRpbWUuXG4gKi9cbmxldCBwYXRoXG5cbmlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICBwYXRoID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtYnJvd3NlcmlmeScpXG59IGVsc2Uge1xuICBwYXRoID0gcmVxdWlyZSgncGF0aCcpXG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGF0aFxuIl0sIm5hbWVzIjpbInBhdGgiLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9SVU5USU1FIiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/isomorphic/path.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// This has to be a shared module which is shared between client component error boundary and dynamic component\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BailoutToCSRError: function() {\n return BailoutToCSRError;\n },\n isBailoutToCSRError: function() {\n return isBailoutToCSRError;\n }\n});\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING';\nclass BailoutToCSRError extends Error {\n constructor(reason){\n super(\"Bail out to client-side rendering: \" + reason), this.reason = reason, this.digest = BAILOUT_TO_CSR;\n }\n}\nfunction isBailoutToCSRError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === BAILOUT_TO_CSR;\n} //# sourceMappingURL=bailout-to-csr.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtHQUErRzs7Ozs7Ozs7Ozs7OztJQUlsR0EsaUJBQWlCO2VBQWpCQTs7SUFTR0MsbUJBQW1CO2VBQW5CQTs7O0FBWmhCLE1BQU1DLGlCQUFpQjtBQUdoQixNQUFNRiwwQkFBMEJHO0lBR3JDQyxZQUE0QkMsTUFBYyxDQUFFO1FBQzFDLEtBQUssQ0FBRSx3Q0FBcUNBLFNBQUFBLElBQUFBLENBRGxCQSxNQUFBQSxHQUFBQSxRQUFBQSxJQUFBQSxDQUZaQyxNQUFBQSxHQUFTSjtJQUl6QjtBQUNGO0FBR08sU0FBU0Qsb0JBQW9CTSxHQUFZO0lBQzlDLElBQUksT0FBT0EsUUFBUSxZQUFZQSxRQUFRLFFBQVEsQ0FBRSxhQUFZQSxHQUFBQSxDQUFFLEVBQUk7UUFDakUsT0FBTztJQUNUO0lBRUEsT0FBT0EsSUFBSUQsTUFBTSxLQUFLSjtBQUN4QiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgaGFzIHRvIGJlIGEgc2hhcmVkIG1vZHVsZSB3aGljaCBpcyBzaGFyZWQgYmV0d2VlbiBjbGllbnQgY29tcG9uZW50IGVycm9yIGJvdW5kYXJ5IGFuZCBkeW5hbWljIGNvbXBvbmVudFxuY29uc3QgQkFJTE9VVF9UT19DU1IgPSAnQkFJTE9VVF9UT19DTElFTlRfU0lERV9SRU5ERVJJTkcnXG5cbi8qKiBBbiBlcnJvciB0aGF0IHNob3VsZCBiZSB0aHJvd24gd2hlbiB3ZSB3YW50IHRvIGJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZy4gKi9cbmV4cG9ydCBjbGFzcyBCYWlsb3V0VG9DU1JFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGRpZ2VzdCA9IEJBSUxPVVRfVE9fQ1NSXG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJlYXNvbjogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZzogJHtyZWFzb259YClcbiAgfVxufVxuXG4vKiogQ2hlY2tzIGlmIGEgcGFzc2VkIGFyZ3VtZW50IGlzIGFuIGVycm9yIHRoYXQgaXMgdGhyb3duIGlmIHdlIHdhbnQgdG8gYmFpbCBvdXQgdG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyOiB1bmtub3duKTogZXJyIGlzIEJhaWxvdXRUb0NTUkVycm9yIHtcbiAgaWYgKHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8IGVyciA9PT0gbnVsbCB8fCAhKCdkaWdlc3QnIGluIGVycikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnIuZGlnZXN0ID09PSBCQUlMT1VUX1RPX0NTUlxufVxuIl0sIm5hbWVzIjpbIkJhaWxvdXRUb0NTUkVycm9yIiwiaXNCYWlsb3V0VG9DU1JFcnJvciIsIkJBSUxPVVRfVE9fQ1NSIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsInJlYXNvbiIsImRpZ2VzdCIsImVyciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/modern-browserslist-target.js ***!
\*************************************************************************/
/***/ ((module) => {
"use strict";
eval("// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS.\n// Keep file changes in sync with the corresponding `.d.ts` files.\n/**\n * These are the browser versions that support all of the following:\n * static import: https://caniuse.com/es6-module\n * dynamic import: https://caniuse.com/es6-module-dynamic-import\n * import.meta: https://caniuse.com/mdn-javascript_operators_import_meta\n */ \nconst MODERN_BROWSERSLIST_TARGET = [\n 'chrome 64',\n 'edge 79',\n 'firefox 67',\n 'opera 51',\n 'safari 12'\n];\nmodule.exports = MODERN_BROWSERSLIST_TARGET; //# sourceMappingURL=modern-browserslist-target.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiLCJtYXBwaW5ncyI6IkFBQUEsb0ZBQW9GO0FBQ3BGLGtFQUFrRTtBQUNsRTs7Ozs7Q0FLQztBQUNELE1BQU1BLDZCQUE2QjtJQUNqQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFREMsT0FBT0MsT0FBTyxHQUFHRiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTm90ZTogVGhpcyBmaWxlIGlzIEpTIGJlY2F1c2UgaXQncyB1c2VkIGJ5IHRoZSB0YXNrZmlsZS1zd2MuanMgZmlsZSwgd2hpY2ggaXMgSlMuXG4vLyBLZWVwIGZpbGUgY2hhbmdlcyBpbiBzeW5jIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgYC5kLnRzYCBmaWxlcy5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBicm93c2VyIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBhbGwgb2YgdGhlIGZvbGxvd2luZzpcbiAqIHN0YXRpYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZVxuICogZHluYW1pYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZS1keW5hbWljLWltcG9ydFxuICogaW1wb3J0Lm1ldGE6IGh0dHBzOi8vY2FuaXVzZS5jb20vbWRuLWphdmFzY3JpcHRfb3BlcmF0b3JzX2ltcG9ydF9tZXRhXG4gKi9cbmNvbnN0IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUID0gW1xuICAnY2hyb21lIDY0JyxcbiAgJ2VkZ2UgNzknLFxuICAnZmlyZWZveCA2NycsXG4gICdvcGVyYSA1MScsXG4gICdzYWZhcmkgMTInLFxuXVxuXG5tb2R1bGUuZXhwb3J0cyA9IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUXG4iXSwibmFtZXMiOlsiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJtb2R1bGUiLCJleHBvcnRzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js":
/*!*****************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***!
\*****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction ensureLeadingSlash(path) {\n return path.startsWith('/') ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQW1CQyxJQUFZO0lBQzdDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQyxPQUFPRCxPQUFRLE1BQUdBO0FBQzNDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgbGVhZGluZyBzbGFzaC5cbiAqIElmIHRoZXJlIGlzIG5vdCBhIGxlYWRpbmcgc2xhc2gsIG9uZSBpcyBhZGRlZCwgb3RoZXJ3aXNlIGl0IGlzIG5vb3AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVMZWFkaW5nU2xhc2gocGF0aDogc3RyaW5nKSB7XG4gIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IHBhdGggOiBgLyR7cGF0aH1gXG59XG4iXSwibmFtZXMiOlsiZW5zdXJlTGVhZGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js":
/*!***************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js ***!
\***************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * For a given page path, this function ensures that there is no backslash\n * escaping slashes in the path. Example:\n * - `foo\\/bar\\/baz` -> `foo/bar/baz`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathSep\", ({\n enumerable: true,\n get: function() {\n return normalizePathSep;\n }\n}));\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n} //# sourceMappingURL=normalize-path-sep.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYXRoLXNlcC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7OztDQUlDOzs7O29EQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxpQkFBaUJDLElBQVk7SUFDM0MsT0FBT0EsS0FBS0MsT0FBTyxDQUFDLE9BQU87QUFDN0IiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGF0aC1zZXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIG5vIGJhY2tzbGFzaFxuICogZXNjYXBpbmcgc2xhc2hlcyBpbiB0aGUgcGF0aC4gRXhhbXBsZTpcbiAqICAtIGBmb29cXC9iYXJcXC9iYXpgIC0+IGBmb28vYmFyL2JhemBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGhTZXAocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplUGF0aFNlcCIsInBhdGgiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/add-locale.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction addLocale(path, locale, defaultLocale, ignorePrefix) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path;\n const lower = path.toLowerCase();\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if ((0, _pathhasprefix.pathHasPrefix)(lower, '/api')) return path;\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0, _addpathprefix.addPathPrefix)(path, \"/\" + locale);\n} //# sourceMappingURL=add-locale.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs2Q0FRZ0JBOzs7ZUFBQUE7OzsyQ0FSYzsyQ0FDQTtBQU92QixTQUFTQSxVQUNkQyxJQUFZLEVBQ1pDLE1BQXVCLEVBQ3ZCQyxhQUFzQixFQUN0QkMsWUFBc0I7SUFFdEIsNEVBQTRFO0lBQzVFLHNCQUFzQjtJQUN0QixJQUFJLENBQUNGLFVBQVVBLFdBQVdDLGVBQWUsT0FBT0Y7SUFFaEQsTUFBTUksUUFBUUosS0FBS0ssV0FBVztJQUU5QiwyRUFBMkU7SUFDM0UsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQ0YsY0FBYztRQUNqQixJQUFJRyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFhLEVBQUNGLE9BQU8sU0FBUyxPQUFPSjtRQUN6QyxJQUFJTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixPQUFRLE1BQUdILE9BQU9JLFdBQVcsS0FBTyxPQUFPTDtJQUMvRDtJQUVBLHFDQUFxQztJQUNyQyxPQUFPTyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjUCxNQUFPLE1BQUdDO0FBQ2pDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkUGF0aFByZWZpeCB9IGZyb20gJy4vYWRkLXBhdGgtcHJlZml4J1xuaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gJy4vcGF0aC1oYXMtcHJlZml4J1xuXG4vKipcbiAqIEZvciBhIGdpdmVuIHBhdGggYW5kIGEgbG9jYWxlLCBpZiB0aGUgbG9jYWxlIGlzIGdpdmVuLCBpdCB3aWxsIHByZWZpeCB0aGVcbiAqIGxvY2FsZS4gVGhlIHBhdGggc2hvdWxkbid0IGJlIGFuIEFQSSBwYXRoLiBJZiBhIGRlZmF1bHQgbG9jYWxlIGlzIGdpdmVuIHRoZVxuICogcHJlZml4IHdpbGwgYmUgb21pdHRlZCBpZiB0aGUgbG9jYWxlIGlzIGFscmVhZHkgdGhlIGRlZmF1bHQgbG9jYWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTG9jYWxlKFxuICBwYXRoOiBzdHJpbmcsXG4gIGxvY2FsZT86IHN0cmluZyB8IGZhbHNlLFxuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nLFxuICBpZ25vcmVQcmVmaXg/OiBib29sZWFuXG4pIHtcbiAgLy8gSWYgbm8gbG9jYWxlIHdhcyBnaXZlbiBvciB0aGUgbG9jYWxlIGlzIHRoZSBkZWZhdWx0IGxvY2FsZSwgd2UgZG9uJ3QgbmVlZFxuICAvLyB0byBwcmVmaXggdGhlIHBhdGguXG4gIGlmICghbG9jYWxlIHx8IGxvY2FsZSA9PT0gZGVmYXVsdExvY2FsZSkgcmV0dXJuIHBhdGhcblxuICBjb25zdCBsb3dlciA9IHBhdGgudG9Mb3dlckNhc2UoKVxuXG4gIC8vIElmIHRoZSBwYXRoIGlzIGFuIEFQSSBwYXRoIG9yIHRoZSBwYXRoIGFscmVhZHkgaGFzIHRoZSBsb2NhbGUgcHJlZml4LCB3ZVxuICAvLyBkb24ndCBuZWVkIHRvIHByZWZpeCB0aGUgcGF0aC5cbiAgaWYgKCFpZ25vcmVQcmVmaXgpIHtcbiAgICBpZiAocGF0aEhhc1ByZWZpeChsb3dlciwgJy9hcGknKSkgcmV0dXJuIHBhdGhcbiAgICBpZiAocGF0aEhhc1ByZWZpeChsb3dlciwgYC8ke2xvY2FsZS50b0xvd2VyQ2FzZSgpfWApKSByZXR1cm4gcGF0aFxuICB9XG5cbiAgLy8gQWRkIHRoZSBsb2NhbGUgcHJlZml4IHRvIHRoZSBwYXRoLlxuICByZXR1cm4gYWRkUGF0aFByZWZpeChwYXRoLCBgLyR7bG9jYWxlfWApXG59XG4iXSwibmFtZXMiOlsiYWRkTG9jYWxlIiwicGF0aCIsImxvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJpZ25vcmVQcmVmaXgiLCJsb3dlciIsInRvTG93ZXJDYXNlIiwicGF0aEhhc1ByZWZpeCIsImFkZFBhdGhQcmVmaXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js":
/*!***************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js ***!
\***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathPrefix\", ({\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n} //# sourceMappingURL=add-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU1nQkE7OztlQUFBQTs7O3VDQU5VO0FBTW5CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVDLFNBQVNFLFdBQVdDLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogQWRkcyB0aGUgcHJvdmlkZWQgcHJlZml4IHRvIHRoZSBnaXZlbiBwYXRoLiBJdCBmaXJzdCBlbnN1cmVzIHRoYXQgdGhlIHBhdGhcbiAqIGlzIGluZGVlZCBzdGFydGluZyB3aXRoIGEgc2xhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQYXRoUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4Pzogc3RyaW5nKSB7XG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykgfHwgIXByZWZpeCkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBgJHtwcmVmaXh9JHtwYXRobmFtZX0ke3F1ZXJ5fSR7aGFzaH1gXG59XG4iXSwibmFtZXMiOlsiYWRkUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giLCJwYXJzZVBhdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js":
/*!***************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js ***!
\***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathSuffix\", ({\n enumerable: true,\n get: function() {\n return addPathSuffix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathSuffix(path, suffix) {\n if (!path.startsWith('/') || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + pathname + suffix + query + hash;\n} //# sourceMappingURL=add-path-suffix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXN1ZmZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU9nQkE7OztlQUFBQTs7O3VDQVBVO0FBT25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVHLFdBQVdGLFNBQVNHLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXN1ZmZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogU2ltaWxhcmx5IHRvIGBhZGRQYXRoUHJlZml4YCwgdGhpcyBmdW5jdGlvbiBhZGRzIGEgc3VmZml4IGF0IHRoZSBlbmQgb24gdGhlXG4gKiBwcm92aWRlZCBwYXRoLiBJdCBhbHNvIHdvcmtzIG9ubHkgZm9yIHBhdGhzIGVuc3VyaW5nIHRoZSBhcmd1bWVudCBzdGFydHNcbiAqIHdpdGggYSBzbGFzaC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBhdGhTdWZmaXgocGF0aDogc3RyaW5nLCBzdWZmaXg/OiBzdHJpbmcpIHtcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSB8fCAhc3VmZml4KSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUsIHF1ZXJ5LCBoYXNoIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgcmV0dXJuIGAke3BhdGhuYW1lfSR7c3VmZml4fSR7cXVlcnl9JHtoYXNofWBcbn1cbiJdLCJuYW1lcyI6WyJhZGRQYXRoU3VmZml4IiwicGF0aCIsInN1ZmZpeCIsInN0YXJ0c1dpdGgiLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInBhcnNlUGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js":
/*!*********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(rsc)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.ensureLeadingSlash)(route.split('/').reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0, _segment.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, ''));\n}\nfunction normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, '$1');\n} //# sourceMappingURL=app-paths.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFzQmdCQSxnQkFBZ0I7ZUFBaEJBOztJQW1DQUMsZUFBZTtlQUFmQTs7O2dEQXpEbUI7cUNBQ0o7QUFxQnhCLFNBQVNELGlCQUFpQkUsS0FBYTtJQUM1QyxPQUFPQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0JBQUFBLEVBQ0xELE1BQU1FLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDakQsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNaLE9BQU9EO1FBQ1Q7UUFFQSxzQkFBc0I7UUFDdEIsSUFBSUksQ0FBQUEsR0FBQUEsU0FBQUEsY0FBQUEsRUFBZUgsVUFBVTtZQUMzQixPQUFPRDtRQUNUO1FBRUEsaUNBQWlDO1FBQ2pDLElBQUlDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSztZQUN0QixPQUFPRDtRQUNUO1FBRUEsdURBQXVEO1FBQ3ZELElBQ0dDLENBQUFBLFlBQVksVUFBVUEsWUFBWSxRQUFNLElBQ3pDQyxVQUFVQyxTQUFTRSxNQUFNLEdBQUcsR0FDNUI7WUFDQSxPQUFPTDtRQUNUO1FBRUEsT0FBVUEsV0FBUyxNQUFHQztJQUN4QixHQUFHO0FBRVA7QUFNTyxTQUFTTixnQkFBZ0JXLEdBQVc7SUFDekMsT0FBT0EsSUFBSUMsT0FBTyxDQUNoQixlQUNBO0FBR0oiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZUxlYWRpbmdTbGFzaCB9IGZyb20gJy4uLy4uL3BhZ2UtcGF0aC9lbnN1cmUtbGVhZGluZy1zbGFzaCdcbmltcG9ydCB7IGlzR3JvdXBTZWdtZW50IH0gZnJvbSAnLi4vLi4vc2VnbWVudCdcblxuLyoqXG4gKiBOb3JtYWxpemVzIGFuIGFwcCByb3V0ZSBzbyBpdCByZXByZXNlbnRzIHRoZSBhY3R1YWwgcmVxdWVzdCBwYXRoLiBFc3NlbnRpYWxseVxuICogcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybWF0aW9uczpcbiAqXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9wYWdlYCB0byBgL2BcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9yb3V0ZWAgdG8gYC9gXG4gKiAtIGAvYCB0byBgL2BcbiAqXG4gKiBAcGFyYW0gcm91dGUgdGhlIGFwcCByb3V0ZSB0byBub3JtYWxpemVcbiAqIEByZXR1cm5zIHRoZSBub3JtYWxpemVkIHBhdGhuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBcHBQYXRoKHJvdXRlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGVuc3VyZUxlYWRpbmdTbGFzaChcbiAgICByb3V0ZS5zcGxpdCgnLycpLnJlZHVjZSgocGF0aG5hbWUsIHNlZ21lbnQsIGluZGV4LCBzZWdtZW50cykgPT4ge1xuICAgICAgLy8gRW1wdHkgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoIXNlZ21lbnQpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIEdyb3VwcyBhcmUgaWdub3JlZC5cbiAgICAgIGlmIChpc0dyb3VwU2VnbWVudChzZWdtZW50KSkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gUGFyYWxsZWwgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoc2VnbWVudFswXSA9PT0gJ0AnKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBzZWdtZW50IChpZiBpdCdzIGEgbGVhZikgc2hvdWxkIGJlIGlnbm9yZWQuXG4gICAgICBpZiAoXG4gICAgICAgIChzZWdtZW50ID09PSAncGFnZScgfHwgc2VnbWVudCA9PT0gJ3JvdXRlJykgJiZcbiAgICAgICAgaW5kZXggPT09IHNlZ21lbnRzLmxlbmd0aCAtIDFcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGAke3BhdGhuYW1lfS8ke3NlZ21lbnR9YFxuICAgIH0sICcnKVxuICApXG59XG5cbi8qKlxuICogU3RyaXBzIHRoZSBgLnJzY2AgZXh0ZW5zaW9uIGlmIGl0J3MgaW4gdGhlIHBhdGhuYW1lLlxuICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIG9uIGZ1bGwgdXJscyBpdCBjaGVja3MgYD9gIGZvciBzZWFyY2hQYXJhbXMgaGFuZGxpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSc2NVUkwodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHVybC5yZXBsYWNlKFxuICAgIC9cXC5yc2MoJHxcXD8pLyxcbiAgICAvLyAkMSBlbnN1cmVzIGA/YCBpcyBwcmVzZXJ2ZWRcbiAgICAnJDEnXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVBcHBQYXRoIiwibm9ybWFsaXplUnNjVVJMIiwicm91dGUiLCJlbnN1cmVMZWFkaW5nU2xhc2giLCJzcGxpdCIsInJlZHVjZSIsInBhdGhuYW1lIiwic2VnbWVudCIsImluZGV4Iiwic2VnbWVudHMiLCJpc0dyb3VwU2VnbWVudCIsImxlbmd0aCIsInVybCIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js":
/*!*************************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js ***!
\*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"formatNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _addpathsuffix = __webpack_require__(/*! ./add-path-suffix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/add-locale.js\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === '/' ? 'index.json' : '.json');\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, _addpathsuffix.addPathSuffix)(pathname, '/') : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n} //# sourceMappingURL=format-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7OzswREFXZ0JBOzs7ZUFBQUE7OztpREFWb0I7MkNBQ047MkNBQ0E7dUNBQ0o7QUFPbkIsU0FBU0EsdUJBQXVCQyxJQUFrQjtJQUN2RCxJQUFJQyxXQUFXQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUNiRixLQUFLQyxRQUFRLEVBQ2JELEtBQUtHLE1BQU0sRUFDWEgsS0FBS0ksT0FBTyxHQUFHQyxZQUFZTCxLQUFLTSxhQUFhLEVBQzdDTixLQUFLTyxZQUFZO0lBR25CLElBQUlQLEtBQUtJLE9BQU8sSUFBSSxDQUFDSixLQUFLUSxhQUFhLEVBQUU7UUFDdkNQLFdBQVdRLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JSO0lBQ2pDO0lBRUEsSUFBSUQsS0FBS0ksT0FBTyxFQUFFO1FBQ2hCSCxXQUFXUyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUNUQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVixVQUFXLGlCQUFjRCxLQUFLSSxPQUFPLEdBQ25ESixLQUFLQyxRQUFRLEtBQUssTUFBTSxlQUFlO0lBRTNDO0lBRUFBLFdBQVdVLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNWLFVBQVVELEtBQUtZLFFBQVE7SUFDaEQsT0FBTyxDQUFDWixLQUFLSSxPQUFPLElBQUlKLEtBQUtRLGFBQWEsR0FDdEMsQ0FBQ1AsU0FBU1ksUUFBUSxDQUFDLE9BQ2pCSCxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVCxVQUFVLE9BQ3hCQSxXQUNGUSxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CUjtBQUMxQiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtbmV4dC1wYXRobmFtZS1pbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTmV4dFBhdGhuYW1lSW5mbyB9IGZyb20gJy4vZ2V0LW5leHQtcGF0aG5hbWUtaW5mbydcbmltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tICcuL3JlbW92ZS10cmFpbGluZy1zbGFzaCdcbmltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tICcuL2FkZC1wYXRoLXByZWZpeCdcbmltcG9ydCB7IGFkZFBhdGhTdWZmaXggfSBmcm9tICcuL2FkZC1wYXRoLXN1ZmZpeCdcbmltcG9ydCB7IGFkZExvY2FsZSB9IGZyb20gJy4vYWRkLWxvY2FsZSdcblxuaW50ZXJmYWNlIEV4dGVuZGVkSW5mbyBleHRlbmRzIE5leHRQYXRobmFtZUluZm8ge1xuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nXG4gIGlnbm9yZVByZWZpeD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE5leHRQYXRobmFtZUluZm8oaW5mbzogRXh0ZW5kZWRJbmZvKSB7XG4gIGxldCBwYXRobmFtZSA9IGFkZExvY2FsZShcbiAgICBpbmZvLnBhdGhuYW1lLFxuICAgIGluZm8ubG9jYWxlLFxuICAgIGluZm8uYnVpbGRJZCA/IHVuZGVmaW5lZCA6IGluZm8uZGVmYXVsdExvY2FsZSxcbiAgICBpbmZvLmlnbm9yZVByZWZpeFxuICApXG5cbiAgaWYgKGluZm8uYnVpbGRJZCB8fCAhaW5mby50cmFpbGluZ1NsYXNoKSB7XG4gICAgcGF0aG5hbWUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxuICB9XG5cbiAgaWYgKGluZm8uYnVpbGRJZCkge1xuICAgIHBhdGhuYW1lID0gYWRkUGF0aFN1ZmZpeChcbiAgICAgIGFkZFBhdGhQcmVmaXgocGF0aG5hbWUsIGAvX25leHQvZGF0YS8ke2luZm8uYnVpbGRJZH1gKSxcbiAgICAgIGluZm8ucGF0aG5hbWUgPT09ICcvJyA/ICdpbmRleC5qc29uJyA6ICcuanNvbidcbiAgICApXG4gIH1cblxuICBwYXRobmFtZSA9IGFkZFBhdGhQcmVmaXgocGF0aG5hbWUsIGluZm8uYmFzZVBhdGgpXG4gIHJldHVybiAhaW5mby5idWlsZElkICYmIGluZm8udHJhaWxpbmdTbGFzaFxuICAgID8gIXBhdGhuYW1lLmVuZHNXaXRoKCcvJylcbiAgICAgID8gYWRkUGF0aFN1ZmZpeChwYXRobmFtZSwgJy8nKVxuICAgICAgOiBwYXRobmFtZVxuICAgIDogcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXROZXh0UGF0aG5hbWVJbmZvIiwiaW5mbyIsInBhdGhuYW1lIiwiYWRkTG9jYWxlIiwibG9jYWxlIiwiYnVpbGRJZCIsInVuZGVmaW5lZCIsImRlZmF1bHRMb2NhbGUiLCJpZ25vcmVQcmVmaXgiLCJ0cmFpbGluZ1NsYXNoIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImFkZFBhdGhTdWZmaXgiLCJhZGRQYXRoUHJlZml4IiwiYmFzZVBhdGgiLCJlbmRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-url.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(rsc)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || '';\n let pathname = urlObj.pathname || '';\n let hash = urlObj.hash || '';\n let query = urlObj.query || '';\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n if (query && typeof query === 'object') {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || '';\n if (protocol && !protocol.endsWith(':')) protocol += ':';\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes'\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBQ3ZDLHNEQUFzRDtBQUN0RCxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLGdFQUFnRTtBQUNoRSxzRUFBc0U7QUFDdEUsc0VBQXNFO0FBQ3RFLDRFQUE0RTtBQUM1RSxxRUFBcUU7QUFDckUsd0JBQXdCO0FBQ3hCLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsNkRBQTZEO0FBQzdELDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUM1RSx5Q0FBeUM7Ozs7Ozs7Ozs7Ozs7SUFRekJBLFNBQVM7ZUFBVEE7O0lBNkRBQyxvQkFBb0I7ZUFBcEJBOztJQWZIQyxhQUFhO2VBQWJBOzs7O21GQWxEZ0I7QUFFN0IsTUFBTUMsbUJBQW1CO0FBRWxCLFNBQVNILFVBQVVJLE1BQWlCO0lBQ3pDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUUsR0FBR0Y7SUFDekIsSUFBSUcsV0FBV0gsT0FBT0csUUFBUSxJQUFJO0lBQ2xDLElBQUlDLFdBQVdKLE9BQU9JLFFBQVEsSUFBSTtJQUNsQyxJQUFJQyxPQUFPTCxPQUFPSyxJQUFJLElBQUk7SUFDMUIsSUFBSUMsUUFBUU4sT0FBT00sS0FBSyxJQUFJO0lBQzVCLElBQUlDLE9BQXVCO0lBRTNCTixPQUFPQSxPQUFPTyxtQkFBbUJQLE1BQU1RLE9BQU8sQ0FBQyxRQUFRLE9BQU8sTUFBTTtJQUVwRSxJQUFJVCxPQUFPTyxJQUFJLEVBQUU7UUFDZkEsT0FBT04sT0FBT0QsT0FBT08sSUFBSTtJQUMzQixPQUFPLElBQUlMLFVBQVU7UUFDbkJLLE9BQU9OLE9BQVEsRUFBQ0MsU0FBU1EsT0FBTyxDQUFDLE9BQVEsTUFBR1IsV0FBUyxNQUFLQSxRQUFBQSxDQUFPO1FBQ2pFLElBQUlGLE9BQU9XLElBQUksRUFBRTtZQUNmSixRQUFRLE1BQU1QLE9BQU9XLElBQUk7UUFDM0I7SUFDRjtJQUVBLElBQUlMLFNBQVMsT0FBT0EsVUFBVSxVQUFVO1FBQ3RDQSxRQUFRTSxPQUFPQyxhQUFZQyxzQkFBc0IsQ0FBQ1I7SUFDcEQ7SUFFQSxJQUFJUyxTQUFTZixPQUFPZSxNQUFNLElBQUtULFNBQVUsTUFBR0EsU0FBWTtJQUV4RCxJQUFJSCxZQUFZLENBQUNBLFNBQVNhLFFBQVEsQ0FBQyxNQUFNYixZQUFZO0lBRXJELElBQ0VILE9BQU9pQixPQUFPLElBQ1osRUFBQ2QsWUFBWUosaUJBQWlCbUIsSUFBSSxDQUFDZixTQUFBQSxDQUFRLElBQU1JLFNBQVMsT0FDNUQ7UUFDQUEsT0FBTyxPQUFRQSxDQUFBQSxRQUFRLEdBQUM7UUFDeEIsSUFBSUgsWUFBWUEsUUFBUSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxXQUFXLE1BQU1BO0lBQ3hELE9BQU8sSUFBSSxDQUFDRyxNQUFNO1FBQ2hCQSxPQUFPO0lBQ1Q7SUFFQSxJQUFJRixRQUFRQSxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUtBLE9BQU8sTUFBTUE7SUFDMUMsSUFBSVUsVUFBVUEsTUFBTSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxTQUFTLE1BQU1BO0lBRWhEWCxXQUFXQSxTQUFTSyxPQUFPLENBQUMsU0FBU0Q7SUFDckNPLFNBQVNBLE9BQU9OLE9BQU8sQ0FBQyxLQUFLO0lBRTdCLE9BQVEsS0FBRU4sV0FBV0ksT0FBT0gsV0FBV1csU0FBU1Y7QUFDbEQ7QUFFTyxNQUFNUCxnQkFBZ0I7SUFDM0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRCxxQkFBcUJzQixHQUFjO0lBQ2pELElBQUlDLElBQW9CLEVBQW9CO1FBQzFDLElBQUlELFFBQVEsUUFBUSxPQUFPQSxRQUFRLFVBQVU7WUFDM0NJLE9BQU9DLElBQUksQ0FBQ0wsS0FBS00sT0FBTyxDQUFDLENBQUNDO2dCQUN4QixJQUFJLENBQUM1QixjQUFjNkIsUUFBUSxDQUFDRCxNQUFNO29CQUNoQ0UsUUFBUUMsSUFBSSxDQUNULHVEQUFvREg7Z0JBRXpEO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBTzlCLFVBQVV1QjtBQUNuQiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEZvcm1hdCBmdW5jdGlvbiBtb2RpZmllZCBmcm9tIG5vZGVqc1xuLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB0eXBlIHsgVXJsT2JqZWN0IH0gZnJvbSAndXJsJ1xuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAnLi9xdWVyeXN0cmluZydcblxuY29uc3Qgc2xhc2hlZFByb3RvY29scyA9IC9odHRwcz98ZnRwfGdvcGhlcnxmaWxlL1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VXJsKHVybE9iajogVXJsT2JqZWN0KSB7XG4gIGxldCB7IGF1dGgsIGhvc3RuYW1lIH0gPSB1cmxPYmpcbiAgbGV0IHByb3RvY29sID0gdXJsT2JqLnByb3RvY29sIHx8ICcnXG4gIGxldCBwYXRobmFtZSA9IHVybE9iai5wYXRobmFtZSB8fCAnJ1xuICBsZXQgaGFzaCA9IHVybE9iai5oYXNoIHx8ICcnXG4gIGxldCBxdWVyeSA9IHVybE9iai5xdWVyeSB8fCAnJ1xuICBsZXQgaG9zdDogc3RyaW5nIHwgZmFsc2UgPSBmYWxzZVxuXG4gIGF1dGggPSBhdXRoID8gZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgpLnJlcGxhY2UoLyUzQS9pLCAnOicpICsgJ0AnIDogJydcblxuICBpZiAodXJsT2JqLmhvc3QpIHtcbiAgICBob3N0ID0gYXV0aCArIHVybE9iai5ob3N0XG4gIH0gZWxzZSBpZiAoaG9zdG5hbWUpIHtcbiAgICBob3N0ID0gYXV0aCArICh+aG9zdG5hbWUuaW5kZXhPZignOicpID8gYFske2hvc3RuYW1lfV1gIDogaG9zdG5hbWUpXG4gICAgaWYgKHVybE9iai5wb3J0KSB7XG4gICAgICBob3N0ICs9ICc6JyArIHVybE9iai5wb3J0XG4gICAgfVxuICB9XG5cbiAgaWYgKHF1ZXJ5ICYmIHR5cGVvZiBxdWVyeSA9PT0gJ29iamVjdCcpIHtcbiAgICBxdWVyeSA9IFN0cmluZyhxdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5IGFzIFBhcnNlZFVybFF1ZXJ5KSlcbiAgfVxuXG4gIGxldCBzZWFyY2ggPSB1cmxPYmouc2VhcmNoIHx8IChxdWVyeSAmJiBgPyR7cXVlcnl9YCkgfHwgJydcblxuICBpZiAocHJvdG9jb2wgJiYgIXByb3RvY29sLmVuZHNXaXRoKCc6JykpIHByb3RvY29sICs9ICc6J1xuXG4gIGlmIChcbiAgICB1cmxPYmouc2xhc2hlcyB8fFxuICAgICgoIXByb3RvY29sIHx8IHNsYXNoZWRQcm90b2NvbHMudGVzdChwcm90b2NvbCkpICYmIGhvc3QgIT09IGZhbHNlKVxuICApIHtcbiAgICBob3N0ID0gJy8vJyArIChob3N0IHx8ICcnKVxuICAgIGlmIChwYXRobmFtZSAmJiBwYXRobmFtZVswXSAhPT0gJy8nKSBwYXRobmFtZSA9ICcvJyArIHBhdGhuYW1lXG4gIH0gZWxzZSBpZiAoIWhvc3QpIHtcbiAgICBob3N0ID0gJydcbiAgfVxuXG4gIGlmIChoYXNoICYmIGhhc2hbMF0gIT09ICcjJykgaGFzaCA9ICcjJyArIGhhc2hcbiAgaWYgKHNlYXJjaCAmJiBzZWFyY2hbMF0gIT09ICc/Jykgc2VhcmNoID0gJz8nICsgc2VhcmNoXG5cbiAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9bPyNdL2csIGVuY29kZVVSSUNvbXBvbmVudClcbiAgc2VhcmNoID0gc2VhcmNoLnJlcGxhY2UoJyMnLCAnJTIzJylcblxuICByZXR1cm4gYCR7cHJvdG9jb2x9JHtob3N0fSR7cGF0aG5hbWV9JHtzZWFyY2h9JHtoYXNofWBcbn1cblxuZXhwb3J0IGNvbnN0IHVybE9iamVjdEtleXMgPSBbXG4gICdhdXRoJyxcbiAgJ2hhc2gnLFxuICAnaG9zdCcsXG4gICdob3N0bmFtZScsXG4gICdocmVmJyxcbiAgJ3BhdGgnLFxuICAncGF0aG5hbWUnLFxuICAncG9ydCcsXG4gICdwcm90b2NvbCcsXG4gICdxdWVyeScsXG4gICdzZWFyY2gnLFxuICAnc2xhc2hlcycsXG5dXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRXaXRoVmFsaWRhdGlvbih1cmw6IFVybE9iamVjdCk6IHN0cmluZyB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGlmICh1cmwgIT09IG51bGwgJiYgdHlwZW9mIHVybCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIE9iamVjdC5rZXlzKHVybCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmICghdXJsT2JqZWN0S2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFVua25vd24ga2V5IHBhc3NlZCB2aWEgdXJsT2JqZWN0IGludG8gdXJsLmZvcm1hdDogJHtrZXl9YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZm9ybWF0VXJsKHVybClcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXRVcmwiLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybE9iamVjdEtleXMiLCJzbGFzaGVkUHJvdG9jb2xzIiwidXJsT2JqIiwiYXV0aCIsImhvc3RuYW1lIiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImhhc2giLCJxdWVyeSIsImhvc3QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiaW5kZXhPZiIsInBvcnQiLCJTdHJpbmciLCJxdWVyeXN0cmluZyIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJlbmRzV2l0aCIsInNsYXNoZXMiLCJ0ZXN0IiwidXJsIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJpbmNsdWRlcyIsImNvbnNvbGUiLCJ3YXJuIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js":
/*!**********************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js ***!
\**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n}));\nconst _normalizelocalepath = __webpack_require__(/*! ../../i18n/normalize-locale-path */ \"(rsc)/./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _removepathprefix = __webpack_require__(/*! ./remove-path-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash\n };\n if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith('/_next/data/') && info.pathname.endsWith('.json')) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, '').replace(/\\.json$/, '').split('/');\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== 'index' ? \"/\" + paths.slice(1).join('/') : '/';\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n} //# sourceMappingURL=get-next-pathname-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFvRGdCQTs7O2VBQUFBOzs7aURBcERvQjs4Q0FDSDsyQ0FDSDtBQWtEdkIsU0FBU0Esb0JBQ2RDLFFBQWdCLEVBQ2hCQyxPQUFnQjtRQUUwQkE7SUFBMUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsYUFBYSxFQUFFLEdBQUdILENBQUFBLHNCQUFBQSxRQUFRSSxVQUFBQSxLQUFVLE9BQWxCSixzQkFBc0IsQ0FBQztJQUNqRSxNQUFNSyxPQUF5QjtRQUM3Qk47UUFDQUksZUFBZUosYUFBYSxNQUFNQSxTQUFTTyxRQUFRLENBQUMsT0FBT0g7SUFDN0Q7SUFFQSxJQUFJRixZQUFZTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixLQUFLTixRQUFRLEVBQUVFLFdBQVc7UUFDdERJLEtBQUtOLFFBQVEsR0FBR1MsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQkgsS0FBS04sUUFBUSxFQUFFRTtRQUNoREksS0FBS0osUUFBUSxHQUFHQTtJQUNsQjtJQUNBLElBQUlRLHVCQUF1QkosS0FBS04sUUFBUTtJQUV4QyxJQUNFTSxLQUFLTixRQUFRLENBQUNXLFVBQVUsQ0FBQyxtQkFDekJMLEtBQUtOLFFBQVEsQ0FBQ08sUUFBUSxDQUFDLFVBQ3ZCO1FBQ0EsTUFBTUssUUFBUU4sS0FBS04sUUFBUSxDQUN4QmEsT0FBTyxDQUFDLG9CQUFvQixJQUM1QkEsT0FBTyxDQUFDLFdBQVcsSUFDbkJDLEtBQUssQ0FBQztRQUVULE1BQU1DLFVBQVVILEtBQUssQ0FBQyxFQUFFO1FBQ3hCTixLQUFLUyxPQUFPLEdBQUdBO1FBQ2ZMLHVCQUNFRSxLQUFLLENBQUMsRUFBRSxLQUFLLFVBQVcsTUFBR0EsTUFBTUksS0FBSyxDQUFDLEdBQUdDLElBQUksQ0FBQyxPQUFTO1FBRTFELHNEQUFzRDtRQUN0RCxrREFBa0Q7UUFDbEQsSUFBSWhCLFFBQVFpQixTQUFTLEtBQUssTUFBTTtZQUM5QlosS0FBS04sUUFBUSxHQUFHVTtRQUNsQjtJQUNGO0lBRUEsNEVBQTRFO0lBQzVFLHlCQUF5QjtJQUN6QixJQUFJUCxNQUFNO1FBQ1IsSUFBSWdCLFNBQVNsQixRQUFRbUIsWUFBWSxHQUM3Qm5CLFFBQVFtQixZQUFZLENBQUNDLE9BQU8sQ0FBQ2YsS0FBS04sUUFBUSxJQUMxQ3NCLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JoQixLQUFLTixRQUFRLEVBQUVHLEtBQUtvQixPQUFPO1FBRW5EakIsS0FBS2tCLE1BQU0sR0FBR0wsT0FBT00sY0FBYztZQUNuQk47UUFBaEJiLEtBQUtOLFFBQVEsR0FBR21CLENBQUFBLG1CQUFBQSxPQUFPbkIsUUFBQUEsS0FBUSxPQUFmbUIsbUJBQW1CYixLQUFLTixRQUFRO1FBRWhELElBQUksQ0FBQ21CLE9BQU9NLGNBQWMsSUFBSW5CLEtBQUtTLE9BQU8sRUFBRTtZQUMxQ0ksU0FBU2xCLFFBQVFtQixZQUFZLEdBQ3pCbkIsUUFBUW1CLFlBQVksQ0FBQ0MsT0FBTyxDQUFDWCx3QkFDN0JZLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JaLHNCQUFzQlAsS0FBS29CLE9BQU87WUFFMUQsSUFBSUosT0FBT00sY0FBYyxFQUFFO2dCQUN6Qm5CLEtBQUtrQixNQUFNLEdBQUdMLE9BQU9NLGNBQWM7WUFDckM7UUFDRjtJQUNGO0lBQ0EsT0FBT25CO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVMb2NhbGVQYXRoIH0gZnJvbSAnLi4vLi4vaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnXG5pbXBvcnQgeyByZW1vdmVQYXRoUHJlZml4IH0gZnJvbSAnLi9yZW1vdmUtcGF0aC1wcmVmaXgnXG5pbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi9wYXRoLWhhcy1wcmVmaXgnXG5pbXBvcnQgdHlwZSB7IEkxOE5Qcm92aWRlciB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9saWIvaTE4bi1wcm92aWRlcidcblxuZXhwb3J0IGludGVyZmFjZSBOZXh0UGF0aG5hbWVJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIHBhdGggaW4gY2FzZSB0aGUgcGF0aG5hbWUgaW5jbHVkZWQgaXQuXG4gICAqL1xuICBiYXNlUGF0aD86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIGJ1aWxkSWQgZm9yIHdoZW4gdGhlIHBhcnNlZCBVUkwgaXMgYSBkYXRhIFVSTC4gUGFyc2luZyBpdCBjYW4gYmVcbiAgICogZGlzYWJsZWQgd2l0aCB0aGUgYHBhcnNlRGF0YWAgb3B0aW9uLlxuICAgKi9cbiAgYnVpbGRJZD86IHN0cmluZ1xuICAvKipcbiAgICogSWYgdGhlcmUgd2FzIGEgbG9jYWxlIGluIHRoZSBwYXRobmFtZSwgdGhpcyB3aWxsIGhvbGQgaXRzIHZhbHVlLlxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgcHJvY2Vzc2VkIHBhdGhuYW1lIHdpdGhvdXQgYSBiYXNlIHBhdGgsIGxvY2FsZSwgb3IgZGF0YSBVUkwgZWxlbWVudHNcbiAgICogd2hlbiBwYXJzaW5nIGl0IGlzIGVuYWJsZWQuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBBIGJvb2xlYW4gdGVsbGluZyBpZiB0aGUgcGF0aG5hbWUgaGFkIGEgdHJhaWxpbmdTbGFzaC4gVGhpcyBjYW4gYmUgb25seVxuICAgKiB0cnVlIGlmIHRyYWlsaW5nU2xhc2ggaXMgZW5hYmxlZC5cbiAgICovXG4gIHRyYWlsaW5nU2xhc2g/OiBib29sZWFuXG59XG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZW4gcGFzc2VkIHRvIHRydWUsIHRoaXMgZnVuY3Rpb24gd2lsbCBhbHNvIHBhcnNlIE5leHRqcyBkYXRhIFVSTHMuXG4gICAqL1xuICBwYXJzZURhdGE/OiBib29sZWFuXG4gIC8qKlxuICAgKiBBIHBhcnRpYWwgb2YgdGhlIE5leHQuanMgY29uZmlndXJhdGlvbiB0byBwYXJzZSB0aGUgVVJMLlxuICAgKi9cbiAgbmV4dENvbmZpZz86IHtcbiAgICBiYXNlUGF0aD86IHN0cmluZ1xuICAgIGkxOG4/OiB7IGxvY2FsZXM/OiByZWFkb25seSBzdHJpbmdbXSB9IHwgbnVsbFxuICAgIHRyYWlsaW5nU2xhc2g/OiBib29sZWFuXG4gIH1cblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHRoaXMgbm9ybWFsaXplciB3aWxsIGJlIHVzZWQgdG8gZGV0ZWN0IHRoZSBsb2NhbGUgaW5zdGVhZCBvZlxuICAgKiB0aGUgZGVmYXVsdCBsb2NhbGUgZGV0ZWN0aW9uLlxuICAgKi9cbiAgaTE4blByb3ZpZGVyPzogSTE4TlByb3ZpZGVyXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXh0UGF0aG5hbWVJbmZvKFxuICBwYXRobmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBPcHRpb25zXG4pOiBOZXh0UGF0aG5hbWVJbmZvIHtcbiAgY29uc3QgeyBiYXNlUGF0aCwgaTE4biwgdHJhaWxpbmdTbGFzaCB9ID0gb3B0aW9ucy5uZXh0Q29uZmlnID8/IHt9XG4gIGNvbnN0IGluZm86IE5leHRQYXRobmFtZUluZm8gPSB7XG4gICAgcGF0aG5hbWUsXG4gICAgdHJhaWxpbmdTbGFzaDogcGF0aG5hbWUgIT09ICcvJyA/IHBhdGhuYW1lLmVuZHNXaXRoKCcvJykgOiB0cmFpbGluZ1NsYXNoLFxuICB9XG5cbiAgaWYgKGJhc2VQYXRoICYmIHBhdGhIYXNQcmVmaXgoaW5mby5wYXRobmFtZSwgYmFzZVBhdGgpKSB7XG4gICAgaW5mby5wYXRobmFtZSA9IHJlbW92ZVBhdGhQcmVmaXgoaW5mby5wYXRobmFtZSwgYmFzZVBhdGgpXG4gICAgaW5mby5iYXNlUGF0aCA9IGJhc2VQYXRoXG4gIH1cbiAgbGV0IHBhdGhuYW1lTm9EYXRhUHJlZml4ID0gaW5mby5wYXRobmFtZVxuXG4gIGlmIChcbiAgICBpbmZvLnBhdGhuYW1lLnN0YXJ0c1dpdGgoJy9fbmV4dC9kYXRhLycpICYmXG4gICAgaW5mby5wYXRobmFtZS5lbmRzV2l0aCgnLmpzb24nKVxuICApIHtcbiAgICBjb25zdCBwYXRocyA9IGluZm8ucGF0aG5hbWVcbiAgICAgIC5yZXBsYWNlKC9eXFwvX25leHRcXC9kYXRhXFwvLywgJycpXG4gICAgICAucmVwbGFjZSgvXFwuanNvbiQvLCAnJylcbiAgICAgIC5zcGxpdCgnLycpXG5cbiAgICBjb25zdCBidWlsZElkID0gcGF0aHNbMF1cbiAgICBpbmZvLmJ1aWxkSWQgPSBidWlsZElkXG4gICAgcGF0aG5hbWVOb0RhdGFQcmVmaXggPVxuICAgICAgcGF0aHNbMV0gIT09ICdpbmRleCcgPyBgLyR7cGF0aHMuc2xpY2UoMSkuam9pbignLycpfWAgOiAnLydcblxuICAgIC8vIHVwZGF0ZSBwYXRobmFtZSB3aXRoIG5vcm1hbGl6ZWQgaWYgZW5hYmxlZCBhbHRob3VnaFxuICAgIC8vIHdlIHVzZSBub3JtYWxpemVkIHRvIHBvcHVsYXRlIGxvY2FsZSBpbmZvIHN0aWxsXG4gICAgaWYgKG9wdGlvbnMucGFyc2VEYXRhID09PSB0cnVlKSB7XG4gICAgICBpbmZvLnBhdGhuYW1lID0gcGF0aG5hbWVOb0RhdGFQcmVmaXhcbiAgICB9XG4gIH1cblxuICAvLyBJZiBwcm92aWRlZCwgdXNlIHRoZSBsb2NhbGUgcm91dGUgbm9ybWFsaXplciB0byBkZXRlY3QgdGhlIGxvY2FsZSBpbnN0ZWFkXG4gIC8vIG9mIHRoZSBmdW5jdGlvbiBiZWxvdy5cbiAgaWYgKGkxOG4pIHtcbiAgICBsZXQgcmVzdWx0ID0gb3B0aW9ucy5pMThuUHJvdmlkZXJcbiAgICAgID8gb3B0aW9ucy5pMThuUHJvdmlkZXIuYW5hbHl6ZShpbmZvLnBhdGhuYW1lKVxuICAgICAgOiBub3JtYWxpemVMb2NhbGVQYXRoKGluZm8ucGF0aG5hbWUsIGkxOG4ubG9jYWxlcylcblxuICAgIGluZm8ubG9jYWxlID0gcmVzdWx0LmRldGVjdGVkTG9jYWxlXG4gICAgaW5mby5wYXRobmFtZSA9IHJlc3VsdC5wYXRobmFtZSA/PyBpbmZvLnBhdGhuYW1lXG5cbiAgICBpZiAoIXJlc3VsdC5kZXRlY3RlZExvY2FsZSAmJiBpbmZvLmJ1aWxkSWQpIHtcbiAgICAgIHJlc3VsdCA9IG9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICAgID8gb3B0aW9ucy5pMThuUHJvdmlkZXIuYW5hbHl6ZShwYXRobmFtZU5vRGF0YVByZWZpeClcbiAgICAgICAgOiBub3JtYWxpemVMb2NhbGVQYXRoKHBhdGhuYW1lTm9EYXRhUHJlZml4LCBpMThuLmxvY2FsZXMpXG5cbiAgICAgIGlmIChyZXN1bHQuZGV0ZWN0ZWRMb2NhbGUpIHtcbiAgICAgICAgaW5mby5sb2NhbGUgPSByZXN1bHQuZGV0ZWN0ZWRMb2NhbGVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluZm9cbn1cbiJdLCJuYW1lcyI6WyJnZXROZXh0UGF0aG5hbWVJbmZvIiwicGF0aG5hbWUiLCJvcHRpb25zIiwiYmFzZVBhdGgiLCJpMThuIiwidHJhaWxpbmdTbGFzaCIsIm5leHRDb25maWciLCJpbmZvIiwiZW5kc1dpdGgiLCJwYXRoSGFzUHJlZml4IiwicmVtb3ZlUGF0aFByZWZpeCIsInBhdGhuYW1lTm9EYXRhUHJlZml4Iiwic3RhcnRzV2l0aCIsInBhdGhzIiwicmVwbGFjZSIsInNwbGl0IiwiYnVpbGRJZCIsInNsaWNlIiwiam9pbiIsInBhcnNlRGF0YSIsInJlc3VsdCIsImkxOG5Qcm92aWRlciIsImFuYWx5emUiLCJub3JtYWxpemVMb2NhbGVQYXRoIiwibG9jYWxlcyIsImxvY2FsZSIsImRldGVjdGVkTG9jYWxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js":
/*!*********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/html-bots.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTML_LIMITED_BOT_UA_RE\", ({\n enumerable: true,\n get: function() {\n return HTML_LIMITED_BOT_UA_RE;\n }\n}));\nconst HTML_LIMITED_BOT_UA_RE = /Mediapartners-Google|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti/i; //# sourceMappingURL=html-bots.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2h0bWwtYm90cy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2R0FBNkc7QUFDN0csc0tBQXNLOzs7OzswREFDekpBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHlCQUNYIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2h0bWwtYm90cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIHJlZ2V4IGNvbnRhaW5zIHRoZSBib3RzIHRoYXQgd2UgbmVlZCB0byBkbyBhIGJsb2NraW5nIHJlbmRlciBmb3IgYW5kIGNhbid0IHNhZmVseSBzdHJlYW0gdGhlIHJlc3BvbnNlXG4vLyBkdWUgdG8gaG93IHRoZXkgcGFyc2UgdGhlIERPTS4gRm9yIGV4YW1wbGUsIHRoZXkgbWlnaHQgZXhwbGljaXRseSBjaGVjayBmb3IgbWV0YWRhdGEgaW4gdGhlIGBoZWFkYCB0YWcsIHNvIHdlIGNhbid0IHN0cmVhbSBtZXRhZGF0YSB0YWdzIGFmdGVyIHRoZSBgaGVhZGAgd2FzIHNlbnQuXG5leHBvcnQgY29uc3QgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSA9XG4gIC9NZWRpYXBhcnRuZXJzLUdvb2dsZXxDaHJvbWUtTGlnaHRob3VzZXxTbHVycHxEdWNrRHVja0JvdHxiYWlkdXNwaWRlcnx5YW5kZXh8c29nb3V8Yml0bHlib3R8dHVtYmxyfHZrU2hhcmV8cXVvcmEgbGluayBwcmV2aWV3fHJlZGRpdGJvdHxpYV9hcmNoaXZlcnxCaW5nYm90fEJpbmdQcmV2aWV3fGFwcGxlYm90fGZhY2Vib29rZXh0ZXJuYWxoaXR8ZmFjZWJvb2tjYXRhbG9nfFR3aXR0ZXJib3R8TGlua2VkSW5Cb3R8U2xhY2tib3R8RGlzY29yZGJvdHxXaGF0c0FwcHxTa3lwZVVyaVByZXZpZXd8WWV0aS9pXG4iXSwibmFtZXMiOlsiSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js":
/*!*******************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/interception-routes.js ***!
\*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ./app-paths */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)'\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split('/')){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>\"), \"__NEXT_ERROR_CODE\", {\n value: \"E269\",\n enumerable: false,\n configurable: true\n });\n }\n interceptingRoute = (0, _apppaths.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = \"/\" + interceptedRoute;\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute;\n }\n break;\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..) marker at the root level, use (.) instead.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E207\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..)(..) marker at the root level or one level up.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E486\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw Object.defineProperty(new Error('Invariant: unexpected marker'), \"__NEXT_ERROR_CODE\", {\n value: \"E112\",\n enumerable: false,\n configurable: true\n });\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n} //# sourceMappingURL=interception-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBR2FBLDBCQUEwQjtlQUExQkE7O0lBa0JHQyxtQ0FBbUM7ZUFBbkNBOztJQVhBQywwQkFBMEI7ZUFBMUJBOzs7c0NBVmlCO0FBRzFCLE1BQU1GLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sU0FBU0UsMkJBQTJCQyxJQUFZO0lBQ3JELHdDQUF3QztJQUN4QyxPQUNFQSxLQUNHQyxLQUFLLENBQUMsS0FDTkMsSUFBSSxDQUFDLENBQUNDLFVBQ0xOLDJCQUEyQkssSUFBSSxDQUFDLENBQUNFLElBQU1ELFFBQVFFLFVBQVUsQ0FBQ0QsU0FDdERFO0FBRVo7QUFFTyxTQUFTUixvQ0FBb0NFLElBQVk7SUFDOUQsSUFBSU8sbUJBQ0ZDLFFBQ0FDO0lBRUYsS0FBSyxNQUFNTixXQUFXSCxLQUFLQyxLQUFLLENBQUMsS0FBTTtRQUNyQ08sU0FBU1gsMkJBQTJCSyxJQUFJLENBQUMsQ0FBQ0UsSUFBTUQsUUFBUUUsVUFBVSxDQUFDRDtRQUNuRSxJQUFJSSxRQUFROztZQUNULENBQUNELG1CQUFtQkUsaUJBQWlCLEdBQUdULEtBQUtDLEtBQUssQ0FBQ08sUUFBUTtZQUM1RDtRQUNGO0lBQ0Y7SUFFQSxJQUFJLENBQUNELHFCQUFxQixDQUFDQyxVQUFVLENBQUNDLGtCQUFrQjtRQUN0RCxNQUFNLHFCQUVMLENBRkssSUFBSUMsTUFDUCxpQ0FBOEJWLE9BQUssc0ZBRGhDO21CQUFBO3dCQUFBOzBCQUFBO1FBRU47SUFDRjtJQUVBTyxvQkFBb0JJLENBQUFBLEdBQUFBLFVBQUFBLGdCQUFBQSxFQUFpQkosbUJBQW1CLGlEQUFpRDs7SUFFekcsT0FBUUM7UUFDTixLQUFLO1lBQ0gsb0lBQW9JO1lBQ3BJLElBQUlELHNCQUFzQixLQUFLO2dCQUM3QkUsbUJBQW9CLE1BQUdBO1lBQ3pCLE9BQU87Z0JBQ0xBLG1CQUFtQkYsb0JBQW9CLE1BQU1FO1lBQy9DO1lBQ0E7UUFDRixLQUFLO1lBQ0gsdUhBQXVIO1lBQ3ZILElBQUlGLHNCQUFzQixLQUFLO2dCQUM3QixNQUFNLHFCQUVMLENBRkssSUFBSUcsTUFDUCxpQ0FBOEJWLE9BQUssaUVBRGhDOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0Y7WUFDQVMsbUJBQW1CRixrQkFDaEJOLEtBQUssQ0FBQyxLQUNOVyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ1ZDLE1BQU0sQ0FBQ0osa0JBQ1BLLElBQUksQ0FBQztZQUNSO1FBQ0YsS0FBSztZQUNILGtJQUFrSTtZQUNsSUwsbUJBQW1CLE1BQU1BO1lBQ3pCO1FBQ0YsS0FBSztZQUNILGlJQUFpSTtZQUVqSSxNQUFNTSx5QkFBeUJSLGtCQUFrQk4sS0FBSyxDQUFDO1lBQ3ZELElBQUljLHVCQUF1QkMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3RDLE1BQU0scUJBRUwsQ0FGSyxJQUFJTixNQUNQLGlDQUE4QlYsT0FBSyxvRUFEaEM7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUVBUyxtQkFBbUJNLHVCQUNoQkgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUNWQyxNQUFNLENBQUNKLGtCQUNQSyxJQUFJLENBQUM7WUFDUjtRQUNGO1lBQ0UsTUFBTSxxQkFBeUMsQ0FBekMsSUFBSUosTUFBTSxpQ0FBVjt1QkFBQTs0QkFBQTs4QkFBQTtZQUF3QztJQUNsRDtJQUVBLE9BQU87UUFBRUg7UUFBbUJFO0lBQWlCO0FBQy9DIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplQXBwUGF0aCB9IGZyb20gJy4vYXBwLXBhdGhzJ1xuXG4vLyBvcmRlciBtYXR0ZXJzIGhlcmUsIHRoZSBmaXJzdCBtYXRjaCB3aWxsIGJlIHVzZWRcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyA9IFtcbiAgJyguLikoLi4pJyxcbiAgJyguKScsXG4gICcoLi4pJyxcbiAgJyguLi4pJyxcbl0gYXMgY29uc3RcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBUT0RPLUFQUDogYWRkIG1vcmUgc2VyaW91cyB2YWxpZGF0aW9uXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KCcvJylcbiAgICAgIC5maW5kKChzZWdtZW50KSA9PlxuICAgICAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PiBzZWdtZW50LnN0YXJ0c1dpdGgobSkpXG4gICAgICApICE9PSB1bmRlZmluZWRcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24ocGF0aDogc3RyaW5nKSB7XG4gIGxldCBpbnRlcmNlcHRpbmdSb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG1hcmtlcjogKHR5cGVvZiBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUylbbnVtYmVyXSB8IHVuZGVmaW5lZCxcbiAgICBpbnRlcmNlcHRlZFJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcGF0aC5zcGxpdCgnLycpKSB7XG4gICAgbWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSkgPT4gc2VnbWVudC5zdGFydHNXaXRoKG0pKVxuICAgIGlmIChtYXJrZXIpIHtcbiAgICAgIDtbaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGVdID0gcGF0aC5zcGxpdChtYXJrZXIsIDIpXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICghaW50ZXJjZXB0aW5nUm91dGUgfHwgIW1hcmtlciB8fCAhaW50ZXJjZXB0ZWRSb3V0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gTXVzdCBiZSBpbiB0aGUgZm9ybWF0IC88aW50ZXJjZXB0aW5nIHJvdXRlPi8oLi58Li4ufC4uKSguLikvPGludGVyY2VwdGVkIHJvdXRlPmBcbiAgICApXG4gIH1cblxuICBpbnRlcmNlcHRpbmdSb3V0ZSA9IG5vcm1hbGl6ZUFwcFBhdGgoaW50ZXJjZXB0aW5nUm91dGUpIC8vIG5vcm1hbGl6ZSB0aGUgcGF0aCwgZS5nLiAvKGJsb2cpL2ZlZWQgLT4gL2ZlZWRcblxuICBzd2l0Y2ggKG1hcmtlcikge1xuICAgIGNhc2UgJyguKSc6XG4gICAgICAvLyAoLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIHdpdGggc2libGluZyByb3V0ZXMsIHNvIHdlIGp1c3QgbmVlZCB0byBhcHBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlIHRvIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBgLyR7aW50ZXJjZXB0ZWRSb3V0ZX1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUgKyAnLycgKyBpbnRlcmNlcHRlZFJvdXRlXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIGNhc2UgJyguLiknOlxuICAgICAgLy8gKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgb25lIGxldmVsIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCBzZWdtZW50IG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwsIHVzZSAoLikgaW5zdGVhZC5gXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGludGVyY2VwdGVkUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZVxuICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAuc2xpY2UoMCwgLTEpXG4gICAgICAgIC5jb25jYXQoaW50ZXJjZXB0ZWRSb3V0ZSlcbiAgICAgICAgLmpvaW4oJy8nKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4uKSc6XG4gICAgICAvLyAoLi4uKSB3aWxsIG1hdGNoIHRoZSByb3V0ZSBzZWdtZW50IGluIHRoZSByb290IGRpcmVjdG9yeSwgc28gd2UgbmVlZCB0byB1c2UgdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlXG4gICAgICBpbnRlcmNlcHRlZFJvdXRlID0gJy8nICsgaW50ZXJjZXB0ZWRSb3V0ZVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4pKC4uKSc6XG4gICAgICAvLyAoLi4pKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgdHdvIGxldmVscyB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3QgdHdvIHNlZ21lbnRzIG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcblxuICAgICAgY29uc3Qgc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KCcvJylcbiAgICAgIGlmIChzcGxpdEludGVyY2VwdGluZ1JvdXRlLmxlbmd0aCA8PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsIG9yIG9uZSBsZXZlbCB1cC5gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IHNwbGl0SW50ZXJjZXB0aW5nUm91dGVcbiAgICAgICAgLnNsaWNlKDAsIC0yKVxuICAgICAgICAuY29uY2F0KGludGVyY2VwdGVkUm91dGUpXG4gICAgICAgIC5qb2luKCcvJylcbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlcicpXG4gIH1cblxuICByZXR1cm4geyBpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZSB9XG59XG4iXSwibmFtZXMiOlsiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoIiwicGF0aCIsInNwbGl0IiwiZmluZCIsInNlZ21lbnQiLCJtIiwic3RhcnRzV2l0aCIsInVuZGVmaW5lZCIsImludGVyY2VwdGluZ1JvdXRlIiwibWFya2VyIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsIkVycm9yIiwibm9ybWFsaXplQXBwUGF0aCIsInNsaWNlIiwiY29uY2F0Iiwiam9pbiIsInNwbGl0SW50ZXJjZXB0aW5nUm91dGUiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/is-bot.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTML_LIMITED_BOT_UA_RE: function() {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE;\n },\n HTML_LIMITED_BOT_UA_RE_STRING: function() {\n return HTML_LIMITED_BOT_UA_RE_STRING;\n },\n getBotType: function() {\n return getBotType;\n },\n isBot: function() {\n return isBot;\n }\n});\nconst _htmlbots = __webpack_require__(/*! ./html-bots */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\");\n// Bot crawler that will spin up a headless browser and execute JS.\n// By default, only googlebots are considered as DOM bots. Blow is where the regex is computed from:\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\nconst HEADLESS_BROWSER_BOT_UA_RE = /google/i;\nconst HTML_LIMITED_BOT_UA_RE_STRING = _htmlbots.HTML_LIMITED_BOT_UA_RE.source;\nfunction isDomBotUA(userAgent) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);\n}\nfunction isHtmlLimitedBotUA(userAgent) {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE.test(userAgent);\n}\nfunction isBot(userAgent) {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);\n}\nfunction getBotType(userAgent) {\n if (isDomBotUA(userAgent)) {\n return 'dom';\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html';\n }\n return undefined;\n} //# sourceMappingURL=is-bot.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFTU0Esc0JBQXNCO2VBQXRCQSxVQUFBQSxzQkFBc0I7O0lBRmxCQyw2QkFBNkI7ZUFBN0JBOztJQWdCR0MsVUFBVTtlQUFWQTs7SUFKQUMsS0FBSztlQUFMQTs7O3NDQW5CdUI7QUFFdkMsbUVBQW1FO0FBQ25FLG9HQUFvRztBQUNwRyw0RkFBNEY7QUFDNUYsTUFBTUMsNkJBQTZCO0FBRTVCLE1BQU1ILGdDQUFnQ0QsVUFBQUEsc0JBQXNCLENBQUNLLE1BQU07QUFJMUUsU0FBU0MsV0FBV0MsU0FBaUI7SUFDbkMsT0FBT0gsMkJBQTJCSSxJQUFJLENBQUNEO0FBQ3pDO0FBRUEsU0FBU0UsbUJBQW1CRixTQUFpQjtJQUMzQyxPQUFPUCxVQUFBQSxzQkFBc0IsQ0FBQ1EsSUFBSSxDQUFDRDtBQUNyQztBQUVPLFNBQVNKLE1BQU1JLFNBQWlCO0lBQ3JDLE9BQU9ELFdBQVdDLGNBQWNFLG1CQUFtQkY7QUFDckQ7QUFFTyxTQUFTTCxXQUFXSyxTQUFpQjtJQUMxQyxJQUFJRCxXQUFXQyxZQUFZO1FBQ3pCLE9BQU87SUFDVDtJQUNBLElBQUlFLG1CQUFtQkYsWUFBWTtRQUNqQyxPQUFPO0lBQ1Q7SUFDQSxPQUFPRztBQUNUIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVE1MX0xJTUlURURfQk9UX1VBX1JFIH0gZnJvbSAnLi9odG1sLWJvdHMnXG5cbi8vIEJvdCBjcmF3bGVyIHRoYXQgd2lsbCBzcGluIHVwIGEgaGVhZGxlc3MgYnJvd3NlciBhbmQgZXhlY3V0ZSBKUy5cbi8vIEJ5IGRlZmF1bHQsIG9ubHkgZ29vZ2xlYm90cyBhcmUgY29uc2lkZXJlZCBhcyBET00gYm90cy4gQmxvdyBpcyB3aGVyZSB0aGUgcmVnZXggaXMgY29tcHV0ZWQgZnJvbTpcbi8vIHgtcmVmOiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9zZWFyY2gvZG9jcy9jcmF3bGluZy1pbmRleGluZy9nb29nbGUtY29tbW9uLWNyYXdsZXJzXG5jb25zdCBIRUFETEVTU19CUk9XU0VSX0JPVF9VQV9SRSA9IC9nb29nbGUvaVxuXG5leHBvcnQgY29uc3QgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRV9TVFJJTkcgPSBIVE1MX0xJTUlURURfQk9UX1VBX1JFLnNvdXJjZVxuXG5leHBvcnQgeyBIVE1MX0xJTUlURURfQk9UX1VBX1JFIH1cblxuZnVuY3Rpb24gaXNEb21Cb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUudGVzdCh1c2VyQWdlbnQpXG59XG5cbmZ1bmN0aW9uIGlzSHRtbExpbWl0ZWRCb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSFRNTF9MSU1JVEVEX0JPVF9VQV9SRS50ZXN0KHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQm90KHVzZXJBZ2VudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0RvbUJvdFVBKHVzZXJBZ2VudCkgfHwgaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdFR5cGUodXNlckFnZW50OiBzdHJpbmcpOiAnZG9tJyB8ICdodG1sJyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc0RvbUJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2RvbSdcbiAgfVxuICBpZiAoaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2h0bWwnXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuIl0sIm5hbWVzIjpbIkhUTUxfTElNSVRFRF9CT1RfVUFfUkUiLCJIVE1MX0xJTUlURURfQk9UX1VBX1JFX1NUUklORyIsImdldEJvdFR5cGUiLCJpc0JvdCIsIkhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFIiwic291cmNlIiwiaXNEb21Cb3RVQSIsInVzZXJBZ2VudCIsInRlc3QiLCJpc0h0bWxMaW1pdGVkQm90VUEiLCJ1bmRlZmluZWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/parse-path.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parsePath\", ({\n enumerable: true,\n get: function() {\n return parsePath;\n }\n}));\nfunction parsePath(path) {\n const hashIndex = path.indexOf('#');\n const queryIndex = path.indexOf('?');\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : ''\n };\n }\n return {\n pathname: path,\n query: '',\n hash: ''\n };\n} //# sourceMappingURL=parse-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGguanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQzs7Ozs2Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsVUFBVUMsSUFBWTtJQUNwQyxNQUFNQyxZQUFZRCxLQUFLRSxPQUFPLENBQUM7SUFDL0IsTUFBTUMsYUFBYUgsS0FBS0UsT0FBTyxDQUFDO0lBQ2hDLE1BQU1FLFdBQVdELGFBQWEsQ0FBQyxLQUFNRixDQUFBQSxZQUFZLEtBQUtFLGFBQWFGLFNBQUFBLENBQVE7SUFFM0UsSUFBSUcsWUFBWUgsWUFBWSxDQUFDLEdBQUc7UUFDOUIsT0FBTztZQUNMSSxVQUFVTCxLQUFLTSxTQUFTLENBQUMsR0FBR0YsV0FBV0QsYUFBYUY7WUFDcERNLE9BQU9ILFdBQ0hKLEtBQUtNLFNBQVMsQ0FBQ0gsWUFBWUYsWUFBWSxDQUFDLElBQUlBLFlBQVlPLGFBQ3hEO1lBQ0pDLE1BQU1SLFlBQVksQ0FBQyxJQUFJRCxLQUFLVSxLQUFLLENBQUNULGFBQWE7UUFDakQ7SUFDRjtJQUVBLE9BQU87UUFBRUksVUFBVUw7UUFBTU8sT0FBTztRQUFJRSxNQUFNO0lBQUc7QUFDL0MiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdpdmVuIGEgcGF0aCB0aGlzIGZ1bmN0aW9uIHdpbGwgZmluZCB0aGUgcGF0aG5hbWUsIHF1ZXJ5IGFuZCBoYXNoIGFuZCByZXR1cm5cbiAqIHRoZW0uIFRoaXMgaXMgdXNlZnVsIHRvIHBhcnNlIGZ1bGwgcGF0aHMgb24gdGhlIGNsaWVudCBzaWRlLlxuICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIHBhcnNlIGUuZy4gL2Zvby9iYXI/aWQ9MSNoYXNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhdGgocGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IGhhc2hJbmRleCA9IHBhdGguaW5kZXhPZignIycpXG4gIGNvbnN0IHF1ZXJ5SW5kZXggPSBwYXRoLmluZGV4T2YoJz8nKVxuICBjb25zdCBoYXNRdWVyeSA9IHF1ZXJ5SW5kZXggPiAtMSAmJiAoaGFzaEluZGV4IDwgMCB8fCBxdWVyeUluZGV4IDwgaGFzaEluZGV4KVxuXG4gIGlmIChoYXNRdWVyeSB8fCBoYXNoSW5kZXggPiAtMSkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXRobmFtZTogcGF0aC5zdWJzdHJpbmcoMCwgaGFzUXVlcnkgPyBxdWVyeUluZGV4IDogaGFzaEluZGV4KSxcbiAgICAgIHF1ZXJ5OiBoYXNRdWVyeVxuICAgICAgICA/IHBhdGguc3Vic3RyaW5nKHF1ZXJ5SW5kZXgsIGhhc2hJbmRleCA+IC0xID8gaGFzaEluZGV4IDogdW5kZWZpbmVkKVxuICAgICAgICA6ICcnLFxuICAgICAgaGFzaDogaGFzaEluZGV4ID4gLTEgPyBwYXRoLnNsaWNlKGhhc2hJbmRleCkgOiAnJyxcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBwYXRobmFtZTogcGF0aCwgcXVlcnk6ICcnLCBoYXNoOiAnJyB9XG59XG4iXSwibmFtZXMiOlsicGFyc2VQYXRoIiwicGF0aCIsImhhc2hJbmRleCIsImluZGV4T2YiLCJxdWVyeUluZGV4IiwiaGFzUXVlcnkiLCJwYXRobmFtZSIsInN1YnN0cmluZyIsInF1ZXJ5IiwidW5kZWZpbmVkIiwiaGFzaCIsInNsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js":
/*!******************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js ***!
\******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseRelativeUrl\", ({\n enumerable: true,\n get: function() {\n return parseRelativeUrl;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _querystring = __webpack_require__(/*! ./querystring */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nfunction parseRelativeUrl(url, base, parseQuery) {\n if (parseQuery === void 0) parseQuery = true;\n const globalBase = new URL( true ? 'http://n' : 0);\n const resolvedBase = base ? new URL(base, globalBase) : url.startsWith('.') ? new URL( true ? 'http://n' : 0) : globalBase;\n const { pathname, searchParams, search, hash, href, origin } = new URL(url, resolvedBase);\n if (origin !== globalBase.origin) {\n throw Object.defineProperty(new Error(\"invariant: invalid relative URL, router received \" + url), \"__NEXT_ERROR_CODE\", {\n value: \"E159\",\n enumerable: false,\n configurable: true\n });\n }\n return {\n pathname,\n query: parseQuery ? (0, _querystring.searchParamsToUrlQuery)(searchParams) : undefined,\n search,\n hash,\n href: href.slice(origin.length),\n // We don't know for relative URLs at this point since we set a custom, internal\n // base that isn't surfaced to users.\n slashes: undefined\n };\n} //# sourceMappingURL=parse-relative-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQTZCZ0JBOzs7ZUFBQUE7OzttQ0E1QmtCO3lDQUNLO0FBMkJoQyxTQUFTQSxpQkFDZEMsR0FBVyxFQUNYQyxJQUFhLEVBQ2JDLFVBQWlCO0lBQWpCQSxJQUFBQSxlQUFBQSxLQUFBQSxHQUFBQSxhQUFhO0lBRWIsTUFBTUMsYUFBYSxJQUFJQyxJQUNyQixLQUE2QixHQUFHLGFBQWFFLENBQUFBO0lBRy9DLE1BQU1DLGVBQWVOLE9BQ2pCLElBQUlHLElBQUlILE1BQU1FLGNBQ2RILElBQUlRLFVBQVUsQ0FBQyxPQUNiLElBQUlKLElBQ0YsS0FBNkIsR0FBRyxhQUFhQyxDQUFvQixJQUVuRUY7SUFFTixNQUFNLEVBQUVRLFFBQVEsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUosSUFBSSxFQUFFSyxNQUFNLEVBQUUsR0FBRyxJQUFJWCxJQUNqRUosS0FDQU87SUFHRixJQUFJUSxXQUFXWixXQUFXWSxNQUFNLEVBQUU7UUFDaEMsTUFBTSxxQkFBb0UsQ0FBcEUsSUFBSUMsTUFBTyxzREFBbURoQixNQUE5RDttQkFBQTt3QkFBQTswQkFBQTtRQUFtRTtJQUMzRTtJQUVBLE9BQU87UUFDTFc7UUFDQU0sT0FBT2YsYUFBYWdCLENBQUFBLEdBQUFBLGFBQUFBLHNCQUFBQSxFQUF1Qk4sZ0JBQWdCTztRQUMzRE47UUFDQUM7UUFDQUosTUFBTUEsS0FBS1UsS0FBSyxDQUFDTCxPQUFPTSxNQUFNO1FBQzlCLGdGQUFnRjtRQUNoRixxQ0FBcUM7UUFDckNDLFNBQVNIO0lBQ1g7QUFDRiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHsgZ2V0TG9jYXRpb25PcmlnaW4gfSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkgfSBmcm9tICcuL3F1ZXJ5c3RyaW5nJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnNlZFJlbGF0aXZlVXJsIHtcbiAgaGFzaDogc3RyaW5nXG4gIGhyZWY6IHN0cmluZ1xuICBwYXRobmFtZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBzZWFyY2g6IHN0cmluZ1xuICBzbGFzaGVzOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBQYXJzZXMgcGF0aC1yZWxhdGl2ZSB1cmxzIChlLmcuIGAvaGVsbG8vd29ybGQ/Zm9vPWJhcmApLiBJZiB1cmwgaXNuJ3QgcGF0aC1yZWxhdGl2ZVxuICogKGUuZy4gYC4vaGVsbG9gKSB0aGVuIGF0IGxlYXN0IGJhc2UgbXVzdCBiZS5cbiAqIEFic29sdXRlIHVybHMgYXJlIHJlamVjdGVkIHdpdGggb25lIGV4Y2VwdGlvbiwgaW4gdGhlIGJyb3dzZXIsIGFic29sdXRlIHVybHMgdGhhdCBhcmUgb25cbiAqIHRoZSBjdXJyZW50IG9yaWdpbiB3aWxsIGJlIHBhcnNlZCBhcyByZWxhdGl2ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZWxhdGl2ZVVybChcbiAgdXJsOiBzdHJpbmcsXG4gIGJhc2U/OiBzdHJpbmcsXG4gIHBhcnNlUXVlcnk/OiB0cnVlXG4pOiBQYXJzZWRSZWxhdGl2ZVVybFxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVsYXRpdmVVcmwoXG4gIHVybDogc3RyaW5nLFxuICBiYXNlOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHBhcnNlUXVlcnk6IGZhbHNlXG4pOiBPbWl0PFBhcnNlZFJlbGF0aXZlVXJsLCAncXVlcnknPlxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVsYXRpdmVVcmwoXG4gIHVybDogc3RyaW5nLFxuICBiYXNlPzogc3RyaW5nLFxuICBwYXJzZVF1ZXJ5ID0gdHJ1ZVxuKTogUGFyc2VkUmVsYXRpdmVVcmwgfCBPbWl0PFBhcnNlZFJlbGF0aXZlVXJsLCAncXVlcnknPiB7XG4gIGNvbnN0IGdsb2JhbEJhc2UgPSBuZXcgVVJMKFxuICAgIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gJ2h0dHA6Ly9uJyA6IGdldExvY2F0aW9uT3JpZ2luKClcbiAgKVxuXG4gIGNvbnN0IHJlc29sdmVkQmFzZSA9IGJhc2VcbiAgICA/IG5ldyBVUkwoYmFzZSwgZ2xvYmFsQmFzZSlcbiAgICA6IHVybC5zdGFydHNXaXRoKCcuJylcbiAgICAgID8gbmV3IFVSTChcbiAgICAgICAgICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/ICdodHRwOi8vbicgOiB3aW5kb3cubG9jYXRpb24uaHJlZlxuICAgICAgICApXG4gICAgICA6IGdsb2JhbEJhc2VcblxuICBjb25zdCB7IHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMsIHNlYXJjaCwgaGFzaCwgaHJlZiwgb3JpZ2luIH0gPSBuZXcgVVJMKFxuICAgIHVybCxcbiAgICByZXNvbHZlZEJhc2VcbiAgKVxuXG4gIGlmIChvcmlnaW4gIT09IGdsb2JhbEJhc2Uub3JpZ2luKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhcmlhbnQ6IGludmFsaWQgcmVsYXRpdmUgVVJMLCByb3V0ZXIgcmVjZWl2ZWQgJHt1cmx9YClcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcGF0aG5hbWUsXG4gICAgcXVlcnk6IHBhcnNlUXVlcnkgPyBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KHNlYXJjaFBhcmFtcykgOiB1bmRlZmluZWQsXG4gICAgc2VhcmNoLFxuICAgIGhhc2gsXG4gICAgaHJlZjogaHJlZi5zbGljZShvcmlnaW4ubGVuZ3RoKSxcbiAgICAvLyBXZSBkb24ndCBrbm93IGZvciByZWxhdGl2ZSBVUkxzIGF0IHRoaXMgcG9pbnQgc2luY2Ugd2Ugc2V0IGEgY3VzdG9tLCBpbnRlcm5hbFxuICAgIC8vIGJhc2UgdGhhdCBpc24ndCBzdXJmYWNlZCB0byB1c2Vycy5cbiAgICBzbGFzaGVzOiB1bmRlZmluZWQsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJwYXJzZVJlbGF0aXZlVXJsIiwidXJsIiwiYmFzZSIsInBhcnNlUXVlcnkiLCJnbG9iYWxCYXNlIiwiVVJMIiwid2luZG93IiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJyZXNvbHZlZEJhc2UiLCJzdGFydHNXaXRoIiwibG9jYXRpb24iLCJocmVmIiwicGF0aG5hbWUiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJoYXNoIiwib3JpZ2luIiwiRXJyb3IiLCJxdWVyeSIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJ1bmRlZmluZWQiLCJzbGljZSIsImxlbmd0aCIsInNsYXNoZXMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-url.js":
/*!*********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/parse-url.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseUrl\", ({\n enumerable: true,\n get: function() {\n return parseUrl;\n }\n}));\nconst _querystring = __webpack_require__(/*! ./querystring */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _parserelativeurl = __webpack_require__(/*! ./parse-relative-url */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\nfunction parseUrl(url) {\n if (url.startsWith('/')) {\n return (0, _parserelativeurl.parseRelativeUrl)(url);\n }\n const parsedURL = new URL(url);\n return {\n hash: parsedURL.hash,\n hostname: parsedURL.hostname,\n href: parsedURL.href,\n pathname: parsedURL.pathname,\n port: parsedURL.port,\n protocol: parsedURL.protocol,\n query: (0, _querystring.searchParamsToUrlQuery)(parsedURL.searchParams),\n search: parsedURL.search,\n slashes: parsedURL.href.slice(parsedURL.protocol.length, parsedURL.protocol.length + 2) === '//'\n };\n} //# sourceMappingURL=parse-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7OzRDQWlCZ0JBOzs7ZUFBQUE7Ozt5Q0FmdUI7OENBQ047QUFjMUIsU0FBU0EsU0FBU0MsR0FBVztJQUNsQyxJQUFJQSxJQUFJQyxVQUFVLENBQUMsTUFBTTtRQUN2QixPQUFPQyxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCRjtJQUMxQjtJQUVBLE1BQU1HLFlBQVksSUFBSUMsSUFBSUo7SUFDMUIsT0FBTztRQUNMSyxNQUFNRixVQUFVRSxJQUFJO1FBQ3BCQyxVQUFVSCxVQUFVRyxRQUFRO1FBQzVCQyxNQUFNSixVQUFVSSxJQUFJO1FBQ3BCQyxVQUFVTCxVQUFVSyxRQUFRO1FBQzVCQyxNQUFNTixVQUFVTSxJQUFJO1FBQ3BCQyxVQUFVUCxVQUFVTyxRQUFRO1FBQzVCQyxPQUFPQyxDQUFBQSxHQUFBQSxhQUFBQSxzQkFBQUEsRUFBdUJULFVBQVVVLFlBQVk7UUFDcERDLFFBQVFYLFVBQVVXLE1BQU07UUFDeEJDLFNBQ0VaLFVBQVVJLElBQUksQ0FBQ1MsS0FBSyxDQUNsQmIsVUFBVU8sUUFBUSxDQUFDTyxNQUFNLEVBQ3pCZCxVQUFVTyxRQUFRLENBQUNPLE1BQU0sR0FBRyxPQUN4QjtJQUNWO0FBQ0YiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcblxuaW1wb3J0IHsgc2VhcmNoUGFyYW1zVG9VcmxRdWVyeSB9IGZyb20gJy4vcXVlcnlzdHJpbmcnXG5pbXBvcnQgeyBwYXJzZVJlbGF0aXZlVXJsIH0gZnJvbSAnLi9wYXJzZS1yZWxhdGl2ZS11cmwnXG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVXJsIHtcbiAgaGFzaDogc3RyaW5nXG4gIGhvc3RuYW1lPzogc3RyaW5nIHwgbnVsbFxuICBocmVmOiBzdHJpbmdcbiAgcGF0aG5hbWU6IHN0cmluZ1xuICBwb3J0Pzogc3RyaW5nIHwgbnVsbFxuICBwcm90b2NvbD86IHN0cmluZyB8IG51bGxcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIHNlYXJjaDogc3RyaW5nXG4gIHNsYXNoZXM6IGJvb2xlYW4gfCB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVXJsKHVybDogc3RyaW5nKTogUGFyc2VkVXJsIHtcbiAgaWYgKHVybC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gcGFyc2VSZWxhdGl2ZVVybCh1cmwpXG4gIH1cblxuICBjb25zdCBwYXJzZWRVUkwgPSBuZXcgVVJMKHVybClcbiAgcmV0dXJuIHtcbiAgICBoYXNoOiBwYXJzZWRVUkwuaGFzaCxcbiAgICBob3N0bmFtZTogcGFyc2VkVVJMLmhvc3RuYW1lLFxuICAgIGhyZWY6IHBhcnNlZFVSTC5ocmVmLFxuICAgIHBhdGhuYW1lOiBwYXJzZWRVUkwucGF0aG5hbWUsXG4gICAgcG9ydDogcGFyc2VkVVJMLnBvcnQsXG4gICAgcHJvdG9jb2w6IHBhcnNlZFVSTC5wcm90b2NvbCxcbiAgICBxdWVyeTogc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShwYXJzZWRVUkwuc2VhcmNoUGFyYW1zKSxcbiAgICBzZWFyY2g6IHBhcnNlZFVSTC5zZWFyY2gsXG4gICAgc2xhc2hlczpcbiAgICAgIHBhcnNlZFVSTC5ocmVmLnNsaWNlKFxuICAgICAgICBwYXJzZWRVUkwucHJvdG9jb2wubGVuZ3RoLFxuICAgICAgICBwYXJzZWRVUkwucHJvdG9jb2wubGVuZ3RoICsgMlxuICAgICAgKSA9PT0gJy8vJyxcbiAgfVxufVxuIl0sIm5hbWVzIjpbInBhcnNlVXJsIiwidXJsIiwic3RhcnRzV2l0aCIsInBhcnNlUmVsYXRpdmVVcmwiLCJwYXJzZWRVUkwiLCJVUkwiLCJoYXNoIiwiaG9zdG5hbWUiLCJocmVmIiwicGF0aG5hbWUiLCJwb3J0IiwicHJvdG9jb2wiLCJxdWVyeSIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJzZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJzbGFzaGVzIiwic2xpY2UiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-url.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js":
/*!***************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js ***!
\***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pathHasPrefix\", ({\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = (0, _parsepath.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + '/');\n} //# sourceMappingURL=path-has-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQVNnQkE7OztlQUFBQTs7O3VDQVRVO0FBU25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBYztJQUN4RCxJQUFJLE9BQU9ELFNBQVMsVUFBVTtRQUM1QixPQUFPO0lBQ1Q7SUFFQSxNQUFNLEVBQUVFLFFBQVEsRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVSDtJQUMvQixPQUFPRSxhQUFhRCxVQUFVQyxTQUFTRSxVQUFVLENBQUNILFNBQVM7QUFDN0QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBwYXRoIHN0YXJ0cyB3aXRoIGEgZ2l2ZW4gcHJlZml4LiBJdCBlbnN1cmVzIGl0IG1hdGNoZXNcbiAqIGV4YWN0bHkgd2l0aG91dCBjb250YWluaW5nIGV4dHJhIGNoYXJzLiBlLmcuIHByZWZpeCAvZG9jcyBzaG91bGQgcmVwbGFjZVxuICogZm9yIC9kb2NzLCAvZG9jcy8sIC9kb2NzL2EgYnV0IG5vdCAvZG9jc3NzXG4gKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeCB0byBjaGVjayBhZ2FpbnN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aEhhc1ByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUgfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gcGF0aG5hbWUgPT09IHByZWZpeCB8fCBwYXRobmFtZS5zdGFydHNXaXRoKHByZWZpeCArICcvJylcbn1cbiJdLCJuYW1lcyI6WyJwYXRoSGFzUHJlZml4IiwicGF0aCIsInByZWZpeCIsInBhdGhuYW1lIiwicGFyc2VQYXRoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-match.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/path-match.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getPathMatch\", ({\n enumerable: true,\n get: function() {\n return getPathMatch;\n }\n}));\nconst _pathtoregexp = __webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js\");\nfunction getPathMatch(path, options) {\n const keys = [];\n const regexp = (0, _pathtoregexp.pathToRegexp)(path, keys, {\n delimiter: '/',\n sensitive: typeof (options == null ? void 0 : options.sensitive) === 'boolean' ? options.sensitive : false,\n strict: options == null ? void 0 : options.strict\n });\n const matcher = (0, _pathtoregexp.regexpToFunction)((options == null ? void 0 : options.regexModifier) ? new RegExp(options.regexModifier(regexp.source), regexp.flags) : regexp, keys);\n /**\n * A matcher function that will check if a given pathname matches the path\n * given in the builder function. When the path does not match it will return\n * `false` but if it does it will return an object with the matched params\n * merged with the params provided in the second argument.\n */ return (pathname, params)=>{\n // If no pathname is provided it's not a match.\n if (typeof pathname !== 'string') return false;\n const match = matcher(pathname);\n // If the path did not match `false` will be returned.\n if (!match) return false;\n /**\n * If unnamed params are not allowed they must be removed from\n * the matched parameters. path-to-regexp uses \"string\" for named and\n * \"number\" for unnamed parameters.\n */ if (options == null ? void 0 : options.removeUnnamedParams) {\n for (const key of keys){\n if (typeof key.name === 'number') {\n delete match.params[key.name];\n }\n }\n }\n return {\n ...params,\n ...match.params\n };\n };\n} //# sourceMappingURL=path-match.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtbWF0Y2guanMiLCJtYXBwaW5ncyI6Ijs7OztnREFxQ2dCQTs7O2VBQUFBOzs7MENBcENhO0FBb0N0QixTQUFTQSxhQUFhQyxJQUFZLEVBQUVDLE9BQWlCO0lBQzFELE1BQU1DLE9BQWMsRUFBRTtJQUN0QixNQUFNQyxTQUFTQyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhSixNQUFNRSxNQUFNO1FBQ3RDRyxXQUFXO1FBQ1hDLFdBQ0UsT0FBT0wsWUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsUUFBU0ssU0FBQUEsTUFBYyxZQUFZTCxRQUFRSyxTQUFTLEdBQUc7UUFDaEVDLE1BQU0sRUFBRU4sV0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsUUFBU00sTUFBTTtJQUN6QjtJQUVBLE1BQU1DLFVBQVVDLENBQUFBLEdBQUFBLGNBQUFBLGdCQUFBQSxFQUNkUixDQUFBQSxXQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxRQUFTUyxhQUFBQSxJQUNMLElBQUlDLE9BQU9WLFFBQVFTLGFBQWEsQ0FBQ1AsT0FBT1MsTUFBTSxHQUFHVCxPQUFPVSxLQUFLLElBQzdEVixRQUNKRDtJQUdGOzs7OztHQUtDLEdBQ0QsT0FBTyxDQUFDWSxVQUFVQztRQUNoQiwrQ0FBK0M7UUFDL0MsSUFBSSxPQUFPRCxhQUFhLFVBQVUsT0FBTztRQUV6QyxNQUFNRSxRQUFRUixRQUFRTTtRQUV0QixzREFBc0Q7UUFDdEQsSUFBSSxDQUFDRSxPQUFPLE9BQU87UUFFbkI7Ozs7S0FJQyxHQUNELElBQUlmLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFFBQVNnQixtQkFBbUIsRUFBRTtZQUNoQyxLQUFLLE1BQU1DLE9BQU9oQixLQUFNO2dCQUN0QixJQUFJLE9BQU9nQixJQUFJQyxJQUFJLEtBQUssVUFBVTtvQkFDaEMsT0FBT0gsTUFBTUQsTUFBTSxDQUFDRyxJQUFJQyxJQUFJLENBQUM7Z0JBQy9CO1lBQ0Y7UUFDRjtRQUVBLE9BQU87WUFBRSxHQUFHSixNQUFNO1lBQUUsR0FBR0MsTUFBTUQsTUFBTTtRQUFDO0lBQ3RDO0FBQ0YiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1tYXRjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEtleSB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cCdcbmltcG9ydCB7IHBhdGhUb1JlZ2V4cCB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cCdcbmltcG9ydCB7IHJlZ2V4cFRvRnVuY3Rpb24gfSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvcGF0aC10by1yZWdleHAnXG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgLyoqXG4gICAqIEEgdHJhbnNmb3JtZXIgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIHJlZ2V4cCBnZW5lcmF0ZWRcbiAgICogZnJvbSB0aGUgcHJvdmlkZWQgcGF0aCBhbmQgcGF0aC10by1yZWdleHAuXG4gICAqL1xuICByZWdleE1vZGlmaWVyPzogKHJlZ2V4OiBzdHJpbmcpID0+IHN0cmluZ1xuICAvKipcbiAgICogV2hlbiB0cnVlIHRoZSBmdW5jdGlvbiB3aWxsIHJlbW92ZSBhbGwgdW5uYW1lZCBwYXJhbWV0ZXJzXG4gICAqIGZyb20gdGhlIG1hdGNoZWQgcGFyYW1ldGVycy5cbiAgICovXG4gIHJlbW92ZVVubmFtZWRQYXJhbXM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUgdGhlIHJlZ2V4cCB3b24ndCBhbGxvdyBhbiBvcHRpb25hbCB0cmFpbGluZyBkZWxpbWl0ZXJcbiAgICogdG8gbWF0Y2guXG4gICAqL1xuICBzdHJpY3Q/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSB0aGUgbWF0Y2hlciB3aWxsIGJlIGNhc2Utc2Vuc2l0aXZlLCBkZWZhdWx0cyB0byBmYWxzZVxuICAgKi9cbiAgc2Vuc2l0aXZlPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBQYXRjaE1hdGNoZXIgPSAoXG4gIHBhdGhuYW1lOiBzdHJpbmcsXG4gIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT5cbikgPT4gUmVjb3JkPHN0cmluZywgYW55PiB8IGZhbHNlXG5cbi8qKlxuICogR2VuZXJhdGVzIGEgcGF0aCBtYXRjaGVyIGZ1bmN0aW9uIGZvciBhIGdpdmVuIHBhdGggYW5kIG9wdGlvbnMgYmFzZWQgb25cbiAqIHBhdGgtdG8tcmVnZXhwLiBCeSBkZWZhdWx0IHRoZSBtYXRjaCB3aWxsIGJlIGNhc2UgaW5zZW5zaXRpdmUsIG5vbiBzdHJpY3RcbiAqIGFuZCBkZWxpbWl0ZWQgYnkgYC9gLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGF0aE1hdGNoKHBhdGg6IHN0cmluZywgb3B0aW9ucz86IE9wdGlvbnMpOiBQYXRjaE1hdGNoZXIge1xuICBjb25zdCBrZXlzOiBLZXlbXSA9IFtdXG4gIGNvbnN0IHJlZ2V4cCA9IHBhdGhUb1JlZ2V4cChwYXRoLCBrZXlzLCB7XG4gICAgZGVsaW1pdGVyOiAnLycsXG4gICAgc2Vuc2l0aXZlOlxuICAgICAgdHlwZW9mIG9wdGlvbnM/LnNlbnNpdGl2ZSA9PT0gJ2Jvb2xlYW4nID8gb3B0aW9ucy5zZW5zaXRpdmUgOiBmYWxzZSxcbiAgICBzdHJpY3Q6IG9wdGlvbnM/LnN0cmljdCxcbiAgfSlcblxuICBjb25zdCBtYXRjaGVyID0gcmVnZXhwVG9GdW5jdGlvbjxSZWNvcmQ8c3RyaW5nLCBhbnk+PihcbiAgICBvcHRpb25zPy5yZWdleE1vZGlmaWVyXG4gICAgICA/IG5ldyBSZWdFeHAob3B0aW9ucy5yZWdleE1vZGlmaWVyKHJlZ2V4cC5zb3VyY2UpLCByZWdleHAuZmxhZ3MpXG4gICAgICA6IHJlZ2V4cCxcbiAgICBrZXlzXG4gIClcblxuICAvKipcbiAgICogQSBtYXRjaGVyIGZ1bmN0aW9uIHRoYXQgd2lsbCBjaGVjayBpZiBhIGdpdmVuIHBhdGhuYW1lIG1hdGNoZXMgdGhlIHBhdGhcbiAgICogZ2l2ZW4gaW4gdGhlIGJ1aWxkZXIgZnVuY3Rpb24uIFdoZW4gdGhlIHBhdGggZG9lcyBub3QgbWF0Y2ggaXQgd2lsbCByZXR1cm5cbiAgICogYGZhbHNlYCBidXQgaWYgaXQgZG9lcyBpdCB3aWxsIHJldHVybiBhbiBvYmplY3Qgd2l0aCB0aGUgbWF0Y2hlZCBwYXJhbXNcbiAgICogbWVyZ2VkIHdpdGggdGhlIHBhcmFtcyBwcm92aWRlZCBpbiB0aGUgc2Vjb25kIGFyZ3VtZW50LlxuICAgKi9cbiAgcmV0dXJuIChwYXRobmFtZSwgcGFyYW1zKSA9PiB7XG4gICAgLy8gSWYgbm8gcGF0aG5hbWUgaXMgcHJvdmlkZWQgaXQncyBub3QgYSBtYXRjaC5cbiAgICBpZiAodHlwZW9mIHBhdGhuYW1lICE9PSAnc3RyaW5nJykgcmV0dXJuIGZhbHNlXG5cbiAgICBjb25zdCBtYXRjaCA9IG1hdGNoZXIocGF0aG5hbWUpXG5cbiAgICAvLyBJZiB0aGUgcGF0aCBkaWQgbm90IG1hdGNoIGBmYWxzZWAgd2lsbCBiZSByZXR1cm5lZC5cbiAgICBpZiAoIW1hdGNoKSByZXR1cm4gZmFsc2VcblxuICAgIC8qKlxuICAgICAqIElmIHVubmFtZWQgcGFyYW1zIGFyZSBub3QgYWxsb3dlZCB0aGV5IG11c3QgYmUgcmVtb3ZlZCBmcm9tXG4gICAgICogdGhlIG1hdGNoZWQgcGFyYW1ldGVycy4gcGF0aC10by1yZWdleHAgdXNlcyBcInN0cmluZ1wiIGZvciBuYW1lZCBhbmRcbiAgICAgKiBcIm51bWJlclwiIGZvciB1bm5hbWVkIHBhcmFtZXRlcnMuXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnM/LnJlbW92ZVVubmFtZWRQYXJhbXMpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBrZXkubmFtZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBkZWxldGUgbWF0Y2gucGFyYW1zW2tleS5uYW1lXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgLi4ucGFyYW1zLCAuLi5tYXRjaC5wYXJhbXMgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZ2V0UGF0aE1hdGNoIiwicGF0aCIsIm9wdGlvbnMiLCJrZXlzIiwicmVnZXhwIiwicGF0aFRvUmVnZXhwIiwiZGVsaW1pdGVyIiwic2Vuc2l0aXZlIiwic3RyaWN0IiwibWF0Y2hlciIsInJlZ2V4cFRvRnVuY3Rpb24iLCJyZWdleE1vZGlmaWVyIiwiUmVnRXhwIiwic291cmNlIiwiZmxhZ3MiLCJwYXRobmFtZSIsInBhcmFtcyIsIm1hdGNoIiwicmVtb3ZlVW5uYW1lZFBhcmFtcyIsImtleSIsIm5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-match.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/prepare-destination.js":
/*!*******************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/prepare-destination.js ***!
\*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n compileNonPath: function() {\n return compileNonPath;\n },\n matchHas: function() {\n return matchHas;\n },\n parseDestination: function() {\n return parseDestination;\n },\n prepareDestination: function() {\n return prepareDestination;\n }\n});\nconst _pathtoregexp = __webpack_require__(/*! next/dist/compiled/path-to-regexp */ \"(rsc)/./node_modules/next/dist/compiled/path-to-regexp/index.js\");\nconst _escaperegexp = __webpack_require__(/*! ../../escape-regexp */ \"(rsc)/./node_modules/next/dist/shared/lib/escape-regexp.js\");\nconst _parseurl = __webpack_require__(/*! ./parse-url */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/parse-url.js\");\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _getcookieparser = __webpack_require__(/*! ../../../../server/api-utils/get-cookie-parser */ \"(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js\");\n/**\n * Ensure only a-zA-Z are used for param names for proper interpolating\n * with path-to-regexp\n */ function getSafeParamName(paramName) {\n let newParamName = '';\n for(let i = 0; i < paramName.length; i++){\n const charCode = paramName.charCodeAt(i);\n if (charCode > 64 && charCode < 91 || // A-Z\n charCode > 96 && charCode < 123 // a-z\n ) {\n newParamName += paramName[i];\n }\n }\n return newParamName;\n}\nfunction escapeSegment(str, segmentName) {\n return str.replace(new RegExp(\":\" + (0, _escaperegexp.escapeStringRegexp)(segmentName), 'g'), \"__ESC_COLON_\" + segmentName);\n}\nfunction unescapeSegments(str) {\n return str.replace(/__ESC_COLON_/gi, ':');\n}\nfunction matchHas(req, query, has, missing) {\n if (has === void 0) has = [];\n if (missing === void 0) missing = [];\n const params = {};\n const hasMatch = (hasItem)=>{\n let value;\n let key = hasItem.key;\n switch(hasItem.type){\n case 'header':\n {\n key = key.toLowerCase();\n value = req.headers[key];\n break;\n }\n case 'cookie':\n {\n if ('cookies' in req) {\n value = req.cookies[hasItem.key];\n } else {\n const cookies = (0, _getcookieparser.getCookieParser)(req.headers)();\n value = cookies[hasItem.key];\n }\n break;\n }\n case 'query':\n {\n value = query[key];\n break;\n }\n case 'host':\n {\n const { host } = (req == null ? void 0 : req.headers) || {};\n // remove port from host if present\n const hostname = host == null ? void 0 : host.split(':', 1)[0].toLowerCase();\n value = hostname;\n break;\n }\n default:\n {\n break;\n }\n }\n if (!hasItem.value && value) {\n params[getSafeParamName(key)] = value;\n return true;\n } else if (value) {\n const matcher = new RegExp(\"^\" + hasItem.value + \"$\");\n const matches = Array.isArray(value) ? value.slice(-1)[0].match(matcher) : value.match(matcher);\n if (matches) {\n if (Array.isArray(matches)) {\n if (matches.groups) {\n Object.keys(matches.groups).forEach((groupKey)=>{\n params[groupKey] = matches.groups[groupKey];\n });\n } else if (hasItem.type === 'host' && matches[0]) {\n params.host = matches[0];\n }\n }\n return true;\n }\n }\n return false;\n };\n const allMatch = has.every((item)=>hasMatch(item)) && !missing.some((item)=>hasMatch(item));\n if (allMatch) {\n return params;\n }\n return false;\n}\nfunction compileNonPath(value, params) {\n if (!value.includes(':')) {\n return value;\n }\n for (const key of Object.keys(params)){\n if (value.includes(\":\" + key)) {\n value = value.replace(new RegExp(\":\" + key + \"\\\\*\", 'g'), \":\" + key + \"--ESCAPED_PARAM_ASTERISKS\").replace(new RegExp(\":\" + key + \"\\\\?\", 'g'), \":\" + key + \"--ESCAPED_PARAM_QUESTION\").replace(new RegExp(\":\" + key + \"\\\\+\", 'g'), \":\" + key + \"--ESCAPED_PARAM_PLUS\").replace(new RegExp(\":\" + key + \"(?!\\\\w)\", 'g'), \"--ESCAPED_PARAM_COLON\" + key);\n }\n }\n value = value.replace(/(:|\\*|\\?|\\+|\\(|\\)|\\{|\\})/g, '\\\\$1').replace(/--ESCAPED_PARAM_PLUS/g, '+').replace(/--ESCAPED_PARAM_COLON/g, ':').replace(/--ESCAPED_PARAM_QUESTION/g, '?').replace(/--ESCAPED_PARAM_ASTERISKS/g, '*');\n // the value needs to start with a forward-slash to be compiled\n // correctly\n return (0, _pathtoregexp.compile)(\"/\" + value, {\n validate: false\n })(params).slice(1);\n}\nfunction parseDestination(args) {\n let escaped = args.destination;\n for (const param of Object.keys({\n ...args.params,\n ...args.query\n })){\n if (!param) continue;\n escaped = escapeSegment(escaped, param);\n }\n const parsed = (0, _parseurl.parseUrl)(escaped);\n let pathname = parsed.pathname;\n if (pathname) {\n pathname = unescapeSegments(pathname);\n }\n let href = parsed.href;\n if (href) {\n href = unescapeSegments(href);\n }\n let hostname = parsed.hostname;\n if (hostname) {\n hostname = unescapeSegments(hostname);\n }\n let hash = parsed.hash;\n if (hash) {\n hash = unescapeSegments(hash);\n }\n return {\n ...parsed,\n pathname,\n hostname,\n href,\n hash\n };\n}\nfunction prepareDestination(args) {\n const parsedDestination = parseDestination(args);\n const { hostname: destHostname, query: destQuery } = parsedDestination;\n // The following code assumes that the pathname here includes the hash if it's\n // present.\n let destPath = parsedDestination.pathname;\n if (parsedDestination.hash) {\n destPath = \"\" + destPath + parsedDestination.hash;\n }\n const destParams = [];\n const destPathParamKeys = [];\n (0, _pathtoregexp.pathToRegexp)(destPath, destPathParamKeys);\n for (const key of destPathParamKeys){\n destParams.push(key.name);\n }\n if (destHostname) {\n const destHostnameParamKeys = [];\n (0, _pathtoregexp.pathToRegexp)(destHostname, destHostnameParamKeys);\n for (const key of destHostnameParamKeys){\n destParams.push(key.name);\n }\n }\n const destPathCompiler = (0, _pathtoregexp.compile)(destPath, // have already validated before we got to this point and validating\n // breaks compiling destinations with named pattern params from the source\n // e.g. /something:hello(.*) -> /another/:hello is broken with validation\n // since compile validation is meant for reversing and not for inserting\n // params from a separate path-regex into another\n {\n validate: false\n });\n let destHostnameCompiler;\n if (destHostname) {\n destHostnameCompiler = (0, _pathtoregexp.compile)(destHostname, {\n validate: false\n });\n }\n // update any params in query values\n for (const [key, strOrArray] of Object.entries(destQuery)){\n // the value needs to start with a forward-slash to be compiled\n // correctly\n if (Array.isArray(strOrArray)) {\n destQuery[key] = strOrArray.map((value)=>compileNonPath(unescapeSegments(value), args.params));\n } else if (typeof strOrArray === 'string') {\n destQuery[key] = compileNonPath(unescapeSegments(strOrArray), args.params);\n }\n }\n // add path params to query if it's not a redirect and not\n // already defined in destination query or path\n let paramKeys = Object.keys(args.params).filter((name)=>name !== 'nextInternalLocale');\n if (args.appendParamsToQuery && !paramKeys.some((key)=>destParams.includes(key))) {\n for (const key of paramKeys){\n if (!(key in destQuery)) {\n destQuery[key] = args.params[key];\n }\n }\n }\n let newUrl;\n // The compiler also that the interception route marker is an unnamed param, hence '0',\n // so we need to add it to the params object.\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(destPath)) {\n for (const segment of destPath.split('/')){\n const marker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n if (marker === '(..)(..)') {\n args.params['0'] = '(..)';\n args.params['1'] = '(..)';\n } else {\n args.params['0'] = marker;\n }\n break;\n }\n }\n }\n try {\n newUrl = destPathCompiler(args.params);\n const [pathname, hash] = newUrl.split('#', 2);\n if (destHostnameCompiler) {\n parsedDestination.hostname = destHostnameCompiler(args.params);\n }\n parsedDestination.pathname = pathname;\n parsedDestination.hash = \"\" + (hash ? '#' : '') + (hash || '');\n delete parsedDestination.search;\n } catch (err) {\n if (err.message.match(/Expected .*? to not repeat, but got an array/)) {\n throw Object.defineProperty(new Error(\"To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match\"), \"__NEXT_ERROR_CODE\", {\n value: \"E329\",\n enumerable: false,\n configurable: true\n });\n }\n throw err;\n }\n // Query merge order lowest priority to highest\n // 1. initial URL query values\n // 2. path segment values\n // 3. destination specified query values\n parsedDestination.query = {\n ...args.query,\n ...parsedDestination.query\n };\n return {\n newUrl,\n destQuery,\n parsedDestination\n };\n} //# sourceMappingURL=prepare-destination.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3ByZXBhcmUtZGVzdGluYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBOEhnQkEsY0FBYztlQUFkQTs7SUEvRUFDLFFBQVE7ZUFBUkE7O0lBa0hBQyxnQkFBZ0I7ZUFBaEJBOztJQTJDQUMsa0JBQWtCO2VBQWxCQTs7OzBDQXRNc0I7MENBQ0g7c0NBQ1Y7Z0RBSWxCOzZDQUN5QjtBQUdoQzs7O0NBR0MsR0FDRCxTQUFTQyxpQkFBaUJDLFNBQWlCO0lBQ3pDLElBQUlDLGVBQWU7SUFFbkIsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlGLFVBQVVHLE1BQU0sRUFBRUQsSUFBSztRQUN6QyxNQUFNRSxXQUFXSixVQUFVSyxVQUFVLENBQUNIO1FBRXRDLElBQ0dFLFdBQVcsTUFBTUEsV0FBVyxNQUFPLE1BQU07UUFDekNBLFdBQVcsTUFBTUEsV0FBVyxJQUFLLE1BQU07VUFDeEM7WUFDQUgsZ0JBQWdCRCxTQUFTLENBQUNFLEVBQUU7UUFDOUI7SUFDRjtJQUNBLE9BQU9EO0FBQ1Q7QUFFQSxTQUFTSyxjQUFjQyxHQUFXLEVBQUVDLFdBQW1CO0lBQ3JELE9BQU9ELElBQUlFLE9BQU8sQ0FDaEIsSUFBSUMsT0FBUSxNQUFHQyxDQUFBQSxHQUFBQSxjQUFBQSxrQkFBQUEsRUFBbUJILGNBQWdCLE1BQ2pELGlCQUFjQTtBQUVuQjtBQUVBLFNBQVNJLGlCQUFpQkwsR0FBVztJQUNuQyxPQUFPQSxJQUFJRSxPQUFPLENBQUMsa0JBQWtCO0FBQ3ZDO0FBRU8sU0FBU2IsU0FDZGlCLEdBQXNDLEVBQ3RDQyxLQUFhLEVBQ2JDLEdBQW9CLEVBQ3BCQyxPQUF3QjtJQUR4QkQsSUFBQUEsUUFBQUEsS0FBQUEsR0FBQUEsTUFBa0IsRUFBRTtJQUNwQkMsSUFBQUEsWUFBQUEsS0FBQUEsR0FBQUEsVUFBc0IsRUFBRTtJQUV4QixNQUFNQyxTQUFpQixDQUFDO0lBRXhCLE1B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Q0Q7WUFFckIsSUFBSUgsUUFBUTtnQkFDVixJQUFJQSxXQUFXLFlBQVk7b0JBQ3pCOUIsS0FBSy9CLE1BQU0sQ0FBQyxJQUFJLEdBQUc7b0JBQ25CK0IsS0FBSy9CLE1BQU0sQ0FBQyxJQUFJLEdBQUc7Z0JBQ3JCLE9BQU87b0JBQ0wrQixLQUFLL0IsTUFBTSxDQUFDLElBQUksR0FBRzZEO2dCQUNyQjtnQkFDQTtZQUNGO1FBQ0Y7SUFDRjtJQUVBLElBQUk7UUFDRkgsU0FBU1IsaUJBQWlCbkIsS0FBSy9CLE1BQU07UUFFckMsTUFBTSxDQUFDcUMsVUFBVUUsS0FBSyxHQUFHbUIsT0FBTzlDLEtBQUssQ0FBQyxLQUFLO1FBQzNDLElBQUl1QyxzQkFBc0I7WUFDeEJYLGtCQUFrQjdCLFFBQVEsR0FBR3dDLHFCQUFxQnBCLEtBQUsvQixNQUFNO1FBQy9EO1FBQ0F3QyxrQkFBa0JILFFBQVEsR0FBR0E7UUFDN0JHLGtCQUFrQkQsSUFBSSxHQUFJLEtBQUVBLENBQUFBLE9BQU8sTUFBTSxHQUFDLElBQUlBLFFBQVEsR0FBQztRQUN2RCxPQUFRQyxrQkFBMEIwQixNQUFNO0lBQzFDLEVBQUUsT0FBT0MsS0FBVTtRQUNqQixJQUFJQSxJQUFJQyxPQUFPLENBQUNsRCxLQUFLLENBQUMsaURBQWlEO1lBQ3JFLE1BQU0scUJBRUwsQ0FGSyxJQUFJbUQsTUFDUCw0S0FERzt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFDQSxNQUFNRjtJQUNSO0lBRUEsK0NBQStDO0lBQy9DLDhCQUE4QjtJQUM5Qix5QkFBeUI7SUFDekIsd0NBQXdDO0lBQ3hDM0Isa0JBQWtCM0MsS0FBSyxHQUFHO1FBQ3hCLEdBQUdrQyxLQUFLbEMsS0FBSztRQUNiLEdBQUcyQyxrQkFBa0IzQyxLQUFLO0lBQzVCO0lBRUEsT0FBTztRQUNMNkQ7UUFDQWhCO1FBQ0FGO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wcmVwYXJlLWRlc3RpbmF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5jb21pbmdNZXNzYWdlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB0eXBlIHsgS2V5IH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3BhdGgtdG8tcmVnZXhwJ1xuaW1wb3J0IHR5cGUgeyBOZXh0UGFyc2VkVXJsUXVlcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvcmVxdWVzdC1tZXRhJ1xuaW1wb3J0IHR5cGUgeyBSb3V0ZUhhcyB9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9sb2FkLWN1c3RvbS1yb3V0ZXMnXG5pbXBvcnQgdHlwZSB7IEJhc2VOZXh0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9iYXNlLWh0dHAnXG5cbmltcG9ydCB7IGNvbXBpbGUsIHBhdGhUb1JlZ2V4cCB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9wYXRoLXRvLXJlZ2V4cCdcbmltcG9ydCB7IGVzY2FwZVN0cmluZ1JlZ2V4cCB9IGZyb20gJy4uLy4uL2VzY2FwZS1yZWdleHAnXG5pbXBvcnQgeyBwYXJzZVVybCB9IGZyb20gJy4vcGFyc2UtdXJsJ1xuaW1wb3J0IHtcbiAgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMsXG4gIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoLFxufSBmcm9tICcuL2ludGVyY2VwdGlvbi1yb3V0ZXMnXG5pbXBvcnQgeyBnZXRDb29raWVQYXJzZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvYXBpLXV0aWxzL2dldC1jb29raWUtcGFyc2VyJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5cbi8qKlxuICogRW5zdXJlIG9ubHkgYS16QS1aIGFyZSB1c2VkIGZvciBwYXJhbSBuYW1lcyBmb3IgcHJvcGVyIGludGVycG9sYXRpbmdcbiAqIHdpdGggcGF0aC10by1yZWdleHBcbiAqL1xuZnVuY3Rpb24gZ2V0U2FmZVBhcmFtTmFtZShwYXJhbU5hbWU6IHN0cmluZykge1xuICBsZXQgbmV3UGFyYW1OYW1lID0gJydcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcmFtTmFtZS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoYXJDb2RlID0gcGFyYW1OYW1lLmNoYXJDb2RlQXQoaSlcblxuICAgIGlmIChcbiAgICAgIChjaGFyQ29kZSA+IDY0ICYmIGNoYXJDb2RlIDwgOTEpIHx8IC8vIEEtWlxuICAgICAgKGNoYXJDb2RlID4gOTYgJiYgY2hhckNvZGUgPCAxMjMpIC8vIGEtelxuICAgICkge1xuICAgICAgbmV3UGFyYW1OYW1lICs9IHBhcmFtTmFtZVtpXVxuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3UGFyYW1OYW1lXG59XG5cbmZ1bmN0aW9uIGVzY2FwZVNlZ21lbnQoc3RyOiBzdHJpbmcsIHNlZ21lbnROYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKFxuICAgIG5ldyBSZWdFeHAoYDoke2VzY2FwZVN0cmluZ1JlZ2V4cChzZWdtZW50TmFtZSl9YCwgJ2cnKSxcbiAgICBgX19FU0NfQ09MT05fJHtzZWdtZW50TmFtZX1gXG4gIClcbn1cblxuZnVuY3Rpb24gdW5lc2NhcGVTZWdtZW50cyhzdHI6IHN0cmluZykge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL19fRVNDX0NPTE9OXy9naSwgJzonKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hIYXMoXG4gIHJlcTogQmFzZU5leHRSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICBxdWVyeTogUGFyYW1zLFxuICBoYXM6IFJvdXRlSGFzW10gPSBbXSxcbiAgbWlzc2luZzogUm91dGVIYXNbXSA9IFtdXG4pOiBmYWxzZSB8IFBhcmFtcyB7XG4gIGNvbnN0IHBhcmFtczogUGFyYW1zID0ge31cblxuICBjb25zdCBoYXNNYXRjaCA9IChoYXNJdGVtOiBSb3V0ZUhhcykgPT4ge1xuICAgIGxldCB2YWx1ZVxuICAgIGxldCBrZXkgPSBoYXNJdGVtLmtleVxuXG4gICAgc3dpdGNoIChoYXNJdGVtLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2hlYWRlcic6IHtcbiAgICAgICAga2V5ID0ga2V5IS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIHZhbHVlID0gcmVxLmhlYWRlcnNba2V5XSBhcyBzdHJpbmdcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2Nvb2tpZSc6IHtcbiAgICAgICAgaWYgKCdjb29raWVzJyBpbiByZXEpIHtcbiAgICAgICAgICB2YWx1ZSA9IHJlcS5jb29raWVzW2hhc0l0ZW0ua2V5XVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGNvb2tpZXMgPSBnZXRDb29raWVQYXJzZXIocmVxLmhlYWRlcnMpKClcbiAgICAgICAgICB2YWx1ZSA9IGNvb2tpZXNbaGFzSXRlbS5rZXldXG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAncXVlcnknOiB7XG4gICAgICAgIHZhbHVlID0gcXVlcnlba2V5IV1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2hvc3QnOiB7XG4gICAgICAgIGNvbnN0IHsgaG9zdCB9ID0gcmVxPy5oZWFkZXJzIHx8IHt9XG4gICAgICAgIC8vIHJlbW92ZSBwb3J0IGZyb20gaG9zdCBpZiBwcmVzZW50XG4gICAgICAgIGNvbnN0IGhvc3RuYW1lID0gaG9zdD8uc3BsaXQoJzonLCAxKVswXS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIHZhbHVlID0gaG9zdG5hbWVcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWhhc0l0ZW0udmFsdWUgJiYgdmFsdWUpIHtcbiAgICAgIHBhcmFtc1tnZXRTYWZlUGFyYW1OYW1lKGtleSEpXSA9IHZhbHVlXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gZWxzZSBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IG1hdGNoZXIgPSBuZXcgUmVnRXhwKGBeJHtoYXNJdGVtLnZhbHVlfSRgKVxuICAgICAgY29uc3QgbWF0Y2hlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgID8gdmFsdWUuc2xpY2UoLTEpWzBdLm1hdGNoKG1hdGNoZXIpXG4gICAgICAgIDogdmFsdWUubWF0Y2gobWF0Y2hlcilcblxuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobWF0Y2hlcykpIHtcbiAgICAgICAgICBpZiAobWF0Y2hlcy5ncm91cHMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG1hdGNoZXMuZ3JvdXBzKS5mb3JFYWNoKChncm91cEtleSkgPT4ge1xuICAgICAgICAgICAgICBwYXJhbXNbZ3JvdXBLZXldID0gbWF0Y2hlcy5ncm91cHMhW2dyb3VwS2V5XVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0l0ZW0udHlwZSA9PT0gJ2hvc3QnICYmIG1hdGNoZXNbMF0pIHtcbiAgICAgICAgICAgIHBhcmFtcy5ob3N0ID0gbWF0Y2hlc1swXVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGFsbE1hdGNoID1cbiAgICBoYXMuZXZlcnkoKGl0ZW0pID0+IGhhc01hdGNoKGl0ZW0pKSAmJlxuICAgICFtaXNzaW5nLnNvbWUoKGl0ZW0pID0+IGhhc01hdGNoKGl0ZW0pKVxuXG4gIGlmIChhbGxNYXRjaCkge1xuICAgIHJldHVybiBwYXJhbXNcbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBpbGVOb25QYXRoKHZhbHVlOiBzdHJpbmcsIHBhcmFtczogUGFyYW1zKTogc3RyaW5nIHtcbiAgaWYgKCF2YWx1ZS5pbmNsdWRlcygnOicpKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKSB7XG4gICAgaWYgKHZhbHVlLmluY2x1ZGVzKGA6JHtrZXl9YCkpIHtcbiAgICAgIHZhbHVlID0gdmFsdWVcbiAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgbmV3IFJlZ0V4cChgOiR7a2V5fVxcXFwqYCwgJ2cnKSxcbiAgICAgICAgICBgOiR7a2V5fS0tRVNDQVBFRF9QQVJBTV9BU1RFUklTS1NgXG4gICAgICAgIClcbiAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgbmV3IFJlZ0V4cChgOiR7a2V5fVxcXFw/YCwgJ2cnKSxcbiAgICAgICAgICBgOiR7a2V5fS0tRVNDQVBFRF9QQVJBTV9RVUVTVElPTmBcbiAgICAgICAgKVxuICAgICAgICAucmVwbGFjZShuZXcgUmVnRXhwKGA6JHtrZXl9XFxcXCtgLCAnZycpLCBgOiR7a2V5fS0tRVNDQVBFRF9QQVJBTV9QTFVTYClcbiAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgbmV3IFJlZ0V4cChgOiR7a2V5fSg/IVxcXFx3KWAsICdnJyksXG4gICAgICAgICAgYC0tRVNDQVBFRF9QQVJBTV9DT0xPTiR7a2V5fWBcbiAgICAgICAgKVxuICAgIH1cbiAgfVxuICB2YWx1ZSA9IHZhbHVlXG4gICAgLnJlcGxhY2UoLyg6fFxcKnxcXD98XFwrfFxcKHxcXCl8XFx7fFxcfSkvZywgJ1xcXFwkMScpXG4gICAgLnJlcGxhY2UoLy0tRVNDQVBFRF9QQVJBTV9QTFVTL2csICcrJylcbiAgICAucmVwbGFjZSgvLS1FU0NBUEVEX1BBUkFNX0NPTE9OL2csICc6JylcbiAgICAucmVwbGFjZSgvLS1FU0NBUEVEX1BBUkFNX1FVRVNUSU9OL2csICc/JylcbiAgICAucmVwbGFjZSgvLS1FU0NBUEVEX1BBUkFNX0FTVEVSSVNLUy9nLCAnKicpXG5cbiAgLy8gdGhlIHZhbHVlIG5lZWRzIHRvIHN0YXJ0IHdpdGggYSBmb3J3YXJkLXNsYXNoIHRvIGJlIGNvbXBpbGVkXG4gIC8vIGNvcnJlY3RseVxuICByZXR1cm4gY29tcGlsZShgLyR7dmFsdWV9YCwgeyB2YWxpZGF0ZTogZmFsc2UgfSkocGFyYW1zKS5zbGljZSgxKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VEZXN0aW5hdGlvbihhcmdzOiB7XG4gIGRlc3RpbmF0aW9uOiBzdHJpbmdcbiAgcGFyYW1zOiBSZWFkb25seTxQYXJhbXM+XG4gIHF1ZXJ5OiBSZWFkb25seTxOZXh0UGFyc2VkVXJsUXVlcnk+XG59KSB7XG4gIGxldCBlc2NhcGVkID0gYXJncy5kZXN0aW5hdGlvblxuICBmb3IgKGNvbnN0IHBhcmFtIG9mIE9iamVjdC5rZXlzKHsgLi4uYXJncy5wYXJhbXMsIC4uLmFyZ3MucXVlcnkgfSkpIHtcbiAgICBpZiAoIXBhcmFtKSBjb250aW51ZVxuXG4gICAgZXNjYXBlZCA9IGVzY2FwZVNlZ21lbnQoZXNjYXBlZCwgcGFyYW0pXG4gIH1cblxuICBjb25zdCBwYXJzZWQgPSBwYXJzZVVybChlc2NhcGVkKVxuXG4gIGxldCBwYXRobmFtZSA9IHBhcnNlZC5wYXRobmFtZVxuICBpZiAocGF0aG5hbWUpIHtcbiAgICBwYXRobmFtZSA9IHVuZXNjYXBlU2VnbWVudHMocGF0aG5hbWUpXG4gIH1cblxuICBsZXQgaHJlZiA9IHBhcnNlZC5ocmVmXG4gIGlmIChocmVmKSB7XG4gICAgaHJlZiA9IHVuZXNjYXBlU2VnbWVudHMoaHJlZilcbiAgfVxuXG4gIGxldCBob3N0bmFtZSA9IHBhcnNlZC5ob3N0bmFtZVxuICBpZiAoaG9zdG5hbWUpIHtcbiAgICBob3N0bmFtZSA9IHVuZXNjYXBlU2VnbWVudHMoaG9zdG5hbWUpXG4gIH1cblxuICBsZXQgaGFzaCA9IHBhcnNlZC5oYXNoXG4gIGlmIChoYXNoKSB7XG4gICAgaGFzaCA9IHVuZXNjYXBlU2VnbWVudHMoaGFzaClcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucGFyc2VkLFxuICAgIHBhdGhuYW1lLFxuICAgIGhvc3RuYW1lLFxuICAgIGhyZWYsXG4gICAgaGFzaCxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZURlc3RpbmF0aW9uKGFyZ3M6IHtcbiAgYXBwZW5kUGFyYW1zVG9RdWVyeTogYm9vbGVhblxuICBkZXN0aW5hdGlvbjogc3RyaW5nXG4gIHBhcmFtczogUGFyYW1zXG4gIHF1ZXJ5OiBOZXh0UGFyc2VkVXJsUXVlcnlcbn0pIHtcbiAgY29uc3QgcGFyc2VkRGVzdGluYXRpb24gPSBwYXJzZURlc3RpbmF0aW9uKGFyZ3MpXG5cbiAgY29uc3QgeyBob3N0bmFtZTogZGVzdEhvc3RuYW1lLCBxdWVyeTogZGVzdFF1ZXJ5IH0gPSBwYXJzZWREZXN0aW5hdGlvblxuXG4gIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBhc3N1bWVzIHRoYXQgdGhlIHBhdGhuYW1lIGhlcmUgaW5jbHVkZXMgdGhlIGhhc2ggaWYgaXQnc1xuICAvLyBwcmVzZW50LlxuICBsZXQgZGVzdFBhdGggPSBwYXJzZWREZXN0aW5hdGlvbi5wYXRobmFtZVxuICBpZiAocGFyc2VkRGVzdGluYXRpb24uaGFzaCkge1xuICAgIGRlc3RQYXRoID0gYCR7ZGVzdFBhdGh9JHtwYXJzZWREZXN0aW5hdGlvbi5oYXNofWBcbiAgfVxuXG4gIGNvbnN0IGRlc3RQYXJhbXM6IChzdHJpbmcgfCBudW1iZXIpW10gPSBbXVxuXG4gIGNvbnN0IGRlc3RQYXRoUGFyYW1LZXlzOiBLZXlbXSA9IFtdXG4gIHBhdGhUb1JlZ2V4cChkZXN0UGF0aCwgZGVzdFBhdGhQYXJhbUtleXMpXG4gIGZvciAoY29uc3Qga2V5IG9mIGRlc3RQYXRoUGFyYW1LZXlzKSB7XG4gICAgZGVzdFBhcmFtcy5wdXNoKGtleS5uYW1lKVxuICB9XG5cbiAgaWYgKGRlc3RIb3N0bmFtZSkge1xuICAgIGNvbnN0IGRlc3RIb3N0bmFtZVBhcmFtS2V5czogS2V5W10gPSBbXVxuICAgIHBhdGhUb1JlZ2V4cChkZXN0SG9zdG5hbWUsIGRlc3RIb3N0bmFtZVBhcmFtS2V5cylcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBkZXN0SG9zdG5hbWVQYXJhbUtleXMpIHtcbiAgICAgIGRlc3RQYXJhbXMucHVzaChrZXkubmFtZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBkZXN0UGF0aENvbXBpbGVyID0gY29tcGlsZShcbiAgICBkZXN0UGF0aCxcbiAgICAvLyB3ZSBkb24ndCB2YWxpZGF0ZSB3aGlsZSBjb21waWxpbmcgdGhlIGRlc3RpbmF0aW9uIHNpbmNlIHdlIHNob3VsZFxuICAgIC8vIGhhdmUgYWxyZWFkeSB2YWxpZGF0ZWQgYmVmb3JlIHdlIGdvdCB0byB0aGlzIHBvaW50IGFuZCB2YWxpZGF0aW5nXG4gICAgLy8gYnJlYWtzIGNvbXBpbGluZyBkZXN0aW5hdGlvbnMgd2l0aCBuYW1lZCBwYXR0ZXJuIHBhcmFtcyBmcm9tIHRoZSBzb3VyY2VcbiAgICAvLyBlLmcuIC9zb21ldGhpbmc6aGVsbG8oLiopIC0+IC9hbm90aGVyLzpoZWxsbyBpcyBicm9rZW4gd2l0aCB2YWxpZGF0aW9uXG4gICAgLy8gc2luY2UgY29tcGlsZSB2YWxpZGF0aW9uIGlzIG1lYW50IGZvciByZXZlcnNpbmcgYW5kIG5vdCBmb3IgaW5zZXJ0aW5nXG4gICAgLy8gcGFyYW1zIGZyb20gYSBzZXBhcmF0ZSBwYXRoLXJlZ2V4IGludG8gYW5vdGhlclxuICAgIHsgdmFsaWRhdGU6IGZhbHNlIH1cbiAgKVxuXG4gIGxldCBkZXN0SG9zdG5hbWVDb21waWxlclxuICBpZiAoZGVzdEhvc3RuYW1lKSB7XG4gICAgZGVzdEhvc3RuYW1lQ29tcGlsZXIgPSBjb21waWxlKGRlc3RIb3N0bmFtZSwgeyB2YWxpZGF0ZTogZmFsc2UgfSlcbiAgfVxuXG4gIC8vIHVwZGF0ZSBhbnkgcGFyYW1zIGluIHF1ZXJ5IHZhbHVlc1xuICBmb3IgKGNvbnN0IFtrZXksIHN0ck9yQXJyYXldIG9mIE9iamVjdC5lbnRyaWVzKGRlc3RRdWVyeSkpIHtcbiAgICAvLyB0aGUgdmFsdWUgbmVlZHMgdG8gc3RhcnQgd2l0aCBhIGZvcndhcmQtc2xhc2ggdG8gYmUgY29tcGlsZWRcbiAgICAvLyBjb3JyZWN0bHlcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzdHJPckFycmF5KSkge1xuICAgICAgZGVzdFF1ZXJ5W2tleV0gPSBzdHJPckFycmF5Lm1hcCgodmFsdWUpID0+XG4gICAgICAgIGNvbXBpbGVOb25QYXRoKHVuZXNjYXBlU2VnbWVudHModmFsdWUpLCBhcmdzLnBhcmFtcylcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdHJPckFycmF5ID09PSAnc3RyaW5nJykge1xuICAgICAgZGVzdFF1ZXJ5W2tleV0gPSBjb21waWxlTm9uUGF0aCh1bmVzY2FwZVNlZ21lbnRzKHN0ck9yQXJyYXkpLCBhcmdzLnBhcmFtcylcbiAgICB9XG4gIH1cblxuICAvLyBhZGQgcGF0aCBwYXJhbXMgdG8gcXVlcnkgaWYgaXQncyBub3QgYSByZWRpcmVjdCBhbmQgbm90XG4gIC8vIGFscmVhZHkgZGVmaW5lZCBpbiBkZXN0aW5hdGlvbiBxdWVyeSBvciBwYXRoXG4gIGxldCBwYXJhbUtleXMgPSBPYmplY3Qua2V5cyhhcmdzLnBhcmFtcykuZmlsdGVyKFxuICAgIChuYW1lKSA9PiBuYW1lICE9PSAnbmV4dEludGVybmFsTG9jYWxlJ1xuICApXG5cbiAgaWYgKFxuICAgIGFyZ3MuYXBwZW5kUGFyYW1zVG9RdWVyeSAmJlxuICAgICFwYXJhbUtleXMuc29tZSgoa2V5KSA9PiBkZXN0UGFyYW1zLmluY2x1ZGVzKGtleSkpXG4gICkge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHBhcmFtS2V5cykge1xuICAgICAgaWYgKCEoa2V5IGluIGRlc3RRdWVyeSkpIHtcbiAgICAgICAgZGVzdFF1ZXJ5W2tleV0gPSBhcmdzLnBhcmFtc1trZXldXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IG5ld1VybFxuXG4gIC8vIFRoZSBjb21waWxlciBhbHNvIHRoYXQgdGhlIGludGVyY2VwdGlvbiByb3V0ZSBtYXJrZXIgaXMgYW4gdW5uYW1lZCBwYXJhbSwgaGVuY2UgJzAnLFxuICAvLyBzbyB3ZSBuZWVkIHRvIGFkZCBpdCB0byB0aGUgcGFyYW1zIG9iamVjdC5cbiAgaWYgKGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKGRlc3RQYXRoKSkge1xuICAgIGZvciAoY29uc3Qgc2VnbWVudCBvZiBkZXN0UGF0aC5zcGxpdCgnLycpKSB7XG4gICAgICBjb25zdCBtYXJrZXIgPSBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PlxuICAgICAgICBzZWdtZW50LnN0YXJ0c1dpdGgobSlcbiAgICAgIClcbiAgICAgIGlmIChtYXJrZXIpIHtcbiAgICAgICAgaWYgKG1hcmtlciA9PT0gJyguLikoLi4pJykge1xuICAgICAgICAgIGFyZ3MucGFyYW1zWycwJ10gPSAnKC4uKSdcbiAgICAgICAgICBhcmdzLnBhcmFtc1snMSddID0gJyguLiknXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXJncy5wYXJhbXNbJzAnXSA9IG1hcmtlclxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHJ5IHtcbiAgICBuZXdVcmwgPSBkZXN0UGF0aENvbXBpbGVyKGFyZ3MucGFyYW1zKVxuXG4gICAgY29uc3QgW3BhdGhuYW1lLCBoYXNoXSA9IG5ld1VybC5zcGxpdCgnIycsIDIpXG4gICAgaWYgKGRlc3RIb3N0bmFtZUNvbXBpbGVyKSB7XG4gICAgICBwYXJzZWREZXN0aW5hdGlvbi5ob3N0bmFtZSA9IGRlc3RIb3N0bmFtZUNvbXBpbGVyKGFyZ3MucGFyYW1zKVxuICAgIH1cbiAgICBwYXJzZWREZXN0aW5hdGlvbi5wYXRobmFtZSA9IHBhdGhuYW1lXG4gICAgcGFyc2VkRGVzdGluYXRpb24uaGFzaCA9IGAke2hhc2ggPyAnIycgOiAnJ30ke2hhc2ggfHwgJyd9YFxuICAgIGRlbGV0ZSAocGFyc2VkRGVzdGluYXRpb24gYXMgYW55KS5zZWFyY2hcbiAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICBpZiAoZXJyLm1lc3NhZ2UubWF0Y2goL0V4cGVjdGVkIC4qPyB0byBub3QgcmVwZWF0LCBidXQgZ290IGFuIGFycmF5LykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRvIHVzZSBhIG11bHRpLW1hdGNoIGluIHRoZSBkZXN0aW5hdGlvbiB5b3UgbXVzdCBhZGQgXFxgKlxcYCBhdCB0aGUgZW5kIG9mIHRoZSBwYXJhbSBuYW1lIHRvIHNpZ25pZnkgaXQgc2hvdWxkIHJlcGVhdC4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW52YWxpZC1tdWx0aS1tYXRjaGBcbiAgICAgIClcbiAgICB9XG4gICAgdGhyb3cgZXJyXG4gIH1cblxuICAvLyBRdWVyeSBtZXJnZSBvcmRlciBsb3dlc3QgcHJpb3JpdHkgdG8gaGlnaGVzdFxuICAvLyAxLiBpbml0aWFsIFVSTCBxdWVyeSB2YWx1ZXNcbiAgLy8gMi4gcGF0aCBzZWdtZW50IHZhbHVlc1xuICAvLyAzLiBkZXN0aW5hdGlvbiBzcGVjaWZpZWQgcXVlcnkgdmFsdWVzXG4gIHBhcnNlZERlc3RpbmF0aW9uLnF1ZXJ5ID0ge1xuICAgIC4uLmFyZ3MucXVlcnksXG4gICAgLi4ucGFyc2VkRGVzdGluYXRpb24ucXVlcnksXG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5ld1VybCxcbiAgICBkZXN0UXVlcnksXG4gICAgcGFyc2VkRGVzdGluYXRpb24sXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjb21waWxlTm9uUGF0aCIsIm1hdGNoSGFzIiwicGFyc2VEZXN0aW5hdGlvbiIsInByZXBhcmVEZXN0aW5hdGlvbiIsImdldFNhZmVQYXJhbU5hbWUiLCJwYXJhbU5hbWUiLCJuZXdQYXJhbU5hbWUiLCJpIiwibGVuZ3RoIiwiY2hhckNvZGUiLCJjaGFyQ29kZUF0IiwiZXNjYXBlU2VnbWVudCIsInN0ciIsInNlZ21lbnROYW1lIiwicmVwbGFjZSIsIlJlZ0V4cCIsImVzY2FwZVN0cmluZ1JlZ2V4cCIsInVuZXNjYXBlU2VnbWVudHMiLCJyZXEiLCJxdWVyeSIsImhhcyIsIm1pc3NpbmciLCJwYXJhbXMiLCJoYXNNYXRjaCIsImhhc0l0ZW0iLCJ2YWx1ZSIsImtleSIsInR5cGUiLCJ0b0xvd2VyQ2FzZSIsImhlYWRlcnMiLCJjb29raWVzIiwiZ2V0Q29va2llUGFyc2VyIiwiaG9zdCIsImhvc3RuYW1lIiwic3BsaXQiLCJtYXRjaGVyIiwibWF0Y2hlcyIsIkFycmF5IiwiaXNBcnJheSIsInNsaWNlIiwibWF0Y2giLCJncm91cHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImdyb3VwS2V5IiwiYWxsTWF0Y2giLCJldmVyeSIsIml0ZW0iLCJzb21lIiwiaW5jbHVkZXMiLCJjb21waWxlIiwidmFsaWRhdGUiLCJhcmdzIiwiZXNjYXBlZCIsImRlc3RpbmF0aW9uIiwicGFyYW0iLCJwYXJzZWQiLCJwYXJzZVVybCIsInBhdGhuYW1lIiwiaHJlZiIsImhhc2giLCJwYXJzZWREZXN0aW5hdGlvbiIsImRlc3RIb3N0bmFtZSIsImRlc3RRdWVyeSIsImRlc3RQYXRoIiwiZGVzdFBhcmFtcyIsImRlc3RQYXRoUGFyYW1LZXlzIiwicGF0aFRvUmVnZXhwIiwicHVzaCIsIm5hbWUiLCJkZXN0SG9zdG5hbWVQYXJhbUtleXMiLCJkZXN0UGF0aENvbXBpbGVyIiwiZGVzdEhvc3RuYW1lQ29tcGlsZXIiLCJzdHJPckFycmF5IiwiZW50cmllcyIsIm1hcCIsInBhcmFtS2V5cyIsImZpbHRlciIsImFwcGVuZFBhcmFtc1RvUXVlcnkiLCJuZXdVcmwiLCJpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCIsInNlZ21lbnQiLCJtYXJrZXIiLCJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsImZpbmQiLCJtIiwic3RhcnRzV2l0aCIsInNlYXJjaCIsImVyciIsIm1lc3NhZ2UiLCJFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/prepare-destination.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/querystring.js":
/*!***********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n for (const [key, value] of searchParams.entries()){\n const existing = query[key];\n if (typeof existing === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n query[key] = [\n existing,\n value\n ];\n }\n }\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string') {\n return param;\n }\n if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nfunction urlQueryToSearchParams(query) {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query)){\n if (Array.isArray(value)) {\n for (const item of value){\n searchParams.append(key, stringifyUrlQueryParam(item));\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value));\n }\n }\n return searchParams;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n for (const searchParams of searchParamsList){\n for (const key of searchParams.keys()){\n target.delete(key);\n }\n for (const [key, value] of searchParams.entries()){\n target.append(key, value);\n }\n }\n return target;\n} //# sourceMappingURL=querystring.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdEZ0JBLE1BQU07ZUFBTkE7O0lBOUNBQyxzQkFBc0I7ZUFBdEJBOztJQWdDQUMsc0JBQXNCO2VBQXRCQTs7O0FBaENULFNBQVNELHVCQUNkRSxZQUE2QjtJQUU3QixNQUFNQyxRQUF3QixDQUFDO0lBQy9CLEtBQUssTUFBTSxDQUFDQyxLQUFLQyxNQUFNLElBQUlILGFBQWFJLE9BQU8sR0FBSTtRQUNqRCxNQUFNQyxXQUFXSixLQUFLLENBQUNDLElBQUk7UUFDM0IsSUFBSSxPQUFPRyxhQUFhLGFBQWE7WUFDbkNKLEtBQUssQ0FBQ0MsSUFBSSxHQUFHQztRQUNmLE9BQU8sSUFBSUcsTUFBTUMsT0FBTyxDQUFDRixXQUFXO1lBQ2xDQSxTQUFTRyxJQUFJLENBQUNMO1FBQ2hCLE9BQU87WUFDTEYsS0FBSyxDQUFDQyxJQUFJLEdBQUc7Z0JBQUNHO2dCQUFVRjthQUFNO1FBQ2hDO0lBQ0Y7SUFDQSxPQUFPRjtBQUNUO0FBRUEsU0FBU1EsdUJBQXVCQyxLQUFjO0lBQzVDLElBQUksT0FBT0EsVUFBVSxVQUFVO1FBQzdCLE9BQU9BO0lBQ1Q7SUFFQSxJQUNHLE9BQU9BLFVBQVUsWUFBWSxDQUFDQyxNQUFNRCxVQUNyQyxPQUFPQSxVQUFVLFdBQ2pCO1FBQ0EsT0FBT0UsT0FBT0Y7SUFDaEIsT0FBTztRQUNMLE9BQU87SUFDVDtBQUNGO0FBRU8sU0FBU1gsdUJBQXVCRSxLQUFxQjtJQUMxRCxNQUFNRCxlQUFlLElBQUlhO0lBQ3pCLEtBQUssTUFBTSxDQUFDWCxLQUFLQyxNQUFNLElBQUlXLE9BQU9WLE9BQU8sQ0FBQ0gsT0FBUTtRQUNoRCxJQUFJSyxNQUFNQyxPQUFPLENBQUNKLFFBQVE7WUFDeEIsS0FBSyxNQUFNWSxRQUFRWixNQUFPO2dCQUN4QkgsYUFBYWdCLE1BQU0sQ0FBQ2QsS0FBS08sdUJBQXVCTTtZQUNsRDtRQUNGLE9BQU87WUFDTGYsYUFBYWlCLEdBQUcsQ0FBQ2YsS0FBS08sdUJBQXVCTjtRQUMvQztJQUNGO0lBQ0EsT0FBT0g7QUFDVDtBQUVPLFNBQVNILE9BQ2RxQixNQUF1QjtJQUN2QixpQ0FBR0MsbUJBQUg7UUFBR0EsZ0JBQUFBLENBQUgsMkJBQXNDOztJQUV0QyxLQUFLLE1BQU1uQixnQkFBZ0JtQixpQkFBa0I7UUFDM0MsS0FBSyxNQUFNakIsT0FBT0YsYUFBYW9CLElBQUksR0FBSTtZQUNyQ0YsT0FBT0csTUFBTSxDQUFDbkI7UUFDaEI7UUFFQSxLQUFLLE1BQU0sQ0FBQ0EsS0FBS0MsTUFBTSxJQUFJSCxhQUFhSSxPQUFPLEdBQUk7WUFDakRjLE9BQU9GLE1BQU0sQ0FBQ2QsS0FBS0M7UUFDckI7SUFDRjtJQUVBLE9BQU9lO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShcbiAgc2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXNcbik6IFBhcnNlZFVybFF1ZXJ5IHtcbiAgY29uc3QgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5ID0ge31cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2Ygc2VhcmNoUGFyYW1zLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gcXVlcnlba2V5XVxuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBxdWVyeVtrZXldID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpKSB7XG4gICAgICBleGlzdGluZy5wdXNoKHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBxdWVyeVtrZXldID0gW2V4aXN0aW5nLCB2YWx1ZV1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHF1ZXJ5XG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0ocGFyYW06IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHBhcmFtID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXJhbVxuICB9XG5cbiAgaWYgKFxuICAgICh0eXBlb2YgcGFyYW0gPT09ICdudW1iZXInICYmICFpc05hTihwYXJhbSkpIHx8XG4gICAgdHlwZW9mIHBhcmFtID09PSAnYm9vbGVhbidcbiAgKSB7XG4gICAgcmV0dXJuIFN0cmluZyhwYXJhbSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gJydcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhxdWVyeTogUGFyc2VkVXJsUXVlcnkpOiBVUkxTZWFyY2hQYXJhbXMge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocXVlcnkpKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0oaXRlbSkpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlYXJjaFBhcmFtcy5zZXQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHZhbHVlKSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNlYXJjaFBhcmFtc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduKFxuICB0YXJnZXQ6IFVSTFNlYXJjaFBhcmFtcyxcbiAgLi4uc2VhcmNoUGFyYW1zTGlzdDogVVJMU2VhcmNoUGFyYW1zW11cbik6IFVSTFNlYXJjaFBhcmFtcyB7XG4gIGZvciAoY29uc3Qgc2VhcmNoUGFyYW1zIG9mIHNlYXJjaFBhcmFtc0xpc3QpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBzZWFyY2hQYXJhbXMua2V5cygpKSB7XG4gICAgICB0YXJnZXQuZGVsZXRlKGtleSlcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBzZWFyY2hQYXJhbXMuZW50cmllcygpKSB7XG4gICAgICB0YXJnZXQuYXBwZW5kKGtleSwgdmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldFxufVxuIl0sIm5hbWVzIjpbImFzc2lnbiIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJrZXkiLCJ2YWx1ZSIsImVudHJpZXMiLCJleGlzdGluZyIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJzdHJpbmdpZnlVcmxRdWVyeVBhcmFtIiwicGFyYW0iLCJpc05hTiIsIlN0cmluZyIsIlVSTFNlYXJjaFBhcmFtcyIsIk9iamVjdCIsIml0ZW0iLCJhcHBlbmQiLCJzZXQiLCJ0YXJnZXQiLCJzZWFyY2hQYXJhbXNMaXN0Iiwia2V5cyIsImRlbGV0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js":
/*!******************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js ***!
\******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removePathPrefix\", ({\n enumerable: true,\n get: function() {\n return removePathPrefix;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction removePathPrefix(path, prefix) {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!(0, _pathhasprefix.pathHasPrefix)(path, prefix)) {\n return path;\n }\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith('/')) {\n return withoutPrefix;\n }\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return \"/\" + withoutPrefix;\n} //# sourceMappingURL=remove-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQVVnQkE7OztlQUFBQTs7OzJDQVZjO0FBVXZCLFNBQVNBLGlCQUFpQkMsSUFBWSxFQUFFQyxNQUFjO0lBQzNELHlFQUF5RTtJQUN6RSwwRUFBMEU7SUFDMUUsa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRixvQkFBb0I7SUFDcEIsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2Qix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLElBQUksQ0FBQ0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY0YsTUFBTUMsU0FBUztRQUNoQyxPQUFPRDtJQUNUO0lBRUEsK0NBQStDO0lBQy9DLE1BQU1HLGdCQUFnQkgsS0FBS0ksS0FBSyxDQUFDSCxPQUFPSSxNQUFNO0lBRTlDLDJFQUEyRTtJQUMzRSxJQUFJRixjQUFjRyxVQUFVLENBQUMsTUFBTTtRQUNqQyxPQUFPSDtJQUNUO0lBRUEsNEVBQTRFO0lBQzVFLG1EQUFtRDtJQUNuRCxPQUFRLE1BQUdBO0FBQ2IiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXBhdGgtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuL3BhdGgtaGFzLXByZWZpeCdcblxuLyoqXG4gKiBHaXZlbiBhIHBhdGggYW5kIGEgcHJlZml4IGl0IHdpbGwgcmVtb3ZlIHRoZSBwcmVmaXggd2hlbiBpdCBleGlzdHMgaW4gdGhlXG4gKiBnaXZlbiBwYXRoLiBJdCBlbnN1cmVzIGl0IG1hdGNoZXMgZXhhY3RseSB3aXRob3V0IGNvbnRhaW5pbmcgZXh0cmEgY2hhcnNcbiAqIGFuZCBpZiB0aGUgcHJlZml4IGlzIG5vdCB0aGVyZSBpdCB3aWxsIGJlIG5vb3AuXG4gKlxuICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gcmVtb3ZlIHRoZSBwcmVmaXggZnJvbS5cbiAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeCB0byBiZSByZW1vdmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUGF0aFByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gSWYgdGhlIHBhdGggZG9lc24ndCBzdGFydCB3aXRoIHRoZSBwcmVmaXggd2UgY2FuIHJldHVybiBpdCBhcyBpcy4gVGhpc1xuICAvLyBwcm90ZWN0cyB1cyBmcm9tIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHByZWZpeCBpcyBhIHN1YnN0cmluZyBvZiB0aGUgcGF0aFxuICAvLyBwcmVmaXggc3VjaCBhczpcbiAgLy9cbiAgLy8gRm9yIHByZWZpeDogL2Jsb2dcbiAgLy9cbiAgLy8gICAvYmxvZyAtPiB0cnVlXG4gIC8vICAgL2Jsb2cvIC0+IHRydWVcbiAgLy8gICAvYmxvZy8xIC0+IHRydWVcbiAgLy8gICAvYmxvZ2dpbmcgLT4gZmFsc2VcbiAgLy8gICAvYmxvZ2dpbmcvIC0+IGZhbHNlXG4gIC8vICAgL2Jsb2dnaW5nLzEgLT4gZmFsc2VcbiAgaWYgKCFwYXRoSGFzUHJlZml4KHBhdGgsIHByZWZpeCkpIHtcbiAgICByZXR1cm4gcGF0aFxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBwcmVmaXggZnJvbSB0aGUgcGF0aCB2aWEgc2xpY2luZy5cbiAgY29uc3Qgd2l0aG91dFByZWZpeCA9IHBhdGguc2xpY2UocHJlZml4Lmxlbmd0aClcblxuICAvLyBJZiB0aGUgcGF0aCB3aXRob3V0IHRoZSBwcmVmaXggc3RhcnRzIHdpdGggYSBgL2Agd2UgY2FuIHJldHVybiBpdCBhcyBpcy5cbiAgaWYgKHdpdGhvdXRQcmVmaXguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIHdpdGhvdXRQcmVmaXhcbiAgfVxuXG4gIC8vIElmIHRoZSBwYXRoIHdpdGhvdXQgdGhlIHByZWZpeCBkb2Vzbid0IHN0YXJ0IHdpdGggYSBgL2Agd2UgbmVlZCB0byBhZGQgaXRcbiAgLy8gYmFjayB0byB0aGUgcGF0aCB0byBtYWtlIHN1cmUgaXQncyBhIHZhbGlkIHBhdGguXG4gIHJldHVybiBgLyR7d2l0aG91dFByZWZpeH1gXG59XG4iXSwibmFtZXMiOlsicmVtb3ZlUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJwYXRoSGFzUHJlZml4Iiwid2l0aG91dFByZWZpeCIsInNsaWNlIiwibGVuZ3RoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js":
/*!*********************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js ***!
\*********************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n}));\nfunction removeTrailingSlash(route) {\n return route.replace(/\\/$/, '') || '/';\n} //# sourceMappingURL=remove-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0NBTUM7Ozs7dURBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUFvQkMsS0FBYTtJQUMvQyxPQUFPQSxNQUFNQyxPQUFPLENBQUMsT0FBTyxPQUFPO0FBQ3JDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIGZvciBhIGdpdmVuIHJvdXRlIG9yIHBhZ2UgcGF0aC4gUHJlc2VydmVzIHRoZVxuICogcm9vdCBwYWdlLiBFeGFtcGxlczpcbiAqICAgLSBgL2Zvby9iYXIvYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9mb28vYmFyYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9gIC0+IGAvYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiByb3V0ZS5yZXBsYWNlKC9cXC8kLywgJycpIHx8ICcvJ1xufVxuIl0sIm5hbWVzIjpbInJlbW92ZVRyYWlsaW5nU2xhc2giLCJyb3V0ZSIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***!
\*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRouteMatcher\", ({\n enumerable: true,\n get: function() {\n return getRouteMatcher;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils.js\");\nfunction getRouteMatcher(param) {\n let { re, groups } = param;\n return (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) return false;\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch (e) {\n throw Object.defineProperty(new _utils.DecodeError('failed to decode param'), \"__NEXT_ERROR_CODE\", {\n value: \"E528\",\n enumerable: false,\n configurable: true\n });\n }\n };\n const params = {};\n for (const [key, group] of Object.entries(groups)){\n const match = routeMatch[group.pos];\n if (match !== undefined) {\n if (group.repeat) {\n params[key] = match.split('/').map((entry)=>decode(entry));\n } else {\n params[key] = decode(match);\n }\n }\n }\n return params;\n };\n} //# sourceMappingURL=route-matcher.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXIuanMiLCJtYXBwaW5ncyI6Ijs7OzttREFlZ0JBOzs7ZUFBQUE7OzttQ0FkWTtBQWNyQixTQUFTQSxnQkFBZ0IsS0FHVjtJQUhVLE1BQzlCQyxFQUFFLEVBQ0ZDLE1BQU0sRUFDYyxHQUhVO0lBSTlCLE9BQU8sQ0FBQ0M7UUFDTixNQUFNQyxhQUFhSCxHQUFHSSxJQUFJLENBQUNGO1FBQzNCLElBQUksQ0FBQ0MsWUFBWSxPQUFPO1FBRXhCLE1BQU1FLFNBQVMsQ0FBQ0M7WUFDZCxJQUFJO2dCQUNGLE9BQU9DLG1CQUFtQkQ7WUFDNUIsRUFBRSxVQUFNO2dCQUNOLE1BQU0scUJBQXlDLENBQXpDLElBQUlFLE9BQUFBLFdBQVcsQ0FBQywyQkFBaEI7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBQXdDO1lBQ2hEO1FBQ0Y7UUFFQSxNQUFNQyxTQUFpQixDQUFDO1FBQ3hCLEtBQUssTUFBTSxDQUFDQyxLQUFLQyxNQUFNLElBQUlDLE9BQU9DLE9BQU8sQ0FBQ1osUUFBUztZQUNqRCxNQUFNYSxRQUFRWCxVQUFVLENBQUNRLE1BQU1JLEdBQUcsQ0FBQztZQUNuQyxJQUFJRCxVQUFVRSxXQUFXO2dCQUN2QixJQUFJTCxNQUFNTSxNQUFNLEVBQUU7b0JBQ2hCUixNQUFNLENBQUNDLElBQUksR0FBR0ksTUFBTUksS0FBSyxDQUFDLEtBQUtDLEdBQUcsQ0FBQyxDQUFDQyxRQUFVZixPQUFPZTtnQkFDdkQsT0FBTztvQkFDTFgsTUFBTSxDQUFDQyxJQUFJLEdBQUdMLE9BQU9TO2dCQUN2QjtZQUNGO1FBQ0Y7UUFFQSxPQUFPTDtJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdyb3VwIH0gZnJvbSAnLi9yb3V0ZS1yZWdleCdcbmltcG9ydCB7IERlY29kZUVycm9yIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZU1hdGNoRm4ge1xuICAocGF0aG5hbWU6IHN0cmluZyk6IGZhbHNlIHwgUGFyYW1zXG59XG5cbnR5cGUgUm91dGVNYXRjaGVyT3B0aW9ucyA9IHtcbiAgLy8gV2Ugb25seSB1c2UgdGhlIGV4ZWMgbWV0aG9kIG9mIHRoZSBSZWdFeHAgb2JqZWN0LiBUaGlzIGhlbHBzIHVzIGF2b2lkIHVzaW5nXG4gIC8vIHR5cGUgYXNzZXJ0aW9ucyB0aGF0IHRoZSBwYXNzZWQgaW4gcHJvcGVydGllcyBhcmUgb2YgdGhlIGNvcnJlY3QgdHlwZS5cbiAgcmU6IFBpY2s8UmVnRXhwLCAnZXhlYyc+XG4gIGdyb3VwczogUmVjb3JkPHN0cmluZywgR3JvdXA+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb3V0ZU1hdGNoZXIoe1xuICByZSxcbiAgZ3JvdXBzLFxufTogUm91dGVNYXRjaGVyT3B0aW9ucyk6IFJvdXRlTWF0Y2hGbiB7XG4gIHJldHVybiAocGF0aG5hbWU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJvdXRlTWF0Y2ggPSByZS5leGVjKHBhdGhuYW1lKVxuICAgIGlmICghcm91dGVNYXRjaCkgcmV0dXJuIGZhbHNlXG5cbiAgICBjb25zdCBkZWNvZGUgPSAocGFyYW06IHN0cmluZykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChwYXJhbSlcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0aHJvdyBuZXcgRGVjb2RlRXJyb3IoJ2ZhaWxlZCB0byBkZWNvZGUgcGFyYW0nKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtczogUGFyYW1zID0ge31cbiAgICBmb3IgKGNvbnN0IFtrZXksIGdyb3VwXSBvZiBPYmplY3QuZW50cmllcyhncm91cHMpKSB7XG4gICAgICBjb25zdCBtYXRjaCA9IHJvdXRlTWF0Y2hbZ3JvdXAucG9zXVxuICAgICAgaWYgKG1hdGNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGdyb3VwLnJlcGVhdCkge1xuICAgICAgICAgIHBhcmFtc1trZXldID0gbWF0Y2guc3BsaXQoJy8nKS5tYXAoKGVudHJ5KSA9PiBkZWNvZGUoZW50cnkpKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhcmFtc1trZXldID0gZGVjb2RlKG1hdGNoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtc1xuICB9XG59XG4iXSwibmFtZXMiOlsiZ2V0Um91dGVNYXRjaGVyIiwicmUiLCJncm91cHMiLCJwYXRobmFtZSIsInJvdXRlTWF0Y2giLCJleGVjIiwiZGVjb2RlIiwicGFyYW0iLCJkZWNvZGVVUklDb21wb25lbnQiLCJEZWNvZGVFcnJvciIsInBhcmFtcyIsImtleSIsImdyb3VwIiwiT2JqZWN0IiwiZW50cmllcyIsIm1hdGNoIiwicG9zIiwidW5kZWZpbmVkIiwicmVwZWF0Iiwic3BsaXQiLCJtYXAiLCJlbnRyeSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js":
/*!***********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getNamedMiddlewareRegex: function() {\n return getNamedMiddlewareRegex;\n },\n getNamedRouteRegex: function() {\n return getNamedRouteRegex;\n },\n getRouteRegex: function() {\n return getRouteRegex;\n },\n parseParameter: function() {\n return parseParameter;\n }\n});\nconst _constants = __webpack_require__(/*! ../../../../lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\nconst _interceptionroutes = __webpack_require__(/*! ./interception-routes */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _escaperegexp = __webpack_require__(/*! ../../escape-regexp */ \"(rsc)/./node_modules/next/dist/shared/lib/escape-regexp.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(rsc)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\n/**\n * Regular expression pattern used to match route parameters.\n * Matches both single parameters and parameter groups.\n * Examples:\n * - `[[...slug]]` matches parameter group with key 'slug', repeat: true, optional: true\n * - `[...slug]` matches parameter group with key 'slug', repeat: true, optional: false\n * - `[[foo]]` matches parameter with key 'foo', repeat: false, optional: true\n * - `[bar]` matches parameter with key 'bar', repeat: false, optional: false\n */ const PARAMETER_PATTERN = /^([^[]*)\\[((?:\\[[^\\]]*\\])|[^\\]]+)\\](.*)$/;\nfunction parseParameter(param) {\n const match = param.match(PARAMETER_PATTERN);\n if (!match) {\n return parseMatchedParameter(param);\n }\n return parseMatchedParameter(match[2]);\n}\n/**\n * Parses a matched parameter from the PARAMETER_PATTERN regex to a data structure that can be used\n * to generate the parametrized route.\n * Examples:\n * - `[...slug]` -> `{ key: 'slug', repeat: true, optional: true }`\n * - `...slug` -> `{ key: 'slug', repeat: true, optional: false }`\n * - `[foo]` -> `{ key: 'foo', repeat: false, optional: true }`\n * - `bar` -> `{ key: 'bar', repeat: false, optional: false }`\n * @param param - The matched parameter to parse.\n * @returns The parsed parameter as a data structure.\n */ function parseMatchedParameter(param) {\n const optional = param.startsWith('[') && param.endsWith(']');\n if (optional) {\n param = param.slice(1, -1);\n }\n const repeat = param.startsWith('...');\n if (repeat) {\n param = param.slice(3);\n }\n return {\n key: param,\n repeat,\n optional\n };\n}\nfunction getParametrizedRoute(route, includeSuffix, includePrefix) {\n const groups = {};\n let groupIndex = 1;\n const segments = [];\n for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){\n const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n const paramMatches = segment.match(PARAMETER_PATTERN) // Check for parameters\n ;\n if (markerMatch && paramMatches && paramMatches[2]) {\n const { key, optional, repeat } = parseMatchedParameter(paramMatches[2]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + \"([^/]+?)\");\n } else if (paramMatches && paramMatches[2]) {\n const { key, repeat, optional } = parseMatchedParameter(paramMatches[2]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n if (includePrefix && paramMatches[1]) {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1]));\n }\n let s = repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)';\n // Remove the leading slash if includePrefix already added it.\n if (includePrefix && paramMatches[1]) {\n s = s.substring(1);\n }\n segments.push(s);\n } else {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(segment));\n }\n // If there's a suffix, add it to the segments if it's enabled.\n if (includeSuffix && paramMatches && paramMatches[3]) {\n segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3]));\n }\n }\n return {\n parameterizedRoute: segments.join(''),\n groups\n };\n}\nfunction getRouteRegex(normalizedRoute, param) {\n let { includeSuffix = false, includePrefix = false, excludeOptionalTrailingSlash = false } = param === void 0 ? {} : param;\n const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute, includeSuffix, includePrefix);\n let re = parameterizedRoute;\n if (!excludeOptionalTrailingSlash) {\n re += '(?:/)?';\n }\n return {\n re: new RegExp(\"^\" + re + \"$\"),\n groups: groups\n };\n}\n/**\n * Builds a function to generate a minimal routeKey using only a-z and minimal\n * number of characters.\n */ function buildGetSafeRouteKey() {\n let i = 0;\n return ()=>{\n let routeKey = '';\n let j = ++i;\n while(j > 0){\n routeKey += String.fromCharCode(97 + (j - 1) % 26);\n j = Math.floor((j - 1) / 26);\n }\n return routeKey;\n };\n}\nfunction getSafeKeyFromSegment(param) {\n let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix, backreferenceDuplicateKeys } = param;\n const { key, optional, repeat } = parseMatchedParameter(segment);\n // replace any non-word characters since they can break\n // the named regex\n let cleanedKey = key.replace(/\\W/g, '');\n if (keyPrefix) {\n cleanedKey = \"\" + keyPrefix + cleanedKey;\n }\n let invalidKey = false;\n // check if the key is still invalid and fallback to using a known\n // safe key\n if (cleanedKey.length === 0 || cleanedKey.length > 30) {\n invalidKey = true;\n }\n if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) {\n invalidKey = true;\n }\n if (invalidKey) {\n cleanedKey = getSafeRouteKey();\n }\n const duplicateKey = cleanedKey in routeKeys;\n if (keyPrefix) {\n routeKeys[cleanedKey] = \"\" + keyPrefix + key;\n } else {\n routeKeys[cleanedKey] = key;\n }\n // if the segment has an interception marker, make sure that's part of the regex pattern\n // this is to ensure that the route with the interception marker doesn't incorrectly match\n // the non-intercepted route (ie /app/(.)[username] should not match /app/[username])\n const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : '';\n let pattern;\n if (duplicateKey && backreferenceDuplicateKeys) {\n // Use a backreference to the key to ensure that the key is the same value\n // in each of the placeholders.\n pattern = \"\\\\k<\" + cleanedKey + \">\";\n } else if (repeat) {\n pattern = \"(?<\" + cleanedKey + \">.+?)\";\n } else {\n pattern = \"(?<\" + cleanedKey + \">[^/]+?)\";\n }\n return optional ? \"(?:/\" + interceptionPrefix + pattern + \")?\" : \"/\" + interceptionPrefix + pattern;\n}\nfunction getNamedParametrizedRoute(route, prefixRouteKeys, includeSuffix, includePrefix, backreferenceDuplicateKeys) {\n const getSafeRouteKey = buildGetSafeRouteKey();\n const routeKeys = {};\n const segments = [];\n for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){\n const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m));\n const paramMatches = segment.match(PARAMETER_PATTERN) // Check for parameters\n ;\n if (hasInterceptionMarker && paramMatches && paramMatches[2]) {\n // If there's an interception marker, add it to the segments.\n segments.push(getSafeKeyFromSegment({\n getSafeRouteKey,\n interceptionMarker: paramMatches[1],\n segment: paramMatches[2],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined,\n backreferenceDuplicateKeys\n }));\n } else if (paramMatches && paramMatches[2]) {\n // If there's a prefix, add it to the segments if it's enabled.\n if (includePrefix && paramMatches[1]) {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(paramMatches[1]));\n }\n let s = getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[2],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined,\n backreferenceDuplicateKeys\n });\n // Remove the leading slash if includePrefix already added it.\n if (includePrefix && paramMatches[1]) {\n s = s.substring(1);\n }\n segments.push(s);\n } else {\n segments.push(\"/\" + (0, _escaperegexp.escapeStringRegexp)(segment));\n }\n // If there's a suffix, add it to the segments if it's enabled.\n if (includeSuffix && paramMatches && paramMatches[3]) {\n segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3]));\n }\n }\n return {\n namedParameterizedRoute: segments.join(''),\n routeKeys\n };\n}\nfunction getNamedRouteRegex(normalizedRoute, options) {\n var _options_includeSuffix, _options_includePrefix, _options_backreferenceDuplicateKeys;\n const result = getNamedParametrizedRoute(normalizedRoute, options.prefixRouteKeys, (_options_includeSuffix = options.includeSuffix) != null ? _options_includeSuffix : false, (_options_includePrefix = options.includePrefix) != null ? _options_includePrefix : false, (_options_backreferenceDuplicateKeys = options.backreferenceDuplicateKeys) != null ? _options_backreferenceDuplicateKeys : false);\n let namedRegex = result.namedParameterizedRoute;\n if (!options.excludeOptionalTrailingSlash) {\n namedRegex += '(?:/)?';\n }\n return {\n ...getRouteRegex(normalizedRoute, options),\n namedRegex: \"^\" + namedRegex + \"$\",\n routeKeys: result.routeKeys\n };\n}\nfunction getNamedMiddlewareRegex(normalizedRoute, options) {\n const { parameterizedRoute } = getParametrizedRoute(normalizedRoute, false, false);\n const { catchAll = true } = options;\n if (parameterizedRoute === '/') {\n let catchAllRegex = catchAll ? '.*' : '';\n return {\n namedRegex: \"^/\" + catchAllRegex + \"$\"\n };\n }\n const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false, false, false, false);\n let catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : '';\n return {\n namedRegex: \"^\" + namedParameterizedRoute + catchAllGroupedRegex + \"$\"\n };\n} //# sourceMappingURL=route-regex.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXdaZ0JBLHVCQUF1QjtlQUF2QkE7O0lBNUJBQyxrQkFBa0I7ZUFBbEJBOztJQTdMQUMsYUFBYTtlQUFiQTs7SUF6RkFDLGNBQWM7ZUFBZEE7Ozt1Q0FuR1Q7Z0RBQ29DOzBDQUNSO2lEQUNDO0FBeUVwQzs7Ozs7Ozs7Q0FRQyxHQUNELE1BQU1DLG9CQUFvQjtBQWNuQixTQUFTRCxlQUFlRSxLQUFhO0lBQzFDLE1BQU1DLFFBQVFELE1BQU1DLEtBQUssQ0FBQ0Y7SUFFMUIsSUFBSSxDQUFDRSxPQUFPO1FBQ1YsT0FBT0Msc0JBQXNCRjtJQUMvQjtJQUVBLE9BQU9FLHNCQUFzQkQsS0FBSyxDQUFDLEVBQUU7QUFDdkM7QUFFQTs7Ozs7Ozs7OztDQVVDLEdBQ0QsU0FBU0Msc0JBQXNCRixLQUFhO0lBQzFDLE1BQU1HLFdBQVdILE1BQU1JLFVBQVUsQ0FBQyxRQUFRSixNQUFNSyxRQUFRLENBQUM7SUFDekQsSUFBSUYsVUFBVTtRQUNaSCxRQUFRQSxNQUFNTSxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQzFCO0lBQ0EsTUFBTUMsU0FBU1AsTUFBTUksVUFBVSxDQUFDO0lBQ2hDLElBQUlHLFFBQVE7UUFDVlAsUUFBUUEsTUFBTU0sS0FBSyxDQUFDO0lBQ3RCO0lBQ0EsT0FBTztRQUFFRSxLQUFLUjtRQUFPTztRQUFRSjtJQUFTO0FBQ3hDO0FBRUEsU0FBU00scUJBQ1BDLEtBQWEsRUFDYkMsYUFBc0IsRUFDdEJDLGFBQXNCO0lBRXRCLE1BQU1DLFNBQXlDLENBQUM7SUFDaEQsSUFBSUMsYUFBYTtJQUVqQixNQUFNQyxXQUFxQixFQUFFO0lBQzdCLEtBQUssTUFBTUMsV0FBV0MsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQlAsT0FBT0osS0FBSyxDQUFDLEdBQUdZLEtBQUssQ0FBQyxLQUFN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QUFXLElBQUksRUFBRSxHQUFHSDtJQUM1QixJQUFJckMsdUJBQXVCLEtBQUs7UUFDOUIsSUFBSXlDLGdCQUFnQkQsV0FBVyxPQUFPO1FBQ3RDLE9BQU87WUFDTEQsWUFBYSxPQUFJRSxnQkFBYztRQUNqQztJQUNGO0lBRUEsTUFBTSxFQUFFTCx1QkFBdUIsRUFBRSxHQUFHUCwwQkFDbEMzQixpQkFDQSxPQUNBLE9BQ0EsT0FDQTtJQUVGLElBQUl3Qyx1QkFBdUJGLFdBQVcsZUFBZTtJQUNyRCxPQUFPO1FBQ0xELFlBQWEsTUFBR0gsMEJBQTBCTSx1QkFBcUI7SUFDakU7QUFDRiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1yZWdleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYLFxuICBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2NvbnN0YW50cydcbmltcG9ydCB7IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTIH0gZnJvbSAnLi9pbnRlcmNlcHRpb24tcm91dGVzJ1xuaW1wb3J0IHsgZXNjYXBlU3RyaW5nUmVnZXhwIH0gZnJvbSAnLi4vLi4vZXNjYXBlLXJlZ2V4cCdcbmltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tICcuL3JlbW92ZS10cmFpbGluZy1zbGFzaCdcblxuZXhwb3J0IGludGVyZmFjZSBHcm91cCB7XG4gIHBvczogbnVtYmVyXG4gIHJlcGVhdDogYm9vbGVhblxuICBvcHRpb25hbDogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlUmVnZXgge1xuICBncm91cHM6IHsgW2dyb3VwTmFtZTogc3RyaW5nXTogR3JvdXAgfVxuICByZTogUmVnRXhwXG59XG5cbnR5cGUgR2V0TmFtZWRSb3V0ZVJlZ2V4T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcHJlZml4IHRoZSByb3V0ZSBrZXlzIHdpdGggdGhlIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVhcbiAgICogb3IgTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVguIFRoaXMgaXMgb25seSByZWxldmFudCB3aGVuIGNyZWF0aW5nIHRoZVxuICAgKiByb3V0ZXMtbWFuaWZlc3QgZHVyaW5nIHRoZSBidWlsZC5cbiAgICovXG4gIHByZWZpeFJvdXRlS2V5czogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIHN1ZmZpeCBpbiB0aGUgcm91dGUgcmVnZXguIFRoaXMgbWVhbnMgdGhhdCB3aGVuIHlvdVxuICAgKiBoYXZlIHNvbWV0aGluZyBsaWtlIGAvWy4uLnNsdWddLmpzb25gIHRoZSBgLmpzb25gIHBhcnQgd2lsbCBiZSBpbmNsdWRlZFxuICAgKiBpbiB0aGUgcmVnZXgsIHlpZWxkaW5nIGAvKC4qKS5qc29uYCBhcyB0aGUgcmVnZXguXG4gICAqL1xuICBpbmNsdWRlU3VmZml4PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIHByZWZpeCBpbiB0aGUgcm91dGUgcmVnZXguIFRoaXMgbWVhbnMgdGhhdCB3aGVuIHlvdVxuICAgKiBoYXZlIHNvbWV0aGluZyBsaWtlIGAvWy4uLnNsdWddLmpzb25gIHRoZSBgL2AgcGFydCB3aWxsIGJlIGluY2x1ZGVkXG4gICAqIGluIHRoZSByZWdleCwgeWllbGRpbmcgYF4vKC4qKS5qc29uJGAgYXMgdGhlIHJlZ2V4LlxuICAgKlxuICAgKiBOb3RlIHRoYXQgaW50ZXJjZXB0aW9uIG1hcmtlcnMgd2lsbCBhbHJlYWR5IGJlIGluY2x1ZGVkIHdpdGhvdXQgdGhlIG5lZWRcbiAgICovXG4gIGluY2x1ZGVQcmVmaXg/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZXhjbHVkZSB0aGUgb3B0aW9uYWwgdHJhaWxpbmcgc2xhc2ggZnJvbSB0aGUgcm91dGUgcmVnZXguXG4gICAqL1xuICBleGNsdWRlT3B0aW9uYWxUcmFpbGluZ1NsYXNoPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGJhY2t0cmFjayBkdXBsaWNhdGUga2V5cy4gVGhpcyBpcyBvbmx5IHJlbGV2YW50IHdoZW4gY3JlYXRpbmdcbiAgICogdGhlIHJvdXRlcy1tYW5pZmVzdCBkdXJpbmcgdGhlIGJ1aWxkLlxuICAgKi9cbiAgYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXM/OiBib29sZWFuXG59XG5cbnR5cGUgR2V0Um91dGVSZWdleE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgZXh0cmEgcGFydHMgaW4gdGhlIHJvdXRlIHJlZ2V4LiBUaGlzIG1lYW5zIHRoYXQgd2hlbiB5b3VcbiAgICogaGF2ZSBzb21ldGhpbmcgbGlrZSBgL1suLi5zbHVnXS5qc29uYCB0aGUgYC5qc29uYCBwYXJ0IHdpbGwgYmUgaW5jbHVkZWRcbiAgICogaW4gdGhlIHJlZ2V4LCB5aWVsZGluZyBgLyguKikuanNvbmAgYXMgdGhlIHJlZ2V4LlxuICAgKi9cbiAgaW5jbHVkZVN1ZmZpeD86IGJvb2xlYW5cblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBwcmVmaXggaW4gdGhlIHJvdXRlIHJlZ2V4LiBUaGlzIG1lYW5zIHRoYXQgd2hlbiB5b3VcbiAgICogaGF2ZSBzb21ldGhpbmcgbGlrZSBgL1suLi5zbHVnXS5qc29uYCB0aGUgYC9gIHBhcnQgd2lsbCBiZSBpbmNsdWRlZFxuICAgKiBpbiB0aGUgcmVnZXgsIHlpZWxkaW5nIGBeLyguKikuanNvbiRgIGFzIHRoZSByZWdleC5cbiAgICpcbiAgICogTm90ZSB0aGF0IGludGVyY2VwdGlvbiBtYXJrZXJzIHdpbGwgYWxyZWFkeSBiZSBpbmNsdWRlZCB3aXRob3V0IHRoZSBuZWVkXG4gICAqIG9mIGFkZGluZyB0aGlzIG9wdGlvbi5cbiAgICovXG4gIGluY2x1ZGVQcmVmaXg/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZXhjbHVkZSB0aGUgb3B0aW9uYWwgdHJhaWxpbmcgc2xhc2ggZnJvbSB0aGUgcm91dGUgcmVnZXguXG4gICAqL1xuICBleGNsdWRlT3B0aW9uYWxUcmFpbGluZ1NsYXNoPzogYm9vbGVhblxufVxuXG4vKipcbiAqIFJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIHVzZWQgdG8gbWF0Y2ggcm91dGUgcGFyYW1ldGVycy5cbiAqIE1hdGNoZXMgYm90aCBzaW5nbGUgcGFyYW1ldGVycyBhbmQgcGFyYW1ldGVyIGdyb3Vwcy5cbiAqIEV4YW1wbGVzOlxuICogICAtIGBbWy4uLnNsdWddXWAgbWF0Y2hlcyBwYXJhbWV0ZXIgZ3JvdXAgd2l0aCBrZXkgJ3NsdWcnLCByZXBlYXQ6IHRydWUsIG9wdGlvbmFsOiB0cnVlXG4gKiAgIC0gYFsuLi5zbHVnXWAgbWF0Y2hlcyBwYXJhbWV0ZXIgZ3JvdXAgd2l0aCBrZXkgJ3NsdWcnLCByZXBlYXQ6IHRydWUsIG9wdGlvbmFsOiBmYWxzZVxuICogICAtIGBbW2Zvb11dYCBtYXRjaGVzIHBhcmFtZXRlciB3aXRoIGtleSAnZm9vJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IHRydWVcbiAqICAgLSBgW2Jhcl1gIG1hdGNoZXMgcGFyYW1ldGVyIHdpdGgga2V5ICdiYXInLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogZmFsc2VcbiAqL1xuY29uc3QgUEFSQU1FVEVSX1BBVFRFUk4gPSAvXihbXltdKilcXFsoKD86XFxbW15cXF1dKlxcXSl8W15cXF1dKylcXF0oLiopJC9cblxuLyoqXG4gKiBQYXJzZXMgYSBnaXZlbiBwYXJhbWV0ZXIgZnJvbSBhIHJvdXRlIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjYW4gYmUgdXNlZFxuICogdG8gZ2VuZXJhdGUgdGhlIHBhcmFtZXRyaXplZCByb3V0ZS5cbiAqIEV4YW1wbGVzOlxuICogICAtIGBbWy4uLnNsdWddXWAgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfWBcbiAqICAgLSBgWy4uLnNsdWddYCAtPiBgeyBrZXk6ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogZmFsc2UgfWBcbiAqICAgLSBgW1tmb29dXWAgLT4gYHsga2V5OiAnZm9vJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IHRydWUgfWBcbiAqICAgLSBgW2Jhcl1gIC0+IGB7IGtleTogJ2JhcicsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICogICAtIGBmaXp6YCAtPiBgeyBrZXk6ICdmaXp6JywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiBAcGFyYW0gcGFyYW0gLSBUaGUgcGFyYW1ldGVyIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBwYXJhbWV0ZXIgYXMgYSBkYXRhIHN0cnVjdHVyZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGFyYW1ldGVyKHBhcmFtOiBzdHJpbmcpIHtcbiAgY29uc3QgbWF0Y2ggPSBwYXJhbS5tYXRjaChQQVJBTUVURVJfUEFUVEVSTilcblxuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihwYXJhbSlcbiAgfVxuXG4gIHJldHVybiBwYXJzZU1hdGNoZWRQYXJhbWV0ZXIobWF0Y2hbMl0pXG59XG5cbi8qKlxuICogUGFyc2VzIGEgbWF0Y2hlZCBwYXJhbWV0ZXIgZnJvbSB0aGUgUEFSQU1FVEVSX1BBVFRFUk4gcmVnZXggdG8gYSBkYXRhIHN0cnVjdHVyZSB0aGF0IGNhbiBiZSB1c2VkXG4gKiB0byBnZW5lcmF0ZSB0aGUgcGFyYW1ldHJpemVkIHJvdXRlLlxuICogRXhhbXBsZXM6XG4gKiAgIC0gYFsuLi5zbHVnXWAgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfWBcbiAqICAgLSBgLi4uc2x1Z2AgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiAgIC0gYFtmb29dYCAtPiBgeyBrZXk6ICdmb28nLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSB9YFxuICogICAtIGBiYXJgIC0+IGB7IGtleTogJ2JhcicsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICogQHBhcmFtIHBhcmFtIC0gVGhlIG1hdGNoZWQgcGFyYW1ldGVyIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBwYXJhbWV0ZXIgYXMgYSBkYXRhIHN0cnVjdHVyZS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKHBhcmFtOiBzdHJpbmcpIHtcbiAgY29uc3Qgb3B0aW9uYWwgPSBwYXJhbS5zdGFydHNXaXRoKCdbJykgJiYgcGFyYW0uZW5kc1dpdGgoJ10nKVxuICBpZiAob3B0aW9uYWwpIHtcbiAgICBwYXJhbSA9IHBhcmFtLnNsaWNlKDEsIC0xKVxuICB9XG4gIGNvbnN0IHJlcGVhdCA9IHBhcmFtLnN0YXJ0c1dpdGgoJy4uLicpXG4gIGlmIChyZXBlYXQpIHtcbiAgICBwYXJhbSA9IHBhcmFtLnNsaWNlKDMpXG4gIH1cbiAgcmV0dXJuIHsga2V5OiBwYXJhbSwgcmVwZWF0LCBvcHRpb25hbCB9XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtZXRyaXplZFJvdXRlKFxuICByb3V0ZTogc3RyaW5nLFxuICBpbmNsdWRlU3VmZml4OiBib29sZWFuLFxuICBpbmNsdWRlUHJlZml4OiBib29sZWFuXG4pIHtcbiAgY29uc3QgZ3JvdXBzOiB7IFtncm91cE5hbWU6IHN0cmluZ106IEdyb3VwIH0gPSB7fVxuICBsZXQgZ3JvdXBJbmRleCA9IDFcblxuICBjb25zdCBzZWdtZW50czogc3RyaW5nW10gPSBbXVxuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZSkuc2xpY2UoMSkuc3BsaXQoJy8nKSkge1xuICAgIGNvbnN0IG1hcmtlck1hdGNoID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSkgPT5cbiAgICAgIHNlZ21lbnQuc3RhcnRzV2l0aChtKVxuICAgIClcbiAgICBjb25zdCBwYXJhbU1hdGNoZXMgPSBzZWdtZW50Lm1hdGNoKFBBUkFNRVRFUl9QQVRURVJOKSAvLyBDaGVjayBmb3IgcGFyYW1ldGVyc1xuXG4gICAgaWYgKG1hcmtlck1hdGNoICYmIHBhcmFtTWF0Y2hlcyAmJiBwYXJhbU1hdGNoZXNbMl0pIHtcbiAgICAgIGNvbnN0IHsga2V5LCBvcHRpb25hbCwgcmVwZWF0IH0gPSBwYXJzZU1hdGNoZWRQYXJhbWV0ZXIocGFyYW1NYXRjaGVzWzJdKVxuICAgICAgZ3JvdXBzW2tleV0gPSB7IHBvczogZ3JvdXBJbmRleCsrLCByZXBlYXQsIG9wdGlvbmFsIH1cbiAgICAgIHNlZ21lbnRzLnB1c2goYC8ke2VzY2FwZVN0cmluZ1JlZ2V4cChtYXJrZXJNYXRjaCl9KFteL10rPylgKVxuICAgIH0gZWxzZSBpZiAocGFyYW1NYXRjaGVzICYmIHBhcmFtTWF0Y2hlc1syXSkge1xuICAgICAgY29uc3QgeyBrZXksIHJlcGVhdCwgb3B0aW9uYWwgfSA9IHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihwYXJhbU1hdGNoZXNbMl0pXG4gICAgICBncm91cHNba2V5XSA9IHsgcG9zOiBncm91cEluZGV4KyssIHJlcGVhdCwgb3B0aW9uYWwgfVxuXG4gICAgICBpZiAoaW5jbHVkZVByZWZpeCAmJiBwYXJhbU1hdGNoZXNbMV0pIHtcbiAgICAgICAgc2VnbWVudHMucHVzaChgLyR7ZXNjYXBlU3RyaW5nUmVnZXhwKHBhcmFtTWF0Y2hlc1sxXSl9YClcbiAgICAgIH1cblxuICAgICAgbGV0IHMgPSByZXBlYXQgPyAob3B0aW9uYWwgPyAnKD86LyguKz8pKT8nIDogJy8oLis/KScpIDogJy8oW14vXSs/KSdcblxuICAgICAgLy8gUmVtb3ZlIHRoZSBsZWFkaW5nIHNsYXNoIGlmIGluY2x1ZGVQcmVmaXggYWxyZWFkeSBhZGRlZCBpdC5cbiAgICAgIGlmIChpbmNsdWRlUHJlZml4ICYmIHBhcmFtTWF0Y2hlc1sxXSkge1xuICAgICAgICBzID0gcy5zdWJzdHJpbmcoMSlcbiAgICAgIH1cblxuICAgICAgc2VnbWVudHMucHVzaChzKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZWdtZW50cy5wdXNoKGAvJHtlc2NhcGVTdHJpbmdSZWdleHAoc2VnbWVudCl9YClcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSdzIGEgc3VmZml4LCBhZGQgaXQgdG8gdGhlIHNlZ21lbnRzIGlmIGl0J3MgZW5hYmxlZC5cbiAgICBpZiAoaW5jbHVkZVN1ZmZpeCAmJiBwYXJhbU1hdGNoZXMgJiYgcGFyYW1NYXRjaGVzWzNdKSB7XG4gICAgICBzZWdtZW50cy5wdXNoKGVzY2FwZVN0cmluZ1JlZ2V4cChwYXJhbU1hdGNoZXNbM10pKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcGFyYW1ldGVyaXplZFJvdXRlOiBzZWdtZW50cy5qb2luKCcnKSxcbiAgICBncm91cHMsXG4gIH1cbn1cblxuLyoqXG4gKiBGcm9tIGEgbm9ybWFsaXplZCByb3V0ZSB0aGlzIGZ1bmN0aW9uIGdlbmVyYXRlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmRcbiAqIGEgY29ycmVzcG9uZGluZyBncm91cHMgb2JqZWN0IGludGVuZGVkIHRvIGJlIHVzZWQgdG8gc3RvcmUgbWF0Y2hpbmcgZ3JvdXBzXG4gKiBmcm9tIHRoZSByZWd1bGFyIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb3V0ZVJlZ2V4KFxuICBub3JtYWxpemVkUm91dGU6IHN0cmluZyxcbiAge1xuICAgIGluY2x1ZGVTdWZmaXggPSBmYWxzZSxcbiAgICBpbmNsdWRlUHJlZml4ID0gZmFsc2UsXG4gICAgZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaCA9IGZhbHNlLFxuICB9OiBHZXRSb3V0ZVJlZ2V4T3B0aW9ucyA9IHt9XG4pOiBSb3V0ZVJlZ2V4IHtcbiAgY29uc3QgeyBwYXJhbWV0ZXJpemVkUm91dGUsIGdyb3VwcyB9ID0gZ2V0UGFyYW1ldHJpemVkUm91dGUoXG4gICAgbm9ybWFsaXplZFJvdXRlLFxuICAgIGluY2x1ZGVTdWZmaXgsXG4gICAgaW5jbHVkZVByZWZpeFxuICApXG5cbiAgbGV0IHJlID0gcGFyYW1ldGVyaXplZFJvdXRlXG4gIGlmICghZXhjbHVkZU9wdGlvbmFsVHJhaWxpbmdTbGFzaCkge1xuICAgIHJlICs9ICcoPzovKT8nXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHJlOiBuZXcgUmVnRXhwKGBeJHtyZX0kYCksXG4gICAgZ3JvdXBzOiBncm91cHMsXG4gIH1cbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBmdW5jdGlvbiB0byBnZW5lcmF0ZSBhIG1pbmltYWwgcm91dGVLZXkgdXNpbmcgb25seSBhLXogYW5kIG1pbmltYWxcbiAqIG51bWJlciBvZiBjaGFyYWN0ZXJzLlxuICovXG5mdW5jdGlvbiBidWlsZEdldFNhZmVSb3V0ZUtleSgpIHtcbiAgbGV0IGkgPSAwXG5cbiAgcmV0dXJuICgpID0+IHtcbiAgICBsZXQgcm91dGVLZXkgPSAnJ1xuICAgIGxldCBqID0gKytpXG4gICAgd2hpbGUgKGogPiAwKSB7XG4gICAgICByb3V0ZUtleSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDk3ICsgKChqIC0gMSkgJSAyNikpXG4gICAgICBqID0gTWF0aC5mbG9vcigoaiAtIDEpIC8gMjYpXG4gICAgfVxuICAgIHJldHVybiByb3V0ZUtleVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFNhZmVLZXlGcm9tU2VnbWVudCh7XG4gIGludGVyY2VwdGlvbk1hcmtlcixcbiAgZ2V0U2FmZVJvdXRlS2V5LFxuICBzZWdtZW50LFxuICByb3V0ZUtleXMsXG4gIGtleVByZWZpeCxcbiAgYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXMsXG59OiB7XG4gIGludGVyY2VwdGlvbk1hcmtlcj86IHN0cmluZ1xuICBnZXRTYWZlUm91dGVLZXk6ICgpID0+IHN0cmluZ1xuICBzZWdtZW50OiBzdHJpbmdcbiAgcm91dGVLZXlzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIGtleVByZWZpeD86IHN0cmluZ1xuICBiYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5czogYm9vbGVhblxufSkge1xuICBjb25zdCB7IGtleSwgb3B0aW9uYWwsIHJlcGVhdCB9ID0gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKHNlZ21lbnQpXG5cbiAgLy8gcmVwbGFjZSBhbnkgbm9uLXdvcmQgY2hhcmFjdGVycyBzaW5jZSB0aGV5IGNhbiBicmVha1xuICAvLyB0aGUgbmFtZWQgcmVnZXhcbiAgbGV0IGNsZWFuZWRLZXkgPSBrZXkucmVwbGFjZSgvXFxXL2csICcnKVxuXG4gIGlmIChrZXlQcmVmaXgpIHtcbiAgICBjbGVhbmVkS2V5ID0gYCR7a2V5UHJlZml4fSR7Y2xlYW5lZEtleX1gXG4gIH1cbiAgbGV0IGludmFsaWRLZXkgPSBmYWxzZVxuXG4gIC8vIGNoZWNrIGlmIHRoZSBrZXkgaXMgc3RpbGwgaW52YWxpZCBhbmQgZmFsbGJhY2sgdG8gdXNpbmcgYSBrbm93blxuICAvLyBzYWZlIGtleVxuICBpZiAoY2xlYW5lZEtleS5sZW5ndGggPT09IDAgfHwgY2xlYW5lZEtleS5sZW5ndGggPiAzMCkge1xuICAgIGludmFsaWRLZXkgPSB0cnVlXG4gIH1cbiAgaWYgKCFpc05hTihwYXJzZUludChjbGVhbmVkS2V5LnNsaWNlKDAsIDEpKSkpIHtcbiAgICBpbnZhbGlkS2V5ID0gdHJ1ZVxuICB9XG5cbiAgaWYgKGludmFsaWRLZXkpIHtcbiAgICBjbGVhbmVkS2V5ID0gZ2V0U2FmZVJvdXRlS2V5KClcbiAgfVxuXG4gIGNvbnN0IGR1cGxpY2F0ZUtleSA9IGNsZWFuZWRLZXkgaW4gcm91dGVLZXlzXG5cbiAgaWYgKGtleVByZWZpeCkge1xuICAgIHJvdXRlS2V5c1tjbGVhbmVkS2V5XSA9IGAke2tleVByZWZpeH0ke2tleX1gXG4gIH0gZWxzZSB7XG4gICAgcm91dGVLZXlzW2NsZWFuZWRLZXldID0ga2V5XG4gIH1cblxuICAvLyBpZiB0aGUgc2VnbWVudCBoYXMgYW4gaW50ZXJjZXB0aW9uIG1hcmtlciwgbWFrZSBzdXJlIHRoYXQncyBwYXJ0IG9mIHRoZSByZWdleCBwYXR0ZXJuXG4gIC8vIHRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgdGhlIHJvdXRlIHdpdGggdGhlIGludGVyY2VwdGlvbiBtYXJrZXIgZG9lc24ndCBpbmNvcnJlY3RseSBtYXRjaFxuICAvLyB0aGUgbm9uLWludGVyY2VwdGVkIHJvdXRlIChpZSAvYXBwLyguKVt1c2VybmFtZV0gc2hvdWxkIG5vdCBtYXRjaCAvYXBwL1t1c2VybmFtZV0pXG4gIGNvbnN0IGludGVyY2VwdGlvblByZWZpeCA9IGludGVyY2VwdGlvbk1hcmtlclxuICAgID8gZXNjYXBlU3RyaW5nUmVnZXhwKGludGVyY2VwdGlvbk1hcmtlcilcbiAgICA6ICcnXG5cbiAgbGV0IHBhdHRlcm46IHN0cmluZ1xuICBpZiAoZHVwbGljYXRlS2V5ICYmIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzKSB7XG4gICAgLy8gVXNlIGEgYmFja3JlZmVyZW5jZSB0byB0aGUga2V5IHRvIGVuc3VyZSB0aGF0IHRoZSBrZXkgaXMgdGhlIHNhbWUgdmFsdWVcbiAgICAvLyBpbiBlYWNoIG9mIHRoZSBwbGFjZWhvbGRlcnMuXG4gICAgcGF0dGVybiA9IGBcXFxcazwke2NsZWFuZWRLZXl9PmBcbiAgfSBlbHNlIGlmIChyZXBlYXQpIHtcbiAgICBwYXR0ZXJuID0gYCg/PCR7Y2xlYW5lZEtleX0+Lis/KWBcbiAgfSBlbHNlIHtcbiAgICBwYXR0ZXJuID0gYCg/PCR7Y2xlYW5lZEtleX0+W14vXSs/KWBcbiAgfVxuXG4gIHJldHVybiBvcHRpb25hbFxuICAgID8gYCg/Oi8ke2ludGVyY2VwdGlvblByZWZpeH0ke3BhdHRlcm59KT9gXG4gICAgOiBgLyR7aW50ZXJjZXB0aW9uUHJlZml4fSR7cGF0dGVybn1gXG59XG5cbmZ1bmN0aW9uIGdldE5hbWVkUGFyYW1ldHJpemVkUm91dGUoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIHByZWZpeFJvdXRlS2V5czogYm9vbGVhbixcbiAgaW5jbHVkZVN1ZmZpeDogYm9vbGVhbixcbiAgaW5jbHVkZVByZWZpeDogYm9vbGVhbixcbiAgYmFja3JlZmVyZW5jZUR1cGxpY2F0ZUtleXM6IGJvb2xlYW5cbikge1xuICBjb25zdCBnZXRTYWZlUm91dGVLZXkgPSBidWlsZEdldFNhZmVSb3V0ZUtleSgpXG4gIGNvbnN0IHJvdXRlS2V5czogeyBbbmFtZWQ6IHN0cmluZ106IHN0cmluZyB9ID0ge31cblxuICBjb25zdCBzZWdtZW50czogc3RyaW5nW10gPSBbXVxuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZSkuc2xpY2UoMSkuc3BsaXQoJy8nKSkge1xuICAgIGNvbnN0IGhhc0ludGVyY2VwdGlvbk1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoKG0pID0+XG4gICAgICBzZWdtZW50LnN0YXJ0c1dpdGgobSlcbiAgICApXG5cbiAgICBjb25zdCBwYXJhbU1hdGNoZXMgPSBzZWdtZW50Lm1hdGNoKFBBUkFNRVRFUl9QQVRURVJOKSAvLyBDaGVjayBmb3IgcGFyYW1ldGVyc1xuXG4gICAgaWYgKGhhc0ludGVyY2VwdGlvbk1hcmtlciAmJiBwYXJhbU1hdGNoZXMgJiYgcGFyYW1NYXRjaGVzWzJdKSB7XG4gICAgICAvLyBJZiB0aGVyZSdzIGFuIGludGVyY2VwdGlvbiBtYXJrZXIsIGFkZCBpdCB0byB0aGUgc2VnbWVudHMuXG4gICAgICBzZWdtZW50cy5wdXNoKFxuICAgICAgICBnZXRTYWZlS2V5RnJvbVNlZ21lbnQoe1xuICAgICAgICAgIGdldFNhZmVSb3V0ZUtleSxcbiAgICAgICAgICBpbnRlcmNlcHRpb25NYXJrZXI6IHBhcmFtTWF0Y2hlc1sxXSxcbiAgICAgICAgICBzZWdtZW50OiBwYXJhbU1hdGNoZXNbMl0sXG4gICAgICAgICAgcm91dGVLZXlzLFxuICAgICAgICAgIGtleVByZWZpeDogcHJlZml4Um91dGVLZXlzXG4gICAgICAgICAgICA/IE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVhcbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGJhY2tyZWZlcmVuY2VEdXBsaWNhdGVLZXlzLFxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAocGFyYW1NYXRjaGVzICYmIHBhcmFtTWF0Y2hlc1syXSkge1xuICAgICAgLy8gSWYgdGhlcmUncyBhIHByZWZpeCwgYWRkIGl0IHRvIHRoZSBzZWdtZW50cyBpZiBpdCdzIGVuYWJsZWQuXG4gICAgICBpZiAoaW5jbHVkZVByZWZpeCAmJiBwYXJhbU1hdGNoZXNbMV0pIHtcbiAgICAgICAgc2VnbWVudHMucHVzaChgLyR7ZXNjYXBlU3RyaW5nUmVnZXhwKHBhcmFtTWF0Y2hlc1sxXSl9YClcbiAgICAgIH1cblxuICAgICAgbGV0IHMgPSBnZXRTYWZlS2V5RnJvbVNlZ21lbnQoe1xuICAgICAgICBnZXRTYWZlUm91dGVLZXksXG4gICAgICAgIHNlZ21lbnQ6IHBhcmFtTWF0Y2hlc1syXSxcbiAgICAgICAgcm91dGVLZXlzLFxuICAgICAgICBrZXlQcmVmaXg6IHByZWZpeFJvdXRlS2V5cyA/IE5FWFRfUVVFUllfUEFSQU1fUFJFRklYIDogdW5kZWZpbmVkLFxuICAgICAgICBiYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5cyxcbiAgICAgIH0pXG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgbGVhZGluZyBzbGFzaCBpZiBpbmNsdWRlUHJlZml4IGFscmVhZHkgYWRkZWQgaXQuXG4gICAgICBpZiAoaW5jbHVkZVByZWZpeCAmJiBwYXJhbU1hdGNoZXNbMV0pIHtcbiAgICAgICAgcyA9IHMuc3Vic3RyaW5nKDEpXG4gICAgICB9XG5cbiAgICAgIHNlZ21lbnRzLnB1c2gocylcbiAgICB9IGVsc2Uge1xuICAgICAgc2VnbWVudHMucHVzaChgLyR7ZXNjYXBlU3RyaW5nUmVnZXhwKHNlZ21lbnQpfWApXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUncyBhIHN1ZmZpeCwgYWRkIGl0IHRvIHRoZSBzZWdtZW50cyBpZiBpdCdzIGVuYWJsZWQuXG4gICAgaWYgKGluY2x1ZGVTdWZmaXggJiYgcGFyYW1NYXRjaGVzICYmIHBhcmFtTWF0Y2hlc1szXSkge1xuICAgICAgc2VnbWVudHMucHVzaChlc2NhcGVTdHJpbmdSZWdleHAocGFyYW1NYXRjaGVzWzNdKSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5hbWVkUGFyYW1ldGVyaXplZFJvdXRlOiBzZWdtZW50cy5qb2luKCcnKSxcbiAgICByb3V0ZUtleXMsXG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGV4dGVuZHMgYGdldFJvdXRlUmVnZXhgIGdlbmVyYXRpbmcgYWxzbyBhIG5hbWVkIHJlZ2V4cCB3aGVyZVxuICogZWFjaCBncm91cCBpcyBuYW1lZCBhbG9uZyB3aXRoIGEgcm91dGVLZXlzIG9iamVjdCB0aGF0IGluZGV4ZXMgdGhlIGFzc2lnbmVkXG4gKiBuYW1lZCBncm91cCB3aXRoIGl0cyBjb3JyZXNwb25kaW5nIGtleS4gV2hlbiB0aGUgcm91dGVLZXlzIG5lZWQgdG8gYmVcbiAqIHByZWZpeGVkIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGludGVybmFsbHkgdGhlIFwicHJlZml4Um91dGVLZXlcIiBhcmcgc2hvdWxkXG4gKiBiZSBcInRydWVcIiBjdXJyZW50bHkgdGhpcyBpcyBvbmx5IHRoZSBjYXNlIHdoZW4gY3JlYXRpbmcgdGhlIHJvdXRlcy1tYW5pZmVzdFxuICogZHVyaW5nIHRoZSBidWlsZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmFtZWRSb3V0ZVJlZ2V4KFxuICBub3JtYWxpemVkUm91dGU6IHN0cmluZyxcbiAgb3B0aW9uczogR2V0TmFtZWRSb3V0ZVJlZ2V4T3B0aW9uc1xuKSB7XG4gIGNvbnN0IHJlc3VsdCA9IGdldE5hbWVkUGFyYW1ldHJpemVkUm91dGUoXG4gICAgbm9ybWFsaXplZFJvdXRlLFxuICAgIG9wdGlvbnMucHJlZml4Um91dGVLZXlzLFxuICAgIG9wdGlvbnMuaW5jbHVkZVN1ZmZpeCA/PyBmYWxzZSxcbiAgICBvcHRpb25zLmluY2x1ZGVQcmVmaXggPz8gZmFsc2UsXG4gICAgb3B0aW9ucy5iYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5cyA/PyBmYWxzZVxuICApXG5cbiAgbGV0IG5hbWVkUmVnZXggPSByZXN1bHQubmFtZWRQYXJhbWV0ZXJpemVkUm91dGVcbiAgaWYgKCFvcHRpb25zLmV4Y2x1ZGVPcHRpb25hbFRyYWlsaW5nU2xhc2gpIHtcbiAgICBuYW1lZFJlZ2V4ICs9ICcoPzovKT8nXG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmdldFJvdXRlUmVnZXgobm9ybWFsaXplZFJvdXRlLCBvcHRpb25zKSxcbiAgICBuYW1lZFJlZ2V4OiBgXiR7bmFtZWRSZWdleH0kYCxcbiAgICByb3V0ZUtleXM6IHJlc3VsdC5yb3V0ZUtleXMsXG4gIH1cbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBuYW1lZCByZWdleHAuXG4gKiBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzaW5nIGZvciBidWlsZCB0aW1lIG9ubHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROYW1lZE1pZGRsZXdhcmVSZWdleChcbiAgbm9ybWFsaXplZFJvdXRlOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICBjYXRjaEFsbD86IGJvb2xlYW5cbiAgfVxuKSB7XG4gIGNvbnN0IHsgcGFyYW1ldGVyaXplZFJvdXRlIH0gPSBnZXRQYXJhbWV0cml6ZWRSb3V0ZShcbiAgICBub3JtYWxpemVkUm91dGUsXG4gICAgZmFsc2UsXG4gICAgZmFsc2VcbiAgKVxuICBjb25zdCB7IGNhdGNoQWxsID0gdHJ1ZSB9ID0gb3B0aW9uc1xuICBpZiAocGFyYW1ldGVyaXplZFJvdXRlID09PSAnLycpIHtcbiAgICBsZXQgY2F0Y2hBbGxSZWdleCA9IGNhdGNoQWxsID8gJy4qJyA6ICcnXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVkUmVnZXg6IGBeLyR7Y2F0Y2hBbGxSZWdleH0kYCxcbiAgICB9XG4gIH1cblxuICBjb25zdCB7IG5hbWVkUGFyYW1ldGVyaXplZFJvdXRlIH0gPSBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKFxuICAgIG5vcm1hbGl6ZWRSb3V0ZSxcbiAgICBmYWxzZSxcbiAgICBmYWxzZSxcbiAgICBmYWxzZSxcbiAgICBmYWxzZVxuICApXG4gIGxldCBjYXRjaEFsbEdyb3VwZWRSZWdleCA9IGNhdGNoQWxsID8gJyg/OigvLiopPyknIDogJydcbiAgcmV0dXJuIHtcbiAgICBuYW1lZFJlZ2V4OiBgXiR7bmFtZWRQYXJhbWV0ZXJpemVkUm91dGV9JHtjYXRjaEFsbEdyb3VwZWRSZWdleH0kYCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldE5hbWVkTWlkZGxld2FyZVJlZ2V4IiwiZ2V0TmFtZWRSb3V0ZVJlZ2V4IiwiZ2V0Um91dGVSZWdleCIsInBhcnNlUGFyYW1ldGVyIiwiUEFSQU1FVEVSX1BBVFRFUk4iLCJwYXJhbSIsIm1hdGNoIiwicGFyc2VNYXRjaGVkUGFyYW1ldGVyIiwib3B0aW9uYWwiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJzbGljZSIsInJlcGVhdCIsImtleSIsImdldFBhcmFtZXRyaXplZFJvdXRlIiwicm91dGUiLCJpbmNsdWRlU3VmZml4IiwiaW5jbHVkZVByZWZpeCIsImdyb3VwcyIsImdyb3VwSW5kZXgiLCJzZWdtZW50cyIsInNlZ21lbnQiLCJyZW1vdmVUcmFpbGluZ1NsYXNoIiwic3BsaXQiLCJtYXJrZXJNYXRjaCIsIklOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTIiwiZmluZCIsIm0iLCJwYXJhbU1hdGNoZXMiLCJwb3MiLCJwdXNoIiwiZXNjYXBlU3RyaW5nUmVnZXhwIiwicyIsInN1YnN0cmluZyIsInBhcmFtZXRlcml6ZWRSb3V0ZSIsImpvaW4iLCJub3JtYWxpemVkUm91dGUiLCJleGNsdWRlT3B0aW9uYWxUcmFpbGluZ1NsYXNoIiwicmUiLCJSZWdFeHAiLCJidWlsZEdldFNhZmVSb3V0ZUtleSIsImkiLCJyb3V0ZUtleSIsImoiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJNYXRoIiwiZmxvb3IiLCJnZXRTYWZlS2V5RnJvbVNlZ21lbnQiLCJpbnRlcmNlcHRpb25NYXJrZXIiLCJnZXRTYWZlUm91dGVLZXkiLCJyb3V0ZUtleXMiLCJrZXlQcmVmaXgiLCJiYWNrcmVmZXJlbmNlRHVwbGljYXRlS2V5cyIsImNsZWFuZWRLZXkiLCJyZXBsYWNlIiwiaW52YWxpZEtleSIsImxlbmd0aCIsImlzTmFOIiwicGFyc2VJbnQiLCJkdXBsaWNhdGVLZXkiLCJpbnRlcmNlcHRpb25QcmVmaXgiLCJwYXR0ZXJuIiwiZ2V0TmFtZWRQYXJhbWV0cml6ZWRSb3V0ZSIsInByZWZpeFJvdXRlS2V5cyIsImhhc0ludGVyY2VwdGlvbk1hcmtlciIsInNvbWUiLCJORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYIiwidW5kZWZpbmVkIiwiTkVYVF9RVUVSWV9QQVJBTV9QUkVGSVgiLCJuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSIsIm9wdGlvbnMiLCJyZXN1bHQiLCJuYW1lZFJlZ2V4IiwiY2F0Y2hBbGwiLCJjYXRjaEFsbFJlZ2V4IiwiY2F0Y2hBbGxHcm91cGVkUmVnZXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js":
/*!********************************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js ***!
\********************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// In output: export mode, the build id is added to the start of the HTML\n// document, directly after the doctype declaration. During a prefetch, the\n// client performs a range request to get the build id, so it can check whether\n// the target page belongs to the same build.\n//\n// The first 64 bytes of the document are requested. The exact number isn't\n// too important; it must be larger than the build id + doctype + closing and\n// ending comment markers, but it doesn't need to match the end of the\n// comment exactly.\n//\n// Build ids are 21 bytes long in the default implementation, though this\n// can be overridden in the Next.js config. For the purposes of this check,\n// it's OK to only match the start of the id, so we'll truncate it if exceeds\n// a certain length.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DOC_PREFETCH_RANGE_HEADER_VALUE: function() {\n return DOC_PREFETCH_RANGE_HEADER_VALUE;\n },\n doesExportedHtmlMatchBuildId: function() {\n return doesExportedHtmlMatchBuildId;\n },\n insertBuildIdComment: function() {\n return insertBuildIdComment;\n }\n});\nconst DOCTYPE_PREFIX = '<!DOCTYPE html>' // 15 bytes\n;\nconst MAX_BUILD_ID_LENGTH = 24;\nconst DOC_PREFETCH_RANGE_HEADER_VALUE = 'bytes=0-63';\nfunction escapeBuildId(buildId) {\n // If the build id is longer than the given limit, it's OK for our purposes\n // to only match the beginning.\n const truncated = buildId.slice(0, MAX_BUILD_ID_LENGTH);\n // Replace hyphens with underscores so it doesn't break the HTML comment.\n // (Unlikely, but if this did happen it would break the whole document.)\n return truncated.replace(/-/g, '_');\n}\nfunction insertBuildIdComment(originalHtml, buildId) {\n if (buildId.includes('-->') || // React always inserts a doctype at the start of the document. Skip if it\n // isn't present. Shouldn't happen; suggests an issue elsewhere.\n !originalHtml.startsWith(DOCTYPE_PREFIX)) {\n // Return the original HTML unchanged. This means the document will not\n // be prefetched.\n // TODO: The build id comment is currently only used during prefetches, but\n // if we eventually use this mechanism for regular navigations, we may need\n // to error during build if we fail to insert it for some reason.\n return originalHtml;\n }\n // The comment must be inserted after the doctype.\n return originalHtml.replace(DOCTYPE_PREFIX, DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n}\nfunction doesExportedHtmlMatchBuildId(partialHtmlDocument, buildId) {\n // Check whether the document starts with the expected buildId.\n return partialHtmlDocument.startsWith(DOCTYPE_PREFIX + '<!--' + escapeBuildId(buildId) + '-->');\n} //# sourceMappingURL=output-export-prefetch-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9vdXRwdXQtZXhwb3J0LXByZWZldGNoLWVuY29kaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBLHlFQUF5RTtBQUN6RSwyRUFBMkU7QUFDM0UsK0VBQStFO0FBQy9FLDZDQUE2QztBQUM3QyxFQUFFO0FBQ0YsMkVBQTJFO0FBQzNFLDZFQUE2RTtBQUM3RSxzRUFBc0U7QUFDdEUsbUJBQW1CO0FBQ25CLEVBQUU7QUFDRix5RUFBeUU7QUFDekUsMkVBQTJFO0FBQzNFLDZFQUE2RTtBQUM3RSxvQkFBb0I7Ozs7Ozs7Ozs7Ozs7SUFNUEEsK0JBQStCO2VBQS9CQTs7SUFpQ0dDLDRCQUE0QjtlQUE1QkE7O0lBdEJBQyxvQkFBb0I7ZUFBcEJBOzs7QUFmaEIsTUFBTUMsaUJBQWlCLGtCQUFrQixXQUFXOztBQUNwRCxNQUFNQyxzQkFBc0I7QUFHckIsTUFBTUosa0NBQWtDO0FBRS9DLFNBQVNLLGNBQWNDLE9BQWU7SUFDcEMsMkVBQTJFO0lBQzNFLCtCQUErQjtJQUMvQixNQUFNQyxZQUFZRCxRQUFRRSxLQUFLLENBQUMsR0FBR0o7SUFDbkMseUVBQXlFO0lBQ3pFLHdFQUF3RTtJQUN4RSxPQUFPRyxVQUFVRSxPQUFPLENBQUMsTUFBTTtBQUNqQztBQUVPLFNBQVNQLHFCQUFxQlEsWUFBb0IsRUFBRUosT0FBZTtJQUN4RSxJQUNFLFFBQ1FLLFFBQVEsQ0FBQyxVQUNqQiwrQkFGMEQsMkNBRWdCO0lBQzFFLGdFQUFnRTtJQUNoRSxDQUFDRCxhQUFhRSxVQUFVLENBQUNULGlCQUN6QjtRQUNBLHVFQUF1RTtRQUN2RSxpQkFBaUI7UUFDakIsMkVBQTJFO1FBQzNFLDJFQUEyRTtRQUMzRSxpRUFBaUU7UUFDakUsT0FBT087SUFDVDtJQUNBLGtEQUFrRDtJQUNsRCxPQUFPQSxhQUFhRCxPQUFPLENBQ3pCTixnQkFDQUEsaUJBQWlCLFNBQVNFLGNBQWNDLFdBQVc7QUFFdkQ7QUFFTyxTQUFTTCw2QkFDZFksbUJBQTJCLEVBQzNCUCxPQUFlO0lBRWYsK0RBQStEO0lBQy9ELE9BQU9PLG9CQUFvQkQsVUFBVSxDQUNuQ1QsaUJBQWlCLFNBQVNFLGNBQWNDLFdBQVc7QUFFdkQiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL3NlZ21lbnQtY2FjaGUvb3V0cHV0LWV4cG9ydC1wcmVmZXRjaC1lbmNvZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbiBvdXRwdXQ6IGV4cG9ydCBtb2RlLCB0aGUgYnVpbGQgaWQgaXMgYWRkZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBIVE1MXG4vLyBkb2N1bWVudCwgZGlyZWN0bHkgYWZ0ZXIgdGhlIGRvY3R5cGUgZGVjbGFyYXRpb24uIER1cmluZyBhIHByZWZldGNoLCB0aGVcbi8vIGNsaWVudCBwZXJmb3JtcyBhIHJhbmdlIHJlcXVlc3QgdG8gZ2V0IHRoZSBidWlsZCBpZCwgc28gaXQgY2FuIGNoZWNrIHdoZXRoZXJcbi8vIHRoZSB0YXJnZXQgcGFnZSBiZWxvbmdzIHRvIHRoZSBzYW1lIGJ1aWxkLlxuLy9cbi8vIFRoZSBmaXJzdCA2NCBieXRlcyBvZiB0aGUgZG9jdW1lbnQgYXJlIHJlcXVlc3RlZC4gVGhlIGV4YWN0IG51bWJlciBpc24ndFxuLy8gdG9vIGltcG9ydGFudDsgaXQgbXVzdCBiZSBsYXJnZXIgdGhhbiB0aGUgYnVpbGQgaWQgKyBkb2N0eXBlICsgY2xvc2luZyBhbmRcbi8vIGVuZGluZyBjb21tZW50IG1hcmtlcnMsIGJ1dCBpdCBkb2Vzbid0IG5lZWQgdG8gbWF0Y2ggdGhlIGVuZCBvZiB0aGVcbi8vIGNvbW1lbnQgZXhhY3RseS5cbi8vXG4vLyBCdWlsZCBpZHMgYXJlIDIxIGJ5dGVzIGxvbmcgaW4gdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIHRob3VnaCB0aGlzXG4vLyBjYW4gYmUgb3ZlcnJpZGRlbiBpbiB0aGUgTmV4dC5qcyBjb25maWcuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBjaGVjayxcbi8vIGl0J3MgT0sgdG8gb25seSBtYXRjaCB0aGUgc3RhcnQgb2YgdGhlIGlkLCBzbyB3ZSdsbCB0cnVuY2F0ZSBpdCBpZiBleGNlZWRzXG4vLyBhIGNlcnRhaW4gbGVuZ3RoLlxuXG5jb25zdCBET0NUWVBFX1BSRUZJWCA9ICc8IURPQ1RZUEUgaHRtbD4nIC8vIDE1IGJ5dGVzXG5jb25zdCBNQVhfQlVJTERfSURfTEVOR1RIID0gMjRcblxuLy8gUmVxdWVzdCB0aGUgZmlyc3QgNjQgYnl0ZXMuIFRoZSBSYW5nZSBoZWFkZXIgaXMgaW5jbHVzaXZlIG9mIHRoZSBlbmQgdmFsdWUuXG5leHBvcnQgY29uc3QgRE9DX1BSRUZFVENIX1JBTkdFX0hFQURFUl9WQUxVRSA9ICdieXRlcz0wLTYzJ1xuXG5mdW5jdGlvbiBlc2NhcGVCdWlsZElkKGJ1aWxkSWQ6IHN0cmluZykge1xuICAvLyBJZiB0aGUgYnVpbGQgaWQgaXMgbG9uZ2VyIHRoYW4gdGhlIGdpdmVuIGxpbWl0LCBpdCdzIE9LIGZvciBvdXIgcHVycG9zZXNcbiAgLy8gdG8gb25seSBtYXRjaCB0aGUgYmVnaW5uaW5nLlxuICBjb25zdCB0cnVuY2F0ZWQgPSBidWlsZElkLnNsaWNlKDAsIE1BWF9CVUlMRF9JRF9MRU5HVEgpXG4gIC8vIFJlcGxhY2UgaHlwaGVucyB3aXRoIHVuZGVyc2NvcmVzIHNvIGl0IGRvZXNuJ3QgYnJlYWsgdGhlIEhUTUwgY29tbWVudC5cbiAgLy8gKFVubGlrZWx5LCBidXQgaWYgdGhpcyBkaWQgaGFwcGVuIGl0IHdvdWxkIGJyZWFrIHRoZSB3aG9sZSBkb2N1bWVudC4pXG4gIHJldHVybiB0cnVuY2F0ZWQucmVwbGFjZSgvLS9nLCAnXycpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRCdWlsZElkQ29tbWVudChvcmlnaW5hbEh0bWw6IHN0cmluZywgYnVpbGRJZDogc3RyaW5nKSB7XG4gIGlmIChcbiAgICAvLyBTa2lwIGlmIHRoZSBidWlsZCBpZCBjb250YWlucyBhIGNsb3NpbmcgY29tbWVudCBtYXJrZXIuXG4gICAgYnVpbGRJZC5pbmNsdWRlcygnLS0+JykgfHxcbiAgICAvLyBSZWFjdCBhbHdheXMgaW5zZXJ0cyBhIGRvY3R5cGUgYXQgdGhlIHN0YXJ0IG9mIHRoZSBkb2N1bWVudC4gU2tpcCBpZiBpdFxuICAgIC8vIGlzbid0IHByZXNlbnQuIFNob3VsZG4ndCBoYXBwZW47IHN1Z2dlc3RzIGFuIGlzc3VlIGVsc2V3aGVyZS5cbiAgICAhb3JpZ2luYWxIdG1sLnN0YXJ0c1dpdGgoRE9DVFlQRV9QUkVGSVgpXG4gICkge1xuICAgIC8vIFJldHVybiB0aGUgb3JpZ2luYWwgSFRNTCB1bmNoYW5nZWQuIFRoaXMgbWVhbnMgdGhlIGRvY3VtZW50IHdpbGwgbm90XG4gICAgLy8gYmUgcHJlZmV0Y2hlZC5cbiAgICAvLyBUT0RPOiBUaGUgYnVpbGQgaWQgY29tbWVudCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGR1cmluZyBwcmVmZXRjaGVzLCBidXRcbiAgICAvLyBpZiB3ZSBldmVudHVhbGx5IHVzZSB0aGlzIG1lY2hhbmlzbSBmb3IgcmVndWxhciBuYXZpZ2F0aW9ucywgd2UgbWF5IG5lZWRcbiAgICAvLyB0byBlcnJvciBkdXJpbmcgYnVpbGQgaWYgd2UgZmFpbCB0byBpbnNlcnQgaXQgZm9yIHNvbWUgcmVhc29uLlxuICAgIHJldHVybiBvcmlnaW5hbEh0bWxcbiAgfVxuICAvLyBUaGUgY29tbWVudCBtdXN0IGJlIGluc2VydGVkIGFmdGVyIHRoZSBkb2N0eXBlLlxuICByZXR1cm4gb3JpZ2luYWxIdG1sLnJlcGxhY2UoXG4gICAgRE9DVFlQRV9QUkVGSVgsXG4gICAgRE9DVFlQRV9QUkVGSVggKyAnPCEtLScgKyBlc2NhcGVCdWlsZElkKGJ1aWxkSWQpICsgJy0tPidcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9lc0V4cG9ydGVkSHRtbE1hdGNoQnVpbGRJZChcbiAgcGFydGlhbEh0bWxEb2N1bWVudDogc3RyaW5nLFxuICBidWlsZElkOiBzdHJpbmdcbikge1xuICAvLyBDaGVjayB3aGV0aGVyIHRoZSBkb2N1bWVudCBzdGFydHMgd2l0aCB0aGUgZXhwZWN0ZWQgYnVpbGRJZC5cbiAgcmV0dXJuIHBhcnRpYWxIdG1sRG9jdW1lbnQuc3RhcnRzV2l0aChcbiAgICBET0NUWVBFX1BSRUZJWCArICc8IS0tJyArIGVzY2FwZUJ1aWxkSWQoYnVpbGRJZCkgKyAnLS0+J1xuICApXG59XG4iXSwibmFtZXMiOlsiRE9DX1BSRUZFVENIX1JBTkdFX0hFQURFUl9WQUxVRSIsImRvZXNFeHBvcnRlZEh0bWxNYXRjaEJ1aWxkSWQiLCJpbnNlcnRCdWlsZElkQ29tbWVudCIsIkRPQ1RZUEVfUFJFRklYIiwiTUFYX0JVSUxEX0lEX0xFTkdUSCIsImVzY2FwZUJ1aWxkSWQiLCJidWlsZElkIiwidHJ1bmNhdGVkIiwic2xpY2UiLCJyZXBsYWNlIiwib3JpZ2luYWxIdG1sIiwiaW5jbHVkZXMiLCJzdGFydHNXaXRoIiwicGFydGlhbEh0bWxEb2N1bWVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js":
/*!***********************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js ***!
\***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ROOT_SEGMENT_KEY: function() {\n return ROOT_SEGMENT_KEY;\n },\n convertSegmentPathToStaticExportFilename: function() {\n return convertSegmentPathToStaticExportFilename;\n },\n encodeChildSegmentKey: function() {\n return encodeChildSegmentKey;\n },\n encodeSegment: function() {\n return encodeSegment;\n }\n});\nconst _segment = __webpack_require__(/*! ../segment */ \"(rsc)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction encodeSegment(segment) {\n if (typeof segment === 'string') {\n if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) {\n // The Flight Router State type sometimes includes the search params in\n // the page segment. However, the Segment Cache tracks this as a separate\n // key. So, we strip the search params here, and then add them back when\n // the cache entry is turned back into a FlightRouterState. This is an\n // unfortunate consequence of the FlightRouteState being used both as a\n // transport type and as a cache key; we'll address this once more of the\n // Segment Cache implementation has settled.\n // TODO: We should hoist the search params out of the FlightRouterState\n // type entirely, This is our plan for dynamic route params, too.\n return _segment.PAGE_SEGMENT_KEY;\n }\n const safeName = // But params typically don't include the leading slash. We should use\n // a different encoding to avoid this special case.\n segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment);\n // Since this is not a dynamic segment, it's fully encoded. It does not\n // need to be \"hydrated\" with a param value.\n return safeName;\n }\n const name = segment[0];\n const paramValue = segment[1];\n const paramType = segment[2];\n const safeName = encodeToFilesystemAndURLSafeString(name);\n const safeValue = encodeToFilesystemAndURLSafeString(paramValue);\n const encodedName = '$' + paramType + '$' + safeName + '$' + safeValue;\n return encodedName;\n}\nconst ROOT_SEGMENT_KEY = '';\nfunction encodeChildSegmentKey(parentSegmentKey, parallelRouteKey, segment) {\n // Aside from being filesystem safe, segment keys are also designed so that\n // each segment and parallel route creates its own subdirectory. Roughly in\n // the same shape as the source app directory. This is mostly just for easier\n // debugging (you can open up the build folder and navigate the output); if\n // we wanted to do we could just use a flat structure.\n // Omit the parallel route key for children, since this is the most\n // common case. Saves some bytes (and it's what the app directory does).\n const slotKey = parallelRouteKey === 'children' ? segment : \"@\" + encodeToFilesystemAndURLSafeString(parallelRouteKey) + \"/\" + segment;\n return parentSegmentKey + '/' + slotKey;\n}\n// Define a regex pattern to match the most common characters found in a route\n// param. It excludes anything that might not be cross-platform filesystem\n// compatible, like |. It does not need to be precise because the fallback is to\n// just base64url-encode the whole parameter, which is fine; we just don't do it\n// by default for compactness, and for easier debugging.\nconst simpleParamValueRegex = /^[a-zA-Z0-9\\-_@]+$/;\nfunction encodeToFilesystemAndURLSafeString(value) {\n if (simpleParamValueRegex.test(value)) {\n return value;\n }\n // If there are any unsafe characters, base64url-encode the entire value.\n // We also add a ! prefix so it doesn't collide with the simple case.\n const base64url = btoa(value).replace(/\\+/g, '-') // Replace '+' with '-'\n .replace(/\\//g, '_') // Replace '/' with '_'\n .replace(/=+$/, '') // Remove trailing '='\n ;\n return '!' + base64url;\n}\nfunction convertSegmentPathToStaticExportFilename(segmentPath) {\n return \"__next\" + segmentPath.replace(/\\//g, '.') + \".txt\";\n} //# sourceMappingURL=segment-value-encoding.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC1jYWNoZS9zZWdtZW50LXZhbHVlLWVuY29kaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTZDYUEsZ0JBQWdCO2VBQWhCQTs7SUE0Q0dDLHdDQUF3QztlQUF4Q0E7O0lBMUNBQyxxQkFBcUI7ZUFBckJBOztJQXZDQUMsYUFBYTtlQUFiQTs7O3FDQVJpQjtBQVExQixTQUFTQSxjQUNkQyxPQUFpQztJQUVqQyxJQUFJLE9BQU9BLFlBQVksVUFBVTtRQUMvQixJQUFJQSxRQUFRQyxVQUFVLENBQUNDLFNBQUFBLGdCQUFnQixHQUFHO1lBQ3hDLHVFQUF1RTtZQUN2RSx5RUFBeUU7WUFDekUsd0VBQXdFO1lBQ3hFLHNFQUFzRTtZQUN0RSx1RUFBdUU7WUFDdkUseUVBQXlFO1lBQ3pFLDRDQUE0QztZQUM1Qyx1RUFBdUU7WUFDdkUsaUVBQWlFO1lBQ2pFLE9BQU9BLFNBQUFBLGdCQUFnQjtRQUN6QjtRQUNBLE1BQU1DLFdBQ0oscUVBQXFFLENBQ0M7UUFDdEUsbURBQW1EO1FBQ25ESCxZQUFZLGdCQUNSLGVBQ0FJLG1DQUFtQ0o7UUFDekMsdUVBQXVFO1FBQ3ZFLDRDQUE0QztRQUM1QyxPQUFPRztJQUNUO0lBQ0EsTUFBTUUsT0FBT0wsT0FBTyxDQUFDLEVBQUU7SUFDdkIsTUFBTU0sYUFBYU4sT0FBTyxDQUFDLEVBQUU7SUFDN0IsTUFBTU8sWUFBWVAsT0FBTyxDQUFDLEVBQUU7SUFDNUIsTUFBTUcsV0FBV0MsbUNBQW1DQztJQUNwRCxNQUFNRyxZQUFZSixtQ0FBbUNFO0lBRXJELE1BQU1HLGNBQWMsTUFBTUYsWUFBWSxNQUFNSixXQUFXLE1BQU1LO0lBQzdELE9BQU9DO0FBQ1Q7QUFFTyxNQUFNYixtQkFBbUI7QUFFekIsU0FBU0Usc0JBQ2QsZ0JBQ3dCLEVBQ3hCYSxnQkFBd0IsRUFDeEJYLE9BQXVCO0lBRXZCLDJFQUEyRTtJQUMzRSwyRUFBMkU7SUFDM0UsNkVBQTZFO0lBQzdFLDJFQUEyRTtJQUMzRSxzREFBc0Q7SUFFdEQsbUVBQW1FO0lBQ25FLHdFQUF3RTtJQUN4RSxNQUFNWSxVQUNKRCxxQkFBcUIsYUFDakJYLFVBQ0MsTUFBR0ksbUNBQW1DTyxvQkFBa0IsTUFBR1g7SUFFbEUsT0FBT1UsbUJBQW1CLE1BQU1FO0FBQ2xDO0FBRUEsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUMxRSxnRkFBZ0Y7QUFDaEYsZ0ZBQWdGO0FBQ2hGLHdEQUF3RDtBQUN4RCxNQUFNQyx3QkFBd0I7QUFFOUIsU0FBU1QsbUNBQW1DVSxLQUFhO0lBQ3ZELElBQUlELHNCQUFzQkUsSUFBSSxDQUFDRCxRQUFRO1FBQ3JDLE9BQU9BO0lBQ1Q7SUFDQSx5RUFBeUU7SUFDekUscUVBQXFFO0lBQ3JFLE1BQU1FLFlBQVlDLEtBQUtILE9BQ3BCSSxPQUFPLENBQUMsT0FBTyxLQUFLLHVCQUF1QjtLQUMzQ0EsT0FBTyxDQUFDLE9BQU8sS0FBSyx1QkFBdUI7S0FDM0NBLE9BQU8sQ0FBQyxPQUFPLElBQUksc0JBQXNCOztJQUM1QyxPQUFPLE1BQU1GO0FBQ2Y7QUFFTyxTQUFTbkIseUNBQ2RzQixXQUFtQjtJQUVuQixPQUFRLFdBQVFBLFlBQVlELE9BQU8sQ0FBQyxPQUFPLE9BQUs7QUFDbEQiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL3NlZ21lbnQtY2FjaGUvc2VnbWVudC12YWx1ZS1lbmNvZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQQUdFX1NFR01FTlRfS0VZIH0gZnJvbSAnLi4vc2VnbWVudCdcbmltcG9ydCB0eXBlIHsgU2VnbWVudCBhcyBGbGlnaHRSb3V0ZXJTdGF0ZVNlZ21lbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuLy8gVHlwZVNjcmlwdCB0cmljayB0byBzaW11bGF0ZSBvcGFxdWUgdHlwZXMsIGxpa2UgaW4gRmxvdy5cbnR5cGUgT3BhcXVlPEssIFQ+ID0gVCAmIHsgX19icmFuZDogSyB9XG5cbmV4cG9ydCB0eXBlIEVuY29kZWRTZWdtZW50ID0gT3BhcXVlPCdFbmNvZGVkU2VnbWVudCcsIHN0cmluZz5cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IEZsaWdodFJvdXRlclN0YXRlU2VnbWVudFxuKTogRW5jb2RlZFNlZ21lbnQge1xuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHNlZ21lbnQuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkge1xuICAgICAgLy8gVGhlIEZsaWdodCBSb3V0ZXIgU3RhdGUgdHlwZSBzb21ldGltZXMgaW5jbHVkZXMgdGhlIHNlYXJjaCBwYXJhbXMgaW5cbiAgICAgIC8vIHRoZSBwYWdlIHNlZ21lbnQuIEhvd2V2ZXIsIHRoZSBTZWdtZW50IENhY2hlIHRyYWNrcyB0aGlzIGFzIGEgc2VwYXJhdGVcbiAgICAgIC8vIGtleS4gU28sIHdlIHN0cmlwIHRoZSBzZWFyY2ggcGFyYW1zIGhlcmUsIGFuZCB0aGVuIGFkZCB0aGVtIGJhY2sgd2hlblxuICAgICAgLy8gdGhlIGNhY2hlIGVudHJ5IGlzIHR1cm5lZCBiYWNrIGludG8gYSBGbGlnaHRSb3V0ZXJTdGF0ZS4gVGhpcyBpcyBhblxuICAgICAgLy8gdW5mb3J0dW5hdGUgY29uc2VxdWVuY2Ugb2YgdGhlIEZsaWdodFJvdXRlU3RhdGUgYmVpbmcgdXNlZCBib3RoIGFzIGFcbiAgICAgIC8vIHRyYW5zcG9ydCB0eXBlIGFuZCBhcyBhIGNhY2hlIGtleTsgd2UnbGwgYWRkcmVzcyB0aGlzIG9uY2UgbW9yZSBvZiB0aGVcbiAgICAgIC8vIFNlZ21lbnQgQ2FjaGUgaW1wbGVtZW50YXRpb24gaGFzIHNldHRsZWQuXG4gICAgICAvLyBUT0RPOiBXZSBzaG91bGQgaG9pc3QgdGhlIHNlYXJjaCBwYXJhbXMgb3V0IG9mIHRoZSBGbGlnaHRSb3V0ZXJTdGF0ZVxuICAgICAgLy8gdHlwZSBlbnRpcmVseSwgVGhpcyBpcyBvdXIgcGxhbiBmb3IgZHluYW1pYyByb3V0ZSBwYXJhbXMsIHRvby5cbiAgICAgIHJldHVybiBQQUdFX1NFR01FTlRfS0VZIGFzIEVuY29kZWRTZWdtZW50XG4gICAgfVxuICAgIGNvbnN0IHNhZmVOYW1lID1cbiAgICAgIC8vIFRPRE86IEZsaWdodFJvdXRlclN0YXRlIGVuY29kZXMgTm90IEZvdW5kIHJvdXRlcyBhcyBcIi9fbm90LWZvdW5kXCIuXG4gICAgICAvLyBCdXQgcGFyYW1zIHR5cGljYWxseSBkb24ndCBpbmNsdWRlIHRoZSBsZWFkaW5nIHNsYXNoLiBXZSBzaG91bGQgdXNlXG4gICAgICAvLyBhIGRpZmZlcmVudCBlbmNvZGluZyB0byBhdm9pZCB0aGlzIHNwZWNpYWwgY2FzZS5cbiAgICAgIHNlZ21lbnQgPT09ICcvX25vdC1mb3VuZCdcbiAgICAgICAgPyAnX25vdC1mb3VuZCdcbiAgICAgICAgOiBlbmNvZGVUb0ZpbGVzeXN0ZW1BbmRVUkxTYWZlU3RyaW5nKHNlZ21lbnQpXG4gICAgLy8gU2luY2UgdGhpcyBpcyBub3QgYSBkeW5hbWljIHNlZ21lbnQsIGl0J3MgZnVsbHkgZW5jb2RlZC4gSXQgZG9lcyBub3RcbiAgICAvLyBuZWVkIHRvIGJlIFwiaHlkcmF0ZWRcIiB3aXRoIGEgcGFyYW0gdmFsdWUuXG4gICAgcmV0dXJuIHNhZmVOYW1lIGFzIEVuY29kZWRTZWdtZW50XG4gIH1cbiAgY29uc3QgbmFtZSA9IHNlZ21lbnRbMF1cbiAgY29uc3QgcGFyYW1WYWx1ZSA9IHNlZ21lbnRbMV1cbiAgY29uc3QgcGFyYW1UeXBlID0gc2VnbWVudFsyXVxuICBjb25zdCBzYWZlTmFtZSA9IGVuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcobmFtZSlcbiAgY29uc3Qgc2FmZVZhbHVlID0gZW5jb2RlVG9GaWxlc3lzdGVtQW5kVVJMU2FmZVN0cmluZyhwYXJhbVZhbHVlKVxuXG4gIGNvbnN0IGVuY29kZWROYW1lID0gJyQnICsgcGFyYW1UeXBlICsgJyQnICsgc2FmZU5hbWUgKyAnJCcgKyBzYWZlVmFsdWVcbiAgcmV0dXJuIGVuY29kZWROYW1lIGFzIEVuY29kZWRTZWdtZW50XG59XG5cbmV4cG9ydCBjb25zdCBST09UX1NFR01FTlRfS0VZID0gJydcblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZUNoaWxkU2VnbWVudEtleShcbiAgLy8gVE9ETzogTWFrZSBzZWdtZW50IGtleXMgYW4gb3BhcXVlIHR5cGUsIHRvbz9cbiAgcGFyZW50U2VnbWVudEtleTogc3RyaW5nLFxuICBwYXJhbGxlbFJvdXRlS2V5OiBzdHJpbmcsXG4gIHNlZ21lbnQ6IEVuY29kZWRTZWdtZW50XG4pOiBzdHJpbmcge1xuICAvLyBBc2lkZSBmcm9tIGJlaW5nIGZpbGVzeXN0ZW0gc2FmZSwgc2VnbWVudCBrZXlzIGFyZSBhbHNvIGRlc2lnbmVkIHNvIHRoYXRcbiAgLy8gZWFjaCBzZWdtZW50IGFuZCBwYXJhbGxlbCByb3V0ZSBjcmVhdGVzIGl0cyBvd24gc3ViZGlyZWN0b3J5LiBSb3VnaGx5IGluXG4gIC8vIHRoZSBzYW1lIHNoYXBlIGFzIHRoZSBzb3VyY2UgYXBwIGRpcmVjdG9yeS4gVGhpcyBpcyBtb3N0bHkganVzdCBmb3IgZWFzaWVyXG4gIC8vIGRlYnVnZ2luZyAoeW91IGNhbiBvcGVuIHVwIHRoZSBidWlsZCBmb2xkZXIgYW5kIG5hdmlnYXRlIHRoZSBvdXRwdXQpOyBpZlxuICAvLyB3ZSB3YW50ZWQgdG8gZG8gd2UgY291bGQganVzdCB1c2UgYSBmbGF0IHN0cnVjdHVyZS5cblxuICAvLyBPbWl0IHRoZSBwYXJhbGxlbCByb3V0ZSBrZXkgZm9yIGNoaWxkcmVuLCBzaW5jZSB0aGlzIGlzIHRoZSBtb3N0XG4gIC8vIGNvbW1vbiBjYXNlLiBTYXZlcyBzb21lIGJ5dGVzIChhbmQgaXQncyB3aGF0IHRoZSBhcHAgZGlyZWN0b3J5IGRvZXMpLlxuICBjb25zdCBzbG90S2V5ID1cbiAgICBwYXJhbGxlbFJvdXRlS2V5ID09PSAnY2hpbGRyZW4nXG4gICAgICA/IHNlZ21lbnRcbiAgICAgIDogYEAke2VuY29kZVRvRmlsZXN5c3RlbUFuZFVSTFNhZmVTdHJpbmcocGFyYWxsZWxSb3V0ZUtleSl9LyR7c2VnbWVudH1gXG5cbiAgcmV0dXJuIHBhcmVudFNlZ21lbnRLZXkgKyAnLycgKyBzbG90S2V5XG59XG5cbi8vIERlZmluZSBhIHJlZ2V4IHBhdHRlcm4gdG8gbWF0Y2ggdGhlIG1vc3QgY29tbW9uIGNoYXJhY3RlcnMgZm91bmQgaW4gYSByb3V0ZVxuLy8gcGFyYW0uIEl0IGV4Y2x1ZGVzIGFueXRoaW5nIHRoYXQgbWlnaHQgbm90IGJlIGNyb3NzLXBsYXRmb3JtIGZpbGVzeXN0ZW1cbi8vIGNvbXBhdGlibGUsIGxpa2UgfC4gSXQgZG9lcyBub3QgbmVlZCB0byBiZSBwcmVjaXNlIGJlY2F1c2UgdGhlIGZhbGxiYWNrIGlzIHRvXG4vLyBqdXN0IGJhc2U2NHVybC1lbmNvZGUgdGhlIHdob2xlIHBhcmFtZXRlciwgd2hpY2ggaXMgZmluZTsgd2UganVzdCBkb24ndCBkbyBpdFxuLy8gYnkgZGVmYXVsdCBmb3IgY29tcGFjdG5lc3MsIGFuZCBmb3IgZWFzaWVyIGRlYnVnZ2luZy5cbmNvbnN0IHNpbXBsZVBhcmFtVmFsdWVSZWdleCA9IC9eW2EtekEtWjAtOVxcLV9AXSskL1xuXG5mdW5jdGlvbiBlbmNvZGVUb0ZpbGVzeXN0ZW1BbmRVUkxTYWZlU3RyaW5nKHZhbHVlOiBzdHJpbmcpIHtcbiAgaWYgKHNpbXBsZVBhcmFtVmFsdWVSZWdleC50ZXN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG4gIC8vIElmIHRoZXJlIGFyZSBhbnkgdW5zYWZlIGNoYXJhY3RlcnMsIGJhc2U2NHVybC1lbmNvZGUgdGhlIGVudGlyZSB2YWx1ZS5cbiAgLy8gV2UgYWxzbyBhZGQgYSAhIHByZWZpeCBzbyBpdCBkb2Vzbid0IGNvbGxpZGUgd2l0aCB0aGUgc2ltcGxlIGNhc2UuXG4gIGNvbnN0IGJhc2U2NHVybCA9IGJ0b2EodmFsdWUpXG4gICAgLnJlcGxhY2UoL1xcKy9nLCAnLScpIC8vIFJlcGxhY2UgJysnIHdpdGggJy0nXG4gICAgLnJlcGxhY2UoL1xcLy9nLCAnXycpIC8vIFJlcGxhY2UgJy8nIHdpdGggJ18nXG4gICAgLnJlcGxhY2UoLz0rJC8sICcnKSAvLyBSZW1vdmUgdHJhaWxpbmcgJz0nXG4gIHJldHVybiAnIScgKyBiYXNlNjR1cmxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTZWdtZW50UGF0aFRvU3RhdGljRXhwb3J0RmlsZW5hbWUoXG4gIHNlZ21lbnRQYXRoOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIHJldHVybiBgX19uZXh0JHtzZWdtZW50UGF0aC5yZXBsYWNlKC9cXC8vZywgJy4nKX0udHh0YFxufVxuIl0sIm5hbWVzIjpbIlJPT1RfU0VHTUVOVF9LRVkiLCJjb252ZXJ0U2VnbWVudFBhdGhUb1N0YXRpY0V4cG9ydEZpbGVuYW1lIiwiZW5jb2RlQ2hpbGRTZWdtZW50S2V5IiwiZW5jb2RlU2VnbWVudCIsInNlZ21lbnQiLCJzdGFydHNXaXRoIiwiUEFHRV9TRUdNRU5UX0tFWSIsInNhZmVOYW1lIiwiZW5jb2RlVG9GaWxlc3lzdGVtQW5kVVJMU2FmZVN0cmluZyIsIm5hbWUiLCJwYXJhbVZhbHVlIiwicGFyYW1UeXBlIiwic2FmZVZhbHVlIiwiZW5jb2RlZE5hbWUiLCJwYXJlbnRTZWdtZW50S2V5IiwicGFyYWxsZWxSb3V0ZUtleSIsInNsb3RLZXkiLCJzaW1wbGVQYXJhbVZhbHVlUmVnZXgiLCJ2YWx1ZSIsInRlc3QiLCJiYXNlNjR1cmwiLCJidG9hIiwicmVwbGFjZSIsInNlZ21lbnRQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/segment.js":
/*!******************************************************!*\
!*** ./node_modules/next/dist/shared/lib/segment.js ***!
\******************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nconst PAGE_SEGMENT_KEY = '__PAGE__';\nconst DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLG1CQUFtQjtlQUFuQkE7O0lBREFDLGdCQUFnQjtlQUFoQkE7O0lBaEJHQyw0QkFBNEI7ZUFBNUJBOztJQVRBQyxjQUFjO2VBQWRBOztJQUtBQyxzQkFBc0I7ZUFBdEJBOzs7QUFMVCxTQUFTRCxlQUFlRSxPQUFlO0lBQzVDLHNDQUFzQztJQUN0QyxPQUFPQSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFDLFFBQVEsQ0FBQztBQUNoRDtBQUVPLFNBQVNGLHVCQUF1QkMsT0FBZTtJQUNwRCxPQUFPQSxRQUFRRSxVQUFVLENBQUMsUUFBUUYsWUFBWTtBQUNoRDtBQUVPLFNBQVNILDZCQUNkRyxPQUFnQixFQUNoQkcsWUFBMkQ7SUFFM0QsTUFBTUMsZ0JBQWdCSixRQUFRSyxRQUFRLENBQUNUO0lBRXZDLElBQUlRLGVBQWU7UUFDakIsTUFBTUUsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNMO1FBQ3hDLE9BQU9HLHFCQUFxQixPQUN4QlYsbUJBQW1CLE1BQU1VLG1CQUN6QlY7SUFDTjtJQUVBLE9BQU9JO0FBQ1Q7QUFFTyxNQUFNSixtQkFBbUI7QUFDekIsTUFBTUQsc0JBQXNCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9zZWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFsbGVsUm91dGVTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICByZXR1cm4gc2VnbWVudC5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudCAhPT0gJ0BjaGlsZHJlbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pIHtcbiAgY29uc3QgaXNQYWdlU2VnbWVudCA9IHNlZ21lbnQuaW5jbHVkZXMoUEFHRV9TRUdNRU5UX0tFWSlcblxuICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShzZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09ICd7fSdcbiAgICAgID8gUEFHRV9TRUdNRU5UX0tFWSArICc/JyArIHN0cmluZ2lmaWVkUXVlcnlcbiAgICAgIDogUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSAnX19QQUdFX18nXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9ICdfX0RFRkFVTFRfXydcbiJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwiUEFHRV9TRUdNRU5UX0tFWSIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJpc0dyb3VwU2VnbWVudCIsImlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2VhcmNoUGFyYW1zIiwiaXNQYWdlU2VnbWVudCIsImluY2x1ZGVzIiwic3RyaW5naWZpZWRRdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/segment.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/utils.js":
/*!****************************************************!*\
!*** ./node_modules/next/dist/shared/lib/utils.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? ':' + port : '');\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split('?');\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/').replace(/\\/\\/+/g, '/') + (urlParts[1] ? \"?\" + urlParts.slice(1).join('?') : '');\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== 'undefined';\nconst ST = SP && [\n 'mark',\n 'measure',\n 'getEntriesByName'\n].every((method)=>typeof performance[method] === 'function');\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = 'ENOENT';\n this.name = 'PageNotFoundError';\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = 'ENOENT';\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb2FhQSxXQUFXO2VBQVhBOztJQW9CQUMsdUJBQXVCO2VBQXZCQTs7SUFQQUMsaUJBQWlCO2VBQWpCQTs7SUFaQUMsY0FBYztlQUFkQTs7SUFDQUMsaUJBQWlCO2VBQWpCQTs7SUFUQUMsRUFBRTtlQUFGQTs7SUFDQUMsRUFBRTtlQUFGQTs7SUFsWEFDLFVBQVU7ZUFBVkE7O0lBc1FHQyxRQUFRO2VBQVJBOztJQStCQUMsY0FBYztlQUFkQTs7SUFYQUMsaUJBQWlCO2VBQWpCQTs7SUFLQUMsTUFBTTtlQUFOQTs7SUFQSEMsYUFBYTtlQUFiQTs7SUFtQkdDLFNBQVM7ZUFBVEE7O0lBa0JNQyxtQkFBbUI7ZUFBbkJBOztJQWROQyx3QkFBd0I7ZUFBeEJBOztJQStHQUMsY0FBYztlQUFkQTs7O0FBOVpULE1BQU1ULGFBQWE7SUFBQztJQUFPO0lBQU87SUFBTztJQUFPO0lBQU87Q0FBTztBQXNROUQsU0FBU0MsU0FDZFMsRUFBSztJQUVMLElBQUlDLE9BQU87SUFDWCxJQUFJQztJQUVKLE9BQVE7eUNBQUlDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO1lBQUFBLElBQUFBLENBQUFBLEtBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztRQUNWLElBQUksQ0FBQ0YsTUFBTTtZQUNUQSxPQUFPO1lBQ1BDLFNBQVNGLE1BQU1HO1FBQ2pCO1FBQ0EsT0FBT0Q7SUFDVDtBQUNGO0FBRUEsMERBQTBEO0FBQzFELGdFQUFnRTtBQUNoRSxNQUFNRSxxQkFBcUI7QUFDcEIsTUFBTVQsZ0JBQWdCLENBQUNVLE1BQWdCRCxtQkFBbUJFLElBQUksQ0FBQ0Q7QUFFL0QsU0FBU1o7SUFDZCxNQUFNLEVBQUVjLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsT0FBT0MsUUFB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QUFJLENBQUM5QixJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNpQixPQUFPLEdBQUksa0NBQStCWTtJQUNqRDtBQUNGO0FBRU8sTUFBTTlELDBCQUEwQm1EO0lBQ3JDVSxZQUFZQyxJQUFZLEVBQUVaLE9BQWUsQ0FBRTtRQUN6QyxLQUFLO1FBQ0wsSUFBSSxDQUFDQSxPQUFPLEdBQUksMENBQXVDWSxPQUFLLE1BQUdaO0lBQ2pFO0FBQ0Y7QUFFTyxNQUFNbkQsZ0NBQWdDb0Q7SUFFM0NVLGFBQWM7UUFDWixLQUFLO1FBQ0wsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNiLE9BQU8sR0FBSTtJQUNsQjtBQUNGO0FBV08sU0FBU3BDLGVBQWVrRCxLQUFZO0lBQ3pDLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQztRQUFFaEIsU0FBU2MsTUFBTWQsT0FBTztRQUFFaUIsT0FBT0gsTUFBTUcsS0FBSztJQUFDO0FBQ3JFIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEh0bWxQcm9wcyB9IGZyb20gJy4vaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlLCBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRW52IH0gZnJvbSAnQG5leHQvZW52J1xuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB0eXBlIHsgUHJldmlld0RhdGEgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ09NUElMRVJfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIGZzIGZyb20gJ2ZzJ1xuXG5leHBvcnQgdHlwZSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQ29udGV4dCBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuICBJbml0aWFsUHJvcHMgPSB7fSxcbiAgUHJvcHMgPSB7fSxcbj4gPSBDb21wb25lbnRUeXBlPFByb3BzPiAmIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGluaXRpYWwgcGFnZSBsb2FkIGRhdGEgcG9wdWxhdGlvbi4gRGF0YSByZXR1cm5lZCBmcm9tIGBnZXRJbml0aWFsUHJvcHNgIGlzIHNlcmlhbGl6ZWQgd2hlbiBzZXJ2ZXIgcmVuZGVyZWQuXG4gICAqIE1ha2Ugc3VyZSB0byByZXR1cm4gcGxhaW4gYE9iamVjdGAgd2l0aG91dCB1c2luZyBgRGF0ZWAsIGBNYXBgLCBgU2V0YC5cbiAgICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiBgcGFnZWBcbiAgICovXG4gIGdldEluaXRpYWxQcm9wcz8oY29udGV4dDogQ29udGV4dCk6IEluaXRpYWxQcm9wcyB8IFByb21pc2U8SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFR5cGUgPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgRG9jdW1lbnRDb250ZXh0LFxuICBEb2N1bWVudEluaXRpYWxQcm9wcyxcbiAgRG9jdW1lbnRQcm9wc1xuPlxuXG5leHBvcnQgdHlwZSBBcHBUeXBlPFAgPSB7fT4gPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQXBwQ29udGV4dFR5cGUsXG4gIFAsXG4gIEFwcFByb3BzVHlwZTxhbnksIFA+XG4+XG5cbmV4cG9ydCB0eXBlIEFwcFRyZWVUeXBlID0gQ29tcG9uZW50VHlwZTxcbiAgQXBwSW5pdGlhbFByb3BzICYgeyBbbmFtZTogc3RyaW5nXTogYW55IH1cbj5cblxuLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFdFQl9WSVRBTFMgPSBbJ0NMUycsICdGQ1AnLCAnRklEJywgJ0lOUCcsICdMQ1AnLCAnVFRGQiddIGFzIGNvbnN0XG5leHBvcnQgdHlwZSBOZXh0V2ViVml0YWxzTWV0cmljID0ge1xuICBpZDogc3RyaW5nXG4gIHN0YXJ0VGltZTogbnVtYmVyXG4gIHZhbHVlOiBudW1iZXJcbiAgYXR0cmlidXRpb24/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfVxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbDogJ3dlYi12aXRhbCdcbiAgICAgIG5hbWU6ICh0eXBlb2YgV0VCX1ZJVEFMUylbbnVtYmVyXVxuICAgIH1cbiAgfCB7XG4gICAgICBsYWJlbDogJ2N1c3RvbSdcbiAgICAgIG5hbWU6XG4gICAgICAgIHwgJ05leHQuanMtaHlkcmF0aW9uJ1xuICAgICAgICB8ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInXG4gICAgICAgIHwgJ05leHQuanMtcmVuZGVyJ1xuICAgIH1cbilcblxuZXhwb3J0IHR5cGUgRW5oYW5jZXI8Qz4gPSAoQ29tcG9uZW50OiBDKSA9PiBDXG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudHNFbmhhbmNlciA9XG4gIHwge1xuICAgICAgZW5oYW5jZUFwcD86IEVuaGFuY2VyPEFwcFR5cGU+XG4gICAgICBlbmhhbmNlQ29tcG9uZW50PzogRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG4gICAgfVxuICB8IEVuaGFuY2VyPE5leHRDb21wb25lbnRUeXBlPlxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlUmVzdWx0ID0ge1xuICBodG1sOiBzdHJpbmdcbiAgaGVhZD86IEFycmF5PEpTWC5FbGVtZW50IHwgbnVsbD5cbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyUGFnZSA9IChcbiAgb3B0aW9ucz86IENvbXBvbmVudHNFbmhhbmNlclxuKSA9PiBEb2N1bWVudEluaXRpYWxQcm9wcyB8IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+XG5cbmV4cG9ydCB0eXBlIEJhc2VDb250ZXh0ID0ge1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICBbazogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCB0eXBlIE5FWFRfREFUQSA9IHtcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcGFnZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBidWlsZElkOiBzdHJpbmdcbiAgYXNzZXRQcmVmaXg/OiBzdHJpbmdcbiAgcnVudGltZUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgbmV4dEV4cG9ydD86IGJvb2xlYW5cbiAgYXV0b0V4cG9ydD86IGJvb2xlYW5cbiAgaXNGYWxsYmFjaz86IGJvb2xlYW5cbiAgaXNFeHBlcmltZW50YWxDb21waWxlPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICBlcnI/OiBFcnJvciAmIHtcbiAgICBzdGF0dXNDb2RlPzogbnVtYmVyXG4gICAgc291cmNlPzogdHlwZW9mIENPTVBJTEVSX05BTUVTLnNlcnZlciB8IHR5cGVvZiBDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXG4gIH1cbiAgZ3NwPzogYm9vbGVhblxuICBnc3NwPzogYm9vbGVhblxuICBjdXN0b21TZXJ2ZXI/OiBib29sZWFuXG4gIGdpcD86IGJvb2xlYW5cbiAgYXBwR2lwPzogYm9vbGVhblxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgZG9tYWluTG9jYWxlcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdXG4gIHNjcmlwdExvYWRlcj86IGFueVtdXG4gIGlzUHJldmlldz86IGJvb2xlYW5cbiAgbm90Rm91bmRTcmNQYWdlPzogc3RyaW5nXG59XG5cbi8qKlxuICogYE5leHRgIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0UGFnZUNvbnRleHQge1xuICAvKipcbiAgICogRXJyb3Igb2JqZWN0IGlmIGVuY291bnRlcmVkIGR1cmluZyByZW5kZXJpbmdcbiAgICovXG4gIGVycj86IChFcnJvciAmIHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSB8IG51bGxcbiAgLyoqXG4gICAqIGBIVFRQYCByZXF1ZXN0IG9iamVjdC5cbiAgICovXG4gIHJlcT86IEluY29taW5nTWVzc2FnZVxuICAvKipcbiAgICogYEhUVFBgIHJlc3BvbnNlIG9iamVjdC5cbiAgICovXG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIC8qKlxuICAgKiBQYXRoIHNlY3Rpb24gb2YgYFVSTGAuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBRdWVyeSBzdHJpbmcgc2VjdGlvbiBvZiBgVVJMYCBwYXJzZWQgYXMgYW4gb2JqZWN0LlxuICAgKi9cbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIC8qKlxuICAgKiBgU3RyaW5nYCBvZiB0aGUgYWN0dWFsIHBhdGggaW5jbHVkaW5nIHF1ZXJ5LlxuICAgKi9cbiAgYXNQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBsb2NhbGVcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogQWxsIGNvbmZpZ3VyZWQgbG9jYWxlc1xuICAgKi9cbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBkZWZhdWx0IGxvY2FsZVxuICAgKi9cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogYENvbXBvbmVudGAgdGhlIHRyZWUgb2YgdGhlIEFwcCB0byB1c2UgaWYgbmVlZGluZyB0byByZW5kZXIgc2VwYXJhdGVseVxuICAgKi9cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbn1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dFR5cGU8Um91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXI+ID0ge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dD5cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbiAgY3R4OiBOZXh0UGFnZUNvbnRleHRcbiAgcm91dGVyOiBSb3V0ZXJcbn1cblxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcyA9IGFueT4gPSB7XG4gIHBhZ2VQcm9wczogUGFnZVByb3BzXG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzVHlwZTxcbiAgUm91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXIsXG4gIFBhZ2VQcm9wcyA9IHt9LFxuPiA9IEFwcEluaXRpYWxQcm9wczxQYWdlUHJvcHM+ICYge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dCwgYW55LCBhbnk+XG4gIHJvdXRlcjogUm91dGVyXG4gIF9fTl9TU0c/OiBib29sZWFuXG4gIF9fTl9TU1A/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50Q29udGV4dCA9IE5leHRQYWdlQ29udGV4dCAmIHtcbiAgcmVuZGVyUGFnZTogUmVuZGVyUGFnZVxuICBkZWZhdWx0R2V0SW5pdGlhbFByb3BzKFxuICAgIGN0eDogRG9jdW1lbnRDb250ZXh0LFxuICAgIG9wdGlvbnM/OiB7IG5vbmNlPzogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRJbml0aWFsUHJvcHMgPSBSZW5kZXJQYWdlUmVzdWx0ICYge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IEl0ZXJhYmxlPFJlYWN0LlJlYWN0Tm9kZT4gfCBKU1guRWxlbWVudFxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFByb3BzID0gRG9jdW1lbnRJbml0aWFsUHJvcHMgJiBIdG1sUHJvcHNcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXVxuICB9PlxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczogUGFydGlhbDx7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH0+XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBkcmFmdE1vZGU/OiBib29sZWFuXG5cbiAgcHJldmlldz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFByZXZpZXcgZGF0YSBzZXQgb24gdGhlIHJlcXVlc3QsIGlmIGFueVxuICAgKiAqL1xuICBwcmV2aWV3RGF0YT86IFByZXZpZXdEYXRhXG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8RGF0YSA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPERhdGE+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8RGF0YT5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFNldCBkcmFmdCBtb2RlXG4gICAqL1xuICBzZXREcmFmdE1vZGU6IChvcHRpb25zOiB7IGVuYWJsZTogYm9vbGVhbiB9KSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIHNldFByZXZpZXdEYXRhOiAoXG4gICAgZGF0YTogb2JqZWN0IHwgc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIChpbiBzZWNvbmRzKSBmb3IgdGhlIHByZXZpZXcgc2Vzc2lvbiB0byBsYXN0IGZvci5cbiAgICAgICAqIFRoZSBnaXZlbiBudW1iZXIgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBieSByb3VuZGluZyBkb3duLlxuICAgICAgICogQnkgZGVmYXVsdCwgbm8gbWF4aW11bSBhZ2UgaXMgc2V0IGFuZCB0aGUgcHJldmlldyBzZXNzaW9uIGZpbmlzaGVzXG4gICAgICAgKiB3aGVuIHRoZSBjbGllbnQgc2h1dHMgZG93biAoYnJvd3NlciBpcyBjbG9zZWQpLlxuICAgICAgICovXG4gICAgICBtYXhBZ2U/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBwYXRoIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIHdvcmsgdW5kZXIuIEJ5IGRlZmF1bHQsXG4gICAgICAgKiB0aGUgcGF0aCBpcyBjb25zaWRlcmVkIHRoZSBcImRlZmF1bHQgcGF0aFwiLCBpLmUuLCBhbnkgcGFnZXMgdW5kZXIgXCIvXCIuXG4gICAgICAgKi9cbiAgICAgIHBhdGg/OiBzdHJpbmdcbiAgICB9XG4gICkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIENsZWFyIHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIGNsZWFyUHJldmlld0RhdGE6IChvcHRpb25zPzogeyBwYXRoPzogc3RyaW5nIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIGEgc3BlY2lmaWMgcGFnZSBhbmQgcmVnZW5lcmF0ZSBpdCB1c2luZyBPbi1EZW1hbmQgSW5jcmVtZW50YWxcbiAgICogU3RhdGljIFJlZ2VuZXJhdGlvbi5cbiAgICogVGhlIHBhdGggc2hvdWxkIGJlIGFuIGFjdHVhbCBwYXRoLCBub3QgYSByZXdyaXR0ZW4gcGF0aC4gRS5nLiBmb3JcbiAgICogXCIvYmxvZy9bc2x1Z11cIiB0aGlzIHNob3VsZCBiZSBcIi9ibG9nL3Bvc3QtMVwiLlxuICAgKiBAbGluayBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb24jb24tZGVtYW5kLXJldmFsaWRhdGlvbi13aXRoLXJldmFsaWRhdGVwYXRoXG4gICAqL1xuICByZXZhbGlkYXRlOiAoXG4gICAgdXJsUGF0aDogc3RyaW5nLFxuICAgIG9wdHM/OiB7XG4gICAgICB1bnN0YWJsZV9vbmx5R2VuZXJhdGVkPzogYm9vbGVhblxuICAgIH1cbiAgKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSBoYW5kbGVyXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlIYW5kbGVyPFQgPSBhbnk+ID0gKFxuICByZXE6IE5leHRBcGlSZXF1ZXN0LFxuICByZXM6IE5leHRBcGlSZXNwb25zZTxUPlxuKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPlxuXG4vKipcbiAqIFV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjT25jZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBSZXR1cm5UeXBlPFQ+PihcbiAgZm46IFRcbik6IFQge1xuICBsZXQgdXNlZCA9IGZhbHNlXG4gIGxldCByZXN1bHQ6IFJldHVyblR5cGU8VD5cblxuICByZXR1cm4gKCguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICghdXNlZCkge1xuICAgICAgdXNlZCA9IHRydWVcbiAgICAgIHJlc3VsdCA9IGZuKC4uLmFyZ3MpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfSkgYXMgVFxufVxuXG4vLyBTY2hlbWU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4xXG4vLyBBYnNvbHV0ZSBVUkw6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tNC4zXG5jb25zdCBBQlNPTFVURV9VUkxfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi9cbmV4cG9ydCBjb25zdCBpc0Fic29sdXRlVXJsID0gKHVybDogc3RyaW5nKSA9PiBBQlNPTFVURV9VUkxfUkVHRVgudGVzdCh1cmwpXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKVxuICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF1cblxuICByZXR1cm4gKFxuICAgIHVybE5vUXVlcnlcbiAgICAgIC8vIGZpcnN0IHdlIHJlcGxhY2UgYW55IG5vbi1lbmNvZGVkIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZFxuICAgICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvXFwvKy9nLCAnLycpICtcbiAgICAodXJsUGFydHNbMV0gPyBgPyR7dXJsUGFydHMuc2xpY2UoMSkuam9pbignPycpfWAgOiAnJylcbiAgKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdldEluaXRpYWxQcm9wczxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0LFxuICBJUCA9IHt9LFxuICBQID0ge30sXG4+KEFwcDogTmV4dENvbXBvbmVudFR5cGU8QywgSVAsIFA+LCBjdHg6IEMpOiBQcm9taXNlPElQPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKEFwcC5wcm90b3R5cGU/LmdldEluaXRpYWxQcm9wcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgIEFwcFxuICAgICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICB9XG4gIH1cbiAgLy8gd2hlbiBjYWxsZWQgZnJvbSBfYXBwIGBjdHhgIGlzIG5lc3RlZCBpbiBgY3R4YFxuICBjb25zdCByZXMgPSBjdHgucmVzIHx8IChjdHguY3R4ICYmIGN0eC5jdHgucmVzKVxuXG4gIGlmICghQXBwLmdldEluaXRpYWxQcm9wcykge1xuICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhZ2VQcm9wczogYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhjdHguQ29tcG9uZW50LCBjdHguY3R4KSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9IGFzIElQXG4gIH1cblxuICBjb25zdCBwcm9wcyA9IGF3YWl0IEFwcC5nZXRJbml0aWFsUHJvcHMoY3R4KVxuXG4gIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGlmICghcHJvcHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgIEFwcFxuICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYFxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgICBBcHBcbiAgICAgICAgKX0gcmV0dXJuZWQgYW4gZW1wdHkgb2JqZWN0IGZyb20gXFxgZ2V0SW5pdGlhbFByb3BzXFxgLiBUaGlzIGRlLW9wdGltaXplcyBhbmQgcHJldmVudHMgYXV0b21hdGljIHN0YXRpYyBvcHRpbWl6YXRpb24uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2VtcHR5LW9iamVjdC1nZXRJbml0aWFsUHJvcHNgXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb3BzXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIChbJ21hcmsnLCAnbWVhc3VyZScsICdnZXRFbnRyaWVzQnlOYW1lJ10gYXMgY29uc3QpLmV2ZXJ5KFxuICAgIChtZXRob2QpID0+IHR5cGVvZiBwZXJmb3JtYW5jZVttZXRob2RdID09PSAnZnVuY3Rpb24nXG4gIClcblxuZXhwb3J0IGNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVFcnJvciBleHRlbmRzIEVycm9yIHt9XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvZGUgPSAnRU5PRU5UJ1xuICAgIHRoaXMubmFtZSA9ICdQYWdlTm90Rm91bmRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgbW9kdWxlIGZvciBwYWdlOiAke3BhZ2V9YFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nU3RhdGljUGFnZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5tZXNzYWdlID0gYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBmaWxlIGZvciBwYWdlOiAke3BhZ2V9ICR7bWVzc2FnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5tZXNzYWdlID0gYENhbm5vdCBmaW5kIHRoZSBtaWRkbGV3YXJlIG1vZHVsZWBcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlRnMge1xuICBleGlzdHNTeW5jOiB0eXBlb2YgZnMuZXhpc3RzU3luY1xuICByZWFkRmlsZTogdHlwZW9mIGZzLnByb21pc2VzLnJlYWRGaWxlXG4gIHJlYWRGaWxlU3luYzogdHlwZW9mIGZzLnJlYWRGaWxlU3luY1xuICB3cml0ZUZpbGUoZjogc3RyaW5nLCBkOiBhbnkpOiBQcm9taXNlPHZvaWQ+XG4gIG1rZGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkIHwgc3RyaW5nPlxuICBzdGF0KGY6IHN0cmluZyk6IFByb21pc2U8eyBtdGltZTogRGF0ZSB9PlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFjayB9KVxufVxuIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwicGVyZm9ybWFuY2UiLCJldmVyeSIsIm1ldGhvZCIsImNvbnN0cnVjdG9yIiwicGFnZSIsImNvZGUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/utils/reflect-utils.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// This regex will have fast negatives meaning valid identifiers may not pass\n// this test. However this is only used during static generation to provide hints\n// about why a page bailed out of some or all prerendering and we can use bracket notation\n// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`\n// even if this would have been fine too `searchParams.ಠ_ಠ`\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n describeHasCheckingStringProperty: function() {\n return describeHasCheckingStringProperty;\n },\n describeStringPropertyAccess: function() {\n return describeStringPropertyAccess;\n },\n wellKnownProperties: function() {\n return wellKnownProperties;\n }\n});\nconst isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\nfunction describeStringPropertyAccess(target, prop) {\n if (isDefinitelyAValidIdentifier.test(prop)) {\n return \"`\" + target + \".\" + prop + \"`\";\n }\n return \"`\" + target + \"[\" + JSON.stringify(prop) + \"]`\";\n}\nfunction describeHasCheckingStringProperty(target, prop) {\n const stringifiedProp = JSON.stringify(prop);\n return \"`Reflect.has(\" + target + \", \" + stringifiedProp + \")`, `\" + stringifiedProp + \" in \" + target + \"`, or similar\";\n}\nconst wellKnownProperties = new Set([\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toString',\n 'valueOf',\n 'toLocaleString',\n // Promise prototype\n // fallthrough\n 'then',\n 'catch',\n 'finally',\n // React Promise extension\n // fallthrough\n 'status',\n // React introspection\n 'displayName',\n '_debugInfo',\n // Common tested properties\n // fallthrough\n 'toJSON',\n '$$typeof',\n '__esModule'\n]); //# sourceMappingURL=reflect-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2RUFBNkU7QUFDN0UsaUZBQWlGO0FBQ2pGLDBGQUEwRjtBQUMxRix1RkFBdUY7QUFDdkYsMkRBQTJEOzs7Ozs7Ozs7Ozs7O0lBVTNDQSxpQ0FBaUM7ZUFBakNBOztJQVBBQyw0QkFBNEI7ZUFBNUJBOztJQWVIQyxtQkFBbUI7ZUFBbkJBOzs7QUFqQmIsTUFBTUMsK0JBQStCO0FBRTlCLFNBQVNGLDZCQUE2QkcsTUFBYyxFQUFFQyxJQUFZO0lBQ3ZFLElBQUlGLDZCQUE2QkcsSUFBSSxDQUFDRCxPQUFPO1FBQzNDLE9BQVEsTUFBSUQsU0FBTyxNQUFHQyxPQUFLO0lBQzdCO0lBQ0EsT0FBUSxNQUFJRCxTQUFPLE1BQUdHLEtBQUtDLFNBQVMsQ0FBQ0gsUUFBTTtBQUM3QztBQUVPLFNBQVNMLGtDQUNkSSxNQUFjLEVBQ2RDLElBQVk7SUFFWixNQUFNSSxrQkFBa0JGLEtBQUtDLFNBQVMsQ0FBQ0g7SUFDdkMsT0FBUSxrQkFBZ0JELFNBQU8sT0FBSUssa0JBQWdCLFVBQVNBLGtCQUFnQixTQUFNTCxTQUFPO0FBQzNGO0FBRU8sTUFBTUYsc0JBQXNCLElBQUlRLElBQUk7SUFDekM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUEsb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZDtJQUNBO0lBQ0E7SUFFQSwwQkFBMEI7SUFDMUIsY0FBYztJQUNkO0lBRUEsc0JBQXNCO0lBQ3RCO0lBQ0E7SUFFQSwyQkFBMkI7SUFDM0IsY0FBYztJQUNkO0lBQ0E7SUFDQTtDQUNEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi91dGlscy9yZWZsZWN0LXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgcmVnZXggd2lsbCBoYXZlIGZhc3QgbmVnYXRpdmVzIG1lYW5pbmcgdmFsaWQgaWRlbnRpZmllcnMgbWF5IG5vdCBwYXNzXG4vLyB0aGlzIHRlc3QuIEhvd2V2ZXIgdGhpcyBpcyBvbmx5IHVzZWQgZHVyaW5nIHN0YXRpYyBnZW5lcmF0aW9uIHRvIHByb3ZpZGUgaGludHNcbi8vIGFib3V0IHdoeSBhIHBhZ2UgYmFpbGVkIG91dCBvZiBzb21lIG9yIGFsbCBwcmVyZW5kZXJpbmcgYW5kIHdlIGNhbiB1c2UgYnJhY2tldCBub3RhdGlvblxuLy8gZm9yIGV4YW1wbGUgd2hpbGUgYOCyoF/gsqBgIGlzIGEgdmFsaWQgaWRlbnRpZmllciBpdCdzIG9rIHRvIHByaW50IGBzZWFyY2hQYXJhbXNbJ+CyoF/gsqAnXWBcbi8vIGV2ZW4gaWYgdGhpcyB3b3VsZCBoYXZlIGJlZW4gZmluZSB0b28gYHNlYXJjaFBhcmFtcy7gsqBf4LKgYFxuY29uc3QgaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllciA9IC9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qJC9cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3ModGFyZ2V0OiBzdHJpbmcsIHByb3A6IHN0cmluZykge1xuICBpZiAoaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllci50ZXN0KHByb3ApKSB7XG4gICAgcmV0dXJuIGBcXGAke3RhcmdldH0uJHtwcm9wfVxcYGBcbiAgfVxuICByZXR1cm4gYFxcYCR7dGFyZ2V0fVske0pTT04uc3RyaW5naWZ5KHByb3ApfV1cXGBgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkoXG4gIHRhcmdldDogc3RyaW5nLFxuICBwcm9wOiBzdHJpbmdcbikge1xuICBjb25zdCBzdHJpbmdpZmllZFByb3AgPSBKU09OLnN0cmluZ2lmeShwcm9wKVxuICByZXR1cm4gYFxcYFJlZmxlY3QuaGFzKCR7dGFyZ2V0fSwgJHtzdHJpbmdpZmllZFByb3B9KVxcYCwgXFxgJHtzdHJpbmdpZmllZFByb3B9IGluICR7dGFyZ2V0fVxcYCwgb3Igc2ltaWxhcmBcbn1cblxuZXhwb3J0IGNvbnN0IHdlbGxLbm93blByb3BlcnRpZXMgPSBuZXcgU2V0KFtcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZicsXG4gICd0b0xvY2FsZVN0cmluZycsXG5cbiAgLy8gUHJvbWlzZSBwcm90b3R5cGVcbiAgLy8gZmFsbHRocm91Z2hcbiAgJ3RoZW4nLFxuICAnY2F0Y2gnLFxuICAnZmluYWxseScsXG5cbiAgLy8gUmVhY3QgUHJvbWlzZSBleHRlbnNpb25cbiAgLy8gZmFsbHRocm91Z2hcbiAgJ3N0YXR1cycsXG5cbiAgLy8gUmVhY3QgaW50cm9zcGVjdGlvblxuICAnZGlzcGxheU5hbWUnLFxuICAnX2RlYnVnSW5mbycsXG5cbiAgLy8gQ29tbW9uIHRlc3RlZCBwcm9wZXJ0aWVzXG4gIC8vIGZhbGx0aHJvdWdoXG4gICd0b0pTT04nLFxuICAnJCR0eXBlb2YnLFxuICAnX19lc01vZHVsZScsXG5dKVxuIl0sIm5hbWVzIjpbImRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSIsImRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MiLCJ3ZWxsS25vd25Qcm9wZXJ0aWVzIiwiaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllciIsInRhcmdldCIsInByb3AiLCJ0ZXN0IiwiSlNPTiIsInN0cmluZ2lmeSIsInN0cmluZ2lmaWVkUHJvcCIsIlNldCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Kanit/Kanit-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-MediumItalic.ttf\",\"weight\":\"500\",\"style\":\"italic\"}],\"variable\":\"--font-kanit\",\"display\":\"swap\"}],\"variableName\":\"kanit\"}":
/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/font/local/target.css?{"path":"src/app/layout.tsx","import":"","arguments":[{"src":[{"path":"../fonts/Kanit/Kanit-Regular.ttf","weight":"400","style":"normal"},{"path":"../fonts/Kanit/Kanit-Medium.ttf","weight":"500","style":"normal"},{"path":"../fonts/Kanit/Kanit-MediumItalic.ttf","weight":"500","style":"italic"}],"variable":"--font-kanit","display":"swap"}],"variableName":"kanit"} ***!
\*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((module) => {
eval("// Exports\nmodule.exports = {\n\t\"style\": {\"fontFamily\":\"'kanit', 'kanit Fallback'\"},\n\t\"className\": \"__className_45a6d9\",\n\t\"variable\": \"__variable_45a6d9\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9mb250L2xvY2FsL3RhcmdldC5jc3M/e1wicGF0aFwiOlwic3JjL2FwcC9sYXlvdXQudHN4XCIsXCJpbXBvcnRcIjpcIlwiLFwiYXJndW1lbnRzXCI6W3tcInNyY1wiOlt7XCJwYXRoXCI6XCIuLi9mb250cy9LYW5pdC9LYW5pdC1SZWd1bGFyLnR0ZlwiLFwid2VpZ2h0XCI6XCI0MDBcIixcInN0eWxlXCI6XCJub3JtYWxcIn0se1wicGF0aFwiOlwiLi4vZm9udHMvS2FuaXQvS2FuaXQtTWVkaXVtLnR0ZlwiLFwid2VpZ2h0XCI6XCI1MDBcIixcInN0eWxlXCI6XCJub3JtYWxcIn0se1wicGF0aFwiOlwiLi4vZm9udHMvS2FuaXQvS2FuaXQtTWVkaXVtSXRhbGljLnR0ZlwiLFwid2VpZ2h0XCI6XCI1MDBcIixcInN0eWxlXCI6XCJpdGFsaWNcIn1dLFwidmFyaWFibGVcIjpcIi0tZm9udC1rYW5pdFwiLFwiZGlzcGxheVwiOlwic3dhcFwifV0sXCJ2YXJpYWJsZU5hbWVcIjpcImthbml0XCJ9IiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxXQUFXLHlDQUF5QztBQUNwRDtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2ZvbnQvbG9jYWwvdGFyZ2V0LmNzcz97XCJwYXRoXCI6XCJzcmMvYXBwL2xheW91dC50c3hcIixcImltcG9ydFwiOlwiXCIsXCJhcmd1bWVudHNcIjpbe1wic3JjXCI6W3tcInBhdGhcIjpcIi4uL2ZvbnRzL0thbml0L0thbml0LVJlZ3VsYXIudHRmXCIsXCJ3ZWlnaHRcIjpcIjQwMFwiLFwic3R5bGVcIjpcIm5vcm1hbFwifSx7XCJwYXRoXCI6XCIuLi9mb250cy9LYW5pdC9LYW5pdC1NZWRpdW0udHRmXCIsXCJ3ZWlnaHRcIjpcIjUwMFwiLFwic3R5bGVcIjpcIm5vcm1hbFwifSx7XCJwYXRoXCI6XCIuLi9mb250cy9LYW5pdC9LYW5pdC1NZWRpdW1JdGFsaWMudHRmXCIsXCJ3ZWlnaHRcIjpcIjUwMFwiLFwic3R5bGVcIjpcIml0YWxpY1wifV0sXCJ2YXJpYWJsZVwiOlwiLS1mb250LWthbml0XCIsXCJkaXNwbGF5XCI6XCJzd2FwXCJ9XSxcInZhcmlhYmxlTmFtZVwiOlwia2FuaXRcIn0iXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRXhwb3J0c1xubW9kdWxlLmV4cG9ydHMgPSB7XG5cdFwic3R5bGVcIjoge1wiZm9udEZhbWlseVwiOlwiJ2thbml0JywgJ2thbml0IEZhbGxiYWNrJ1wifSxcblx0XCJjbGFzc05hbWVcIjogXCJfX2NsYXNzTmFtZV80NWE2ZDlcIixcblx0XCJ2YXJpYWJsZVwiOiBcIl9fdmFyaWFibGVfNDVhNmQ5XCJcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Kanit/Kanit-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-MediumItalic.ttf\",\"weight\":\"500\",\"style\":\"italic\"}],\"variable\":\"--font-kanit\",\"display\":\"swap\"}],\"variableName\":\"kanit\"}\n");
/***/ }),
/***/ "(rsc)/./node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Rajdhani/Rajdhani-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-rajdhani\",\"display\":\"swap\"}],\"variableName\":\"rajdhani\"}":
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/font/local/target.css?{"path":"src/app/layout.tsx","import":"","arguments":[{"src":[{"path":"../fonts/Rajdhani/Rajdhani-SemiBold.ttf","weight":"600","style":"normal"},{"path":"../fonts/Rajdhani/Rajdhani-Bold.ttf","weight":"700","style":"normal"}],"variable":"--font-rajdhani","display":"swap"}],"variableName":"rajdhani"} ***!
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((module) => {
eval("// Exports\nmodule.exports = {\n\t\"style\": {\"fontFamily\":\"'rajdhani', 'rajdhani Fallback'\"},\n\t\"className\": \"__className_6132b0\",\n\t\"variable\": \"__variable_6132b0\"\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9mb250L2xvY2FsL3RhcmdldC5jc3M/e1wicGF0aFwiOlwic3JjL2FwcC9sYXlvdXQudHN4XCIsXCJpbXBvcnRcIjpcIlwiLFwiYXJndW1lbnRzXCI6W3tcInNyY1wiOlt7XCJwYXRoXCI6XCIuLi9mb250cy9SYWpkaGFuaS9SYWpkaGFuaS1TZW1pQm9sZC50dGZcIixcIndlaWdodFwiOlwiNjAwXCIsXCJzdHlsZVwiOlwibm9ybWFsXCJ9LHtcInBhdGhcIjpcIi4uL2ZvbnRzL1JhamRoYW5pL1JhamRoYW5pLUJvbGQudHRmXCIsXCJ3ZWlnaHRcIjpcIjcwMFwiLFwic3R5bGVcIjpcIm5vcm1hbFwifV0sXCJ2YXJpYWJsZVwiOlwiLS1mb250LXJhamRoYW5pXCIsXCJkaXNwbGF5XCI6XCJzd2FwXCJ9XSxcInZhcmlhYmxlTmFtZVwiOlwicmFqZGhhbmlcIn0iLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLFdBQVcsK0NBQStDO0FBQzFEO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZm9udC9sb2NhbC90YXJnZXQuY3NzP3tcInBhdGhcIjpcInNyYy9hcHAvbGF5b3V0LnRzeFwiLFwiaW1wb3J0XCI6XCJcIixcImFyZ3VtZW50c1wiOlt7XCJzcmNcIjpbe1wicGF0aFwiOlwiLi4vZm9udHMvUmFqZGhhbmkvUmFqZGhhbmktU2VtaUJvbGQudHRmXCIsXCJ3ZWlnaHRcIjpcIjYwMFwiLFwic3R5bGVcIjpcIm5vcm1hbFwifSx7XCJwYXRoXCI6XCIuLi9mb250cy9SYWpkaGFuaS9SYWpkaGFuaS1Cb2xkLnR0ZlwiLFwid2VpZ2h0XCI6XCI3MDBcIixcInN0eWxlXCI6XCJub3JtYWxcIn1dLFwidmFyaWFibGVcIjpcIi0tZm9udC1yYWpkaGFuaVwiLFwiZGlzcGxheVwiOlwic3dhcFwifV0sXCJ2YXJpYWJsZU5hbWVcIjpcInJhamRoYW5pXCJ9Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEV4cG9ydHNcbm1vZHVsZS5leHBvcnRzID0ge1xuXHRcInN0eWxlXCI6IHtcImZvbnRGYW1pbHlcIjpcIidyYWpkaGFuaScsICdyYWpkaGFuaSBGYWxsYmFjaydcIn0sXG5cdFwiY2xhc3NOYW1lXCI6IFwiX19jbGFzc05hbWVfNjEzMmIwXCIsXG5cdFwidmFyaWFibGVcIjogXCJfX3ZhcmlhYmxlXzYxMzJiMFwiXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Rajdhani/Rajdhani-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-rajdhani\",\"display\":\"swap\"}],\"variableName\":\"rajdhani\"}\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/api/constants.js":
/*!*************************************************!*\
!*** ./node_modules/next/dist/api/constants.js ***!
\*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/constants */ \"(ssr)/./node_modules/next/dist/shared/lib/constants.js\");\n/* harmony import */ var _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _shared_lib_constants__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXdDOztBQUV4QyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9hcGkvY29uc3RhbnRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4uL3NoYXJlZC9saWIvY29uc3RhbnRzJztcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/api/constants.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/api/image.js":
/*!*********************************************!*\
!*** ./node_modules/next/dist/api/image.js ***!
\*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport default from dynamic */ _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0___default.a)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/image-external */ \"(ssr)/./node_modules/next/dist/shared/lib/image-external.js\");\n/* harmony import */ var _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n\n//# sourceMappingURL=image.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9pbWFnZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBdUQ7QUFDVjs7QUFFN0MiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL2ltYWdlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuLi9zaGFyZWQvbGliL2ltYWdlLWV4dGVybmFsJztcbmV4cG9ydCAqIGZyb20gJy4uL3NoYXJlZC9saWIvaW1hZ2UtZXh0ZXJuYWwnO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/api/image.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/api/navigation.js":
/*!**************************************************!*\
!*** ./node_modules/next/dist/api/navigation.js ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=navigation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9uYXZpZ2F0aW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFnRDs7QUFFaEQiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL25hdmlnYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi4vY2xpZW50L2NvbXBvbmVudHMvbmF2aWdhdGlvbic7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW5hdmlnYXRpb24uanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/api/navigation.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/add-base-path.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/client/add-base-path.js ***!
\********************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addBasePath\", ({\n enumerable: true,\n get: function() {\n return addBasePath;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ../shared/lib/router/utils/add-path-prefix */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(ssr)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || '';\nfunction addBasePath(path, required) {\n return (0, _normalizetrailingslash.normalizePathTrailingSlash)( false ? 0 : (0, _addpathprefix.addPathPrefix)(path, basePath));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtYmFzZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBS2dCQTs7O2VBQUFBOzs7MkNBTGM7b0RBQ2E7QUFFM0MsTUFBTUMsV0FBWUMsTUFBa0MsSUFBZTtBQUU1RCxTQUFTRixZQUFZSyxJQUFZLEVBQUVDLFFBQWtCO0lBQzFELE9BQU9DLENBQUFBLEdBQUFBLHdCQUFBQSwwQkFBQUEsRUFDTEwsTUFBdURJLEdBQ25ERCxDQUFJQSxHQUNKSSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjSixNQUFNSjtBQUU1QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL3NyYy9jbGllbnQvYWRkLWJhc2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRQYXRoUHJlZml4IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLXBhdGgtcHJlZml4J1xuaW1wb3J0IHsgbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggfSBmcm9tICcuL25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaCdcblxuY29uc3QgYmFzZVBhdGggPSAocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCBhcyBzdHJpbmcpIHx8ICcnXG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRCYXNlUGF0aChwYXRoOiBzdHJpbmcsIHJlcXVpcmVkPzogYm9vbGVhbik6IHN0cmluZyB7XG4gIHJldHVybiBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaChcbiAgICBwcm9jZXNzLmVudi5fX05FWFRfTUFOVUFMX0NMSUVOVF9CQVNFX1BBVEggJiYgIXJlcXVpcmVkXG4gICAgICA/IHBhdGhcbiAgICAgIDogYWRkUGF0aFByZWZpeChwYXRoLCBiYXNlUGF0aClcbiAgKVxufVxuIl0sIm5hbWVzIjpbImFkZEJhc2VQYXRoIiwiYmFzZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1JPVVRFUl9CQVNFUEFUSCIsInBhdGgiLCJyZXF1aXJlZCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwiX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIIiwiYWRkUGF0aFByZWZpeCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/add-base-path.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/app-build-id.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/client/app-build-id.js ***!
\*******************************************************/
/***/ ((module, exports) => {
"use strict";
eval("// This gets assigned as a side-effect during app initialization. Because it\n// represents the build used to create the JS bundle, it should never change\n// after being set, so we store it in a global variable.\n//\n// When performing RSC requests, if the incoming data has a different build ID,\n// we perform an MPA navigation/refresh to load the updated build and ensure\n// that the client and server in sync.\n// Starts as an empty string. In practice, because setAppBuildId is called\n// during initialization before hydration starts, this will always get\n// reassigned to the actual build ID before it's ever needed by a navigation.\n// If for some reasons it didn't, due to a bug or race condition, then on\n// navigation the build comparision would fail and trigger an MPA navigation.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getAppBuildId: function() {\n return getAppBuildId;\n },\n setAppBuildId: function() {\n return setAppBuildId;\n }\n});\nlet globalBuildId = '';\nfunction setAppBuildId(buildId) {\n globalBuildId = buildId;\n}\nfunction getAppBuildId() {\n return globalBuildId;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-build-id.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtYnVpbGQtaWQuanMiLCJtYXBwaW5ncyI6IkFBQUEsNEVBQTRFO0FBQzVFLDRFQUE0RTtBQUM1RSx3REFBd0Q7QUFDeEQsRUFBRTtBQUNGLCtFQUErRTtBQUMvRSw0RUFBNEU7QUFDNUUsc0NBQXNDO0FBRXRDLDBFQUEwRTtBQUMxRSxzRUFBc0U7QUFDdEUsNkVBQTZFO0FBQzdFLHlFQUF5RTtBQUN6RSw2RUFBNkU7Ozs7Ozs7Ozs7Ozs7SUFPN0RBLGFBQWE7ZUFBYkE7O0lBSkFDLGFBQWE7ZUFBYkE7OztBQUZoQixJQUFJQyxnQkFBd0I7QUFFckIsU0FBU0QsY0FBY0UsT0FBZTtJQUMzQ0QsZ0JBQWdCQztBQUNsQjtBQUVPLFNBQVNIO0lBQ2QsT0FBT0U7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL3NyYy9jbGllbnQvYXBwLWJ1aWxkLWlkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZ2V0cyBhc3NpZ25lZCBhcyBhIHNpZGUtZWZmZWN0IGR1cmluZyBhcHAgaW5pdGlhbGl6YXRpb24uIEJlY2F1c2UgaXRcbi8vIHJlcHJlc2VudHMgdGhlIGJ1aWxkIHVzZWQgdG8gY3JlYXRlIHRoZSBKUyBidW5kbGUsIGl0IHNob3VsZCBuZXZlciBjaGFuZ2Vcbi8vIGFmdGVyIGJlaW5nIHNldCwgc28gd2Ugc3RvcmUgaXQgaW4gYSBnbG9iYWwgdmFyaWFibGUuXG4vL1xuLy8gV2hlbiBwZXJmb3JtaW5nIFJTQyByZXF1ZXN0cywgaWYgdGhlIGluY29taW5nIGRhdGEgaGFzIGEgZGlmZmVyZW50IGJ1aWxkIElELFxuLy8gd2UgcGVyZm9ybSBhbiBNUEEgbmF2aWdhdGlvbi9yZWZyZXNoIHRvIGxvYWQgdGhlIHVwZGF0ZWQgYnVpbGQgYW5kIGVuc3VyZVxuLy8gdGhhdCB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgaW4gc3luYy5cblxuLy8gU3RhcnRzIGFzIGFuIGVtcHR5IHN0cmluZy4gSW4gcHJhY3RpY2UsIGJlY2F1c2Ugc2V0QXBwQnVpbGRJZCBpcyBjYWxsZWRcbi8vIGR1cmluZyBpbml0aWFsaXphdGlvbiBiZWZvcmUgaHlkcmF0aW9uIHN0YXJ0cywgdGhpcyB3aWxsIGFsd2F5cyBnZXRcbi8vIHJlYXNzaWduZWQgdG8gdGhlIGFjdHVhbCBidWlsZCBJRCBiZWZvcmUgaXQncyBldmVyIG5lZWRlZCBieSBhIG5hdmlnYXRpb24uXG4vLyBJZiBmb3Igc29tZSByZWFzb25zIGl0IGRpZG4ndCwgZHVlIHRvIGEgYnVnIG9yIHJhY2UgY29uZGl0aW9uLCB0aGVuIG9uXG4vLyBuYXZpZ2F0aW9uIHRoZSBidWlsZCBjb21wYXJpc2lvbiB3b3VsZCBmYWlsIGFuZCB0cmlnZ2VyIGFuIE1QQSBuYXZpZ2F0aW9uLlxubGV0IGdsb2JhbEJ1aWxkSWQ6IHN0cmluZyA9ICcnXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRBcHBCdWlsZElkKGJ1aWxkSWQ6IHN0cmluZykge1xuICBnbG9iYWxCdWlsZElkID0gYnVpbGRJZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXBwQnVpbGRJZCgpOiBzdHJpbmcge1xuICByZXR1cm4gZ2xvYmFsQnVpbGRJZFxufVxuIl0sIm5hbWVzIjpbImdldEFwcEJ1aWxkSWQiLCJzZXRBcHBCdWlsZElkIiwiZ2xvYmFsQnVpbGRJZCIsImJ1aWxkSWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-build-id.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/app-call-server.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/client/app-call-server.js ***!
\**********************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"callServer\", ({\n enumerable: true,\n get: function() {\n return callServer;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./components/router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _useactionqueue = __webpack_require__(/*! ./components/use-action-queue */ \"(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\");\nasync function callServer(actionId, actionArgs) {\n return new Promise((resolve, reject)=>{\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_SERVER_ACTION,\n actionId,\n actionArgs,\n resolve,\n reject\n });\n });\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-call-server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtY2FsbC1zZXJ2ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FJc0JBOzs7ZUFBQUE7OzttQ0FKVTtnREFDSzs0Q0FDRztBQUVqQyxlQUFlQSxXQUFXQyxRQUFnQixFQUFFQyxVQUFpQjtJQUNsRSxPQUFPLElBQUlDLFFBQVEsQ0FBQ0MsU0FBU0M7UUFDM0JDLENBQUFBLEdBQUFBLE9BQUFBLGVBQUFBLEVBQWdCO1lBQ2RDLENBQUFBLEdBQUFBLGdCQUFBQSx1QkFBQUEsRUFBd0I7Z0JBQ3RCQyxNQUFNQyxvQkFBQUEsb0JBQW9CO2dCQUMxQlI7Z0JBQ0FDO2dCQUNBRTtnQkFDQUM7WUFDRjtRQUNGO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL3NyYy9jbGllbnQvYXBwLWNhbGwtc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0YXJ0VHJhbnNpdGlvbiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQUNUSU9OX1NFUlZFUl9BQ1RJT04gfSBmcm9tICcuL2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgeyBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy91c2UtYWN0aW9uLXF1ZXVlJ1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FsbFNlcnZlcihhY3Rpb25JZDogc3RyaW5nLCBhY3Rpb25BcmdzOiBhbnlbXSkge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbih7XG4gICAgICAgIHR5cGU6IEFDVElPTl9TRVJWRVJfQUNUSU9OLFxuICAgICAgICBhY3Rpb25JZCxcbiAgICAgICAgYWN0aW9uQXJncyxcbiAgICAgICAgcmVzb2x2ZSxcbiAgICAgICAgcmVqZWN0LFxuICAgICAgfSlcbiAgICB9KVxuICB9KVxufVxuIl0sIm5hbWVzIjpbImNhbGxTZXJ2ZXIiLCJhY3Rpb25JZCIsImFjdGlvbkFyZ3MiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInN0YXJ0VHJhbnNpdGlvbiIsImRpc3BhdGNoQXBwUm91dGVyQWN0aW9uIiwidHlwZSIsIkFDVElPTl9TRVJWRVJfQUNUSU9OIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-call-server.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/app-dir/link.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/client/app-dir/link.js ***!
\*******************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * A React component that extends the HTML `<a>` element to provide\n * [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation. This is the primary way to navigate between routes in Next.js.\n *\n * @remarks\n * - Prefetching is only enabled in production.\n *\n * @see https://nextjs.org/docs/app/api-reference/components/link\n */ default: function() {\n return LinkComponent;\n },\n useLinkStatus: function() {\n return useLinkStatus;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _formaturl = __webpack_require__(/*! ../../shared/lib/router/utils/format-url */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _routerreducertypes = __webpack_require__(/*! ../components/router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _usemergedref = __webpack_require__(/*! ../use-merged-ref */ \"(ssr)/./node_modules/next/dist/client/use-merged-ref.js\");\nconst _utils = __webpack_require__(/*! ../../shared/lib/utils */ \"(ssr)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _addbasepath = __webpack_require__(/*! ../add-base-path */ \"(ssr)/./node_modules/next/dist/client/add-base-path.js\");\nconst _warnonce = __webpack_require__(/*! ../../shared/lib/utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nconst _links = __webpack_require__(/*! ../components/links */ \"(ssr)/./node_modules/next/dist/client/components/links.js\");\nconst _islocalurl = __webpack_require__(/*! ../../shared/lib/router/utils/is-local-url */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _approuterinstance = __webpack_require__(/*! ../components/app-router-instance */ \"(ssr)/./node_modules/next/dist/client/components/app-router-instance.js\");\nconst _erroronce = __webpack_require__(/*! ../../shared/lib/utils/error-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/error-once.js\");\nfunction isModifiedEvent(event) {\n const eventTarget = event.currentTarget;\n const target = eventTarget.getAttribute('target');\n return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || // triggers resource download\n event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, href, as, linkInstanceRef, replace, scroll, onNavigate) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A';\n if (isAnchorNodeName && isModifiedEvent(e) || e.currentTarget.hasAttribute('download')) {\n // ignore click for browsers default behavior\n return;\n }\n if (!(0, _islocalurl.isLocalURL)(href)) {\n if (replace) {\n // browser default behavior does not replace the history state\n // so we need to do it manually\n e.preventDefault();\n location.replace(href);\n }\n // ignore click for browsers default behavior\n return;\n }\n e.preventDefault();\n if (onNavigate) {\n let isDefaultPrevented = false;\n onNavigate({\n preventDefault: ()=>{\n isDefaultPrevented = true;\n }\n });\n if (isDefaultPrevented) {\n return;\n }\n }\n _react.default.startTransition(()=>{\n (0, _approuterinstance.dispatchNavigateAction)(as || href, replace ? 'replace' : 'push', scroll != null ? scroll : true, linkInstanceRef.current);\n });\n}\nfunction formatStringOrUrl(urlObjOrString) {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString;\n }\n return (0, _formaturl.formatUrl)(urlObjOrString);\n}\nfunction LinkComponent(props) {\n const [linkStatus, setOptimisticLinkStatus] = (0, _react.useOptimistic)(_links.IDLE_LINK_STATUS);\n let children;\n const linkInstanceRef = (0, _react.useRef)(null);\n const { href: hrefProp, as: asProp, children: childrenProp, prefetch: prefetchProp = null, passHref, replace, shallow, scroll, onClick, onMouseEnter: onMouseEnterProp, onTouchStart: onTouchStartProp, legacyBehavior = false, onNavigate, ref: forwardedRef, unstable_dynamicOnHover, ...restProps } = props;\n children = childrenProp;\n if (legacyBehavior && (typeof children === 'string' || typeof children === 'number')) {\n children = /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n children: children\n });\n }\n const router = _react.default.useContext(_approutercontextsharedruntime.AppRouterContext);\n const prefetchEnabled = prefetchProp !== false;\n /**\n * The possible states for prefetch are:\n * - null: this is the default \"auto\" mode, where we will prefetch partially if the link is in the viewport\n * - true: we will prefetch if the link is visible and prefetch the full page, not just partially\n * - false: we will not prefetch if in the viewport at all\n * - 'unstable_dynamicOnHover': this starts in \"auto\" mode, but switches to \"full\" when the link is hovered\n */ const appPrefetchKind = prefetchProp === null || prefetchProp === 'auto' ? _routerreducertypes.PrefetchKind.AUTO : _routerreducertypes.PrefetchKind.FULL;\n if (true) {\n function createPropError(args) {\n return Object.defineProperty(new Error(\"Failed prop type: The prop `\" + args.key + \"` expects a \" + args.expected + \" in `<Link>`, but got `\" + args.actual + \"` instead.\" + ( false ? 0 : '')), \"__NEXT_ERROR_CODE\", {\n value: \"E319\",\n enumerable: false,\n configurable: true\n });\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === 'href') {\n if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n unstable_dynamicOnHover: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n onNavigate: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType\n });\n }\n } else if (key === 'onClick' || key === 'onMouseEnter' || key === 'onTouchStart' || key === 'onNavigate') {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType\n });\n }\n } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'legacyBehavior' || key === 'unstable_dynamicOnHover') {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType\n });\n }\n } else if (key === 'prefetch') {\n if (props[key] != null && valType !== 'boolean' && props[key] !== 'auto') {\n throw createPropError({\n key,\n expected: '`boolean | \"auto\"`',\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n }\n if (true) {\n if (props.locale) {\n (0, _warnonce.warnOnce)('The `locale` prop is not supported in `next/link` while using the `app` router. Read more about app router internalization: https://nextjs.org/docs/app/building-your-application/routing/internationalization');\n }\n if (!asProp) {\n let href;\n if (typeof hrefProp === 'string') {\n href = hrefProp;\n } else if (typeof hrefProp === 'object' && typeof hrefProp.pathname === 'string') {\n href = hrefProp.pathname;\n }\n if (href) {\n const hasDynamicSegment = href.split('/').some((segment)=>segment.startsWith('[') && segment.endsWith(']'));\n if (hasDynamicSegment) {\n throw Object.defineProperty(new Error(\"Dynamic href `\" + href + \"` found in <Link> while using the `/app` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href\"), \"__NEXT_ERROR_CODE\", {\n value: \"E267\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n }\n const { href, as } = _react.default.useMemo({\n \"LinkComponent.useMemo\": ()=>{\n const resolvedHref = formatStringOrUrl(hrefProp);\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref\n };\n }\n }[\"LinkComponent.useMemo\"], [\n hrefProp,\n asProp\n ]);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (true) {\n if (onClick) {\n console.warn('\"onClick\" was passed to <Link> with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link');\n }\n if (onMouseEnterProp) {\n console.warn('\"onMouseEnter\" was passed to <Link> with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link');\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw Object.defineProperty(new Error(\"No children were passed to <Link> with `href` of `\" + hrefProp + \"` but one child is required https://nextjs.org/docs/messages/link-no-children\"), \"__NEXT_ERROR_CODE\", {\n value: \"E320\",\n enumerable: false,\n configurable: true\n });\n }\n throw Object.defineProperty(new Error(\"Multiple children were passed to <Link> with `href` of `\" + hrefProp + \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\" + ( false ? 0 : '')), \"__NEXT_ERROR_CODE\", {\n value: \"E266\",\n enumerable: false,\n configurable: true\n });\n }\n } else {}\n } else {\n if (true) {\n if ((children == null ? void 0 : children.type) === 'a') {\n throw Object.defineProperty(new Error('Invalid <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>.\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'), \"__NEXT_ERROR_CODE\", {\n value: \"E209\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n const childRef = legacyBehavior ? child && typeof child === 'object' && child.ref : forwardedRef;\n // Use a callback ref to attach an IntersectionObserver to the anchor tag on\n // mount. In the future we will also use this to keep track of all the\n // currently mounted <Link> instances, e.g. so we can re-prefetch them after\n // a revalidation or refresh.\n const observeLinkVisibilityOnMount = _react.default.useCallback({\n \"LinkComponent.useCallback[observeLinkVisibilityOnMount]\": (element)=>{\n if (router !== null) {\n linkInstanceRef.current = (0, _links.mountLinkInstance)(element, href, router, appPrefetchKind, prefetchEnabled, setOptimisticLinkStatus);\n }\n return ({\n \"LinkComponent.useCallback[observeLinkVisibilityOnMount]\": ()=>{\n if (linkInstanceRef.current) {\n (0, _links.unmountLinkForCurrentNavigation)(linkInstanceRef.current);\n linkInstanceRef.current = null;\n }\n (0, _links.unmountPrefetchableInstance)(element);\n }\n })[\"LinkComponent.useCallback[observeLinkVisibilityOnMount]\"];\n }\n }[\"LinkComponent.useCallback[observeLinkVisibilityOnMount]\"], [\n prefetchEnabled,\n href,\n router,\n appPrefetchKind,\n setOptimisticLinkStatus\n ]);\n const mergedRef = (0, _usemergedref.useMergedRef)(observeLinkVisibilityOnMount, childRef);\n const childProps = {\n ref: mergedRef,\n onClick (e) {\n if (true) {\n if (!e) {\n throw Object.defineProperty(new Error('Component rendered inside next/link has to pass click event to \"onClick\" prop.'), \"__NEXT_ERROR_CODE\", {\n value: \"E312\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === 'function') {\n child.props.onClick(e);\n }\n if (!router) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n linkClicked(e, href, as, linkInstanceRef, replace, scroll, onNavigate);\n },\n onMouseEnter (e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === 'function') {\n child.props.onMouseEnter(e);\n }\n if (!router) {\n return;\n }\n if (!prefetchEnabled || \"development\" === 'development') {\n return;\n }\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true;\n (0, _links.onNavigationIntent)(e.currentTarget, upgradeToDynamicPrefetch);\n },\n onTouchStart: false ? 0 : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === 'function') {\n child.props.onTouchStart(e);\n }\n if (!router) {\n return;\n }\n if (!prefetchEnabled) {\n return;\n }\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true;\n (0, _links.onNavigationIntent)(e.currentTarget, upgradeToDynamicPrefetch);\n }\n };\n // If child is an <a> tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the basePath.\n if ((0, _utils.isAbsoluteUrl)(as)) {\n childProps.href = as;\n } else if (!legacyBehavior || passHref || child.type === 'a' && !('href' in child.props)) {\n childProps.href = (0, _addbasepath.addBasePath)(as);\n }\n let link;\n if (legacyBehavior) {\n if (true) {\n (0, _erroronce.errorOnce)('`legacyBehavior` is deprecated and will be removed in a future ' + 'release. A codemod is available to upgrade your components:\\n\\n' + 'npx @next/codemod@latest new-link .\\n\\n' + 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components');\n }\n link = /*#__PURE__*/ _react.default.cloneElement(child, childProps);\n } else {\n link = /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n ...restProps,\n ...childProps,\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(LinkStatusContext.Provider, {\n value: linkStatus,\n children: link\n });\n}\nconst LinkStatusContext = /*#__PURE__*/ (0, _react.createContext)(_links.IDLE_LINK_STATUS);\nconst useLinkStatus = ()=>{\n return (0, _react.useContext)(LinkStatusContext);\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=link.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtZGlyL2xpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBaVRBOzs7Ozs7Ozs7Q0FTQyxHQUNELE9Bc2FDO2VBdGF1QkE7O0lBNGFYQyxhQUFhO2VBQWJBOzs7Ozs2RUFydUIyRDt1Q0FFOUM7MkRBQ087Z0RBQ0o7MENBQ0E7bUNBQ0M7eUNBQ0Y7c0NBQ0g7bUNBU2xCO3dDQUNvQjsrQ0FDWTt1Q0FDYjtBQTBNMUIsU0FBU0MsZ0JBQWdCQyxLQUF1QjtJQUM5QyxNQUFNQyxjQUFjRCxNQUFNRSxhQUFhO0lBQ3ZDLE1BQU1DLFNBQVNGLFlBQVlHLFlBQVksQ0FBQztJQUN4QyxPQUNHRCxVQUFVQSxXQUFXLFdBQ3RCSCxNQUFNSyxPQUFPLElBQ2JMLE1BQU1NLE9BQU8sSUFDYk4sTUFBTU8sUUFBUSxJQUNkUCxNQUFNUSxNQUFNLElBQUksNkJBQTZCO0lBQzVDUixNQUFNUyxXQUFXLElBQUlULE1BQU1TLFdBQVcsQ0FBQ0MsS0FBSyxLQUFLO0FBRXREO0FBRUEsU0FBU0MsWUFDUEMsQ0FBbUIsRUFDbkJDLElBQVksRUFDWkMsRUFBVSxFQUNWQyxlQUFxRCxFQUNyREMsT0FBaUIsRUFDakJDLE1BQWdCLEVBQ2hCQyxVQUFtQztJQUVuQyxNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHUCxFQUFFVixhQUFhO0lBRXBDLGtEQUFrRDtJQUNsRCxNQUFNa0IsbUJBQW1CRCxTQUFTRSxXQUFXLE9BQU87SUFFcEQsSUFDR0Qsb0JBQW9CckIsZ0JBQWdCYSxNQUNyQ0EsRUFBRVYsYUFBYSxDQUFDb0IsWUFBWSxDQUFDLGFBQzdCO1FBQ0EsOENBQThDO1FBQzlDO0lBQ0Y7SUFFQSxJQUFJLENBQUNDLENBQUFBLEdBQUFBLFlBQUFBLFVBQUFBLEVBQVdWLE9BQU87UUFDckIsSUFBSUcsU0FBUztZQUNYLDhEQUE4RDtZQUM5RCwrQkFBK0I7WUFDL0JKLEVBQUVZLGNBQWM7WUFDaEJDLFNBQVNULE9BQU8sQ0FBQ0g7UUFDbkI7UUFFQSw4Q0FBOEM7UUFDOUM7SUFDRjtJQUVBRCxFQUFFWSxjQUFjO0lBRWhCLElBQUlOLFlBQVk7UUFDZCxJQUFJUSxxQkFBcUI7UUFFekJSLFdBQVc7WUFDVE0sZ0JBQWdCO2dCQUNkRSxxQkFBcUI7WUFDdkI7UUFDRjtRQUVBLElBQUlBLG9CQUFvQjtZQUN0QjtRQUNGO0lBQ0Y7SUFFQUMsT0FBQUEsT0FBSyxDQUFDQyxlQUFlLENBQUM7UUFDcEJDLENBQUFBLEdBQUFBLG1CQUFBQSxzQkFBQUEsRUFDRWYsTUFBTUQsTUFDTkcsVUFBVSxZQUFZLFFBQ3RCQyxVQUFBQSxPQUFBQSxTQUFVLE1BQ1ZGLGdCQUFnQmUsT0FBTztJQUUzQjtBQUNGO0FBRUEsU0FBU0Msa0JBQWtCQyxjQUFrQztJQUMzRCxJQUFJLE9BQU9BLG1CQUFtQixVQUFVO1FBQ3RDLE9BQU9BO0lBQ1Q7SUFFQSxPQUFPQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVRDtBQUNuQjtBQVllLFNBQVNuQyxjQUN0QnFDLEtBR0M7SUFFRCxNQUFNLENBQUNDLFlBQVlDLHdCQUF3QixHQUFHQyxDQUFBQSxHQUFBQSxPQUFBQSxhQUFBQSxFQUFjQyxPQUFBQSxnQkFBZ0I7SUFFNUUsSUFBSUM7SUFFSixNQUFNeEIsa0JBQWtCeUIsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFBNEI7SUFFcEQsTUFBTSxFQUNKM0IsTUFBTTRCLFFBQVEsRUFDZDNCLElBQUk0QixNQUFNLEVBQ1ZILFVBQVVJLFlBQVksRUFDdEJDLFVBQVVDLGVBQWUsSUFBSSxFQUM3QkMsUUFBUSxFQUNSOUIsT0FBTyxFQUNQK0IsT0FBTyxFQUNQOUIsTUFBTSxFQUNOK0IsT0FBTyxFQUNQQyxjQUFjQyxnQkFBZ0IsRUFDOUJDLGNBQWNDLGdCQUFnQixFQUM5QkMsaUJBQWlCLEtBQUssRUFDdEJuQyxVQUFVLEVBQ1ZvQyxLQUFLQyxZQUFZLEVBQ2pCQyx1QkFBdUIsRUFDdkIsR0FBR0MsV0FDSixHQUFHdkI7SUFFSkssV0FBV0k7SUFFWCxJQUNFVSxrQkFDQyxRQUFPZCxhQUFhLFlBQVksT0FBT0EsYUFBYSxTQUFPLEVBQzVEO1FBQ0FBLFdBQVcsV0FBWEEsR0FBVyxxQkFBQ21CLEtBQUFBO3NCQUFHbkI7O0lBQ2pCO0lBRUEsTUFBTW9CLFNBQVNoQyxPQUFBQSxPQUFLLENBQUNpQyxVQUFVLENBQUNDLCtCQUFBQSxnQkFBZ0I7SUFFaEQsTUFBTUMsa0JBQWtCakIsaUJBQWlCO0lBQ3pDOzs7Ozs7R0FNQyxHQUNELE1BQU1rQixrQkFDSmxCLGlCQUFpQixRQUFRQSxpQkFBaUIsU0FDdENtQixvQkFBQUEsWUFBWSxDQUFDQyxJQUFJLEdBQ2pCRCxvQkFBQUEsWUFBWSxDQUFDRSxJQUFJO0lBRXZCLElBQUlDLElBQW9CLEVBQW1CO1FBQ3pDLFNBQVNHLGdCQUFnQkMsSUFJeEI7WUFDQyxPQUFPLHFCQUtOLENBTE0sSUFBSUMsTUFDUixpQ0FBK0JELEtBQUtFLEdBQUcsR0FBQyxpQkFBZUYsS0FBS0csUUFBUSxHQUFDLDRCQUE0QkgsS0FBS0ksTUFBTSxHQUFDLGVBQzNHLE9BQTZCLEdBQzFCLENBQWtFLEdBQ2xFLEdBQUMsR0FKRjt1QkFBQTs0QkFBQTs4QkFBQTtZQUtQO1FBQ0Y7UUFFQSxzQ0FBc0M7UUFDdEMsTUFBTUUscUJBQXNEO1lBQzFEaEUsTUFBTTtRQUNSO1FBQ0EsTUFBTWlFLGdCQUFxQ0MsT0FBT0MsSUFBSSxDQUNwREg7UUFFRkMsY0FBY0csT0FBTyxDQUFDLENBQUNSO1lBQ3JCLElBQUlBLFFBQVEsUUFBUTtnQkFDbEIsSUFDRXZDLEtBQUssQ0FBQ3VDLElBQUksSUFBSSxRQUNiLE9BQU92QyxLQUFLLENBQUN1QyxJQUFJLEtBQUssWUFBWSxPQUFPdkMsS0FBSyxDQUFDdUMsSUFBSSxLQUFLLFVBQ3pEO29CQUNBLE1BQU1ILGdCQUFnQjt3QkFDcEJHO3dCQUNBQyxVQUFVO3dCQUNWQyxRQUFRekMsS0FBSyxDQUFDdUMsSUFBSSxLQUFLLE9BQU8sU0FBUyxPQUFPdkMsS0FBSyxDQUFDdUMsSUFBSTtvQkFDMUQ7Z0JBQ0Y7WUFDRixPQUFPO2dCQUNMLHNDQUFzQztnQkFDdEMsNkRBQTZEO2dCQUM3RCxNQUFNUyxJQUFXVDtZQUNuQjtRQUNGO1FBRUEsc0NBQXNDO1FBQ3RDLE1BQU1VLHFCQUFzRDtZQUMxRHJFLElBQUk7WUFDSkUsU0FBUztZQUNUQyxRQUFRO1lBQ1I4QixTQUFTO1lBQ1RELFVBQVU7WUFDVkYsVUFBVTtZQUNWWSx5QkFBeUI7WUFDekJSLFNBQVM7WUFDVEMsY0FBYztZQUNkRSxjQUFjO1lBQ2RFLGdCQUFnQjtZQUNoQm5DLFlBQVk7UUFDZDtRQUNBLE1BQU1rRSxnQkFBcUNMLE9BQU9DLElBQUksQ0FDcERHO1FBRUZDLGNBQWNILE9BQU8sQ0FBQyxDQUFDUjtZQUNyQixNQUFNWSxVQUFVLE9BQU9uRCxLQUFLLENBQUN1QyxJQUFJO1lBRWpDLElBQUlBLFFBQVEsTUFBTTtnQkFDaEIsSUFBSXZDLEtBQUssQ0FBQ3VDLElBQUksSUFBSVksWUFBWSxZQUFZQSxZQUFZLFVBQVU7b0JBQzlELE1BQU1mLGdCQUFnQjt3QkFDcEJHO3dCQUNBQyxVQUFVO3dCQUNWQyxRQUFRVTtvQkFDVjtnQkFDRjtZQUNGLE9BQU8sSUFDTFosUUFBUSxhQUNSQSxRQUFRLGtCQUNSQSxRQUFRLGtCQUNSQSxRQUFRLGNBQ1I7Z0JBQ0EsSUFBSXZDLEtBQUssQ0FBQ3VDLElBQUksSUFBSVksWUFBWSxZQUFZO29CQUN4QyxNQUFNZixnQkFBZ0I7d0JBQ3BCRzt3QkFDQUMsVUFBVTt3QkFDVkMsUUFBUVU7b0JBQ1Y7Z0JBQ0Y7WUFDRixPQUFPLElBQ0xaLFFBQVEsYUFDUkEsUUFBUSxZQUNSQSxRQUFRLGFBQ1JBLFFBQVEsY0FDUkEsUUFBUSxvQkFDUkEsUUFBUSwyQkFDUjtnQkFDQSxJQUFJdkMsS0FBSyxDQUFDdUMsSUFBSSxJQUFJLFFBQVFZLFlBQVksV0FBVztvQkFDL0MsTUFBTWYsZ0JBQWdCO3dCQUNwQkc7d0JBQ0FDLFVBQVU7d0JBQ1ZDLFFBQVFVO29CQUNWO2dCQUNGO1lBQ0YsT0FBTyxJQUFJWixRQUFRLFlBQVk7Z0JBQzdCLElBQ0V2QyxLQUFLLENBQUN1QyxJQUFJLElBQUksUUFDZFksWUFBWSxhQUNabkQsS0FBSyxDQUFDdUMsSUFBSSxLQUFLLFFBQ2Y7b0JBQ0EsTUFBTUgsZ0JBQWdCO3dCQUNwQkc7d0JBQ0FDLFVBQVU7d0JBQ1ZDLFFBQVFVO29CQUNWO2dCQUNGO1lBQ0YsT0FBTztnQkFDTCxzQ0FBc0M7Z0JBQ3RDLDZEQUE2RDtnQkFDN0QsTUFBTUgsSUFBV1Q7WUFDbkI7UUFDRjtJQUNGO0lBRUEsSUFBSU4sSUFBb0IsRUFBbUI7UUFDekMsSUFBSWpDLE1BQU1vRCxNQUFNLEVBQUU7WUFDaEJDLENBQUFBLEdBQUFBLFVBQUFBLFFBQUFBLEVBQ0U7UUFFSjtRQUNBLElBQUksQ0FBQzdDLFFBQVE7WUFDWCxJQUFJN0I7WUFDSixJQUFJLE9BQU80QixhQUFhLFVBQVU7Z0JBQ2hDNUIsT0FBTzRCO1lBQ1QsT0FBTyxJQUNMLE9BQU9BLGFBQWEsWUFDcEIsT0FBT0EsU0FBUytDLFFBQVEsS0FBSyxVQUM3QjtnQkFDQTNFLE9BQU80QixTQUFTK0MsUUFBUTtZQUMxQjtZQUVBLElBQUkzRSxNQUFNO2dCQUNSLE1BQU00RSxvQkFBb0I1RSxLQUN2QjZFLEtBQUssQ0FBQyxLQUNOQyxJQUFJLENBQUMsQ0FBQ0MsVUFBWUEsUUFBUUMsVUFBVSxDQUFDLFFBQVFELFFBQVFFLFFBQVEsQ0FBQztnQkFFakUsSUFBSUwsbUJBQW1CO29CQUNyQixNQUFNLHFCQUVMLENBRkssSUFBSWpCLE1BQ1AsbUJBQWlCM0QsT0FBSyw2SUFEbkI7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0Y7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxNQUFNLEVBQUVBLElBQUksRUFBRUMsRUFBRSxFQUFFLEdBQUdhLE9BQUFBLE9BQUssQ0FBQ29FLE9BQU87aUNBQUM7WUFDakMsTUFBTUMsZUFBZWpFLGtCQUFrQlU7WUFDdkMsT0FBTztnQkFDTDVCLE1BQU1tRjtnQkFDTmxGLElBQUk0QixTQUFTWCxrQkFBa0JXLFVBQVVzRDtZQUMzQztRQUNGO2dDQUFHO1FBQUN2RDtRQUFVQztLQUFPO0lBRXJCLG9GQUFvRjtJQUNwRixJQUFJdUQ7SUFDSixJQUFJNUMsZ0JBQWdCO1FBQ2xCLElBQUljLElBQW9CLEVBQW9CO1lBQzFDLElBQUluQixTQUFTO2dCQUNYa0QsUUFBUUMsSUFBSSxDQUNULG9EQUFvRDFELFdBQVM7WUFFbEU7WUFDQSxJQUFJUyxrQkFBa0I7Z0JBQ3BCZ0QsUUFBUUMsSUFBSSxDQUNULHlEQUF5RDFELFdBQVM7WUFFdkU7WUFDQSxJQUFJO2dCQUNGd0QsUUFBUXRFLE9BQUFBLE9BQUssQ0FBQ3lFLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDOUQ7WUFDOUIsRUFBRSxPQUFPK0QsS0FBSztnQkFDWixJQUFJLENBQUMvRCxVQUFVO29CQUNiLE1BQU0scUJBRUwsQ0FGSyxJQUFJaUMsTUFDUCx1REFBdUQvQixXQUFTLGtGQUQ3RDsrQkFBQTtvQ0FBQTtzQ0FBQTtvQkFFTjtnQkFDRjtnQkFDQSxNQUFNLHFCQUtMLENBTEssSUFBSStCLE1BQ1AsNkRBQTZEL0IsV0FBUyw4RkFDcEUsT0FBNkIsR0FDMUIsQ0FBbUUsR0FDbkUsR0FBQyxHQUpIOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUtOO1lBQ0Y7UUFDRixPQUFPLEVBRU47SUFDSCxPQUFPO1FBQ0wsSUFBSTBCLElBQW9CLEVBQW9CO1lBQzFDLElBQUksQ0FBQzVCLFlBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFNBQWtCZ0UsSUFBQUEsTUFBUyxLQUFLO2dCQUNuQyxNQUFNLHFCQUVMLENBRkssSUFBSS9CLE1BQ1Isb0tBREk7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtRQUNGO0lBQ0Y7SUFFQSxNQUFNZ0MsV0FBZ0JuRCxpQkFDbEI0QyxTQUFTLE9BQU9BLFVBQVUsWUFBWUEsTUFBTTNDLEdBQUcsR0FDL0NDO0lBRUosNEVBQTRFO0lBQzVFLHNFQUFzRTtJQUN0RSw0RUFBNEU7SUFDNUUsNkJBQTZCO0lBQzdCLE1BQU1rRCwrQkFBK0I5RSxPQUFBQSxPQUFLLENBQUMrRSxXQUFXO21FQUNwRCxDQUFDQztZQUNDLElBQUloRCxXQUFXLE1BQU07Z0JBQ25CNUMsZ0JBQWdCZSxPQUFPLEdBQUc4RSxDQUFBQSxHQUFBQSxPQUFBQSxpQkFBQUEsRUFDeEJELFNBQ0E5RixNQUNBOEMsUUFDQUksaUJBQ0FELGlCQUNBMUI7WUFFSjtZQUVBOzJFQUFPO29CQUNMLElBQUlyQixnQkFBZ0JlLE9BQU8sRUFBRTt3QkFDM0IrRSxDQUFBQSxHQUFBQSxPQUFBQSwrQkFBK0IsRUFBQzlGLGdCQUFnQmUsT0FBTzt3QkFDdkRmLGdCQUFnQmUsT0FBTyxHQUFHO29CQUM1QjtvQkFDQWdGLENBQUFBLEdBQUFBLE9BQUFBLDJCQUFBQSxFQUE0Qkg7Z0JBQzlCOztRQUNGO2tFQUNBO1FBQUM3QztRQUFpQmpEO1FBQU04QztRQUFRSTtRQUFpQjNCO0tBQXdCO0lBRzNFLE1BQU0yRSxZQUFZQyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhUCw4QkFBOEJEO0lBRTdELE1BQU1TLGFBTUY7UUFDRjNELEtBQUt5RDtRQUNML0QsU0FBUXBDLENBQUM7WUFDUCxJQUFJdUQsSUFBb0IsRUFBbUI7Z0JBQ3pDLElBQUksQ0FBQ3ZELEdBQUc7b0JBQ04sTUFBTSxxQkFFTCxDQUZLLElBQUk0RCxNQUNQLG1GQURHOytCQUFBO29DQUFBO3NDQUFBO29CQUVOO2dCQUNGO1lBQ0Y7WUFFQSxJQUFJLENBQUNuQixrQkFBa0IsT0FBT0wsWUFBWSxZQUFZO2dCQUNwREEsUUFBUXBDO1lBQ1Y7WUFFQSxJQUNFeUMsa0JBQ0E0QyxNQUFNL0QsS0FBSyxJQUNYLE9BQU8rRCxNQUFNL0QsS0FBSyxDQUFDYyxPQUFPLEtBQUssWUFDL0I7Z0JBQ0FpRCxNQUFNL0QsS0FBSyxDQUFDYyxPQUFPLENBQUNwQztZQUN0QjtZQUVBLElBQUksQ0FBQytDLFFBQVE7Z0JBQ1g7WUFDRjtZQUVBLElBQUkvQyxFQUFFc0csZ0JBQWdCLEVBQUU7Z0JBQ3RCO1lBQ0Y7WUFFQXZHLFlBQVlDLEdBQUdDLE1BQU1DLElBQUlDLGlCQUFpQkMsU0FBU0MsUUFBUUM7UUFDN0Q7UUFDQStCLGNBQWFyQyxDQUFDO1lBQ1osSUFBSSxDQUFDeUMsa0JBQWtCLE9BQU9ILHFCQUFxQixZQUFZO2dCQUM3REEsaUJBQWlCdEM7WUFDbkI7WUFFQSxJQUNFeUMsa0JBQ0E0QyxNQUFNL0QsS0FBSyxJQUNYLE9BQU8rRCxNQUFNL0QsS0FBSyxDQUFDZSxZQUFZLEtBQUssWUFDcEM7Z0JBQ0FnRCxNQUFNL0QsS0FBSyxDQUFDZSxZQUFZLENBQUNyQztZQUMzQjtZQUVBLElBQUksQ0FBQytDLFFBQVE7Z0JBQ1g7WUFDRjtZQUVBLElBQUksQ0FBQ0csbUJBQW1CSyxRQUFRQyxHQUFHLENBQUNDLE1BQWEsRUFBTCxhQUFvQjtnQkFDOUQ7WUFDRjtZQUVBLE1BQU04QywyQkFBMkIzRCw0QkFBNEI7WUFDN0Q0RCxDQUFBQSxHQUFBQSxPQUFBQSxrQkFBQUEsRUFDRXhHLEVBQUVWLGFBQWEsRUFDZmlIO1FBRUo7UUFDQWhFLGNBQWNnQixNQUFzQyxHQUNoRG1ELENBQVNBLEdBQ1QsU0FBU25FLGFBQWF2QyxDQUFDO1lBQ3JCLElBQUksQ0FBQ3lDLGtCQUFrQixPQUFPRCxxQkFBcUIsWUFBWTtnQkFDN0RBLGlCQUFpQnhDO1lBQ25CO1lBRUEsSUFDRXlDLGtCQUNBNEMsTUFBTS9ELEtBQUssSUFDWCxPQUFPK0QsTUFBTS9ELEtBQUssQ0FBQ2lCLFlBQVksS0FBSyxZQUNwQztnQkFDQThDLE1BQU0vRCxLQUFLLENBQUNpQixZQUFZLENBQUN2QztZQUMzQjtZQUVBLElBQUksQ0FBQytDLFFBQVE7Z0JBQ1g7WUFDRjtZQUVBLElBQUksQ0FBQ0csaUJBQWlCO2dCQUNwQjtZQUNGO1lBRUEsTUFBTXFELDJCQUEyQjNELDRCQUE0QjtZQUM3RDRELENBQUFBLEdBQUFBLE9BQUFBLGtCQUFBQSxFQUNFeEcsRUFBRVYsYUFBYSxFQUNmaUg7UUFFSjtJQUNOO0lBRUEsNkZBQTZGO0lBQzdGLHdGQUF3RjtJQUN4RiwyRUFBMkU7SUFDM0UsSUFBSUksQ0FBQUEsR0FBQUEsT0FBQUEsYUFBQUEsRUFBY3pHLEtBQUs7UUFDckJtRyxXQUFXcEcsSUFBSSxHQUFHQztJQUNwQixPQUFPLElBQ0wsQ0FBQ3VDLGtCQUNEUCxZQUNDbUQsTUFBTU0sSUFBSSxLQUFLLE9BQU8sQ0FBRSxXQUFVTixNQUFNL0QsS0FBQUEsR0FDekM7UUFDQStFLFdBQVdwRyxJQUFJLEdBQUcyRyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZMUc7SUFDaEM7SUFFQSxJQUFJMkc7SUFFSixJQUFJcEUsZ0JBQWdCO1FBQ2xCLElBQUljLElBQW9CLEVBQW9CO1lBQzFDdUQsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBQUEsRUFDRSxvRUFDRSxvRUFDQSw0Q0FDQTtRQUVOO1FBQ0FELE9BQUFBLFdBQUFBLEdBQU85RixPQUFBQSxPQUFLLENBQUNnRyxZQUFZLENBQUMxQixPQUFPZ0I7SUFDbkMsT0FBTztRQUNMUSxPQUFBQSxXQUFBQSxHQUNFLHFCQUFDL0QsS0FBQUE7WUFBRyxHQUFHRCxTQUFTO1lBQUcsR0FBR3dELFVBQVU7c0JBQzdCMUU7O0lBR1A7SUFFQSxxQkFDRSxxQkFBQ3FGLGtCQUFrQkMsUUFBUTtRQUFDQyxPQUFPM0Y7a0JBQ2hDc0Y7O0FBR1A7QUFFQSxNQUFNRyxvQkFBQUEsV0FBQUEsR0FBb0JHLENBQUFBLEdBQUFBLE9BQUFBLGFBQUFBLEVBRXhCekYsT0FBQUEsZ0JBQWdCO0FBRVgsTUFBTXhDLGdCQUFnQjtJQUMzQixPQUFPOEQsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV2dFO0FBQ3BCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2FwcC1kaXIvbGluay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VPcHRpbWlzdGljLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgVXJsT2JqZWN0IH0gZnJvbSAndXJsJ1xuaW1wb3J0IHsgZm9ybWF0VXJsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybCdcbmltcG9ydCB7IEFwcFJvdXRlckNvbnRleHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IFByZWZldGNoS2luZCB9IGZyb20gJy4uL2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgeyB1c2VNZXJnZWRSZWYgfSBmcm9tICcuLi91c2UtbWVyZ2VkLXJlZidcbmltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3V0aWxzJ1xuaW1wb3J0IHsgYWRkQmFzZVBhdGggfSBmcm9tICcuLi9hZGQtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3V0aWxzL3dhcm4tb25jZSdcbmltcG9ydCB0eXBlIHsgUEVORElOR19MSU5LX1NUQVRVUyB9IGZyb20gJy4uL2NvbXBvbmVudHMvbGlua3MnXG5pbXBvcnQge1xuICBJRExFX0xJTktfU1RBVFVTLFxuICBtb3VudExpbmtJbnN0YW5jZSxcbiAgb25OYXZpZ2F0aW9uSW50ZW50LFxuICB1bm1vdW50TGlua0ZvckN1cnJlbnROYXZpZ2F0aW9uLFxuICB1bm1vdW50UHJlZmV0Y2hhYmxlSW5zdGFuY2UsXG4gIHR5cGUgTGlua0luc3RhbmNlLFxufSBmcm9tICcuLi9jb21wb25lbnRzL2xpbmtzJ1xuaW1wb3J0IHsgaXNMb2NhbFVSTCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWxvY2FsLXVybCdcbmltcG9ydCB7IGRpc3BhdGNoTmF2aWdhdGVBY3Rpb24gfSBmcm9tICcuLi9jb21wb25lbnRzL2FwcC1yb3V0ZXItaW5zdGFuY2UnXG5pbXBvcnQgeyBlcnJvck9uY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3V0aWxzL2Vycm9yLW9uY2UnXG5cbnR5cGUgVXJsID0gc3RyaW5nIHwgVXJsT2JqZWN0XG50eXBlIFJlcXVpcmVkS2V5czxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF0tPzoge30gZXh0ZW5kcyBQaWNrPFQsIEs+ID8gbmV2ZXIgOiBLXG59W2tleW9mIFRdXG50eXBlIE9wdGlvbmFsS2V5czxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF0tPzoge30gZXh0ZW5kcyBQaWNrPFQsIEs+ID8gSyA6IG5ldmVyXG59W2tleW9mIFRdXG5cbnR5cGUgT25OYXZpZ2F0ZUV2ZW50SGFuZGxlciA9IChldmVudDogeyBwcmV2ZW50RGVmYXVsdDogKCkgPT4gdm9pZCB9KSA9PiB2b2lkXG5cbnR5cGUgSW50ZXJuYWxMaW5rUHJvcHMgPSB7XG4gIC8qKlxuICAgKiAqKlJlcXVpcmVkKiouIFRoZSBwYXRoIG9yIFVSTCB0byBuYXZpZ2F0ZSB0by4gSXQgY2FuIGFsc28gYmUgYW4gb2JqZWN0IChzaW1pbGFyIHRvIGBVUkxgKS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHN4XG4gICAqIC8vIE5hdmlnYXRlIHRvIC9kYXNoYm9hcmQ6XG4gICAqIDxMaW5rIGhyZWY9XCIvZGFzaGJvYXJkXCI+RGFzaGJvYXJkPC9MaW5rPlxuICAgKlxuICAgKiAvLyBOYXZpZ2F0ZSB0byAvYWJvdXQ/bmFtZT10ZXN0OlxuICAgKiA8TGluayBocmVmPXt7IHBhdGhuYW1lOiAnL2Fib3V0JywgcXVlcnk6IHsgbmFtZTogJ3Rlc3QnIH0gfX0+XG4gICAqICAgQWJvdXRcbiAgICogPC9MaW5rPlxuICAgKiBgYGBcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogLSBGb3IgZXh0ZXJuYWwgVVJMcywgdXNlIGEgZnVsbHkgcXVhbGlmaWVkIFVSTCBzdWNoIGFzIGBodHRwczovLy4uLmAuXG4gICAqIC0gSW4gdGhlIEFwcCBSb3V0ZXIsIGR5bmFtaWMgcm91dGVzIG11c3Qgbm90IGluY2x1ZGUgYnJhY2tldGVkIHNlZ21lbnRzIGluIGBocmVmYC5cbiAgICovXG4gIGhyZWY6IFVybFxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB2MTAuMC4wOiBgaHJlZmAgcHJvcHMgcG9pbnRpbmcgdG8gYSBkeW5hbWljIHJvdXRlIGFyZVxuICAgKiBhdXRvbWF0aWNhbGx5IHJlc29sdmVkIGFuZCBubyBsb25nZXIgcmVxdWlyZSB0aGUgYGFzYCBwcm9wLlxuICAgKi9cbiAgYXM/OiBVcmxcblxuICAvKipcbiAgICogUmVwbGFjZSB0aGUgY3VycmVudCBgaGlzdG9yeWAgc3RhdGUgaW5zdGVhZCBvZiBhZGRpbmcgYSBuZXcgVVJMIGludG8gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHN4XG4gICAqIDxMaW5rIGhyZWY9XCIvYWJvdXRcIiByZXBsYWNlPlxuICAgKiAgIEFib3V0IChyZXBsYWNlcyB0aGUgaGlzdG9yeSBzdGF0ZSlcbiAgICogPC9MaW5rPlxuICAgKiBgYGBcbiAgICovXG4gIHJlcGxhY2U/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2Nyb2xsIGJlaGF2aW9yLiBJZiBgdHJ1ZWAsIE5leHQuanMgYXR0ZW1wdHMgdG8gbWFpbnRhaW5cbiAgICogdGhlIHNjcm9sbCBwb3NpdGlvbiBpZiB0aGUgbmV3bHkgbmF2aWdhdGVkIHBhZ2UgaXMgc3RpbGwgdmlzaWJsZS4gSWYgbm90LCBpdCBzY3JvbGxzIHRvIHRoZSB0b3AuXG4gICAqXG4gICAqIElmIGBmYWxzZWAsIE5leHQuanMgd2lsbCBub3QgbW9kaWZ5IHRoZSBzY3JvbGwgYmVoYXZpb3IgYXQgYWxsLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGB0cnVlYFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c3hcbiAgICogPExpbmsgaHJlZj1cIi9kYXNoYm9hcmRcIiBzY3JvbGw9e2ZhbHNlfT5cbiAgICogICBObyBhdXRvIHNjcm9sbFxuICAgKiA8L0xpbms+XG4gICAqIGBgYFxuICAgKi9cbiAgc2Nyb2xsPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHBhdGggb2YgdGhlIGN1cnJlbnQgcGFnZSB3aXRob3V0IHJlcnVubmluZyBkYXRhIGZldGNoaW5nIG1ldGhvZHNcbiAgICogbGlrZSBgZ2V0U3RhdGljUHJvcHNgLCBgZ2V0U2VydmVyU2lkZVByb3BzYCwgb3IgYGdldEluaXRpYWxQcm9wc2AuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIGBzaGFsbG93YCBvbmx5IGFwcGxpZXMgdG8gdGhlIFBhZ2VzIFJvdXRlci4gRm9yIHRoZSBBcHAgUm91dGVyLCBzZWUgdGhlXG4gICAqIFtmb2xsb3dpbmcgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9saW5raW5nLWFuZC1uYXZpZ2F0aW5nI3VzaW5nLXRoZS1uYXRpdmUtaGlzdG9yeS1hcGkpLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGBmYWxzZWBcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHN4XG4gICAqIDxMaW5rIGhyZWY9XCIvYmxvZ1wiIHNoYWxsb3c+XG4gICAqICAgU2hhbGxvdyBuYXZpZ2F0aW9uXG4gICAqIDwvTGluaz5cbiAgICogYGBgXG4gICAqL1xuICBzaGFsbG93PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBGb3JjZXMgYExpbmtgIHRvIHBhc3MgaXRzIGBocmVmYCB0byB0aGUgY2hpbGQgY29tcG9uZW50LiBVc2VmdWwgaWYgdGhlIGNoaWxkIGlzIGEgY3VzdG9tXG4gICAqIGNvbXBvbmVudCB0aGF0IHdyYXBzIGFuIGA8YT5gIHRhZywgb3IgaWYgeW91J3JlIHVzaW5nIGNlcnRhaW4gc3R5bGluZyBsaWJyYXJpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c3hcbiAgICogPExpbmsgaHJlZj1cIi9kYXNoYm9hcmRcIiBwYXNzSHJlZj5cbiAgICogICA8TXlTdHlsZWRBbmNob3I+RGFzaGJvYXJkPC9NeVN0eWxlZEFuY2hvcj5cbiAgICogPC9MaW5rPlxuICAgKiBgYGBcbiAgICovXG4gIHBhc3NIcmVmPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBQcmVmZXRjaCB0aGUgcGFnZSBpbiB0aGUgYmFja2dyb3VuZC5cbiAgICogQW55IGA8TGluayAvPmAgdGhhdCBpcyBpbiB0aGUgdmlld3BvcnQgKGluaXRpYWxseSBvciB0aHJvdWdoIHNjcm9sbCkgd2lsbCBiZSBwcmVmZXRjaGVkLlxuICAgKiBQcmVmZXRjaCBjYW4gYmUgZGlzYWJsZWQgYnkgcGFzc2luZyBgcHJlZmV0Y2g9e2ZhbHNlfWAuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFByZWZldGNoaW5nIGlzIG9ubHkgZW5hYmxlZCBpbiBwcm9kdWN0aW9uLlxuICAgKlxuICAgKiAtIEluIHRoZSAqKkFwcCBSb3V0ZXIqKjpcbiAgICogICAtIGBcImF1dG9cImAsIGBudWxsYCwgYHVuZGVmaW5lZGAgKGRlZmF1bHQpOiBQcmVmZXRjaCBiZWhhdmlvciBkZXBlbmRzIG9uIHN0YXRpYyB2cyBkeW5hbWljIHJvdXRlczpcbiAgICogICAgIC0gU3RhdGljIHJvdXRlczogZnVsbHkgcHJlZmV0Y2hlZFxuICAgKiAgICAgLSBEeW5hbWljIHJvdXRlczogcGFydGlhbCBwcmVmZXRjaCB0byB0aGUgbmVhcmVzdCBzZWdtZW50IHdpdGggYSBgbG9hZGluZy5qc2BcbiAgICogICAtIGB0cnVlYDogQWx3YXlzIHByZWZldGNoIHRoZSBmdWxsIHJvdXRlIGFuZCBkYXRhLlxuICAgKiAgIC0gYGZhbHNlYDogRGlzYWJsZSBwcmVmZXRjaGluZyBvbiBib3RoIHZpZXdwb3J0IGFuZCBob3Zlci5cbiAgICogLSBJbiB0aGUgKipQYWdlcyBSb3V0ZXIqKjpcbiAgICogICAtIGB0cnVlYCAoZGVmYXVsdCk6IFByZWZldGNoZXMgdGhlIHJvdXRlIGFuZCBkYXRhIGluIHRoZSBiYWNrZ3JvdW5kIG9uIHZpZXdwb3J0IG9yIGhvdmVyLlxuICAgKiAgIC0gYGZhbHNlYDogUHJlZmV0Y2ggb25seSBvbiBob3Zlciwgbm90IG9uIHZpZXdwb3J0LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGB0cnVlYCAoUGFnZXMgUm91dGVyKSBvciBgbnVsbGAgKEFwcCBSb3V0ZXIpXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzeFxuICAgKiA8TGluayBocmVmPVwiL2Rhc2hib2FyZFwiIHByZWZldGNoPXtmYWxzZX0+XG4gICAqICAgRGFzaGJvYXJkXG4gICAqIDwvTGluaz5cbiAgICogYGBgXG4gICAqL1xuICBwcmVmZXRjaD86IGJvb2xlYW4gfCAnYXV0bycgfCBudWxsXG5cbiAgLyoqXG4gICAqICh1bnN0YWJsZSkgU3dpdGNoIHRvIGEgZHluYW1pYyBwcmVmZXRjaCBvbiBob3Zlci4gRWZmZWN0aXZlbHkgdGhlIHNhbWUgYXNcbiAgICogdXBkYXRpbmcgdGhlIHByZWZldGNoIHByb3AgdG8gYHRydWVgIGluIGEgbW91c2UgZXZlbnQuXG4gICAqL1xuICB1bnN0YWJsZV9keW5hbWljT25Ib3Zlcj86IGJvb2xlYW5cblxuICAvKipcbiAgICogVGhlIGFjdGl2ZSBsb2NhbGUgaXMgYXV0b21hdGljYWxseSBwcmVwZW5kZWQgaW4gdGhlIFBhZ2VzIFJvdXRlci4gYGxvY2FsZWAgYWxsb3dzIGZvciBwcm92aWRpbmdcbiAgICogYSBkaWZmZXJlbnQgbG9jYWxlLCBvciBjYW4gYmUgc2V0IHRvIGBmYWxzZWAgdG8gb3B0IG91dCBvZiBhdXRvbWF0aWMgbG9jYWxlIGJlaGF2aW9yLlxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBOb3RlOiBsb2NhbGUgb25seSBhcHBsaWVzIGluIHRoZSBQYWdlcyBSb3V0ZXIgYW5kIGlzIGlnbm9yZWQgaW4gdGhlIEFwcCBSb3V0ZXIuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzeFxuICAgKiAvLyBVc2UgdGhlICdmcicgbG9jYWxlOlxuICAgKiA8TGluayBocmVmPVwiL2Fib3V0XCIgbG9jYWxlPVwiZnJcIj5cbiAgICogICBBYm91dCAoRnJlbmNoKVxuICAgKiA8L0xpbms+XG4gICAqXG4gICAqIC8vIERpc2FibGUgbG9jYWxlIHByZWZpeDpcbiAgICogPExpbmsgaHJlZj1cIi9hYm91dFwiIGxvY2FsZT17ZmFsc2V9PlxuICAgKiAgIEFib3V0IChubyBsb2NhbGUgcHJlZml4KVxuICAgKiA8L0xpbms+XG4gICAqIGBgYFxuICAgKi9cbiAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2VcblxuICAvKipcbiAgICogRW5hYmxlIGxlZ2FjeSBsaW5rIGJlaGF2aW9yLCByZXF1aXJpbmcgYW4gYDxhPmAgdGFnIHRvIHdyYXAgdGhlIGNoaWxkIGNvbnRlbnRcbiAgICogaWYgdGhlIGNoaWxkIGlzIGEgc3RyaW5nIG9yIG51bWJlci5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gdjE2XG4gICAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9jb21taXQvNDg5ZTY1ZWQ5ODU0NGU2OWIwYWZkN2UwY2ZjM2Y5ZjZjMmI4MDNiN1xuICAgKi9cbiAgbGVnYWN5QmVoYXZpb3I/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gdGhlIG1vdXNlIHBvaW50ZXIgaXMgbW92ZWQgb250byB0aGUgYDxMaW5rPmAuXG4gICAqL1xuICBvbk1vdXNlRW50ZXI/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD5cblxuICAvKipcbiAgICogT3B0aW9uYWwgZXZlbnQgaGFuZGxlciBmb3Igd2hlbiB0aGUgYDxMaW5rPmAgaXMgdG91Y2hlZC5cbiAgICovXG4gIG9uVG91Y2hTdGFydD86IFJlYWN0LlRvdWNoRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBldmVudCBoYW5kbGVyIGZvciB3aGVuIHRoZSBgPExpbms+YCBpcyBjbGlja2VkLlxuICAgKi9cbiAgb25DbGljaz86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBldmVudCBoYW5kbGVyIGZvciB3aGVuIHRoZSBgPExpbms+YCBpcyBuYXZpZ2F0ZWQuXG4gICAqL1xuICBvbk5hdmlnYXRlPzogT25OYXZpZ2F0ZUV2ZW50SGFuZGxlclxufVxuXG4vLyBUT0RPLUFQUDogSW5jbHVkZSB0aGUgZnVsbCBzZXQgb2YgQW5jaG9yIHByb3BzXG4vLyBhZGRpbmcgdGhpcyB0byB0aGUgcHVibGljbHkgZXhwb3J0ZWQgdHlwZSBjdXJyZW50bHkgYnJlYWtzIGV4aXN0aW5nIGFwcHNcblxuLy8gYFJvdXRlSW5mZXJUeXBlYCBpcyBhIHN0dWIgaGVyZSB0byBhdm9pZCBicmVha2luZyBgdHlwZWRSb3V0ZXNgIHdoZW4gdGhlIHR5cGVcbi8vIGlzbid0IGdlbmVyYXRlZCB5ZXQuIEl0IHdpbGwgYmUgcmVwbGFjZWQgd2hlbiB0aGUgd2VicGFjayBwbHVnaW4gcnVucy5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmV4cG9ydCB0eXBlIExpbmtQcm9wczxSb3V0ZUluZmVyVHlwZSA9IGFueT4gPSBJbnRlcm5hbExpbmtQcm9wc1xudHlwZSBMaW5rUHJvcHNSZXF1aXJlZCA9IFJlcXVpcmVkS2V5czxMaW5rUHJvcHM+XG50eXBlIExpbmtQcm9wc09wdGlvbmFsID0gT3B0aW9uYWxLZXlzPE9taXQ8SW50ZXJuYWxMaW5rUHJvcHMsICdsb2NhbGUnPj5cblxuZnVuY3Rpb24gaXNNb2RpZmllZEV2ZW50KGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IGV2ZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MQW5jaG9yRWxlbWVudCB8IFNWR0FFbGVtZW50XG4gIGNvbnN0IHRhcmdldCA9IGV2ZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgndGFyZ2V0JylcbiAgcmV0dXJuIChcbiAgICAodGFyZ2V0ICYmIHRhcmdldCAhPT0gJ19zZWxmJykgfHxcbiAgICBldmVudC5tZXRhS2V5IHx8XG4gICAgZXZlbnQuY3RybEtleSB8fFxuICAgIGV2ZW50LnNoaWZ0S2V5IHx8XG4gICAgZXZlbnQuYWx0S2V5IHx8IC8vIHRyaWdnZXJzIHJlc291cmNlIGRvd25sb2FkXG4gICAgKGV2ZW50Lm5hdGl2ZUV2ZW50ICYmIGV2ZW50Lm5hdGl2ZUV2ZW50LndoaWNoID09PSAyKVxuICApXG59XG5cbmZ1bmN0aW9uIGxpbmtDbGlja2VkKFxuICBlOiBSZWFjdC5Nb3VzZUV2ZW50LFxuICBocmVmOiBzdHJpbmcsXG4gIGFzOiBzdHJpbmcsXG4gIGxpbmtJbnN0YW5jZVJlZjogUmVhY3QuUmVmT2JqZWN0PExpbmtJbnN0YW5jZSB8IG51bGw+LFxuICByZXBsYWNlPzogYm9vbGVhbixcbiAgc2Nyb2xsPzogYm9vbGVhbixcbiAgb25OYXZpZ2F0ZT86IE9uTmF2aWdhdGVFdmVudEhhbmRsZXJcbik6IHZvaWQge1xuICBjb25zdCB7IG5vZGVOYW1lIH0gPSBlLmN1cnJlbnRUYXJnZXRcblxuICAvLyBhbmNob3JzIGluc2lkZSBhbiBzdmcgaGF2ZSBhIGxvd2VyY2FzZSBub2RlTmFtZVxuICBjb25zdCBpc0FuY2hvck5vZGVOYW1lID0gbm9kZU5hbWUudG9VcHBlckNhc2UoKSA9PT0gJ0EnXG5cbiAgaWYgKFxuICAgIChpc0FuY2hvck5vZGVOYW1lICYmIGlzTW9kaWZpZWRFdmVudChlKSkgfHxcbiAgICBlLmN1cnJlbnRUYXJnZXQuaGFzQXR0cmlidXRlKCdkb3dubG9hZCcpXG4gICkge1xuICAgIC8vIGlnbm9yZSBjbGljayBmb3IgYnJvd3NlcuKAmXMgZGVmYXVsdCBiZWhhdmlvclxuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKCFpc0xvY2FsVVJMKGhyZWYpKSB7XG4gICAgaWYgKHJlcGxhY2UpIHtcbiAgICAgIC8vIGJyb3dzZXIgZGVmYXVsdCBiZWhhdmlvciBkb2VzIG5vdCByZXBsYWNlIHRoZSBoaXN0b3J5IHN0YXRlXG4gICAgICAvLyBzbyB3ZSBuZWVkIHRvIGRvIGl0IG1hbnVhbGx5XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGxvY2F0aW9uLnJlcGxhY2UoaHJlZilcbiAgICB9XG5cbiAgICAvLyBpZ25vcmUgY2xpY2sgZm9yIGJyb3dzZXLigJlzIGRlZmF1bHQgYmVoYXZpb3JcbiAgICByZXR1cm5cbiAgfVxuXG4gIGUucHJldmVudERlZmF1bHQoKVxuXG4gIGlmIChvbk5hdmlnYXRlKSB7XG4gICAgbGV0IGlzRGVmYXVsdFByZXZlbnRlZCA9IGZhbHNlXG5cbiAgICBvbk5hdmlnYXRlKHtcbiAgICAgIHByZXZlbnREZWZhdWx0OiAoKSA9PiB7XG4gICAgICAgIGlzRGVmYXVsdFByZXZlbnRlZCA9IHRydWVcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIGlmIChpc0RlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuXG4gIFJlYWN0LnN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgZGlzcGF0Y2hOYXZpZ2F0ZUFjdGlvbihcbiAgICAgIGFzIHx8IGhyZWYsXG4gICAgICByZXBsYWNlID8gJ3JlcGxhY2UnIDogJ3B1c2gnLFxuICAgICAgc2Nyb2xsID8/IHRydWUsXG4gICAgICBsaW5rSW5zdGFuY2VSZWYuY3VycmVudFxuICAgIClcbiAgfSlcbn1cblxuZnVuY3Rpb24gZm9ybWF0U3RyaW5nT3JVcmwodXJsT2JqT3JTdHJpbmc6IFVybE9iamVjdCB8IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgdXJsT2JqT3JTdHJpbmcgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHVybE9iak9yU3RyaW5nXG4gIH1cblxuICByZXR1cm4gZm9ybWF0VXJsKHVybE9iak9yU3RyaW5nKVxufVxuXG4vKipcbiAqIEEgUmVhY3QgY29tcG9uZW50IHRoYXQgZXh0ZW5kcyB0aGUgSFRNTCBgPGE+YCBlbGVtZW50IHRvIHByb3ZpZGVcbiAqIFtwcmVmZXRjaGluZ10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9saW5raW5nLWFuZC1uYXZpZ2F0aW5nIzItcHJlZmV0Y2hpbmcpXG4gKiBhbmQgY2xpZW50LXNpZGUgbmF2aWdhdGlvbi4gVGhpcyBpcyB0aGUgcHJpbWFyeSB3YXkgdG8gbmF2aWdhdGUgYmV0d2VlbiByb3V0ZXMgaW4gTmV4dC5qcy5cbiAqXG4gKiBAcmVtYXJrc1xuICogLSBQcmVmZXRjaGluZyBpcyBvbmx5IGVuYWJsZWQgaW4gcHJvZHVjdGlvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2NvbXBvbmVudHMvbGlua1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBMaW5rQ29tcG9uZW50KFxuICBwcm9wczogTGlua1Byb3BzICYge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgICByZWY6IFJlYWN0LlJlZjxIVE1MQW5jaG9yRWxlbWVudD5cbiAgfVxuKSB7XG4gIGNvbnN0IFtsaW5rU3RhdHVzLCBzZXRPcHRpbWlzdGljTGlua1N0YXR1c10gPSB1c2VPcHRpbWlzdGljKElETEVfTElOS19TVEFUVVMpXG5cbiAgbGV0IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcblxuICBjb25zdCBsaW5rSW5zdGFuY2VSZWYgPSB1c2VSZWY8TGlua0luc3RhbmNlIHwgbnVsbD4obnVsbClcblxuICBjb25zdCB7XG4gICAgaHJlZjogaHJlZlByb3AsXG4gICAgYXM6IGFzUHJvcCxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW5Qcm9wLFxuICAgIHByZWZldGNoOiBwcmVmZXRjaFByb3AgPSBudWxsLFxuICAgIHBhc3NIcmVmLFxuICAgIHJlcGxhY2UsXG4gICAgc2hhbGxvdyxcbiAgICBzY3JvbGwsXG4gICAgb25DbGljayxcbiAgICBvbk1vdXNlRW50ZXI6IG9uTW91c2VFbnRlclByb3AsXG4gICAgb25Ub3VjaFN0YXJ0OiBvblRvdWNoU3RhcnRQcm9wLFxuICAgIGxlZ2FjeUJlaGF2aW9yID0gZmFsc2UsXG4gICAgb25OYXZpZ2F0ZSxcbiAgICByZWY6IGZvcndhcmRlZFJlZixcbiAgICB1bnN0YWJsZV9keW5hbWljT25Ib3ZlcixcbiAgICAuLi5yZXN0UHJvcHNcbiAgfSA9IHByb3BzXG5cbiAgY2hpbGRyZW4gPSBjaGlsZHJlblByb3BcblxuICBpZiAoXG4gICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAodHlwZW9mIGNoaWxkcmVuID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGRyZW4gPT09ICdudW1iZXInKVxuICApIHtcbiAgICBjaGlsZHJlbiA9IDxhPntjaGlsZHJlbn08L2E+XG4gIH1cblxuICBjb25zdCByb3V0ZXIgPSBSZWFjdC51c2VDb250ZXh0KEFwcFJvdXRlckNvbnRleHQpXG5cbiAgY29uc3QgcHJlZmV0Y2hFbmFibGVkID0gcHJlZmV0Y2hQcm9wICE9PSBmYWxzZVxuICAvKipcbiAgICogVGhlIHBvc3NpYmxlIHN0YXRlcyBmb3IgcHJlZmV0Y2ggYXJlOlxuICAgKiAtIG51bGw6IHRoaXMgaXMgdGhlIGRlZmF1bHQgXCJhdXRvXCIgbW9kZSwgd2hlcmUgd2Ugd2lsbCBwcmVmZXRjaCBwYXJ0aWFsbHkgaWYgdGhlIGxpbmsgaXMgaW4gdGhlIHZpZXdwb3J0XG4gICAqIC0gdHJ1ZTogd2Ugd2lsbCBwcmVmZXRjaCBpZiB0aGUgbGluayBpcyB2aXNpYmxlIGFuZCBwcmVmZXRjaCB0aGUgZnVsbCBwYWdlLCBub3QganVzdCBwYXJ0aWFsbHlcbiAgICogLSBmYWxzZTogd2Ugd2lsbCBub3QgcHJlZmV0Y2ggaWYgaW4gdGhlIHZpZXdwb3J0IGF0IGFsbFxuICAgKiAtICd1bnN0YWJsZV9keW5hbWljT25Ib3Zlcic6IHRoaXMgc3RhcnRzIGluIFwiYXV0b1wiIG1vZGUsIGJ1dCBzd2l0Y2hlcyB0byBcImZ1bGxcIiB3aGVuIHRoZSBsaW5rIGlzIGhvdmVyZWRcbiAgICovXG4gIGNvbnN0IGFwcFByZWZldGNoS2luZCA9XG4gICAgcHJlZmV0Y2hQcm9wID09PSBudWxsIHx8IHByZWZldGNoUHJvcCA9PT0gJ2F1dG8nXG4gICAgICA/IFByZWZldGNoS2luZC5BVVRPXG4gICAgICA6IFByZWZldGNoS2luZC5GVUxMXG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBmdW5jdGlvbiBjcmVhdGVQcm9wRXJyb3IoYXJnczoge1xuICAgICAga2V5OiBzdHJpbmdcbiAgICAgIGV4cGVjdGVkOiBzdHJpbmdcbiAgICAgIGFjdHVhbDogc3RyaW5nXG4gICAgfSkge1xuICAgICAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICAgICAgYEZhaWxlZCBwcm9wIHR5cGU6IFRoZSBwcm9wIFxcYCR7YXJncy5rZXl9XFxgIGV4cGVjdHMgYSAke2FyZ3MuZXhwZWN0ZWR9IGluIFxcYDxMaW5rPlxcYCwgYnV0IGdvdCBcXGAke2FyZ3MuYWN0dWFsfVxcYCBpbnN0ZWFkLmAgK1xuICAgICAgICAgICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgPyBcIlxcbk9wZW4geW91ciBicm93c2VyJ3MgY29uc29sZSB0byB2aWV3IHRoZSBDb21wb25lbnQgc3RhY2sgdHJhY2UuXCJcbiAgICAgICAgICAgIDogJycpXG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICBjb25zdCByZXF1aXJlZFByb3BzR3VhcmQ6IFJlY29yZDxMaW5rUHJvcHNSZXF1aXJlZCwgdHJ1ZT4gPSB7XG4gICAgICBocmVmOiB0cnVlLFxuICAgIH0gYXMgY29uc3RcbiAgICBjb25zdCByZXF1aXJlZFByb3BzOiBMaW5rUHJvcHNSZXF1aXJlZFtdID0gT2JqZWN0LmtleXMoXG4gICAgICByZXF1aXJlZFByb3BzR3VhcmRcbiAgICApIGFzIExpbmtQcm9wc1JlcXVpcmVkW11cbiAgICByZXF1aXJlZFByb3BzLmZvckVhY2goKGtleTogTGlua1Byb3BzUmVxdWlyZWQpID0+IHtcbiAgICAgIGlmIChrZXkgPT09ICdocmVmJykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcHJvcHNba2V5XSA9PSBudWxsIHx8XG4gICAgICAgICAgKHR5cGVvZiBwcm9wc1trZXldICE9PSAnc3RyaW5nJyAmJiB0eXBlb2YgcHJvcHNba2V5XSAhPT0gJ29iamVjdCcpXG4gICAgICAgICkge1xuICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgIGFjdHVhbDogcHJvcHNba2V5XSA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiBwcm9wc1trZXldLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFR5cGVTY3JpcHQgdHJpY2sgZm9yIHR5cGUtZ3VhcmRpbmc6XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgY29uc3QgXzogbmV2ZXIgPSBrZXlcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgLy8gVHlwZVNjcmlwdCB0cmljayBmb3IgdHlwZS1ndWFyZGluZzpcbiAgICBjb25zdCBvcHRpb25hbFByb3BzR3VhcmQ6IFJlY29yZDxMaW5rUHJvcHNPcHRpb25hbCwgdHJ1ZT4gPSB7XG4gICAgICBhczogdHJ1ZSxcbiAgICAgIHJlcGxhY2U6IHRydWUsXG4gICAgICBzY3JvbGw6IHRydWUsXG4gICAgICBzaGFsbG93OiB0cnVlLFxuICAgICAgcGFzc0hyZWY6IHRydWUsXG4gICAgICBwcmVmZXRjaDogdHJ1ZSxcbiAgICAgIHVuc3RhYmxlX2R5bmFtaWNPbkhvdmVyOiB0cnVlLFxuICAgICAgb25DbGljazogdHJ1ZSxcbiAgICAgIG9uTW91c2VFbnRlcjogdHJ1ZSxcbiAgICAgIG9uVG91Y2hTdGFydDogdHJ1ZSxcbiAgICAgIGxlZ2FjeUJlaGF2aW9yOiB0cnVlLFxuICAgICAgb25OYXZpZ2F0ZTogdHJ1ZSxcbiAgICB9IGFzIGNvbnN0XG4gICAgY29uc3Qgb3B0aW9uYWxQcm9wczogTGlua1Byb3BzT3B0aW9uYWxbXSA9IE9iamVjdC5rZXlzKFxuICAgICAgb3B0aW9uYWxQcm9wc0d1YXJkXG4gICAgKSBhcyBMaW5rUHJvcHNPcHRpb25hbFtdXG4gICAgb3B0aW9uYWxQcm9wcy5mb3JFYWNoKChrZXk6IExpbmtQcm9wc09wdGlvbmFsKSA9PiB7XG4gICAgICBjb25zdCB2YWxUeXBlID0gdHlwZW9mIHByb3BzW2tleV1cblxuICAgICAgaWYgKGtleSA9PT0gJ2FzJykge1xuICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnc3RyaW5nJyAmJiB2YWxUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBleHBlY3RlZDogJ2BzdHJpbmdgIG9yIGBvYmplY3RgJyxcbiAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBrZXkgPT09ICdvbkNsaWNrJyB8fFxuICAgICAgICBrZXkgPT09ICdvbk1vdXNlRW50ZXInIHx8XG4gICAgICAgIGtleSA9PT0gJ29uVG91Y2hTdGFydCcgfHxcbiAgICAgICAga2V5ID09PSAnb25OYXZpZ2F0ZSdcbiAgICAgICkge1xuICAgICAgICBpZiAocHJvcHNba2V5XSAmJiB2YWxUeXBlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGV4cGVjdGVkOiAnYGZ1bmN0aW9uYCcsXG4gICAgICAgICAgICBhY3R1YWw6IHZhbFR5cGUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAga2V5ID09PSAncmVwbGFjZScgfHxcbiAgICAgICAga2V5ID09PSAnc2Nyb2xsJyB8fFxuICAgICAgICBrZXkgPT09ICdzaGFsbG93JyB8fFxuICAgICAgICBrZXkgPT09ICdwYXNzSHJlZicgfHxcbiAgICAgICAga2V5ID09PSAnbGVnYWN5QmVoYXZpb3InIHx8XG4gICAgICAgIGtleSA9PT0gJ3Vuc3RhYmxlX2R5bmFtaWNPbkhvdmVyJ1xuICAgICAgKSB7XG4gICAgICAgIGlmIChwcm9wc1trZXldICE9IG51bGwgJiYgdmFsVHlwZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgdGhyb3cgY3JlYXRlUHJvcEVycm9yKHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGV4cGVjdGVkOiAnYGJvb2xlYW5gJyxcbiAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3ByZWZldGNoJykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcHJvcHNba2V5XSAhPSBudWxsICYmXG4gICAgICAgICAgdmFsVHlwZSAhPT0gJ2Jvb2xlYW4nICYmXG4gICAgICAgICAgcHJvcHNba2V5XSAhPT0gJ2F1dG8nXG4gICAgICAgICkge1xuICAgICAgICAgIHRocm93IGNyZWF0ZVByb3BFcnJvcih7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBleHBlY3RlZDogJ2Bib29sZWFuIHwgXCJhdXRvXCJgJyxcbiAgICAgICAgICAgIGFjdHVhbDogdmFsVHlwZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUeXBlU2NyaXB0IHRyaWNrIGZvciB0eXBlLWd1YXJkaW5nOlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgIGNvbnN0IF86IG5ldmVyID0ga2V5XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKHByb3BzLmxvY2FsZSkge1xuICAgICAgd2Fybk9uY2UoXG4gICAgICAgICdUaGUgYGxvY2FsZWAgcHJvcCBpcyBub3Qgc3VwcG9ydGVkIGluIGBuZXh0L2xpbmtgIHdoaWxlIHVzaW5nIHRoZSBgYXBwYCByb3V0ZXIuIFJlYWQgbW9yZSBhYm91dCBhcHAgcm91dGVyIGludGVybmFsaXphdGlvbjogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9pbnRlcm5hdGlvbmFsaXphdGlvbidcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKCFhc1Byb3ApIHtcbiAgICAgIGxldCBocmVmOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgICAgIGlmICh0eXBlb2YgaHJlZlByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGhyZWYgPSBocmVmUHJvcFxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdHlwZW9mIGhyZWZQcm9wID09PSAnb2JqZWN0JyAmJlxuICAgICAgICB0eXBlb2YgaHJlZlByb3AucGF0aG5hbWUgPT09ICdzdHJpbmcnXG4gICAgICApIHtcbiAgICAgICAgaHJlZiA9IGhyZWZQcm9wLnBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIGlmIChocmVmKSB7XG4gICAgICAgIGNvbnN0IGhhc0R5bmFtaWNTZWdtZW50ID0gaHJlZlxuICAgICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgICAgLnNvbWUoKHNlZ21lbnQpID0+IHNlZ21lbnQuc3RhcnRzV2l0aCgnWycpICYmIHNlZ21lbnQuZW5kc1dpdGgoJ10nKSlcblxuICAgICAgICBpZiAoaGFzRHluYW1pY1NlZ21lbnQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgRHluYW1pYyBocmVmIFxcYCR7aHJlZn1cXGAgZm91bmQgaW4gPExpbms+IHdoaWxlIHVzaW5nIHRoZSBcXGAvYXBwXFxgIHJvdXRlciwgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2FwcC1kaXItZHluYW1pYy1ocmVmYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHsgaHJlZiwgYXMgfSA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHJlc29sdmVkSHJlZiA9IGZvcm1hdFN0cmluZ09yVXJsKGhyZWZQcm9wKVxuICAgIHJldHVybiB7XG4gICAgICBocmVmOiByZXNvbHZlZEhyZWYsXG4gICAgICBhczogYXNQcm9wID8gZm9ybWF0U3RyaW5nT3JVcmwoYXNQcm9wKSA6IHJlc29sdmVkSHJlZixcbiAgICB9XG4gIH0sIFtocmVmUHJvcCwgYXNQcm9wXSlcblxuICAvLyBUaGlzIHdpbGwgcmV0dXJuIHRoZSBmaXJzdCBjaGlsZCwgaWYgbXVsdGlwbGUgYXJlIHByb3ZpZGVkIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3JcbiAgbGV0IGNoaWxkOiBhbnlcbiAgaWYgKGxlZ2FjeUJlaGF2aW9yKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICBpZiAob25DbGljaykge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFwib25DbGlja1wiIHdhcyBwYXNzZWQgdG8gPExpbms+IHdpdGggXFxgaHJlZlxcYCBvZiBcXGAke2hyZWZQcm9wfVxcYCBidXQgXCJsZWdhY3lCZWhhdmlvclwiIHdhcyBzZXQuIFRoZSBsZWdhY3kgYmVoYXZpb3IgcmVxdWlyZXMgb25DbGljayBiZSBzZXQgb24gdGhlIGNoaWxkIG9mIG5leHQvbGlua2BcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKG9uTW91c2VFbnRlclByb3ApIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBcIm9uTW91c2VFbnRlclwiIHdhcyBwYXNzZWQgdG8gPExpbms+IHdpdGggXFxgaHJlZlxcYCBvZiBcXGAke2hyZWZQcm9wfVxcYCBidXQgXCJsZWdhY3lCZWhhdmlvclwiIHdhcyBzZXQuIFRoZSBsZWdhY3kgYmVoYXZpb3IgcmVxdWlyZXMgb25Nb3VzZUVudGVyIGJlIHNldCBvbiB0aGUgY2hpbGQgb2YgbmV4dC9saW5rYFxuICAgICAgICApXG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBjaGlsZCA9IFJlYWN0LkNoaWxkcmVuLm9ubHkoY2hpbGRyZW4pXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBObyBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7aHJlZlByb3B9XFxgIGJ1dCBvbmUgY2hpbGQgaXMgcmVxdWlyZWQgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbGluay1uby1jaGlsZHJlbmBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBNdWx0aXBsZSBjaGlsZHJlbiB3ZXJlIHBhc3NlZCB0byA8TGluaz4gd2l0aCBcXGBocmVmXFxgIG9mIFxcYCR7aHJlZlByb3B9XFxgIGJ1dCBvbmx5IG9uZSBjaGlsZCBpcyBzdXBwb3J0ZWQgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbGluay1tdWx0aXBsZS1jaGlsZHJlbmAgK1xuICAgICAgICAgICAgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgID8gXCIgXFxuT3BlbiB5b3VyIGJyb3dzZXIncyBjb25zb2xlIHRvIHZpZXcgdGhlIENvbXBvbmVudCBzdGFjayB0cmFjZS5cIlxuICAgICAgICAgICAgICA6ICcnKVxuICAgICAgICApXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoaWxkID0gUmVhY3QuQ2hpbGRyZW4ub25seShjaGlsZHJlbilcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICBpZiAoKGNoaWxkcmVuIGFzIGFueSk/LnR5cGUgPT09ICdhJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ0ludmFsaWQgPExpbms+IHdpdGggPGE+IGNoaWxkLiBQbGVhc2UgcmVtb3ZlIDxhPiBvciB1c2UgPExpbmsgbGVnYWN5QmVoYXZpb3I+LlxcbkxlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ludmFsaWQtbmV3LWxpbmstd2l0aC1leHRyYS1hbmNob3InXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBjaGlsZFJlZjogYW55ID0gbGVnYWN5QmVoYXZpb3JcbiAgICA/IGNoaWxkICYmIHR5cGVvZiBjaGlsZCA9PT0gJ29iamVjdCcgJiYgY2hpbGQucmVmXG4gICAgOiBmb3J3YXJkZWRSZWZcblxuICAvLyBVc2UgYSBjYWxsYmFjayByZWYgdG8gYXR0YWNoIGFuIEludGVyc2VjdGlvbk9ic2VydmVyIHRvIHRoZSBhbmNob3IgdGFnIG9uXG4gIC8vIG1vdW50LiBJbiB0aGUgZnV0dXJlIHdlIHdpbGwgYWxzbyB1c2UgdGhpcyB0byBrZWVwIHRyYWNrIG9mIGFsbCB0aGVcbiAgLy8gY3VycmVudGx5IG1vdW50ZWQgPExpbms+IGluc3RhbmNlcywgZS5nLiBzbyB3ZSBjYW4gcmUtcHJlZmV0Y2ggdGhlbSBhZnRlclxuICAvLyBhIHJldmFsaWRhdGlvbiBvciByZWZyZXNoLlxuICBjb25zdCBvYnNlcnZlTGlua1Zpc2liaWxpdHlPbk1vdW50ID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKGVsZW1lbnQ6IEhUTUxBbmNob3JFbGVtZW50IHwgU1ZHQUVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChyb3V0ZXIgIT09IG51bGwpIHtcbiAgICAgICAgbGlua0luc3RhbmNlUmVmLmN1cnJlbnQgPSBtb3VudExpbmtJbnN0YW5jZShcbiAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgIGhyZWYsXG4gICAgICAgICAgcm91dGVyLFxuICAgICAgICAgIGFwcFByZWZldGNoS2luZCxcbiAgICAgICAgICBwcmVmZXRjaEVuYWJsZWQsXG4gICAgICAgICAgc2V0T3B0aW1pc3RpY0xpbmtTdGF0dXNcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAobGlua0luc3RhbmNlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICB1bm1vdW50TGlua0ZvckN1cnJlbnROYXZpZ2F0aW9uKGxpbmtJbnN0YW5jZVJlZi5jdXJyZW50KVxuICAgICAgICAgIGxpbmtJbnN0YW5jZVJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgICB9XG4gICAgICAgIHVubW91bnRQcmVmZXRjaGFibGVJbnN0YW5jZShlbGVtZW50KVxuICAgICAgfVxuICAgIH0sXG4gICAgW3ByZWZldGNoRW5hYmxlZCwgaHJlZiwgcm91dGVyLCBhcHBQcmVmZXRjaEtpbmQsIHNldE9wdGltaXN0aWNMaW5rU3RhdHVzXVxuICApXG5cbiAgY29uc3QgbWVyZ2VkUmVmID0gdXNlTWVyZ2VkUmVmKG9ic2VydmVMaW5rVmlzaWJpbGl0eU9uTW91bnQsIGNoaWxkUmVmKVxuXG4gIGNvbnN0IGNoaWxkUHJvcHM6IHtcbiAgICBvblRvdWNoU3RhcnQ/OiBSZWFjdC5Ub3VjaEV2ZW50SGFuZGxlcjxIVE1MQW5jaG9yRWxlbWVudD5cbiAgICBvbk1vdXNlRW50ZXI6IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuICAgIG9uQ2xpY2s6IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PlxuICAgIGhyZWY/OiBzdHJpbmdcbiAgICByZWY/OiBhbnlcbiAgfSA9IHtcbiAgICByZWY6IG1lcmdlZFJlZixcbiAgICBvbkNsaWNrKGUpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmICghZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBDb21wb25lbnQgcmVuZGVyZWQgaW5zaWRlIG5leHQvbGluayBoYXMgdG8gcGFzcyBjbGljayBldmVudCB0byBcIm9uQ2xpY2tcIiBwcm9wLmBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbkNsaWNrKGUpXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICAgY2hpbGQucHJvcHMgJiZcbiAgICAgICAgdHlwZW9mIGNoaWxkLnByb3BzLm9uQ2xpY2sgPT09ICdmdW5jdGlvbidcbiAgICAgICkge1xuICAgICAgICBjaGlsZC5wcm9wcy5vbkNsaWNrKGUpXG4gICAgICB9XG5cbiAgICAgIGlmICghcm91dGVyKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoZS5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBsaW5rQ2xpY2tlZChlLCBocmVmLCBhcywgbGlua0luc3RhbmNlUmVmLCByZXBsYWNlLCBzY3JvbGwsIG9uTmF2aWdhdGUpXG4gICAgfSxcbiAgICBvbk1vdXNlRW50ZXIoZSkge1xuICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25Nb3VzZUVudGVyUHJvcCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbk1vdXNlRW50ZXJQcm9wKGUpXG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgbGVnYWN5QmVoYXZpb3IgJiZcbiAgICAgICAgY2hpbGQucHJvcHMgJiZcbiAgICAgICAgdHlwZW9mIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgKSB7XG4gICAgICAgIGNoaWxkLnByb3BzLm9uTW91c2VFbnRlcihlKVxuICAgICAgfVxuXG4gICAgICBpZiAoIXJvdXRlcikge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCFwcmVmZXRjaEVuYWJsZWQgfHwgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVwZ3JhZGVUb0R5bmFtaWNQcmVmZXRjaCA9IHVuc3RhYmxlX2R5bmFtaWNPbkhvdmVyID09PSB0cnVlXG4gICAgICBvbk5hdmlnYXRpb25JbnRlbnQoXG4gICAgICAgIGUuY3VycmVudFRhcmdldCBhcyBIVE1MQW5jaG9yRWxlbWVudCB8IFNWR0FFbGVtZW50LFxuICAgICAgICB1cGdyYWRlVG9EeW5hbWljUHJlZmV0Y2hcbiAgICAgIClcbiAgICB9LFxuICAgIG9uVG91Y2hTdGFydDogcHJvY2Vzcy5lbnYuX19ORVhUX0xJTktfTk9fVE9VQ0hfU1RBUlRcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IGZ1bmN0aW9uIG9uVG91Y2hTdGFydChlKSB7XG4gICAgICAgICAgaWYgKCFsZWdhY3lCZWhhdmlvciAmJiB0eXBlb2Ygb25Ub3VjaFN0YXJ0UHJvcCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgb25Ub3VjaFN0YXJ0UHJvcChlKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGxlZ2FjeUJlaGF2aW9yICYmXG4gICAgICAgICAgICBjaGlsZC5wcm9wcyAmJlxuICAgICAgICAgICAgdHlwZW9mIGNoaWxkLnByb3BzLm9uVG91Y2hTdGFydCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgY2hpbGQucHJvcHMub25Ub3VjaFN0YXJ0KGUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFyb3V0ZXIpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghcHJlZmV0Y2hFbmFibGVkKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB1cGdyYWRlVG9EeW5hbWljUHJlZmV0Y2ggPSB1bnN0YWJsZV9keW5hbWljT25Ib3ZlciA9PT0gdHJ1ZVxuICAgICAgICAgIG9uTmF2aWdhdGlvbkludGVudChcbiAgICAgICAgICAgIGUuY3VycmVudFRhcmdldCBhcyBIVE1MQW5jaG9yRWxlbWVudCB8IFNWR0FFbGVtZW50LFxuICAgICAgICAgICAgdXBncmFkZVRvRHluYW1pY1ByZWZldGNoXG4gICAgICAgICAgKVxuICAgICAgICB9LFxuICB9XG5cbiAgLy8gSWYgY2hpbGQgaXMgYW4gPGE+IHRhZyBhbmQgZG9lc24ndCBoYXZlIGEgaHJlZiBhdHRyaWJ1dGUsIG9yIGlmIHRoZSAncGFzc0hyZWYnIHByb3BlcnR5IGlzXG4gIC8vIGRlZmluZWQsIHdlIHNwZWNpZnkgdGhlIGN1cnJlbnQgJ2hyZWYnLCBzbyB0aGF0IHJlcGV0aXRpb24gaXMgbm90IG5lZWRlZCBieSB0aGUgdXNlci5cbiAgLy8gSWYgdGhlIHVybCBpcyBhYnNvbHV0ZSwgd2UgY2FuIGJ5cGFzcyB0aGUgbG9naWMgdG8gcHJlcGVuZCB0aGUgYmFzZVBhdGguXG4gIGlmIChpc0Fic29sdXRlVXJsKGFzKSkge1xuICAgIGNoaWxkUHJvcHMuaHJlZiA9IGFzXG4gIH0gZWxzZSBpZiAoXG4gICAgIWxlZ2FjeUJlaGF2aW9yIHx8XG4gICAgcGFzc0hyZWYgfHxcbiAgICAoY2hpbGQudHlwZSA9PT0gJ2EnICYmICEoJ2hyZWYnIGluIGNoaWxkLnByb3BzKSlcbiAgKSB7XG4gICAgY2hpbGRQcm9wcy5ocmVmID0gYWRkQmFzZVBhdGgoYXMpXG4gIH1cblxuICBsZXQgbGluazogUmVhY3QuUmVhY3ROb2RlXG5cbiAgaWYgKGxlZ2FjeUJlaGF2aW9yKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICBlcnJvck9uY2UoXG4gICAgICAgICdgbGVnYWN5QmVoYXZpb3JgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSAnICtcbiAgICAgICAgICAncmVsZWFzZS4gQSBjb2RlbW9kIGlzIGF2YWlsYWJsZSB0byB1cGdyYWRlIHlvdXIgY29tcG9uZW50czpcXG5cXG4nICtcbiAgICAgICAgICAnbnB4IEBuZXh0L2NvZGVtb2RAbGF0ZXN0IG5ldy1saW5rIC5cXG5cXG4nICtcbiAgICAgICAgICAnTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vdXBncmFkaW5nL2NvZGVtb2RzI3JlbW92ZS1hLXRhZ3MtZnJvbS1saW5rLWNvbXBvbmVudHMnXG4gICAgICApXG4gICAgfVxuICAgIGxpbmsgPSBSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGQsIGNoaWxkUHJvcHMpXG4gIH0gZWxzZSB7XG4gICAgbGluayA9IChcbiAgICAgIDxhIHsuLi5yZXN0UHJvcHN9IHsuLi5jaGlsZFByb3BzfT5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9hPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPExpbmtTdGF0dXNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtsaW5rU3RhdHVzfT5cbiAgICAgIHtsaW5rfVxuICAgIDwvTGlua1N0YXR1c0NvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuY29uc3QgTGlua1N0YXR1c0NvbnRleHQgPSBjcmVhdGVDb250ZXh0PFxuICB0eXBlb2YgUEVORElOR19MSU5LX1NUQVRVUyB8IHR5cGVvZiBJRExFX0xJTktfU1RBVFVTXG4+KElETEVfTElOS19TVEFUVVMpXG5cbmV4cG9ydCBjb25zdCB1c2VMaW5rU3RhdHVzID0gKCkgPT4ge1xuICByZXR1cm4gdXNlQ29udGV4dChMaW5rU3RhdHVzQ29udGV4dClcbn1cbiJdLCJuYW1lcyI6WyJMaW5rQ29tcG9uZW50IiwidXNlTGlua1N0YXR1cyIsImlzTW9kaWZpZWRFdmVudCIsImV2ZW50IiwiZXZlbnRUYXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwiZ2V0QXR0cmlidXRlIiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsIm5hdGl2ZUV2ZW50Iiwid2hpY2giLCJsaW5rQ2xpY2tlZCIsImUiLCJocmVmIiwiYXMiLCJsaW5rSW5zdGFuY2VSZWYiLCJyZXBsYWNlIiwic2Nyb2xsIiwib25OYXZpZ2F0ZSIsIm5vZGVOYW1lIiwiaXNBbmNob3JOb2RlTmFtZSIsInRvVXBwZXJDYXNlIiwiaGFzQXR0cmlidXRlIiwiaXNMb2NhbFVSTCIsInByZXZlbnREZWZhdWx0IiwibG9jYXRpb24iLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJSZWFjdCIsInN0YXJ0VHJhbnNpdGlvbiIsImRpc3BhdGNoTmF2aWdhdGVBY3Rpb24iLCJjdXJyZW50IiwiZm9ybWF0U3RyaW5nT3JVcmwiLCJ1cmxPYmpPclN0cmluZyIsImZvcm1hdFVybCIsInByb3BzIiwibGlua1N0YXR1cyIsInNldE9wdGltaXN0aWNMaW5rU3RhdHVzIiwidXNlT3B0aW1pc3RpYyIsIklETEVfTElOS19TVEFUVVMiLCJjaGlsZHJlbiIsInVzZVJlZiIsImhyZWZQcm9wIiwiYXNQcm9wIiwiY2hpbGRyZW5Qcm9wIiwicHJlZmV0Y2giLCJwcmVmZXRjaFByb3AiLCJwYXNzSHJlZiIsInNoYWxsb3ciLCJvbkNsaWNrIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUVudGVyUHJvcCIsIm9uVG91Y2hTdGFydCIsIm9uVG91Y2hTdGFydFByb3AiLCJsZWdhY3lCZWhhdmlvciIsInJlZiIsImZvcndhcmRlZFJlZiIsInVuc3RhYmxlX2R5bmFtaWNPbkhvdmVyIiwicmVzdFByb3BzIiwiYSIsInJvdXRlciIsInVzZUNvbnRleHQiLCJBcHBSb3V0ZXJDb250ZXh0IiwicHJlZmV0Y2hFbmFibGVkIiwiYXBwUHJlZmV0Y2hLaW5kIiwiUHJlZmV0Y2hLaW5kIiwiQVVUTyIsIkZVTEwiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjcmVhdGVQcm9wRXJyb3IiLCJhcmdzIiwiRXJyb3IiLCJrZXkiLCJleHBlY3RlZCIsImFjdHVhbCIsIndpbmRvdyIsInJlcXVpcmVkUHJvcHNHdWFyZCIsInJlcXVpcmVkUHJvcHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsIl8iLCJvcHRpb25hbFByb3BzR3VhcmQiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImxvY2FsZSIsIndhcm5PbmNlIiwicGF0aG5hbWUiLCJoYXNEeW5hbWljU2VnbWVudCIsInNwbGl0Iiwic29tZSIsInNlZ21lbnQiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJ1c2VNZW1vIiwicmVzb2x2ZWRIcmVmIiwiY2hpbGQiLCJjb25zb2xlIiwid2FybiIsIkNoaWxkcmVuIiwib25seSIsImVyciIsInR5cGUiLCJjaGlsZFJlZiIsIm9ic2VydmVMaW5rVmlzaWJpbGl0eU9uTW91bnQiLCJ1c2VDYWxsYmFjayIsImVsZW1lbnQiLCJtb3VudExpbmtJbnN0YW5jZSIsInVubW91bnRMaW5rRm9yQ3VycmVudE5hdmlnYXRpb24iLCJ1bm1vdW50UHJlZmV0Y2hhYmxlSW5zdGFuY2UiLCJtZXJnZWRSZWYiLCJ1c2VNZXJnZWRSZWYiLCJjaGlsZFByb3BzIiwiZGVmYXVsdFByZXZlbnRlZCIsInVwZ3JhZGVUb0R5bmFtaWNQcmVmZXRjaCIsIm9uTmF2aWdhdGlvbkludGVudCIsIl9fTkVYVF9MSU5LX05PX1RPVUNIX1NUQVJUIiwidW5kZWZpbmVkIiwiaXNBYnNvbHV0ZVVybCIsImFkZEJhc2VQYXRoIiwibGluayIsImVycm9yT25jZSIsImNsb25lRWxlbWVudCIsIkxpbmtTdGF0dXNDb250ZXh0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsImNyZWF0ZUNvbnRleHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-dir/link.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/app-find-source-map-url.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/client/app-find-source-map-url.js ***!
\******************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"findSourceMapURL\", ({\n enumerable: true,\n get: function() {\n return findSourceMapURL;\n }\n}));\nconst basePath = false || '';\nconst pathname = \"\" + basePath + \"/__nextjs_source-map\";\nconst findSourceMapURL = true ? function findSourceMapURL(filename) {\n if (filename === '') {\n return null;\n }\n if (filename.startsWith(document.location.origin) && filename.includes('/_next/static')) {\n // This is a request for a client chunk. This can only happen when\n // using Turbopack. In this case, since we control how those source\n // maps are generated, we can safely assume that the sourceMappingURL\n // is relative to the filename, with an added `.map` extension. The\n // browser can just request this file, and it gets served through the\n // normal dev server, without the need to route this through\n // the `/__nextjs_source-map` dev middleware.\n return \"\" + filename + \".map\";\n }\n const url = new URL(pathname, document.location.origin);\n url.searchParams.set('filename', filename);\n return url.href;\n} : 0;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-find-source-map-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hcHAtZmluZC1zb3VyY2UtbWFwLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQUdhQTs7O2VBQUFBOzs7QUFIYixNQUFNQyxXQUFXQyxNQUFrQyxJQUFJO0FBQ3ZELE1BQU1HLFdBQVksS0FBRUosV0FBUztBQUV0QixNQUFNRCxtQkFDWEUsS0FBb0IsR0FDaEIsU0FBU0YsaUJBQWlCTyxRQUFnQjtJQUN4QyxJQUFJQSxhQUFhLElBQUk7UUFDbkIsT0FBTztJQUNUO0lBRUEsSUFDRUEsU0FBU0MsVUFBVSxDQUFDQyxTQUFTQyxRQUFRLENBQUNDLE1BQU0sS0FDNUNKLFNBQVNLLFFBQVEsQ0FBQyxrQkFDbEI7UUFDQSxrRUFBa0U7UUFDbEUsbUVBQW1FO1FBQ25FLHFFQUFxRTtRQUNyRSxtRUFBbUU7UUFDbkUscUVBQXFFO1FBQ3JFLDREQUE0RDtRQUM1RCw2Q0FBNkM7UUFDN0MsT0FBUSxLQUFFTCxXQUFTO0lBQ3JCO0lBRUEsTUFBTU0sTUFBTSxJQUFJQyxJQUFJVCxVQUFVSSxTQUFTQyxRQUFRLENBQUNDLE1BQU07SUFDdERFLElBQUlFLFlBQVksQ0FBQ0MsR0FBRyxDQUFDLFlBQVlUO0lBRWpDLE9BQU9NLElBQUlJLElBQUk7QUFDakIsSUFDQUMsQ0FBU0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9zcmMvY2xpZW50L2FwcC1maW5kLXNvdXJjZS1tYXAtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGJhc2VQYXRoID0gcHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJ1xuY29uc3QgcGF0aG5hbWUgPSBgJHtiYXNlUGF0aH0vX19uZXh0anNfc291cmNlLW1hcGBcblxuZXhwb3J0IGNvbnN0IGZpbmRTb3VyY2VNYXBVUkwgPVxuICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50J1xuICAgID8gZnVuY3Rpb24gZmluZFNvdXJjZU1hcFVSTChmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmIChmaWxlbmFtZSA9PT0gJycpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIGZpbGVuYW1lLnN0YXJ0c1dpdGgoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luKSAmJlxuICAgICAgICAgIGZpbGVuYW1lLmluY2x1ZGVzKCcvX25leHQvc3RhdGljJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBhIHJlcXVlc3QgZm9yIGEgY2xpZW50IGNodW5rLiBUaGlzIGNhbiBvbmx5IGhhcHBlbiB3aGVuXG4gICAgICAgICAgLy8gdXNpbmcgVHVyYm9wYWNrLiBJbiB0aGlzIGNhc2UsIHNpbmNlIHdlIGNvbnRyb2wgaG93IHRob3NlIHNvdXJjZVxuICAgICAgICAgIC8vIG1hcHMgYXJlIGdlbmVyYXRlZCwgd2UgY2FuIHNhZmVseSBhc3N1bWUgdGhhdCB0aGUgc291cmNlTWFwcGluZ1VSTFxuICAgICAgICAgIC8vIGlzIHJlbGF0aXZlIHRvIHRoZSBmaWxlbmFtZSwgd2l0aCBhbiBhZGRlZCBgLm1hcGAgZXh0ZW5zaW9uLiBUaGVcbiAgICAgICAgICAvLyBicm93c2VyIGNhbiBqdXN0IHJlcXVlc3QgdGhpcyBmaWxlLCBhbmQgaXQgZ2V0cyBzZXJ2ZWQgdGhyb3VnaCB0aGVcbiAgICAgICAgICAvLyBub3JtYWwgZGV2IHNlcnZlciwgd2l0aG91dCB0aGUgbmVlZCB0byByb3V0ZSB0aGlzIHRocm91Z2hcbiAgICAgICAgICAvLyB0aGUgYC9fX25leHRqc19zb3VyY2UtbWFwYCBkZXYgbWlkZGxld2FyZS5cbiAgICAgICAgICByZXR1cm4gYCR7ZmlsZW5hbWV9Lm1hcGBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwocGF0aG5hbWUsIGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbilcbiAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2ZpbGVuYW1lJywgZmlsZW5hbWUpXG5cbiAgICAgICAgcmV0dXJuIHVybC5ocmVmXG4gICAgICB9XG4gICAgOiB1bmRlZmluZWRcbiJdLCJuYW1lcyI6WyJmaW5kU291cmNlTWFwVVJMIiwiYmFzZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1JPVVRFUl9CQVNFUEFUSCIsInBhdGhuYW1lIiwiTk9ERV9FTlYiLCJmaWxlbmFtZSIsInN0YXJ0c1dpdGgiLCJkb2N1bWVudCIsImxvY2F0aW9uIiwib3JpZ2luIiwiaW5jbHVkZXMiLCJ1cmwiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJzZXQiLCJocmVmIiwidW5kZWZpbmVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/app-find-source-map-url.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/assign-location.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/client/assign-location.js ***!
\**********************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"assignLocation\", ({\n enumerable: true,\n get: function() {\n return assignLocation;\n }\n}));\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"(ssr)/./node_modules/next/dist/client/add-base-path.js\");\nfunction assignLocation(location, url) {\n if (location.startsWith('.')) {\n const urlBase = url.origin + url.pathname;\n return new URL(// new URL('./relative', 'https://example.com/subdir').href -> 'https://example.com/relative'\n // new URL('./relative', 'https://example.com/subdir/').href -> 'https://example.com/subdir/relative'\n (urlBase.endsWith('/') ? urlBase : urlBase + '/') + location);\n }\n return new URL((0, _addbasepath.addBasePath)(location), url.href);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=assign-location.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hc3NpZ24tbG9jYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7OztrREFTZ0JBOzs7ZUFBQUE7Ozt5Q0FUWTtBQVNyQixTQUFTQSxlQUFlQyxRQUFnQixFQUFFQyxHQUFRO0lBQ3ZELElBQUlELFNBQVNFLFVBQVUsQ0FBQyxNQUFNO1FBQzVCLE1BQU1DLFVBQVVGLElBQUlHLE1BQU0sR0FBR0gsSUFBSUksUUFBUTtRQUN6QyxPQUFPLElBQUlDLElBQ1QsNkZBQzZGO1FBQzdGLHFHQUFxRztTQUNwR0gsUUFBUUksUUFBUSxDQUFDLE9BQU9KLFVBQVVBLFVBQVUsSUFBRSxHQUFLSDtJQUV4RDtJQUVBLE9BQU8sSUFBSU0sSUFBSUUsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWVIsV0FBV0MsSUFBSVEsSUFBSTtBQUNoRCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL3NyYy9jbGllbnQvYXNzaWduLWxvY2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZEJhc2VQYXRoIH0gZnJvbSAnLi9hZGQtYmFzZS1wYXRoJ1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGNvcnJlY3RseSBhc3NpZ24gbG9jYXRpb24gdG8gVVJMXG4gKlxuICogVGhlIG1ldGhvZCB3aWxsIGFkZCBiYXNlUGF0aCwgYW5kIHdpbGwgYWxzbyBjb3JyZWN0bHkgYWRkIGxvY2F0aW9uIChpbmNsdWRpbmcgaWYgaXQgaXMgYSByZWxhdGl2ZSBwYXRoKVxuICogQHBhcmFtIGxvY2F0aW9uIExvY2F0aW9uIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSB1cmxcbiAqIEBwYXJhbSB1cmwgQmFzZSBVUkwgdG8gd2hpY2ggdGhlIGxvY2F0aW9uIHNob3VsZCBiZSBhc3NpZ25lZFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduTG9jYXRpb24obG9jYXRpb246IHN0cmluZywgdXJsOiBVUkwpOiBVUkwge1xuICBpZiAobG9jYXRpb24uc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgY29uc3QgdXJsQmFzZSA9IHVybC5vcmlnaW4gKyB1cmwucGF0aG5hbWVcbiAgICByZXR1cm4gbmV3IFVSTChcbiAgICAgIC8vIEluIG9yZGVyIGZvciBhIHJlbGF0aXZlIHBhdGggdG8gYmUgYWRkZWQgdG8gdGhlIGN1cnJlbnQgdXJsIGNvcnJlY3RseSwgdGhlIGN1cnJlbnQgdXJsIG11c3QgZW5kIHdpdGggYSBzbGFzaFxuICAgICAgLy8gbmV3IFVSTCgnLi9yZWxhdGl2ZScsICdodHRwczovL2V4YW1wbGUuY29tL3N1YmRpcicpLmhyZWYgLT4gJ2h0dHBzOi8vZXhhbXBsZS5jb20vcmVsYXRpdmUnXG4gICAgICAvLyBuZXcgVVJMKCcuL3JlbGF0aXZlJywgJ2h0dHBzOi8vZXhhbXBsZS5jb20vc3ViZGlyLycpLmhyZWYgLT4gJ2h0dHBzOi8vZXhhbXBsZS5jb20vc3ViZGlyL3JlbGF0aXZlJ1xuICAgICAgKHVybEJhc2UuZW5kc1dpdGgoJy8nKSA/IHVybEJhc2UgOiB1cmxCYXNlICsgJy8nKSArIGxvY2F0aW9uXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIG5ldyBVUkwoYWRkQmFzZVBhdGgobG9jYXRpb24pLCB1cmwuaHJlZilcbn1cbiJdLCJuYW1lcyI6WyJhc3NpZ25Mb2NhdGlvbiIsImxvY2F0aW9uIiwidXJsIiwic3RhcnRzV2l0aCIsInVybEJhc2UiLCJvcmlnaW4iLCJwYXRobmFtZSIsIlVSTCIsImVuZHNXaXRoIiwiYWRkQmFzZVBhdGgiLCJocmVmIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/assign-location.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/app-router-announcer.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/client/components/app-router-announcer.js ***!
\**************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AppRouterAnnouncer\", ({\n enumerable: true,\n get: function() {\n return AppRouterAnnouncer;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _reactdom = __webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\");\nconst ANNOUNCER_TYPE = 'next-route-announcer';\nconst ANNOUNCER_ID = '__next-route-announcer__';\nfunction getAnnouncerNode() {\n var _existingAnnouncer_shadowRoot;\n const existingAnnouncer = document.getElementsByName(ANNOUNCER_TYPE)[0];\n if (existingAnnouncer == null ? void 0 : (_existingAnnouncer_shadowRoot = existingAnnouncer.shadowRoot) == null ? void 0 : _existingAnnouncer_shadowRoot.childNodes[0]) {\n return existingAnnouncer.shadowRoot.childNodes[0];\n } else {\n const container = document.createElement(ANNOUNCER_TYPE);\n container.style.cssText = 'position:absolute';\n const announcer = document.createElement('div');\n announcer.ariaLive = 'assertive';\n announcer.id = ANNOUNCER_ID;\n announcer.role = 'alert';\n announcer.style.cssText = 'position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal';\n // Use shadow DOM here to avoid any potential CSS bleed\n const shadow = container.attachShadow({\n mode: 'open'\n });\n shadow.appendChild(announcer);\n document.body.appendChild(container);\n return announcer;\n }\n}\nfunction AppRouterAnnouncer(param) {\n let { tree } = param;\n const [portalNode, setPortalNode] = (0, _react.useState)(null);\n (0, _react.useEffect)(()=>{\n const announcer = getAnnouncerNode();\n setPortalNode(announcer);\n return ()=>{\n const container = document.getElementsByTagName(ANNOUNCER_TYPE)[0];\n if (container == null ? void 0 : container.isConnected) {\n document.body.removeChild(container);\n }\n };\n }, []);\n const [routeAnnouncement, setRouteAnnouncement] = (0, _react.useState)('');\n const previousTitle = (0, _react.useRef)(undefined);\n (0, _react.useEffect)(()=>{\n let currentTitle = '';\n if (document.title) {\n currentTitle = document.title;\n } else {\n const pageHeader = document.querySelector('h1');\n if (pageHeader) {\n currentTitle = pageHeader.innerText || pageHeader.textContent || '';\n }\n }\n // Only announce the title change, but not for the first load because screen\n // readers do that automatically.\n if (previousTitle.current !== undefined && previousTitle.current !== currentTitle) {\n setRouteAnnouncement(currentTitle);\n }\n previousTitle.current = currentTitle;\n }, [\n tree\n ]);\n return portalNode ? /*#__PURE__*/ (0, _reactdom.createPortal)(routeAnnouncement, portalNode) : null;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router-announcer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItYW5ub3VuY2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBNkJnQkE7OztlQUFBQTs7O21DQTdCNEI7c0NBQ2Y7QUFHN0IsTUFBTUMsaUJBQWlCO0FBQ3ZCLE1BQU1DLGVBQWU7QUFFckIsU0FBU0M7UUFFSEM7SUFESixNQUFNQSxvQkFBb0JDLFNBQVNDLGlCQUFpQixDQUFDTCxlQUFlLENBQUMsRUFBRTtJQUN2RSxJQUFJRyxxQkFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsQ0FBQUEsZ0NBQUFBLGtCQUFtQkcsVUFBQUEsS0FBVSxnQkFBN0JILDhCQUErQkksVUFBVSxDQUFDLEVBQUUsRUFBRTtRQUNoRCxPQUFPSixrQkFBa0JHLFVBQVUsQ0FBQ0MsVUFBVSxDQUFDLEVBQUU7SUFDbkQsT0FBTztRQUNMLE1BQU1DLFlBQVlKLFNBQVNLLGFBQWEsQ0FBQ1Q7UUFDekNRLFVBQVVFLEtBQUssQ0FBQ0MsT0FBTyxHQUFHO1FBQzFCLE1BQU1DLFlBQVlSLFNBQVNLLGFBQWEsQ0FBQztRQUN6Q0csVUFBVUMsUUFBUSxHQUFHO1FBQ3JCRCxVQUFVRSxFQUFFLEdBQUdiO1FBQ2ZXLFVBQVVHLElBQUksR0FBRztRQUNqQkgsVUFBVUYsS0FBSyxDQUFDQyxPQUFPLEdBQ3JCO1FBRUYsdURBQXVEO1FBQ3ZELE1BQU1LLFNBQVNSLFVBQVVTLFlBQVksQ0FBQztZQUFFQyxNQUFNO1FBQU87UUFDckRGLE9BQU9HLFdBQVcsQ0FBQ1A7UUFDbkJSLFNBQVNnQixJQUFJLENBQUNELFdBQVcsQ0FBQ1g7UUFDMUIsT0FBT0k7SUFDVDtBQUNGO0FBRU8sU0FBU2IsbUJBQW1CLEtBQXFDO0lBQXJDLE1BQUVzQixJQUFJLEVBQStCLEdBQXJDO0lBQ2pDLE1BQU0sQ0FBQ0MsWUFBWUMsY0FBYyxHQUFHQyxDQUFBQSxHQUFBQSxPQUFBQSxRQUFBQSxFQUE2QjtJQUVqRUMsQ0FBQUEsR0FBQUEsT0FBQUEsU0FBQUEsRUFBVTtRQUNSLE1BQU1iLFlBQVlWO1FBQ2xCcUIsY0FBY1g7UUFDZCxPQUFPO1lBQ0wsTUFBTUosWUFBWUosU0FBU3NCLG9CQUFvQixDQUFDMUIsZUFBZSxDQUFDLEVBQUU7WUFDbEUsSUFBSVEsYUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsVUFBV21CLFdBQVcsRUFBRTtnQkFDMUJ2QixTQUFTZ0IsSUFBSSxDQUFDUSxXQUFXLENBQUNwQjtZQUM1QjtRQUNGO0lBQ0YsR0FBRyxFQUFFO0lBRUwsTUFBTSxDQUFDcUIsbUJBQW1CQyxxQkFBcUIsR0FBR04sQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFBUztJQUMzRCxNQUFNTyxnQkFBZ0JDLENBQUFBLEdBQUFBLE9BQUFBLE1BQUFBLEVBQTJCQztJQUVqRFIsQ0FBQUEsR0FBQUEsT0FBQUEsU0FBQUEsRUFBVTtRQUNSLElBQUlTLGVBQWU7UUFDbkIsSUFBSTlCLFNBQVMrQixLQUFLLEVBQUU7WUFDbEJELGVBQWU5QixTQUFTK0IsS0FBSztRQUMvQixPQUFPO1lBQ0wsTUFBTUMsYUFBYWhDLFNBQVNpQyxhQUFhLENBQUM7WUFDMUMsSUFBSUQsWUFBWTtnQkFDZEYsZUFBZUUsV0FBV0UsU0FBUyxJQUFJRixXQUFXRyxXQUFXLElBQUk7WUFDbkU7UUFDRjtRQUVBLDRFQUE0RTtRQUM1RSxpQ0FBaUM7UUFDakMsSUFDRVIsY0FBY1MsT0FBTyxLQUFLUCxhQUMxQkYsY0FBY1MsT0FBTyxLQUFLTixjQUMxQjtZQUNBSixxQkFBcUJJO1FBQ3ZCO1FBQ0FILGNBQWNTLE9BQU8sR0FBR047SUFDMUIsR0FBRztRQUFDYjtLQUFLO0lBRVQsT0FBT0MsYUFBQUEsV0FBQUEsR0FBYW1CLENBQUFBLEdBQUFBLFVBQUFBLFlBQUFBLEVBQWFaLG1CQUFtQlAsY0FBYztBQUNwRSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItYW5ub3VuY2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB0eXBlIHsgRmxpZ2h0Um91dGVyU3RhdGUgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuY29uc3QgQU5OT1VOQ0VSX1RZUEUgPSAnbmV4dC1yb3V0ZS1hbm5vdW5jZXInXG5jb25zdCBBTk5PVU5DRVJfSUQgPSAnX19uZXh0LXJvdXRlLWFubm91bmNlcl9fJ1xuXG5mdW5jdGlvbiBnZXRBbm5vdW5jZXJOb2RlKCkge1xuICBjb25zdCBleGlzdGluZ0Fubm91bmNlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKEFOTk9VTkNFUl9UWVBFKVswXVxuICBpZiAoZXhpc3RpbmdBbm5vdW5jZXI/LnNoYWRvd1Jvb3Q/LmNoaWxkTm9kZXNbMF0pIHtcbiAgICByZXR1cm4gZXhpc3RpbmdBbm5vdW5jZXIuc2hhZG93Um9vdC5jaGlsZE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChBTk5PVU5DRVJfVFlQRSlcbiAgICBjb250YWluZXIuc3R5bGUuY3NzVGV4dCA9ICdwb3NpdGlvbjphYnNvbHV0ZSdcbiAgICBjb25zdCBhbm5vdW5jZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIGFubm91bmNlci5hcmlhTGl2ZSA9ICdhc3NlcnRpdmUnXG4gICAgYW5ub3VuY2VyLmlkID0gQU5OT1VOQ0VSX0lEXG4gICAgYW5ub3VuY2VyLnJvbGUgPSAnYWxlcnQnXG4gICAgYW5ub3VuY2VyLnN0eWxlLmNzc1RleHQgPVxuICAgICAgJ3Bvc2l0aW9uOmFic29sdXRlO2JvcmRlcjowO2hlaWdodDoxcHg7bWFyZ2luOi0xcHg7cGFkZGluZzowO3dpZHRoOjFweDtjbGlwOnJlY3QoMCAwIDAgMCk7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3b3JkLXdyYXA6bm9ybWFsJ1xuXG4gICAgLy8gVXNlIHNoYWRvdyBET00gaGVyZSB0byBhdm9pZCBhbnkgcG90ZW50aWFsIENTUyBibGVlZFxuICAgIGNvbnN0IHNoYWRvdyA9IGNvbnRhaW5lci5hdHRhY2hTaGFkb3coeyBtb2RlOiAnb3BlbicgfSlcbiAgICBzaGFkb3cuYXBwZW5kQ2hpbGQoYW5ub3VuY2VyKVxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKVxuICAgIHJldHVybiBhbm5vdW5jZXJcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gQXBwUm91dGVyQW5ub3VuY2VyKHsgdHJlZSB9OiB7IHRyZWU6IEZsaWdodFJvdXRlclN0YXRlIH0pIHtcbiAgY29uc3QgW3BvcnRhbE5vZGUsIHNldFBvcnRhbE5vZGVdID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgYW5ub3VuY2VyID0gZ2V0QW5ub3VuY2VyTm9kZSgpXG4gICAgc2V0UG9ydGFsTm9kZShhbm5vdW5jZXIpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKEFOTk9VTkNFUl9UWVBFKVswXVxuICAgICAgaWYgKGNvbnRhaW5lcj8uaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChjb250YWluZXIpXG4gICAgICB9XG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBbcm91dGVBbm5vdW5jZW1lbnQsIHNldFJvdXRlQW5ub3VuY2VtZW50XSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBwcmV2aW91c1RpdGxlID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGN1cnJlbnRUaXRsZSA9ICcnXG4gICAgaWYgKGRvY3VtZW50LnRpdGxlKSB7XG4gICAgICBjdXJyZW50VGl0bGUgPSBkb2N1bWVudC50aXRsZVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwYWdlSGVhZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaDEnKVxuICAgICAgaWYgKHBhZ2VIZWFkZXIpIHtcbiAgICAgICAgY3VycmVudFRpdGxlID0gcGFnZUhlYWRlci5pbm5lclRleHQgfHwgcGFnZUhlYWRlci50ZXh0Q29udGVudCB8fCAnJ1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9ubHkgYW5ub3VuY2UgdGhlIHRpdGxlIGNoYW5nZSwgYnV0IG5vdCBmb3IgdGhlIGZpcnN0IGxvYWQgYmVjYXVzZSBzY3JlZW5cbiAgICAvLyByZWFkZXJzIGRvIHRoYXQgYXV0b21hdGljYWxseS5cbiAgICBpZiAoXG4gICAgICBwcmV2aW91c1RpdGxlLmN1cnJlbnQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgcHJldmlvdXNUaXRsZS5jdXJyZW50ICE9PSBjdXJyZW50VGl0bGVcbiAgICApIHtcbiAgICAgIHNldFJvdXRlQW5ub3VuY2VtZW50KGN1cnJlbnRUaXRsZSlcbiAgICB9XG4gICAgcHJldmlvdXNUaXRsZS5jdXJyZW50ID0gY3VycmVudFRpdGxlXG4gIH0sIFt0cmVlXSlcblxuICByZXR1cm4gcG9ydGFsTm9kZSA/IGNyZWF0ZVBvcnRhbChyb3V0ZUFubm91bmNlbWVudCwgcG9ydGFsTm9kZSkgOiBudWxsXG59XG4iXSwibmFtZXMiOlsiQXBwUm91dGVyQW5ub3VuY2VyIiwiQU5OT1VOQ0VSX1RZUEUiLCJBTk5PVU5DRVJfSUQiLCJnZXRBbm5vdW5jZXJOb2RlIiwiZXhpc3RpbmdBbm5vdW5jZXIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRzQnlOYW1lIiwic2hhZG93Um9vdCIsImNoaWxkTm9kZXMiLCJjb250YWluZXIiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJjc3NUZXh0IiwiYW5ub3VuY2VyIiwiYXJpYUxpdmUiLCJpZCIsInJvbGUiLCJzaGFkb3ciLCJhdHRhY2hTaGFkb3ciLCJtb2RlIiwiYXBwZW5kQ2hpbGQiLCJib2R5IiwidHJlZSIsInBvcnRhbE5vZGUiLCJzZXRQb3J0YWxOb2RlIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImlzQ29ubmVjdGVkIiwicmVtb3ZlQ2hpbGQiLCJyb3V0ZUFubm91bmNlbWVudCIsInNldFJvdXRlQW5ub3VuY2VtZW50IiwicHJldmlvdXNUaXRsZSIsInVzZVJlZiIsInVuZGVmaW5lZCIsImN1cnJlbnRUaXRsZSIsInRpdGxlIiwicGFnZUhlYWRlciIsInF1ZXJ5U2VsZWN0b3IiLCJpbm5lclRleHQiLCJ0ZXh0Q29udGVudCIsImN1cnJlbnQiLCJjcmVhdGVQb3J0YWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router-announcer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/app-router-headers.js":
/*!************************************************************************!*\
!*** ./node_modules/next/dist/client/components/app-router-headers.js ***!
\************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_HEADER: function() {\n return ACTION_HEADER;\n },\n FLIGHT_HEADERS: function() {\n return FLIGHT_HEADERS;\n },\n NEXT_ACTION_NOT_FOUND_HEADER: function() {\n return NEXT_ACTION_NOT_FOUND_HEADER;\n },\n NEXT_DID_POSTPONE_HEADER: function() {\n return NEXT_DID_POSTPONE_HEADER;\n },\n NEXT_HMR_REFRESH_HASH_COOKIE: function() {\n return NEXT_HMR_REFRESH_HASH_COOKIE;\n },\n NEXT_HMR_REFRESH_HEADER: function() {\n return NEXT_HMR_REFRESH_HEADER;\n },\n NEXT_IS_PRERENDER_HEADER: function() {\n return NEXT_IS_PRERENDER_HEADER;\n },\n NEXT_REWRITTEN_PATH_HEADER: function() {\n return NEXT_REWRITTEN_PATH_HEADER;\n },\n NEXT_REWRITTEN_QUERY_HEADER: function() {\n return NEXT_REWRITTEN_QUERY_HEADER;\n },\n NEXT_ROUTER_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_PREFETCH_HEADER;\n },\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER: function() {\n return NEXT_ROUTER_SEGMENT_PREFETCH_HEADER;\n },\n NEXT_ROUTER_STALE_TIME_HEADER: function() {\n return NEXT_ROUTER_STALE_TIME_HEADER;\n },\n NEXT_ROUTER_STATE_TREE_HEADER: function() {\n return NEXT_ROUTER_STATE_TREE_HEADER;\n },\n NEXT_RSC_UNION_QUERY: function() {\n return NEXT_RSC_UNION_QUERY;\n },\n NEXT_URL: function() {\n return NEXT_URL;\n },\n RSC_CONTENT_TYPE_HEADER: function() {\n return RSC_CONTENT_TYPE_HEADER;\n },\n RSC_HEADER: function() {\n return RSC_HEADER;\n }\n});\nconst RSC_HEADER = 'RSC';\nconst ACTION_HEADER = 'Next-Action';\nconst NEXT_ROUTER_STATE_TREE_HEADER = 'Next-Router-State-Tree';\nconst NEXT_ROUTER_PREFETCH_HEADER = 'Next-Router-Prefetch';\nconst NEXT_ROUTER_SEGMENT_PREFETCH_HEADER = 'Next-Router-Segment-Prefetch';\nconst NEXT_HMR_REFRESH_HEADER = 'Next-HMR-Refresh';\nconst NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__';\nconst NEXT_URL = 'Next-Url';\nconst RSC_CONTENT_TYPE_HEADER = 'text/x-component';\nconst FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER\n];\nconst NEXT_RSC_UNION_QUERY = '_rsc';\nconst NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time';\nconst NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed';\nconst NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path';\nconst NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query';\nconst NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender';\nconst NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router-headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaGVhZGVycy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFDYUEsYUFBYTtlQUFiQTs7SUFpQkFDLGNBQWM7ZUFBZEE7O0lBZUFDLDRCQUE0QjtlQUE1QkE7O0lBSkFDLHdCQUF3QjtlQUF4QkE7O0lBZkFDLDRCQUE0QjtlQUE1QkE7O0lBREFDLHVCQUF1QjtlQUF2QkE7O0lBbUJBQyx3QkFBd0I7ZUFBeEJBOztJQUZBQywwQkFBMEI7ZUFBMUJBOztJQUNBQywyQkFBMkI7ZUFBM0JBOztJQXpCQUMsMkJBQTJCO2VBQTNCQTs7SUFLQUMsbUNBQW1DO2VBQW5DQTs7SUFpQkFDLDZCQUE2QjtlQUE3QkE7O0lBdkJBQyw2QkFBNkI7ZUFBN0JBOztJQXFCQUMsb0JBQW9CO2VBQXBCQTs7SUFYQUMsUUFBUTtlQUFSQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFoQkFDLFVBQVU7ZUFBVkE7OztBQUFOLE1BQU1BLGFBQWE7QUFDbkIsTUFBTWhCLGdCQUFnQjtBQUl0QixNQUFNWSxnQ0FBZ0M7QUFDdEMsTUFBTUgsOEJBQThCO0FBS3BDLE1BQU1DLHNDQUNYO0FBQ0ssTUFBTUwsMEJBQTBCO0FBQ2hDLE1BQU1ELCtCQUErQjtBQUNyQyxNQUFNVSxXQUFXO0FBQ2pCLE1BQU1DLDBCQUEwQjtBQUVoQyxNQUFNZCxpQkFBaUI7SUFDNUJlO0lBQ0FKO0lBQ0FIO0lBQ0FKO0lBQ0FLO0NBQ0Q7QUFFTSxNQUFNRyx1QkFBdUI7QUFFN0IsTUFBTUYsZ0NBQWdDO0FBQ3RDLE1BQU1SLDJCQUEyQjtBQUNqQyxNQUFNSSw2QkFBNkI7QUFDbkMsTUFBTUMsOEJBQThCO0FBQ3BDLE1BQU1GLDJCQUEyQjtBQUNqQyxNQUFNSiwrQkFBK0IiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJTQ19IRUFERVIgPSAnUlNDJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IEFDVElPTl9IRUFERVIgPSAnTmV4dC1BY3Rpb24nIGFzIGNvbnN0XG4vLyBUT0RPOiBJbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIGZ1bGwgcm91dGVyIHN0YXRlLCB3ZSBvbmx5IG5lZWQgdG8gc2VuZCB0aGVcbi8vIHNlZ21lbnQgcGF0aC4gU2F2ZXMgYnl0ZXMuIFRoZW4gd2UgY291bGQgYWxzbyB1c2UgdGhpcyBmaWVsZCBmb3Igc2VnbWVudFxuLy8gcHJlZmV0Y2hlcywgd2hpY2ggYWxzbyBuZWVkIHRvIHNwZWNpZnkgYSBwYXJ0aWN1bGFyIHNlZ21lbnQuXG5leHBvcnQgY29uc3QgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIgPSAnTmV4dC1Sb3V0ZXItU3RhdGUtVHJlZScgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIgPSAnTmV4dC1Sb3V0ZXItUHJlZmV0Y2gnIGFzIGNvbnN0XG4vLyBUaGlzIGNvbnRhaW5zIHRoZSBwYXRoIHRvIHRoZSBzZWdtZW50IGJlaW5nIHByZWZldGNoZWQuXG4vLyBUT0RPOiBJZiB3ZSBjaGFuZ2UgTmV4dC1Sb3V0ZXItU3RhdGUtVHJlZSB0byBiZSBhIHNlZ21lbnQgcGF0aCwgd2UgY2FuIHVzZVxuLy8gdGhhdCBpbnN0ZWFkLiBUaGVuIE5leHQtUm91dGVyLVByZWZldGNoIGFuZCBOZXh0LVJvdXRlci1TZWdtZW50LVByZWZldGNoIGNhblxuLy8gYmUgbWVyZ2VkIGludG8gYSBzaW5nbGUgZW51bS5cbmV4cG9ydCBjb25zdCBORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUiA9XG4gICdOZXh0LVJvdXRlci1TZWdtZW50LVByZWZldGNoJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSE1SX1JFRlJFU0hfSEVBREVSID0gJ05leHQtSE1SLVJlZnJlc2gnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRSA9ICdfX25leHRfaG1yX3JlZnJlc2hfaGFzaF9fJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfVVJMID0gJ05leHQtVXJsJyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IFJTQ19DT05URU5UX1RZUEVfSEVBREVSID0gJ3RleHQveC1jb21wb25lbnQnIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBGTElHSFRfSEVBREVSUyA9IFtcbiAgUlNDX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTkVYVF9SU0NfVU5JT05fUVVFUlkgPSAnX3JzYycgYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSID0gJ3gtbmV4dGpzLXN0YWxlLXRpbWUnIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSID0gJ3gtbmV4dGpzLXBvc3Rwb25lZCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiA9ICd4LW5leHRqcy1yZXdyaXR0ZW4tcGF0aCcgYXMgY29uc3RcbmV4cG9ydCBjb25zdCBORVhUX1JFV1JJVFRFTl9RVUVSWV9IRUFERVIgPSAneC1uZXh0anMtcmV3cml0dGVuLXF1ZXJ5JyBhcyBjb25zdFxuZXhwb3J0IGNvbnN0IE5FWFRfSVNfUFJFUkVOREVSX0hFQURFUiA9ICd4LW5leHRqcy1wcmVyZW5kZXInIGFzIGNvbnN0XG5leHBvcnQgY29uc3QgTkVYVF9BQ1RJT05fTk9UX0ZPVU5EX0hFQURFUiA9ICd4LW5leHRqcy1hY3Rpb24tbm90LWZvdW5kJyBhcyBjb25zdFxuIl0sIm5hbWVzIjpbIkFDVElPTl9IRUFERVIiLCJGTElHSFRfSEVBREVSUyIsIk5FWFRfQUNUSU9OX05PVF9GT1VORF9IRUFERVIiLCJORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIiLCJORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFIiwiTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIiLCJORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIiLCJORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUiIsIk5FWFRfUkVXUklUVEVOX1FVRVJZX0hFQURFUiIsIk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSIiwiTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIiLCJORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUiIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwiTkVYVF9VUkwiLCJSU0NfQ09OVEVOVF9UWVBFX0hFQURFUiIsIlJTQ19IRUFERVIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/app-router-instance.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/client/components/app-router-instance.js ***!
\*************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createMutableActionQueue: function() {\n return createMutableActionQueue;\n },\n dispatchNavigateAction: function() {\n return dispatchNavigateAction;\n },\n dispatchTraverseAction: function() {\n return dispatchTraverseAction;\n },\n getCurrentAppRouterState: function() {\n return getCurrentAppRouterState;\n },\n publicAppRouterInstance: function() {\n return publicAppRouterInstance;\n }\n});\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _routerreducer = __webpack_require__(/*! ./router-reducer/router-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _isthenable = __webpack_require__(/*! ../../shared/lib/is-thenable */ \"(ssr)/./node_modules/next/dist/shared/lib/is-thenable.js\");\nconst _segmentcache = __webpack_require__(/*! ./segment-cache */ \"(ssr)/./node_modules/next/dist/client/components/segment-cache.js\");\nconst _useactionqueue = __webpack_require__(/*! ./use-action-queue */ \"(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\");\nconst _addbasepath = __webpack_require__(/*! ../add-base-path */ \"(ssr)/./node_modules/next/dist/client/add-base-path.js\");\nconst _approuter = __webpack_require__(/*! ./app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _prefetchreducer = __webpack_require__(/*! ./router-reducer/reducers/prefetch-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js\");\nconst _links = __webpack_require__(/*! ./links */ \"(ssr)/./node_modules/next/dist/client/components/links.js\");\nfunction runRemainingActions(actionQueue, setState) {\n if (actionQueue.pending !== null) {\n actionQueue.pending = actionQueue.pending.next;\n if (actionQueue.pending !== null) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n runAction({\n actionQueue,\n action: actionQueue.pending,\n setState\n });\n } else {\n // No more actions are pending, check if a refresh is needed\n if (actionQueue.needsRefresh) {\n actionQueue.needsRefresh = false;\n actionQueue.dispatch({\n type: _routerreducertypes.ACTION_REFRESH,\n origin: window.location.origin\n }, setState);\n }\n }\n }\n}\nasync function runAction(param) {\n let { actionQueue, action, setState } = param;\n const prevState = actionQueue.state;\n actionQueue.pending = action;\n const payload = action.payload;\n const actionResult = actionQueue.action(prevState, payload);\n function handleResult(nextState) {\n // if we discarded this action, the state should also be discarded\n if (action.discarded) {\n return;\n }\n actionQueue.state = nextState;\n runRemainingActions(actionQueue, setState);\n action.resolve(nextState);\n }\n // if the action is a promise, set up a callback to resolve it\n if ((0, _isthenable.isThenable)(actionResult)) {\n actionResult.then(handleResult, (err)=>{\n runRemainingActions(actionQueue, setState);\n action.reject(err);\n });\n } else {\n handleResult(actionResult);\n }\n}\nfunction dispatchAction(actionQueue, payload, setState) {\n let resolvers = {\n resolve: setState,\n reject: ()=>{}\n };\n // most of the action types are async with the exception of restore\n // it's important that restore is handled quickly since it's fired on the popstate event\n // and we don't want to add any delay on a back/forward nav\n // this only creates a promise for the async actions\n if (payload.type !== _routerreducertypes.ACTION_RESTORE) {\n // Create the promise and assign the resolvers to the object.\n const deferredPromise = new Promise((resolve, reject)=>{\n resolvers = {\n resolve,\n reject\n };\n });\n (0, _react.startTransition)(()=>{\n // we immediately notify React of the pending promise -- the resolver is attached to the action node\n // and will be called when the associated action promise resolves\n setState(deferredPromise);\n });\n }\n const newAction = {\n payload,\n next: null,\n resolve: resolvers.resolve,\n reject: resolvers.reject\n };\n // Check if the queue is empty\n if (actionQueue.pending === null) {\n // The queue is empty, so add the action and start it immediately\n // Mark this action as the last in the queue\n actionQueue.last = newAction;\n runAction({\n actionQueue,\n action: newAction,\n setState\n });\n } else if (payload.type === _routerreducertypes.ACTION_NAVIGATE || payload.type === _routerreducertypes.ACTION_RESTORE) {\n // Navigations (including back/forward) take priority over any pending actions.\n // Mark the pending action as discarded (so the state is never applied) and start the navigation action immediately.\n actionQueue.pending.discarded = true;\n // The rest of the current queue should still execute after this navigation.\n // (Note that it can't contain any earlier navigations, because we always put those into `actionQueue.pending` by calling `runAction`)\n newAction.next = actionQueue.pending.next;\n // if the pending action was a server action, mark the queue as needing a refresh once events are processed\n if (actionQueue.pending.payload.type === _routerreducertypes.ACTION_SERVER_ACTION) {\n actionQueue.needsRefresh = true;\n }\n runAction({\n actionQueue,\n action: newAction,\n setState\n });\n } else {\n // The queue is not empty, so add the action to the end of the queue\n // It will be started by runRemainingActions after the previous action finishes\n if (actionQueue.last !== null) {\n actionQueue.last.next = newAction;\n }\n actionQueue.last = newAction;\n }\n}\nlet globalActionQueue = null;\nfunction createMutableActionQueue(initialState, instrumentationHooks) {\n const actionQueue = {\n state: initialState,\n dispatch: (payload, setState)=>dispatchAction(actionQueue, payload, setState),\n action: async (state, action)=>{\n const result = (0, _routerreducer.reducer)(state, action);\n return result;\n },\n pending: null,\n last: null,\n onRouterTransitionStart: instrumentationHooks !== null && typeof instrumentationHooks.onRouterTransitionStart === 'function' ? instrumentationHooks.onRouterTransitionStart : null\n };\n if (false) {}\n return actionQueue;\n}\nfunction getCurrentAppRouterState() {\n return globalActionQueue !== null ? globalActionQueue.state : null;\n}\nfunction getAppRouterActionQueue() {\n if (globalActionQueue === null) {\n throw Object.defineProperty(new Error('Internal Next.js error: Router action dispatched before initialization.'), \"__NEXT_ERROR_CODE\", {\n value: \"E668\",\n enumerable: false,\n configurable: true\n });\n }\n return globalActionQueue;\n}\nfunction getProfilingHookForOnNavigationStart() {\n if (globalActionQueue !== null) {\n return globalActionQueue.onRouterTransitionStart;\n }\n return null;\n}\nfunction dispatchNavigateAction(href, navigateType, shouldScroll, linkInstanceRef) {\n // TODO: This stuff could just go into the reducer. Leaving as-is for now\n // since we're about to rewrite all the router reducer stuff anyway.\n const url = new URL((0, _addbasepath.addBasePath)(href), location.href);\n if (false) {}\n (0, _links.setLinkForCurrentNavigation)(linkInstanceRef);\n const onRouterTransitionStart = getProfilingHookForOnNavigationStart();\n if (onRouterTransitionStart !== null) {\n onRouterTransitionStart(href, navigateType);\n }\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_NAVIGATE,\n url,\n isExternalUrl: (0, _approuter.isExternalURL)(url),\n locationSearch: location.search,\n shouldScroll,\n navigateType,\n allowAliasing: true\n });\n}\nfunction dispatchTraverseAction(href, tree) {\n const onRouterTransitionStart = getProfilingHookForOnNavigationStart();\n if (onRouterTransitionStart !== null) {\n onRouterTransitionStart(href, 'traverse');\n }\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_RESTORE,\n url: new URL(href),\n tree\n });\n}\nconst publicAppRouterInstance = {\n back: ()=>window.history.back(),\n forward: ()=>window.history.forward(),\n prefetch: false ? // cache. So we don't need to dispatch an action.\n 0 : (href, options)=>{\n // Use the old prefetch implementation.\n const actionQueue = getAppRouterActionQueue();\n const url = (0, _approuter.createPrefetchURL)(href);\n if (url !== null) {\n var _options_kind;\n // The prefetch reducer doesn't actually update any state or\n // trigger a rerender. It just writes to a mutable cache. So we\n // shouldn't bother calling setState/dispatch; we can just re-run\n // the reducer directly using the current state.\n // TODO: Refactor this away from a \"reducer\" so it's\n // less confusing.\n (0, _prefetchreducer.prefetchReducer)(actionQueue.state, {\n type: _routerreducertypes.ACTION_PREFETCH,\n url,\n kind: (_options_kind = options == null ? void 0 : options.kind) != null ? _options_kind : _routerreducertypes.PrefetchKind.FULL\n });\n }\n },\n replace: (href, options)=>{\n (0, _react.startTransition)(()=>{\n var _options_scroll;\n dispatchNavigateAction(href, 'replace', (_options_scroll = options == null ? void 0 : options.scroll) != null ? _options_scroll : true, null);\n });\n },\n push: (href, options)=>{\n (0, _react.startTransition)(()=>{\n var _options_scroll;\n dispatchNavigateAction(href, 'push', (_options_scroll = options == null ? void 0 : options.scroll) != null ? _options_scroll : true, null);\n });\n },\n refresh: ()=>{\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_REFRESH,\n origin: window.location.origin\n });\n });\n },\n hmrRefresh: ()=>{\n if (false) {} else {\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_HMR_REFRESH,\n origin: window.location.origin\n });\n });\n }\n }\n};\n// Exists for debugging purposes. Don't use in application code.\nif (false) {}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router-instance.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXItaW5zdGFuY2UuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBK01nQkEsd0JBQXdCO2VBQXhCQTs7SUEwREFDLHdCQUFzQjtlQUF0QkE7O0lBK0JBQyxzQkFBc0I7ZUFBdEJBOztJQW5EQUMsd0JBQXdCO2VBQXhCQTs7SUF1RUhDLHVCQUF1QjtlQUF2QkE7OztnREFoVE47MkNBQ2lCO21DQUNRO3dDQUNMOzBDQUMwQjs0Q0FDYjt5Q0FDWjt1Q0FDcUI7NkNBQ2pCO21DQU0rQjtBQWtDL0QsU0FBU0Msb0JBQ1BDLFdBQWlDLEVBQ2pDQyxRQUE4QjtJQUU5QixJQUFJRCxZQUFZRSxPQUFPLEtBQUssTUFBTTtRQUNoQ0YsWUFBWUUsT0FBTyxHQUFHRixZQUFZRSxPQUFPLENBQUNDLElBQUk7UUFDOUMsSUFBSUgsWUFBWUUsT0FBTyxLQUFLLE1BQU07WUFDaEMsbUVBQW1FO1lBQ25FRSxVQUFVO2dCQUNSSjtnQkFDQUssUUFBUUwsWUFBWUUsT0FBTztnQkFDM0JEO1lBQ0Y7UUFDRixPQUFPO1lBQ0wsNERBQTREO1lBQzVELElBQUlELFlBQVlNLFlBQVksRUFBRTtnQkFDNUJOLFlBQVlNLFlBQVksR0FBRztnQkFDM0JOLFlBQVlPLFFBQVEsQ0FDbEI7b0JBQ0VDLE1BQU1DLG9CQUFBQSxjQUFjO29CQUNwQkMsUUFBUUMsT0FBT0MsUUFBUSxDQUFDRixNQUFNO2dCQUNoQyxHQUNBVDtZQUVKO1FBQ0Y7SUFDRjtBQUNGO0FBRUEsZUFBZUcsVUFBVSxLQVF4QjtJQVJ3QixNQUN2QkosV0FBVyxFQUNYSyxNQUFNLEVBQ05KLFFBQVEsRUFLVCxHQVJ3QjtJQVN2QixNQUFNWSxZQUFZYixZQUFZYyxLQUFLO0lBRW5DZCxZQUFZRSxPQUFPLEdBQUdHO0lBRXRCLE1BQU1VLFVBQVVWLE9BQU9VLE9BQU87SUFDOUIsTUFBTUMsZUFBZWhCLFlBQVlLLE1BQU0sQ0FBQ1Es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QUFjd0I7UUFDbkJ0QyxDQUFBQSxHQUFBQSxPQUFBQSxlQUFBQSxFQUFnQjtnQkFDdUJzQztZQUFyQ3pFLHVCQUF1QmlELE1BQU0sUUFBUXdCLENBQUFBLGtCQUFBQSxXQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxRQUFTVyxNQUFBQSxLQUFNLE9BQWZYLGtCQUFtQixNQUFNO1FBQ2hFO0lBQ0Y7SUFDQWEsU0FBUztRQUNQbkQsQ0FBQUEsR0FBQUEsT0FBQUEsZUFBQUEsRUFBZ0I7WUFDZDBCLENBQUFBLEdBQUFBLGdCQUFBQSx1QkFBQUEsRUFBd0I7Z0JBQ3RCaEQsTUFBTUMsb0JBQUFBLGNBQWM7Z0JBQ3BCQyxRQUFRQyxPQUFPQyxRQUFRLENBQUNGLE1BQU07WUFDaEM7UUFDRjtJQUNGO0lBQ0F3RSxZQUFZO1FBQ1YsSUFBSS9CLEtBQW9CLEVBQW9CLEVBSTNDLE1BQU07WUFDTHJCLENBQUFBLEdBQUFBLE9BQUFBLGVBQUFBLEVBQWdCO2dCQUNkMEIsQ0FBQUEsR0FBQUEsZ0JBQUFBLHVCQUFBQSxFQUF3QjtvQkFDdEJoRCxNQUFNNEUsb0JBQUFBLGtCQUFrQjtvQkFDeEIxRSxRQUFRQyxPQUFPQyxRQUFRLENBQUNGLE1BQU07Z0JBQ2hDO1lBQ0Y7UUFDRjtJQUNGO0FBQ0Y7QUFFQSxnRUFBZ0U7QUFDaEUsSUFBSSxLQUE0QyxFQUFFLEVBRWpEIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1pbnN0YW5jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIEFwcFJvdXRlclN0YXRlLFxuICB0eXBlIFJlZHVjZXJBY3Rpb25zLFxuICB0eXBlIFJlZHVjZXJTdGF0ZSxcbiAgQUNUSU9OX1JFRlJFU0gsXG4gIEFDVElPTl9TRVJWRVJfQUNUSU9OLFxuICBBQ1RJT05fTkFWSUdBVEUsXG4gIEFDVElPTl9SRVNUT1JFLFxuICB0eXBlIE5hdmlnYXRlQWN0aW9uLFxuICBBQ1RJT05fSE1SX1JFRlJFU0gsXG4gIFByZWZldGNoS2luZCxcbiAgQUNUSU9OX1BSRUZFVENILFxufSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHsgcmVkdWNlciB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXInXG5pbXBvcnQgeyBzdGFydFRyYW5zaXRpb24gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGlzVGhlbmFibGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2lzLXRoZW5hYmxlJ1xuaW1wb3J0IHsgcHJlZmV0Y2ggYXMgcHJlZmV0Y2hXaXRoU2VnbWVudENhY2hlIH0gZnJvbSAnLi9zZWdtZW50LWNhY2hlJ1xuaW1wb3J0IHsgZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24gfSBmcm9tICcuL3VzZS1hY3Rpb24tcXVldWUnXG5pbXBvcnQgeyBhZGRCYXNlUGF0aCB9IGZyb20gJy4uL2FkZC1iYXNlLXBhdGgnXG5pbXBvcnQgeyBjcmVhdGVQcmVmZXRjaFVSTCwgaXNFeHRlcm5hbFVSTCB9IGZyb20gJy4vYXBwLXJvdXRlcidcbmltcG9ydCB7IHByZWZldGNoUmVkdWNlciB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvcHJlZmV0Y2gtcmVkdWNlcidcbmltcG9ydCB0eXBlIHtcbiAgQXBwUm91dGVySW5zdGFuY2UsXG4gIE5hdmlnYXRlT3B0aW9ucyxcbiAgUHJlZmV0Y2hPcHRpb25zLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IHNldExpbmtGb3JDdXJyZW50TmF2aWdhdGlvbiwgdHlwZSBMaW5rSW5zdGFuY2UgfSBmcm9tICcuL2xpbmtzJ1xuaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDbGllbnRJbnN0cnVtZW50YXRpb25Ib29rcyB9IGZyb20gJy4uL2FwcC1pbmRleCdcbmltcG9ydCB0eXBlIHsgR2xvYmFsRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL2J1aWx0aW4vZ2xvYmFsLWVycm9yJ1xuXG5leHBvcnQgdHlwZSBEaXNwYXRjaFN0YXRlUHJvbWlzZSA9IFJlYWN0LkRpc3BhdGNoPFJlZHVjZXJTdGF0ZT5cblxuZXhwb3J0IHR5cGUgQXBwUm91dGVyQWN0aW9uUXVldWUgPSB7XG4gIHN0YXRlOiBBcHBSb3V0ZXJTdGF0ZVxuICBkaXNwYXRjaDogKHBheWxvYWQ6IFJlZHVjZXJBY3Rpb25zLCBzZXRTdGF0ZTogRGlzcGF0Y2hTdGF0ZVByb21pc2UpID0+IHZvaWRcbiAgYWN0aW9uOiAoc3RhdGU6IEFwcFJvdXRlclN0YXRlLCBhY3Rpb246IFJlZHVjZXJBY3Rpb25zKSA9PiBSZWR1Y2VyU3RhdGVcblxuICBvblJvdXRlclRyYW5zaXRpb25TdGFydDpcbiAgICB8ICgodXJsOiBzdHJpbmcsIHR5cGU6ICdwdXNoJyB8ICdyZXBsYWNlJyB8ICd0cmF2ZXJzZScpID0+IHZvaWQpXG4gICAgfCBudWxsXG5cbiAgcGVuZGluZzogQWN0aW9uUXVldWVOb2RlIHwgbnVsbFxuICBuZWVkc1JlZnJlc2g/OiBib29sZWFuXG4gIGxhc3Q6IEFjdGlvblF1ZXVlTm9kZSB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgR2xvYmFsRXJyb3JTdGF0ZSA9IFtcbiAgR2xvYmFsRXJyb3I6IEdsb2JhbEVycm9yQ29tcG9uZW50LFxuICBzdHlsZXM6IFJlYWN0LlJlYWN0Tm9kZSxcbl1cblxuZXhwb3J0IHR5cGUgQWN0aW9uUXVldWVOb2RlID0ge1xuICBwYXlsb2FkOiBSZWR1Y2VyQWN0aW9uc1xuICBuZXh0OiBBY3Rpb25RdWV1ZU5vZGUgfCBudWxsXG4gIHJlc29sdmU6ICh2YWx1ZTogUmVkdWNlclN0YXRlKSA9PiB2b2lkXG4gIHJlamVjdDogKGVycjogRXJyb3IpID0+IHZvaWRcbiAgZGlzY2FyZGVkPzogYm9vbGVhblxufVxuXG5mdW5jdGlvbiBydW5SZW1haW5pbmdBY3Rpb25zKFxuICBhY3Rpb25RdWV1ZTogQXBwUm91dGVyQWN0aW9uUXVldWUsXG4gIHNldFN0YXRlOiBEaXNwYXRjaFN0YXRlUHJvbWlzZVxuKSB7XG4gIGlmIChhY3Rpb25RdWV1ZS5wZW5kaW5nICE9PSBudWxsKSB7XG4gICAgYWN0aW9uUXVldWUucGVuZGluZyA9IGFjdGlvblF1ZXVlLnBlbmRpbmcubmV4dFxuICAgIGlmIChhY3Rpb25RdWV1ZS5wZW5kaW5nICE9PSBudWxsKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICBydW5BY3Rpb24oe1xuICAgICAgICBhY3Rpb25RdWV1ZSxcbiAgICAgICAgYWN0aW9uOiBhY3Rpb25RdWV1ZS5wZW5kaW5nLFxuICAgICAgICBzZXRTdGF0ZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIG1vcmUgYWN0aW9ucyBhcmUgcGVuZGluZywgY2hlY2sgaWYgYSByZWZyZXNoIGlzIG5lZWRlZFxuICAgICAgaWYgKGFjdGlvblF1ZXVlLm5lZWRzUmVmcmVzaCkge1xuICAgICAgICBhY3Rpb25RdWV1ZS5uZWVkc1JlZnJlc2ggPSBmYWxzZVxuICAgICAgICBhY3Rpb25RdWV1ZS5kaXNwYXRjaChcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBBQ1RJT05fUkVGUkVTSCxcbiAgICAgICAgICAgIG9yaWdpbjogd2luZG93LmxvY2F0aW9uLm9yaWdpbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldFN0YXRlXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuQWN0aW9uKHtcbiAgYWN0aW9uUXVldWUsXG4gIGFjdGlvbixcbiAgc2V0U3RhdGUsXG59OiB7XG4gIGFjdGlvblF1ZXVlOiBBcHBSb3V0ZXJBY3Rpb25RdWV1ZVxuICBhY3Rpb246IEFjdGlvblF1ZXVlTm9kZVxuICBzZXRTdGF0ZTogRGlzcGF0Y2hTdGF0ZVByb21pc2Vcbn0pIHtcbiAgY29uc3QgcHJldlN0YXRlID0gYWN0aW9uUXVldWUuc3RhdGVcblxuICBhY3Rpb25RdWV1ZS5wZW5kaW5nID0gYWN0aW9uXG5cbiAgY29uc3QgcGF5bG9hZCA9IGFjdGlvbi5wYXlsb2FkXG4gIGNvbnN0IGFjdGlvblJlc3VsdCA9IGFjdGlvblF1ZXVlLmFjdGlvbihwcmV2U3RhdGUsIHBheWxvYWQpXG5cbiAgZnVuY3Rpb24gaGFuZGxlUmVzdWx0KG5leHRTdGF0ZTogQXBwUm91dGVyU3RhdGUpIHtcbiAgICAvLyBpZiB3ZSBkaXNjYXJkZWQgdGhpcyBhY3Rpb24sIHRoZSBzdGF0ZSBzaG91bGQgYWxzbyBiZSBkaXNjYXJkZWRcbiAgICBpZiAoYWN0aW9uLmRpc2NhcmRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYWN0aW9uUXVldWUuc3RhdGUgPSBuZXh0U3RhdGVcblxuICAgIHJ1blJlbWFpbmluZ0FjdGlvbnMoYWN0aW9uUXVldWUsIHNldFN0YXRlKVxuICAgIGFjdGlvbi5yZXNvbHZlKG5leHRTdGF0ZSlcbiAgfVxuXG4gIC8vIGlmIHRoZSBhY3Rpb24gaXMgYSBwcm9taXNlLCBzZXQgdXAgYSBjYWxsYmFjayB0byByZXNvbHZlIGl0XG4gIGlmIChpc1RoZW5hYmxlKGFjdGlvblJlc3VsdCkpIHtcbiAgICBhY3Rpb25SZXN1bHQudGhlbihoYW5kbGVSZXN1bHQsIChlcnIpID0+IHtcbiAgICAgIHJ1blJlbWFpbmluZ0FjdGlvbnMoYWN0aW9uUXVldWUsIHNldFN0YXRlKVxuICAgICAgYWN0aW9uLnJlamVjdChlcnIpXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICBoYW5kbGVSZXN1bHQoYWN0aW9uUmVzdWx0KVxuICB9XG59XG5cbmZ1bmN0aW9uIGRpc3BhdGNoQWN0aW9uKFxuICBhY3Rpb25RdWV1ZTogQXBwUm91dGVyQWN0aW9uUXVldWUsXG4gIHBheWxvYWQ6IFJlZHVjZXJBY3Rpb25zLFxuICBzZXRTdGF0ZTogRGlzcGF0Y2hTdGF0ZVByb21pc2Vcbikge1xuICBsZXQgcmVzb2x2ZXJzOiB7XG4gICAgcmVzb2x2ZTogKHZhbHVlOiBSZWR1Y2VyU3RhdGUpID0+IHZvaWRcbiAgICByZWplY3Q6IChyZWFzb246IGFueSkgPT4gdm9pZFxuICB9ID0geyByZXNvbHZlOiBzZXRTdGF0ZSwgcmVqZWN0OiAoKSA9PiB7fSB9XG5cbiAgLy8gbW9zdCBvZiB0aGUgYWN0aW9uIHR5cGVzIGFyZSBhc3luYyB3aXRoIHRoZSBleGNlcHRpb24gb2YgcmVzdG9yZVxuICAvLyBpdCdzIGltcG9ydGFudCB0aGF0IHJlc3RvcmUgaXMgaGFuZGxlZCBxdWlja2x5IHNpbmNlIGl0J3MgZmlyZWQgb24gdGhlIHBvcHN0YXRlIGV2ZW50XG4gIC8vIGFuZCB3ZSBkb24ndCB3YW50IHRvIGFkZCBhbnkgZGVsYXkgb24gYSBiYWNrL2ZvcndhcmQgbmF2XG4gIC8vIHRoaXMgb25seSBjcmVhdGVzIGEgcHJvbWlzZSBmb3IgdGhlIGFzeW5jIGFjdGlvbnNcbiAgaWYgKHBheWxvYWQudHlwZSAhPT0gQUNUSU9OX1JFU1RPUkUpIHtcbiAgICAvLyBDcmVhdGUgdGhlIHByb21pc2UgYW5kIGFzc2lnbiB0aGUgcmVzb2x2ZXJzIHRvIHRoZSBvYmplY3QuXG4gICAgY29uc3QgZGVmZXJyZWRQcm9taXNlID0gbmV3IFByb21pc2U8QXBwUm91dGVyU3RhdGU+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHJlc29sdmVycyA9IHsgcmVzb2x2ZSwgcmVqZWN0IH1cbiAgICB9KVxuXG4gICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgIC8vIHdlIGltbWVkaWF0ZWx5IG5vdGlmeSBSZWFjdCBvZiB0aGUgcGVuZGluZyBwcm9taXNlIC0tIHRoZSByZXNvbHZlciBpcyBhdHRhY2hlZCB0byB0aGUgYWN0aW9uIG5vZGVcbiAgICAgIC8vIGFuZCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGFjdGlvbiBwcm9taXNlIHJlc29sdmVzXG4gICAgICBzZXRTdGF0ZShkZWZlcnJlZFByb21pc2UpXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IG5ld0FjdGlvbjogQWN0aW9uUXVldWVOb2RlID0ge1xuICAgIHBheWxvYWQsXG4gICAgbmV4dDogbnVsbCxcbiAgICByZXNvbHZlOiByZXNvbHZlcnMucmVzb2x2ZSxcbiAgICByZWplY3Q6IHJlc29sdmVycy5yZWplY3QsXG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgcXVldWUgaXMgZW1wdHlcbiAgaWYgKGFjdGlvblF1ZXVlLnBlbmRpbmcgPT09IG51bGwpIHtcbiAgICAvLyBUaGUgcXVldWUgaXMgZW1wdHksIHNvIGFkZCB0aGUgYWN0aW9uIGFuZCBzdGFydCBpdCBpbW1lZGlhdGVseVxuICAgIC8vIE1hcmsgdGhpcyBhY3Rpb24gYXMgdGhlIGxhc3QgaW4gdGhlIHF1ZXVlXG4gICAgYWN0aW9uUXVldWUubGFzdCA9IG5ld0FjdGlvblxuXG4gICAgcnVuQWN0aW9uKHtcbiAgICAgIGFjdGlvblF1ZXVlLFxuICAgICAgYWN0aW9uOiBuZXdBY3Rpb24sXG4gICAgICBzZXRTdGF0ZSxcbiAgICB9KVxuICB9IGVsc2UgaWYgKFxuICAgIHBheWxvYWQudHlwZSA9PT0gQUNUSU9OX05BVklHQVRFIHx8XG4gICAgcGF5bG9hZC50eXBlID09PSBBQ1RJT05fUkVTVE9SRVxuICApIHtcbiAgICAvLyBOYXZpZ2F0aW9ucyAoaW5jbHVkaW5nIGJhY2svZm9yd2FyZCkgdGFrZSBwcmlvcml0eSBvdmVyIGFueSBwZW5kaW5nIGFjdGlvbnMuXG4gICAgLy8gTWFyayB0aGUgcGVuZGluZyBhY3Rpb24gYXMgZGlzY2FyZGVkIChzbyB0aGUgc3RhdGUgaXMgbmV2ZXIgYXBwbGllZCkgYW5kIHN0YXJ0IHRoZSBuYXZpZ2F0aW9uIGFjdGlvbiBpbW1lZGlhdGVseS5cbiAgICBhY3Rpb25RdWV1ZS5wZW5kaW5nLmRpc2NhcmRlZCA9IHRydWVcblxuICAgIC8vIFRoZSByZXN0IG9mIHRoZSBjdXJyZW50IHF1ZXVlIHNob3VsZCBzdGlsbCBleGVjdXRlIGFmdGVyIHRoaXMgbmF2aWdhdGlvbi5cbiAgICAvLyAoTm90ZSB0aGF0IGl0IGNhbid0IGNvbnRhaW4gYW55IGVhcmxpZXIgbmF2aWdhdGlvbnMsIGJlY2F1c2Ugd2UgYWx3YXlzIHB1dCB0aG9zZSBpbnRvIGBhY3Rpb25RdWV1ZS5wZW5kaW5nYCBieSBjYWxsaW5nIGBydW5BY3Rpb25gKVxuICAgIG5ld0FjdGlvbi5uZXh0ID0gYWN0aW9uUXVldWUucGVuZGluZy5uZXh0XG5cbiAgICAvLyBpZiB0aGUgcGVuZGluZyBhY3Rpb24gd2FzIGEgc2VydmVyIGFjdGlvbiwgbWFyayB0aGUgcXVldWUgYXMgbmVlZGluZyBhIHJlZnJlc2ggb25jZSBldmVudHMgYXJlIHByb2Nlc3NlZFxuICAgIGlmIChhY3Rpb25RdWV1ZS5wZW5kaW5nLnBheWxvYWQudHlwZSA9PT0gQUNUSU9OX1NFUlZFUl9BQ1RJT04pIHtcbiAgICAgIGFjdGlvblF1ZXVlLm5lZWRzUmVmcmVzaCA9IHRydWVcbiAgICB9XG5cbiAgICBydW5BY3Rpb24oe1xuICAgICAgYWN0aW9uUXVldWUsXG4gICAgICBhY3Rpb246IG5ld0FjdGlvbixcbiAgICAgIHNldFN0YXRlLFxuICAgIH0pXG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlIHF1ZXVlIGlzIG5vdCBlbXB0eSwgc28gYWRkIHRoZSBhY3Rpb24gdG8gdGhlIGVuZCBvZiB0aGUgcXVldWVcbiAgICAvLyBJdCB3aWxsIGJlIHN0YXJ0ZWQgYnkgcnVuUmVtYWluaW5nQWN0aW9ucyBhZnRlciB0aGUgcHJldmlvdXMgYWN0aW9uIGZpbmlzaGVzXG4gICAgaWYgKGFjdGlvblF1ZXVlLmxhc3QgIT09IG51bGwpIHtcbiAgICAgIGFjdGlvblF1ZXVlLmxhc3QubmV4dCA9IG5ld0FjdGlvblxuICAgIH1cbiAgICBhY3Rpb25RdWV1ZS5sYXN0ID0gbmV3QWN0aW9uXG4gIH1cbn1cblxubGV0IGdsb2JhbEFjdGlvblF1ZXVlOiBBcHBSb3V0ZXJBY3Rpb25RdWV1ZSB8IG51bGwgPSBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNdXRhYmxlQWN0aW9uUXVldWUoXG4gIGluaXRpYWxTdGF0ZTogQXBwUm91dGVyU3RhdGUsXG4gIGluc3RydW1lbnRhdGlvbkhvb2tzOiBDbGllbnRJbnN0cnVtZW50YXRpb25Ib29rcyB8IG51bGxcbik6IEFwcFJvdXRlckFjdGlvblF1ZXVlIHtcbiAgY29uc3QgYWN0aW9uUXVldWU6IEFwcFJvdXRlckFjdGlvblF1ZXVlID0ge1xuICAgIHN0YXRlOiBpbml0aWFsU3RhdGUsXG4gICAgZGlzcGF0Y2g6IChwYXlsb2FkOiBSZWR1Y2VyQWN0aW9ucywgc2V0U3RhdGU6IERpc3BhdGNoU3RhdGVQcm9taXNlKSA9PlxuICAgICAgZGlzcGF0Y2hBY3Rpb24oYWN0aW9uUXVldWUsIHBheWxvYWQsIHNldFN0YXRlKSxcbiAgICBhY3Rpb246IGFzeW5jIChzdGF0ZTogQXBwUm91dGVyU3RhdGUsIGFjdGlvbjogUmVkdWNlckFjdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHJlZHVjZXIoc3RhdGUsIGFjdGlvbilcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICB9LFxuICAgIHBlbmRpbmc6IG51bGwsXG4gICAgbGFzdDogbnVsbCxcbiAgICBvblJvdXRlclRyYW5zaXRpb25TdGFydDpcbiAgICAgIGluc3RydW1lbnRhdGlvbkhvb2tzICE9PSBudWxsICYmXG4gICAgICB0eXBlb2YgaW5zdHJ1bWVudGF0aW9uSG9va3Mub25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyAvLyBUaGlzIHByb2ZpbGluZyBob29rIHdpbGwgYmUgY2FsbGVkIGF0IHRoZSBzdGFydCBvZiBldmVyeSBuYXZpZ2F0aW9uLlxuICAgICAgICAgIGluc3RydW1lbnRhdGlvbkhvb2tzLm9uUm91dGVyVHJhbnNpdGlvblN0YXJ0XG4gICAgICAgIDogbnVsbCxcbiAgfVxuXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIC8vIFRoZSBhY3Rpb24gcXVldWUgaXMgbGF6aWx5IGNyZWF0ZWQgb24gaHlkcmF0aW9uLCBidXQgYWZ0ZXIgdGhhdCBwb2ludFxuICAgIC8vIGl0IGRvZXNuJ3QgY2hhbmdlLiBTbyB3ZSBjYW4gc3RvcmUgaXQgaW4gYSBnbG9iYWwgcmF0aGVyIHRoYW4gcGFzc1xuICAgIC8vIGl0IGFyb3VuZCBldmVyeXdoZXJlIHZpYSBwcm9wcy9jb250ZXh0LlxuICAgIGlmIChnbG9iYWxBY3Rpb25RdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnSW50ZXJuYWwgTmV4dC5qcyBFcnJvcjogY3JlYXRlTXV0YWJsZUFjdGlvblF1ZXVlIHdhcyBjYWxsZWQgbW9yZSAnICtcbiAgICAgICAgICAndGhhbiBvbmNlJ1xuICAgICAgKVxuICAgIH1cbiAgICBnbG9iYWxBY3Rpb25RdWV1ZSA9IGFjdGlvblF1ZXVlXG4gIH1cblxuICByZXR1cm4gYWN0aW9uUXVldWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRBcHBSb3V0ZXJTdGF0ZSgpOiBBcHBSb3V0ZXJTdGF0ZSB8IG51bGwge1xuICByZXR1cm4gZ2xvYmFsQWN0aW9uUXVldWUgIT09IG51bGwgPyBnbG9iYWxBY3Rpb25RdWV1ZS5zdGF0ZSA6IG51bGxcbn1cblxuZnVuY3Rpb24gZ2V0QXBwUm91dGVyQWN0aW9uUXVldWUoKTogQXBwUm91dGVyQWN0aW9uUXVldWUge1xuICBpZiAoZ2xvYmFsQWN0aW9uUXVldWUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnSW50ZXJuYWwgTmV4dC5qcyBlcnJvcjogUm91dGVyIGFjdGlvbiBkaXNwYXRjaGVkIGJlZm9yZSBpbml0aWFsaXphdGlvbi4nXG4gICAgKVxuICB9XG4gIHJldHVybiBnbG9iYWxBY3Rpb25RdWV1ZVxufVxuXG5mdW5jdGlvbiBnZXRQcm9maWxpbmdIb29rRm9yT25OYXZpZ2F0aW9uU3RhcnQoKSB7XG4gIGlmIChnbG9iYWxBY3Rpb25RdWV1ZSAhPT0gbnVsbCkge1xuICAgIHJldHVybiBnbG9iYWxBY3Rpb25RdWV1ZS5vblJvdXRlclRyYW5zaXRpb25TdGFydFxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwYXRjaE5hdmlnYXRlQWN0aW9uKFxuICBocmVmOiBzdHJpbmcsXG4gIG5hdmlnYXRlVHlwZTogTmF2aWdhdGVBY3Rpb25bJ25hdmlnYXRlVHlwZSddLFxuICBzaG91bGRTY3JvbGw6IGJvb2xlYW4sXG4gIGxpbmtJbnN0YW5jZVJlZjogTGlua0luc3RhbmNlIHwgbnVsbFxuKTogdm9pZCB7XG4gIC8vIFRPRE86IFRoaXMgc3R1ZmYgY291bGQganVzdCBnbyBpbnRvIHRoZSByZWR1Y2VyLiBMZWF2aW5nIGFzLWlzIGZvciBub3dcbiAgLy8gc2luY2Ugd2UncmUgYWJvdXQgdG8gcmV3cml0ZSBhbGwgdGhlIHJvdXRlciByZWR1Y2VyIHN0dWZmIGFueXdheS5cbiAgY29uc3QgdXJsID0gbmV3IFVSTChhZGRCYXNlUGF0aChocmVmKSwgbG9jYXRpb24uaHJlZilcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9BUFBfTkFWX0ZBSUxfSEFORExJTkcpIHtcbiAgICB3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwgPSB1cmxcbiAgfVxuXG4gIHNldExpbmtGb3JDdXJyZW50TmF2aWdhdGlvbihsaW5rSW5zdGFuY2VSZWYpXG5cbiAgY29uc3Qgb25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQgPSBnZXRQcm9maWxpbmdIb29rRm9yT25OYXZpZ2F0aW9uU3RhcnQoKVxuICBpZiAob25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQgIT09IG51bGwpIHtcbiAgICBvblJvdXRlclRyYW5zaXRpb25TdGFydChocmVmLCBuYXZpZ2F0ZVR5cGUpXG4gIH1cblxuICBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbih7XG4gICAgdHlwZTogQUNUSU9OX05BVklHQVRFLFxuICAgIHVybCxcbiAgICBpc0V4dGVybmFsVXJsOiBpc0V4dGVybmFsVVJMKHVybCksXG4gICAgbG9jYXRpb25TZWFyY2g6IGxvY2F0aW9uLnNlYXJjaCxcbiAgICBzaG91bGRTY3JvbGwsXG4gICAgbmF2aWdhdGVUeXBlLFxuICAgIGFsbG93QWxpYXNpbmc6IHRydWUsXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwYXRjaFRyYXZlcnNlQWN0aW9uKFxuICBocmVmOiBzdHJpbmcsXG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlIHwgdW5kZWZpbmVkXG4pIHtcbiAgY29uc3Qgb25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQgPSBnZXRQcm9maWxpbmdIb29rRm9yT25OYXZpZ2F0aW9uU3RhcnQoKVxuICBpZiAob25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQgIT09IG51bGwpIHtcbiAgICBvblJvdXRlclRyYW5zaXRpb25TdGFydChocmVmLCAndHJhdmVyc2UnKVxuICB9XG4gIGRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKHtcbiAgICB0eXBlOiBBQ1RJT05fUkVTVE9SRSxcbiAgICB1cmw6IG5ldyBVUkwoaHJlZiksXG4gICAgdHJlZSxcbiAgfSlcbn1cblxuLyoqXG4gKiBUaGUgYXBwIHJvdXRlciB0aGF0IGlzIGV4cG9zZWQgdGhyb3VnaCBgdXNlUm91dGVyYC4gVGhlc2UgYXJlIHB1YmxpYyBBUElcbiAqIG1ldGhvZHMuIEludGVybmFsIE5leHQuanMgY29kZSBzaG91bGQgY2FsbCB0aGUgbG93ZXIgbGV2ZWwgbWV0aG9kcyBkaXJlY3RseVxuICogKGFsdGhvdWdoIHRoZXJlJ3MgbG90cyBvZiBleGlzdGluZyBjb2RlIHRoYXQgZG9lc24ndCBkbyB0aGF0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IHB1YmxpY0FwcFJvdXRlckluc3RhbmNlOiBBcHBSb3V0ZXJJbnN0YW5jZSA9IHtcbiAgYmFjazogKCkgPT4gd2luZG93Lmhpc3RvcnkuYmFjaygpLFxuICBmb3J3YXJkOiAoKSA9PiB3aW5kb3cuaGlzdG9yeS5mb3J3YXJkKCksXG4gIHByZWZldGNoOiBwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEVcbiAgICA/IC8vIFVubGlrZSB0aGUgb2xkIGltcGxlbWVudGF0aW9uLCB0aGUgU2VnbWVudCBDYWNoZSBkb2Vzbid0IHN0b3JlIGl0c1xuICAgICAgLy8gZGF0YSBpbiB0aGUgcm91dGVyIHJlZHVjZXIgc3RhdGU7IGl0IHdyaXRlcyBpbnRvIGEgZ2xvYmFsIG11dGFibGVcbiAgICAgIC8vIGNhY2hlLiBTbyB3ZSBkb24ndCBuZWVkIHRvIGRpc3BhdGNoIGFuIGFjdGlvbi5cbiAgICAgIChocmVmOiBzdHJpbmcsIG9wdGlvbnM/OiBQcmVmZXRjaE9wdGlvbnMpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9uUXVldWUgPSBnZXRBcHBSb3V0ZXJBY3Rpb25RdWV1ZSgpXG4gICAgICAgIHByZWZldGNoV2l0aFNlZ21lbnRDYWNoZShcbiAgICAgICAgICBocmVmLFxuICAgICAgICAgIGFjdGlvblF1ZXVlLnN0YXRlLm5leHRVcmwsXG4gICAgICAgICAgYWN0aW9uUXVldWUuc3RhdGUudHJlZSxcbiAgICAgICAgICBvcHRpb25zPy5raW5kID09PSBQcmVmZXRjaEtpbmQuRlVMTCxcbiAgICAgICAgICBvcHRpb25zPy5vbkludmFsaWRhdGUgPz8gbnVsbFxuICAgICAgICApXG4gICAgICB9XG4gICAgOiAoaHJlZjogc3RyaW5nLCBvcHRpb25zPzogUHJlZmV0Y2hPcHRpb25zKSA9PiB7XG4gICAgICAgIC8vIFVzZSB0aGUgb2xkIHByZWZldGNoIGltcGxlbWVudGF0aW9uLlxuICAgICAgICBjb25zdCBhY3Rpb25RdWV1ZSA9IGdldEFwcFJvdXRlckFjdGlvblF1ZXVlKClcbiAgICAgICAgY29uc3QgdXJsID0gY3JlYXRlUHJlZmV0Y2hVUkwoaHJlZilcbiAgICAgICAgaWYgKHVybCAhPT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRoZSBwcmVmZXRjaCByZWR1Y2VyIGRvZXNuJ3QgYWN0dWFsbHkgdXBkYXRlIGFueSBzdGF0ZSBvclxuICAgICAgICAgIC8vIHRyaWdnZXIgYSByZXJlbmRlci4gSXQganVzdCB3cml0ZXMgdG8gYSBtdXRhYmxlIGNhY2hlLiBTbyB3ZVxuICAgICAgICAgIC8vIHNob3VsZG4ndCBib3RoZXIgY2FsbGluZyBzZXRTdGF0ZS9kaXNwYXRjaDsgd2UgY2FuIGp1c3QgcmUtcnVuXG4gICAgICAgICAgLy8gdGhlIHJlZHVjZXIgZGlyZWN0bHkgdXNpbmcgdGhlIGN1cnJlbnQgc3RhdGUuXG4gICAgICAgICAgLy8gVE9ETzogUmVmYWN0b3IgdGhpcyBhd2F5IGZyb20gYSBcInJlZHVjZXJcIiBzbyBpdCdzXG4gICAgICAgICAgLy8gbGVzcyBjb25mdXNpbmcuXG4gICAgICAgICAgcHJlZmV0Y2hSZWR1Y2VyKGFjdGlvblF1ZXVlLnN0YXRlLCB7XG4gICAgICAgICAgICB0eXBlOiBBQ1RJT05fUFJFRkVUQ0gsXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBraW5kOiBvcHRpb25zPy5raW5kID8/IFByZWZldGNoS2luZC5GVUxMLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0sXG4gIHJlcGxhY2U6IChocmVmOiBzdHJpbmcsIG9wdGlvbnM/OiBOYXZpZ2F0ZU9wdGlvbnMpID0+IHtcbiAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgZGlzcGF0Y2hOYXZpZ2F0ZUFjdGlvbihocmVmLCAncmVwbGFjZScsIG9wdGlvbnM/LnNjcm9sbCA/PyB0cnVlLCBudWxsKVxuICAgIH0pXG4gIH0sXG4gIHB1c2g6IChocmVmOiBzdHJpbmcsIG9wdGlvbnM/OiBOYXZpZ2F0ZU9wdGlvbnMpID0+IHtcbiAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgZGlzcGF0Y2hOYXZpZ2F0ZUFjdGlvbihocmVmLCAncHVzaCcsIG9wdGlvbnM/LnNjcm9sbCA/PyB0cnVlLCBudWxsKVxuICAgIH0pXG4gIH0sXG4gIHJlZnJlc2g6ICgpID0+IHtcbiAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBBQ1RJT05fUkVGUkVTSCxcbiAgICAgICAgb3JpZ2luOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luLFxuICAgICAgfSlcbiAgICB9KVxuICB9LFxuICBobXJSZWZyZXNoOiAoKSA9PiB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdobXJSZWZyZXNoIGNhbiBvbmx5IGJlIHVzZWQgaW4gZGV2ZWxvcG1lbnQgbW9kZS4gUGxlYXNlIHVzZSByZWZyZXNoIGluc3RlYWQuJ1xuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgICBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbih7XG4gICAgICAgICAgdHlwZTogQUNUSU9OX0hNUl9SRUZSRVNILFxuICAgICAgICAgIG9yaWdpbjogd2luZG93LmxvY2F0aW9uLm9yaWdpbixcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfVxuICB9LFxufVxuXG4vLyBFeGlzdHMgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4gRG9uJ3QgdXNlIGluIGFwcGxpY2F0aW9uIGNvZGUuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5leHQpIHtcbiAgd2luZG93Lm5leHQucm91dGVyID0gcHVibGljQXBwUm91dGVySW5zdGFuY2Vcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVNdXRhYmxlQWN0aW9uUXVldWUiLCJkaXNwYXRjaE5hdmlnYXRlQWN0aW9uIiwiZGlzcGF0Y2hUcmF2ZXJzZUFjdGlvbiIsImdldEN1cnJlbnRBcHBSb3V0ZXJTdGF0ZSIsInB1YmxpY0FwcFJvdXRlckluc3RhbmNlIiwicnVuUmVtYWluaW5nQWN0aW9ucyIsImFjdGlvblF1ZXVlIiwic2V0U3RhdGUiLCJwZW5kaW5nIiwibmV4dCIsInJ1bkFjdGlvbiIsImFjdGlvbiIsIm5lZWRzUmVmcmVzaCIsImRpc3BhdGNoIiwidHlwZSIsIkFDVElPTl9SRUZSRVNIIiwib3JpZ2luIiwid2luZG93IiwibG9jYXRpb24iLCJwcmV2U3RhdGUiLCJzdGF0ZSIsInBheWxvYWQiLCJhY3Rpb25SZXN1bHQiLCJoYW5kbGVSZXN1bHQiLCJuZXh0U3RhdGUiLCJkaXNjYXJkZWQiLCJyZXNvbHZlIiwiaXNUaGVuYWJsZSIsInRoZW4iLCJlcnIiLCJyZWplY3QiLCJkaXNwYXRjaEFjdGlvbiIsInJlc29sdmVycyIsIkFDVElPTl9SRVNUT1JFIiwiZGVmZXJyZWRQcm9taXNlIiwiUHJvbWlzZSIsInN0YXJ0VHJhbnNpdGlvbiIsIm5ld0FjdGlvbiIsImxhc3QiLCJBQ1RJT05fTkFWSUdBVEUiLCJBQ1RJT05fU0VSVkVSX0FDVElPTiIsImdsb2JhbEFjdGlvblF1ZXVlIiwiaW5pdGlhbFN0YXRlIiwiaW5zdHJ1bWVudGF0aW9uSG9va3MiLCJyZXN1bHQiLCJyZWR1Y2VyIiwib25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQiLCJFcnJvciIsImdldEFwcFJvdXRlckFjdGlvblF1ZXVlIiwiZ2V0UHJvZmlsaW5nSG9va0Zvck9uTmF2aWdhdGlvblN0YXJ0IiwiaHJlZiIsIm5hdmlnYXRlVHlwZSIsInNob3VsZFNjcm9sbCIsImxpbmtJbnN0YW5jZVJlZiIsInVybCIsIlVSTCIsImFkZEJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9BUFBfTkFWX0ZBSUxfSEFORExJTkciLCJfX3BlbmRpbmdVcmwiLCJzZXRMaW5rRm9yQ3VycmVudE5hdmlnYXRpb24iLCJkaXNwYXRjaEFwcFJvdXRlckFjdGlvbiIsImlzRXh0ZXJuYWxVcmwiLCJpc0V4dGVybmFsVVJMIiwibG9jYXRpb25TZWFyY2giLCJzZWFyY2giLCJhbGxvd0FsaWFzaW5nIiwidHJlZSIsImJhY2siLCJoaXN0b3J5IiwiZm9yd2FyZCIsInByZWZldGNoIiwiX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFIiwib3B0aW9ucyIsInByZWZldGNoV2l0aFNlZ21lbnRDYWNoZSIsIm5leHRVcmwiLCJraW5kIiwiUHJlZmV0Y2hLaW5kIiwiRlVMTCIsIm9uSW52YWxpZGF0ZSIsImNyZWF0ZVByZWZldGNoVVJMIiwicHJlZmV0Y2hSZWR1Y2VyIiwiQUNUSU9OX1BSRUZFVENIIiwicmVwbGFjZSIsInNjcm9sbCIsInB1c2giLCJyZWZyZXNoIiwiaG1yUmVmcmVzaCIsIk5PREVfRU5WIiwiQUNUSU9OX0hNUl9SRUZSRVNIIiwicm91dGVyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router-instance.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/app-router.js":
/*!****************************************************************!*\
!*** ./node_modules/next/dist/client/components/app-router.js ***!
\****************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createEmptyCacheNode: function() {\n return createEmptyCacheNode;\n },\n createPrefetchURL: function() {\n return createPrefetchURL;\n },\n default: function() {\n return AppRouter;\n },\n isExternalURL: function() {\n return isExternalURL;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _createhreffromurl = __webpack_require__(/*! ./router-reducer/create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js\");\nconst _useactionqueue = __webpack_require__(/*! ./use-action-queue */ \"(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\");\nconst _errorboundary = __webpack_require__(/*! ./error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _globalerror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./builtin/global-error */ \"(ssr)/./node_modules/next/dist/client/components/builtin/global-error.js\"));\nconst _isbot = __webpack_require__(/*! ../../shared/lib/router/utils/is-bot */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst _addbasepath = __webpack_require__(/*! ../add-base-path */ \"(ssr)/./node_modules/next/dist/client/add-base-path.js\");\nconst _approuterannouncer = __webpack_require__(/*! ./app-router-announcer */ \"(ssr)/./node_modules/next/dist/client/components/app-router-announcer.js\");\nconst _redirectboundary = __webpack_require__(/*! ./redirect-boundary */ \"(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js\");\nconst _findheadincache = __webpack_require__(/*! ./router-reducer/reducers/find-head-in-cache */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js\");\nconst _unresolvedthenable = __webpack_require__(/*! ./unresolved-thenable */ \"(ssr)/./node_modules/next/dist/client/components/unresolved-thenable.js\");\nconst _removebasepath = __webpack_require__(/*! ../remove-base-path */ \"(ssr)/./node_modules/next/dist/client/remove-base-path.js\");\nconst _hasbasepath = __webpack_require__(/*! ../has-base-path */ \"(ssr)/./node_modules/next/dist/client/has-base-path.js\");\nconst _computechangedpath = __webpack_require__(/*! ./router-reducer/compute-changed-path */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\");\nconst _navfailurehandler = __webpack_require__(/*! ./nav-failure-handler */ \"(ssr)/./node_modules/next/dist/client/components/nav-failure-handler.js\");\nconst _approuterinstance = __webpack_require__(/*! ./app-router-instance */ \"(ssr)/./node_modules/next/dist/client/components/app-router-instance.js\");\nconst _redirect = __webpack_require__(/*! ./redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nconst _links = __webpack_require__(/*! ./links */ \"(ssr)/./node_modules/next/dist/client/components/links.js\");\nconst _gracefuldegradeboundary = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./errors/graceful-degrade-boundary */ \"(ssr)/./node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js\"));\nconst globalMutable = {};\nfunction isExternalURL(url) {\n return url.origin !== window.location.origin;\n}\nfunction createPrefetchURL(href) {\n // Don't prefetch for bots as they don't navigate.\n if ((0, _isbot.isBot)(window.navigator.userAgent)) {\n return null;\n }\n let url;\n try {\n url = new URL((0, _addbasepath.addBasePath)(href), window.location.href);\n } catch (_) {\n // TODO: Does this need to throw or can we just console.error instead? Does\n // anyone rely on this throwing? (Seems unlikely.)\n throw Object.defineProperty(new Error(\"Cannot prefetch '\" + href + \"' because it cannot be converted to a URL.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E234\",\n enumerable: false,\n configurable: true\n });\n }\n // Don't prefetch during development (improves compilation performance)\n if (true) {\n return null;\n }\n // External urls can't be prefetched in the same way.\n if (isExternalURL(url)) {\n return null;\n }\n return url;\n}\nfunction HistoryUpdater(param) {\n let { appRouterState } = param;\n (0, _react.useInsertionEffect)(()=>{\n if (false) {}\n const { tree, pushRef, canonicalUrl } = appRouterState;\n const historyState = {\n ...pushRef.preserveCustomHistoryState ? window.history.state : {},\n // Identifier is shortened intentionally.\n // __NA is used to identify if the history entry can be handled by the app-router.\n // __N is used to identify if the history entry can be handled by the old router.\n __NA: true,\n __PRIVATE_NEXTJS_INTERNALS_TREE: tree\n };\n if (pushRef.pendingPush && // Skip pushing an additional history entry if the canonicalUrl is the same as the current url.\n // This mirrors the browser behavior for normal navigation.\n (0, _createhreffromurl.createHrefFromUrl)(new URL(window.location.href)) !== canonicalUrl) {\n // This intentionally mutates React state, pushRef is overwritten to ensure additional push/replace calls do not trigger an additional history entry.\n pushRef.pendingPush = false;\n window.history.pushState(historyState, '', canonicalUrl);\n } else {\n window.history.replaceState(historyState, '', canonicalUrl);\n }\n }, [\n appRouterState\n ]);\n (0, _react.useEffect)(()=>{\n // The Next-Url and the base tree may affect the result of a prefetch\n // task. Re-prefetch all visible links with the updated values. In most\n // cases, this will not result in any new network requests, only if\n // the prefetch result actually varies on one of these inputs.\n if (false) {}\n }, [\n appRouterState.nextUrl,\n appRouterState.tree\n ]);\n return null;\n}\nfunction createEmptyCacheNode() {\n return {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1\n };\n}\nfunction copyNextJsInternalHistoryState(data) {\n if (data == null) data = {};\n const currentState = window.history.state;\n const __NA = currentState == null ? void 0 : currentState.__NA;\n if (__NA) {\n data.__NA = __NA;\n }\n const __PRIVATE_NEXTJS_INTERNALS_TREE = currentState == null ? void 0 : currentState.__PRIVATE_NEXTJS_INTERNALS_TREE;\n if (__PRIVATE_NEXTJS_INTERNALS_TREE) {\n data.__PRIVATE_NEXTJS_INTERNALS_TREE = __PRIVATE_NEXTJS_INTERNALS_TREE;\n }\n return data;\n}\nfunction Head(param) {\n let { headCacheNode } = param;\n // If this segment has a `prefetchHead`, it's the statically prefetched data.\n // We should use that on initial render instead of `head`. Then we'll switch\n // to `head` when the dynamic response streams in.\n const head = headCacheNode !== null ? headCacheNode.head : null;\n const prefetchHead = headCacheNode !== null ? headCacheNode.prefetchHead : null;\n // If no prefetch data is available, then we go straight to rendering `head`.\n const resolvedPrefetchRsc = prefetchHead !== null ? prefetchHead : head;\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n return (0, _react.useDeferredValue)(head, resolvedPrefetchRsc);\n}\n/**\n * The global router that wraps the application components.\n */ function Router(param) {\n let { actionQueue, assetPrefix, globalError, gracefullyDegrade } = param;\n const state = (0, _useactionqueue.useActionQueue)(actionQueue);\n const { canonicalUrl } = state;\n // Add memoized pathname/query for useSearchParams and usePathname.\n const { searchParams, pathname } = (0, _react.useMemo)(()=>{\n const url = new URL(canonicalUrl, true ? 'http://n' : 0);\n return {\n // This is turned into a readonly class in `useSearchParams`\n searchParams: url.searchParams,\n pathname: (0, _hasbasepath.hasBasePath)(url.pathname) ? (0, _removebasepath.removeBasePath)(url.pathname) : url.pathname\n };\n }, [\n canonicalUrl\n ]);\n if (true) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { cache, prefetchCache, tree } = state;\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, _react.useEffect)(()=>{\n // Add `window.nd` for debugging purposes.\n // This is not meant for use in applications as concurrent rendering will affect the cache/tree/router.\n // @ts-ignore this is for debugging\n window.nd = {\n router: _approuterinstance.publicAppRouterInstance,\n cache,\n prefetchCache,\n tree\n };\n }, [\n cache,\n prefetchCache,\n tree\n ]);\n }\n (0, _react.useEffect)(()=>{\n // If the app is restored from bfcache, it's possible that\n // pushRef.mpaNavigation is true, which would mean that any re-render of this component\n // would trigger the mpa navigation logic again from the lines below.\n // This will restore the router to the initial state in the event that the app is restored from bfcache.\n function handlePageShow(event) {\n var _window_history_state;\n if (!event.persisted || !((_window_history_state = window.history.state) == null ? void 0 : _window_history_state.__PRIVATE_NEXTJS_INTERNALS_TREE)) {\n return;\n }\n // Clear the pendingMpaPath value so that a subsequent MPA navigation to the same URL can be triggered.\n // This is necessary because if the browser restored from bfcache, the pendingMpaPath would still be set to the value\n // of the last MPA navigation.\n globalMutable.pendingMpaPath = undefined;\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_RESTORE,\n url: new URL(window.location.href),\n tree: window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE\n });\n }\n window.addEventListener('pageshow', handlePageShow);\n return ()=>{\n window.removeEventListener('pageshow', handlePageShow);\n };\n }, []);\n (0, _react.useEffect)(()=>{\n // Ensure that any redirect errors that bubble up outside of the RedirectBoundary\n // are caught and handled by the router.\n function handleUnhandledRedirect(event) {\n const error = 'reason' in event ? event.reason : event.error;\n if ((0, _redirecterror.isRedirectError)(error)) {\n event.preventDefault();\n const url = (0, _redirect.getURLFromRedirectError)(error);\n const redirectType = (0, _redirect.getRedirectTypeFromError)(error);\n // TODO: This should access the router methods directly, rather than\n // go through the public interface.\n if (redirectType === _redirecterror.RedirectType.push) {\n _approuterinstance.publicAppRouterInstance.push(url, {});\n } else {\n _approuterinstance.publicAppRouterInstance.replace(url, {});\n }\n }\n }\n window.addEventListener('error', handleUnhandledRedirect);\n window.addEventListener('unhandledrejection', handleUnhandledRedirect);\n return ()=>{\n window.removeEventListener('error', handleUnhandledRedirect);\n window.removeEventListener('unhandledrejection', handleUnhandledRedirect);\n };\n }, []);\n // When mpaNavigation flag is set do a hard navigation to the new url.\n // Infinitely suspend because we don't actually want to rerender any child\n // components with the new URL and any entangled state updates shouldn't\n // commit either (eg: useTransition isPending should stay true until the page\n // unloads).\n //\n // This is a side effect in render. Don't try this at home, kids. It's\n // probably safe because we know this is a singleton component and it's never\n // in <Offscreen>. At least I hope so. (It will run twice in dev strict mode,\n // but that's... fine?)\n const { pushRef } = state;\n if (pushRef.mpaNavigation) {\n // if there's a re-render, we don't want to trigger another redirect if one is already in flight to the same URL\n if (globalMutable.pendingMpaPath !== canonicalUrl) {\n const location = window.location;\n if (pushRef.pendingPush) {\n location.assign(canonicalUrl);\n } else {\n location.replace(canonicalUrl);\n }\n globalMutable.pendingMpaPath = canonicalUrl;\n }\n // TODO-APP: Should we listen to navigateerror here to catch failed\n // navigations somehow? And should we call window.stop() if a SPA navigation\n // should interrupt an MPA one?\n // NOTE: This is intentionally using `throw` instead of `use` because we're\n // inside an externally mutable condition (pushRef.mpaNavigation), which\n // violates the rules of hooks.\n throw _unresolvedthenable.unresolvedThenable;\n }\n (0, _react.useEffect)(()=>{\n const originalPushState = window.history.pushState.bind(window.history);\n const originalReplaceState = window.history.replaceState.bind(window.history);\n // Ensure the canonical URL in the Next.js Router is updated when the URL is changed so that `usePathname` and `useSearchParams` hold the pushed values.\n const applyUrlFromHistoryPushReplace = (url)=>{\n var _window_history_state;\n const href = window.location.href;\n const tree = (_window_history_state = window.history.state) == null ? void 0 : _window_history_state.__PRIVATE_NEXTJS_INTERNALS_TREE;\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_RESTORE,\n url: new URL(url != null ? url : href, href),\n tree\n });\n });\n };\n /**\n * Patch pushState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */ window.history.pushState = function pushState(data, _unused, url) {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if ((data == null ? void 0 : data.__NA) || (data == null ? void 0 : data._N)) {\n return originalPushState(data, _unused, url);\n }\n data = copyNextJsInternalHistoryState(data);\n if (url) {\n applyUrlFromHistoryPushReplace(url);\n }\n return originalPushState(data, _unused, url);\n };\n /**\n * Patch replaceState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */ window.history.replaceState = function replaceState(data, _unused, url) {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if ((data == null ? void 0 : data.__NA) || (data == null ? void 0 : data._N)) {\n return originalReplaceState(data, _unused, url);\n }\n data = copyNextJsInternalHistoryState(data);\n if (url) {\n applyUrlFromHistoryPushReplace(url);\n }\n return originalReplaceState(data, _unused, url);\n };\n /**\n * Handle popstate event, this is used to handle back/forward in the browser.\n * By default dispatches ACTION_RESTORE, however if the history entry was not pushed/replaced by app-router it will reload the page.\n * That case can happen when the old router injected the history entry.\n */ const onPopState = (event)=>{\n if (!event.state) {\n // TODO-APP: this case only happens when pushState/replaceState was called outside of Next.js. It should probably reload the page in this case.\n return;\n }\n // This case happens when the history entry was pushed by the `pages` router.\n if (!event.state.__NA) {\n window.location.reload();\n return;\n }\n // TODO-APP: Ideally the back button should not use startTransition as it should apply the updates synchronously\n // Without startTransition works if the cache is there for this path\n (0, _react.startTransition)(()=>{\n (0, _approuterinstance.dispatchTraverseAction)(window.location.href, event.state.__PRIVATE_NEXTJS_INTERNALS_TREE);\n });\n };\n // Register popstate event to call onPopstate.\n window.addEventListener('popstate', onPopState);\n return ()=>{\n window.history.pushState = originalPushState;\n window.history.replaceState = originalReplaceState;\n window.removeEventListener('popstate', onPopState);\n };\n }, []);\n const { cache, tree, nextUrl, focusAndScrollRef } = state;\n const matchingHead = (0, _react.useMemo)(()=>{\n return (0, _findheadincache.findHeadInCache)(cache, tree[1]);\n }, [\n cache,\n tree\n ]);\n // Add memoized pathParams for useParams.\n const pathParams = (0, _react.useMemo)(()=>{\n return (0, _computechangedpath.getSelectedParams)(tree);\n }, [\n tree\n ]);\n const layoutRouterContext = (0, _react.useMemo)(()=>{\n return {\n parentTree: tree,\n parentCacheNode: cache,\n parentSegmentPath: null,\n // Root node always has `url`\n // Provided in AppTreeContext to ensure it can be overwritten in layout-router\n url: canonicalUrl\n };\n }, [\n tree,\n cache,\n canonicalUrl\n ]);\n const globalLayoutRouterContext = (0, _react.useMemo)(()=>{\n return {\n tree,\n focusAndScrollRef,\n nextUrl\n };\n }, [\n tree,\n focusAndScrollRef,\n nextUrl\n ]);\n let head;\n if (matchingHead !== null) {\n // The head is wrapped in an extra component so we can use\n // `useDeferredValue` to swap between the prefetched and final versions of\n // the head. (This is what LayoutRouter does for segment data, too.)\n //\n // The `key` is used to remount the component whenever the head moves to\n // a different segment.\n const [headCacheNode, headKey] = matchingHead;\n head = /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {\n headCacheNode: headCacheNode\n }, headKey);\n } else {\n head = null;\n }\n let content = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_redirectboundary.RedirectBoundary, {\n children: [\n head,\n cache.rsc,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_approuterannouncer.AppRouterAnnouncer, {\n tree: tree\n })\n ]\n });\n if (true) {\n // In development, we apply few error boundaries and hot-reloader:\n // - DevRootHTTPAccessFallbackBoundary: avoid using navigation API like notFound() in root layout\n // - HotReloader:\n // - hot-reload the app when the code changes\n // - render dev overlay\n // - catch runtime errors and display global-error when necessary\n if (false) {}\n const HotReloader = (__webpack_require__(/*! ../dev/hot-reloader/app/hot-reloader-app */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js\")[\"default\"]);\n content = /*#__PURE__*/ (0, _jsxruntime.jsx)(HotReloader, {\n assetPrefix: assetPrefix,\n globalError: globalError,\n children: content\n });\n } else {}\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(HistoryUpdater, {\n appRouterState: state\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(RuntimeStyles, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathParamsContext.Provider, {\n value: pathParams,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathnameContext.Provider, {\n value: pathname,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.SearchParamsContext.Provider, {\n value: searchParams,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.GlobalLayoutRouterContext.Provider, {\n value: globalLayoutRouterContext,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.AppRouterContext.Provider, {\n value: _approuterinstance.publicAppRouterInstance,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.LayoutRouterContext.Provider, {\n value: layoutRouterContext,\n children: content\n })\n })\n })\n })\n })\n })\n ]\n });\n}\nfunction AppRouter(param) {\n let { actionQueue, globalErrorState, assetPrefix, gracefullyDegrade } = param;\n (0, _navfailurehandler.useNavFailureHandler)();\n const router = /*#__PURE__*/ (0, _jsxruntime.jsx)(Router, {\n actionQueue: actionQueue,\n assetPrefix: assetPrefix,\n globalError: globalErrorState,\n gracefullyDegrade: gracefullyDegrade\n });\n if (gracefullyDegrade) {\n return router;\n } else {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, {\n // At the very top level, use the default GlobalError component as the final fallback.\n // When the app router itself fails, which means the framework itself fails, we show the default error.\n errorComponent: _globalerror.default,\n children: router\n });\n }\n}\nconst runtimeStyles = new Set();\nlet runtimeStyleChanged = new Set();\nglobalThis._N_E_STYLE_LOAD = function(href) {\n let len = runtimeStyles.size;\n runtimeStyles.add(href);\n if (runtimeStyles.size !== len) {\n runtimeStyleChanged.forEach((cb)=>cb());\n }\n // TODO figure out how to get a promise here\n // But maybe it's not necessary as react would block rendering until it's loaded\n return Promise.resolve();\n};\nfunction RuntimeStyles() {\n const [, forceUpdate] = _react.default.useState(0);\n const renderedStylesSize = runtimeStyles.size;\n (0, _react.useEffect)(()=>{\n const changed = ()=>forceUpdate((c)=>c + 1);\n runtimeStyleChanged.add(changed);\n if (renderedStylesSize !== runtimeStyles.size) {\n changed();\n }\n return ()=>{\n runtimeStyleChanged.delete(changed);\n };\n }, [\n renderedStylesSize,\n forceUpdate\n ]);\n const dplId = false ? 0 : '';\n return [\n ...runtimeStyles\n ].map((href, i)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"stylesheet\",\n href: \"\" + href + dplId,\n // @ts-ignore\n precedence: \"next\"\n }, i));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=app-router.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2FwcC1yb3V0ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBNklnQkEsb0JBQW9CO2VBQXBCQTs7SUE5RUFDLGlCQUFpQjtlQUFqQkE7O0lBb2ZoQixTQW1DQztlQW5DdUJDOztJQS9mUkMsYUFBYTtlQUFiQTs7Ozs7OzZFQTVDVDsyREFLQTtnREFFd0I7K0NBRUc7NkRBSzNCOzRDQUNpRDsyQ0FDMUI7a0ZBQ0M7bUNBQ1Q7eUNBQ007Z0RBQ087OENBQ0Y7NkNBQ0Q7Z0RBQ0c7NENBQ0o7eUNBQ0g7Z0RBQ007K0NBRUc7K0NBTTlCO3NDQUMyRDsyQ0FDcEI7bUNBQ2I7OEZBQ0c7QUFFcEMsTUFBTUMsZ0JBRUYsQ0FBQztBQUVFLFNBQVNELGNBQWNFLEdBQVE7SUFDcEMsT0FBT0EsSUFBSUMsTUFBTSxLQUFLQyxPQUFPQyxRQUFRLENBQUNGLE1BQU07QUFDOUM7QUFTTyxTQUFTTCxrQkFBa0JRLElBQVk7SUFDNUMsa0RBQWtEO0lBQ2xELElBQUlDLENBQUFBLEdBQUFBLE9BQUFBLEtBQUFBLEVBQU1ILE9BQU9JLFNBQVMsQ0FBQ0MsU0FBUyxHQUFHO1FBQ3JDLE9BQU87SUFDVDtJQUVBLElBQUlQO0lBQ0osSUFBSTtRQUNGQSxNQUFNLElBQUlRLElBQUlDLENBQUFBLEdBQUFBLGFBQUFBLFdBQUFBLEVBQVlMLE9BQU9GLE9BQU9DLFFBQVEsQ0FBQ0MsSUFBSTtJQUN2RCxFQUFFLE9BQU9NLEdBQUc7UUFDViwyRUFBMkU7UUFDM0Usa0RBQWtEO1FBQ2xELE1BQU0scUJBRUwsQ0FGSyxJQUFJQyxNQUNQLHNCQUFtQlAsT0FBSywrQ0FEckI7bUJBQUE7d0JBQUE7MEJBQUE7UUFFTjtJQUNGO0lBRUEsdUVBQXVFO0lBQ3ZFLElBQUlRLElBQW9CLEVBQW9CO1FBQzFDLE9BQU87SUFDVDtJQUVBLHFEQUFxRDtJQUNyRCxJQUFJZCxjQUFjRSxNQUFNO1FBQ3RCLE9BQU87SUFD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QUdQO0FBQ0Y7QUFFQSxNQUFNcUUsZ0JBQWdCLElBQUlDO0FBQzFCLElBQUlDLHNCQUFzQixJQUFJRDtBQUU5QkUsV0FBV0MsZUFBZSxHQUFHLFNBQVUxSSxJQUFZO0lBQ2pELElBQUkySSxNQUFNTCxjQUFjTSxJQUFJO0lBQzVCTixjQUFjTyxHQUFHLENBQUM3STtJQUNsQixJQUFJc0ksY0FBY00sSUFBSSxLQUFLRCxLQUFLO1FBQzlCSCxvQkFBb0JNLE9BQU8sQ0FBQyxDQUFDQyxLQUFPQTtJQUN0QztJQUNBLDRDQUE0QztJQUM1QyxnRkFBZ0Y7SUFDaEYsT0FBT0MsUUFBUUMsT0FBTztBQUN4QjtBQUVBLFNBQVN2QjtJQUNQLE1BQU0sR0FBR3dCLFlBQVksR0FBR0MsT0FBQUEsT0FBSyxDQUFDQyxRQUFRLENBQUM7SUFDdkMsTUFBTUMscUJBQXFCZixjQUFjTSxJQUFJO0lBQzdDN0csQ0FBQUEsR0FBQUEsT0FBQUEsU0FBQUEsRUFBVTtRQUNSLE1BQU11SCxVQUFVLElBQU1KLFlBQVksQ0FBQ0ssSUFBTUEsSUFBSTtRQUM3Q2Ysb0JBQW9CSyxHQUFHLENBQUNTO1FBQ3hCLElBQUlELHVCQUF1QmYsY0FBY00sSUFBSSxFQUFFO1lBQzdDVTtRQUNGO1FBQ0EsT0FBTztZQUNMZCxvQkFBb0JnQixNQUFNLENBQUNGO1FBQzdCO0lBQ0YsR0FBRztRQUFDRDtRQUFvQkg7S0FBWTtJQUVwQyxNQUFNTyxRQUFRakosTUFBOEIsR0FDdkMsQ0FBcUMsR0FDdEM7SUFDSixPQUFPO1dBQUk4SDtLQUFjLENBQUNxQixHQUFHLENBQUMsQ0FBQzNKLE1BQU00SixJQUFBQSxXQUFBQSxHQUNuQyxxQkFBQ0MsUUFBQUE7WUFFQ0MsS0FBSTtZQUNKOUosTUFBTyxLQUFFQSxPQUFPeUo7WUFDaEIsYUFBYTtZQUNiTSxZQUFXO1dBSk5IO0FBVVgiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgc3RhcnRUcmFuc2l0aW9uLFxuICB1c2VJbnNlcnRpb25FZmZlY3QsXG4gIHVzZURlZmVycmVkVmFsdWUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgQXBwUm91dGVyQ29udGV4dCxcbiAgTGF5b3V0Um91dGVyQ29udGV4dCxcbiAgR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgQUNUSU9OX1JFU1RPUkUgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBcHBSb3V0ZXJTdGF0ZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvY3JlYXRlLWhyZWYtZnJvbS11cmwnXG5pbXBvcnQge1xuICBTZWFyY2hQYXJhbXNDb250ZXh0LFxuICBQYXRobmFtZUNvbnRleHQsXG4gIFBhdGhQYXJhbXNDb250ZXh0LFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24sIHVzZUFjdGlvblF1ZXVlIH0gZnJvbSAnLi91c2UtYWN0aW9uLXF1ZXVlJ1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gJy4vZXJyb3ItYm91bmRhcnknXG5pbXBvcnQgRGVmYXVsdEdsb2JhbEVycm9yIGZyb20gJy4vYnVpbHRpbi9nbG9iYWwtZXJyb3InXG5pbXBvcnQgeyBpc0JvdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdCdcbmltcG9ydCB7IGFkZEJhc2VQYXRoIH0gZnJvbSAnLi4vYWRkLWJhc2UtcGF0aCdcbmltcG9ydCB7IEFwcFJvdXRlckFubm91bmNlciB9IGZyb20gJy4vYXBwLXJvdXRlci1hbm5vdW5jZXInXG5pbXBvcnQgeyBSZWRpcmVjdEJvdW5kYXJ5IH0gZnJvbSAnLi9yZWRpcmVjdC1ib3VuZGFyeSdcbmltcG9ydCB7IGZpbmRIZWFkSW5DYWNoZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZmluZC1oZWFkLWluLWNhY2hlJ1xuaW1wb3J0IHsgdW5yZXNvbHZlZFRoZW5hYmxlIH0gZnJvbSAnLi91bnJlc29sdmVkLXRoZW5hYmxlJ1xuaW1wb3J0IHsgcmVtb3ZlQmFzZVBhdGggfSBmcm9tICcuLi9yZW1vdmUtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgaGFzQmFzZVBhdGggfSBmcm9tICcuLi9oYXMtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgZ2V0U2VsZWN0ZWRQYXJhbXMgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL2NvbXB1dGUtY2hhbmdlZC1wYXRoJ1xuaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgdXNlTmF2RmFpbHVyZUhhbmRsZXIgfSBmcm9tICcuL25hdi1mYWlsdXJlLWhhbmRsZXInXG5pbXBvcnQge1xuICBkaXNwYXRjaFRyYXZlcnNlQWN0aW9uLFxuICBwdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZSxcbiAgdHlwZSBBcHBSb3V0ZXJBY3Rpb25RdWV1ZSxcbiAgdHlwZSBHbG9iYWxFcnJvclN0YXRlLFxufSBmcm9tICcuL2FwcC1yb3V0ZXItaW5zdGFuY2UnXG5pbXBvcnQgeyBnZXRSZWRpcmVjdFR5cGVGcm9tRXJyb3IsIGdldFVSTEZyb21SZWRpcmVjdEVycm9yIH0gZnJvbSAnLi9yZWRpcmVjdCdcbmltcG9ydCB7IGlzUmVkaXJlY3RFcnJvciwgUmVkaXJlY3RUeXBlIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcbmltcG9ydCB7IHBpbmdWaXNpYmxlTGlua3MgfSBmcm9tICcuL2xpbmtzJ1xuaW1wb3J0IEdyYWNlZnVsRGVncmFkZUJvdW5kYXJ5IGZyb20gJy4vZXJyb3JzL2dyYWNlZnVsLWRlZ3JhZGUtYm91bmRhcnknXG5cbmNvbnN0IGdsb2JhbE11dGFibGU6IHtcbiAgcGVuZGluZ01wYVBhdGg/OiBzdHJpbmdcbn0gPSB7fVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFeHRlcm5hbFVSTCh1cmw6IFVSTCkge1xuICByZXR1cm4gdXJsLm9yaWdpbiAhPT0gd2luZG93LmxvY2F0aW9uLm9yaWdpblxufVxuXG4vKipcbiAqIEdpdmVuIGEgbGluayBocmVmLCBjb25zdHJ1Y3RzIHRoZSBVUkwgdGhhdCBzaG91bGQgYmUgcHJlZmV0Y2hlZC4gUmV0dXJucyBudWxsXG4gKiBpbiBjYXNlcyB3aGVyZSBwcmVmZXRjaGluZyBzaG91bGQgYmUgZGlzYWJsZWQsIGxpa2UgZXh0ZXJuYWwgVVJMcywgb3JcbiAqIGR1cmluZyBkZXZlbG9wbWVudC5cbiAqIEBwYXJhbSBocmVmIFRoZSBocmVmIHBhc3NlZCB0byA8TGluaz4sIHJvdXRlci5wcmVmZXRjaCgpLCBvciBzaW1pbGFyXG4gKiBAcmV0dXJucyBBIFVSTCBvYmplY3QgdG8gcHJlZmV0Y2gsIG9yIG51bGwgaWYgcHJlZmV0Y2hpbmcgc2hvdWxkIGJlIGRpc2FibGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcmVmZXRjaFVSTChocmVmOiBzdHJpbmcpOiBVUkwgfCBudWxsIHtcbiAgLy8gRG9uJ3QgcHJlZmV0Y2ggZm9yIGJvdHMgYXMgdGhleSBkb24ndCBuYXZpZ2F0ZS5cbiAgaWYgKGlzQm90KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBsZXQgdXJsOiBVUkxcbiAgdHJ5IHtcbiAgICB1cmwgPSBuZXcgVVJMKGFkZEJhc2VQYXRoKGhyZWYpLCB3aW5kb3cubG9jYXRpb24uaHJlZilcbiAgfSBjYXRjaCAoXykge1xuICAgIC8vIFRPRE86IERvZXMgdGhpcyBuZWVkIHRvIHRocm93IG9yIGNhbiB3ZSBqdXN0IGNvbnNvbGUuZXJyb3IgaW5zdGVhZD8gRG9lc1xuICAgIC8vIGFueW9uZSByZWx5IG9uIHRoaXMgdGhyb3dpbmc/IChTZWVtcyB1bmxpa2VseS4pXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbm5vdCBwcmVmZXRjaCAnJHtocmVmfScgYmVjYXVzZSBpdCBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgVVJMLmBcbiAgICApXG4gIH1cblxuICAvLyBEb24ndCBwcmVmZXRjaCBkdXJpbmcgZGV2ZWxvcG1lbnQgKGltcHJvdmVzIGNvbXBpbGF0aW9uIHBlcmZvcm1hbmNlKVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gRXh0ZXJuYWwgdXJscyBjYW4ndCBiZSBwcmVmZXRjaGVkIGluIHRoZSBzYW1lIHdheS5cbiAgaWYgKGlzRXh0ZXJuYWxVUkwodXJsKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gdXJsXG59XG5cbmZ1bmN0aW9uIEhpc3RvcnlVcGRhdGVyKHtcbiAgYXBwUm91dGVyU3RhdGUsXG59OiB7XG4gIGFwcFJvdXRlclN0YXRlOiBBcHBSb3V0ZXJTdGF0ZVxufSkge1xuICB1c2VJbnNlcnRpb25FZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQVBQX05BVl9GQUlMX0hBTkRMSU5HKSB7XG4gICAgICAvLyBjbGVhciBwZW5kaW5nIFVSTCBhcyBuYXZpZ2F0aW9uIGlzIG5vIGxvbmdlclxuICAgICAgLy8gaW4gZmxpZ2h0XG4gICAgICB3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCB7IHRyZWUsIHB1c2hSZWYsIGNhbm9uaWNhbFVybCB9ID0gYXBwUm91dGVyU3RhdGVcbiAgICBjb25zdCBoaXN0b3J5U3RhdGUgPSB7XG4gICAgICAuLi4ocHVzaFJlZi5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSA/IHdpbmRvdy5oaXN0b3J5LnN0YXRlIDoge30pLFxuICAgICAgLy8gSWRlbnRpZmllciBpcyBzaG9ydGVuZWQgaW50ZW50aW9uYWxseS5cbiAgICAgIC8vIF9fTkEgaXMgdXNlZCB0byBpZGVudGlmeSBpZiB0aGUgaGlzdG9yeSBlbnRyeSBjYW4gYmUgaGFuZGxlZCBieSB0aGUgYXBwLXJvdXRlci5cbiAgICAgIC8vIF9fTiBpcyB1c2VkIHRvIGlkZW50aWZ5IGlmIHRoZSBoaXN0b3J5IGVudHJ5IGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBvbGQgcm91dGVyLlxuICAgICAgX19OQTogdHJ1ZSxcbiAgICAgIF9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUU6IHRyZWUsXG4gICAgfVxuICAgIGlmIChcbiAgICAgIHB1c2hSZWYucGVuZGluZ1B1c2ggJiZcbiAgICAgIC8vIFNraXAgcHVzaGluZyBhbiBhZGRpdGlvbmFsIGhpc3RvcnkgZW50cnkgaWYgdGhlIGNhbm9uaWNhbFVybCBpcyB0aGUgc2FtZSBhcyB0aGUgY3VycmVudCB1cmwuXG4gICAgICAvLyBUaGlzIG1pcnJvcnMgdGhlIGJyb3dzZXIgYmVoYXZpb3IgZm9yIG5vcm1hbCBuYXZpZ2F0aW9uLlxuICAgICAgY3JlYXRlSHJlZkZyb21VcmwobmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikpICE9PSBjYW5vbmljYWxVcmxcbiAgICApIHtcbiAgICAgIC8vIFRoaXMgaW50ZW50aW9uYWxseSBtdXRhdGVzIFJlYWN0IHN0YXRlLCBwdXNoUmVmIGlzIG92ZXJ3cml0dGVuIHRvIGVuc3VyZSBhZGRpdGlvbmFsIHB1c2gvcmVwbGFjZSBjYWxscyBkbyBub3QgdHJpZ2dlciBhbiBhZGRpdGlvbmFsIGhpc3RvcnkgZW50cnkuXG4gICAgICBwdXNoUmVmLnBlbmRpbmdQdXNoID0gZmFsc2VcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShoaXN0b3J5U3RhdGUsICcnLCBjYW5vbmljYWxVcmwpXG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShoaXN0b3J5U3RhdGUsICcnLCBjYW5vbmljYWxVcmwpXG4gICAgfVxuICB9LCBbYXBwUm91dGVyU3RhdGVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gVGhlIE5leHQtVXJsIGFuZCB0aGUgYmFzZSB0cmVlIG1heSBhZmZlY3QgdGhlIHJlc3VsdCBvZiBhIHByZWZldGNoXG4gICAgLy8gdGFzay4gUmUtcHJlZmV0Y2ggYWxsIHZpc2libGUgbGlua3Mgd2l0aCB0aGUgdXBkYXRlZCB2YWx1ZXMuIEluIG1vc3RcbiAgICAvLyBjYXNlcywgdGhpcyB3aWxsIG5vdCByZXN1bHQgaW4gYW55IG5ldyBuZXR3b3JrIHJlcXVlc3RzLCBvbmx5IGlmXG4gICAgLy8gdGhlIHByZWZldGNoIHJlc3VsdCBhY3R1YWxseSB2YXJpZXMgb24gb25lIG9mIHRoZXNlIGlucHV0cy5cbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFKSB7XG4gICAgICBwaW5nVmlzaWJsZUxpbmtzKGFwcFJvdXRlclN0YXRlLm5leHRVcmwsIGFwcFJvdXRlclN0YXRlLnRyZWUpXG4gICAgfVxuICB9LCBbYXBwUm91dGVyU3RhdGUubmV4dFVybCwgYXBwUm91dGVyU3RhdGUudHJlZV0pXG5cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVtcHR5Q2FjaGVOb2RlKCk6IENhY2hlTm9kZSB7XG4gIHJldHVybiB7XG4gICAgbGF6eURhdGE6IG51bGwsXG4gICAgcnNjOiBudWxsLFxuICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgIGhlYWQ6IG51bGwsXG4gICAgcHJlZmV0Y2hIZWFkOiBudWxsLFxuICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKCksXG4gICAgbG9hZGluZzogbnVsbCxcbiAgICBuYXZpZ2F0ZWRBdDogLTEsXG4gIH1cbn1cblxuZnVuY3Rpb24gY29weU5leHRKc0ludGVybmFsSGlzdG9yeVN0YXRlKGRhdGE6IGFueSkge1xuICBpZiAoZGF0YSA9PSBudWxsKSBkYXRhID0ge31cbiAgY29uc3QgY3VycmVudFN0YXRlID0gd2luZG93Lmhpc3Rvcnkuc3RhdGVcbiAgY29uc3QgX19OQSA9IGN1cnJlbnRTdGF0ZT8uX19OQVxuICBpZiAoX19OQSkge1xuICAgIGRhdGEuX19OQSA9IF9fTkFcbiAgfVxuICBjb25zdCBfX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFID1cbiAgICBjdXJyZW50U3RhdGU/Ll9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUVcbiAgaWYgKF9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUUpIHtcbiAgICBkYXRhLl9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUUgPSBfX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG5mdW5jdGlvbiBIZWFkKHtcbiAgaGVhZENhY2hlTm9kZSxcbn06IHtcbiAgaGVhZENhY2hlTm9kZTogQ2FjaGVOb2RlIHwgbnVsbFxufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIC8vIElmIHRoaXMgc2VnbWVudCBoYXMgYSBgcHJlZmV0Y2hIZWFkYCwgaXQncyB0aGUgc3RhdGljYWxseSBwcmVmZXRjaGVkIGRhdGEuXG4gIC8vIFdlIHNob3VsZCB1c2UgdGhhdCBvbiBpbml0aWFsIHJlbmRlciBpbnN0ZWFkIG9mIGBoZWFkYC4gVGhlbiB3ZSdsbCBzd2l0Y2hcbiAgLy8gdG8gYGhlYWRgIHdoZW4gdGhlIGR5bmFtaWMgcmVzcG9uc2Ugc3RyZWFtcyBpbi5cbiAgY29uc3QgaGVhZCA9IGhlYWRDYWNoZU5vZGUgIT09IG51bGwgPyBoZWFkQ2FjaGVOb2RlLmhlYWQgOiBudWxsXG4gIGNvbnN0IHByZWZldGNoSGVhZCA9XG4gICAgaGVhZENhY2hlTm9kZSAhPT0gbnVsbCA/IGhlYWRDYWNoZU5vZGUucHJlZmV0Y2hIZWFkIDogbnVsbFxuXG4gIC8vIElmIG5vIHByZWZldGNoIGRhdGEgaXMgYXZhaWxhYmxlLCB0aGVuIHdlIGdvIHN0cmFpZ2h0IHRvIHJlbmRlcmluZyBgaGVhZGAuXG4gIGNvbnN0IHJlc29sdmVkUHJlZmV0Y2hSc2MgPSBwcmVmZXRjaEhlYWQgIT09IG51bGwgPyBwcmVmZXRjaEhlYWQgOiBoZWFkXG5cbiAgLy8gV2UgdXNlIGB1c2VEZWZlcnJlZFZhbHVlYCB0byBoYW5kbGUgc3dpdGNoaW5nIGJldHdlZW4gdGhlIHByZWZldGNoZWQgYW5kXG4gIC8vIGZpbmFsIHZhbHVlcy4gVGhlIHNlY29uZCBhcmd1bWVudCBpcyByZXR1cm5lZCBvbiBpbml0aWFsIHJlbmRlciwgdGhlbiBpdFxuICAvLyByZS1yZW5kZXJzIHdpdGggdGhlIGZpcnN0IGFyZ3VtZW50LlxuICByZXR1cm4gdXNlRGVmZXJyZWRWYWx1ZShoZWFkLCByZXNvbHZlZFByZWZldGNoUnNjKVxufVxuXG4vKipcbiAqIFRoZSBnbG9iYWwgcm91dGVyIHRoYXQgd3JhcHMgdGhlIGFwcGxpY2F0aW9uIGNvbXBvbmVudHMuXG4gKi9cbmZ1bmN0aW9uIFJvdXRlcih7XG4gIGFjdGlvblF1ZXVlLFxuICBhc3NldFByZWZpeCxcbiAgZ2xvYmFsRXJyb3IsXG4gIGdyYWNlZnVsbHlEZWdyYWRlLFxufToge1xuICBhY3Rpb25RdWV1ZTogQXBwUm91dGVyQWN0aW9uUXVldWVcbiAgYXNzZXRQcmVmaXg6IHN0cmluZ1xuICBnbG9iYWxFcnJvcjogR2xvYmFsRXJyb3JTdGF0ZVxuICBncmFjZWZ1bGx5RGVncmFkZTogYm9vbGVhblxufSkge1xuICBjb25zdCBzdGF0ZSA9IHVzZUFjdGlvblF1ZXVlKGFjdGlvblF1ZXVlKVxuICBjb25zdCB7IGNhbm9uaWNhbFVybCB9ID0gc3RhdGVcbiAgLy8gQWRkIG1lbW9pemVkIHBhdGhuYW1lL3F1ZXJ5IGZvciB1c2VTZWFyY2hQYXJhbXMgYW5kIHVzZVBhdGhuYW1lLlxuICBjb25zdCB7IHNlYXJjaFBhcmFtcywgcGF0aG5hbWUgfSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoXG4gICAgICBjYW5vbmljYWxVcmwsXG4gICAgICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/ICdodHRwOi8vbicgOiB3aW5kb3cubG9jYXRpb24uaHJlZlxuICAgIClcblxuICAgIHJldHVybiB7XG4gICAgICAvLyBUaGlzIGlzIHR1cm5lZCBpbnRvIGEgcmVhZG9ubHkgY2xhc3MgaW4gYHVzZVNlYXJjaFBhcmFtc2BcbiAgICAgIHNlYXJjaFBhcmFtczogdXJsLnNlYXJjaFBhcmFtcyxcbiAgICAgIHBhdGhuYW1lOiBoYXNCYXNlUGF0aCh1cmwucGF0aG5hbWUpXG4gICAgICAgID8gcmVtb3ZlQmFzZVBhdGgodXJsLnBhdGhuYW1lKVxuICAgICAgICA6IHVybC5wYXRobmFtZSxcbiAgICB9XG4gIH0sIFtjYW5vbmljYWxVcmxdKVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgY29uc3QgeyBjYWNoZSwgcHJlZmV0Y2hDYWNoZSwgdHJlZSB9ID0gc3RhdGVcblxuICAgIC8vIFRoaXMgaG9vayBpcyBpbiBhIGNvbmRpdGlvbmFsIGJ1dCB0aGF0IGlzIG9rIGJlY2F1c2UgYHByb2Nlc3MuZW52Lk5PREVfRU5WYCBuZXZlciBjaGFuZ2VzXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIC8vIEFkZCBgd2luZG93Lm5kYCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLlxuICAgICAgLy8gVGhpcyBpcyBub3QgbWVhbnQgZm9yIHVzZSBpbiBhcHBsaWNhdGlvbnMgYXMgY29uY3VycmVudCByZW5kZXJpbmcgd2lsbCBhZmZlY3QgdGhlIGNhY2hlL3RyZWUvcm91dGVyLlxuICAgICAgLy8gQHRzLWlnbm9yZSB0aGlzIGlzIGZvciBkZWJ1Z2dpbmdcbiAgICAgIHdpbmRvdy5uZCA9IHtcbiAgICAgICAgcm91dGVyOiBwdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZSxcbiAgICAgICAgY2FjaGUsXG4gICAgICAgIHByZWZldGNoQ2FjaGUsXG4gICAgICAgIHRyZWUsXG4gICAgICB9XG4gICAgfSwgW2NhY2hlLCBwcmVmZXRjaENhY2hlLCB0cmVlXSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gSWYgdGhlIGFwcCBpcyByZXN0b3JlZCBmcm9tIGJmY2FjaGUsIGl0J3MgcG9zc2libGUgdGhhdFxuICAgIC8vIHB1c2hSZWYubXBhTmF2aWdhdGlvbiBpcyB0cnVlLCB3aGljaCB3b3VsZCBtZWFuIHRoYXQgYW55IHJlLXJlbmRlciBvZiB0aGlzIGNvbXBvbmVudFxuICAgIC8vIHdvdWxkIHRyaWdnZXIgdGhlIG1wYSBuYXZpZ2F0aW9uIGxvZ2ljIGFnYWluIGZyb20gdGhlIGxpbmVzIGJlbG93LlxuICAgIC8vIFRoaXMgd2lsbCByZXN0b3JlIHRoZSByb3V0ZXIgdG8gdGhlIGluaXRpYWwgc3RhdGUgaW4gdGhlIGV2ZW50IHRoYXQgdGhlIGFwcCBpcyByZXN0b3JlZCBmcm9tIGJmY2FjaGUuXG4gICAgZnVuY3Rpb24gaGFuZGxlUGFnZVNob3coZXZlbnQ6IFBhZ2VUcmFuc2l0aW9uRXZlbnQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIWV2ZW50LnBlcnNpc3RlZCB8fFxuICAgICAgICAhd2luZG93Lmhpc3Rvcnkuc3RhdGU/Ll9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUVcbiAgICAgICkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gQ2xlYXIgdGhlIHBlbmRpbmdNcGFQYXRoIHZhbHVlIHNvIHRoYXQgYSBzdWJzZXF1ZW50IE1QQSBuYXZpZ2F0aW9uIHRvIHRoZSBzYW1lIFVSTCBjYW4gYmUgdHJpZ2dlcmVkLlxuICAgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBpZiB0aGUgYnJvd3NlciByZXN0b3JlZCBmcm9tIGJmY2FjaGUsIHRoZSBwZW5kaW5nTXBhUGF0aCB3b3VsZCBzdGlsbCBiZSBzZXQgdG8gdGhlIHZhbHVlXG4gICAgICAvLyBvZiB0aGUgbGFzdCBNUEEgbmF2aWdhdGlvbi5cbiAgICAgIGdsb2JhbE11dGFibGUucGVuZGluZ01wYVBhdGggPSB1bmRlZmluZWRcblxuICAgICAgZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24oe1xuICAgICAgICB0eXBlOiBBQ1RJT05fUkVTVE9SRSxcbiAgICAgICAgdXJsOiBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxcbiAgICAgICAgdHJlZTogd2luZG93Lmhpc3Rvcnkuc3RhdGUuX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgaGFuZGxlUGFnZVNob3cpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgaGFuZGxlUGFnZVNob3cpXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIEVuc3VyZSB0aGF0IGFueSByZWRpcmVjdCBlcnJvcnMgdGhhdCBidWJibGUgdXAgb3V0c2lkZSBvZiB0aGUgUmVkaXJlY3RCb3VuZGFyeVxuICAgIC8vIGFyZSBjYXVnaHQgYW5kIGhhbmRsZWQgYnkgdGhlIHJvdXRlci5cbiAgICBmdW5jdGlvbiBoYW5kbGVVbmhhbmRsZWRSZWRpcmVjdChcbiAgICAgIGV2ZW50OiBFcnJvckV2ZW50IHwgUHJvbWlzZVJlamVjdGlvbkV2ZW50XG4gICAgKSB7XG4gICAgICBjb25zdCBlcnJvciA9ICdyZWFzb24nIGluIGV2ZW50ID8gZXZlbnQucmVhc29uIDogZXZlbnQuZXJyb3JcbiAgICAgIGlmIChpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgY29uc3QgdXJsID0gZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IoZXJyb3IpXG4gICAgICAgIGNvbnN0IHJlZGlyZWN0VHlwZSA9IGdldFJlZGlyZWN0VHlwZUZyb21FcnJvcihlcnJvcilcbiAgICAgICAgLy8gVE9ETzogVGhpcyBzaG91bGQgYWNjZXNzIHRoZSByb3V0ZXIgbWV0aG9kcyBkaXJlY3RseSwgcmF0aGVyIHRoYW5cbiAgICAgICAgLy8gZ28gdGhyb3VnaCB0aGUgcHVibGljIGludGVyZmFjZS5cbiAgICAgICAgaWYgKHJlZGlyZWN0VHlwZSA9PT0gUmVkaXJlY3RUeXBlLnB1c2gpIHtcbiAgICAgICAgICBwdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZS5wdXNoKHVybCwge30pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHVibGljQXBwUm91dGVySW5zdGFuY2UucmVwbGFjZSh1cmwsIHt9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGhhbmRsZVVuaGFuZGxlZFJlZGlyZWN0KVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBoYW5kbGVVbmhhbmRsZWRSZWRpcmVjdClcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZXJyb3InLCBoYW5kbGVVbmhhbmRsZWRSZWRpcmVjdClcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBoYW5kbGVVbmhhbmRsZWRSZWRpcmVjdClcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8vIFdoZW4gbXBhTmF2aWdhdGlvbiBmbGFnIGlzIHNldCBkbyBhIGhhcmQgbmF2aWdhdGlvbiB0byB0aGUgbmV3IHVybC5cbiAgLy8gSW5maW5pdGVseSBzdXNwZW5kIGJlY2F1c2Ugd2UgZG9uJ3QgYWN0dWFsbHkgd2FudCB0byByZXJlbmRlciBhbnkgY2hpbGRcbiAgLy8gY29tcG9uZW50cyB3aXRoIHRoZSBuZXcgVVJMIGFuZCBhbnkgZW50YW5nbGVkIHN0YXRlIHVwZGF0ZXMgc2hvdWxkbid0XG4gIC8vIGNvbW1pdCBlaXRoZXIgKGVnOiB1c2VUcmFuc2l0aW9uIGlzUGVuZGluZyBzaG91bGQgc3RheSB0cnVlIHVudGlsIHRoZSBwYWdlXG4gIC8vIHVubG9hZHMpLlxuICAvL1xuICAvLyBUaGlzIGlzIGEgc2lkZSBlZmZlY3QgaW4gcmVuZGVyLiBEb24ndCB0cnkgdGhpcyBhdCBob21lLCBraWRzLiBJdCdzXG4gIC8vIHByb2JhYmx5IHNhZmUgYmVjYXVzZSB3ZSBrbm93IHRoaXMgaXMgYSBzaW5nbGV0b24gY29tcG9uZW50IGFuZCBpdCdzIG5ldmVyXG4gIC8vIGluIDxPZmZzY3JlZW4+LiBBdCBsZWFzdCBJIGhvcGUgc28uIChJdCB3aWxsIHJ1biB0d2ljZSBpbiBkZXYgc3RyaWN0IG1vZGUsXG4gIC8vIGJ1dCB0aGF0J3MuLi4gZmluZT8pXG4gIGNvbnN0IHsgcHVzaFJlZiB9ID0gc3RhdGVcbiAgaWYgKHB1c2hSZWYubXBhTmF2aWdhdGlvbikge1xuICAgIC8vIGlmIHRoZXJlJ3MgYSByZS1yZW5kZXIsIHdlIGRvbid0IHdhbnQgdG8gdHJpZ2dlciBhbm90aGVyIHJlZGlyZWN0IGlmIG9uZSBpcyBhbHJlYWR5IGluIGZsaWdodCB0byB0aGUgc2FtZSBVUkxcbiAgICBpZiAoZ2xvYmFsTXV0YWJsZS5wZW5kaW5nTXBhUGF0aCAhPT0gY2Fub25pY2FsVXJsKSB7XG4gICAgICBjb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvblxuICAgICAgaWYgKHB1c2hSZWYucGVuZGluZ1B1c2gpIHtcbiAgICAgICAgbG9jYXRpb24uYXNzaWduKGNhbm9uaWNhbFVybClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvY2F0aW9uLnJlcGxhY2UoY2Fub25pY2FsVXJsKVxuICAgICAgfVxuXG4gICAgICBnbG9iYWxNdXRhYmxlLnBlbmRpbmdNcGFQYXRoID0gY2Fub25pY2FsVXJsXG4gICAgfVxuICAgIC8vIFRPRE8tQVBQOiBTaG91bGQgd2UgbGlzdGVuIHRvIG5hdmlnYXRlZXJyb3IgaGVyZSB0byBjYXRjaCBmYWlsZWRcbiAgICAvLyBuYXZpZ2F0aW9ucyBzb21laG93PyBBbmQgc2hvdWxkIHdlIGNhbGwgd2luZG93LnN0b3AoKSBpZiBhIFNQQSBuYXZpZ2F0aW9uXG4gICAgLy8gc2hvdWxkIGludGVycnVwdCBhbiBNUEEgb25lP1xuICAgIC8vIE5PVEU6IFRoaXMgaXMgaW50ZW50aW9uYWxseSB1c2luZyBgdGhyb3dgIGluc3RlYWQgb2YgYHVzZWAgYmVjYXVzZSB3ZSdyZVxuICAgIC8vIGluc2lkZSBhbiBleHRlcm5hbGx5IG11dGFibGUgY29uZGl0aW9uIChwdXNoUmVmLm1wYU5hdmlnYXRpb24pLCB3aGljaFxuICAgIC8vIHZpb2xhdGVzIHRoZSBydWxlcyBvZiBob29rcy5cbiAgICB0aHJvdyB1bnJlc29sdmVkVGhlbmFibGVcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWxQdXNoU3RhdGUgPSB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUuYmluZCh3aW5kb3cuaGlzdG9yeSlcbiAgICBjb25zdCBvcmlnaW5hbFJlcGxhY2VTdGF0ZSA9IHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZS5iaW5kKFxuICAgICAgd2luZG93Lmhpc3RvcnlcbiAgICApXG5cbiAgICAvLyBFbnN1cmUgdGhlIGNhbm9uaWNhbCBVUkwgaW4gdGhlIE5leHQuanMgUm91dGVyIGlzIHVwZGF0ZWQgd2hlbiB0aGUgVVJMIGlzIGNoYW5nZWQgc28gdGhhdCBgdXNlUGF0aG5hbWVgIGFuZCBgdXNlU2VhcmNoUGFyYW1zYCBob2xkIHRoZSBwdXNoZWQgdmFsdWVzLlxuICAgIGNvbnN0IGFwcGx5VXJsRnJvbUhpc3RvcnlQdXNoUmVwbGFjZSA9IChcbiAgICAgIHVybDogc3RyaW5nIHwgVVJMIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmXG4gICAgICBjb25zdCB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSB8IHVuZGVmaW5lZCA9XG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LnN0YXRlPy5fX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFXG5cbiAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICAgIGRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKHtcbiAgICAgICAgICB0eXBlOiBBQ1RJT05fUkVTVE9SRSxcbiAgICAgICAgICB1cmw6IG5ldyBVUkwodXJsID8/IGhyZWYsIGhyZWYpLFxuICAgICAgICAgIHRyZWUsXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhdGNoIHB1c2hTdGF0ZSB0byBlbnN1cmUgZXh0ZXJuYWwgY2hhbmdlcyB0byB0aGUgaGlzdG9yeSBhcmUgcmVmbGVjdGVkIGluIHRoZSBOZXh0LmpzIFJvdXRlci5cbiAgICAgKiBFbnN1cmVzIE5leHQuanMgaW50ZXJuYWwgaGlzdG9yeSBzdGF0ZSBpcyBjb3BpZWQgdG8gdGhlIG5ldyBoaXN0b3J5IGVudHJ5LlxuICAgICAqIEVuc3VyZXMgdXNlUGF0aG5hbWUgYW5kIHVzZVNlYXJjaFBhcmFtcyBob2xkIHRoZSBuZXdseSBwcm92aWRlZCB1cmwuXG4gICAgICovXG4gICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlID0gZnVuY3Rpb24gcHVzaFN0YXRlKFxuICAgICAgZGF0YTogYW55LFxuICAgICAgX3VudXNlZDogc3RyaW5nLFxuICAgICAgdXJsPzogc3RyaW5nIHwgVVJMIHwgbnVsbFxuICAgICk6IHZvaWQge1xuICAgICAgLy8gQXZvaWQgYSBsb29wIHdoZW4gTmV4dC5qcyBpbnRlcm5hbHMgdHJpZ2dlciBwdXNoU3RhdGUvcmVwbGFjZVN0YXRlXG4gICAgICBpZiAoZGF0YT8uX19OQSB8fCBkYXRhPy5fTikge1xuICAgICAgICByZXR1cm4gb3JpZ2luYWxQdXNoU3RhdGUoZGF0YSwgX3VudXNlZCwgdXJsKVxuICAgICAgfVxuXG4gICAgICBkYXRhID0gY29weU5leHRKc0ludGVybmFsSGlzdG9yeVN0YXRlKGRhdGEpXG5cbiAgICAgIGlmICh1cmwpIHtcbiAgICAgICAgYXBwbHlVcmxGcm9tSGlzdG9yeVB1c2hSZXBsYWNlKHVybClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9yaWdpbmFsUHVzaFN0YXRlKGRhdGEsIF91bnVzZWQsIHVybClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXRjaCByZXBsYWNlU3RhdGUgdG8gZW5zdXJlIGV4dGVybmFsIGNoYW5nZXMgdG8gdGhlIGhpc3RvcnkgYXJlIHJlZmxlY3RlZCBpbiB0aGUgTmV4dC5qcyBSb3V0ZXIuXG4gICAgICogRW5zdXJlcyBOZXh0LmpzIGludGVybmFsIGhpc3Rvcnkgc3RhdGUgaXMgY29waWVkIHRvIHRoZSBuZXcgaGlzdG9yeSBlbnRyeS5cbiAgICAgKiBFbnN1cmVzIHVzZVBhdGhuYW1lIGFuZCB1c2VTZWFyY2hQYXJhbXMgaG9sZCB0aGUgbmV3bHkgcHJvdmlkZWQgdXJsLlxuICAgICAqL1xuICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSA9IGZ1bmN0aW9uIHJlcGxhY2VTdGF0ZShcbiAgICAgIGRhdGE6IGFueSxcbiAgICAgIF91bnVzZWQ6IHN0cmluZyxcbiAgICAgIHVybD86IHN0cmluZyB8IFVSTCB8IG51bGxcbiAgICApOiB2b2lkIHtcbiAgICAgIC8vIEF2b2lkIGEgbG9vcCB3aGVuIE5leHQuanMgaW50ZXJuYWxzIHRyaWdnZXIgcHVzaFN0YXRlL3JlcGxhY2VTdGF0ZVxuICAgICAgaWYgKGRhdGE/Ll9fTkEgfHwgZGF0YT8uX04pIHtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVwbGFjZVN0YXRlKGRhdGEsIF91bnVzZWQsIHVybClcbiAgICAgIH1cbiAgICAgIGRhdGEgPSBjb3B5TmV4dEpzSW50ZXJuYWxIaXN0b3J5U3RhdGUoZGF0YSlcblxuICAgICAgaWYgKHVybCkge1xuICAgICAgICBhcHBseVVybEZyb21IaXN0b3J5UHVzaFJlcGxhY2UodXJsKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9yaWdpbmFsUmVwbGFjZVN0YXRlKGRhdGEsIF91bnVzZWQsIHVybClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgcG9wc3RhdGUgZXZlbnQsIHRoaXMgaXMgdXNlZCB0byBoYW5kbGUgYmFjay9mb3J3YXJkIGluIHRoZSBicm93c2VyLlxuICAgICAqIEJ5IGRlZmF1bHQgZGlzcGF0Y2hlcyBBQ1RJT05fUkVTVE9SRSwgaG93ZXZlciBpZiB0aGUgaGlzdG9yeSBlbnRyeSB3YXMgbm90IHB1c2hlZC9yZXBsYWNlZCBieSBhcHAtcm91dGVyIGl0IHdpbGwgcmVsb2FkIHRoZSBwYWdlLlxuICAgICAqIFRoYXQgY2FzZSBjYW4gaGFwcGVuIHdoZW4gdGhlIG9sZCByb3V0ZXIgaW5qZWN0ZWQgdGhlIGhpc3RvcnkgZW50cnkuXG4gICAgICovXG4gICAgY29uc3Qgb25Qb3BTdGF0ZSA9IChldmVudDogUG9wU3RhdGVFdmVudCkgPT4ge1xuICAgICAgaWYgKCFldmVudC5zdGF0ZSkge1xuICAgICAgICAvLyBUT0RPLUFQUDogdGhpcyBjYXNlIG9ubHkgaGFwcGVucyB3aGVuIHB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUgd2FzIGNhbGxlZCBvdXRzaWRlIG9mIE5leHQuanMuIEl0IHNob3VsZCBwcm9iYWJseSByZWxvYWQgdGhlIHBhZ2UgaW4gdGhpcyBjYXNlLlxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gVGhpcyBjYXNlIGhhcHBlbnMgd2hlbiB0aGUgaGlzdG9yeSBlbnRyeSB3YXMgcHVzaGVkIGJ5IHRoZSBgcGFnZXNgIHJvdXRlci5cbiAgICAgIGlmICghZXZlbnQuc3RhdGUuX19OQSkge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIFRPRE8tQVBQOiBJZGVhbGx5IHRoZSBiYWNrIGJ1dHRvbiBzaG91bGQgbm90IHVzZSBzdGFydFRyYW5zaXRpb24gYXMgaXQgc2hvdWxkIGFwcGx5IHRoZSB1cGRhdGVzIHN5bmNocm9ub3VzbHlcbiAgICAgIC8vIFdpdGhvdXQgc3RhcnRUcmFuc2l0aW9uIHdvcmtzIGlmIHRoZSBjYWNoZSBpcyB0aGVyZSBmb3IgdGhpcyBwYXRoXG4gICAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgICBkaXNwYXRjaFRyYXZlcnNlQWN0aW9uKFxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgICAgICAgIGV2ZW50LnN0YXRlLl9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUVcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBSZWdpc3RlciBwb3BzdGF0ZSBldmVudCB0byBjYWxsIG9uUG9wc3RhdGUuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywgb25Qb3BTdGF0ZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlID0gb3JpZ2luYWxQdXNoU3RhdGVcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSA9IG9yaWdpbmFsUmVwbGFjZVN0YXRlXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCBvblBvcFN0YXRlKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgeyBjYWNoZSwgdHJlZSwgbmV4dFVybCwgZm9jdXNBbmRTY3JvbGxSZWYgfSA9IHN0YXRlXG5cbiAgY29uc3QgbWF0Y2hpbmdIZWFkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGZpbmRIZWFkSW5DYWNoZShjYWNoZSwgdHJlZVsxXSlcbiAgfSwgW2NhY2hlLCB0cmVlXSlcblxuICAvLyBBZGQgbWVtb2l6ZWQgcGF0aFBhcmFtcyBmb3IgdXNlUGFyYW1zLlxuICBjb25zdCBwYXRoUGFyYW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGdldFNlbGVjdGVkUGFyYW1zKHRyZWUpXG4gIH0sIFt0cmVlXSlcblxuICBjb25zdCBsYXlvdXRSb3V0ZXJDb250ZXh0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhcmVudFRyZWU6IHRyZWUsXG4gICAgICBwYXJlbnRDYWNoZU5vZGU6IGNhY2hlLFxuICAgICAgcGFyZW50U2VnbWVudFBhdGg6IG51bGwsXG4gICAgICAvLyBSb290IG5vZGUgYWx3YXlzIGhhcyBgdXJsYFxuICAgICAgLy8gUHJvdmlkZWQgaW4gQXBwVHJlZUNvbnRleHQgdG8gZW5zdXJlIGl0IGNhbiBiZSBvdmVyd3JpdHRlbiBpbiBsYXlvdXQtcm91dGVyXG4gICAgICB1cmw6IGNhbm9uaWNhbFVybCxcbiAgICB9XG4gIH0sIFt0cmVlLCBjYWNoZSwgY2Fub25pY2FsVXJsXSlcblxuICBjb25zdCBnbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRyZWUsXG4gICAgICBmb2N1c0FuZFNjcm9sbFJlZixcbiAgICAgIG5leHRVcmwsXG4gICAgfVxuICB9LCBbdHJlZSwgZm9jdXNBbmRTY3JvbGxSZWYsIG5leHRVcmxdKVxuXG4gIGxldCBoZWFkXG4gIGlmIChtYXRjaGluZ0hlYWQgIT09IG51bGwpIHtcbiAgICAvLyBUaGUgaGVhZCBpcyB3cmFwcGVkIGluIGFuIGV4dHJhIGNvbXBvbmVudCBzbyB3ZSBjYW4gdXNlXG4gICAgLy8gYHVzZURlZmVycmVkVmFsdWVgIHRvIHN3YXAgYmV0d2VlbiB0aGUgcHJlZmV0Y2hlZCBhbmQgZmluYWwgdmVyc2lvbnMgb2ZcbiAgICAvLyB0aGUgaGVhZC4gKFRoaXMgaXMgd2hhdCBMYXlvdXRSb3V0ZXIgZG9lcyBmb3Igc2VnbWVudCBkYXRhLCB0b28uKVxuICAgIC8vXG4gICAgLy8gVGhlIGBrZXlgIGlzIHVzZWQgdG8gcmVtb3VudCB0aGUgY29tcG9uZW50IHdoZW5ldmVyIHRoZSBoZWFkIG1vdmVzIHRvXG4gICAgLy8gYSBkaWZmZXJlbnQgc2VnbWVudC5cbiAgICBjb25zdCBbaGVhZENhY2hlTm9kZSwgaGVhZEtleV0gPSBtYXRjaGluZ0hlYWRcbiAgICBoZWFkID0gPEhlYWQga2V5PXtoZWFkS2V5fSBoZWFkQ2FjaGVOb2RlPXtoZWFkQ2FjaGVOb2RlfSAvPlxuICB9IGVsc2Uge1xuICAgIGhlYWQgPSBudWxsXG4gIH1cblxuICBsZXQgY29udGVudCA9IChcbiAgICA8UmVkaXJlY3RCb3VuZGFyeT5cbiAgICAgIHtoZWFkfVxuICAgICAge2NhY2hlLnJzY31cbiAgICAgIDxBcHBSb3V0ZXJBbm5vdW5jZXIgdHJlZT17dHJlZX0gLz5cbiAgICA8L1JlZGlyZWN0Qm91bmRhcnk+XG4gIClcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIC8vIEluIGRldmVsb3BtZW50LCB3ZSBhcHBseSBmZXcgZXJyb3IgYm91bmRhcmllcyBhbmQgaG90LXJlbG9hZGVyOlxuICAgIC8vIC0gRGV2Um9vdEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5OiBhdm9pZCB1c2luZyBuYXZpZ2F0aW9uIEFQSSBsaWtlIG5vdEZvdW5kKCkgaW4gcm9vdCBsYXlvdXRcbiAgICAvLyAtIEhvdFJlbG9hZGVyOlxuICAgIC8vICAtIGhvdC1yZWxvYWQgdGhlIGFwcCB3aGVuIHRoZSBjb2RlIGNoYW5nZXNcbiAgICAvLyAgLSByZW5kZXIgZGV2IG92ZXJsYXlcbiAgICAvLyAgLSBjYXRjaCBydW50aW1lIGVycm9ycyBhbmQgZGlzcGxheSBnbG9iYWwtZXJyb3Igd2hlbiBuZWNlc3NhcnlcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IHsgRGV2Um9vdEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5IH0gPVxuICAgICAgICByZXF1aXJlKCcuL2Rldi1yb290LWh0dHAtYWNjZXNzLWZhbGxiYWNrLWJvdW5kYXJ5JykgYXMgdHlwZW9mIGltcG9ydCgnLi9kZXYtcm9vdC1odHRwLWFjY2Vzcy1mYWxsYmFjay1ib3VuZGFyeScpXG4gICAgICBjb250ZW50ID0gKFxuICAgICAgICA8RGV2Um9vdEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5PlxuICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICA8L0RldlJvb3RIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeT5cbiAgICAgIClcbiAgICB9XG4gICAgY29uc3QgSG90UmVsb2FkZXI6IHR5cGVvZiBpbXBvcnQoJy4uL2Rldi9ob3QtcmVsb2FkZXIvYXBwL2hvdC1yZWxvYWRlci1hcHAnKS5kZWZhdWx0ID1cbiAgICAgIChcbiAgICAgICAgcmVxdWlyZSgnLi4vZGV2L2hvdC1yZWxvYWRlci9hcHAvaG90LXJlbG9hZGVyLWFwcCcpIGFzIHR5cGVvZiBpbXBvcnQoJy4uL2Rldi9ob3QtcmVsb2FkZXIvYXBwL2hvdC1yZWxvYWRlci1hcHAnKVxuICAgICAgKS5kZWZhdWx0XG5cbiAgICBjb250ZW50ID0gKFxuICAgICAgPEhvdFJlbG9hZGVyIGFzc2V0UHJlZml4PXthc3NldFByZWZpeH0gZ2xvYmFsRXJyb3I9e2dsb2JhbEVycm9yfT5cbiAgICAgICAge2NvbnRlbnR9XG4gICAgICA8L0hvdFJlbG9hZGVyPlxuICAgIClcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBncmFjZWZ1bGx5IGRlZ3JhZGluZyBpcyBhcHBsaWVkIGluIHByb2R1Y3Rpb24sXG4gICAgLy8gbGVhdmUgdGhlIGFwcCBhcyBpdCBpcyByYXRoZXIgdGhhbiBjYXVnaHQgYnkgR2xvYmFsRXJyb3IgYm91bmRhcnkuXG4gICAgaWYgKGdyYWNlZnVsbHlEZWdyYWRlKSB7XG4gICAgICBjb250ZW50ID0gPEdyYWNlZnVsRGVncmFkZUJvdW5kYXJ5Pntjb250ZW50fTwvR3JhY2VmdWxEZWdyYWRlQm91bmRhcnk+XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRlbnQgPSAoXG4gICAgICAgIDxFcnJvckJvdW5kYXJ5XG4gICAgICAgICAgZXJyb3JDb21wb25lbnQ9e2dsb2JhbEVycm9yWzBdfVxuICAgICAgICAgIGVycm9yU3R5bGVzPXtnbG9iYWxFcnJvclsxXX1cbiAgICAgICAgPlxuICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEhpc3RvcnlVcGRhdGVyIGFwcFJvdXRlclN0YXRlPXtzdGF0ZX0gLz5cbiAgICAgIDxSdW50aW1lU3R5bGVzIC8+XG4gICAgICA8UGF0aFBhcmFtc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BhdGhQYXJhbXN9PlxuICAgICAgICA8UGF0aG5hbWVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwYXRobmFtZX0+XG4gICAgICAgICAgPFNlYXJjaFBhcmFtc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3NlYXJjaFBhcmFtc30+XG4gICAgICAgICAgICA8R2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgICAgICB2YWx1ZT17Z2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgey8qIFRPRE86IFdlIHNob3VsZCBiZSBhYmxlIHRvIHJlbW92ZSB0aGlzIGNvbnRleHQuIHVzZVJvdXRlclxuICAgICAgICAgICAgICAgICAgc2hvdWxkIGltcG9ydCBmcm9tIGFwcC1yb3V0ZXItaW5zdGFuY2UgaW5zdGVhZC4gSXQncyBvbmx5XG4gICAgICAgICAgICAgICAgICBuZWNlc3NhcnkgYmVjYXVzZSB1c2VSb3V0ZXIgaXMgc2hhcmVkIGJldHdlZW4gUGFnZXMgYW5kXG4gICAgICAgICAgICAgICAgICBBcHAgUm91dGVyLiBXZSBzaG91bGQgZm9yayB0aGF0IG1vZHVsZSwgdGhlbiByZW1vdmUgdGhpc1xuICAgICAgICAgICAgICAgICAgY29udGV4dCBwcm92aWRlci4gKi99XG4gICAgICAgICAgICAgIDxBcHBSb3V0ZXJDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZX0+XG4gICAgICAgICAgICAgICAgPExheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2xheW91dFJvdXRlckNvbnRleHR9PlxuICAgICAgICAgICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgICAgICAgICAgPC9MYXlvdXRSb3V0ZXJDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L0FwcFJvdXRlckNvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgICA8L0dsb2JhbExheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgPC9TZWFyY2hQYXJhbXNDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICA8L1BhdGhuYW1lQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgIDwvUGF0aFBhcmFtc0NvbnRleHQuUHJvdmlkZXI+XG4gICAgPC8+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQXBwUm91dGVyKHtcbiAgYWN0aW9uUXVldWUsXG4gIGdsb2JhbEVycm9yU3RhdGUsXG4gIGFzc2V0UHJlZml4LFxuICBncmFjZWZ1bGx5RGVncmFkZSxcbn06IHtcbiAgYWN0aW9uUXVldWU6IEFwcFJvdXRlckFjdGlvblF1ZXVlXG4gIGdsb2JhbEVycm9yU3RhdGU6IEdsb2JhbEVycm9yU3RhdGVcbiAgYXNzZXRQcmVmaXg6IHN0cmluZ1xuICBncmFjZWZ1bGx5RGVncmFkZTogYm9vbGVhblxufSkge1xuICB1c2VOYXZGYWlsdXJlSGFuZGxlcigpXG5cbiAgY29uc3Qgcm91dGVyID0gKFxuICAgIDxSb3V0ZXJcbiAgICAgIGFjdGlvblF1ZXVlPXthY3Rpb25RdWV1ZX1cbiAgICAgIGFzc2V0UHJlZml4PXthc3NldFByZWZpeH1cbiAgICAgIGdsb2JhbEVycm9yPXtnbG9iYWxFcnJvclN0YXRlfVxuICAgICAgZ3JhY2VmdWxseURlZ3JhZGU9e2dyYWNlZnVsbHlEZWdyYWRlfVxuICAgIC8+XG4gIClcblxuICBpZiAoZ3JhY2VmdWxseURlZ3JhZGUpIHtcbiAgICByZXR1cm4gcm91dGVyXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxFcnJvckJvdW5kYXJ5XG4gICAgICAgIC8vIEF0IHRoZSB2ZXJ5IHRvcCBsZXZlbCwgdXNlIHRoZSBkZWZhdWx0IEdsb2JhbEVycm9yIGNvbXBvbmVudCBhcyB0aGUgZmluYWwgZmFsbGJhY2suXG4gICAgICAgIC8vIFdoZW4gdGhlIGFwcCByb3V0ZXIgaXRzZWxmIGZhaWxzLCB3aGljaCBtZWFucyB0aGUgZnJhbWV3b3JrIGl0c2VsZiBmYWlscywgd2Ugc2hvdyB0aGUgZGVmYXVsdCBlcnJvci5cbiAgICAgICAgZXJyb3JDb21wb25lbnQ9e0RlZmF1bHRHbG9iYWxFcnJvcn1cbiAgICAgID5cbiAgICAgICAge3JvdXRlcn1cbiAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICApXG4gIH1cbn1cblxuY29uc3QgcnVudGltZVN0eWxlcyA9IG5ldyBTZXQ8c3RyaW5nPigpXG5sZXQgcnVudGltZVN0eWxlQ2hhbmdlZCA9IG5ldyBTZXQ8KCkgPT4gdm9pZD4oKVxuXG5nbG9iYWxUaGlzLl9OX0VfU1RZTEVfTE9BRCA9IGZ1bmN0aW9uIChocmVmOiBzdHJpbmcpIHtcbiAgbGV0IGxlbiA9IHJ1bnRpbWVTdHlsZXMuc2l6ZVxuICBydW50aW1lU3R5bGVzLmFkZChocmVmKVxuICBpZiAocnVudGltZVN0eWxlcy5zaXplICE9PSBsZW4pIHtcbiAgICBydW50aW1lU3R5bGVDaGFuZ2VkLmZvckVhY2goKGNiKSA9PiBjYigpKVxuICB9XG4gIC8vIFRPRE8gZmlndXJlIG91dCBob3cgdG8gZ2V0IGEgcHJvbWlzZSBoZXJlXG4gIC8vIEJ1dCBtYXliZSBpdCdzIG5vdCBuZWNlc3NhcnkgYXMgcmVhY3Qgd291bGQgYmxvY2sgcmVuZGVyaW5nIHVudGlsIGl0J3MgbG9hZGVkXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxufVxuXG5mdW5jdGlvbiBSdW50aW1lU3R5bGVzKCkge1xuICBjb25zdCBbLCBmb3JjZVVwZGF0ZV0gPSBSZWFjdC51c2VTdGF0ZSgwKVxuICBjb25zdCByZW5kZXJlZFN0eWxlc1NpemUgPSBydW50aW1lU3R5bGVzLnNpemVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjaGFuZ2VkID0gKCkgPT4gZm9yY2VVcGRhdGUoKGMpID0+IGMgKyAxKVxuICAgIHJ1bnRpbWVTdHlsZUNoYW5nZWQuYWRkKGNoYW5nZWQpXG4gICAgaWYgKHJlbmRlcmVkU3R5bGVzU2l6ZSAhPT0gcnVudGltZVN0eWxlcy5zaXplKSB7XG4gICAgICBjaGFuZ2VkKClcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJ1bnRpbWVTdHlsZUNoYW5nZWQuZGVsZXRlKGNoYW5nZWQpXG4gICAgfVxuICB9LCBbcmVuZGVyZWRTdHlsZXNTaXplLCBmb3JjZVVwZGF0ZV0pXG5cbiAgY29uc3QgZHBsSWQgPSBwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSURcbiAgICA/IGA/ZHBsPSR7cHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lEfWBcbiAgICA6ICcnXG4gIHJldHVybiBbLi4ucnVudGltZVN0eWxlc10ubWFwKChocmVmLCBpKSA9PiAoXG4gICAgPGxpbmtcbiAgICAgIGtleT17aX1cbiAgICAgIHJlbD1cInN0eWxlc2hlZXRcIlxuICAgICAgaHJlZj17YCR7aHJlZn0ke2RwbElkfWB9XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBwcmVjZWRlbmNlPVwibmV4dFwiXG4gICAgICAvLyBUT0RPIGZpZ3VyZSBvdXQgY3Jvc3NPcmlnaW4gYW5kIG5vbmNlXG4gICAgICAvLyBjcm9zc09yaWdpbj17VE9ET31cbiAgICAgIC8vIG5vbmNlPXtUT0RPfVxuICAgIC8+XG4gICkpXG59XG4iXSwibmFtZXMiOlsiY3JlYXRlRW1wdHlDYWNoZU5vZGUiLCJjcmVhdGVQcmVmZXRjaFVSTCIsIkFwcFJvdXRlciIsImlzRXh0ZXJuYWxVUkwiLCJnbG9iYWxNdXRhYmxlIiwidXJsIiwib3JpZ2luIiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwiaXNCb3QiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJVUkwiLCJhZGRCYXNlUGF0aCIsIl8iLCJFcnJvciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIkhpc3RvcnlVcGRhdGVyIiwiYXBwUm91dGVyU3RhdGUiLCJ1c2VJbnNlcnRpb25FZmZlY3QiLCJfX05FWFRfQVBQX05BVl9GQUlMX0hBTkRMSU5HIiwibmV4dCIsIl9fcGVuZGluZ1VybCIsInVuZGVmaW5lZCIsInRyZWUiLCJwdXNoUmVmIiwiY2Fub25pY2FsVXJsIiwiaGlzdG9yeVN0YXRlIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJoaXN0b3J5Iiwic3RhdGUiLCJfX05BIiwiX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRSIsInBlbmRpbmdQdXNoIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJwdXNoU3RhdGUiLCJyZXBsYWNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJfX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEUiLCJwaW5nVmlzaWJsZUxpbmtzIiwibmV4dFVybCIsImxhenlEYXRhIiwicnNjIiwicHJlZmV0Y2hSc2MiLCJoZWFkIiwicHJlZmV0Y2hIZWFkIiwicGFyYWxsZWxSb3V0ZXMiLCJNYXAiLCJsb2FkaW5nIiwibmF2aWdhdGVkQXQiLCJjb3B5TmV4dEpzSW50ZXJuYWxIaXN0b3J5U3RhdGUiLCJkYXRhIiwiY3VycmVudFN0YXRlIiwiSGVhZCIsImhlYWRDYWNoZU5vZGUiLCJyZXNvbHZlZFByZWZldGNoUnNjIiwidXNlRGVmZXJyZWRWYWx1ZSIsIlJvdXRlciIsImFjdGlvblF1ZXVlIiwiYXNzZXRQcmVmaXgiLCJnbG9iYWxFcnJvciIsImdyYWNlZnVsbHlEZWdyYWRlIiwidXNlQWN0aW9uUXVldWUiLCJzZWFyY2hQYXJhbXMiLCJwYXRobmFtZSIsInVzZU1lbW8iLCJoYXNCYXNlUGF0aCIsInJlbW92ZUJhc2VQYXRoIiwiY2FjaGUiLCJwcmVmZXRjaENhY2hlIiwibmQiLCJyb3V0ZXIiLCJwdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZSIsImhhbmRsZVBhZ2VTaG93IiwiZXZlbnQiLCJwZXJzaXN0ZWQiLCJwZW5kaW5nTXBhUGF0aCIsImRpc3BhdGNoQXBwUm91dGVyQWN0aW9uIiwidHlwZSIsIkFDVElPTl9SRVNUT1JFIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVVbmhhbmRsZWRSZWRpcmVjdCIsImVycm9yIiwicmVhc29uIiwiaXNSZWRpcmVjdEVycm9yIiwicHJldmVudERlZmF1bHQiLCJnZXRVUkxGcm9tUmVkaXJlY3RFcnJvciIsInJlZGlyZWN0VHlwZSIsImdldFJlZGlyZWN0VHlwZUZyb21FcnJvciIsIlJlZGlyZWN0VHlwZSIsInB1c2giLCJyZXBsYWNlIiwibXBhTmF2aWdhdGlvbiIsImFzc2lnbiIsInVucmVzb2x2ZWRUaGVuYWJsZSIsIm9yaWdpbmFsUHVzaFN0YXRlIiwiYmluZCIsIm9yaWdpbmFsUmVwbGFjZVN0YXRlIiwiYXBwbHlVcmxGcm9tSGlzdG9yeVB1c2hSZXBsYWNlIiwic3RhcnRUcmFuc2l0aW9uIiwiX3VudXNlZCIsIl9OIiwib25Qb3BTdGF0ZSIsInJlbG9hZCIsImRpc3BhdGNoVHJhdmVyc2VBY3Rpb24iLCJmb2N1c0FuZFNjcm9sbFJlZiIsIm1hdGNoaW5nSGVhZCIsImZpbmRIZWFkSW5DYWNoZSIsInBhdGhQYXJhbXMiLCJnZXRTZWxlY3RlZFBhcmFtcyIsImxheW91dFJvdXRlckNvbnRleHQiLCJwYXJlbnRUcmVlIiwicGFyZW50Q2FjaGVOb2RlIiwicGFyZW50U2VnbWVudFBhdGgiLCJnbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0IiwiaGVhZEtleSIsImNvbnRlbnQiLCJSZWRpcmVjdEJvdW5kYXJ5IiwiQXBwUm91dGVyQW5ub3VuY2VyIiwiRGV2Um9vdEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5IiwicmVxdWlyZSIsIkhvdFJlbG9hZGVyIiwiZGVmYXVsdCIsIkdyYWNlZnVsRGVncmFkZUJvdW5kYXJ5IiwiRXJyb3JCb3VuZGFyeSIsImVycm9yQ29tcG9uZW50IiwiZXJyb3JTdHlsZXMiLCJSdW50aW1lU3R5bGVzIiwiUGF0aFBhcmFtc0NvbnRleHQiLCJQcm92aWRlciIsInZhbHVlIiwiUGF0aG5hbWVDb250ZXh0IiwiU2VhcmNoUGFyYW1zQ29udGV4dCIsIkdsb2JhbExheW91dFJvdXRlckNvbnRleHQiLCJBcHBSb3V0ZXJDb250ZXh0IiwiTGF5b3V0Um91dGVyQ29udGV4dCIsImdsb2JhbEVycm9yU3RhdGUiLCJ1c2VOYXZGYWlsdXJlSGFuZGxlciIsIkRlZmF1bHRHbG9iYWxFcnJvciIsInJ1bnRpbWVTdHlsZXMiLCJTZXQiLCJydW50aW1lU3R5bGVDaGFuZ2VkIiwiZ2xvYmFsVGhpcyIsIl9OX0VfU1RZTEVfTE9BRCIsImxlbiIsInNpemUiLCJhZGQiLCJmb3JFYWNoIiwiY2IiLCJQcm9taXNlIiwicmVzb2x2ZSIsImZvcmNlVXBkYXRlIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsInJlbmRlcmVkU3R5bGVzU2l6ZSIsImNoYW5nZWQiLCJjIiwiZGVsZXRlIiwiZHBsSWQiLCJORVhUX0RFUExPWU1FTlRfSUQiLCJtYXAiLCJpIiwibGluayIsInJlbCIsInByZWNlZGVuY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/app-router.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.js":
/*!*********************************************************************************!*\
!*** ./node_modules/next/dist/client/components/bailout-to-client-rendering.js ***!
\*********************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"bailoutToClientRendering\", ({\n enumerable: true,\n get: function() {\n return bailoutToClientRendering;\n }\n}));\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../../server/app-render/work-unit-async-storage.external */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\nfunction bailoutToClientRendering(reason) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (workStore == null ? void 0 : workStore.forceStatic) return;\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n throw Object.defineProperty(new _bailouttocsr.BailoutToCSRError(reason), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n default:\n }\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=bailout-to-client-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZy5qcyIsIm1hcHBpbmdzIjoiOzs7OzREQUlnQkE7OztlQUFBQTs7OzBDQUprQjtzREFDRDswREFDSTtBQUU5QixTQUFTQSx5QkFBeUJDLE1BQWM7SUFDckQsTUFBTUMsWUFBWUMsMEJBQUFBLGdCQUFnQixDQUFDQyxRQUFRO0lBRTNDLElBQUlGLGFBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFVBQVdHLFdBQVcsRUFBRTtJQUU1QixNQUFNQyxnQkFBZ0JDLDhCQUFBQSxvQkFBb0IsQ0FBQ0gsUUFBUTtJQUVuRCxJQUFJRSxlQUFlO1FBQ2pCLE9BQVFBLGNBQWNFLElBQUk7WUFDeEIsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztnQkFDSCxNQUFNLHFCQUE2QixDQUE3QixJQUFJQyxjQUFBQSxpQkFBaUIsQ0FBQ1IsU0FBdEI7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBQTRCO1lBQ3BDO1FBQ0Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvYmFpbG91dC10by1jbGllbnQtcmVuZGVyaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhaWxvdXRUb0NTUkVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9sYXp5LWR5bmFtaWMvYmFpbG91dC10by1jc3InXG5pbXBvcnQgeyB3b3JrQXN5bmNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgd29ya1VuaXRBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcblxuZXhwb3J0IGZ1bmN0aW9uIGJhaWxvdXRUb0NsaWVudFJlbmRlcmluZyhyZWFzb246IHN0cmluZyk6IHZvaWQgfCBuZXZlciB7XG4gIGNvbnN0IHdvcmtTdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuXG4gIGlmICh3b3JrU3RvcmU/LmZvcmNlU3RhdGljKSByZXR1cm5cblxuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuXG4gIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgIHRocm93IG5ldyBCYWlsb3V0VG9DU1JFcnJvcihyZWFzb24pXG4gICAgICBkZWZhdWx0OlxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImJhaWxvdXRUb0NsaWVudFJlbmRlcmluZyIsInJlYXNvbiIsIndvcmtTdG9yZSIsIndvcmtBc3luY1N0b3JhZ2UiLCJnZXRTdG9yZSIsImZvcmNlU3RhdGljIiwid29ya1VuaXRTdG9yZSIsIndvcmtVbml0QXN5bmNTdG9yYWdlIiwidHlwZSIsIkJhaWxvdXRUb0NTUkVycm9yIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/bfcache.js":
/*!*************************************************************!*\
!*** ./node_modules/next/dist/client/components/bfcache.js ***!
\*************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useRouterBFCache\", ({\n enumerable: true,\n get: function() {\n return useRouterBFCache;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n// When the flag is disabled, only track the currently active tree\nconst MAX_BF_CACHE_ENTRIES = false ? 0 : 1;\nfunction useRouterBFCache(activeTree, activeStateKey) {\n // The currently active entry. The entries form a linked list, sorted in\n // order of most recently active. This allows us to reuse parts of the list\n // without cloning, unless there's a reordering or removal.\n // TODO: Once we start tracking back/forward history at each route level,\n // we should use the history order instead. In other words, when traversing\n // to an existing entry as a result of a popstate event, we should maintain\n // the existing order instead of moving it to the front of the list. I think\n // an initial implementation of this could be to pass an incrementing id\n // to history.pushState/replaceState, then use that here for ordering.\n const [prevActiveEntry, setPrevActiveEntry] = (0, _react.useState)(()=>{\n const initialEntry = {\n tree: activeTree,\n stateKey: activeStateKey,\n next: null\n };\n return initialEntry;\n });\n if (prevActiveEntry.tree === activeTree) {\n // Fast path. The active tree hasn't changed, so we can reuse the\n // existing state.\n return prevActiveEntry;\n }\n // The route tree changed. Note that this doesn't mean that the tree changed\n // *at this level* — the change may be due to a child route. Either way, we\n // need to either add or update the router tree in the bfcache.\n //\n // The rest of the code looks more complicated than it actually is because we\n // can't mutate the state in place; we have to copy-on-write.\n // Create a new entry for the active cache key. This is the head of the new\n // linked list.\n const newActiveEntry = {\n tree: activeTree,\n stateKey: activeStateKey,\n next: null\n };\n // We need to append the old list onto the new list. If the head of the new\n // list was already present in the cache, then we'll need to clone everything\n // that came before it. Then we can reuse the rest.\n let n = 1;\n let oldEntry = prevActiveEntry;\n let clonedEntry = newActiveEntry;\n while(oldEntry !== null && n < MAX_BF_CACHE_ENTRIES){\n if (oldEntry.stateKey === activeStateKey) {\n // Fast path. This entry in the old list that corresponds to the key that\n // is now active. We've already placed a clone of this entry at the front\n // of the new list. We can reuse the rest of the old list without cloning.\n // NOTE: We don't need to worry about eviction in this case because we\n // haven't increased the size of the cache, and we assume the max size\n // is constant across renders. If we were to change it to a dynamic limit,\n // then the implementation would need to account for that.\n clonedEntry.next = oldEntry.next;\n break;\n } else {\n // Clone the entry and append it to the list.\n n++;\n const entry = {\n tree: oldEntry.tree,\n stateKey: oldEntry.stateKey,\n next: null\n };\n clonedEntry.next = entry;\n clonedEntry = entry;\n }\n oldEntry = oldEntry.next;\n }\n setPrevActiveEntry(newActiveEntry);\n return newActiveEntry;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=bfcache.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2JmY2FjaGUuanMiLCJtYXBwaW5ncyI6Ijs7OztvREFpQ2dCQTs7O2VBQUFBOzs7bUNBaENTO0FBRXpCLGtFQUFrRTtBQUNsRSxNQUFNQyx1QkFBdUJDLE1BQWtDLEdBQUcsQ0FBQyxHQUFHO0FBNkIvRCxTQUFTRixpQkFDZEssVUFBNkIsRUFDN0JDLGNBQXNCO0lBRXRCLHdFQUF3RTtJQUN4RSwyRUFBMkU7SUFDM0UsMkRBQTJEO0lBQzNELHlFQUF5RTtJQUN6RSwyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDRFQUE0RTtJQUM1RSx3RUFBd0U7SUFDeEUsc0VBQXNFO0lBQ3RFLE1BQU0sQ0FBQ0MsaUJBQWlCQyxtQkFBbUIsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFDNUM7UUFDRSxNQUFNQyxlQUFtQztZQUN2Q0MsTUFBTU47WUFDTk8sVUFBVU47WUFDVk8sTUFBTTtRQUNSO1FBQ0EsT0FBT0g7SUFDVDtJQUdGLElBQUlILGdCQUFnQkksSUFBSSxLQUFLTixZQUFZO1FBQ3ZDLGlFQUFpRTtRQUNqRSxrQkFBa0I7UUFDbEIsT0FBT0U7SUFDVDtJQUVBLDRFQUE0RTtJQUM1RSwyRUFBMkU7SUFDM0UsK0RBQStEO0lBQy9ELEVBQUU7SUFDRiw2RUFBNkU7SUFDN0UsNkRBQTZEO0lBRTdELDJFQUEyRTtJQUMzRSxlQUFlO0lBQ2YsTUFBTU8saUJBQXFDO1FBQ3pDSCxNQUFNTjtRQUNOTyxVQUFVTjtRQUNWTyxNQUFNO0lBQ1I7SUFFQSwyRUFBMkU7SUFDM0UsNkVBQTZFO0lBQzdFLG1EQUFtRDtJQUNuRCxJQUFJRSxJQUFJO0lBQ1IsSUFBSUMsV0FBc0NUO0lBQzFDLElBQUlVLGNBQWtDSDtJQUN0QyxNQUFPRSxhQUFhLFFBQVFELElBQUlkLHFCQUFzQjtRQUNwRCxJQUFJZSxTQUFTSixRQUFRLEtBQUtOLGdCQUFnQjtZQUN4Qyx5RUFBeUU7WUFDekUseUVBQXlFO1lBQ3pFLDBFQUEwRTtZQUMxRSxzRUFBc0U7WUFDdEUsc0VBQXNFO1lBQ3RFLDBFQUEwRTtZQUMxRSwwREFBMEQ7WUFDMURXLFlBQVlKLElBQUksR0FBR0csU0FBU0gsSUFBSTtZQUNoQztRQUNGLE9BQU87WUFDTCw2Q0FBNkM7WUFDN0NFO1lBQ0EsTUFBTUcsUUFBNEI7Z0JBQ2hDUCxNQUFNSyxTQUFTTCxJQUFJO2dCQUNuQkMsVUFBVUksU0FBU0osUUFBUTtnQkFDM0JDLE1BQU07WUFDUjtZQUNBSSxZQUFZSixJQUFJLEdBQUdLO1lBQ25CRCxjQUFjQztRQUNoQjtRQUNBRixXQUFXQSxTQUFTSCxJQUFJO0lBQzFCO0lBRUFMLG1CQUFtQk07SUFDbkIsT0FBT0E7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL2JmY2FjaGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuLy8gV2hlbiB0aGUgZmxhZyBpcyBkaXNhYmxlZCwgb25seSB0cmFjayB0aGUgY3VycmVudGx5IGFjdGl2ZSB0cmVlXG5jb25zdCBNQVhfQkZfQ0FDSEVfRU5UUklFUyA9IHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkZfQ0FDSEUgPyAzIDogMVxuXG5leHBvcnQgdHlwZSBSb3V0ZXJCRkNhY2hlRW50cnkgPSB7XG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIHN0YXRlS2V5OiBzdHJpbmdcbiAgLy8gVGhlIGVudHJpZXMgZm9ybSBhIGxpbmtlZCBsaXN0LCBzb3J0ZWQgaW4gb3JkZXIgb2YgbW9zdCByZWNlbnRseSBhY3RpdmUuXG4gIG5leHQ6IFJvdXRlckJGQ2FjaGVFbnRyeSB8IG51bGxcbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgbW9zdCByZWNlbnQgTiB0cmVlcyAoRmxpZ2h0Um91dGVyU3RhdGVzKSB0aGF0IHdlcmUgYWN0aXZlXG4gKiBhdCBhIGNlcnRhaW4gc2VnbWVudCBsZXZlbC4gRS5nLiBmb3IgYSBzZWdtZW50IFwiL2EvYi9bcGFyYW1dXCIsIHRoaXMgaG9va1xuICogdHJhY2tzIHRoZSBsYXN0IE4gcGFyYW0gdmFsdWVzIHRoYXQgdGhlIHJvdXRlciByZW5kZXJlZCBmb3IgTi5cbiAqXG4gKiBUaGUgcmVzdWx0IG9mIHRoaXMgaG9vayBwcmVjaXNlbHkgZGV0ZXJtaW5lcyB0aGUgbnVtYmVyIGFuZCBvcmRlciBvZlxuICogdHJlZXMgdGhhdCBhcmUgcmVuZGVyZWQgaW4gcGFyYWxsZWwgYXQgdGhlaXIgc2VnbWVudCBsZXZlbC5cbiAqXG4gKiBUaGUgcHVycG9zZSBvZiB0aGlzIGNhY2hlIGlzIHRvIHdlIGNhbiBwcmVzZXJ2ZSB0aGUgUmVhY3QgYW5kIERPTSBzdGF0ZSBvZlxuICogc29tZSBudW1iZXIgb2YgaW5hY3RpdmUgdHJlZXMsIGJ5IHJlbmRlcmluZyB0aGVtIGluIGFuIDxBY3Rpdml0eT4gYm91bmRhcnkuXG4gKiBUaGF0IG1lYW5zIGl0IHdvdWxkIG5vdCBtYWtlIHNlbnNlIGZvciB0aGUgdGhlIGxpZmV0aW1lIG9mIHRoZSBjYWNoZSB0byBiZVxuICogYW55IGxvbmdlciB0aGFuIHRoZSBsaWZldGltZSBvZiB0aGUgUmVhY3QgdHJlZTsgZS5nLiBpZiB0aGUgaG9vayB3ZXJlXG4gKiB1bm1vdW50ZWQsIHRoZW4gdGhlIFJlYWN0IHRyZWUgd291bGQgYmUsIHRvby4gU28sIHdlIHVzZSBSZWFjdCBzdGF0ZSB0b1xuICogbWFuYWdlIGl0LlxuICpcbiAqIE5vdGUgdGhhdCB3ZSBkb24ndCBzdG9yZSB0aGUgUlNDIGRhdGEgZm9yIHRoZSBjYWNoZSBlbnRyaWVzIGluIHRoaXMgaG9vayDigJRcbiAqIHRoZSBkYXRhIGZvciBpbmFjdGl2ZSBzZWdtZW50cyBpcyBzdG9yZWQgaW4gdGhlIHBhcmVudCBDYWNoZU5vZGUsIHdoaWNoXG4gKiAqZG9lcyogaGF2ZSBhIGxvbmdlciBsaWZldGltZSB0aGFuIHRoZSBSZWFjdCB0cmVlLiBUaGlzIGhvb2sgb25seSBkZXRlcm1pbmVzXG4gKiB3aGljaCBvZiB0aG9zZSB0cmVlcyBzaG91bGQgaGF2ZSB0aGVpciAqc3RhdGUqIHByZXNlcnZlZCwgYnkgPEFjdGl2aXR5Pi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJvdXRlckJGQ2FjaGUoXG4gIGFjdGl2ZVRyZWU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBhY3RpdmVTdGF0ZUtleTogc3RyaW5nXG4pOiBSb3V0ZXJCRkNhY2hlRW50cnkge1xuICAvLyBUaGUgY3VycmVudGx5IGFjdGl2ZSBlbnRyeS4gVGhlIGVudHJpZXMgZm9ybSBhIGxpbmtlZCBsaXN0LCBzb3J0ZWQgaW5cbiAgLy8gb3JkZXIgb2YgbW9zdCByZWNlbnRseSBhY3RpdmUuIFRoaXMgYWxsb3dzIHVzIHRvIHJldXNlIHBhcnRzIG9mIHRoZSBsaXN0XG4gIC8vIHdpdGhvdXQgY2xvbmluZywgdW5sZXNzIHRoZXJlJ3MgYSByZW9yZGVyaW5nIG9yIHJlbW92YWwuXG4gIC8vIFRPRE86IE9uY2Ugd2Ugc3RhcnQgdHJhY2tpbmcgYmFjay9mb3J3YXJkIGhpc3RvcnkgYXQgZWFjaCByb3V0ZSBsZXZlbCxcbiAgLy8gd2Ugc2hvdWxkIHVzZSB0aGUgaGlzdG9yeSBvcmRlciBpbnN0ZWFkLiBJbiBvdGhlciB3b3Jkcywgd2hlbiB0cmF2ZXJzaW5nXG4gIC8vIHRvIGFuIGV4aXN0aW5nIGVudHJ5IGFzIGEgcmVzdWx0IG9mIGEgcG9wc3RhdGUgZXZlbnQsIHdlIHNob3VsZCBtYWludGFpblxuICAvLyB0aGUgZXhpc3Rpbmcgb3JkZXIgaW5zdGVhZCBvZiBtb3ZpbmcgaXQgdG8gdGhlIGZyb250IG9mIHRoZSBsaXN0LiBJIHRoaW5rXG4gIC8vIGFuIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBjb3VsZCBiZSB0byBwYXNzIGFuIGluY3JlbWVudGluZyBpZFxuICAvLyB0byBoaXN0b3J5LnB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUsIHRoZW4gdXNlIHRoYXQgaGVyZSBmb3Igb3JkZXJpbmcuXG4gIGNvbnN0IFtwcmV2QWN0aXZlRW50cnksIHNldFByZXZBY3RpdmVFbnRyeV0gPSB1c2VTdGF0ZTxSb3V0ZXJCRkNhY2hlRW50cnk+KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGluaXRpYWxFbnRyeTogUm91dGVyQkZDYWNoZUVudHJ5ID0ge1xuICAgICAgICB0cmVlOiBhY3RpdmVUcmVlLFxuICAgICAgICBzdGF0ZUtleTogYWN0aXZlU3RhdGVLZXksXG4gICAgICAgIG5leHQ6IG51bGwsXG4gICAgICB9XG4gICAgICByZXR1cm4gaW5pdGlhbEVudHJ5XG4gICAgfVxuICApXG5cbiAgaWYgKHByZXZBY3RpdmVFbnRyeS50cmVlID09PSBhY3RpdmVUcmVlKSB7XG4gICAgLy8gRmFzdCBwYXRoLiBUaGUgYWN0aXZlIHRyZWUgaGFzbid0IGNoYW5nZWQsIHNvIHdlIGNhbiByZXVzZSB0aGVcbiAgICAvLyBleGlzdGluZyBzdGF0ZS5cbiAgICByZXR1cm4gcHJldkFjdGl2ZUVudHJ5XG4gIH1cblxuICAvLyBUaGUgcm91dGUgdHJlZSBjaGFuZ2VkLiBOb3RlIHRoYXQgdGhpcyBkb2Vzbid0IG1lYW4gdGhhdCB0aGUgdHJlZSBjaGFuZ2VkXG4gIC8vICphdCB0aGlzIGxldmVsKiDigJQgdGhlIGNoYW5nZSBtYXkgYmUgZHVlIHRvIGEgY2hpbGQgcm91dGUuIEVpdGhlciB3YXksIHdlXG4gIC8vIG5lZWQgdG8gZWl0aGVyIGFkZCBvciB1cGRhdGUgdGhlIHJvdXRlciB0cmVlIGluIHRoZSBiZmNhY2hlLlxuICAvL1xuICAvLyBUaGUgcmVzdCBvZiB0aGUgY29kZSBsb29rcyBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gaXQgYWN0dWFsbHkgaXMgYmVjYXVzZSB3ZVxuICAvLyBjYW4ndCBtdXRhdGUgdGhlIHN0YXRlIGluIHBsYWNlOyB3ZSBoYXZlIHRvIGNvcHktb24td3JpdGUuXG5cbiAgLy8gQ3JlYXRlIGEgbmV3IGVudHJ5IGZvciB0aGUgYWN0aXZlIGNhY2hlIGtleS4gVGhpcyBpcyB0aGUgaGVhZCBvZiB0aGUgbmV3XG4gIC8vIGxpbmtlZCBsaXN0LlxuICBjb25zdCBuZXdBY3RpdmVFbnRyeTogUm91dGVyQkZDYWNoZUVudHJ5ID0ge1xuICAgIHRyZWU6IGFjdGl2ZVRyZWUsXG4gICAgc3RhdGVLZXk6IGFjdGl2ZVN0YXRlS2V5LFxuICAgIG5leHQ6IG51bGwsXG4gIH1cblxuICAvLyBXZSBuZWVkIHRvIGFwcGVuZCB0aGUgb2xkIGxpc3Qgb250byB0aGUgbmV3IGxpc3QuIElmIHRoZSBoZWFkIG9mIHRoZSBuZXdcbiAgLy8gbGlzdCB3YXMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBjYWNoZSwgdGhlbiB3ZSdsbCBuZWVkIHRvIGNsb25lIGV2ZXJ5dGhpbmdcbiAgLy8gdGhhdCBjYW1lIGJlZm9yZSBpdC4gVGhlbiB3ZSBjYW4gcmV1c2UgdGhlIHJlc3QuXG4gIGxldCBuID0gMVxuICBsZXQgb2xkRW50cnk6IFJvdXRlckJGQ2FjaGVFbnRyeSB8IG51bGwgPSBwcmV2QWN0aXZlRW50cnlcbiAgbGV0IGNsb25lZEVudHJ5OiBSb3V0ZXJCRkNhY2hlRW50cnkgPSBuZXdBY3RpdmVFbnRyeVxuICB3aGlsZSAob2xkRW50cnkgIT09IG51bGwgJiYgbiA8IE1BWF9CRl9DQUNIRV9FTlRSSUVTKSB7XG4gICAgaWYgKG9sZEVudHJ5LnN0YXRlS2V5ID09PSBhY3RpdmVTdGF0ZUtleSkge1xuICAgICAgLy8gRmFzdCBwYXRoLiBUaGlzIGVudHJ5IGluIHRoZSBvbGQgbGlzdCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBrZXkgdGhhdFxuICAgICAgLy8gaXMgbm93IGFjdGl2ZS4gV2UndmUgYWxyZWFkeSBwbGFjZWQgYSBjbG9uZSBvZiB0aGlzIGVudHJ5IGF0IHRoZSBmcm9udFxuICAgICAgLy8gb2YgdGhlIG5ldyBsaXN0LiBXZSBjYW4gcmV1c2UgdGhlIHJlc3Qgb2YgdGhlIG9sZCBsaXN0IHdpdGhvdXQgY2xvbmluZy5cbiAgICAgIC8vIE5PVEU6IFdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgZXZpY3Rpb24gaW4gdGhpcyBjYXNlIGJlY2F1c2Ugd2VcbiAgICAgIC8vIGhhdmVuJ3QgaW5jcmVhc2VkIHRoZSBzaXplIG9mIHRoZSBjYWNoZSwgYW5kIHdlIGFzc3VtZSB0aGUgbWF4IHNpemVcbiAgICAgIC8vIGlzIGNvbnN0YW50IGFjcm9zcyByZW5kZXJzLiBJZiB3ZSB3ZXJlIHRvIGNoYW5nZSBpdCB0byBhIGR5bmFtaWMgbGltaXQsXG4gICAgICAvLyB0aGVuIHRoZSBpbXBsZW1lbnRhdGlvbiB3b3VsZCBuZWVkIHRvIGFjY291bnQgZm9yIHRoYXQuXG4gICAgICBjbG9uZWRFbnRyeS5uZXh0ID0gb2xkRW50cnkubmV4dFxuICAgICAgYnJlYWtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ2xvbmUgdGhlIGVudHJ5IGFuZCBhcHBlbmQgaXQgdG8gdGhlIGxpc3QuXG4gICAgICBuKytcbiAgICAgIGNvbnN0IGVudHJ5OiBSb3V0ZXJCRkNhY2hlRW50cnkgPSB7XG4gICAgICAgIHRyZWU6IG9sZEVudHJ5LnRyZWUsXG4gICAgICAgIHN0YXRlS2V5OiBvbGRFbnRyeS5zdGF0ZUtleSxcbiAgICAgICAgbmV4dDogbnVsbCxcbiAgICAgIH1cbiAgICAgIGNsb25lZEVudHJ5Lm5leHQgPSBlbnRyeVxuICAgICAgY2xvbmVkRW50cnkgPSBlbnRyeVxuICAgIH1cbiAgICBvbGRFbnRyeSA9IG9sZEVudHJ5Lm5leHRcbiAgfVxuXG4gIHNldFByZXZBY3RpdmVFbnRyeShuZXdBY3RpdmVFbnRyeSlcbiAgcmV0dXJuIG5ld0FjdGl2ZUVudHJ5XG59XG4iXSwibmFtZXMiOlsidXNlUm91dGVyQkZDYWNoZSIsIk1BWF9CRl9DQUNIRV9FTlRSSUVTIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkZfQ0FDSEUiLCJhY3RpdmVUcmVlIiwiYWN0aXZlU3RhdGVLZXkiLCJwcmV2QWN0aXZlRW50cnkiLCJzZXRQcmV2QWN0aXZlRW50cnkiLCJ1c2VTdGF0ZSIsImluaXRpYWxFbnRyeSIsInRyZWUiLCJzdGF0ZUtleSIsIm5leHQiLCJuZXdBY3RpdmVFbnRyeSIsIm4iLCJvbGRFbnRyeSIsImNsb25lZEVudHJ5IiwiZW50cnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/bfcache.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/builtin/global-error.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/client/components/builtin/global-error.js ***!
\**************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _handleisrerror = __webpack_require__(/*! ../handle-isr-error */ \"(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js\");\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n text: {\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '28px',\n margin: '0 8px'\n }\n};\nfunction DefaultGlobalError(param) {\n let { error } = param;\n const digest = error == null ? void 0 : error.digest;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"html\", {\n id: \"__next_error__\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"head\", {}),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_handleisrerror.HandleISRError, {\n error: error\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.error,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.text,\n children: [\n \"Application error: a \",\n digest ? 'server' : 'client',\n \"-side exception has occurred while loading \",\n window.location.hostname,\n \" (see the\",\n ' ',\n digest ? 'server logs' : 'browser console',\n \" for more information).\"\n ]\n }),\n digest ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n style: styles.text,\n children: \"Digest: \" + digest\n }) : null\n ]\n })\n })\n ]\n })\n ]\n });\n}\nconst _default = DefaultGlobalError;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=global-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBb0RBOzs7ZUFBQTs7Ozs0Q0FsRCtCO0FBRS9CLE1BQU1BLFNBQVM7SUFDYkMsT0FBTztRQUNMLDBGQUEwRjtRQUMxRkMsWUFDRTtRQUNGQyxRQUFRO1FBQ1JDLFdBQVc7UUFDWEMsU0FBUztRQUNUQyxlQUFlO1FBQ2ZDLFlBQVk7UUFDWkMsZ0JBQWdCO0lBQ2xCO0lBQ0FDLE1BQU07UUFDSkMsVUFBVTtRQUNWQyxZQUFZO1FBQ1pDLFlBQVk7UUFDWkMsUUFBUTtJQUNWO0FBQ0Y7QUFLQSxTQUFTQyxtQkFBbUIsS0FBeUI7SUFBekIsTUFBRWIsS0FBSyxFQUFrQixHQUF6QjtJQUMxQixNQUFNYyxTQUE2QmQsU0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsTUFBT2MsTUFBTTtJQUNoRCxxQkFDRSxzQkFBQ0MsUUFBQUE7UUFBS0MsSUFBRzs7MEJBQ1AscUJBQUNDLFFBQUFBLENBQUFBOzBCQUNELHNCQUFDQyxRQUFBQTs7a0NBQ0MscUJBQUNDLGdCQUFBQSxjQUFjO3dCQUFDbkIsT0FBT0E7O2tDQUN2QixxQkFBQ29CLE9BQUFBO3dCQUFJQyxPQUFPdEIsT0FBT0MsS0FBSztrQ0FDdEIsb0NBQUNvQixPQUFBQTs7OENBQ0Msc0JBQUNFLE1BQUFBO29DQUFHRCxPQUFPdEIsT0FBT1MsSUFBSTs7d0NBQUU7d0NBQ0FNLFNBQVMsV0FBVzt3Q0FBUzt3Q0FDdkJTLE9BQU9DLFFBQVEsQ0FBQ0MsUUFBUTt3Q0FBQzt3Q0FBVTt3Q0FDOURYLFNBQVMsZ0JBQWdCO3dDQUFrQjs7O2dDQUc3Q0EsU0FBQUEsV0FBQUEsR0FBUyxxQkFBQ1ksS0FBQUE7b0NBQUVMLE9BQU90QixPQUFPUyxJQUFJOzhDQUFJLGFBQVVNO3FDQUFnQjs7Ozs7Ozs7QUFNekU7TUFJQSxXQUFlRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgSGFuZGxlSVNSRXJyb3IgfSBmcm9tICcuLi9oYW5kbGUtaXNyLWVycm9yJ1xuXG5jb25zdCBzdHlsZXMgPSB7XG4gIGVycm9yOiB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2Jsb2IvbWFpbi9tb2Rlcm4tbm9ybWFsaXplLmNzcyNMMzgtTDUyXG4gICAgZm9udEZhbWlseTpcbiAgICAgICdzeXN0ZW0tdWksXCJTZWdvZSBVSVwiLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiJyxcbiAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICB9LFxuICB0ZXh0OiB7XG4gICAgZm9udFNpemU6ICcxNHB4JyxcbiAgICBmb250V2VpZ2h0OiA0MDAsXG4gICAgbGluZUhlaWdodDogJzI4cHgnLFxuICAgIG1hcmdpbjogJzAgOHB4JyxcbiAgfSxcbn0gYXMgY29uc3RcblxuZXhwb3J0IHR5cGUgR2xvYmFsRXJyb3JDb21wb25lbnQgPSBSZWFjdC5Db21wb25lbnRUeXBlPHtcbiAgZXJyb3I6IGFueVxufT5cbmZ1bmN0aW9uIERlZmF1bHRHbG9iYWxFcnJvcih7IGVycm9yIH06IHsgZXJyb3I6IGFueSB9KSB7XG4gIGNvbnN0IGRpZ2VzdDogc3RyaW5nIHwgdW5kZWZpbmVkID0gZXJyb3I/LmRpZ2VzdFxuICByZXR1cm4gKFxuICAgIDxodG1sIGlkPVwiX19uZXh0X2Vycm9yX19cIj5cbiAgICAgIDxoZWFkPjwvaGVhZD5cbiAgICAgIDxib2R5PlxuICAgICAgICA8SGFuZGxlSVNSRXJyb3IgZXJyb3I9e2Vycm9yfSAvPlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZXJyb3J9PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aDIgc3R5bGU9e3N0eWxlcy50ZXh0fT5cbiAgICAgICAgICAgICAgQXBwbGljYXRpb24gZXJyb3I6IGEge2RpZ2VzdCA/ICdzZXJ2ZXInIDogJ2NsaWVudCd9LXNpZGUgZXhjZXB0aW9uXG4gICAgICAgICAgICAgIGhhcyBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIHt3aW5kb3cubG9jYXRpb24uaG9zdG5hbWV9IChzZWUgdGhleycgJ31cbiAgICAgICAgICAgICAge2RpZ2VzdCA/ICdzZXJ2ZXIgbG9ncycgOiAnYnJvd3NlciBjb25zb2xlJ30gZm9yIG1vcmVcbiAgICAgICAgICAgICAgaW5mb3JtYXRpb24pLlxuICAgICAgICAgICAgPC9oMj5cbiAgICAgICAgICAgIHtkaWdlc3QgPyA8cCBzdHlsZT17c3R5bGVzLnRleHR9PntgRGlnZXN0OiAke2RpZ2VzdH1gfTwvcD4gOiBudWxsfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gIClcbn1cblxuLy8gRXhwb3J0ZWQgc28gdGhhdCB0aGUgaW1wb3J0IHNpZ25hdHVyZSBpbiB0aGUgbG9hZGVycyBjYW4gYmUgaWRlbnRpY2FsIHRvIHVzZXJcbi8vIHN1cHBsaWVkIGN1c3RvbSBnbG9iYWwgZXJyb3Igc2lnbmF0dXJlcy5cbmV4cG9ydCBkZWZhdWx0IERlZmF1bHRHbG9iYWxFcnJvclxuIl0sIm5hbWVzIjpbInN0eWxlcyIsImVycm9yIiwiZm9udEZhbWlseSIsImhlaWdodCIsInRleHRBbGlnbiIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwidGV4dCIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsImxpbmVIZWlnaHQiLCJtYXJnaW4iLCJEZWZhdWx0R2xvYmFsRXJyb3IiLCJkaWdlc3QiLCJodG1sIiwiaWQiLCJoZWFkIiwiYm9keSIsIkhhbmRsZUlTUkVycm9yIiwiZGl2Iiwic3R5bGUiLCJoMiIsIndpbmRvdyIsImxvY2F0aW9uIiwiaG9zdG5hbWUiLCJwIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/builtin/global-error.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/client-page.js":
/*!*****************************************************************!*\
!*** ./node_modules/next/dist/client/components/client-page.js ***!
\*****************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ClientPageRoot\", ({\n enumerable: true,\n get: function() {\n return ClientPageRoot;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction ClientPageRoot(param) {\n let { Component, searchParams, params, promises } = param;\n if (true) {\n const { workAsyncStorage } = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\");\n let clientSearchParams;\n let clientParams;\n // We are going to instrument the searchParams prop with tracking for the\n // appropriate context. We wrap differently in prerendering vs rendering\n const store = workAsyncStorage.getStore();\n if (!store) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to exist when handling searchParams in a client Page.'), \"__NEXT_ERROR_CODE\", {\n value: \"E564\",\n enumerable: false,\n configurable: true\n });\n }\n const { createSearchParamsFromClient } = __webpack_require__(/*! ../../server/request/search-params */ \"(ssr)/./node_modules/next/dist/server/request/search-params.js\");\n clientSearchParams = createSearchParamsFromClient(searchParams, store);\n const { createParamsFromClient } = __webpack_require__(/*! ../../server/request/params */ \"(ssr)/./node_modules/next/dist/server/request/params.js\");\n clientParams = createParamsFromClient(params, store);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n params: clientParams,\n searchParams: clientSearchParams\n });\n } else {}\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=client-page.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBZWdCQTs7O2VBQUFBOzs7OzRDQVplO0FBWXhCLFNBQVNBLGVBQWUsS0FXOUI7SUFYOEIsTUFDN0JDLFNBQVMsRUFDVEMsWUFBWSxFQUNaQyxNQUFNLEVBQ04sUUFDUSxFQU1ULEdBWDhCO0lBWTdCLElBQUksSUFBNkIsRUFBRTtRQUNqQyxNQUFNLEVBQUVHLGdCQUFnQixFQUFFLEdBQ3hCQyxtQkFBT0EsQ0FBQywwRkFBcUQ7UUFFL0QsSUFBSUM7UUFDSixJQUFJQztRQUNKLHlFQUF5RTtRQUN6RSx3RUFBd0U7UUFDeEUsTUFBTUMsUUFBUUosaUJBQWlCSyxRQUFRO1FBQ3ZDLElBQUksQ0FBQ0QsT0FBTztZQUNWLE1BQU0scUJBRUwsQ0FGSyxJQUFJRSxnQkFBQUEsY0FBYyxDQUN0Qiw2RUFESTt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFFQSxNQUFNLEVBQUVDLDRCQUE0QixFQUFFLEdBQ3BDTixtQkFBT0EsQ0FBQywwR0FBb0M7UUFDOUNDLHFCQUFxQkssNkJBQTZCWCxjQUFjUTtRQUVoRSxNQUFNLEVBQUVJLHNCQUFzQixFQUFFLEdBQzlCUCxtQkFBT0EsQ0FBQyw0RkFBNkI7UUFDdkNFLGVBQWVLLHVCQUF1QlgsUUFBUU87UUFFOUMscUJBQU8scUJBQUNULFdBQUFBO1lBQVVFLFFBQVFNO1lBQWNQLGNBQWNNOztJQUN4RCxPQUFPLEVBU047QUFDSCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHsgSW52YXJpYW50RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvcidcblxuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5cbi8qKlxuICogV2hlbiB0aGUgUGFnZSBpcyBhIGNsaWVudCBjb21wb25lbnQgd2Ugc2VuZCB0aGUgcGFyYW1zIGFuZCBzZWFyY2hQYXJhbXMgdG8gdGhpcyBjbGllbnQgd3JhcHBlclxuICogd2hlcmUgdGhleSBhcmUgdHVybmVkIGludG8gZHluYW1pY2FsbHkgdHJhY2tlZCB2YWx1ZXMgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byB0aGUgYWN0dWFsIFBhZ2UgY29tcG9uZW50LlxuICpcbiAqIGFkZGl0aW9uYWxseSB3ZSBtYXkgc2VuZCBwcm9taXNlcyByZXByZXNlbnRpbmcgdGhlIHBhcmFtcyBhbmQgc2VhcmNoUGFyYW1zLiBXZSBkb24ndCBldmVyIHVzZSB0aGVzZSBwYXNzZWRcbiAqIHZhbHVlcyBidXQgaXQgY2FuIGJlIG5lY2Vzc2FyeSBmb3IgdGhlIHNlbmRlciB0byBzZW5kIGEgUHJvbWlzZSB0aGF0IGRvZXNuJ3QgcmVzb2x2ZSBpbiBjZXJ0YWluIHNpdHVhdGlvbnMuXG4gKiBJdCBpcyB1cCB0byB0aGUgY2FsbGVyIHRvIGRlY2lkZSBpZiB0aGUgcHJvbWlzZXMgYXJlIG5lZWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsaWVudFBhZ2VSb290KHtcbiAgQ29tcG9uZW50LFxuICBzZWFyY2hQYXJhbXMsXG4gIHBhcmFtcyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwcm9taXNlcyxcbn06IHtcbiAgQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgc2VhcmNoUGFyYW1zOiBQYXJzZWRVcmxRdWVyeVxuICBwYXJhbXM6IFBhcmFtc1xuICBwcm9taXNlcz86IEFycmF5PFByb21pc2U8YW55Pj5cbn0pIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc3QgeyB3b3JrQXN5bmNTdG9yYWdlIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJylcblxuICAgIGxldCBjbGllbnRTZWFyY2hQYXJhbXM6IFByb21pc2U8UGFyc2VkVXJsUXVlcnk+XG4gICAgbGV0IGNsaWVudFBhcmFtczogUHJvbWlzZTxQYXJhbXM+XG4gICAgLy8gV2UgYXJlIGdvaW5nIHRvIGluc3RydW1lbnQgdGhlIHNlYXJjaFBhcmFtcyBwcm9wIHdpdGggdHJhY2tpbmcgZm9yIHRoZVxuICAgIC8vIGFwcHJvcHJpYXRlIGNvbnRleHQuIFdlIHdyYXAgZGlmZmVyZW50bHkgaW4gcHJlcmVuZGVyaW5nIHZzIHJlbmRlcmluZ1xuICAgIGNvbnN0IHN0b3JlID0gd29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gICAgaWYgKCFzdG9yZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAnRXhwZWN0ZWQgd29ya1N0b3JlIHRvIGV4aXN0IHdoZW4gaGFuZGxpbmcgc2VhcmNoUGFyYW1zIGluIGEgY2xpZW50IFBhZ2UuJ1xuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHsgY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9zZWFyY2gtcGFyYW1zJylcbiAgICBjbGllbnRTZWFyY2hQYXJhbXMgPSBjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50KHNlYXJjaFBhcmFtcywgc3RvcmUpXG5cbiAgICBjb25zdCB7IGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnKVxuICAgIGNsaWVudFBhcmFtcyA9IGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQocGFyYW1zLCBzdG9yZSlcblxuICAgIHJldHVybiA8Q29tcG9uZW50IHBhcmFtcz17Y2xpZW50UGFyYW1zfSBzZWFyY2hQYXJhbXM9e2NsaWVudFNlYXJjaFBhcmFtc30gLz5cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuYnJvd3NlcicpIGFzIHR5cGVvZiBpbXBvcnQoJy4uL3JlcXVlc3Qvc2VhcmNoLXBhcmFtcy5icm93c2VyJylcbiAgICBjb25zdCBjbGllbnRTZWFyY2hQYXJhbXMgPSBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXNGcm9tQ2xpZW50KHNlYXJjaFBhcmFtcylcbiAgICBjb25zdCB7IGNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi9yZXF1ZXN0L3BhcmFtcy5icm93c2VyJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vcmVxdWVzdC9wYXJhbXMuYnJvd3NlcicpXG4gICAgY29uc3QgY2xpZW50UGFyYW1zID0gY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudChwYXJhbXMpXG5cbiAgICByZXR1cm4gPENvbXBvbmVudCBwYXJhbXM9e2NsaWVudFBhcmFtc30gc2VhcmNoUGFyYW1zPXtjbGllbnRTZWFyY2hQYXJhbXN9IC8+XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDbGllbnRQYWdlUm9vdCIsIkNvbXBvbmVudCIsInNlYXJjaFBhcmFtcyIsInBhcmFtcyIsInByb21pc2VzIiwid2luZG93Iiwid29ya0FzeW5jU3RvcmFnZSIsInJlcXVpcmUiLCJjbGllbnRTZWFyY2hQYXJhbXMiLCJjbGllbnRQYXJhbXMiLCJzdG9yZSIsImdldFN0b3JlIiwiSW52YXJpYW50RXJyb3IiLCJjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50IiwiY3JlYXRlUGFyYW1zRnJvbUNsaWVudCIsImNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtc0Zyb21DbGllbnQiLCJjcmVhdGVSZW5kZXJQYXJhbXNGcm9tQ2xpZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/client-page.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/client-segment.js":
/*!********************************************************************!*\
!*** ./node_modules/next/dist/client/components/client-segment.js ***!
\********************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ClientSegmentRoot\", ({\n enumerable: true,\n get: function() {\n return ClientSegmentRoot;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nfunction ClientSegmentRoot(param) {\n let { Component, slots, params, promise } = param;\n if (true) {\n const { workAsyncStorage } = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\");\n let clientParams;\n // We are going to instrument the searchParams prop with tracking for the\n // appropriate context. We wrap differently in prerendering vs rendering\n const store = workAsyncStorage.getStore();\n if (!store) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected workStore to exist when handling params in a client segment such as a Layout or Template.'), \"__NEXT_ERROR_CODE\", {\n value: \"E600\",\n enumerable: false,\n configurable: true\n });\n }\n const { createParamsFromClient } = __webpack_require__(/*! ../../server/request/params */ \"(ssr)/./node_modules/next/dist/server/request/params.js\");\n clientParams = createParamsFromClient(params, store);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n ...slots,\n params: clientParams\n });\n } else {}\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=client-segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1zZWdtZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBY2dCQTs7O2VBQUFBOzs7OzRDQVplO0FBWXhCLFNBQVNBLGtCQUFrQixLQVdqQztJQVhpQyxNQUNoQ0MsU0FBUyxFQUNUQyxLQUFLLEVBQ0xDLE1BQU0sRUFFTkMsT0FBTyxFQU1SLEdBWGlDO0lBWWhDLElBQUksSUFBNkIsRUFBRTtRQUNqQyxNQUFNLEVBQUVFLGdCQUFnQixFQUFFLEdBQ3hCQyxtQkFBT0EsQ0FBQywwRkFBcUQ7UUFFL0QsSUFBSUM7UUFDSix5RUFBeUU7UUFDekUsd0VBQXdFO1FBQ3hFLE1BQU1DLFFBQVFILGlCQUFpQkksUUFBUTtRQUN2QyxJQUFJLENBQUNELE9BQU87WUFDVixNQUFNLHFCQUVMLENBRkssSUFBSUUsZ0JBQUFBLGNBQWMsQ0FDdEIsdUdBREk7dUJBQUE7NEJBQUE7OEJBQUE7WUFFTjtRQUNGO1FBRUEsTUFBTSxFQUFFQyxzQkFBc0IsRUFBRSxHQUM5QkwsbUJBQU9BLENBQUMsNEZBQTZCO1FBQ3ZDQyxlQUFlSSx1QkFBdUJULFFBQVFNO1FBRTlDLHFCQUFPLHFCQUFDUixXQUFBQTtZQUFXLEdBQUdDLEtBQUs7WUFBRUMsUUFBUUs7O0lBQ3ZDLE9BQU8sRUFLTjtBQUNIIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXNlZ21lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBJbnZhcmlhbnRFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yJ1xuXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcblxuLyoqXG4gKiBXaGVuIHRoZSBQYWdlIGlzIGEgY2xpZW50IGNvbXBvbmVudCB3ZSBzZW5kIHRoZSBwYXJhbXMgdG8gdGhpcyBjbGllbnQgd3JhcHBlclxuICogd2hlcmUgdGhleSBhcmUgdHVybmVkIGludG8gZHluYW1pY2FsbHkgdHJhY2tlZCB2YWx1ZXMgYmVmb3JlIGJlaW5nIHBhc3NlZCB0byB0aGUgYWN0dWFsIFNlZ21lbnQgY29tcG9uZW50LlxuICpcbiAqIGFkZGl0aW9uYWxseSB3ZSBtYXkgc2VuZCBhIHByb21pc2UgcmVwcmVzZW50aW5nIHBhcmFtcy4gV2UgZG9uJ3QgZXZlciB1c2UgdGhpcyBwYXNzZWRcbiAqIHZhbHVlIGJ1dCBpdCBjYW4gYmUgbmVjZXNzYXJ5IGZvciB0aGUgc2VuZGVyIHRvIHNlbmQgYSBQcm9taXNlIHRoYXQgZG9lc24ndCByZXNvbHZlIGluIGNlcnRhaW4gc2l0dWF0aW9uc1xuICogc3VjaCBhcyB3aGVuIGR5bmFtaWNJTyBpcyBlbmFibGVkLiBJdCBpcyB1cCB0byB0aGUgY2FsbGVyIHRvIGRlY2lkZSBpZiB0aGUgcHJvbWlzZXMgYXJlIG5lZWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENsaWVudFNlZ21lbnRSb290KHtcbiAgQ29tcG9uZW50LFxuICBzbG90cyxcbiAgcGFyYW1zLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHByb21pc2UsXG59OiB7XG4gIENvbXBvbmVudDogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIHNsb3RzOiB7IFtrZXk6IHN0cmluZ106IFJlYWN0LlJlYWN0Tm9kZSB9XG4gIHBhcmFtczogUGFyYW1zXG4gIHByb21pc2U/OiBQcm9taXNlPGFueT5cbn0pIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc3QgeyB3b3JrQXN5bmNTdG9yYWdlIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJylcblxuICAgIGxldCBjbGllbnRQYXJhbXM6IFByb21pc2U8UGFyYW1zPlxuICAgIC8vIFdlIGFyZSBnb2luZyB0byBpbnN0cnVtZW50IHRoZSBzZWFyY2hQYXJhbXMgcHJvcCB3aXRoIHRyYWNraW5nIGZvciB0aGVcbiAgICAvLyBhcHByb3ByaWF0ZSBjb250ZXh0LiBXZSB3cmFwIGRpZmZlcmVudGx5IGluIHByZXJlbmRlcmluZyB2cyByZW5kZXJpbmdcbiAgICBjb25zdCBzdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICAgIGlmICghc3RvcmUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihcbiAgICAgICAgJ0V4cGVjdGVkIHdvcmtTdG9yZSB0byBleGlzdCB3aGVuIGhhbmRsaW5nIHBhcmFtcyBpbiBhIGNsaWVudCBzZWdtZW50IHN1Y2ggYXMgYSBMYXlvdXQgb3IgVGVtcGxhdGUuJ1xuICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IHsgY3JlYXRlUGFyYW1zRnJvbUNsaWVudCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcycpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcycpXG4gICAgY2xpZW50UGFyYW1zID0gY3JlYXRlUGFyYW1zRnJvbUNsaWVudChwYXJhbXMsIHN0b3JlKVxuXG4gICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnNsb3RzfSBwYXJhbXM9e2NsaWVudFBhcmFtc30gLz5cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IGNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi9yZXF1ZXN0L3BhcmFtcy5icm93c2VyJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vcmVxdWVzdC9wYXJhbXMuYnJvd3NlcicpXG4gICAgY29uc3QgY2xpZW50UGFyYW1zID0gY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudChwYXJhbXMpXG4gICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnNsb3RzfSBwYXJhbXM9e2NsaWVudFBhcmFtc30gLz5cbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNsaWVudFNlZ21lbnRSb290IiwiQ29tcG9uZW50Iiwic2xvdHMiLCJwYXJhbXMiLCJwcm9taXNlIiwid2luZG93Iiwid29ya0FzeW5jU3RvcmFnZSIsInJlcXVpcmUiLCJjbGllbnRQYXJhbXMiLCJzdG9yZSIsImdldFN0b3JlIiwiSW52YXJpYW50RXJyb3IiLCJjcmVhdGVQYXJhbXNGcm9tQ2xpZW50IiwiY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/client-segment.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/error-boundary.js":
/*!********************************************************************!*\
!*** ./node_modules/next/dist/client/components/error-boundary.js ***!
\********************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ErrorBoundary: function() {\n return ErrorBoundary;\n },\n ErrorBoundaryHandler: function() {\n return ErrorBoundaryHandler;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _navigationuntracked = __webpack_require__(/*! ./navigation-untracked */ \"(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\");\nconst _isnextroutererror = __webpack_require__(/*! ./is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _navfailurehandler = __webpack_require__(/*! ./nav-failure-handler */ \"(ssr)/./node_modules/next/dist/client/components/nav-failure-handler.js\");\nconst _handleisrerror = __webpack_require__(/*! ./handle-isr-error */ \"(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js\");\nclass ErrorBoundaryHandler extends _react.default.Component {\n static getDerivedStateFromError(error) {\n if ((0, _isnextroutererror.isNextRouterError)(error)) {\n // Re-throw if an expected internal Next.js router error occurs\n // this means it should be handled by a different boundary (such as a NotFound boundary in a parent segment)\n throw error;\n }\n return {\n error\n };\n }\n static getDerivedStateFromProps(props, state) {\n const { error } = state;\n // if we encounter an error while\n // a navigation is pending we shouldn't render\n // the error boundary and instead should fallback\n // to a hard navigation to attempt recovering\n if (false) {}\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */ if (props.pathname !== state.previousPathname && state.error) {\n return {\n error: null,\n previousPathname: props.pathname\n };\n }\n return {\n error: state.error,\n previousPathname: props.pathname\n };\n }\n // Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.\n render() {\n if (this.state.error) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_handleisrerror.HandleISRError, {\n error: this.state.error\n }),\n this.props.errorStyles,\n this.props.errorScripts,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(this.props.errorComponent, {\n error: this.state.error,\n reset: this.reset\n })\n ]\n });\n }\n return this.props.children;\n }\n constructor(props){\n super(props), this.reset = ()=>{\n this.setState({\n error: null\n });\n };\n this.state = {\n error: null,\n previousPathname: this.props.pathname\n };\n }\n}\nfunction ErrorBoundary(param) {\n let { errorComponent, errorStyles, errorScripts, children } = param;\n // When we're rendering the missing params shell, this will return null. This\n // is because we won't be rendering any not found boundaries or error\n // boundaries for the missing params shell. When this runs on the client\n // (where these errors can occur), we will get the correct pathname.\n const pathname = (0, _navigationuntracked.useUntrackedPathname)();\n if (errorComponent) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorBoundaryHandler, {\n pathname: pathname,\n errorComponent: errorComponent,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=error-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTBIZ0JBLGFBQWE7ZUFBYkE7O0lBMUZIQyxvQkFBb0I7ZUFBcEJBOzs7Ozs0RUE5Qm1CO2lEQUNLOytDQUNIOytDQUNDOzRDQUNKO0FBMEJ4QixNQUFNQSw2QkFBNkJDLE9BQUFBLE9BQUssQ0FBQ0MsU0FBUztJQVN2RCxPQUFPQyx5QkFBeUJDLEtBQVksRUFBRTtRQUM1QyxJQUFJQyxDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCRCxRQUFRO1lBQzVCLCtEQUErRDtZQUMvRCw0R0FBNEc7WUFDNUcsTUFBTUE7UUFDUjtRQUVBLE9BQU87WUFBRUE7UUFBTTtJQUNqQjtJQUVBLE9BQU9FLHlCQUNMQyxLQUFnQyxFQUNoQ0MsS0FBZ0MsRUFDRTtRQUNsQyxNQUFNLEVBQUVKLEtBQUssRUFBRSxHQUFHSTtRQUVsQixpQ0FBaUM7UUFDakMsOENBQThDO1FBQzlDLGlEQUFpRDtRQUNqRCw2Q0FBNkM7UUFDN0MsSUFBSUMsS0FBd0MsRUFBRSxFQVE3QztRQUVEOzs7OztLQUtDLEdBQ0QsSUFBSUYsTUFBTU8sUUFBUSxLQUFLTixNQUFNSyxnQkFBZ0IsSUFBSUwsTUFBTUosS0FBSyxFQUFFO1lBQzVELE9BQU87Z0JBQ0xBLE9BQU87Z0JBQ1BTLGtCQUFrQk4sTUFBTU8sUUFBUTtZQUNsQztRQUNGO1FBQ0EsT0FBTztZQUNMVixPQUFPSSxNQUFNSixLQUFLO1lBQ2xCUyxrQkFBa0JOLE1BQU1PLFFBQVE7UUFDbEM7SUFDRjtJQU1BLHlJQUF5STtJQUN6SUMsU0FBMEI7UUFDeEIsSUFBSSxJQUFJLENBQUNQLEtBQUssQ0FBQ0osS0FBSyxFQUFFO1lBQ3BCLHFCQUNFOztrQ0FDRSxxQkFBQ1ksZ0JBQUFBLGNBQWM7d0JBQUNaLE9BQU8sSUFBSSxDQUFDSSxLQUFLLENBQUNKLEtBQUs7O29CQUN0QyxJQUFJLENBQUNHLEtBQUssQ0FBQ1UsV0FBVztvQkFDdEIsSUFBSSxDQUFDVixLQUFLLENBQUNXLFlBQVk7a0NBQ3hCLHFCQUFDQyxJQUFJLENBQUNaLEtBQUssQ0FBQ2EsY0FBYzt3QkFDeEJoQixPQUFPLElBQUksQ0FBQ0ksS0FBSyxDQUFDSixLQUFLO3dCQUN2QmlCLE9BQU8sSUFBSSxDQUFDQSxLQUFLOzs7O1FBSXpCO1FBRUEsT0FBTyxJQUFJLENBQUNkLEtBQUssQ0FBQ2UsUUFBUTtJQUM1QjtJQTFFQUMsWUFBWWhCLEtBQWdDLENBQUU7UUFDNUMsS0FBSyxDQUFDQSxRQUFBQSxJQUFBQSxDQW9EUmMsS0FBQUEsR0FBUTtZQUNOLElBQUksQ0FBQ0csUUFBUSxDQUFDO2dCQUFFcEIsT0FBTztZQUFLO1FBQzlCO1FBckRFLElBQUksQ0FBQ0ksS0FBSyxHQUFHO1lBQUVKLE9BQU87WUFBTVMsa0JBQWtCLElBQUksQ0FBQ04sS0FBSyxDQUFDTyxRQUFRO1FBQUM7SUFDcEU7QUF3RUY7QUFXTyxTQUFTZixjQUFjLEtBTzdCO0lBUDZCLE1BQzVCcUIsY0FBYyxFQUNkSCxXQUFXLEVBQ1hDLFlBQVksRUFDWkksUUFBUSxFQUdULEdBUDZCO0lBUTVCLDZFQUE2RTtJQUM3RSxxRUFBcUU7SUFDckUsd0VBQXdFO0lBQ3hFLG9FQUFvRTtJQUNwRSxNQUFNUixXQUFXVyxDQUFBQSxHQUFBQSxxQkFBQUEsb0JBQUFBO0lBQ2pCLElBQUlMLGdCQUFnQjtRQUNsQixxQkFDRSxxQkFBQ3BCLHNCQUFBQTtZQUNDYyxVQUFVQTtZQUNWTSxnQkFBZ0JBO1lBQ2hCSCxhQUFhQTtZQUNiQyxjQUFjQTtzQkFFYkk7O0lBR1A7SUFFQSxxQkFBTztrQkFBR0E7O0FBQ1oiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBSZWFjdCwgeyB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVW50cmFja2VkUGF0aG5hbWUgfSBmcm9tICcuL25hdmlnYXRpb24tdW50cmFja2VkJ1xuaW1wb3J0IHsgaXNOZXh0Um91dGVyRXJyb3IgfSBmcm9tICcuL2lzLW5leHQtcm91dGVyLWVycm9yJ1xuaW1wb3J0IHsgaGFuZGxlSGFyZE5hdkVycm9yIH0gZnJvbSAnLi9uYXYtZmFpbHVyZS1oYW5kbGVyJ1xuaW1wb3J0IHsgSGFuZGxlSVNSRXJyb3IgfSBmcm9tICcuL2hhbmRsZS1pc3ItZXJyb3InXG5cbmV4cG9ydCB0eXBlIEVycm9yQ29tcG9uZW50ID0gUmVhY3QuQ29tcG9uZW50VHlwZTx7XG4gIGVycm9yOiBFcnJvclxuICAvLyBnbG9iYWwtZXJyb3IsIHRoZXJlJ3Mgbm8gYHJlc2V0YCBmdW5jdGlvbjtcbiAgLy8gcmVndWxhciBlcnJvciBib3VuZGFyeSwgdGhlcmUncyBhIGByZXNldGAgZnVuY3Rpb24uXG4gIHJlc2V0PzogKCkgPT4gdm9pZFxufT5cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvckJvdW5kYXJ5UHJvcHMge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxuICBlcnJvckNvbXBvbmVudDogRXJyb3JDb21wb25lbnQgfCB1bmRlZmluZWRcbiAgZXJyb3JTdHlsZXM/OiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgZXJyb3JTY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG59XG5cbmludGVyZmFjZSBFcnJvckJvdW5kYXJ5SGFuZGxlclByb3BzIGV4dGVuZHMgRXJyb3JCb3VuZGFyeVByb3BzIHtcbiAgcGF0aG5hbWU6IHN0cmluZyB8IG51bGxcbiAgZXJyb3JDb21wb25lbnQ6IEVycm9yQ29tcG9uZW50XG59XG5cbmludGVyZmFjZSBFcnJvckJvdW5kYXJ5SGFuZGxlclN0YXRlIHtcbiAgZXJyb3I6IEVycm9yIHwgbnVsbFxuICBwcmV2aW91c1BhdGhuYW1lOiBzdHJpbmcgfCBudWxsXG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvckJvdW5kYXJ5SGFuZGxlciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgRXJyb3JCb3VuZGFyeUhhbmRsZXJQcm9wcyxcbiAgRXJyb3JCb3VuZGFyeUhhbmRsZXJTdGF0ZVxuPiB7XG4gIGNvbnN0cnVjdG9yKHByb3BzOiBFcnJvckJvdW5kYXJ5SGFuZGxlclByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5zdGF0ZSA9IHsgZXJyb3I6IG51bGwsIHByZXZpb3VzUGF0aG5hbWU6IHRoaXMucHJvcHMucGF0aG5hbWUgfVxuICB9XG5cbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlcnJvcjogRXJyb3IpIHtcbiAgICBpZiAoaXNOZXh0Um91dGVyRXJyb3IoZXJyb3IpKSB7XG4gICAgICAvLyBSZS10aHJvdyBpZiBhbiBleHBlY3RlZCBpbnRlcm5hbCBOZXh0LmpzIHJvdXRlciBlcnJvciBvY2N1cnNcbiAgICAgIC8vIHRoaXMgbWVhbnMgaXQgc2hvdWxkIGJlIGhhbmRsZWQgYnkgYSBkaWZmZXJlbnQgYm91bmRhcnkgKHN1Y2ggYXMgYSBOb3RGb3VuZCBib3VuZGFyeSBpbiBhIHBhcmVudCBzZWdtZW50KVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG5cbiAgICByZXR1cm4geyBlcnJvciB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKFxuICAgIHByb3BzOiBFcnJvckJvdW5kYXJ5SGFuZGxlclByb3BzLFxuICAgIHN0YXRlOiBFcnJvckJvdW5kYXJ5SGFuZGxlclN0YXRlXG4gICk6IEVycm9yQm91bmRhcnlIYW5kbGVyU3RhdGUgfCBudWxsIHtcbiAgICBjb25zdCB7IGVycm9yIH0gPSBzdGF0ZVxuXG4gICAgLy8gaWYgd2UgZW5jb3VudGVyIGFuIGVycm9yIHdoaWxlXG4gICAgLy8gYSBuYXZpZ2F0aW9uIGlzIHBlbmRpbmcgd2Ugc2hvdWxkbid0IHJlbmRlclxuICAgIC8vIHRoZSBlcnJvciBib3VuZGFyeSBhbmQgaW5zdGVhZCBzaG91bGQgZmFsbGJhY2tcbiAgICAvLyB0byBhIGhhcmQgbmF2aWdhdGlvbiB0byBhdHRlbXB0IHJlY292ZXJpbmdcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0FQUF9OQVZfRkFJTF9IQU5ETElORykge1xuICAgICAgaWYgKGVycm9yICYmIGhhbmRsZUhhcmROYXZFcnJvcihlcnJvcikpIHtcbiAgICAgICAgLy8gY2xlYXIgZXJyb3Igc28gd2UgZG9uJ3QgcmVuZGVyIGFueXRoaW5nXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIHJlc2V0IG9mIHRoZSBlcnJvciBib3VuZGFyeSB3aGVuIGEgbmF2aWdhdGlvbiBoYXBwZW5zLlxuICAgICAqIEVuc3VyZXMgdGhlIGVycm9yIGJvdW5kYXJ5IGRvZXMgbm90IHN0YXkgZW5hYmxlZCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZS5cbiAgICAgKiBBcHByb2FjaCBvZiBzZXRTdGF0ZSBpbiByZW5kZXIgaXMgc2FmZSBhcyBpdCBjaGVja3MgdGhlIHByZXZpb3VzIHBhdGhuYW1lIGFuZCB0aGVuIG92ZXJyaWRlc1xuICAgICAqIGl0IGFzIG91dGxpbmVkIGluIGh0dHBzOi8vcmVhY3QuZGV2L3JlZmVyZW5jZS9yZWFjdC91c2VTdGF0ZSNzdG9yaW5nLWluZm9ybWF0aW9uLWZyb20tcHJldmlvdXMtcmVuZGVyc1xuICAgICAqL1xuICAgIGlmIChwcm9wcy5wYXRobmFtZSAhPT0gc3RhdGUucHJldmlvdXNQYXRobmFtZSAmJiBzdGF0ZS5lcnJvcikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgIHByZXZpb3VzUGF0aG5hbWU6IHByb3BzLnBhdGhuYW1lLFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IHN0YXRlLmVycm9yLFxuICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgfVxuICB9XG5cbiAgcmVzZXQgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yOiBudWxsIH0pXG4gIH1cblxuICAvLyBFeHBsaWNpdCB0eXBlIGlzIG5lZWRlZCB0byBhdm9pZCB0aGUgZ2VuZXJhdGVkIGAuZC50c2AgaGF2aW5nIGEgd2lkZSByZXR1cm4gdHlwZSB0aGF0IGNvdWxkIGJlIHNwZWNpZmljIHRvIHRoZSBgQHR5cGVzL3JlYWN0YCB2ZXJzaW9uLlxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5lcnJvcikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8SGFuZGxlSVNSRXJyb3IgZXJyb3I9e3RoaXMuc3RhdGUuZXJyb3J9IC8+XG4gICAgICAgICAge3RoaXMucHJvcHMuZXJyb3JTdHlsZXN9XG4gICAgICAgICAge3RoaXMucHJvcHMuZXJyb3JTY3JpcHRzfVxuICAgICAgICAgIDx0aGlzLnByb3BzLmVycm9yQ29tcG9uZW50XG4gICAgICAgICAgICBlcnJvcj17dGhpcy5zdGF0ZS5lcnJvcn1cbiAgICAgICAgICAgIHJlc2V0PXt0aGlzLnJlc2V0fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gIH1cbn1cblxuLyoqXG4gKiBIYW5kbGVzIGVycm9ycyB0aHJvdWdoIGBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3JgLlxuICogUmVuZGVycyB0aGUgcHJvdmlkZWQgZXJyb3IgY29tcG9uZW50IGFuZCBwcm92aWRlcyBhIHdheSB0byBgcmVzZXRgIHRoZSBlcnJvciBib3VuZGFyeSBzdGF0ZS5cbiAqL1xuXG4vKipcbiAqIFJlbmRlcnMgZXJyb3IgYm91bmRhcnkgd2l0aCB0aGUgcHJvdmlkZWQgXCJlcnJvckNvbXBvbmVudFwiIHByb3BlcnR5IGFzIHRoZSBmYWxsYmFjay5cbiAqIElmIG5vIFwiZXJyb3JDb21wb25lbnRcIiBwcm9wZXJ0eSBpcyBwcm92aWRlZCBpdCByZW5kZXJzIHRoZSBjaGlsZHJlbiB3aXRob3V0IGFuIGVycm9yIGJvdW5kYXJ5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gRXJyb3JCb3VuZGFyeSh7XG4gIGVycm9yQ29tcG9uZW50LFxuICBlcnJvclN0eWxlcyxcbiAgZXJyb3JTY3JpcHRzLFxuICBjaGlsZHJlbixcbn06IEVycm9yQm91bmRhcnlQcm9wcyAmIHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSk6IEpTWC5FbGVtZW50IHtcbiAgLy8gV2hlbiB3ZSdyZSByZW5kZXJpbmcgdGhlIG1pc3NpbmcgcGFyYW1zIHNoZWxsLCB0aGlzIHdpbGwgcmV0dXJuIG51bGwuIFRoaXNcbiAgLy8gaXMgYmVjYXVzZSB3ZSB3b24ndCBiZSByZW5kZXJpbmcgYW55IG5vdCBmb3VuZCBib3VuZGFyaWVzIG9yIGVycm9yXG4gIC8vIGJvdW5kYXJpZXMgZm9yIHRoZSBtaXNzaW5nIHBhcmFtcyBzaGVsbC4gV2hlbiB0aGlzIHJ1bnMgb24gdGhlIGNsaWVudFxuICAvLyAod2hlcmUgdGhlc2UgZXJyb3JzIGNhbiBvY2N1ciksIHdlIHdpbGwgZ2V0IHRoZSBjb3JyZWN0IHBhdGhuYW1lLlxuICBjb25zdCBwYXRobmFtZSA9IHVzZVVudHJhY2tlZFBhdGhuYW1lKClcbiAgaWYgKGVycm9yQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxFcnJvckJvdW5kYXJ5SGFuZGxlclxuICAgICAgICBwYXRobmFtZT17cGF0aG5hbWV9XG4gICAgICAgIGVycm9yQ29tcG9uZW50PXtlcnJvckNvbXBvbmVudH1cbiAgICAgICAgZXJyb3JTdHlsZXM9e2Vycm9yU3R5bGVzfVxuICAgICAgICBlcnJvclNjcmlwdHM9e2Vycm9yU2NyaXB0c31cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9FcnJvckJvdW5kYXJ5SGFuZGxlcj5cbiAgICApXG4gIH1cblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+XG59XG4iXSwibmFtZXMiOlsiRXJyb3JCb3VuZGFyeSIsIkVycm9yQm91bmRhcnlIYW5kbGVyIiwiUmVhY3QiLCJDb21wb25lbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsImlzTmV4dFJvdXRlckVycm9yIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwicHJvcHMiLCJzdGF0ZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQVBQX05BVl9GQUlMX0hBTkRMSU5HIiwiaGFuZGxlSGFyZE5hdkVycm9yIiwicHJldmlvdXNQYXRobmFtZSIsInBhdGhuYW1lIiwicmVuZGVyIiwiSGFuZGxlSVNSRXJyb3IiLCJlcnJvclN0eWxlcyIsImVycm9yU2NyaXB0cyIsInRoaXMiLCJlcnJvckNvbXBvbmVudCIsInJlc2V0IiwiY2hpbGRyZW4iLCJjb25zdHJ1Y3RvciIsInNldFN0YXRlIiwidXNlVW50cmFja2VkUGF0aG5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/error-boundary.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js":
/*!**************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js ***!
\**************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n GracefulDegradeBoundary: function() {\n return GracefulDegradeBoundary;\n },\n default: function() {\n return _default;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nfunction getDomNodeAttributes(node) {\n const result = {};\n for(let i = 0; i < node.attributes.length; i++){\n const attr = node.attributes[i];\n result[attr.name] = attr.value;\n }\n return result;\n}\nclass GracefulDegradeBoundary extends _react.Component {\n static getDerivedStateFromError(_) {\n return {\n hasError: true\n };\n }\n componentDidMount() {\n const htmlNode = this.htmlRef.current;\n if (this.state.hasError && htmlNode) {\n // Reapply the cached HTML attributes to the root element\n Object.entries(this.htmlAttributes).forEach((param)=>{\n let [key, value] = param;\n htmlNode.setAttribute(key, value);\n });\n }\n }\n render() {\n const { hasError } = this.state;\n // Cache the root HTML content on the first render\n if (false) {}\n if (hasError) {\n // Render the current HTML content without hydration\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"html\", {\n ref: this.htmlRef,\n suppressHydrationWarning: true,\n dangerouslySetInnerHTML: {\n __html: this.rootHtml\n }\n });\n }\n return this.props.children;\n }\n constructor(props){\n super(props);\n this.state = {\n hasError: false\n };\n this.rootHtml = '';\n this.htmlAttributes = {};\n this.htmlRef = /*#__PURE__*/ (0, _react.createRef)();\n }\n}\nconst _default = GracefulDegradeBoundary;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=graceful-degrade-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9ycy9ncmFjZWZ1bC1kZWdyYWRlLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXFCYUEsdUJBQXVCO2VBQXZCQTs7SUF1RGIsT0FBc0M7ZUFBdEM7Ozs7bUNBMUVxRDtBQVVyRCxTQUFTQyxxQkFBcUJDLElBQWlCO0lBQzdDLE1BQU1DLFNBQWlDLENBQUM7SUFDeEMsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlGLEtBQUtHLFVBQVUsQ0FBQ0MsTUFBTSxFQUFFRixJQUFLO1FBQy9DLE1BQU1HLE9BQU9MLEtBQUtHLFVBQVUsQ0FBQ0QsRUFBRTtRQUMvQkQsTUFBTSxDQUFDSSxLQUFLQyxJQUFJLENBQUMsR0FBR0QsS0FBS0UsS0FBSztJQUNoQztJQUNBLE9BQU9OO0FBQ1Q7QUFFTyxNQUFNSCxnQ0FBZ0NVLE9BQUFBLFNBQVM7SUFnQnBELE9BQU9DLHlCQUF5QkMsQ0FBVSxFQUFzQjtRQUM5RCxPQUFPO1lBQUVDLFVBQVU7UUFBSztJQUMxQjtJQUVBQyxvQkFBb0I7UUFDbEIsTUFBTUMsV0FBVyxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTztRQUNyQyxJQUFJLElBQUksQ0FBQ0MsS0FBSyxDQUFDTCxRQUFRLElBQUlFLFVBQVU7WUFDbkMseURBQXlEO1lBQ3pESSxPQUFPQyxPQUFPLENBQUMsSUFBSSxDQUFDQyxjQUFjLEVBQUVDLE9BQU8sQ0FBQztvQkFBQyxDQUFDQyxLQUFLZCxNQUFNO2dCQUN2RE0sU0FBU1MsWUFBWSxDQUFDRCxLQUFLZDtZQUM3QjtRQUNGO0lBQ0Y7SUFFQWdCLFNBQVM7UUFDUCxNQUFNLEVBQUVaLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQ0ssS0FBSztRQUMvQixrREFBa0Q7UUFDbEQsSUFBSSxLQUErQyxFQUFFLEVBR3BEO1FBRUQsSUFBSUwsVUFBVTtZQUNaLG9EQUFvRDtZQUNwRCxxQkFDRSxxQkFBQ2tCLFFBQUFBO2dCQUNDQyxLQUFLLElBQUksQ0FBQ2hCLE9BQU87Z0JBQ2pCaUIsd0JBQXdCO2dCQUN4QkMseUJBQXlCO29CQUN2QkMsUUFBUSxJQUFJLENBQUNSLFFBQVE7Z0JBQ3ZCOztRQUdOO1FBRUEsT0FBTyxJQUFJLENBQUNTLEtBQUssQ0FBQ0MsUUFBUTtJQUM1QjtJQTVDQUMsWUFBWUYsS0FBeUIsQ0FBRTtRQUNyQyxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDbEIsS0FBSyxHQUFHO1lBQUVMLFVBQVU7UUFBTTtRQUMvQixJQUFJLENBQUNjLFFBQVEsR0FBRztRQUNoQixJQUFJLENBQUNOLGNBQWMsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQ0wsT0FBTyxpQkFBR3VCLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBO0lBQ2pCO0FBdUNGO01BRUEsV0FBZXZDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvZXJyb3JzL2dyYWNlZnVsLWRlZ3JhZGUtYm91bmRhcnkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIGNyZWF0ZVJlZiwgdHlwZSBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcblxuaW50ZXJmYWNlIEVycm9yQm91bmRhcnlQcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGVcbn1cblxuaW50ZXJmYWNlIEVycm9yQm91bmRhcnlTdGF0ZSB7XG4gIGhhc0Vycm9yOiBib29sZWFuXG59XG5cbmZ1bmN0aW9uIGdldERvbU5vZGVBdHRyaWJ1dGVzKG5vZGU6IEhUTUxFbGVtZW50KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5hdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYXR0ciA9IG5vZGUuYXR0cmlidXRlc1tpXVxuICAgIHJlc3VsdFthdHRyLm5hbWVdID0gYXR0ci52YWx1ZVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGNsYXNzIEdyYWNlZnVsRGVncmFkZUJvdW5kYXJ5IGV4dGVuZHMgQ29tcG9uZW50PFxuICBFcnJvckJvdW5kYXJ5UHJvcHMsXG4gIEVycm9yQm91bmRhcnlTdGF0ZVxuPiB7XG4gIHByaXZhdGUgcm9vdEh0bWw6IHN0cmluZ1xuICBwcml2YXRlIGh0bWxBdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIHByaXZhdGUgaHRtbFJlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxIdG1sRWxlbWVudCB8IG51bGw+XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IEVycm9yQm91bmRhcnlQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIHRoaXMuc3RhdGUgPSB7IGhhc0Vycm9yOiBmYWxzZSB9XG4gICAgdGhpcy5yb290SHRtbCA9ICcnXG4gICAgdGhpcy5odG1sQXR0cmlidXRlcyA9IHt9XG4gICAgdGhpcy5odG1sUmVmID0gY3JlYXRlUmVmPEhUTUxIdG1sRWxlbWVudD4oKVxuICB9XG5cbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihfOiB1bmtub3duKTogRXJyb3JCb3VuZGFyeVN0YXRlIHtcbiAgICByZXR1cm4geyBoYXNFcnJvcjogdHJ1ZSB9XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCBodG1sTm9kZSA9IHRoaXMuaHRtbFJlZi5jdXJyZW50XG4gICAgaWYgKHRoaXMuc3RhdGUuaGFzRXJyb3IgJiYgaHRtbE5vZGUpIHtcbiAgICAgIC8vIFJlYXBwbHkgdGhlIGNhY2hlZCBIVE1MIGF0dHJpYnV0ZXMgdG8gdGhlIHJvb3QgZWxlbWVudFxuICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5odG1sQXR0cmlidXRlcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGh0bWxOb2RlLnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBoYXNFcnJvciB9ID0gdGhpcy5zdGF0ZVxuICAgIC8vIENhY2hlIHRoZSByb290IEhUTUwgY29udGVudCBvbiB0aGUgZmlyc3QgcmVuZGVyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmICF0aGlzLnJvb3RIdG1sKSB7XG4gICAgICB0aGlzLnJvb3RIdG1sID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTFxuICAgICAgdGhpcy5odG1sQXR0cmlidXRlcyA9IGdldERvbU5vZGVBdHRyaWJ1dGVzKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudClcbiAgICB9XG5cbiAgICBpZiAoaGFzRXJyb3IpIHtcbiAgICAgIC8vIFJlbmRlciB0aGUgY3VycmVudCBIVE1MIGNvbnRlbnQgd2l0aG91dCBoeWRyYXRpb25cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxodG1sXG4gICAgICAgICAgcmVmPXt0aGlzLmh0bWxSZWZ9XG4gICAgICAgICAgc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXG4gICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgIF9faHRtbDogdGhpcy5yb290SHRtbCxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgR3JhY2VmdWxEZWdyYWRlQm91bmRhcnlcbiJdLCJuYW1lcyI6WyJHcmFjZWZ1bERlZ3JhZGVCb3VuZGFyeSIsImdldERvbU5vZGVBdHRyaWJ1dGVzIiwibm9kZSIsInJlc3VsdCIsImkiLCJhdHRyaWJ1dGVzIiwibGVuZ3RoIiwiYXR0ciIsIm5hbWUiLCJ2YWx1ZSIsIkNvbXBvbmVudCIsImdldERlcml2ZWRTdGF0ZUZyb21FcnJvciIsIl8iLCJoYXNFcnJvciIsImNvbXBvbmVudERpZE1vdW50IiwiaHRtbE5vZGUiLCJodG1sUmVmIiwiY3VycmVudCIsInN0YXRlIiwiT2JqZWN0IiwiZW50cmllcyIsImh0bWxBdHRyaWJ1dGVzIiwiZm9yRWFjaCIsImtleSIsInNldEF0dHJpYnV0ZSIsInJlbmRlciIsIndpbmRvdyIsInJvb3RIdG1sIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJpbm5lckhUTUwiLCJodG1sIiwicmVmIiwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJwcm9wcyIsImNoaWxkcmVuIiwiY29uc3RydWN0b3IiLCJjcmVhdGVSZWYiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/forbidden.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/client/components/forbidden.js ***!
\***************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"forbidden\", ({\n enumerable: true,\n get: function() {\n return forbidden;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\n// TODO: Add `forbidden` docs\n/**\n * @experimental\n * This function allows you to render the [forbidden.js file](https://nextjs.org/docs/app/api-reference/file-conventions/forbidden)\n * within a route segment as well as inject a tag.\n *\n * `forbidden()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * Read more: [Next.js Docs: `forbidden`](https://nextjs.org/docs/app/api-reference/functions/forbidden)\n */ const DIGEST = \"\" + _httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE + \";403\";\nfunction forbidden() {\n if (true) {\n throw Object.defineProperty(new Error(\"`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E488\",\n enumerable: false,\n configurable: true\n });\n }\n // eslint-disable-next-line no-throw-literal\n const error = Object.defineProperty(new Error(DIGEST), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = DIGEST;\n throw error;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=forbidden.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2ZvcmJpZGRlbi5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQXFCZ0JBOzs7ZUFBQUE7OztnREFsQlQ7QUFFUCw2QkFBNkI7QUFDN0I7Ozs7Ozs7Ozs7O0NBV0MsR0FFRCxNQUFNQyxTQUFVLEtBQUVDLG9CQUFBQSw4QkFBOEIsR0FBQztBQUUxQyxTQUFTRjtJQUNkLElBQUksSUFBZ0QsRUFBRTtRQUNwRCxNQUFNLHFCQUVMLENBRkssSUFBSU0sTUFDUCxnSEFERzttQkFBQTt3QkFBQTswQkFBQTtRQUVOO0lBQ0Y7SUFFQSw0Q0FBNEM7SUFDNUMsTUFBTUMsUUFBUSxxQkFBaUIsQ0FBakIsSUFBSUQsTUFBTUwsU0FBVjtlQUFBO29CQUFBO3NCQUFBO0lBQWdCO0lBQzVCTSxNQUFrQ0MsTUFBTSxHQUFHUDtJQUM3QyxNQUFNTTtBQUNSIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvZm9yYmlkZGVuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSxcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcblxuLy8gVE9ETzogQWRkIGBmb3JiaWRkZW5gIGRvY3Ncbi8qKlxuICogQGV4cGVyaW1lbnRhbFxuICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIHJlbmRlciB0aGUgW2ZvcmJpZGRlbi5qcyBmaWxlXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9maWxlLWNvbnZlbnRpb25zL2ZvcmJpZGRlbilcbiAqIHdpdGhpbiBhIHJvdXRlIHNlZ21lbnQgYXMgd2VsbCBhcyBpbmplY3QgYSB0YWcuXG4gKlxuICogYGZvcmJpZGRlbigpYCBjYW4gYmUgdXNlZCBpblxuICogW1NlcnZlciBDb21wb25lbnRzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLWNvbXBvbmVudHMpLFxuICogW1JvdXRlIEhhbmRsZXJzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL3JvdXRlLWhhbmRsZXJzKSwgYW5kXG4gKiBbU2VydmVyIEFjdGlvbnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL2RhdGEtZmV0Y2hpbmcvc2VydmVyLWFjdGlvbnMtYW5kLW11dGF0aW9ucykuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgZm9yYmlkZGVuYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL2ZvcmJpZGRlbilcbiAqL1xuXG5jb25zdCBESUdFU1QgPSBgJHtIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREV9OzQwM2BcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcmJpZGRlbigpOiBuZXZlciB7XG4gIGlmICghcHJvY2Vzcy5lbnYuX19ORVhUX0VYUEVSSU1FTlRBTF9BVVRIX0lOVEVSUlVQVFMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgXFxgZm9yYmlkZGVuKClcXGAgaXMgZXhwZXJpbWVudGFsIGFuZCBvbmx5IGFsbG93ZWQgdG8gYmUgZW5hYmxlZCB3aGVuIFxcYGV4cGVyaW1lbnRhbC5hdXRoSW50ZXJydXB0c1xcYCBpcyBlbmFibGVkLmBcbiAgICApXG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihESUdFU1QpIGFzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4gIDsoZXJyb3IgYXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpLmRpZ2VzdCA9IERJR0VTVFxuICB0aHJvdyBlcnJvclxufVxuIl0sIm5hbWVzIjpbImZvcmJpZGRlbiIsIkRJR0VTVCIsIkhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfRVhQRVJJTUVOVEFMX0FVVEhfSU5URVJSVVBUUyIsIkVycm9yIiwiZXJyb3IiLCJkaWdlc3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/forbidden.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/client/components/handle-isr-error.js ***!
\**********************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HandleISRError\", ({\n enumerable: true,\n get: function() {\n return HandleISRError;\n }\n}));\nconst workAsyncStorage = true ? (__webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\").workAsyncStorage) : 0;\nfunction HandleISRError(param) {\n let { error } = param;\n if (workAsyncStorage) {\n const store = workAsyncStorage.getStore();\n if ((store == null ? void 0 : store.isRevalidate) || (store == null ? void 0 : store.isStaticGeneration)) {\n console.error(error);\n throw error;\n }\n }\n return null;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=handle-isr-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hhbmRsZS1pc3ItZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFVZ0JBOzs7ZUFBQUE7OztBQVZoQixNQUFNQyxtQkFDSixLQUE2QixHQUV2QkUsa0lBQ2dCLEdBQ2xCQyxDQUFTQTtBQUtSLFNBQVNKLGVBQWUsS0FBeUI7SUFBekIsTUFBRUssS0FBSyxFQUFrQixHQUF6QjtJQUM3QixJQUFJSixrQkFBa0I7UUFDcEIsTUFBTUssUUFBUUwsaUJBQWlCTSxRQUFRO1FBQ3ZDLElBQUlELENBQUFBLFNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE1BQU9FLFlBQUFBLE1BQWdCRixTQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxNQUFPRyxrQkFBQUEsR0FBb0I7WUFDcERDLFFBQVFMLEtBQUssQ0FBQ0E7WUFDZCxNQUFNQTtRQUNSO0lBQ0Y7SUFFQSxPQUFPO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9oYW5kbGUtaXNyLWVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB3b3JrQXN5bmNTdG9yYWdlID1cbiAgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCdcbiAgICA/IChcbiAgICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJylcbiAgICAgICkud29ya0FzeW5jU3RvcmFnZVxuICAgIDogdW5kZWZpbmVkXG5cbi8vIGlmIHdlIGFyZSByZXZhbGlkYXRpbmcgd2Ugd2FudCB0byByZS10aHJvdyB0aGUgZXJyb3Igc28gdGhlXG4vLyBmdW5jdGlvbiBjcmFzaGVzIHNvIHdlIGNhbiBtYWludGFpbiBvdXIgcHJldmlvdXMgY2FjaGVcbi8vIGluc3RlYWQgb2YgY2FjaGluZyB0aGUgZXJyb3IgcGFnZVxuZXhwb3J0IGZ1bmN0aW9uIEhhbmRsZUlTUkVycm9yKHsgZXJyb3IgfTogeyBlcnJvcjogYW55IH0pIHtcbiAgaWYgKHdvcmtBc3luY1N0b3JhZ2UpIHtcbiAgICBjb25zdCBzdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICAgIGlmIChzdG9yZT8uaXNSZXZhbGlkYXRlIHx8IHN0b3JlPy5pc1N0YXRpY0dlbmVyYXRpb24pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiSGFuZGxlSVNSRXJyb3IiLCJ3b3JrQXN5bmNTdG9yYWdlIiwid2luZG93IiwicmVxdWlyZSIsInVuZGVmaW5lZCIsImVycm9yIiwic3RvcmUiLCJnZXRTdG9yZSIsImlzUmV2YWxpZGF0ZSIsImlzU3RhdGljR2VuZXJhdGlvbiIsImNvbnNvbGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/handle-isr-error.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/client/components/hooks-server-context.js ***!
\**************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DynamicServerError: function() {\n return DynamicServerError;\n },\n isDynamicServerError: function() {\n return isDynamicServerError;\n }\n});\nconst DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE';\nclass DynamicServerError extends Error {\n constructor(description){\n super(\"Dynamic server usage: \" + description), this.description = description, this.digest = DYNAMIC_ERROR_CODE;\n }\n}\nfunction isDynamicServerError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') {\n return false;\n }\n return err.digest === DYNAMIC_ERROR_CODE;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hooks-server-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2hvb2tzLXNlcnZlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxrQkFBa0I7ZUFBbEJBOztJQVFHQyxvQkFBb0I7ZUFBcEJBOzs7QUFWaEIsTUFBTUMscUJBQXFCO0FBRXBCLE1BQU1GLDJCQUEyQkc7SUFHdENDLFlBQTRCQyxXQUFtQixDQUFFO1FBQy9DLEtBQUssQ0FBRSwyQkFBd0JBLGNBQUFBLElBQUFBLENBRExBLFdBQUFBLEdBQUFBLGFBQUFBLElBQUFBLENBRjVCQyxNQUFBQSxHQUFvQ0o7SUFJcEM7QUFDRjtBQUVPLFNBQVNELHFCQUFxQk0sR0FBWTtJQUMvQyxJQUNFLE9BQU9BLFFBQVEsWUFDZkEsUUFBUSxRQUNSLENBQUUsYUFBWUEsR0FBQUEsQ0FBRSxJQUNoQixPQUFPQSxJQUFJRCxNQUFNLEtBQUssVUFDdEI7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQyxJQUFJRCxNQUFNLEtBQUtKO0FBQ3hCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgRFlOQU1JQ19FUlJPUl9DT0RFID0gJ0RZTkFNSUNfU0VSVkVSX1VTQUdFJ1xuXG5leHBvcnQgY2xhc3MgRHluYW1pY1NlcnZlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBkaWdlc3Q6IHR5cGVvZiBEWU5BTUlDX0VSUk9SX0NPREUgPSBEWU5BTUlDX0VSUk9SX0NPREVcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZykge1xuICAgIHN1cGVyKGBEeW5hbWljIHNlcnZlciB1c2FnZTogJHtkZXNjcmlwdGlvbn1gKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0R5bmFtaWNTZXJ2ZXJFcnJvcihlcnI6IHVua25vd24pOiBlcnIgaXMgRHluYW1pY1NlcnZlckVycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8XG4gICAgZXJyID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnIpIHx8XG4gICAgdHlwZW9mIGVyci5kaWdlc3QgIT09ICdzdHJpbmcnXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIGVyci5kaWdlc3QgPT09IERZTkFNSUNfRVJST1JfQ09ERVxufVxuIl0sIm5hbWVzIjpbIkR5bmFtaWNTZXJ2ZXJFcnJvciIsImlzRHluYW1pY1NlcnZlckVycm9yIiwiRFlOQU1JQ19FUlJPUl9DT0RFIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImRlc2NyaXB0aW9uIiwiZGlnZXN0IiwiZXJyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js ***!
\*****************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTTPAccessFallbackBoundary\", ({\n enumerable: true,\n get: function() {\n return HTTPAccessFallbackBoundary;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _navigationuntracked = __webpack_require__(/*! ../navigation-untracked */ \"(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\");\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _warnonce = __webpack_require__(/*! ../../../shared/lib/utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nclass HTTPAccessFallbackErrorBoundary extends _react.default.Component {\n componentDidCatch() {\n if ( true && this.props.missingSlots && this.props.missingSlots.size > 0 && // A missing children slot is the typical not-found case, so no need to warn\n !this.props.missingSlots.has('children')) {\n let warningMessage = 'No default component was found for a parallel route rendered on this page. Falling back to nearest NotFound boundary.\\n' + 'Learn more: https://nextjs.org/docs/app/building-your-application/routing/parallel-routes#defaultjs\\n\\n';\n const formattedSlots = Array.from(this.props.missingSlots).sort((a, b)=>a.localeCompare(b)).map((slot)=>\"@\" + slot).join(', ');\n warningMessage += 'Missing slots: ' + formattedSlots;\n (0, _warnonce.warnOnce)(warningMessage);\n }\n }\n static getDerivedStateFromError(error) {\n if ((0, _httpaccessfallback.isHTTPAccessFallbackError)(error)) {\n const httpStatus = (0, _httpaccessfallback.getAccessFallbackHTTPStatus)(error);\n return {\n triggeredStatus: httpStatus\n };\n }\n // Re-throw if error is not for 404\n throw error;\n }\n static getDerivedStateFromProps(props, state) {\n /**\n * Handles reset of the error boundary when a navigation happens.\n * Ensures the error boundary does not stay enabled when navigating to a new page.\n * Approach of setState in render is safe as it checks the previous pathname and then overrides\n * it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders\n */ if (props.pathname !== state.previousPathname && state.triggeredStatus) {\n return {\n triggeredStatus: undefined,\n previousPathname: props.pathname\n };\n }\n return {\n triggeredStatus: state.triggeredStatus,\n previousPathname: props.pathname\n };\n }\n render() {\n const { notFound, forbidden, unauthorized, children } = this.props;\n const { triggeredStatus } = this.state;\n const errorComponents = {\n [_httpaccessfallback.HTTPAccessErrorStatus.NOT_FOUND]: notFound,\n [_httpaccessfallback.HTTPAccessErrorStatus.FORBIDDEN]: forbidden,\n [_httpaccessfallback.HTTPAccessErrorStatus.UNAUTHORIZED]: unauthorized\n };\n if (triggeredStatus) {\n const isNotFound = triggeredStatus === _httpaccessfallback.HTTPAccessErrorStatus.NOT_FOUND && notFound;\n const isForbidden = triggeredStatus === _httpaccessfallback.HTTPAccessErrorStatus.FORBIDDEN && forbidden;\n const isUnauthorized = triggeredStatus === _httpaccessfallback.HTTPAccessErrorStatus.UNAUTHORIZED && unauthorized;\n // If there's no matched boundary in this layer, keep throwing the error by rendering the children\n if (!(isNotFound || isForbidden || isUnauthorized)) {\n return children;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"robots\",\n content: \"noindex\"\n }),\n true && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"boundary-next-error\",\n content: (0, _httpaccessfallback.getAccessFallbackErrorTypeByStatus)(triggeredStatus)\n }),\n errorComponents[triggeredStatus]\n ]\n });\n }\n return children;\n }\n constructor(props){\n super(props);\n this.state = {\n triggeredStatus: undefined,\n previousPathname: props.pathname\n };\n }\n}\nfunction HTTPAccessFallbackBoundary(param) {\n let { notFound, forbidden, unauthorized, children } = param;\n // When we're rendering the missing params shell, this will return null. This\n // is because we won't be rendering any not found boundaries or error\n // boundaries for the missing params shell. When this runs on the client\n // (where these error can occur), we will get the correct pathname.\n const pathname = (0, _navigationuntracked.useUntrackedPathname)();\n const missingSlots = (0, _react.useContext)(_approutercontextsharedruntime.MissingSlotContext);\n const hasErrorFallback = !!(notFound || forbidden || unauthorized);\n if (hasErrorFallback) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(HTTPAccessFallbackErrorBoundary, {\n pathname: pathname,\n notFound: notFound,\n forbidden: forbidden,\n unauthorized: unauthorized,\n missingSlots: missingSlots,\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=error-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7OERBdUpnQkE7OztlQUFBQTs7Ozs7NkVBMUlrQjtpREFDRztnREFNOUI7c0NBQ2tCOzJEQUNVO0FBcUJuQyxNQUFNQyx3Q0FBd0NDLE9BQUFBLE9BQUssQ0FBQ0MsU0FBUztJQVkzREMsb0JBQTBCO1FBQ3hCLElBQ0VDLEtBQW9CLElBQ3BCLElBQUksQ0FBQ0csS0FBSyxDQUFDQyxZQUFZLElBQ3ZCLElBQUksQ0FBQ0QsS0FBSyxDQUFDQyxZQUFZLENBQUNDLElBQUksR0FBRyxLQUMvQiw0RUFBNEU7UUFDNUUsQ0FBQyxJQUFJLENBQUNGLEtBQUssQ0FBQ0MsWUFBWSxDQUFDRSxHQUFHLENBQUMsYUFDN0I7WUFDQSxJQUFJQyxpQkFDRiw0SEFDQTtZQUVGLE1BQU1DLGlCQUFpQkMsTUFBTUMsSUFBSSxDQUFDLElBQUksQ0FBQ1AsS0FBSyxDQUFDQyxZQUFZLEVBQ3RETyxJQUFJLENBQUMsQ0FBQ0MsR0FBR0MsSUFBTUQsRUFBRUUsYUFBYSxDQUFDRCxJQUMvQkUsR0FBRyxDQUFDLENBQUNDLE9BQVUsTUFBR0EsTUFDbEJDLElBQUksQ0FBQztZQUVSVixrQkFBa0Isb0JBQW9CQztZQUV0Q1UsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFBU1g7UUFDWDtJQUNGO0lBRUEsT0FBT1kseUJBQXlCQyxLQUFVLEVBQUU7UUFDMUMsSUFBSUMsQ0FBQUEsR0FBQUEsb0JBQUFBLHlCQUF5QixFQUFDRCxRQUFRO1lBQ3BDLE1BQU1FLGFBQWFDLENBQUFBLEdBQUFBLG9CQUFBQSwyQkFBQUEsRUFBNEJIO1lBQy9DLE9BQU87Z0JBQ0xJLGlCQUFpQkY7WUFDbkI7UUFDRjtRQUNBLG1DQUFtQztRQUNuQyxNQUFNRjtJQUNSO0lBRUEsT0FBT0sseUJBQ0x0QixLQUEyQyxFQUMzQ3VCLEtBQThCLEVBQ0U7UUFDaEM7Ozs7O0tBS0MsR0FDRCxJQUFJdkIsTUFBTXdCLFFBQVEsS0FBS0QsTUFBTUUsZ0JBQWdCLElBQUlGLE1BQU1GLGVBQWUsRUFBRTtZQUN0RSxPQUFPO2dCQUNMQSxpQkFBaUJLO2dCQUNqQkQsa0JBQWtCekIsTUFBTXdCLFFBQVE7WUFDbEM7UUFDRjtRQUNBLE9BQU87WUFDTEgsaUJBQWlCRSxNQUFNRixlQUFlO1lBQ3RDSSxrQkFBa0J6QixNQUFNd0IsUUFBUTtRQUNsQztJQUNGO0lBRUFHLFNBQVM7UUFDUCxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxZQUFZLEVBQUVDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQy9CLEtBQUs7UUFDbEUsTUFBTSxFQUFFcUIsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDRSxLQUFLO1FBQ3RDLE1BQU1TLGtCQUFrQjtZQUN0QixDQUFDQyxvQkFBQUEscUJBQXFCLENBQUNDLFNBQVMsQ0FBQyxFQUFFTjtZQUNuQyxDQUFDSyxvQkFBQUEscUJBQXFCLENBQUNFLFNBQVMsQ0FBQyxFQUFFTjtZQUNuQyxDQUFDSSxvQkFBQUEscUJBQXFCLENBQUNHLFlBQVksQ0FBQyxFQUFFTjtRQUN4QztRQUVBLElBQUlULGlCQUFpQjtZQUNuQixNQUFNZ0IsYUFDSmhCLG9CQUFvQlksb0JBQUFBLHFCQUFxQixDQUFDQyxTQUFTLElBQUlOO1lBQ3pELE1BQU1VLGNBQ0pqQixvQkFBb0JZLG9CQUFBQSxxQkFBcUIsQ0FBQ0UsU0FBUyxJQUFJTjtZQUN6RCxNQUFNVSxpQkFDSmxCLG9CQUFvQlksb0JBQUFBLHFCQUFxQixDQUFDRyxZQUFZLElBQUlOO1lBRTVELGtHQUFrRztZQUNsRyxJQUFJLENBQUVPLENBQUFBLGNBQWNDLGVBQWVDLGNBQUFBLENBQWEsRUFBSTtnQkFDbEQsT0FBT1I7WUFDVDtZQUVBLHFCQUNFOztrQ0FDRSxxQkFBQ1MsUUFBQUE7d0JBQUtDLE1BQUs7d0JBQVNDLFNBQVE7O3lCQUNXLElBQWIsY0FDeEIscUJBQUNGLFFBQUFBO3dCQUNDQyxNQUFLO3dCQUNMQyxTQUFTQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0NBQUFBLEVBQW1DdEI7O29CQUcvQ1csZUFBZSxDQUFDWCxnQkFBZ0I7OztRQUd2QztRQUVBLE9BQU9VO0lBQ1Q7SUFyR0FhLFlBQVk1QyxLQUEyQyxDQUFFO1FBQ3ZELEtBQUssQ0FBQ0E7UUFDTixJQUFJLENBQUN1QixLQUFLLEdBQUc7WUFDWEYsaUJBQWlCSztZQUNqQkQsa0JBQWtCekIsTUFBTXdCLFFBQVE7UUFDbEM7SUFDRjtBQWdHRjtBQUVPLFNBQVNoQywyQkFBMkIsS0FLVDtJQUxTLE1BQ3pDb0MsUUFBUSxFQUNSQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsUUFBUSxFQUN3QixHQUxTO0lBTXpDLDZFQUE2RTtJQUM3RSxxRUFBcUU7SUFDckUsd0VBQXdFO0lBQ3hFLG1FQUFtRTtJQUNuRSxNQUFNUCxXQUFXcUIsQ0FBQUEsR0FBQUEscUJBQUFBLG9CQUFBQTtJQUNqQixNQUFNNUMsZUFBZTZDLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdDLCtCQUFBQSxrQkFBa0I7SUFDbEQsTUFBTUMsbUJBQW1CLENBQUMsQ0FBRXBCLENBQUFBLFlBQVlDLGFBQWFDLFlBQUFBLENBQVc7SUFFaEUsSUFBSWtCLGtCQUFrQjtRQUNwQixPQUNFLFdBREYsR0FDRSxxQkFBQ3ZELGlDQUFBQTtZQUNDK0IsVUFBVUE7WUFDVkksVUFBVUE7WUFDVkMsV0FBV0E7WUFDWEMsY0FBY0E7WUFDZDdCLGNBQWNBO3NCQUViOEI7O0lBR1A7SUFFQSxxQkFBTztrQkFBR0E7O0FBQ1oiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1ib3VuZGFyeS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbi8qKlxuICogSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnkgaXMgYSBib3VuZGFyeSB0aGF0IGNhdGNoZXMgZXJyb3JzIGFuZCByZW5kZXJzIGFcbiAqIGZhbGxiYWNrIGNvbXBvbmVudCBmb3IgSFRUUCBlcnJvcnMuXG4gKlxuICogSXQgcmVjZWl2ZXMgdGhlIHN0YXR1cyBjb2RlLCBhbmQgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCByZW5kZXIgZmFsbGJhY2tzIGZvciBmZXcgSFRUUCA0eHggZXJyb3JzLlxuICpcbiAqIGUuZy4gNDA0XG4gKiA0MDQgcmVwcmVzZW50cyBub3QgZm91bmQsIGFuZCB0aGUgZmFsbGJhY2sgY29tcG9uZW50IHBhaXIgY29udGFpbnMgdGhlIGNvbXBvbmVudCBhbmQgaXRzIHN0eWxlcy5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVVudHJhY2tlZFBhdGhuYW1lIH0gZnJvbSAnLi4vbmF2aWdhdGlvbi11bnRyYWNrZWQnXG5pbXBvcnQge1xuICBIVFRQQWNjZXNzRXJyb3JTdGF0dXMsXG4gIGdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyxcbiAgZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyxcbiAgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjaydcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi91dGlscy93YXJuLW9uY2UnXG5pbXBvcnQgeyBNaXNzaW5nU2xvdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcblxuaW50ZXJmYWNlIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5UHJvcHMge1xuICBub3RGb3VuZD86IFJlYWN0LlJlYWN0Tm9kZVxuICBmb3JiaWRkZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgdW5hdXRob3JpemVkPzogUmVhY3QuUmVhY3ROb2RlXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgbWlzc2luZ1Nsb3RzPzogU2V0PHN0cmluZz5cbn1cblxuaW50ZXJmYWNlIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnlQcm9wc1xuICBleHRlbmRzIEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5UHJvcHMge1xuICBwYXRobmFtZTogc3RyaW5nIHwgbnVsbFxuICBtaXNzaW5nU2xvdHM/OiBTZXQ8c3RyaW5nPlxufVxuXG5pbnRlcmZhY2UgSFRUUEFjY2Vzc0JvdW5kYXJ5U3RhdGUge1xuICB0cmlnZ2VyZWRTdGF0dXM6IG51bWJlciB8IHVuZGVmaW5lZFxuICBwcmV2aW91c1BhdGhuYW1lOiBzdHJpbmcgfCBudWxsXG59XG5cbmNsYXNzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnkgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8XG4gIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnlQcm9wcyxcbiAgSFRUUEFjY2Vzc0JvdW5kYXJ5U3RhdGVcbj4ge1xuICBjb25zdHJ1Y3Rvcihwcm9wczogSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JCb3VuZGFyeVByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIHRyaWdnZXJlZFN0YXR1czogdW5kZWZpbmVkLFxuICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkQ2F0Y2goKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiZcbiAgICAgIHRoaXMucHJvcHMubWlzc2luZ1Nsb3RzICYmXG4gICAgICB0aGlzLnByb3BzLm1pc3NpbmdTbG90cy5zaXplID4gMCAmJlxuICAgICAgLy8gQSBtaXNzaW5nIGNoaWxkcmVuIHNsb3QgaXMgdGhlIHR5cGljYWwgbm90LWZvdW5kIGNhc2UsIHNvIG5vIG5lZWQgdG8gd2FyblxuICAgICAgIXRoaXMucHJvcHMubWlzc2luZ1Nsb3RzLmhhcygnY2hpbGRyZW4nKVxuICAgICkge1xuICAgICAgbGV0IHdhcm5pbmdNZXNzYWdlID1cbiAgICAgICAgJ05vIGRlZmF1bHQgY29tcG9uZW50IHdhcyBmb3VuZCBmb3IgYSBwYXJhbGxlbCByb3V0ZSByZW5kZXJlZCBvbiB0aGlzIHBhZ2UuIEZhbGxpbmcgYmFjayB0byBuZWFyZXN0IE5vdEZvdW5kIGJvdW5kYXJ5LlxcbicgK1xuICAgICAgICAnTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9wYXJhbGxlbC1yb3V0ZXMjZGVmYXVsdGpzXFxuXFxuJ1xuXG4gICAgICBjb25zdCBmb3JtYXR0ZWRTbG90cyA9IEFycmF5LmZyb20odGhpcy5wcm9wcy5taXNzaW5nU2xvdHMpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpXG4gICAgICAgIC5tYXAoKHNsb3QpID0+IGBAJHtzbG90fWApXG4gICAgICAgIC5qb2luKCcsICcpXG5cbiAgICAgIHdhcm5pbmdNZXNzYWdlICs9ICdNaXNzaW5nIHNsb3RzOiAnICsgZm9ybWF0dGVkU2xvdHNcblxuICAgICAgd2Fybk9uY2Uod2FybmluZ01lc3NhZ2UpXG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlcnJvcjogYW55KSB7XG4gICAgaWYgKGlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IoZXJyb3IpKSB7XG4gICAgICBjb25zdCBodHRwU3RhdHVzID0gZ2V0QWNjZXNzRmFsbGJhY2tIVFRQU3RhdHVzKGVycm9yKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHJpZ2dlcmVkU3RhdHVzOiBodHRwU3RhdHVzLFxuICAgICAgfVxuICAgIH1cbiAgICAvLyBSZS10aHJvdyBpZiBlcnJvciBpcyBub3QgZm9yIDQwNFxuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKFxuICAgIHByb3BzOiBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvckJvdW5kYXJ5UHJvcHMsXG4gICAgc3RhdGU6IEhUVFBBY2Nlc3NCb3VuZGFyeVN0YXRlXG4gICk6IEhUVFBBY2Nlc3NCb3VuZGFyeVN0YXRlIHwgbnVsbCB7XG4gICAgLyoqXG4gICAgICogSGFuZGxlcyByZXNldCBvZiB0aGUgZXJyb3IgYm91bmRhcnkgd2hlbiBhIG5hdmlnYXRpb24gaGFwcGVucy5cbiAgICAgKiBFbnN1cmVzIHRoZSBlcnJvciBib3VuZGFyeSBkb2VzIG5vdCBzdGF5IGVuYWJsZWQgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2UuXG4gICAgICogQXBwcm9hY2ggb2Ygc2V0U3RhdGUgaW4gcmVuZGVyIGlzIHNhZmUgYXMgaXQgY2hlY2tzIHRoZSBwcmV2aW91cyBwYXRobmFtZSBhbmQgdGhlbiBvdmVycmlkZXNcbiAgICAgKiBpdCBhcyBvdXRsaW5lZCBpbiBodHRwczovL3JlYWN0LmRldi9yZWZlcmVuY2UvcmVhY3QvdXNlU3RhdGUjc3RvcmluZy1pbmZvcm1hdGlvbi1mcm9tLXByZXZpb3VzLXJlbmRlcnNcbiAgICAgKi9cbiAgICBpZiAocHJvcHMucGF0aG5hbWUgIT09IHN0YXRlLnByZXZpb3VzUGF0aG5hbWUgJiYgc3RhdGUudHJpZ2dlcmVkU3RhdHVzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0cmlnZ2VyZWRTdGF0dXM6IHVuZGVmaW5lZCxcbiAgICAgICAgcHJldmlvdXNQYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB0cmlnZ2VyZWRTdGF0dXM6IHN0YXRlLnRyaWdnZXJlZFN0YXR1cyxcbiAgICAgIHByZXZpb3VzUGF0aG5hbWU6IHByb3BzLnBhdGhuYW1lLFxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IG5vdEZvdW5kLCBmb3JiaWRkZW4sIHVuYXV0aG9yaXplZCwgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB7IHRyaWdnZXJlZFN0YXR1cyB9ID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IGVycm9yQ29tcG9uZW50cyA9IHtcbiAgICAgIFtIVFRQQWNjZXNzRXJyb3JTdGF0dXMuTk9UX0ZPVU5EXTogbm90Rm91bmQsXG4gICAgICBbSFRUUEFjY2Vzc0Vycm9yU3RhdHVzLkZPUkJJRERFTl06IGZvcmJpZGRlbixcbiAgICAgIFtIVFRQQWNjZXNzRXJyb3JTdGF0dXMuVU5BVVRIT1JJWkVEXTogdW5hdXRob3JpemVkLFxuICAgIH1cblxuICAgIGlmICh0cmlnZ2VyZWRTdGF0dXMpIHtcbiAgICAgIGNvbnN0IGlzTm90Rm91bmQgPVxuICAgICAgICB0cmlnZ2VyZWRTdGF0dXMgPT09IEhUVFBBY2Nlc3NFcnJvclN0YXR1cy5OT1RfRk9VTkQgJiYgbm90Rm91bmRcbiAgICAgIGNvbnN0IGlzRm9yYmlkZGVuID1cbiAgICAgICAgdHJpZ2dlcmVkU3RhdHVzID09PSBIVFRQQWNjZXNzRXJyb3JTdGF0dXMuRk9SQklEREVOICYmIGZvcmJpZGRlblxuICAgICAgY29uc3QgaXNVbmF1dGhvcml6ZWQgPVxuICAgICAgICB0cmlnZ2VyZWRTdGF0dXMgPT09IEhUVFBBY2Nlc3NFcnJvclN0YXR1cy5VTkFVVEhPUklaRUQgJiYgdW5hdXRob3JpemVkXG5cbiAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gbWF0Y2hlZCBib3VuZGFyeSBpbiB0aGlzIGxheWVyLCBrZWVwIHRocm93aW5nIHRoZSBlcnJvciBieSByZW5kZXJpbmcgdGhlIGNoaWxkcmVuXG4gICAgICBpZiAoIShpc05vdEZvdW5kIHx8IGlzRm9yYmlkZGVuIHx8IGlzVW5hdXRob3JpemVkKSkge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8bWV0YSBuYW1lPVwicm9ib3RzXCIgY29udGVudD1cIm5vaW5kZXhcIiAvPlxuICAgICAgICAgIHtwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiAoXG4gICAgICAgICAgICA8bWV0YVxuICAgICAgICAgICAgICBuYW1lPVwiYm91bmRhcnktbmV4dC1lcnJvclwiXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2dldEFjY2Vzc0ZhbGxiYWNrRXJyb3JUeXBlQnlTdGF0dXModHJpZ2dlcmVkU3RhdHVzKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7ZXJyb3JDb21wb25lbnRzW3RyaWdnZXJlZFN0YXR1c119XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBjaGlsZHJlblxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeSh7XG4gIG5vdEZvdW5kLFxuICBmb3JiaWRkZW4sXG4gIHVuYXV0aG9yaXplZCxcbiAgY2hpbGRyZW4sXG59OiBIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeVByb3BzKSB7XG4gIC8vIFdoZW4gd2UncmUgcmVuZGVyaW5nIHRoZSBtaXNzaW5nIHBhcmFtcyBzaGVsbCwgdGhpcyB3aWxsIHJldHVybiBudWxsLiBUaGlzXG4gIC8vIGlzIGJlY2F1c2Ugd2Ugd29uJ3QgYmUgcmVuZGVyaW5nIGFueSBub3QgZm91bmQgYm91bmRhcmllcyBvciBlcnJvclxuICAvLyBib3VuZGFyaWVzIGZvciB0aGUgbWlzc2luZyBwYXJhbXMgc2hlbGwuIFdoZW4gdGhpcyBydW5zIG9uIHRoZSBjbGllbnRcbiAgLy8gKHdoZXJlIHRoZXNlIGVycm9yIGNhbiBvY2N1ciksIHdlIHdpbGwgZ2V0IHRoZSBjb3JyZWN0IHBhdGhuYW1lLlxuICBjb25zdCBwYXRobmFtZSA9IHVzZVVudHJhY2tlZFBhdGhuYW1lKClcbiAgY29uc3QgbWlzc2luZ1Nsb3RzID0gdXNlQ29udGV4dChNaXNzaW5nU2xvdENvbnRleHQpXG4gIGNvbnN0IGhhc0Vycm9yRmFsbGJhY2sgPSAhIShub3RGb3VuZCB8fCBmb3JiaWRkZW4gfHwgdW5hdXRob3JpemVkKVxuXG4gIGlmIChoYXNFcnJvckZhbGxiYWNrKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxIVFRQQWNjZXNzRmFsbGJhY2tFcnJvckJvdW5kYXJ5XG4gICAgICAgIHBhdGhuYW1lPXtwYXRobmFtZX1cbiAgICAgICAgbm90Rm91bmQ9e25vdEZvdW5kfVxuICAgICAgICBmb3JiaWRkZW49e2ZvcmJpZGRlbn1cbiAgICAgICAgdW5hdXRob3JpemVkPXt1bmF1dGhvcml6ZWR9XG4gICAgICAgIG1pc3NpbmdTbG90cz17bWlzc2luZ1Nsb3RzfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yQm91bmRhcnk+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPlxufVxuIl0sIm5hbWVzIjpbIkhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5IiwiSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JCb3VuZGFyeSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29tcG9uZW50RGlkQ2F0Y2giLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJwcm9wcyIsIm1pc3NpbmdTbG90cyIsInNpemUiLCJoYXMiLCJ3YXJuaW5nTWVzc2FnZSIsImZvcm1hdHRlZFNsb3RzIiwiQXJyYXkiLCJmcm9tIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsIm1hcCIsInNsb3QiLCJqb2luIiwid2Fybk9uY2UiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsImlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IiLCJodHRwU3RhdHVzIiwiZ2V0QWNjZXNzRmFsbGJhY2tIVFRQU3RhdHVzIiwidHJpZ2dlcmVkU3RhdHVzIiwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIiwic3RhdGUiLCJwYXRobmFtZSIsInByZXZpb3VzUGF0aG5hbWUiLCJ1bmRlZmluZWQiLCJyZW5kZXIiLCJub3RGb3VuZCIsImZvcmJpZGRlbiIsInVuYXV0aG9yaXplZCIsImNoaWxkcmVuIiwiZXJyb3JDb21wb25lbnRzIiwiSFRUUEFjY2Vzc0Vycm9yU3RhdHVzIiwiTk9UX0ZPVU5EIiwiRk9SQklEREVOIiwiVU5BVVRIT1JJWkVEIiwiaXNOb3RGb3VuZCIsImlzRm9yYmlkZGVuIiwiaXNVbmF1dGhvcml6ZWQiLCJtZXRhIiwibmFtZSIsImNvbnRlbnQiLCJnZXRBY2Nlc3NGYWxsYmFja0Vycm9yVHlwZUJ5U3RhdHVzIiwiY29uc3RydWN0b3IiLCJ1c2VVbnRyYWNrZWRQYXRobmFtZSIsInVzZUNvbnRleHQiLCJNaXNzaW5nU2xvdENvbnRleHQiLCJoYXNFcnJvckZhbGxiYWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js":
/*!***********************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js ***!
\***********************************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTTPAccessErrorStatus: function() {\n return HTTPAccessErrorStatus;\n },\n HTTP_ERROR_FALLBACK_ERROR_CODE: function() {\n return HTTP_ERROR_FALLBACK_ERROR_CODE;\n },\n getAccessFallbackErrorTypeByStatus: function() {\n return getAccessFallbackErrorTypeByStatus;\n },\n getAccessFallbackHTTPStatus: function() {\n return getAccessFallbackHTTPStatus;\n },\n isHTTPAccessFallbackError: function() {\n return isHTTPAccessFallbackError;\n }\n});\nconst HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401\n};\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));\nconst HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';\nfunction isHTTPAccessFallbackError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const [prefix, httpStatus] = error.digest.split(';');\n return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));\n}\nfunction getAccessFallbackHTTPStatus(error) {\n const httpStatus = error.digest.split(';')[1];\n return Number(httpStatus);\n}\nfunction getAccessFallbackErrorTypeByStatus(status) {\n switch(status){\n case 401:\n return 'unauthorized';\n case 403:\n return 'forbidden';\n case 404:\n return 'not-found';\n default:\n return;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=http-access-fallback.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2h0dHAtYWNjZXNzLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxxQkFBcUI7ZUFBckJBOztJQVFBQyw4QkFBOEI7ZUFBOUJBOztJQXVDR0Msa0NBQWtDO2VBQWxDQTs7SUFQQUMsMkJBQTJCO2VBQTNCQTs7SUFuQkFDLHlCQUF5QjtlQUF6QkE7OztBQXJCVCxNQUFNSix3QkFBd0I7SUFDbkNLLFdBQVc7SUFDWEMsV0FBVztJQUNYQyxjQUFjO0FBQ2hCO0FBRUEsTUFBTUMsZ0JBQWdCLElBQUlDLElBQUlDLE9BQU9DLE1BQU0sQ0FBQ1g7QUFFckMsTUFBTUMsaUNBQWlDO0FBYXZDLFNBQVNHLDBCQUNkUSxLQUFjO0lBRWQsSUFDRSxPQUFPQSxVQUFVLFlBQ2pCQSxVQUFVLFFBQ1YsQ0FBRSxhQUFZQSxLQUFBQSxDQUFJLElBQ2xCLE9BQU9BLE1BQU1DLE1BQU0sS0FBSyxVQUN4QjtRQUNBLE9BQU87SUFDVDtJQUNBLE1BQU0sQ0FBQ0MsUUFBUUMsV0FBVyxHQUFHSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUVoRCxPQUNFRixXQUFXYixrQ0FDWE8sY0FBY1MsR0FBRyxDQUFDQyxPQUFPSDtBQUU3QjtBQUVPLFNBQVNaLDRCQUNkUyxLQUE4QjtJQUU5QixNQUFNRyxhQUFhSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUM3QyxPQUFPRSxPQUFPSDtBQUNoQjtBQUVPLFNBQVNiLG1DQUNkaUIsTUFBYztJQUVkLE9BQVFBO1FBQ04sS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1Q7WUFDRTtJQUNKO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSFRUUEFjY2Vzc0Vycm9yU3RhdHVzID0ge1xuICBOT1RfRk9VTkQ6IDQwNCxcbiAgRk9SQklEREVOOiA0MDMsXG4gIFVOQVVUSE9SSVpFRDogNDAxLFxufVxuXG5jb25zdCBBTExPV0VEX0NPREVTID0gbmV3IFNldChPYmplY3QudmFsdWVzKEhUVFBBY2Nlc3NFcnJvclN0YXR1cykpXG5cbmV4cG9ydCBjb25zdCBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUgPSAnTkVYVF9IVFRQX0VSUk9SX0ZBTExCQUNLJ1xuXG5leHBvcnQgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciA9IEVycm9yICYge1xuICBkaWdlc3Q6IGAke3R5cGVvZiBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREV9OyR7c3RyaW5nfWBcbn1cblxuLyoqXG4gKiBDaGVja3MgYW4gZXJyb3IgdG8gZGV0ZXJtaW5lIGlmIGl0J3MgYW4gZXJyb3IgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgSFRUUCBuYXZpZ2F0aW9uIEFQSXMgYG5vdEZvdW5kKClgLCBgZm9yYmlkZGVuKClgIG9yIGB1bmF1dGhvcml6ZWQoKWAuXG4gKlxuICogQHBhcmFtIGVycm9yIHRoZSBlcnJvciB0aGF0IG1heSByZWZlcmVuY2UgYSBIVFRQIGFjY2VzcyBlcnJvclxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXJyb3IgaXMgYSBIVFRQIGFjY2VzcyBlcnJvclxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnJvciAhPT0gJ29iamVjdCcgfHxcbiAgICBlcnJvciA9PT0gbnVsbCB8fFxuICAgICEoJ2RpZ2VzdCcgaW4gZXJyb3IpIHx8XG4gICAgdHlwZW9mIGVycm9yLmRpZ2VzdCAhPT0gJ3N0cmluZydcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgW3ByZWZpeCwgaHR0cFN0YXR1c10gPSBlcnJvci5kaWdlc3Quc3BsaXQoJzsnKVxuXG4gIHJldHVybiAoXG4gICAgcHJlZml4ID09PSBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUgJiZcbiAgICBBTExPV0VEX0NPREVTLmhhcyhOdW1iZXIoaHR0cFN0YXR1cykpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyhcbiAgZXJyb3I6IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4pOiBudW1iZXIge1xuICBjb25zdCBodHRwU3RhdHVzID0gZXJyb3IuZGlnZXN0LnNwbGl0KCc7JylbMV1cbiAgcmV0dXJuIE51bWJlcihodHRwU3RhdHVzKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyhcbiAgc3RhdHVzOiBudW1iZXJcbik6ICdub3QtZm91bmQnIHwgJ2ZvcmJpZGRlbicgfCAndW5hdXRob3JpemVkJyB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgY2FzZSA0MDE6XG4gICAgICByZXR1cm4gJ3VuYXV0aG9yaXplZCdcbiAgICBjYXNlIDQwMzpcbiAgICAgIHJldHVybiAnZm9yYmlkZGVuJ1xuICAgIGNhc2UgNDA0OlxuICAgICAgcmV0dXJuICdub3QtZm91bmQnXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVyblxuICB9XG59XG4iXSwibmFtZXMiOlsiSFRUUEFjY2Vzc0Vycm9yU3RhdHVzIiwiSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFIiwiZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyIsImdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyIsImlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IiLCJOT1RfRk9VTkQiLCJGT1JCSURERU4iLCJVTkFVVEhPUklaRUQiLCJBTExPV0VEX0NPREVTIiwiU2V0IiwiT2JqZWN0IiwidmFsdWVzIiwiZXJyb3IiLCJkaWdlc3QiLCJwcmVmaXgiLCJodHRwU3RhdHVzIiwic3BsaXQiLCJoYXMiLCJOdW1iZXIiLCJzdGF0dXMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/client/components/is-next-router-error.js ***!
\**************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isNextRouterError\", ({\n enumerable: true,\n get: function() {\n return isNextRouterError;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nfunction isNextRouterError(error) {\n return (0, _redirecterror.isRedirectError)(error) || (0, _httpaccessfallback.isHTTPAccessFallbackError)(error);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=is-next-router-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBV2dCQTs7O2VBQUFBOzs7Z0RBUlQ7MkNBQzZDO0FBTzdDLFNBQVNBLGtCQUNkQyxLQUFjO0lBRWQsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsZUFBQUEsRUFBZ0JELFVBQVVFLENBQUFBLEdBQUFBLG9CQUFBQSx5QkFBQUEsRUFBMEJGO0FBQzdEIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcbmltcG9ydCB7IGlzUmVkaXJlY3RFcnJvciwgdHlwZSBSZWRpcmVjdEVycm9yIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgbmF2aWdhdGlvbiBzaWduYWwgZXJyb3IuIFRoZXNlIGVycm9ycyBhcmVcbiAqIHRocm93biBieSB1c2VyIGNvZGUgdG8gcGVyZm9ybSBuYXZpZ2F0aW9uIG9wZXJhdGlvbnMgYW5kIGludGVycnVwdCB0aGUgUmVhY3RcbiAqIHJlbmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dFJvdXRlckVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgUmVkaXJlY3RFcnJvciB8IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgcmV0dXJuIGlzUmVkaXJlY3RFcnJvcihlcnJvcikgfHwgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihlcnJvcilcbn1cbiJdLCJuYW1lcyI6WyJpc05leHRSb3V0ZXJFcnJvciIsImVycm9yIiwiaXNSZWRpcmVjdEVycm9yIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/layout-router.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/client/components/layout-router.js ***!
\*******************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return OuterLayoutRouter;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\"));\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _fetchserverresponse = __webpack_require__(/*! ./router-reducer/fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _unresolvedthenable = __webpack_require__(/*! ./unresolved-thenable */ \"(ssr)/./node_modules/next/dist/client/components/unresolved-thenable.js\");\nconst _errorboundary = __webpack_require__(/*! ./error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _matchsegments = __webpack_require__(/*! ./match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\nconst _disablesmoothscroll = __webpack_require__(/*! ../../shared/lib/router/utils/disable-smooth-scroll */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js\");\nconst _redirectboundary = __webpack_require__(/*! ./redirect-boundary */ \"(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js\");\nconst _errorboundary1 = __webpack_require__(/*! ./http-access-fallback/error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./router-reducer/create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _hasinterceptionrouteincurrenttree = __webpack_require__(/*! ./router-reducer/reducers/has-interception-route-in-current-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\");\nconst _useactionqueue = __webpack_require__(/*! ./use-action-queue */ \"(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\");\nconst _bfcache = __webpack_require__(/*! ./bfcache */ \"(ssr)/./node_modules/next/dist/client/components/bfcache.js\");\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst Activity = false ? 0 : null;\n/**\n * Add refetch marker to router state at the point of the current layout segment.\n * This ensures the response returned is not further down than the current layout segment.\n */ function walkAddRefetch(segmentPathToWalk, treeToRecreate) {\n if (segmentPathToWalk) {\n const [segment, parallelRouteKey] = segmentPathToWalk;\n const isLast = segmentPathToWalk.length === 2;\n if ((0, _matchsegments.matchSegment)(treeToRecreate[0], segment)) {\n if (treeToRecreate[1].hasOwnProperty(parallelRouteKey)) {\n if (isLast) {\n const subTree = walkAddRefetch(undefined, treeToRecreate[1][parallelRouteKey]);\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: [\n subTree[0],\n subTree[1],\n subTree[2],\n 'refetch'\n ]\n }\n ];\n }\n return [\n treeToRecreate[0],\n {\n ...treeToRecreate[1],\n [parallelRouteKey]: walkAddRefetch(segmentPathToWalk.slice(2), treeToRecreate[1][parallelRouteKey])\n }\n ];\n }\n }\n }\n return treeToRecreate;\n}\nconst __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = _reactdom.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n// TODO-APP: Replace with new React API for finding dom nodes without a `ref` when available\n/**\n * Wraps ReactDOM.findDOMNode with additional logic to hide React Strict Mode warning\n */ function findDOMNode(instance) {\n // Tree-shake for server bundle\n if (true) return null;\n // __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode is null during module init.\n // We need to lazily reference it.\n const internal_reactDOMfindDOMNode = __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode;\n return internal_reactDOMfindDOMNode(instance);\n}\nconst rectProperties = [\n 'bottom',\n 'height',\n 'left',\n 'right',\n 'top',\n 'width',\n 'x',\n 'y'\n];\n/**\n * Check if a HTMLElement is hidden or fixed/sticky position\n */ function shouldSkipElement(element) {\n // we ignore fixed or sticky positioned elements since they'll likely pass the \"in-viewport\" check\n // and will result in a situation we bail on scroll because of something like a fixed nav,\n // even though the actual page content is offscreen\n if ([\n 'sticky',\n 'fixed'\n ].includes(getComputedStyle(element).position)) {\n if (true) {\n console.warn('Skipping auto-scroll behavior due to `position: sticky` or `position: fixed` on element:', element);\n }\n return true;\n }\n // Uses `getBoundingClientRect` to check if the element is hidden instead of `offsetParent`\n // because `offsetParent` doesn't consider document/body\n const rect = element.getBoundingClientRect();\n return rectProperties.every((item)=>rect[item] === 0);\n}\n/**\n * Check if the top corner of the HTMLElement is in the viewport.\n */ function topOfElementInViewport(element, viewportHeight) {\n const rect = element.getBoundingClientRect();\n return rect.top >= 0 && rect.top <= viewportHeight;\n}\n/**\n * Find the DOM node for a hash fragment.\n * If `top` the page has to scroll to the top of the page. This mirrors the browser's behavior.\n * If the hash fragment is an id, the page has to scroll to the element with that id.\n * If the hash fragment is a name, the page has to scroll to the first element with that name.\n */ function getHashFragmentDomNode(hashFragment) {\n // If the hash fragment is `top` the page has to scroll to the top of the page.\n if (hashFragment === 'top') {\n return document.body;\n }\n var _document_getElementById;\n // If the hash fragment is an id, the page has to scroll to the element with that id.\n return (_document_getElementById = document.getElementById(hashFragment)) != null ? _document_getElementById : document.getElementsByName(hashFragment)[0];\n}\nclass InnerScrollAndFocusHandler extends _react.default.Component {\n componentDidMount() {\n this.handlePotentialScroll();\n }\n componentDidUpdate() {\n // Because this property is overwritten in handlePotentialScroll it's fine to always run it when true as it'll be set to false for subsequent renders.\n if (this.props.focusAndScrollRef.apply) {\n this.handlePotentialScroll();\n }\n }\n render() {\n return this.props.children;\n }\n constructor(...args){\n super(...args), this.handlePotentialScroll = ()=>{\n // Handle scroll and focus, it's only applied once in the first useEffect that triggers that changed.\n const { focusAndScrollRef, segmentPath } = this.props;\n if (focusAndScrollRef.apply) {\n // segmentPaths is an array of segment paths that should be scrolled to\n // if the current segment path is not in the array, the scroll is not applied\n // unless the array is empty, in which case the scroll is always applied\n if (focusAndScrollRef.segmentPaths.length !== 0 && !focusAndScrollRef.segmentPaths.some((scrollRefSegmentPath)=>segmentPath.every((segment, index)=>(0, _matchsegments.matchSegment)(segment, scrollRefSegmentPath[index])))) {\n return;\n }\n let domNode = null;\n const hashFragment = focusAndScrollRef.hashFragment;\n if (hashFragment) {\n domNode = getHashFragmentDomNode(hashFragment);\n }\n // `findDOMNode` is tricky because it returns just the first child if the component is a fragment.\n // This already caused a bug where the first child was a <link/> in head.\n if (!domNode) {\n domNode = findDOMNode(this);\n }\n // If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.\n if (!(domNode instanceof Element)) {\n return;\n }\n // Verify if the element is a HTMLElement and if we want to consider it for scroll behavior.\n // If the element is skipped, try to select the next sibling and try again.\n while(!(domNode instanceof HTMLElement) || shouldSkipElement(domNode)){\n if (true) {\n var _domNode_parentElement;\n if (((_domNode_parentElement = domNode.parentElement) == null ? void 0 : _domNode_parentElement.localName) === 'head') {\n // TODO: We enter this state when metadata was rendered as part of the page or via Next.js.\n // This is always a bug in Next.js and caused by React hoisting metadata.\n // We need to replace `findDOMNode` in favor of Fragment Refs (when available) so that we can skip over metadata.\n }\n }\n // No siblings found that match the criteria are found, so handle scroll higher up in the tree instead.\n if (domNode.nextElementSibling === null) {\n return;\n }\n domNode = domNode.nextElementSibling;\n }\n // State is mutated to ensure that the focus and scroll is applied only once.\n focusAndScrollRef.apply = false;\n focusAndScrollRef.hashFragment = null;\n focusAndScrollRef.segmentPaths = [];\n (0, _disablesmoothscroll.disableSmoothScrollDuringRouteTransition)(()=>{\n // In case of hash scroll, we only need to scroll the element into view\n if (hashFragment) {\n ;\n domNode.scrollIntoView();\n return;\n }\n // Store the current viewport height because reading `clientHeight` causes a reflow,\n // and it won't change during this function.\n const htmlElement = document.documentElement;\n const viewportHeight = htmlElement.clientHeight;\n // If the element's top edge is already in the viewport, exit early.\n if (topOfElementInViewport(domNode, viewportHeight)) {\n return;\n }\n // Otherwise, try scrolling go the top of the document to be backward compatible with pages\n // scrollIntoView() called on `<html/>` element scrolls horizontally on chrome and firefox (that shouldn't happen)\n // We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left\n // scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically\n htmlElement.scrollTop = 0;\n // Scroll to domNode if domNode is not in viewport when scrolled to top of document\n if (!topOfElementInViewport(domNode, viewportHeight)) {\n // Scroll into view doesn't scroll horizontally by default when not needed\n ;\n domNode.scrollIntoView();\n }\n }, {\n // We will force layout by querying domNode position\n dontForceLayout: true,\n onlyHashChange: focusAndScrollRef.onlyHashChange\n });\n // Mutate after scrolling so that it can be read by `disableSmoothScrollDuringRouteTransition`\n focusAndScrollRef.onlyHashChange = false;\n // Set focus on the element\n domNode.focus();\n }\n };\n }\n}\nfunction ScrollAndFocusHandler(param) {\n let { segmentPath, children } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant global layout router not mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E473\",\n enumerable: false,\n configurable: true\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(InnerScrollAndFocusHandler, {\n segmentPath: segmentPath,\n focusAndScrollRef: context.focusAndScrollRef,\n children: children\n });\n}\n/**\n * InnerLayoutRouter handles rendering the provided segment based on the cache.\n */ function InnerLayoutRouter(param) {\n let { tree, segmentPath, cacheNode, url } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant global layout router not mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E473\",\n enumerable: false,\n configurable: true\n });\n }\n const { tree: fullTree } = context;\n // `rsc` represents the renderable node for this segment.\n // If this segment has a `prefetchRsc`, it's the statically prefetched data.\n // We should use that on initial render instead of `rsc`. Then we'll switch\n // to `rsc` when the dynamic response streams in.\n //\n // If no prefetch data is available, then we go straight to rendering `rsc`.\n const resolvedPrefetchRsc = cacheNode.prefetchRsc !== null ? cacheNode.prefetchRsc : cacheNode.rsc;\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n const rsc = (0, _react.useDeferredValue)(cacheNode.rsc, resolvedPrefetchRsc);\n // `rsc` is either a React node or a promise for a React node, except we\n // special case `null` to represent that this segment's data is missing. If\n // it's a promise, we need to unwrap it so we can determine whether or not the\n // data is missing.\n const resolvedRsc = typeof rsc === 'object' && rsc !== null && typeof rsc.then === 'function' ? (0, _react.use)(rsc) : rsc;\n if (!resolvedRsc) {\n // The data for this segment is not available, and there's no pending\n // navigation that will be able to fulfill it. We need to fetch more from\n // the server and patch the cache.\n // Check if there's already a pending request.\n let lazyData = cacheNode.lazyData;\n if (lazyData === null) {\n /**\n * Router state with refetch marker added\n */ // TODO-APP: remove ''\n const refetchTree = walkAddRefetch([\n '',\n ...segmentPath\n ], fullTree);\n const includeNextUrl = (0, _hasinterceptionrouteincurrenttree.hasInterceptionRouteInCurrentTree)(fullTree);\n const navigatedAt = Date.now();\n cacheNode.lazyData = lazyData = (0, _fetchserverresponse.fetchServerResponse)(new URL(url, location.origin), {\n flightRouterState: refetchTree,\n nextUrl: includeNextUrl ? context.nextUrl : null\n }).then((serverResponse)=>{\n (0, _react.startTransition)(()=>{\n (0, _useactionqueue.dispatchAppRouterAction)({\n type: _routerreducertypes.ACTION_SERVER_PATCH,\n previousTree: fullTree,\n serverResponse,\n navigatedAt\n });\n });\n return serverResponse;\n });\n // Suspend while waiting for lazyData to resolve\n (0, _react.use)(lazyData);\n }\n // Suspend infinitely as `changeByServerResponse` will cause a different part of the tree to be rendered.\n // A falsey `resolvedRsc` indicates missing data -- we should not commit that branch, and we need to wait for the data to arrive.\n (0, _react.use)(_unresolvedthenable.unresolvedThenable);\n }\n // If we get to this point, then we know we have something we can render.\n const subtree = /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.LayoutRouterContext.Provider, {\n value: {\n parentTree: tree,\n parentCacheNode: cacheNode,\n parentSegmentPath: segmentPath,\n // TODO-APP: overriding of url for parallel routes\n url: url\n },\n children: resolvedRsc\n });\n // Ensure root layout is not wrapped in a div as the root layout renders `<html>`\n return subtree;\n}\n/**\n * Renders suspense boundary with the provided \"loading\" property as the fallback.\n * If no loading property is provided it renders the children without a suspense boundary.\n */ function LoadingBoundary(param) {\n let { loading, children } = param;\n // If loading is a promise, unwrap it. This happens in cases where we haven't\n // yet received the loading data from the server — which includes whether or\n // not this layout has a loading component at all.\n //\n // It's OK to suspend here instead of inside the fallback because this\n // promise will resolve simultaneously with the data for the segment itself.\n // So it will never suspend for longer than it would have if we didn't use\n // a Suspense fallback at all.\n let loadingModuleData;\n if (typeof loading === 'object' && loading !== null && typeof loading.then === 'function') {\n const promiseForLoading = loading;\n loadingModuleData = (0, _react.use)(promiseForLoading);\n } else {\n loadingModuleData = loading;\n }\n if (loadingModuleData) {\n const loadingRsc = loadingModuleData[0];\n const loadingStyles = loadingModuleData[1];\n const loadingScripts = loadingModuleData[2];\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {\n fallback: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n loadingStyles,\n loadingScripts,\n loadingRsc\n ]\n }),\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nfunction RenderChildren(param) {\n let { children } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nfunction OuterLayoutRouter(param) {\n let { parallelRouterKey, error, errorStyles, errorScripts, templateStyles, templateScripts, template, notFound, forbidden, unauthorized, gracefullyDegrade, segmentViewBoundaries } = param;\n const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant expected layout router to be mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E56\",\n enumerable: false,\n configurable: true\n });\n }\n const { parentTree, parentCacheNode, parentSegmentPath, url } = context;\n // Get the CacheNode for this segment by reading it from the parent segment's\n // child map.\n const parentParallelRoutes = parentCacheNode.parallelRoutes;\n let segmentMap = parentParallelRoutes.get(parallelRouterKey);\n // If the parallel router cache node does not exist yet, create it.\n // This writes to the cache when there is no item in the cache yet. It never *overwrites* existing cache items which is why it's safe in concurrent mode.\n if (!segmentMap) {\n segmentMap = new Map();\n parentParallelRoutes.set(parallelRouterKey, segmentMap);\n }\n const parentTreeSegment = parentTree[0];\n const segmentPath = parentSegmentPath === null ? // the code. We should clean this up.\n [\n parallelRouterKey\n ] : parentSegmentPath.concat([\n parentTreeSegment,\n parallelRouterKey\n ]);\n // The \"state\" key of a segment is the one passed to React — it represents the\n // identity of the UI tree. Whenever the state key changes, the tree is\n // recreated and the state is reset. In the App Router model, search params do\n // not cause state to be lost, so two segments with the same segment path but\n // different search params should have the same state key.\n //\n // The \"cache\" key of a segment, however, *does* include the search params, if\n // it's possible that the segment accessed the search params on the server.\n // (This only applies to page segments; layout segments cannot access search\n // params on the server.)\n const activeTree = parentTree[1][parallelRouterKey];\n const activeSegment = activeTree[0];\n const activeStateKey = (0, _createroutercachekey.createRouterCacheKey)(activeSegment, true) // no search params\n ;\n // At each level of the route tree, not only do we render the currently\n // active segment — we also render the last N segments that were active at\n // this level inside a hidden <Activity> boundary, to preserve their state\n // if or when the user navigates to them again.\n //\n // bfcacheEntry is a linked list of FlightRouterStates.\n let bfcacheEntry = (0, _bfcache.useRouterBFCache)(activeTree, activeStateKey);\n let children = [];\n do {\n const tree = bfcacheEntry.tree;\n const stateKey = bfcacheEntry.stateKey;\n const segment = tree[0];\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segment);\n // Read segment path from the parallel router cache node.\n let cacheNode = segmentMap.get(cacheKey);\n if (cacheNode === undefined) {\n // When data is not available during rendering client-side we need to fetch\n // it from the server.\n const newLazyCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1\n };\n // Flight data fetch kicked off during render and put into the cache.\n cacheNode = newLazyCacheNode;\n segmentMap.set(cacheKey, newLazyCacheNode);\n }\n /*\n - Error boundary\n - Only renders error boundary if error component is provided.\n - Rendered for each segment to ensure they have their own error state.\n - When gracefully degrade for bots, skip rendering error boundary.\n - Loading boundary\n - Only renders suspense boundary if loading components is provided.\n - Rendered for each segment to ensure they have their own loading state.\n - Passed to the router during rendering to ensure it can be immediately rendered when suspending on a Flight fetch.\n */ const ErrorBoundaryComponent = gracefullyDegrade ? RenderChildren : _errorboundary.ErrorBoundary;\n let segmentBoundaryTriggerNode = null;\n let segmentViewStateNode = null;\n if (false) {}\n // TODO: The loading module data for a segment is stored on the parent, then\n // applied to each of that parent segment's parallel route slots. In the\n // simple case where there's only one parallel route (the `children` slot),\n // this is no different from if the loading module data where stored on the\n // child directly. But I'm not sure this actually makes sense when there are\n // multiple parallel routes. It's not a huge issue because you always have\n // the option to define a narrower loading boundary for a particular slot. But\n // this sort of smells like an implementation accident to me.\n const loadingModuleData = parentCacheNode.loading;\n let child = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_approutercontextsharedruntime.TemplateContext.Provider, {\n value: /*#__PURE__*/ (0, _jsxruntime.jsxs)(ScrollAndFocusHandler, {\n segmentPath: segmentPath,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorBoundaryComponent, {\n errorComponent: error,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingBoundary, {\n loading: loadingModuleData,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary1.HTTPAccessFallbackBoundary, {\n notFound: notFound,\n forbidden: forbidden,\n unauthorized: unauthorized,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_redirectboundary.RedirectBoundary, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(InnerLayoutRouter, {\n url: url,\n tree: tree,\n cacheNode: cacheNode,\n segmentPath: segmentPath\n }),\n segmentBoundaryTriggerNode\n ]\n })\n })\n })\n }),\n segmentViewStateNode\n ]\n }),\n children: [\n templateStyles,\n templateScripts,\n template\n ]\n }, stateKey);\n if (true) {\n const { SegmentStateProvider } = __webpack_require__(/*! ../../next-devtools/userspace/app/segment-explorer-node */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\n child = /*#__PURE__*/ (0, _jsxruntime.jsxs)(SegmentStateProvider, {\n children: [\n child,\n segmentViewBoundaries\n ]\n }, stateKey);\n }\n if (false) {}\n children.push(child);\n bfcacheEntry = bfcacheEntry.next;\n }while (bfcacheEntry !== null);\n return children;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=layout-router.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FrZkE7OztlQUF3QkE7Ozs7OztnREFuZWpCOzZFQVNBOytFQUNjOzJEQUtkO2lEQUM2QjtnREFDRDsyQ0FDTDsyQ0FDRDtpREFDNEI7OENBQ3hCOzRDQUNVO2tEQUNOOytEQUNhOzRDQUNWO3FDQUNrQjtzQ0FDekI7QUFFakMsTUFBTUMsV0FBV0MsTUFBa0MsR0FDOUNHLENBQTZELEdBQzlEO0FBRUo7OztDQUdDLEdBQ0QsU0FBU0UsZUFDUEMsaUJBQWdELEVBQ2hEQyxjQUFpQztJQUVqQyxJQUFJRCxtQkFBbUI7UUFDckIsTUFBTSxDQUFDRSxTQUFTQyxpQkFBaUIsR0FBR0g7UUFDcEMsTUFBTUksU0FBU0osa0JBQWtCSyxNQUFNLEtBQUs7UUFFNUMsSUFBSUMsQ0FBQUEsR0FBQUEsZUFBQUEsWUFBWSxFQUFDTCxjQUFjLENBQUMsRUFBRSxFQUFFQyxVQUFVO1lBQzVDLElBQUlELGNBQWMsQ0FBQyxFQUFFLENBQUNNLGNBQWMsQ0FBQ0osbUJBQW1CO2dCQUN0RCxJQUFJQyxRQUFRO29CQUNWLE1BQU1JLFVBQVVULGVBQ2RVLFdBQ0FSLGNBQWMsQ0FBQyxFQUFFLENBQUNFLGlCQUFpQjtvQkFFckMsT0FBTzt3QkFDTEYsY0FBYyxDQUFDLEVBQUU7d0JBQ2pCOzRCQUNFLEdBQUdBLGNBQWMsQ0FBQyxFQUFFOzRCQUNwQixDQUFDRSxpQkFBaUIsRUFBRTtnQ0FDbEJLLE9BQU8sQ0FBQyxFQUFFO2dDQUNWQSxPQUFPLENBQUMsRUFBRTtnQ0FDVkEsT0FBTyxDQUFDLEVBQUU7Z0NBQ1Y7NkJBQ0Q7d0JBQ0g7cUJBQ0Q7Z0JBQ0g7Z0JBRUEsT0FBTztvQkFDTFAsY0FBYyxDQUFDLEVBQUU7b0JBQ2pCO3dCQUNFLEdBQUdBLGNBQWMsQ0FBQyxFQUFFO3dCQUNwQixDQUFDRSxpQkFBaUIsRUFBRUosZUFDbEJDLGtCQUFrQlUsS0FBSyxDQUFDLElBQ3hCVCxjQUFjLENBQUMsRUFBRSxDQUFDRSxpQkFBaUI7b0JBRXZDO2lCQUNEO1lBQ0g7UUFDRjtJQUNGO0lBRUEsT0FBT0Y7QUFDVDtBQUVBLE1BQU1VLCtEQUNKQyxVQUFBQSxPQUFRLENBQ1JELDREQUE0RDtBQUU5RCw0RkFBNEY7QUFDNUY7O0NBRUMsR0FDRCxTQUFTRSxZQUNQQyxRQUFnRDtJQUVoRCwrQkFBK0I7SUFDL0IsSUFBSSxJQUE2QixFQUFFLE9BQU87SUFFMUMsdUdBQXVHO0lBQ3ZHLGtDQUFrQztJQUNsQyxNQUFNRSwrQkFDSkwsNkRBQTZERSxXQUFXO0lBQzFFLE9BQU9HLDZCQUE2QkY7QUFDdEM7QUFFQSxNQUFNRyxpQkFBaUI7SUFDckI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBQ0Q7O0NBRUMsR0FDRCxTQUFTQyxrQkFBa0JDLE9BQW9CO0lBQzdDLGtHQUFrRztJQUNsRywwRkFBMEY7SUFDMUYsbURBQW1EO0lBQ25ELElBQUk7UUFBQztRQUFVO0tBQVEsQ0FBQ0MsUUFBUSxDQUFDQyxpQkFBaUJGLFNBQVNHLFFBQVEsR0FBRztRQUNwRSxJQUFJNUIsSUFBb0IsRUFBb0I7WUFDMUM4QixRQUFRQyxJQUFJLENBQ1YsNEZBQ0FOO1FBRUo7UUFDQSxPQUFPO0lBQ1Q7SUFFQSwyRkFBMkY7SUFDM0Ysd0RBQXdEO0lBQ3hELE1BQU1PLE9BQU9QLFFBQVFRLHFCQUFxQjtJQUMxQyxPQUFPVixlQUFlVyxLQUFLLENBQUMsQ0FBQ0MsT0FBU0gsSUFBSSxDQUFDRyxLQUFLLEtBQUs7QUFDdkQ7QUFFQTs7Q0FFQyxHQUNELFNBQVNDLHVCQUF1QlgsT0FBb0IsRUFBRVksY0FBc0I7SUFDMUUsTUFBTUwsT0FBT1AsUUFBUVEscUJBQXFCO0lBQzFDLE9BQU9ELEtBQUtNLEdBQUcsSUFBSSxLQUFLTixLQUFLTSxHQUFHLElBQUlEO0FBQ3RDO0FBRUE7Ozs7O0NBS0MsR0FDRCxTQUFTRSx1QkFBdUJDLFlBQW9CO0lBQ2xELCtFQUErRTtJQUMvRSxJQUFJQSxpQkFBaUIsT0FBTztRQUMxQixPQUFPQyxTQUFTQyxJQUFJO0lBQ3RCO1FBSUVEO0lBRkYscUZBQXFGO0lBQ3JGLE9BQ0VBLENBQUFBLDJCQUFBQSxTQUFTRSxjQUFjLENBQUNILGFBQUFBLEtBQUFBLE9BQXhCQywyQkFFQUEsU0FBU0csaUJBQWlCLENBQUNKLGFBQWEsQ0FBQyxFQUFFO0FBRS9DO0FBTUEsTUFBTUssbUNBQW1DQyxPQUFBQSxPQUFLLENBQUNDLFNBQVM7SUE0R3REQyxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDQyxxQkFBcUI7SUFDNUI7SUFFQUMscUJBQXFCO1FBQ25CLHNKQUFzSjtRQUN0SixJQUFJLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxpQkFBaUIsQ0FBQ0MsS0FBSyxFQUFFO1lBQ3RDLElBQUksQ0FBQ0oscUJBQXFCO1FBQzVCO0lBQ0Y7SUFFQUssU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDSCxLQUFLLENBQUNJLFFBQVE7SUFDNUI7O1FBekhGLHFCQUNFTixxQkFBQUEsR0FBd0I7WUFDdEIscUdBQXFHO1lBQ3JHLE1BQU0sRUFBRUcsaUJBQWlCLEVBQUVJLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQ0wsS0FBSztZQUVyRCxJQUFJQyxrQkFBa0JDLEtBQUssRUFBRTtnQkFDM0IsdUVBQXVFO2dCQUN2RSw2RUFBNkU7Z0JBQzdFLHdFQUF3RTtnQkFDeEUsSUFDRUQsa0JBQWtCSyxZQUFZLENBQUM5QyxNQUFNLEtBQUssS0FDMUMsQ0FBQ3lDLGtCQUFrQkssWUFBWSxDQUFDQyxJQUFJLENBQUMsQ0FBQ0MsdUJBQ3BDSCxZQUFZdEIsS0FBSyxDQUFDLENBQUMxQixTQUFTb0QsUUFDMUJoRCxDQUFBQSxHQUFBQSxlQUFBQSxZQUFBQSxFQUFhSixTQUFTbUQsb0JBQW9CLENBQUNDLE1BQU0sS0FHckQ7b0JBQ0E7Z0JBQ0Y7Z0JBRUEsSUFBSUMsVUFFaUM7Z0JBQ3JDLE1BQU1yQixlQUFlWSxrQkFBa0JaLFlBQVk7Z0JBRW5ELElBQUlBLGNBQWM7b0JBQ2hCcUIsVUFBVXRCLHVCQUF1QkM7Z0JBQ25DO2dCQUVBLGtHQUFrRztnQkFDbEcseUVBQXlFO2dCQUN6RSxJQUFJLENBQUNxQixTQUFTO29CQUNaQSxVQUFVMUMsWUFBWSxJQUFJO2dCQUM1QjtnQkFFQSx1R0FBdUc7Z0JBQ3ZHLElBQUksQ0FBRTBDLENBQUFBLG1CQUFtQkMsT0FBQUEsQ0FBTSxFQUFJO29CQUNqQztnQkFDRjtnQkFFQSw0RkFBNEY7Z0JBQzVGLDJFQUEyRTtnQkFDM0UsTUFBTyxDQUFFRCxDQUFBQSxtQkFBbUJFLFdBQUFBLENBQVUsSUFBTXZDLGtCQUFrQnFDLFNBQVU7b0JBQ3RFLElBQUk3RCxJQUFvQixFQUFtQjs0QkFDckM2RDt3QkFBSixJQUFJQSxDQUFBQSxDQUFBQSx5QkFBQUEsUUFBUUcsYUFBYSxxQkFBckJILHVCQUF1QkksU0FBQUEsTUFBYyxRQUFRO3dCQUMvQywyRkFBMkY7d0JBQzNGLHlFQUF5RTt3QkFDekUsaUhBQWlIO3dCQUNuSDtvQkFDRjtvQkFFQSx1R0FBdUc7b0JBQ3ZHLElBQUlKLFFBQVFLLGtCQUFrQixLQUFLLE1BQU07d0JBQ3ZDO29CQUNGO29CQUNBTCxVQUFVQSxRQUFRSyxrQkFBa0I7Z0JBQ3RDO2dCQUVBLDZFQUE2RTtnQkFDN0VkLGtCQUFrQkMsS0FBSyxHQUFHO2dCQUMxQkQsa0JBQWtCWixZQUFZLEdBQUc7Z0JBQ2pDWSxrQkFBa0JLLFlBQVksR0FBRyxFQUFFO2dCQUVuQ1UsQ0FBQUEsR0FBQUEscUJBQUFBLHdDQUF3QyxFQUN0QztvQkFDRSx1RUFBdUU7b0JBQ3ZFLElBQUkzQixjQUFjOzt3QkFDZHFCLFFBQXdCTyxjQUFjO3dCQUV4QztvQkFDRjtvQkFDQSxvRkFBb0Y7b0JBQ3BGLDRDQUE0QztvQkFDNUMsTUFBTUMsY0FBYzVCLFNBQVM2QixlQUFlO29CQUM1QyxNQUFNakMsaUJBQWlCZ0MsWUFBWUUsWUFBWTtvQkFFL0Msb0VBQW9FO29CQUNwRSxJQUFJbkMsdUJBQXVCeUIsU0FBd0J4QixpQkFBaUI7d0JBQ2xFO29CQUNGO29CQUVBLDJGQUEyRjtvQkFDM0Ysa0hBQWtIO29CQUNsSCxxSEFBcUg7b0JBQ3JILDZIQUE2SDtvQkFDN0hnQyxZQUFZRyxTQUFTLEdBQUc7b0JBRXhCLG1GQUFtRjtvQkFDbkYsSUFBSSxDQUFDcEMsdUJBQXVCeUIsU0FBd0J4QixpQkFBaUI7d0JBQ25FLDBFQUEwRTs7d0JBQ3hFd0IsUUFBd0JPLGNBQWM7b0JBQzFDO2dCQUNGLEdBQ0E7b0JBQ0Usb0RBQW9EO29CQUNwREssaUJBQWlCO29CQUNqQkMsZ0JBQWdCdEIsa0JBQWtCc0IsY0FBYztnQkFDbEQ7Z0JBR0YsOEZBQThGO2dCQUM5RnRCLGtCQUFrQnNCLGNBQWMsR0FBRztnQkFFbkMsMkJBQTJCO2dCQUMzQmIsUUFBUWMsS0FBSztZQUNmO1FBQ0Y7O0FBZ0JGO0FBRUEsU0FBU0Msc0JBQXNCLEtBTTlCO0lBTjhCLE1BQzdCcEIsV0FBVyxFQUNYRCxRQUFRLEVBSVQsR0FOOEI7SUFPN0IsTUFBTXNCLFVBQVVDLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdDLCtCQUFBQSx5QkFBeUI7SUFDcEQsSUFBSSxDQUFDRixTQUFTO1FBQ1osTUFBTSxxQkFBdUQsQ0FBdkQsSUFBSUcsTUFBTSwrQ0FBVjttQkFBQTt3QkFBQTswQkFBQTtRQUFzRDtJQUM5RDtJQUVBLHFCQUNFLHFCQUFDbkMsNEJBQUFBO1FBQ0NXLGFBQWFBO1FBQ2JKLG1CQUFtQnlCLFFBQVF6QixpQkFBaUI7a0JBRTNDRzs7QUFHUDtBQUVBOztDQUVDLEdBQ0QsU0FBUzBCLGtCQUFrQixLQVUxQjtJQVYwQixNQUN6QkMsSUFBSSxFQUNKMUIsV0FBVyxFQUNYMkIsU0FBUyxFQUNUQyxHQUFHLEVBTUosR0FWMEI7SUFXekIsTUFBTVAsVUFBVUMsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsK0JBQUFBLHlCQUF5QjtJQUNwRCxJQUFJLENBQUNGLFNBQVM7UUFDWixNQUFNLHFCQUF1RCxDQUF2RCxJQUFJRyxNQUFNLCtDQUFWO21CQUFBO3dCQUFBOzBCQUFBO1FBQXNEO0lBQzlEO0lBRUEsTUFBTSxFQUFFRSxNQUFNRyxRQUFRLEVBQUUsR0FBR1I7SUFFM0IseURBQXlEO0lBRXpELDRFQUE0RTtJQUM1RSwyRUFBMkU7SUFDM0UsaURBQWlEO0lBQ2pELEVBQUU7SUFDRiw0RUFBNEU7SUFDNUUsTUFBTVMsc0JBQ0pILFVBQVVJLFdBQVcsS0FBSyxPQUFPSixVQUFVSSxXQUFXLEdBQUdKLFVBQVVLLEdBQUc7SUFFeEUsMkVBQTJFO0lBQzNFLDJFQUEyRTtJQUMzRSxzQ0FBc0M7SUFDdEMsTUFBTUEsTUFBV0MsQ0FBQUEsR0FBQUEsT0FBQUEsZ0JBQUFBLEVBQWlCTixVQUFVSyxHQUFHLEVBQUVGO0lBRWpELHdFQUF3RTtJQUN4RSwyRUFBMkU7SUFDM0UsOEVBQThFO0lBQzlFLG1CQUFtQjtJQUNuQixNQUFNSSxjQUNKLE9BQU9GLFFBQVEsWUFBWUEsUUFBUSxRQUFRLE9BQU9BLElBQUlHLElBQUksS0FBSyxhQUMzREMsQ0FBQUEsR0FBQUEsT0FBQUEsR0FBQUEsRUFBSUosT0FDSkE7SUFFTixJQUFJLENBQUNFLGFBQWE7UUFDaEIscUVBQXFFO1FBQ3JFLHlFQUF5RTtRQUN6RSxrQ0FBa0M7UUFFbEMsOENBQThDO1FBQzlDLElBQUlHLFdBQVdWLFVBQVVVLFFBQVE7UUFDakMsSUFBSUEsYUFBYSxNQUFNO1lBQ3JCOztPQUVDLEdBQ0Qsc0JBQXNCO1lBQ3RCLE1BQU1DLGNBQWN6RixlQUFlO2dCQUFDO21CQUFPbUQ7YUFBWSxFQUFFNkI7WUFDekQsTUFBTVUsaUJBQWlCQyxDQUFBQSxHQUFBQSxtQ0FBQUEsaUNBQUFBLEVBQWtDWDtZQUN6RCxNQUFNWSxjQUFjQyxLQUFLQyxHQUFHO1lBQzVCaEIsVUFBVVUsUUFBUSxHQUFHQSxXQUFXTyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQzlCLElBQUlDLElBQUlqQixLQUFLa0IsU0FBU0MsTUFBTSxHQUM1QjtnQkFDRUMsbUJBQW1CVjtnQkFDbkJXLFNBQVNWLGlCQUFpQmxCLFFBQVE0QixPQUFPLEdBQUc7WUFDOUMsR0FDQWQsSUFBSSxDQUFDLENBQUNlO2dCQUNOQyxDQUFBQSxHQUFBQSxPQUFBQSxlQUFBQSxFQUFnQjtvQkFDZEMsQ0FBQUEsR0FBQUEsZ0JBQUFBLHVCQUFBQSxFQUF3Qjt3QkFDdEJDLE1BQU1DLG9CQUFBQSxtQkFBbUI7d0JBQ3pCQyxjQUFjMUI7d0JBQ2RxQjt3QkFDQVQ7b0JBQ0Y7Z0JBQ0Y7Z0JBRUEsT0FBT1M7WUFDVDtZQUVBLGdEQUFnRDtZQUNoRGQsQ0FBQUEsR0FBQUEsT0FBQUEsR0FBQUEsRUFBSUM7UUFDTjtRQUNBLHlHQUF5RztRQUN6RyxpSUFBaUk7UUFDaklELENBQUFBLEdBQUFBLE9BQUFBLEdBQUFBLEVBQUlvQixvQkFBQUEsa0JBQWtCO0lBQ3hCO0lBRUEseUVBQXlFO0lBQ3pFLE1BQU1DLFVBQ0osY0FDQSxxQkFBQ0MsK0JBQUFBLFVBRDJFLFNBQ3hELENBQUNDLFFBQVE7UUFDM0JDLE9BQU87WUFDTEMsWUFBWW5DO1lBQ1pvQyxpQkFBaUJuQztZQUNqQm9DLG1CQUFtQi9EO1lBRW5CLGtEQUFrRDtZQUNsRDRCLEtBQUtBO1FBQ1A7a0JBRUNNOztJQUdMLGlGQUFpRjtJQUNqRixPQUFPdUI7QUFDVDtBQUVBOzs7Q0FHQyxHQUNELFNBQVNPLGdCQUFnQixLQU14QjtJQU53QixNQUN2QkMsT0FBTyxFQUNQbEUsUUFBUSxFQUlULEdBTndCO0lBT3ZCLDZFQUE2RTtJQUM3RSw0RUFBNEU7SUFDNUUsa0RBQWtEO0lBQ2xELEVBQUU7SUFDRixzRUFBc0U7SUFDdEUsNEVBQTRFO0lBQzVFLDBFQUEwRTtJQUMxRSw4QkFBOEI7SUFDOUIsSUFBSW1FO0lBQ0osSUFDRSxPQUFPRCxZQUFZLFlBQ25CQSxZQUFZLFFBQ1osT0FBUUEsUUFBZ0I5QixJQUFJLEtBQUssWUFDakM7UUFDQSxNQUFNZ0Msb0JBQW9CRjtRQUMxQkMsb0JBQW9COUIsQ0FBQUEsR0FBQUEsT0FBQUEsR0FBQUEsRUFBSStCO0lBQzFCLE9BQU87UUFDTEQsb0JBQW9CRDtJQUN0QjtJQUVBLElBQUlDLG1CQUFtQjtRQUNyQixNQUFNRSxhQUFhRixpQkFBaUIsQ0FBQyxFQUFFO1FBQ3ZDLE1BQU1HLGdCQUFnQkgsaUJBQWlCLENBQUMsRUFBRTtRQUMxQyxNQUFNSSxpQkFBaUJKLGlCQUFpQixDQUFDLEVBQUU7UUFDM0MsT0FDRSxXQURGLEdBQ0UscUJBQUNLLE9BQUFBLFFBQVE7WUFDUEMsVUFBQUEsV0FBQUEsR0FDRTs7b0JBQ0dIO29CQUNBQztvQkFDQUY7OztzQkFJSnJFOztJQUdQO0lBRUEsT0FBTyxXQUFQLEdBQU87a0JBQUdBOztBQUNaO0FBRUEsU0FBUzBFLGVBQWUsS0FBMkM7SUFBM0MsTUFBRTFFLFFBQVEsRUFBaUMsR0FBM0M7SUFDdEIsT0FBTyxXQUFQLEdBQU87a0JBQUdBOztBQUNaO0FBTWUsU0FBU3pELGtCQUFrQixLQTBCekM7SUExQnlDLE1BQ3hDb0ksaUJBQWlCLEVBQ2pCQyxLQUFLLEVBQ0xDLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxjQUFjLEVBQ2RDLGVBQWUsRUFDZkMsUUFBUSxFQUNSQyxRQUFRLEVBQ1JDLFNBQVMsRUFDVEMsWUFBWSxFQUNaQyxpQkFBaUIsRUFDakJDLHFCQUFxQixFQWN0QixHQTFCeUM7SUEyQnhDLE1BQU1oRSxVQUFVQyxDQUFBQSxHQUFBQSxPQUFBQSxVQUFVLEVBQUNvQywrQkFBQUEsbUJBQW1CO0lBQzlDLElBQUksQ0FBQ3JDLFNBQVM7UUFDWixNQUFNLHFCQUEyRCxDQUEzRCxJQUFJRyxNQUFNLG1EQUFWO21CQUFBO3dCQUFBOzBCQUFBO1FBQTBEO0lBQ2xFO0lBRUEsTUFBTSxFQUFFcUMsVUFBVSxFQUFFQyxlQUFlLEVBQUVDLGlCQUFpQixFQUFFbkMsR0FBRyxFQUFFLEdBQUdQO0lBRWhFLDZFQUE2RTtJQUM3RSxhQUFhO0lBQ2IsTUFBTWlFLHVCQUF1QnhCLGdCQUFnQnlCLGNBQWM7SUFDM0QsSUFBSUMsYUFBYUYscUJBQXFCRyxHQUFHLENBQUNmO0lBQzFDLG1FQUFtRTtJQUNuRSx5SkFBeUo7SUFDekosSUFBSSxDQUFDYyxZQUFZO1FBQ2ZBLGFBQWEsSUFBSUU7UUFDakJKLHFCQUFxQkssR0FBRyxDQUFDakIsbUJBQW1CYztJQUM5QztJQUNBLE1BQU1JLG9CQUFvQi9CLFVBQVUsQ0FBQyxFQUFFO0lBQ3ZDLE1BQU03RCxjQUNKK0Qsc0JBQXNCLE9BRWxCLHFDQUNxQztJQUNyQztRQUFDVztLQUFrQixHQUNuQlgsa0JBQWtCOEIsTUFBTSxDQUFDO1FBQUNEO1FBQW1CbEI7S0FBa0I7SUFFckUsOEVBQThFO0lBQzlFLHVFQUF1RTtJQUN2RSw4RUFBOEU7SUFDOUUsNkVBQTZFO0lBQzdFLDBEQUEwRDtJQUMxRCxFQUFFO0lBQ0YsOEVBQThFO0lBQzlFLDJFQUEyRTtJQUMzRSw0RUFBNEU7SUFDNUUseUJBQXlCO0lBQ3pCLE1BQU1vQixhQUFhakMsVUFBVSxDQUFDLEVBQUUsQ0FBQ2Esa0JBQWtCO0lBQ25ELE1BQU1xQixnQkFBZ0JELFVBQVUsQ0FBQyxFQUFFO0lBQ25DLE1BQU1FLGlCQUFpQkMsQ0FBQUEsR0FBQUEsc0JBQUFBLG9CQUFBQSxFQUFxQkYsZUFBZSxNQUFNLG1CQUFtQjs7SUFFcEYsdUVBQXVFO0lBQ3ZFLDBFQUEwRTtJQUMxRSwwRUFBMEU7SUFDMUUsK0NBQStDO0lBQy9DLEVBQUU7SUFDRix1REFBdUQ7SUFDdkQsSUFBSUcsZUFBMENDLENBQUFBLEdBQUFBLFNBQUFBLGdCQUFBQSxFQUM1Q0wsWUFDQUU7SUFFRixJQUFJakcsV0FBbUMsRUFBRTtJQUN6QyxHQUFHO1FBQ0QsTUFBTTJCLE9BQU93RSxhQUFheEUsSUFBSTtRQUM5QixNQUFNMEUsV0FBV0YsYUFBYUUsUUFBUTtRQUN0QyxNQUFNcEosVUFBVTBFLElBQUksQ0FBQyxFQUFFO1FBQ3ZCLE1BQU0yRSxXQUFXSixDQUFBQSxHQUFBQSxzQkFBQUEsb0JBQW9CLEVBQUNqSjtRQUV0Qyx5REFBeUQ7UUFDekQsSUFBSTJFLFlBQVk2RCxXQUFXQyxHQUFHLENBQUNZO1FBQy9CLElBQUkxRSxjQUFjcEUsV0FBVztZQUMzQiwyRUFBMkU7WUFDM0Usc0JBQXNCO1lBQ3RCLE1BQU0rSSxtQkFBa0M7Z0JBQ3RDakUsVUFBVTtnQkFDVkwsS0FBSztnQkFDTEQsYUFBYTtnQkFDYndFLE1BQU07Z0JBQ05DLGNBQWM7Z0JBQ2RqQixnQkFBZ0IsSUFBSUc7Z0JBQ3BCekIsU0FBUztnQkFDVHhCLGFBQWEsQ0FBQztZQUNoQjtZQUVBLHFFQUFxRTtZQUNyRWQsWUFBWTJFO1lBQ1pkLFdBQVdHLEdBQUcsQ0FBQ1UsVUFBVUM7UUFDM0I7UUFFQTs7Ozs7Ozs7O0VBU0YsR0FFRSxNQUFNRyx5QkFBeUJyQixvQkFDM0JYLGlCQUNBaUMsZUFBQUEsYUFBYTtRQUVqQixJQUFJQyw2QkFBOEM7UUFDbEQsSUFBSUMsdUJBQXdDO1FBQzVDLElBQ0VwSyxLQUMyQyxFQUMzQyxFQWNEO1FBRUQsNEVBQTRFO1FBQzVFLHdFQUF3RTtRQUN4RSwyRUFBMkU7UUFDM0UsMkVBQTJFO1FBQzNFLDRFQUE0RTtRQUM1RSwwRUFBMEU7UUFDMUUsOEVBQThFO1FBQzlFLDZEQUE2RDtRQUM3RCxNQUFNMEgsb0JBQW9CSixnQkFBZ0JHLE9BQU87UUFDakQsSUFBSWtELFFBQUFBLFdBQUFBLEdBQ0Ysc0JBQUNDLCtCQUFBQSxlQUFlLENBQUN6RCxRQUFRO1lBRXZCQyxPQUFBQSxXQUFBQSxHQUNFLHNCQUFDeEMsdUJBQUFBO2dCQUFzQnBCLGFBQWFBOztrQ0FDbEMscUJBQUN5Ryx3QkFBQUE7d0JBQ0NZLGdCQUFnQjFDO3dCQUNoQkMsYUFBYUE7d0JBQ2JDLGNBQWNBO2tDQUVkLG1DQUFDYixpQkFBQUE7NEJBQWdCQyxTQUFTQztzQ0FDeEIsbUNBQUNvRCxnQkFBQUEsMEJBQTBCO2dDQUN6QnJDLFVBQVVBO2dDQUNWQyxXQUFXQTtnQ0FDWEMsY0FBY0E7MENBRWQsb0NBQUNvQyxrQkFBQUEsZ0JBQWdCOztzREFDZixxQkFBQzlGLG1CQUFBQTs0Q0FDQ0csS0FBS0E7NENBQ0xGLE1BQU1BOzRDQUNOQyxXQUFXQTs0Q0FDWDNCLGFBQWFBOzt3Q0FFZDJHOzs7Ozs7b0JBS1JDOzs7O2dCQUlKOUI7Z0JBQ0FDO2dCQUNBQzs7V0FoQ0lvQjtRQW9DVCxJQUFJNUosSUFBb0IsRUFBbUI7WUFDekMsTUFBTSxFQUFFZ0wsb0JBQW9CLEVBQUUsR0FDNUI3SyxtQkFBT0EsQ0FBQyxvSkFBeUQ7WUFFbkV3SyxRQUFBQSxXQUFBQSxHQUNFLHNCQUFDSyxzQkFBQUE7O29CQUNFTDtvQkFDQTlCOztlQUZ3QmU7UUFLL0I7UUFFQSxJQUFJNUosS0FBa0MsRUFBRSxFQVN2QztRQUVEdUQsU0FBUzJILElBQUksQ0FBQ1A7UUFFZGpCLGVBQWVBLGFBQWF5QixJQUFJO0lBQ2xDLFFBQVN6QixpQkFBaUIsTUFBSztJQUUvQixPQUFPbkc7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7XG4gIENhY2hlTm9kZSxcbiAgTGF6eUNhY2hlTm9kZSxcbiAgTG9hZGluZ01vZHVsZURhdGEsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUge1xuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgRmxpZ2h0U2VnbWVudFBhdGgsXG59IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBFcnJvckNvbXBvbmVudCB9IGZyb20gJy4vZXJyb3ItYm91bmRhcnknXG5pbXBvcnQge1xuICBBQ1RJT05fU0VSVkVSX1BBVENILFxuICB0eXBlIEZvY3VzQW5kU2Nyb2xsUmVmLFxufSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuXG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlQ29udGV4dCxcbiAgdXNlLFxuICBzdGFydFRyYW5zaXRpb24sXG4gIFN1c3BlbnNlLFxuICB1c2VEZWZlcnJlZFZhbHVlLFxuICB0eXBlIEpTWCxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHtcbiAgTGF5b3V0Um91dGVyQ29udGV4dCxcbiAgR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCxcbiAgVGVtcGxhdGVDb250ZXh0LFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGZldGNoU2VydmVyUmVzcG9uc2UgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL2ZldGNoLXNlcnZlci1yZXNwb25zZSdcbmltcG9ydCB7IHVucmVzb2x2ZWRUaGVuYWJsZSB9IGZyb20gJy4vdW5yZXNvbHZlZC10aGVuYWJsZSdcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tICcuL2Vycm9yLWJvdW5kYXJ5J1xuaW1wb3J0IHsgbWF0Y2hTZWdtZW50IH0gZnJvbSAnLi9tYXRjaC1zZWdtZW50cydcbmltcG9ydCB7IGRpc2FibGVTbW9vdGhTY3JvbGxEdXJpbmdSb3V0ZVRyYW5zaXRpb24gfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9kaXNhYmxlLXNtb290aC1zY3JvbGwnXG5pbXBvcnQgeyBSZWRpcmVjdEJvdW5kYXJ5IH0gZnJvbSAnLi9yZWRpcmVjdC1ib3VuZGFyeSdcbmltcG9ydCB7IEhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5IH0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1ib3VuZGFyeSdcbmltcG9ydCB7IGNyZWF0ZVJvdXRlckNhY2hlS2V5IH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci9jcmVhdGUtcm91dGVyLWNhY2hlLWtleSdcbmltcG9ydCB7IGhhc0ludGVyY2VwdGlvblJvdXRlSW5DdXJyZW50VHJlZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvaGFzLWludGVyY2VwdGlvbi1yb3V0ZS1pbi1jdXJyZW50LXRyZWUnXG5pbXBvcnQgeyBkaXNwYXRjaEFwcFJvdXRlckFjdGlvbiB9IGZyb20gJy4vdXNlLWFjdGlvbi1xdWV1ZSdcbmltcG9ydCB7IHVzZVJvdXRlckJGQ2FjaGUsIHR5cGUgUm91dGVyQkZDYWNoZUVudHJ5IH0gZnJvbSAnLi9iZmNhY2hlJ1xuaW1wb3J0IHsgbm9ybWFsaXplQXBwUGF0aCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocydcblxuY29uc3QgQWN0aXZpdHkgPSBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JGX0NBQ0hFXG4gID8gKHJlcXVpcmUoJ3JlYWN0JykgYXMgdHlwZW9mIGltcG9ydCgncmVhY3QnKSkudW5zdGFibGVfQWN0aXZpdHlcbiAgOiBudWxsIVxuXG4vKipcbiAqIEFkZCByZWZldGNoIG1hcmtlciB0byByb3V0ZXIgc3RhdGUgYXQgdGhlIHBvaW50IG9mIHRoZSBjdXJyZW50IGxheW91dCBzZWdtZW50LlxuICogVGhpcyBlbnN1cmVzIHRoZSByZXNwb25zZSByZXR1cm5lZCBpcyBub3QgZnVydGhlciBkb3duIHRoYW4gdGhlIGN1cnJlbnQgbGF5b3V0IHNlZ21lbnQuXG4gKi9cbmZ1bmN0aW9uIHdhbGtBZGRSZWZldGNoKFxuICBzZWdtZW50UGF0aFRvV2FsazogRmxpZ2h0U2VnbWVudFBhdGggfCB1bmRlZmluZWQsXG4gIHRyZWVUb1JlY3JlYXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogRmxpZ2h0Um91dGVyU3RhdGUge1xuICBpZiAoc2VnbWVudFBhdGhUb1dhbGspIHtcbiAgICBjb25zdCBbc2VnbWVudCwgcGFyYWxsZWxSb3V0ZUtleV0gPSBzZWdtZW50UGF0aFRvV2Fsa1xuICAgIGNvbnN0IGlzTGFzdCA9IHNlZ21lbnRQYXRoVG9XYWxrLmxlbmd0aCA9PT0gMlxuXG4gICAgaWYgKG1hdGNoU2VnbWVudCh0cmVlVG9SZWNyZWF0ZVswXSwgc2VnbWVudCkpIHtcbiAgICAgIGlmICh0cmVlVG9SZWNyZWF0ZVsxXS5oYXNPd25Qcm9wZXJ0eShwYXJhbGxlbFJvdXRlS2V5KSkge1xuICAgICAgICBpZiAoaXNMYXN0KSB7XG4gICAgICAgICAgY29uc3Qgc3ViVHJlZSA9IHdhbGtBZGRSZWZldGNoKFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgdHJlZVRvUmVjcmVhdGVbMV1bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHRyZWVUb1JlY3JlYXRlWzBdLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi50cmVlVG9SZWNyZWF0ZVsxXSxcbiAgICAgICAgICAgICAgW3BhcmFsbGVsUm91dGVLZXldOiBbXG4gICAgICAgICAgICAgICAgc3ViVHJlZVswXSxcbiAgICAgICAgICAgICAgICBzdWJUcmVlWzFdLFxuICAgICAgICAgICAgICAgIHN1YlRyZWVbMl0sXG4gICAgICAgICAgICAgICAgJ3JlZmV0Y2gnLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHRyZWVUb1JlY3JlYXRlWzBdLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLnRyZWVUb1JlY3JlYXRlWzFdLFxuICAgICAgICAgICAgW3BhcmFsbGVsUm91dGVLZXldOiB3YWxrQWRkUmVmZXRjaChcbiAgICAgICAgICAgICAgc2VnbWVudFBhdGhUb1dhbGsuc2xpY2UoMiksXG4gICAgICAgICAgICAgIHRyZWVUb1JlY3JlYXRlWzFdW3BhcmFsbGVsUm91dGVLZXldXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJlZVRvUmVjcmVhdGVcbn1cblxuY29uc3QgX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFID0gKFxuICBSZWFjdERPTSBhcyBhbnlcbikuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFXG5cbi8vIFRPRE8tQVBQOiBSZXBsYWNlIHdpdGggbmV3IFJlYWN0IEFQSSBmb3IgZmluZGluZyBkb20gbm9kZXMgd2l0aG91dCBhIGByZWZgIHdoZW4gYXZhaWxhYmxlXG4vKipcbiAqIFdyYXBzIFJlYWN0RE9NLmZpbmRET01Ob2RlIHdpdGggYWRkaXRpb25hbCBsb2dpYyB0byBoaWRlIFJlYWN0IFN0cmljdCBNb2RlIHdhcm5pbmdcbiAqL1xuZnVuY3Rpb24gZmluZERPTU5vZGUoXG4gIGluc3RhbmNlOiBSZWFjdC5SZWFjdEluc3RhbmNlIHwgbnVsbCB8IHVuZGVmaW5lZFxuKTogRWxlbWVudCB8IFRleHQgfCBudWxsIHtcbiAgLy8gVHJlZS1zaGFrZSBmb3Igc2VydmVyIGJ1bmRsZVxuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBudWxsXG5cbiAgLy8gX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLmZpbmRET01Ob2RlIGlzIG51bGwgZHVyaW5nIG1vZHVsZSBpbml0LlxuICAvLyBXZSBuZWVkIHRvIGxhemlseSByZWZlcmVuY2UgaXQuXG4gIGNvbnN0IGludGVybmFsX3JlYWN0RE9NZmluZERPTU5vZGUgPVxuICAgIF9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERS5maW5kRE9NTm9kZVxuICByZXR1cm4gaW50ZXJuYWxfcmVhY3RET01maW5kRE9NTm9kZShpbnN0YW5jZSlcbn1cblxuY29uc3QgcmVjdFByb3BlcnRpZXMgPSBbXG4gICdib3R0b20nLFxuICAnaGVpZ2h0JyxcbiAgJ2xlZnQnLFxuICAncmlnaHQnLFxuICAndG9wJyxcbiAgJ3dpZHRoJyxcbiAgJ3gnLFxuICAneScsXG5dIGFzIGNvbnN0XG4vKipcbiAqIENoZWNrIGlmIGEgSFRNTEVsZW1lbnQgaXMgaGlkZGVuIG9yIGZpeGVkL3N0aWNreSBwb3NpdGlvblxuICovXG5mdW5jdGlvbiBzaG91bGRTa2lwRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAvLyB3ZSBpZ25vcmUgZml4ZWQgb3Igc3RpY2t5IHBvc2l0aW9uZWQgZWxlbWVudHMgc2luY2UgdGhleSdsbCBsaWtlbHkgcGFzcyB0aGUgXCJpbi12aWV3cG9ydFwiIGNoZWNrXG4gIC8vIGFuZCB3aWxsIHJlc3VsdCBpbiBhIHNpdHVhdGlvbiB3ZSBiYWlsIG9uIHNjcm9sbCBiZWNhdXNlIG9mIHNvbWV0aGluZyBsaWtlIGEgZml4ZWQgbmF2LFxuICAvLyBldmVuIHRob3VnaCB0aGUgYWN0dWFsIHBhZ2UgY29udGVudCBpcyBvZmZzY3JlZW5cbiAgaWYgKFsnc3RpY2t5JywgJ2ZpeGVkJ10uaW5jbHVkZXMoZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5wb3NpdGlvbikpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1NraXBwaW5nIGF1dG8tc2Nyb2xsIGJlaGF2aW9yIGR1ZSB0byBgcG9zaXRpb246IHN0aWNreWAgb3IgYHBvc2l0aW9uOiBmaXhlZGAgb24gZWxlbWVudDonLFxuICAgICAgICBlbGVtZW50XG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBVc2VzIGBnZXRCb3VuZGluZ0NsaWVudFJlY3RgIHRvIGNoZWNrIGlmIHRoZSBlbGVtZW50IGlzIGhpZGRlbiBpbnN0ZWFkIG9mIGBvZmZzZXRQYXJlbnRgXG4gIC8vIGJlY2F1c2UgYG9mZnNldFBhcmVudGAgZG9lc24ndCBjb25zaWRlciBkb2N1bWVudC9ib2R5XG4gIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiByZWN0UHJvcGVydGllcy5ldmVyeSgoaXRlbSkgPT4gcmVjdFtpdGVtXSA9PT0gMClcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgdG9wIGNvcm5lciBvZiB0aGUgSFRNTEVsZW1lbnQgaXMgaW4gdGhlIHZpZXdwb3J0LlxuICovXG5mdW5jdGlvbiB0b3BPZkVsZW1lbnRJblZpZXdwb3J0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB2aWV3cG9ydEhlaWdodDogbnVtYmVyKSB7XG4gIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiByZWN0LnRvcCA+PSAwICYmIHJlY3QudG9wIDw9IHZpZXdwb3J0SGVpZ2h0XG59XG5cbi8qKlxuICogRmluZCB0aGUgRE9NIG5vZGUgZm9yIGEgaGFzaCBmcmFnbWVudC5cbiAqIElmIGB0b3BgIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIHRvcCBvZiB0aGUgcGFnZS4gVGhpcyBtaXJyb3JzIHRoZSBicm93c2VyJ3MgYmVoYXZpb3IuXG4gKiBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhbiBpZCwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCB3aXRoIHRoYXQgaWQuXG4gKiBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhIG5hbWUsIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIGZpcnN0IGVsZW1lbnQgd2l0aCB0aGF0IG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGdldEhhc2hGcmFnbWVudERvbU5vZGUoaGFzaEZyYWdtZW50OiBzdHJpbmcpIHtcbiAgLy8gSWYgdGhlIGhhc2ggZnJhZ21lbnQgaXMgYHRvcGAgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgdG9wIG9mIHRoZSBwYWdlLlxuICBpZiAoaGFzaEZyYWdtZW50ID09PSAndG9wJykge1xuICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gIH1cblxuICAvLyBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhbiBpZCwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCB3aXRoIHRoYXQgaWQuXG4gIHJldHVybiAoXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaEZyYWdtZW50KSA/P1xuICAgIC8vIElmIHRoZSBoYXNoIGZyYWdtZW50IGlzIGEgbmFtZSwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZmlyc3QgZWxlbWVudCB3aXRoIHRoYXQgbmFtZS5cbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShoYXNoRnJhZ21lbnQpWzBdXG4gIClcbn1cbmludGVyZmFjZSBTY3JvbGxBbmRGb2N1c0hhbmRsZXJQcm9wcyB7XG4gIGZvY3VzQW5kU2Nyb2xsUmVmOiBGb2N1c0FuZFNjcm9sbFJlZlxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIHNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aFxufVxuY2xhc3MgSW5uZXJTY3JvbGxBbmRGb2N1c0hhbmRsZXIgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8U2Nyb2xsQW5kRm9jdXNIYW5kbGVyUHJvcHM+IHtcbiAgaGFuZGxlUG90ZW50aWFsU2Nyb2xsID0gKCkgPT4ge1xuICAgIC8vIEhhbmRsZSBzY3JvbGwgYW5kIGZvY3VzLCBpdCdzIG9ubHkgYXBwbGllZCBvbmNlIGluIHRoZSBmaXJzdCB1c2VFZmZlY3QgdGhhdCB0cmlnZ2VycyB0aGF0IGNoYW5nZWQuXG4gICAgY29uc3QgeyBmb2N1c0FuZFNjcm9sbFJlZiwgc2VnbWVudFBhdGggfSA9IHRoaXMucHJvcHNcblxuICAgIGlmIChmb2N1c0FuZFNjcm9sbFJlZi5hcHBseSkge1xuICAgICAgLy8gc2VnbWVudFBhdGhzIGlzIGFuIGFycmF5IG9mIHNlZ21lbnQgcGF0aHMgdGhhdCBzaG91bGQgYmUgc2Nyb2xsZWQgdG9cbiAgICAgIC8vIGlmIHRoZSBjdXJyZW50IHNlZ21lbnQgcGF0aCBpcyBub3QgaW4gdGhlIGFycmF5LCB0aGUgc2Nyb2xsIGlzIG5vdCBhcHBsaWVkXG4gICAgICAvLyB1bmxlc3MgdGhlIGFycmF5IGlzIGVtcHR5LCBpbiB3aGljaCBjYXNlIHRoZSBzY3JvbGwgaXMgYWx3YXlzIGFwcGxpZWRcbiAgICAgIGlmIChcbiAgICAgICAgZm9jdXNBbmRTY3JvbGxSZWYuc2VnbWVudFBhdGhzLmxlbmd0aCAhPT0gMCAmJlxuICAgICAgICAhZm9jdXNBbmRTY3JvbGxSZWYuc2VnbWVudFBhdGhzLnNvbWUoKHNjcm9sbFJlZlNlZ21lbnRQYXRoKSA9PlxuICAgICAgICAgIHNlZ21lbnRQYXRoLmV2ZXJ5KChzZWdtZW50LCBpbmRleCkgPT5cbiAgICAgICAgICAgIG1hdGNoU2VnbWVudChzZWdtZW50LCBzY3JvbGxSZWZTZWdtZW50UGF0aFtpbmRleF0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGxldCBkb21Ob2RlOlxuICAgICAgICB8IFJldHVyblR5cGU8dHlwZW9mIGdldEhhc2hGcmFnbWVudERvbU5vZGU+XG4gICAgICAgIHwgUmV0dXJuVHlwZTx0eXBlb2YgZmluZERPTU5vZGU+ID0gbnVsbFxuICAgICAgY29uc3QgaGFzaEZyYWdtZW50ID0gZm9jdXNBbmRTY3JvbGxSZWYuaGFzaEZyYWdtZW50XG5cbiAgICAgIGlmIChoYXNoRnJhZ21lbnQpIHtcbiAgICAgICAgZG9tTm9kZSA9IGdldEhhc2hGcmFnbWVudERvbU5vZGUoaGFzaEZyYWdtZW50KVxuICAgICAgfVxuXG4gICAgICAvLyBgZmluZERPTU5vZGVgIGlzIHRyaWNreSBiZWNhdXNlIGl0IHJldHVybnMganVzdCB0aGUgZmlyc3QgY2hpbGQgaWYgdGhlIGNvbXBvbmVudCBpcyBhIGZyYWdtZW50LlxuICAgICAgLy8gVGhpcyBhbHJlYWR5IGNhdXNlZCBhIGJ1ZyB3aGVyZSB0aGUgZmlyc3QgY2hpbGQgd2FzIGEgPGxpbmsvPiBpbiBoZWFkLlxuICAgICAgaWYgKCFkb21Ob2RlKSB7XG4gICAgICAgIGRvbU5vZGUgPSBmaW5kRE9NTm9kZSh0aGlzKVxuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGVyZSBpcyBubyBET00gbm9kZSB0aGlzIGxheW91dC1yb3V0ZXIgbGV2ZWwgaXMgc2tpcHBlZC4gSXQnbGwgYmUgaGFuZGxlZCBoaWdoZXItdXAgaW4gdGhlIHRyZWUuXG4gICAgICBpZiAoIShkb21Ob2RlIGluc3RhbmNlb2YgRWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIFZlcmlmeSBpZiB0aGUgZWxlbWVudCBpcyBhIEhUTUxFbGVtZW50IGFuZCBpZiB3ZSB3YW50IHRvIGNvbnNpZGVyIGl0IGZvciBzY3JvbGwgYmVoYXZpb3IuXG4gICAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyBza2lwcGVkLCB0cnkgdG8gc2VsZWN0IHRoZSBuZXh0IHNpYmxpbmcgYW5kIHRyeSBhZ2Fpbi5cbiAgICAgIHdoaWxlICghKGRvbU5vZGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgfHwgc2hvdWxkU2tpcEVsZW1lbnQoZG9tTm9kZSkpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBpZiAoZG9tTm9kZS5wYXJlbnRFbGVtZW50Py5sb2NhbE5hbWUgPT09ICdoZWFkJykge1xuICAgICAgICAgICAgLy8gVE9ETzogV2UgZW50ZXIgdGhpcyBzdGF0ZSB3aGVuIG1ldGFkYXRhIHdhcyByZW5kZXJlZCBhcyBwYXJ0IG9mIHRoZSBwYWdlIG9yIHZpYSBOZXh0LmpzLlxuICAgICAgICAgICAgLy8gVGhpcyBpcyBhbHdheXMgYSBidWcgaW4gTmV4dC5qcyBhbmQgY2F1c2VkIGJ5IFJlYWN0IGhvaXN0aW5nIG1ldGFkYXRhLlxuICAgICAgICAgICAgLy8gV2UgbmVlZCB0byByZXBsYWNlIGBmaW5kRE9NTm9kZWAgaW4gZmF2b3Igb2YgRnJhZ21lbnQgUmVmcyAod2hlbiBhdmFpbGFibGUpIHNvIHRoYXQgd2UgY2FuIHNraXAgb3ZlciBtZXRhZGF0YS5cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBObyBzaWJsaW5ncyBmb3VuZCB0aGF0IG1hdGNoIHRoZSBjcml0ZXJpYSBhcmUgZm91bmQsIHNvIGhhbmRsZSBzY3JvbGwgaGlnaGVyIHVwIGluIHRoZSB0cmVlIGluc3RlYWQuXG4gICAgICAgIGlmIChkb21Ob2RlLm5leHRFbGVtZW50U2libGluZyA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGRvbU5vZGUgPSBkb21Ob2RlLm5leHRFbGVtZW50U2libGluZ1xuICAgICAgfVxuXG4gICAgICAvLyBTdGF0ZSBpcyBtdXRhdGVkIHRvIGVuc3VyZSB0aGF0IHRoZSBmb2N1cyBhbmQgc2Nyb2xsIGlzIGFwcGxpZWQgb25seSBvbmNlLlxuICAgICAgZm9jdXNBbmRTY3JvbGxSZWYuYXBwbHkgPSBmYWxzZVxuICAgICAgZm9jdXNBbmRTY3JvbGxSZWYuaGFzaEZyYWdtZW50ID0gbnVsbFxuICAgICAgZm9jdXNBbmRTY3JvbGxSZWYuc2VnbWVudFBhdGhzID0gW11cblxuICAgICAgZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbihcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIC8vIEluIGNhc2Ugb2YgaGFzaCBzY3JvbGwsIHdlIG9ubHkgbmVlZCB0byBzY3JvbGwgdGhlIGVsZW1lbnQgaW50byB2aWV3XG4gICAgICAgICAgaWYgKGhhc2hGcmFnbWVudCkge1xuICAgICAgICAgICAgOyhkb21Ob2RlIGFzIEhUTUxFbGVtZW50KS5zY3JvbGxJbnRvVmlldygpXG5cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTdG9yZSB0aGUgY3VycmVudCB2aWV3cG9ydCBoZWlnaHQgYmVjYXVzZSByZWFkaW5nIGBjbGllbnRIZWlnaHRgIGNhdXNlcyBhIHJlZmxvdyxcbiAgICAgICAgICAvLyBhbmQgaXQgd29uJ3QgY2hhbmdlIGR1cmluZyB0aGlzIGZ1bmN0aW9uLlxuICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICAgICAgICAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSBodG1sRWxlbWVudC5jbGllbnRIZWlnaHRcblxuICAgICAgICAgIC8vIElmIHRoZSBlbGVtZW50J3MgdG9wIGVkZ2UgaXMgYWxyZWFkeSBpbiB0aGUgdmlld3BvcnQsIGV4aXQgZWFybHkuXG4gICAgICAgICAgaWYgKHRvcE9mRWxlbWVudEluVmlld3BvcnQoZG9tTm9kZSBhcyBIVE1MRWxlbWVudCwgdmlld3BvcnRIZWlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBPdGhlcndpc2UsIHRyeSBzY3JvbGxpbmcgZ28gdGhlIHRvcCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgYmFja3dhcmQgY29tcGF0aWJsZSB3aXRoIHBhZ2VzXG4gICAgICAgICAgLy8gc2Nyb2xsSW50b1ZpZXcoKSBjYWxsZWQgb24gYDxodG1sLz5gIGVsZW1lbnQgc2Nyb2xscyBob3Jpem9udGFsbHkgb24gY2hyb21lIGFuZCBmaXJlZm94ICh0aGF0IHNob3VsZG4ndCBoYXBwZW4pXG4gICAgICAgICAgLy8gV2UgY291bGQgdXNlIGl0IHRvIHNjcm9sbCBob3Jpem9udGFsbHkgZm9sbG93aW5nIFJUTCBidXQgdGhhdCBhbHNvIHNlZW1zIHRvIGJlIGJyb2tlbiAtIGl0IHdpbGwgYWx3YXlzIHNjcm9sbCBsZWZ0XG4gICAgICAgICAgLy8gc2Nyb2xsTGVmdCA9IDAgYWxzbyBzZWVtcyB0byBpZ25vcmUgUlRMIGFuZCBtYW51YWxseSBjaGVja2luZyBmb3IgUlRMIGlzIHRvbyBtdWNoIGhhc3NsZSBzbyB3ZSB3aWxsIHNjcm9sbCBqdXN0IHZlcnRpY2FsbHlcbiAgICAgICAgICBodG1sRWxlbWVudC5zY3JvbGxUb3AgPSAwXG5cbiAgICAgICAgICAvLyBTY3JvbGwgdG8gZG9tTm9kZSBpZiBkb21Ob2RlIGlzIG5vdCBpbiB2aWV3cG9ydCB3aGVuIHNjcm9sbGVkIHRvIHRvcCBvZiBkb2N1bWVudFxuICAgICAgICAgIGlmICghdG9wT2ZFbGVtZW50SW5WaWV3cG9ydChkb21Ob2RlIGFzIEhUTUxFbGVtZW50LCB2aWV3cG9ydEhlaWdodCkpIHtcbiAgICAgICAgICAgIC8vIFNjcm9sbCBpbnRvIHZpZXcgZG9lc24ndCBzY3JvbGwgaG9yaXpvbnRhbGx5IGJ5IGRlZmF1bHQgd2hlbiBub3QgbmVlZGVkXG4gICAgICAgICAgICA7KGRvbU5vZGUgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbEludG9WaWV3KClcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBXZSB3aWxsIGZvcmNlIGxheW91dCBieSBxdWVyeWluZyBkb21Ob2RlIHBvc2l0aW9uXG4gICAgICAgICAgZG9udEZvcmNlTGF5b3V0OiB0cnVlLFxuICAgICAgICAgIG9ubHlIYXNoQ2hhbmdlOiBmb2N1c0FuZFNjcm9sbFJlZi5vbmx5SGFzaENoYW5nZSxcbiAgICAgICAgfVxuICAgICAgKVxuXG4gICAgICAvLyBNdXRhdGUgYWZ0ZXIgc2Nyb2xsaW5nIHNvIHRoYXQgaXQgY2FuIGJlIHJlYWQgYnkgYGRpc2FibGVTbW9vdGhTY3JvbGxEdXJpbmdSb3V0ZVRyYW5zaXRpb25gXG4gICAgICBmb2N1c0FuZFNjcm9sbFJlZi5vbmx5SGFzaENoYW5nZSA9IGZhbHNlXG5cbiAgICAgIC8vIFNldCBmb2N1cyBvbiB0aGUgZWxlbWVudFxuICAgICAgZG9tTm9kZS5mb2N1cygpXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5oYW5kbGVQb3RlbnRpYWxTY3JvbGwoKVxuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIC8vIEJlY2F1c2UgdGhpcyBwcm9wZXJ0eSBpcyBvdmVyd3JpdHRlbiBpbiBoYW5kbGVQb3RlbnRpYWxTY3JvbGwgaXQncyBmaW5lIHRvIGFsd2F5cyBydW4gaXQgd2hlbiB0cnVlIGFzIGl0J2xsIGJlIHNldCB0byBmYWxzZSBmb3Igc3Vic2VxdWVudCByZW5kZXJzLlxuICAgIGlmICh0aGlzLnByb3BzLmZvY3VzQW5kU2Nyb2xsUmVmLmFwcGx5KSB7XG4gICAgICB0aGlzLmhhbmRsZVBvdGVudGlhbFNjcm9sbCgpXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gIH1cbn1cblxuZnVuY3Rpb24gU2Nyb2xsQW5kRm9jdXNIYW5kbGVyKHtcbiAgc2VnbWVudFBhdGgsXG4gIGNoaWxkcmVuLFxufToge1xuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0KVxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFyaWFudCBnbG9iYWwgbGF5b3V0IHJvdXRlciBub3QgbW91bnRlZCcpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxJbm5lclNjcm9sbEFuZEZvY3VzSGFuZGxlclxuICAgICAgc2VnbWVudFBhdGg9e3NlZ21lbnRQYXRofVxuICAgICAgZm9jdXNBbmRTY3JvbGxSZWY9e2NvbnRleHQuZm9jdXNBbmRTY3JvbGxSZWZ9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvSW5uZXJTY3JvbGxBbmRGb2N1c0hhbmRsZXI+XG4gIClcbn1cblxuLyoqXG4gKiBJbm5lckxheW91dFJvdXRlciBoYW5kbGVzIHJlbmRlcmluZyB0aGUgcHJvdmlkZWQgc2VnbWVudCBiYXNlZCBvbiB0aGUgY2FjaGUuXG4gKi9cbmZ1bmN0aW9uIElubmVyTGF5b3V0Um91dGVyKHtcbiAgdHJlZSxcbiAgc2VnbWVudFBhdGgsXG4gIGNhY2hlTm9kZSxcbiAgdXJsLFxufToge1xuICB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbiAgY2FjaGVOb2RlOiBDYWNoZU5vZGVcbiAgdXJsOiBzdHJpbmdcbn0pIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dClcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhcmlhbnQgZ2xvYmFsIGxheW91dCByb3V0ZXIgbm90IG1vdW50ZWQnKVxuICB9XG5cbiAgY29uc3QgeyB0cmVlOiBmdWxsVHJlZSB9ID0gY29udGV4dFxuXG4gIC8vIGByc2NgIHJlcHJlc2VudHMgdGhlIHJlbmRlcmFibGUgbm9kZSBmb3IgdGhpcyBzZWdtZW50LlxuXG4gIC8vIElmIHRoaXMgc2VnbWVudCBoYXMgYSBgcHJlZmV0Y2hSc2NgLCBpdCdzIHRoZSBzdGF0aWNhbGx5IHByZWZldGNoZWQgZGF0YS5cbiAgLy8gV2Ugc2hvdWxkIHVzZSB0aGF0IG9uIGluaXRpYWwgcmVuZGVyIGluc3RlYWQgb2YgYHJzY2AuIFRoZW4gd2UnbGwgc3dpdGNoXG4gIC8vIHRvIGByc2NgIHdoZW4gdGhlIGR5bmFtaWMgcmVzcG9uc2Ugc3RyZWFtcyBpbi5cbiAgLy9cbiAgLy8gSWYgbm8gcHJlZmV0Y2ggZGF0YSBpcyBhdmFpbGFibGUsIHRoZW4gd2UgZ28gc3RyYWlnaHQgdG8gcmVuZGVyaW5nIGByc2NgLlxuICBjb25zdCByZXNvbHZlZFByZWZldGNoUnNjID1cbiAgICBjYWNoZU5vZGUucHJlZmV0Y2hSc2MgIT09IG51bGwgPyBjYWNoZU5vZGUucHJlZmV0Y2hSc2MgOiBjYWNoZU5vZGUucnNjXG5cbiAgLy8gV2UgdXNlIGB1c2VEZWZlcnJlZFZhbHVlYCB0byBoYW5kbGUgc3dpdGNoaW5nIGJldHdlZW4gdGhlIHByZWZldGNoZWQgYW5kXG4gIC8vIGZpbmFsIHZhbHVlcy4gVGhlIHNlY29uZCBhcmd1bWVudCBpcyByZXR1cm5lZCBvbiBpbml0aWFsIHJlbmRlciwgdGhlbiBpdFxuICAvLyByZS1yZW5kZXJzIHdpdGggdGhlIGZpcnN0IGFyZ3VtZW50LlxuICBjb25zdCByc2M6IGFueSA9IHVzZURlZmVycmVkVmFsdWUoY2FjaGVOb2RlLnJzYywgcmVzb2x2ZWRQcmVmZXRjaFJzYylcblxuICAvLyBgcnNjYCBpcyBlaXRoZXIgYSBSZWFjdCBub2RlIG9yIGEgcHJvbWlzZSBmb3IgYSBSZWFjdCBub2RlLCBleGNlcHQgd2VcbiAgLy8gc3BlY2lhbCBjYXNlIGBudWxsYCB0byByZXByZXNlbnQgdGhhdCB0aGlzIHNlZ21lbnQncyBkYXRhIGlzIG1pc3NpbmcuIElmXG4gIC8vIGl0J3MgYSBwcm9taXNlLCB3ZSBuZWVkIHRvIHVud3JhcCBpdCBzbyB3ZSBjYW4gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZVxuICAvLyBkYXRhIGlzIG1pc3NpbmcuXG4gIGNvbnN0IHJlc29sdmVkUnNjOiBSZWFjdC5SZWFjdE5vZGUgPVxuICAgIHR5cGVvZiByc2MgPT09ICdvYmplY3QnICYmIHJzYyAhPT0gbnVsbCAmJiB0eXBlb2YgcnNjLnRoZW4gPT09ICdmdW5jdGlvbidcbiAgICAgID8gdXNlKHJzYylcbiAgICAgIDogcnNjXG5cbiAgaWYgKCFyZXNvbHZlZFJzYykge1xuICAgIC8vIFRoZSBkYXRhIGZvciB0aGlzIHNlZ21lbnQgaXMgbm90IGF2YWlsYWJsZSwgYW5kIHRoZXJlJ3Mgbm8gcGVuZGluZ1xuICAgIC8vIG5hdmlnYXRpb24gdGhhdCB3aWxsIGJlIGFibGUgdG8gZnVsZmlsbCBpdC4gV2UgbmVlZCB0byBmZXRjaCBtb3JlIGZyb21cbiAgICAvLyB0aGUgc2VydmVyIGFuZCBwYXRjaCB0aGUgY2FjaGUuXG5cbiAgICAvLyBDaGVjayBpZiB0aGVyZSdzIGFscmVhZHkgYSBwZW5kaW5nIHJlcXVlc3QuXG4gICAgbGV0IGxhenlEYXRhID0gY2FjaGVOb2RlLmxhenlEYXRhXG4gICAgaWYgKGxhenlEYXRhID09PSBudWxsKSB7XG4gICAgICAvKipcbiAgICAgICAqIFJvdXRlciBzdGF0ZSB3aXRoIHJlZmV0Y2ggbWFya2VyIGFkZGVkXG4gICAgICAgKi9cbiAgICAgIC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgIGNvbnN0IHJlZmV0Y2hUcmVlID0gd2Fsa0FkZFJlZmV0Y2goWycnLCAuLi5zZWdtZW50UGF0aF0sIGZ1bGxUcmVlKVxuICAgICAgY29uc3QgaW5jbHVkZU5leHRVcmwgPSBoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUoZnVsbFRyZWUpXG4gICAgICBjb25zdCBuYXZpZ2F0ZWRBdCA9IERhdGUubm93KClcbiAgICAgIGNhY2hlTm9kZS5sYXp5RGF0YSA9IGxhenlEYXRhID0gZmV0Y2hTZXJ2ZXJSZXNwb25zZShcbiAgICAgICAgbmV3IFVSTCh1cmwsIGxvY2F0aW9uLm9yaWdpbiksXG4gICAgICAgIHtcbiAgICAgICAgICBmbGlnaHRSb3V0ZXJTdGF0ZTogcmVmZXRjaFRyZWUsXG4gICAgICAgICAgbmV4dFVybDogaW5jbHVkZU5leHRVcmwgPyBjb250ZXh0Lm5leHRVcmwgOiBudWxsLFxuICAgICAgICB9XG4gICAgICApLnRoZW4oKHNlcnZlclJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24oe1xuICAgICAgICAgICAgdHlwZTogQUNUSU9OX1NFUlZFUl9QQVRDSCxcbiAgICAgICAgICAgIHByZXZpb3VzVHJlZTogZnVsbFRyZWUsXG4gICAgICAgICAgICBzZXJ2ZXJSZXNwb25zZSxcbiAgICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG5cbiAgICAgICAgcmV0dXJuIHNlcnZlclJlc3BvbnNlXG4gICAgICB9KVxuXG4gICAgICAvLyBTdXNwZW5kIHdoaWxlIHdhaXRpbmcgZm9yIGxhenlEYXRhIHRvIHJlc29sdmVcbiAgICAgIHVzZShsYXp5RGF0YSlcbiAgICB9XG4gICAgLy8gU3VzcGVuZCBpbmZpbml0ZWx5IGFzIGBjaGFuZ2VCeVNlcnZlclJlc3BvbnNlYCB3aWxsIGNhdXNlIGEgZGlmZmVyZW50IHBhcnQgb2YgdGhlIHRyZWUgdG8gYmUgcmVuZGVyZWQuXG4gICAgLy8gQSBmYWxzZXkgYHJlc29sdmVkUnNjYCBpbmRpY2F0ZXMgbWlzc2luZyBkYXRhIC0tIHdlIHNob3VsZCBub3QgY29tbWl0IHRoYXQgYnJhbmNoLCBhbmQgd2UgbmVlZCB0byB3YWl0IGZvciB0aGUgZGF0YSB0byBhcnJpdmUuXG4gICAgdXNlKHVucmVzb2x2ZWRUaGVuYWJsZSkgYXMgbmV2ZXJcbiAgfVxuXG4gIC8vIElmIHdlIGdldCB0byB0aGlzIHBvaW50LCB0aGVuIHdlIGtub3cgd2UgaGF2ZSBzb21ldGhpbmcgd2UgY2FuIHJlbmRlci5cbiAgY29uc3Qgc3VidHJlZSA9IChcbiAgICAvLyBUaGUgbGF5b3V0IHJvdXRlciBjb250ZXh0IG5hcnJvd3MgZG93biB0cmVlIGFuZCBjaGlsZE5vZGVzIGF0IGVhY2ggbGV2ZWwuXG4gICAgPExheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXJcbiAgICAgIHZhbHVlPXt7XG4gICAgICAgIHBhcmVudFRyZWU6IHRyZWUsXG4gICAgICAgIHBhcmVudENhY2hlTm9kZTogY2FjaGVOb2RlLFxuICAgICAgICBwYXJlbnRTZWdtZW50UGF0aDogc2VnbWVudFBhdGgsXG5cbiAgICAgICAgLy8gVE9ETy1BUFA6IG92ZXJyaWRpbmcgb2YgdXJsIGZvciBwYXJhbGxlbCByb3V0ZXNcbiAgICAgICAgdXJsOiB1cmwsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtyZXNvbHZlZFJzY31cbiAgICA8L0xheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXI+XG4gIClcbiAgLy8gRW5zdXJlIHJvb3QgbGF5b3V0IGlzIG5vdCB3cmFwcGVkIGluIGEgZGl2IGFzIHRoZSByb290IGxheW91dCByZW5kZXJzIGA8aHRtbD5gXG4gIHJldHVybiBzdWJ0cmVlXG59XG5cbi8qKlxuICogUmVuZGVycyBzdXNwZW5zZSBib3VuZGFyeSB3aXRoIHRoZSBwcm92aWRlZCBcImxvYWRpbmdcIiBwcm9wZXJ0eSBhcyB0aGUgZmFsbGJhY2suXG4gKiBJZiBubyBsb2FkaW5nIHByb3BlcnR5IGlzIHByb3ZpZGVkIGl0IHJlbmRlcnMgdGhlIGNoaWxkcmVuIHdpdGhvdXQgYSBzdXNwZW5zZSBib3VuZGFyeS5cbiAqL1xuZnVuY3Rpb24gTG9hZGluZ0JvdW5kYXJ5KHtcbiAgbG9hZGluZyxcbiAgY2hpbGRyZW4sXG59OiB7XG4gIGxvYWRpbmc6IExvYWRpbmdNb2R1bGVEYXRhIHwgUHJvbWlzZTxMb2FkaW5nTW9kdWxlRGF0YT5cbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSk6IEpTWC5FbGVtZW50IHtcbiAgLy8gSWYgbG9hZGluZyBpcyBhIHByb21pc2UsIHVud3JhcCBpdC4gVGhpcyBoYXBwZW5zIGluIGNhc2VzIHdoZXJlIHdlIGhhdmVuJ3RcbiAgLy8geWV0IHJlY2VpdmVkIHRoZSBsb2FkaW5nIGRhdGEgZnJvbSB0aGUgc2VydmVyIOKAlCB3aGljaCBpbmNsdWRlcyB3aGV0aGVyIG9yXG4gIC8vIG5vdCB0aGlzIGxheW91dCBoYXMgYSBsb2FkaW5nIGNvbXBvbmVudCBhdCBhbGwuXG4gIC8vXG4gIC8vIEl0J3MgT0sgdG8gc3VzcGVuZCBoZXJlIGluc3RlYWQgb2YgaW5zaWRlIHRoZSBmYWxsYmFjayBiZWNhdXNlIHRoaXNcbiAgLy8gcHJvbWlzZSB3aWxsIHJlc29sdmUgc2ltdWx0YW5lb3VzbHkgd2l0aCB0aGUgZGF0YSBmb3IgdGhlIHNlZ21lbnQgaXRzZWxmLlxuICAvLyBTbyBpdCB3aWxsIG5ldmVyIHN1c3BlbmQgZm9yIGxvbmdlciB0aGFuIGl0IHdvdWxkIGhhdmUgaWYgd2UgZGlkbid0IHVzZVxuICAvLyBhIFN1c3BlbnNlIGZhbGxiYWNrIGF0IGFsbC5cbiAgbGV0IGxvYWRpbmdNb2R1bGVEYXRhXG4gIGlmIChcbiAgICB0eXBlb2YgbG9hZGluZyA9PT0gJ29iamVjdCcgJiZcbiAgICBsb2FkaW5nICE9PSBudWxsICYmXG4gICAgdHlwZW9mIChsb2FkaW5nIGFzIGFueSkudGhlbiA9PT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICBjb25zdCBwcm9taXNlRm9yTG9hZGluZyA9IGxvYWRpbmcgYXMgUHJvbWlzZTxMb2FkaW5nTW9kdWxlRGF0YT5cbiAgICBsb2FkaW5nTW9kdWxlRGF0YSA9IHVzZShwcm9taXNlRm9yTG9hZGluZylcbiAgfSBlbHNlIHtcbiAgICBsb2FkaW5nTW9kdWxlRGF0YSA9IGxvYWRpbmcgYXMgTG9hZGluZ01vZHVsZURhdGFcbiAgfVxuXG4gIGlmIChsb2FkaW5nTW9kdWxlRGF0YSkge1xuICAgIGNvbnN0IGxvYWRpbmdSc2MgPSBsb2FkaW5nTW9kdWxlRGF0YVswXVxuICAgIGNvbnN0IGxvYWRpbmdTdHlsZXMgPSBsb2FkaW5nTW9kdWxlRGF0YVsxXVxuICAgIGNvbnN0IGxvYWRpbmdTY3JpcHRzID0gbG9hZGluZ01vZHVsZURhdGFbMl1cbiAgICByZXR1cm4gKFxuICAgICAgPFN1c3BlbnNlXG4gICAgICAgIGZhbGxiYWNrPXtcbiAgICAgICAgICA8PlxuICAgICAgICAgICAge2xvYWRpbmdTdHlsZXN9XG4gICAgICAgICAgICB7bG9hZGluZ1NjcmlwdHN9XG4gICAgICAgICAgICB7bG9hZGluZ1JzY31cbiAgICAgICAgICA8Lz5cbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1N1c3BlbnNlPlxuICAgIClcbiAgfVxuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz5cbn1cblxuZnVuY3Rpb24gUmVuZGVyQ2hpbGRyZW4oeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+XG59XG5cbi8qKlxuICogT3V0ZXJMYXlvdXRSb3V0ZXIgaGFuZGxlcyB0aGUgY3VycmVudCBzZWdtZW50IGFzIHdlbGwgYXMgPE9mZnNjcmVlbj4gcmVuZGVyaW5nIG9mIG90aGVyIHNlZ21lbnRzLlxuICogSXQgY2FuIGJlIHJlbmRlcmVkIG5leHQgdG8gZWFjaCBvdGhlciB3aXRoIGEgZGlmZmVyZW50IGBwYXJhbGxlbFJvdXRlcktleWAsIGFsbG93aW5nIGZvciBQYXJhbGxlbCByb3V0ZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE91dGVyTGF5b3V0Um91dGVyKHtcbiAgcGFyYWxsZWxSb3V0ZXJLZXksXG4gIGVycm9yLFxuICBlcnJvclN0eWxlcyxcbiAgZXJyb3JTY3JpcHRzLFxuICB0ZW1wbGF0ZVN0eWxlcyxcbiAgdGVtcGxhdGVTY3JpcHRzLFxuICB0ZW1wbGF0ZSxcbiAgbm90Rm91bmQsXG4gIGZvcmJpZGRlbixcbiAgdW5hdXRob3JpemVkLFxuICBncmFjZWZ1bGx5RGVncmFkZSxcbiAgc2VnbWVudFZpZXdCb3VuZGFyaWVzLFxufToge1xuICBwYXJhbGxlbFJvdXRlcktleTogc3RyaW5nXG4gIGVycm9yOiBFcnJvckNvbXBvbmVudCB8IHVuZGVmaW5lZFxuICBlcnJvclN0eWxlczogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIGVycm9yU2NyaXB0czogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIHRlbXBsYXRlU3R5bGVzOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgdGVtcGxhdGVTY3JpcHRzOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgdGVtcGxhdGU6IFJlYWN0LlJlYWN0Tm9kZVxuICBub3RGb3VuZDogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIGZvcmJpZGRlbjogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIHVuYXV0aG9yaXplZDogUmVhY3QuUmVhY3ROb2RlIHwgdW5kZWZpbmVkXG4gIGdyYWNlZnVsbHlEZWdyYWRlPzogYm9vbGVhblxuICBzZWdtZW50Vmlld0JvdW5kYXJpZXM/OiBSZWFjdC5SZWFjdE5vZGVcbn0pIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoTGF5b3V0Um91dGVyQ29udGV4dClcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhcmlhbnQgZXhwZWN0ZWQgbGF5b3V0IHJvdXRlciB0byBiZSBtb3VudGVkJylcbiAgfVxuXG4gIGNvbnN0IHsgcGFyZW50VHJlZSwgcGFyZW50Q2FjaGVOb2RlLCBwYXJlbnRTZWdtZW50UGF0aCwgdXJsIH0gPSBjb250ZXh0XG5cbiAgLy8gR2V0IHRoZSBDYWNoZU5vZGUgZm9yIHRoaXMgc2VnbWVudCBieSByZWFkaW5nIGl0IGZyb20gdGhlIHBhcmVudCBzZWdtZW50J3NcbiAgLy8gY2hpbGQgbWFwLlxuICBjb25zdCBwYXJlbnRQYXJhbGxlbFJvdXRlcyA9IHBhcmVudENhY2hlTm9kZS5wYXJhbGxlbFJvdXRlc1xuICBsZXQgc2VnbWVudE1hcCA9IHBhcmVudFBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlcktleSlcbiAgLy8gSWYgdGhlIHBhcmFsbGVsIHJvdXRlciBjYWNoZSBub2RlIGRvZXMgbm90IGV4aXN0IHlldCwgY3JlYXRlIGl0LlxuICAvLyBUaGlzIHdyaXRlcyB0byB0aGUgY2FjaGUgd2hlbiB0aGVyZSBpcyBubyBpdGVtIGluIHRoZSBjYWNoZSB5ZXQuIEl0IG5ldmVyICpvdmVyd3JpdGVzKiBleGlzdGluZyBjYWNoZSBpdGVtcyB3aGljaCBpcyB3aHkgaXQncyBzYWZlIGluIGNvbmN1cnJlbnQgbW9kZS5cbiAgaWYgKCFzZWdtZW50TWFwKSB7XG4gICAgc2VnbWVudE1hcCA9IG5ldyBNYXAoKVxuICAgIHBhcmVudFBhcmFsbGVsUm91dGVzLnNldChwYXJhbGxlbFJvdXRlcktleSwgc2VnbWVudE1hcClcbiAgfVxuICBjb25zdCBwYXJlbnRUcmVlU2VnbWVudCA9IHBhcmVudFRyZWVbMF1cbiAgY29uc3Qgc2VnbWVudFBhdGggPVxuICAgIHBhcmVudFNlZ21lbnRQYXRoID09PSBudWxsXG4gICAgICA/IC8vIFRPRE86IFRoZSByb290IHNlZ21lbnQgdmFsdWUgaXMgY3VycmVudGx5IG9taXR0ZWQgZnJvbSB0aGUgc2VnbWVudFxuICAgICAgICAvLyBwYXRoLiBUaGlzIGhhcyBsZWQgdG8gYSBidW5jaCBvZiBzcGVjaWFsIGNhc2VzIHNjYXR0ZXJlZCB0aHJvdWdob3V0XG4gICAgICAgIC8vIHRoZSBjb2RlLiBXZSBzaG91bGQgY2xlYW4gdGhpcyB1cC5cbiAgICAgICAgW3BhcmFsbGVsUm91dGVyS2V5XVxuICAgICAgOiBwYXJlbnRTZWdtZW50UGF0aC5jb25jYXQoW3BhcmVudFRyZWVTZWdtZW50LCBwYXJhbGxlbFJvdXRlcktleV0pXG5cbiAgLy8gVGhlIFwic3RhdGVcIiBrZXkgb2YgYSBzZWdtZW50IGlzIHRoZSBvbmUgcGFzc2VkIHRvIFJlYWN0IOKAlCBpdCByZXByZXNlbnRzIHRoZVxuICAvLyBpZGVudGl0eSBvZiB0aGUgVUkgdHJlZS4gV2hlbmV2ZXIgdGhlIHN0YXRlIGtleSBjaGFuZ2VzLCB0aGUgdHJlZSBpc1xuICAvLyByZWNyZWF0ZWQgYW5kIHRoZSBzdGF0ZSBpcyByZXNldC4gSW4gdGhlIEFwcCBSb3V0ZXIgbW9kZWwsIHNlYXJjaCBwYXJhbXMgZG9cbiAgLy8gbm90IGNhdXNlIHN0YXRlIHRvIGJlIGxvc3QsIHNvIHR3byBzZWdtZW50cyB3aXRoIHRoZSBzYW1lIHNlZ21lbnQgcGF0aCBidXRcbiAgLy8gZGlmZmVyZW50IHNlYXJjaCBwYXJhbXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgc3RhdGUga2V5LlxuICAvL1xuICAvLyBUaGUgXCJjYWNoZVwiIGtleSBvZiBhIHNlZ21lbnQsIGhvd2V2ZXIsICpkb2VzKiBpbmNsdWRlIHRoZSBzZWFyY2ggcGFyYW1zLCBpZlxuICAvLyBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHNlZ21lbnQgYWNjZXNzZWQgdGhlIHNlYXJjaCBwYXJhbXMgb24gdGhlIHNlcnZlci5cbiAgLy8gKFRoaXMgb25seSBhcHBsaWVzIHRvIHBhZ2Ugc2VnbWVudHM7IGxheW91dCBzZWdtZW50cyBjYW5ub3QgYWNjZXNzIHNlYXJjaFxuICAvLyBwYXJhbXMgb24gdGhlIHNlcnZlci4pXG4gIGNvbnN0IGFjdGl2ZVRyZWUgPSBwYXJlbnRUcmVlWzFdW3BhcmFsbGVsUm91dGVyS2V5XVxuICBjb25zdCBhY3RpdmVTZWdtZW50ID0gYWN0aXZlVHJlZVswXVxuICBjb25zdCBhY3RpdmVTdGF0ZUtleSA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KGFjdGl2ZVNlZ21lbnQsIHRydWUpIC8vIG5vIHNlYXJjaCBwYXJhbXNcblxuICAvLyBBdCBlYWNoIGxldmVsIG9mIHRoZSByb3V0ZSB0cmVlLCBub3Qgb25seSBkbyB3ZSByZW5kZXIgdGhlIGN1cnJlbnRseVxuICAvLyBhY3RpdmUgc2VnbWVudCDigJQgd2UgYWxzbyByZW5kZXIgdGhlIGxhc3QgTiBzZWdtZW50cyB0aGF0IHdlcmUgYWN0aXZlIGF0XG4gIC8vIHRoaXMgbGV2ZWwgaW5zaWRlIGEgaGlkZGVuIDxBY3Rpdml0eT4gYm91bmRhcnksIHRvIHByZXNlcnZlIHRoZWlyIHN0YXRlXG4gIC8vIGlmIG9yIHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIHRvIHRoZW0gYWdhaW4uXG4gIC8vXG4gIC8vIGJmY2FjaGVFbnRyeSBpcyBhIGxpbmtlZCBsaXN0IG9mIEZsaWdodFJvdXRlclN0YXRlcy5cbiAgbGV0IGJmY2FjaGVFbnRyeTogUm91dGVyQkZDYWNoZUVudHJ5IHwgbnVsbCA9IHVzZVJvdXRlckJGQ2FjaGUoXG4gICAgYWN0aXZlVHJlZSxcbiAgICBhY3RpdmVTdGF0ZUtleVxuICApXG4gIGxldCBjaGlsZHJlbjogQXJyYXk8UmVhY3QuUmVhY3ROb2RlPiA9IFtdXG4gIGRvIHtcbiAgICBjb25zdCB0cmVlID0gYmZjYWNoZUVudHJ5LnRyZWVcbiAgICBjb25zdCBzdGF0ZUtleSA9IGJmY2FjaGVFbnRyeS5zdGF0ZUtleVxuICAgIGNvbnN0IHNlZ21lbnQgPSB0cmVlWzBdXG4gICAgY29uc3QgY2FjaGVLZXkgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50KVxuXG4gICAgLy8gUmVhZCBzZWdtZW50IHBhdGggZnJvbSB0aGUgcGFyYWxsZWwgcm91dGVyIGNhY2hlIG5vZGUuXG4gICAgbGV0IGNhY2hlTm9kZSA9IHNlZ21lbnRNYXAuZ2V0KGNhY2hlS2V5KVxuICAgIGlmIChjYWNoZU5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gV2hlbiBkYXRhIGlzIG5vdCBhdmFpbGFibGUgZHVyaW5nIHJlbmRlcmluZyBjbGllbnQtc2lkZSB3ZSBuZWVkIHRvIGZldGNoXG4gICAgICAvLyBpdCBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICBjb25zdCBuZXdMYXp5Q2FjaGVOb2RlOiBMYXp5Q2FjaGVOb2RlID0ge1xuICAgICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgICAgcnNjOiBudWxsLFxuICAgICAgICBwcmVmZXRjaFJzYzogbnVsbCxcbiAgICAgICAgaGVhZDogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hIZWFkOiBudWxsLFxuICAgICAgICBwYXJhbGxlbFJvdXRlczogbmV3IE1hcCgpLFxuICAgICAgICBsb2FkaW5nOiBudWxsLFxuICAgICAgICBuYXZpZ2F0ZWRBdDogLTEsXG4gICAgICB9XG5cbiAgICAgIC8vIEZsaWdodCBkYXRhIGZldGNoIGtpY2tlZCBvZmYgZHVyaW5nIHJlbmRlciBhbmQgcHV0IGludG8gdGhlIGNhY2hlLlxuICAgICAgY2FjaGVOb2RlID0gbmV3TGF6eUNhY2hlTm9kZVxuICAgICAgc2VnbWVudE1hcC5zZXQoY2FjaGVLZXksIG5ld0xhenlDYWNoZU5vZGUpXG4gICAgfVxuXG4gICAgLypcbiAgICAtIEVycm9yIGJvdW5kYXJ5XG4gICAgICAtIE9ubHkgcmVuZGVycyBlcnJvciBib3VuZGFyeSBpZiBlcnJvciBjb21wb25lbnQgaXMgcHJvdmlkZWQuXG4gICAgICAtIFJlbmRlcmVkIGZvciBlYWNoIHNlZ21lbnQgdG8gZW5zdXJlIHRoZXkgaGF2ZSB0aGVpciBvd24gZXJyb3Igc3RhdGUuXG4gICAgICAtIFdoZW4gZ3JhY2VmdWxseSBkZWdyYWRlIGZvciBib3RzLCBza2lwIHJlbmRlcmluZyBlcnJvciBib3VuZGFyeS5cbiAgICAtIExvYWRpbmcgYm91bmRhcnlcbiAgICAgIC0gT25seSByZW5kZXJzIHN1c3BlbnNlIGJvdW5kYXJ5IGlmIGxvYWRpbmcgY29tcG9uZW50cyBpcyBwcm92aWRlZC5cbiAgICAgIC0gUmVuZGVyZWQgZm9yIGVhY2ggc2VnbWVudCB0byBlbnN1cmUgdGhleSBoYXZlIHRoZWlyIG93biBsb2FkaW5nIHN0YXRlLlxuICAgICAgLSBQYXNzZWQgdG8gdGhlIHJvdXRlciBkdXJpbmcgcmVuZGVyaW5nIHRvIGVuc3VyZSBpdCBjYW4gYmUgaW1tZWRpYXRlbHkgcmVuZGVyZWQgd2hlbiBzdXNwZW5kaW5nIG9uIGEgRmxpZ2h0IGZldGNoLlxuICAqL1xuXG4gICAgY29uc3QgRXJyb3JCb3VuZGFyeUNvbXBvbmVudCA9IGdyYWNlZnVsbHlEZWdyYWRlXG4gICAgICA/IFJlbmRlckNoaWxkcmVuXG4gICAgICA6IEVycm9yQm91bmRhcnlcblxuICAgIGxldCBzZWdtZW50Qm91bmRhcnlUcmlnZ2VyTm9kZTogUmVhY3QuUmVhY3ROb2RlID0gbnVsbFxuICAgIGxldCBzZWdtZW50Vmlld1N0YXRlTm9kZTogUmVhY3QuUmVhY3ROb2RlID0gbnVsbFxuICAgIGlmIChcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9ERVZUT09MX1NFR01FTlRfRVhQTE9SRVJcbiAgICApIHtcbiAgICAgIGNvbnN0IHsgU2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGUsIFNlZ21lbnRWaWV3U3RhdGVOb2RlIH0gPVxuICAgICAgICByZXF1aXJlKCcuLi8uLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvc2VnbWVudC1leHBsb3Jlci1ub2RlJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3NlZ21lbnQtZXhwbG9yZXItbm9kZScpXG5cbiAgICAgIGNvbnN0IHBhZ2VQcmVmaXggPSBub3JtYWxpemVBcHBQYXRoKHVybClcbiAgICAgIHNlZ21lbnRWaWV3U3RhdGVOb2RlID0gKFxuICAgICAgICA8U2VnbWVudFZpZXdTdGF0ZU5vZGUga2V5PXtwYWdlUHJlZml4fSBwYWdlPXtwYWdlUHJlZml4fSAvPlxuICAgICAgKVxuXG4gICAgICBzZWdtZW50Qm91bmRhcnlUcmlnZ2VyTm9kZSA9IChcbiAgICAgICAgPD5cbiAgICAgICAgICA8U2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGUgLz5cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgLy8gVE9ETzogVGhlIGxvYWRpbmcgbW9kdWxlIGRhdGEgZm9yIGEgc2VnbWVudCBpcyBzdG9yZWQgb24gdGhlIHBhcmVudCwgdGhlblxuICAgIC8vIGFwcGxpZWQgdG8gZWFjaCBvZiB0aGF0IHBhcmVudCBzZWdtZW50J3MgcGFyYWxsZWwgcm91dGUgc2xvdHMuIEluIHRoZVxuICAgIC8vIHNpbXBsZSBjYXNlIHdoZXJlIHRoZXJlJ3Mgb25seSBvbmUgcGFyYWxsZWwgcm91dGUgKHRoZSBgY2hpbGRyZW5gIHNsb3QpLFxuICAgIC8vIHRoaXMgaXMgbm8gZGlmZmVyZW50IGZyb20gaWYgdGhlIGxvYWRpbmcgbW9kdWxlIGRhdGEgd2hlcmUgc3RvcmVkIG9uIHRoZVxuICAgIC8vIGNoaWxkIGRpcmVjdGx5LiBCdXQgSSdtIG5vdCBzdXJlIHRoaXMgYWN0dWFsbHkgbWFrZXMgc2Vuc2Ugd2hlbiB0aGVyZSBhcmVcbiAgICAvLyBtdWx0aXBsZSBwYXJhbGxlbCByb3V0ZXMuIEl0J3Mgbm90IGEgaHVnZSBpc3N1ZSBiZWNhdXNlIHlvdSBhbHdheXMgaGF2ZVxuICAgIC8vIHRoZSBvcHRpb24gdG8gZGVmaW5lIGEgbmFycm93ZXIgbG9hZGluZyBib3VuZGFyeSBmb3IgYSBwYXJ0aWN1bGFyIHNsb3QuIEJ1dFxuICAgIC8vIHRoaXMgc29ydCBvZiBzbWVsbHMgbGlrZSBhbiBpbXBsZW1lbnRhdGlvbiBhY2NpZGVudCB0byBtZS5cbiAgICBjb25zdCBsb2FkaW5nTW9kdWxlRGF0YSA9IHBhcmVudENhY2hlTm9kZS5sb2FkaW5nXG4gICAgbGV0IGNoaWxkID0gKFxuICAgICAgPFRlbXBsYXRlQ29udGV4dC5Qcm92aWRlclxuICAgICAgICBrZXk9e3N0YXRlS2V5fVxuICAgICAgICB2YWx1ZT17XG4gICAgICAgICAgPFNjcm9sbEFuZEZvY3VzSGFuZGxlciBzZWdtZW50UGF0aD17c2VnbWVudFBhdGh9PlxuICAgICAgICAgICAgPEVycm9yQm91bmRhcnlDb21wb25lbnRcbiAgICAgICAgICAgICAgZXJyb3JDb21wb25lbnQ9e2Vycm9yfVxuICAgICAgICAgICAgICBlcnJvclN0eWxlcz17ZXJyb3JTdHlsZXN9XG4gICAgICAgICAgICAgIGVycm9yU2NyaXB0cz17ZXJyb3JTY3JpcHRzfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8TG9hZGluZ0JvdW5kYXJ5IGxvYWRpbmc9e2xvYWRpbmdNb2R1bGVEYXRhfT5cbiAgICAgICAgICAgICAgICA8SFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnlcbiAgICAgICAgICAgICAgICAgIG5vdEZvdW5kPXtub3RGb3VuZH1cbiAgICAgICAgICAgICAgICAgIGZvcmJpZGRlbj17Zm9yYmlkZGVufVxuICAgICAgICAgICAgICAgICAgdW5hdXRob3JpemVkPXt1bmF1dGhvcml6ZWR9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFJlZGlyZWN0Qm91bmRhcnk+XG4gICAgICAgICAgICAgICAgICAgIDxJbm5lckxheW91dFJvdXRlclxuICAgICAgICAgICAgICAgICAgICAgIHVybD17dXJsfVxuICAgICAgICAgICAgICAgICAgICAgIHRyZWU9e3RyZWV9XG4gICAgICAgICAgICAgICAgICAgICAgY2FjaGVOb2RlPXtjYWNoZU5vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgc2VnbWVudFBhdGg9e3NlZ21lbnRQYXRofVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICB7c2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGV9XG4gICAgICAgICAgICAgICAgICA8L1JlZGlyZWN0Qm91bmRhcnk+XG4gICAgICAgICAgICAgICAgPC9IVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeT5cbiAgICAgICAgICAgICAgPC9Mb2FkaW5nQm91bmRhcnk+XG4gICAgICAgICAgICA8L0Vycm9yQm91bmRhcnlDb21wb25lbnQ+XG4gICAgICAgICAgICB7c2VnbWVudFZpZXdTdGF0ZU5vZGV9XG4gICAgICAgICAgPC9TY3JvbGxBbmRGb2N1c0hhbmRsZXI+XG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAge3RlbXBsYXRlU3R5bGVzfVxuICAgICAgICB7dGVtcGxhdGVTY3JpcHRzfVxuICAgICAgICB7dGVtcGxhdGV9XG4gICAgICA8L1RlbXBsYXRlQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc3QgeyBTZWdtZW50U3RhdGVQcm92aWRlciB9ID1cbiAgICAgICAgcmVxdWlyZSgnLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3NlZ21lbnQtZXhwbG9yZXItbm9kZScpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUnKVxuXG4gICAgICBjaGlsZCA9IChcbiAgICAgICAgPFNlZ21lbnRTdGF0ZVByb3ZpZGVyIGtleT17c3RhdGVLZXl9PlxuICAgICAgICAgIHtjaGlsZH1cbiAgICAgICAgICB7c2VnbWVudFZpZXdCb3VuZGFyaWVzfVxuICAgICAgICA8L1NlZ21lbnRTdGF0ZVByb3ZpZGVyPlxuICAgICAgKVxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JGX0NBQ0hFKSB7XG4gICAgICBjaGlsZCA9IChcbiAgICAgICAgPEFjdGl2aXR5XG4gICAgICAgICAga2V5PXtzdGF0ZUtleX1cbiAgICAgICAgICBtb2RlPXtzdGF0ZUtleSA9PT0gYWN0aXZlU3RhdGVLZXkgPyAndmlzaWJsZScgOiAnaGlkZGVuJ31cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZH1cbiAgICAgICAgPC9BY3Rpdml0eT5cbiAgICAgIClcbiAgICB9XG5cbiAgICBjaGlsZHJlbi5wdXNoKGNoaWxkKVxuXG4gICAgYmZjYWNoZUVudHJ5ID0gYmZjYWNoZUVudHJ5Lm5leHRcbiAgfSB3aGlsZSAoYmZjYWNoZUVudHJ5ICE9PSBudWxsKVxuXG4gIHJldHVybiBjaGlsZHJlblxufVxuIl0sIm5hbWVzIjpbIk91dGVyTGF5b3V0Um91dGVyIiwiQWN0aXZpdHkiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1JPVVRFUl9CRl9DQUNIRSIsInJlcXVpcmUiLCJ1bnN0YWJsZV9BY3Rpdml0eSIsIndhbGtBZGRSZWZldGNoIiwic2VnbWVudFBhdGhUb1dhbGsiLCJ0cmVlVG9SZWNyZWF0ZSIsInNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlS2V5IiwiaXNMYXN0IiwibGVuZ3RoIiwibWF0Y2hTZWdtZW50IiwiaGFzT3duUHJvcGVydHkiLCJzdWJUcmVlIiwidW5kZWZpbmVkIiwic2xpY2UiLCJfX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUiLCJSZWFjdERPTSIsImZpbmRET01Ob2RlIiwiaW5zdGFuY2UiLCJ3aW5kb3ciLCJpbnRlcm5hbF9yZWFjdERPTWZpbmRET01Ob2RlIiwicmVjdFByb3BlcnRpZXMiLCJzaG91bGRTa2lwRWxlbWVudCIsImVsZW1lbnQiLCJpbmNsdWRlcyIsImdldENvbXB1dGVkU3R5bGUiLCJwb3NpdGlvbiIsIk5PREVfRU5WIiwiY29uc29sZSIsIndhcm4iLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiZXZlcnkiLCJpdGVtIiwidG9wT2ZFbGVtZW50SW5WaWV3cG9ydCIsInZpZXdwb3J0SGVpZ2h0IiwidG9wIiwiZ2V0SGFzaEZyYWdtZW50RG9tTm9kZSIsImhhc2hGcmFnbWVudCIsImRvY3VtZW50IiwiYm9keSIsImdldEVsZW1lbnRCeUlkIiwiZ2V0RWxlbWVudHNCeU5hbWUiLCJJbm5lclNjcm9sbEFuZEZvY3VzSGFuZGxlciIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29tcG9uZW50RGlkTW91bnQiLCJoYW5kbGVQb3RlbnRpYWxTY3JvbGwiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcm9wcyIsImZvY3VzQW5kU2Nyb2xsUmVmIiwiYXBwbHkiLCJyZW5kZXIiLCJjaGlsZHJlbiIsInNlZ21lbnRQYXRoIiwic2VnbWVudFBhdGhzIiwic29tZSIsInNjcm9sbFJlZlNlZ21lbnRQYXRoIiwiaW5kZXgiLCJkb21Ob2RlIiwiRWxlbWVudCIsIkhUTUxFbGVtZW50IiwicGFyZW50RWxlbWVudCIsImxvY2FsTmFtZSIsIm5leHRFbGVtZW50U2libGluZyIsImRpc2FibGVTbW9vdGhTY3JvbGxEdXJpbmdSb3V0ZVRyYW5zaXRpb24iLCJzY3JvbGxJbnRvVmlldyIsImh0bWxFbGVtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsVG9wIiwiZG9udEZvcmNlTGF5b3V0Iiwib25seUhhc2hDaGFuZ2UiLCJmb2N1cyIsIlNjcm9sbEFuZEZvY3VzSGFuZGxlciIsImNvbnRleHQiLCJ1c2VDb250ZXh0IiwiR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCIsIkVycm9yIiwiSW5uZXJMYXlvdXRSb3V0ZXIiLCJ0cmVlIiwiY2FjaGVOb2RlIiwidXJsIiwiZnVsbFRyZWUiLCJyZXNvbHZlZFByZWZldGNoUnNjIiwicHJlZmV0Y2hSc2MiLCJyc2MiLCJ1c2VEZWZlcnJlZFZhbHVlIiwicmVzb2x2ZWRSc2MiLCJ0aGVuIiwidXNlIiwibGF6eURhdGEiLCJyZWZldGNoVHJlZSIsImluY2x1ZGVOZXh0VXJsIiwiaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlIiwibmF2aWdhdGVkQXQiLCJEYXRlIiwibm93IiwiZmV0Y2hTZXJ2ZXJSZXNwb25zZSIsIlVSTCIsImxvY2F0aW9uIiwib3JpZ2luIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJuZXh0VXJsIiwic2VydmVyUmVzcG9uc2UiLCJzdGFydFRyYW5zaXRpb24iLCJkaXNwYXRjaEFwcFJvdXRlckFjdGlvbiIsInR5cGUiLCJBQ1RJT05fU0VSVkVSX1BBVENIIiwicHJldmlvdXNUcmVlIiwidW5yZXNvbHZlZFRoZW5hYmxlIiwic3VidHJlZSIsIkxheW91dFJvdXRlckNvbnRleHQiLCJQcm92aWRlciIsInZhbHVlIiwicGFyZW50VHJlZSIsInBhcmVudENhY2hlTm9kZSIsInBhcmVudFNlZ21lbnRQYXRoIiwiTG9hZGluZ0JvdW5kYXJ5IiwibG9hZGluZyIsImxvYWRpbmdNb2R1bGVEYXRhIiwicHJvbWlzZUZvckxvYWRpbmciLCJsb2FkaW5nUnNjIiwibG9hZGluZ1N0eWxlcyIsImxvYWRpbmdTY3JpcHRzIiwiU3VzcGVuc2UiLCJmYWxsYmFjayIsIlJlbmRlckNoaWxkcmVuIiwicGFyYWxsZWxSb3V0ZXJLZXkiLCJlcnJvciIsImVycm9yU3R5bGVzIiwiZXJyb3JTY3JpcHRzIiwidGVtcGxhdGVTdHlsZXMiLCJ0ZW1wbGF0ZVNjcmlwdHMiLCJ0ZW1wbGF0ZSIsIm5vdEZvdW5kIiwiZm9yYmlkZGVuIiwidW5hdXRob3JpemVkIiwiZ3JhY2VmdWxseURlZ3JhZGUiLCJzZWdtZW50Vmlld0JvdW5kYXJpZXMiLCJwYXJlbnRQYXJhbGxlbFJvdXRlcyIsInBhcmFsbGVsUm91dGVzIiwic2VnbWVudE1hcCIsImdldCIsIk1hcCIsInNldCIsInBhcmVudFRyZWVTZWdtZW50IiwiY29uY2F0IiwiYWN0aXZlVHJlZSIsImFjdGl2ZVNlZ21lbnQiLCJhY3RpdmVTdGF0ZUtleSIsImNyZWF0ZVJvdXRlckNhY2hlS2V5IiwiYmZjYWNoZUVudHJ5IiwidXNlUm91dGVyQkZDYWNoZSIsInN0YXRlS2V5IiwiY2FjaGVLZXkiLCJuZXdMYXp5Q2FjaGVOb2RlIiwiaGVhZCIsInByZWZldGNoSGVhZCIsIkVycm9yQm91bmRhcnlDb21wb25lbnQiLCJFcnJvckJvdW5kYXJ5Iiwic2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGUiLCJzZWdtZW50Vmlld1N0YXRlTm9kZSIsIl9fTkVYVF9ERVZUT09MX1NFR01FTlRfRVhQTE9SRVIiLCJTZWdtZW50Qm91bmRhcnlUcmlnZ2VyTm9kZSIsIlNlZ21lbnRWaWV3U3RhdGVOb2RlIiwicGFnZVByZWZpeCIsIm5vcm1hbGl6ZUFwcFBhdGgiLCJwYWdlIiwiY2hpbGQiLCJUZW1wbGF0ZUNvbnRleHQiLCJlcnJvckNvbXBvbmVudCIsIkhUVFBBY2Nlc3NGYWxsYmFja0JvdW5kYXJ5IiwiUmVkaXJlY3RCb3VuZGFyeSIsIlNlZ21lbnRTdGF0ZVByb3ZpZGVyIiwibW9kZSIsInB1c2giLCJuZXh0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/layout-router.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/links.js":
/*!***********************************************************!*\
!*** ./node_modules/next/dist/client/components/links.js ***!
\***********************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n IDLE_LINK_STATUS: function() {\n return IDLE_LINK_STATUS;\n },\n PENDING_LINK_STATUS: function() {\n return PENDING_LINK_STATUS;\n },\n mountFormInstance: function() {\n return mountFormInstance;\n },\n mountLinkInstance: function() {\n return mountLinkInstance;\n },\n onLinkVisibilityChanged: function() {\n return onLinkVisibilityChanged;\n },\n onNavigationIntent: function() {\n return onNavigationIntent;\n },\n pingVisibleLinks: function() {\n return pingVisibleLinks;\n },\n setLinkForCurrentNavigation: function() {\n return setLinkForCurrentNavigation;\n },\n unmountLinkForCurrentNavigation: function() {\n return unmountLinkForCurrentNavigation;\n },\n unmountPrefetchableInstance: function() {\n return unmountPrefetchableInstance;\n }\n});\nconst _approuterinstance = __webpack_require__(/*! ./app-router-instance */ \"(ssr)/./node_modules/next/dist/client/components/app-router-instance.js\");\nconst _approuter = __webpack_require__(/*! ./app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer/router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _segmentcache = __webpack_require__(/*! ./segment-cache */ \"(ssr)/./node_modules/next/dist/client/components/segment-cache.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n// Tracks the most recently navigated link instance. When null, indicates\n// the current navigation was not initiated by a link click.\nlet linkForMostRecentNavigation = null;\nconst PENDING_LINK_STATUS = {\n pending: true\n};\nconst IDLE_LINK_STATUS = {\n pending: false\n};\nfunction setLinkForCurrentNavigation(link) {\n (0, _react.startTransition)(()=>{\n linkForMostRecentNavigation == null ? void 0 : linkForMostRecentNavigation.setOptimisticLinkStatus(IDLE_LINK_STATUS);\n link == null ? void 0 : link.setOptimisticLinkStatus(PENDING_LINK_STATUS);\n linkForMostRecentNavigation = link;\n });\n}\nfunction unmountLinkForCurrentNavigation(link) {\n if (linkForMostRecentNavigation === link) {\n linkForMostRecentNavigation = null;\n }\n}\n// Use a WeakMap to associate a Link instance with its DOM element. This is\n// used by the IntersectionObserver to track the link's visibility.\nconst prefetchable = typeof WeakMap === 'function' ? new WeakMap() : new Map();\n// A Set of the currently visible links. We re-prefetch visible links after a\n// cache invalidation, or when the current URL changes. It's a separate data\n// structure from the WeakMap above because only the visible links need to\n// be enumerated.\nconst prefetchableAndVisible = new Set();\n// A single IntersectionObserver instance shared by all <Link> components.\nconst observer = typeof IntersectionObserver === 'function' ? new IntersectionObserver(handleIntersect, {\n rootMargin: '200px'\n}) : null;\nfunction observeVisibility(element, instance) {\n const existingInstance = prefetchable.get(element);\n if (existingInstance !== undefined) {\n // This shouldn't happen because each <Link> component should have its own\n // anchor tag instance, but it's defensive coding to avoid a memory leak in\n // case there's a logical error somewhere else.\n unmountPrefetchableInstance(element);\n }\n // Only track prefetchable links that have a valid prefetch URL\n prefetchable.set(element, instance);\n if (observer !== null) {\n observer.observe(element);\n }\n}\nfunction coercePrefetchableUrl(href) {\n try {\n return (0, _approuter.createPrefetchURL)(href);\n } catch (e) {\n // createPrefetchURL sometimes throws an error if an invalid URL is\n // provided, though I'm not sure if it's actually necessary.\n // TODO: Consider removing the throw from the inner function, or change it\n // to reportError. Or maybe the error isn't even necessary for automatic\n // prefetches, just navigations.\n const reportErrorFn = typeof reportError === 'function' ? reportError : console.error;\n reportErrorFn(\"Cannot prefetch '\" + href + \"' because it cannot be converted to a URL.\");\n return null;\n }\n}\nfunction mountLinkInstance(element, href, router, kind, prefetchEnabled, setOptimisticLinkStatus) {\n if (prefetchEnabled) {\n const prefetchURL = coercePrefetchableUrl(href);\n if (prefetchURL !== null) {\n const instance = {\n router,\n kind,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: prefetchURL.href,\n setOptimisticLinkStatus\n };\n // We only observe the link's visibility if it's prefetchable. For\n // example, this excludes links to external URLs.\n observeVisibility(element, instance);\n return instance;\n }\n }\n // If the link is not prefetchable, we still create an instance so we can\n // track its optimistic state (i.e. useLinkStatus).\n const instance = {\n router,\n kind,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: null,\n setOptimisticLinkStatus\n };\n return instance;\n}\nfunction mountFormInstance(element, href, router, kind) {\n const prefetchURL = coercePrefetchableUrl(href);\n if (prefetchURL === null) {\n // This href is not prefetchable, so we don't track it.\n // TODO: We currently observe/unobserve a form every time its href changes.\n // For Links, this isn't a big deal because the href doesn't usually change,\n // but for forms it's extremely common. We should optimize this.\n return;\n }\n const instance = {\n router,\n kind,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: prefetchURL.href,\n setOptimisticLinkStatus: null\n };\n observeVisibility(element, instance);\n}\nfunction unmountPrefetchableInstance(element) {\n const instance = prefetchable.get(element);\n if (instance !== undefined) {\n prefetchable.delete(element);\n prefetchableAndVisible.delete(instance);\n const prefetchTask = instance.prefetchTask;\n if (prefetchTask !== null) {\n (0, _segmentcache.cancelPrefetchTask)(prefetchTask);\n }\n }\n if (observer !== null) {\n observer.unobserve(element);\n }\n}\nfunction handleIntersect(entries) {\n for (const entry of entries){\n // Some extremely old browsers or polyfills don't reliably support\n // isIntersecting so we check intersectionRatio instead. (Do we care? Not\n // really. But whatever this is fine.)\n const isVisible = entry.intersectionRatio > 0;\n onLinkVisibilityChanged(entry.target, isVisible);\n }\n}\nfunction onLinkVisibilityChanged(element, isVisible) {\n if (true) {\n // Prefetching on viewport is disabled in development for performance\n // reasons, because it requires compiling the target page.\n // TODO: Investigate re-enabling this.\n return;\n }\n const instance = prefetchable.get(element);\n if (instance === undefined) {\n return;\n }\n instance.isVisible = isVisible;\n if (isVisible) {\n prefetchableAndVisible.add(instance);\n } else {\n prefetchableAndVisible.delete(instance);\n }\n rescheduleLinkPrefetch(instance, _segmentcache.PrefetchPriority.Default);\n}\nfunction onNavigationIntent(element, unstable_upgradeToDynamicPrefetch) {\n const instance = prefetchable.get(element);\n if (instance === undefined) {\n return;\n }\n // Prefetch the link on hover/touchstart.\n if (instance !== undefined) {\n if (false) {}\n rescheduleLinkPrefetch(instance, _segmentcache.PrefetchPriority.Intent);\n }\n}\nfunction rescheduleLinkPrefetch(instance, priority) {\n const existingPrefetchTask = instance.prefetchTask;\n if (!instance.isVisible) {\n // Cancel any in-progress prefetch task. (If it already finished then this\n // is a no-op.)\n if (existingPrefetchTask !== null) {\n (0, _segmentcache.cancelPrefetchTask)(existingPrefetchTask);\n }\n // We don't need to reset the prefetchTask to null upon cancellation; an\n // old task object can be rescheduled with reschedulePrefetchTask. This is a\n // micro-optimization but also makes the code simpler (don't need to\n // worry about whether an old task object is stale).\n return;\n }\n if (true) {\n // The old prefetch implementation does not have different priority levels.\n // Just schedule a new prefetch task.\n prefetchWithOldCacheImplementation(instance);\n return;\n }\n const appRouterState = (0, _approuterinstance.getCurrentAppRouterState)();\n if (appRouterState !== null) {\n const treeAtTimeOfPrefetch = appRouterState.tree;\n if (existingPrefetchTask === null) {\n // Initiate a prefetch task.\n const nextUrl = appRouterState.nextUrl;\n const cacheKey = (0, _segmentcache.createCacheKey)(instance.prefetchHref, nextUrl);\n instance.prefetchTask = (0, _segmentcache.schedulePrefetchTask)(cacheKey, treeAtTimeOfPrefetch, instance.kind === _routerreducertypes.PrefetchKind.FULL, priority, null);\n } else {\n // We already have an old task object that we can reschedule. This is\n // effectively the same as canceling the old task and creating a new one.\n (0, _segmentcache.reschedulePrefetchTask)(existingPrefetchTask, treeAtTimeOfPrefetch, instance.kind === _routerreducertypes.PrefetchKind.FULL, priority);\n }\n }\n}\nfunction pingVisibleLinks(nextUrl, tree) {\n // For each currently visible link, cancel the existing prefetch task (if it\n // exists) and schedule a new one. This is effectively the same as if all the\n // visible links left and then re-entered the viewport.\n //\n // This is called when the Next-Url or the base tree changes, since those\n // may affect the result of a prefetch task. It's also called after a\n // cache invalidation.\n for (const instance of prefetchableAndVisible){\n const task = instance.prefetchTask;\n if (task !== null && !(0, _segmentcache.isPrefetchTaskDirty)(task, nextUrl, tree)) {\n continue;\n }\n // Something changed. Cancel the existing prefetch task and schedule a\n // new one.\n if (task !== null) {\n (0, _segmentcache.cancelPrefetchTask)(task);\n }\n const cacheKey = (0, _segmentcache.createCacheKey)(instance.prefetchHref, nextUrl);\n instance.prefetchTask = (0, _segmentcache.schedulePrefetchTask)(cacheKey, tree, instance.kind === _routerreducertypes.PrefetchKind.FULL, _segmentcache.PrefetchPriority.Default, null);\n }\n}\nfunction prefetchWithOldCacheImplementation(instance) {\n // This is the path used when the Segment Cache is not enabled.\n if (true) {\n return;\n }\n const doPrefetch = async ()=>{\n // note that `appRouter.prefetch()` is currently sync,\n // so we have to wrap this call in an async function to be able to catch() errors below.\n return instance.router.prefetch(instance.prefetchHref, {\n kind: instance.kind\n });\n };\n // Prefetch the page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n doPrefetch().catch((err)=>{\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=links.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xpbmtzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQStEYUEsZ0JBQWdCO2VBQWhCQTs7SUFIQUMsbUJBQW1CO2VBQW5CQTs7SUFvSEdDLGlCQUFpQjtlQUFqQkE7O0lBdENBQyxpQkFBaUI7ZUFBakJBOztJQXdGQUMsdUJBQXVCO2VBQXZCQTs7SUFzQkFDLGtCQUFrQjtlQUFsQkE7O0lBMEVBQyxnQkFBZ0I7ZUFBaEJBOztJQTdQQUMsMkJBQTJCO2VBQTNCQTs7SUFTQUMsK0JBQStCO2VBQS9CQTs7SUEySEFDLDJCQUEyQjtlQUEzQkE7OzsrQ0F2TXlCO3VDQUNQO2dEQUNMOzBDQUNPO21DQVNKO0FBeUNoQyx5RUFBeUU7QUFDekUsNERBQTREO0FBQzVELElBQUlDLDhCQUFtRDtBQUdoRCxNQUFNVCxzQkFBc0I7SUFBRVUsU0FBUztBQUFLO0FBRzVDLE1BQU1YLG1CQUFtQjtJQUFFVyxTQUFTO0FBQU07QUFNMUMsU0FBU0osNEJBQTRCSyxJQUF5QjtJQUNuRUMsQ0FBQUEsR0FBQUEsT0FBQUEsZUFBQUEsRUFBZ0I7UUFDZEgsK0JBQUFBLE9BQUFBLEtBQUFBLElBQUFBLDRCQUE2QkksdUJBQXVCLENBQUNkO1FBQ3JEWSxRQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxLQUFNRSx1QkFBdUIsQ0FBQ2I7UUFDOUJTLDhCQUE4QkU7SUFDaEM7QUFDRjtBQUdPLFNBQVNKLGdDQUFnQ0ksSUFBa0I7SUFDaEUsSUFBSUYsZ0NBQWdDRSxNQUFNO1FBQ3hDRiw4QkFBOEI7SUFDaEM7QUFDRjtBQUVBLDJFQUEyRTtBQUMzRSxtRUFBbUU7QUFDbkUsTUFBTUssZUFHSixPQUFPQyxZQUFZLGFBQWEsSUFBSUEsWUFBWSxJQUFJQztBQUV0RCw2RUFBNkU7QUFDN0UsNEVBQTRFO0FBQzVFLDBFQUEwRTtBQUMxRSxpQkFBaUI7QUFDakIsTUFBTUMseUJBQW9ELElBQUlDO0FBRTlELDBFQUEw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QkFBQUEsRUFBbUIrQjtRQUNyQjtRQUNBLE1BQU1KLFdBQVdDLENBQUFBLEdBQUFBLGNBQUFBLGNBQUFBLEVBQWVqRCxTQUFTbUIsWUFBWSxFQUFFNEI7UUFDdkQvQyxTQUFTa0IsWUFBWSxHQUFHZ0MsQ0FBQUEsR0FBQUEsY0FBQUEsb0JBQUFBLEVBQ3RCRixVQUNBRixNQUNBOUMsU0FBU2MsSUFBSSxLQUFLc0Isb0JBQUFBLFlBQVksQ0FBQ0MsSUFBSSxFQUNuQ0wsY0FBQUEsZ0JBQWdCLENBQUNDLE9BQU8sRUFDeEI7SUFFSjtBQUNGO0FBRUEsU0FBU1MsbUNBQW1DMUMsUUFBOEI7SUFDeEUsK0RBQStEO0lBQy9ELElBQUksSUFBNkIsRUFBRTtRQUNqQztJQUNGO0lBRUEsTUFBTXVELGFBQWE7UUFDakIsc0RBQXNEO1FBQ3RELHdGQUF3RjtRQUN4RixPQUFPdkQsU0FBU2EsTUFBTSxDQUFDMkMsUUFBUSxDQUFDeEQsU0FBU21CLFlBQVksRUFBRTtZQUNyREwsTUFBTWQsU0FBU2MsSUFBSTtRQUNyQjtJQUNGO0lBRUEsa0RBQWtEO0lBQ2xELDBEQUEwRDtJQUMxRCxzREFBc0Q7SUFDdEQseURBQXlEO0lBQ3pEeUMsYUFBYUUsS0FBSyxDQUFDLENBQUNDO1FBQ2xCLElBQUkvQixJQUFvQixFQUFtQjtZQUN6QyxxQ0FBcUM7WUFDckMsTUFBTStCO1FBQ1I7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvbGlua3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBBcHBSb3V0ZXJJbnN0YW5jZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgZ2V0Q3VycmVudEFwcFJvdXRlclN0YXRlIH0gZnJvbSAnLi9hcHAtcm91dGVyLWluc3RhbmNlJ1xuaW1wb3J0IHsgY3JlYXRlUHJlZmV0Y2hVUkwgfSBmcm9tICcuL2FwcC1yb3V0ZXInXG5pbXBvcnQgeyBQcmVmZXRjaEtpbmQgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHsgaXNQcmVmZXRjaFRhc2tEaXJ0eSB9IGZyb20gJy4vc2VnbWVudC1jYWNoZSdcbmltcG9ydCB7IGNyZWF0ZUNhY2hlS2V5IH0gZnJvbSAnLi9zZWdtZW50LWNhY2hlJ1xuaW1wb3J0IHtcbiAgdHlwZSBQcmVmZXRjaFRhc2ssXG4gIFByZWZldGNoUHJpb3JpdHksXG4gIHNjaGVkdWxlUHJlZmV0Y2hUYXNrIGFzIHNjaGVkdWxlU2VnbWVudFByZWZldGNoVGFzayxcbiAgY2FuY2VsUHJlZmV0Y2hUYXNrLFxuICByZXNjaGVkdWxlUHJlZmV0Y2hUYXNrLFxufSBmcm9tICcuL3NlZ21lbnQtY2FjaGUnXG5pbXBvcnQgeyBzdGFydFRyYW5zaXRpb24gfSBmcm9tICdyZWFjdCdcblxudHlwZSBMaW5rRWxlbWVudCA9IEhUTUxBbmNob3JFbGVtZW50IHwgU1ZHQUVsZW1lbnRcblxudHlwZSBFbGVtZW50ID0gTGlua0VsZW1lbnQgfCBIVE1MRm9ybUVsZW1lbnRcblxuLy8gUHJvcGVydGllcyB0aGF0IGFyZSBzaGFyZWQgYmV0d2VlbiBMaW5rIGFuZCBGb3JtIGluc3RhbmNlcy4gV2UgdXNlIHRoZSBzYW1lXG4vLyBzaGFwZSBmb3IgYm90aCB0byBwcmV2ZW50IGEgcG9seW1vcnBoaWMgZGUtb3B0IGluIHRoZSBWTS5cbnR5cGUgTGlua09yRm9ybUluc3RhbmNlU2hhcmVkID0ge1xuICByb3V0ZXI6IEFwcFJvdXRlckluc3RhbmNlXG4gIGtpbmQ6IFByZWZldGNoS2luZC5BVVRPIHwgUHJlZmV0Y2hLaW5kLkZVTExcblxuICBpc1Zpc2libGU6IGJvb2xlYW5cblxuICAvLyBUaGUgbW9zdCByZWNlbnRseSBpbml0aWF0ZWQgcHJlZmV0Y2ggdGFzay4gSXQgbWF5IG9yIG1heSBub3QgaGF2ZVxuICAvLyBhbHJlYWR5IGNvbXBsZXRlZC4gVGhlIHNhbWUgcHJlZmV0Y2ggdGFzayBvYmplY3QgY2FuIGJlIHJldXNlZCBhY3Jvc3NcbiAgLy8gbXVsdGlwbGUgcHJlZmV0Y2hlcyBvZiB0aGUgc2FtZSBsaW5rLlxuICBwcmVmZXRjaFRhc2s6IFByZWZldGNoVGFzayB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgRm9ybUluc3RhbmNlID0gTGlua09yRm9ybUluc3RhbmNlU2hhcmVkICYge1xuICBwcmVmZXRjaEhyZWY6IHN0cmluZ1xuICBzZXRPcHRpbWlzdGljTGlua1N0YXR1czogbnVsbFxufVxuXG50eXBlIFByZWZldGNoYWJsZUxpbmtJbnN0YW5jZSA9IExpbmtPckZvcm1JbnN0YW5jZVNoYXJlZCAmIHtcbiAgcHJlZmV0Y2hIcmVmOiBzdHJpbmdcbiAgc2V0T3B0aW1pc3RpY0xpbmtTdGF0dXM6IChzdGF0dXM6IHsgcGVuZGluZzogYm9vbGVhbiB9KSA9PiB2b2lkXG59XG5cbnR5cGUgTm9uUHJlZmV0Y2hhYmxlTGlua0luc3RhbmNlID0gTGlua09yRm9ybUluc3RhbmNlU2hhcmVkICYge1xuICBwcmVmZXRjaEhyZWY6IG51bGxcbiAgc2V0T3B0aW1pc3RpY0xpbmtTdGF0dXM6IChzdGF0dXM6IHsgcGVuZGluZzogYm9vbGVhbiB9KSA9PiB2b2lkXG59XG5cbnR5cGUgUHJlZmV0Y2hhYmxlSW5zdGFuY2UgPSBQcmVmZXRjaGFibGVMaW5rSW5zdGFuY2UgfCBGb3JtSW5zdGFuY2VcblxuZXhwb3J0IHR5cGUgTGlua0luc3RhbmNlID1cbiAgfCBQcmVmZXRjaGFibGVMaW5rSW5zdGFuY2VcbiAgfCBOb25QcmVmZXRjaGFibGVMaW5rSW5zdGFuY2VcblxuLy8gVHJhY2tzIHRoZSBtb3N0IHJlY2VudGx5IG5hdmlnYXRlZCBsaW5rIGluc3RhbmNlLiBXaGVuIG51bGwsIGluZGljYXRlc1xuLy8gdGhlIGN1cnJlbnQgbmF2aWdhdGlvbiB3YXMgbm90IGluaXRpYXRlZCBieSBhIGxpbmsgY2xpY2suXG5sZXQgbGlua0Zvck1vc3RSZWNlbnROYXZpZ2F0aW9uOiBMaW5rSW5zdGFuY2UgfCBudWxsID0gbnVsbFxuXG4vLyBTdGF0dXMgb2JqZWN0IGluZGljYXRpbmcgbGluayBpcyBwZW5kaW5nXG5leHBvcnQgY29uc3QgUEVORElOR19MSU5LX1NUQVRVUyA9IHsgcGVuZGluZzogdHJ1ZSB9XG5cbi8vIFN0YXR1cyBvYmplY3QgaW5kaWNhdGluZyBsaW5rIGlzIGlkbGVcbmV4cG9ydCBjb25zdCBJRExFX0xJTktfU1RBVFVTID0geyBwZW5kaW5nOiBmYWxzZSB9XG5cbi8vIFVwZGF0ZXMgdGhlIGxvYWRpbmcgc3RhdGUgd2hlbiBuYXZpZ2F0aW5nIGJldHdlZW4gbGlua3Ncbi8vIC0gUmVzZXRzIHRoZSBwcmV2aW91cyBsaW5rJ3MgbG9hZGluZyBzdGF0ZVxuLy8gLSBTZXRzIHRoZSBuZXcgbGluaydzIGxvYWRpbmcgc3RhdGVcbi8vIC0gVXBkYXRlcyB0cmFja2luZyBvZiBjdXJyZW50IG5hdmlnYXRpb25cbmV4cG9ydCBmdW5jdGlvbiBzZXRMaW5rRm9yQ3VycmVudE5hdmlnYXRpb24obGluazogTGlua0luc3RhbmNlIHwgbnVsbCkge1xuICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgIGxpbmtGb3JNb3N0UmVjZW50TmF2aWdhdGlvbj8uc2V0T3B0aW1pc3RpY0xpbmtTdGF0dXMoSURMRV9MSU5LX1NUQVRVUylcbiAgICBsaW5rPy5zZXRPcHRpbWlzdGljTGlua1N0YXR1cyhQRU5ESU5HX0xJTktfU1RBVFVTKVxuICAgIGxpbmtGb3JNb3N0UmVjZW50TmF2aWdhdGlvbiA9IGxpbmtcbiAgfSlcbn1cblxuLy8gVW5tb3VudHMgdGhlIGN1cnJlbnQgbGluayBpbnN0YW5jZSBmcm9tIG5hdmlnYXRpb24gdHJhY2tpbmdcbmV4cG9ydCBmdW5jdGlvbiB1bm1vdW50TGlua0ZvckN1cnJlbnROYXZpZ2F0aW9uKGxpbms6IExpbmtJbnN0YW5jZSkge1xuICBpZiAobGlua0Zvck1vc3RSZWNlbnROYXZpZ2F0aW9uID09PSBsaW5rKSB7XG4gICAgbGlua0Zvck1vc3RSZWNlbnROYXZpZ2F0aW9uID0gbnVsbFxuICB9XG59XG5cbi8vIFVzZSBhIFdlYWtNYXAgdG8gYXNzb2NpYXRlIGEgTGluayBpbnN0YW5jZSB3aXRoIGl0cyBET00gZWxlbWVudC4gVGhpcyBpc1xuLy8gdXNlZCBieSB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgdG8gdHJhY2sgdGhlIGxpbmsncyB2aXNpYmlsaXR5LlxuY29uc3QgcHJlZmV0Y2hhYmxlOlxuICB8IFdlYWtNYXA8RWxlbWVudCwgUHJlZmV0Y2hhYmxlSW5zdGFuY2U+XG4gIHwgTWFwPEVsZW1lbnQsIFByZWZldGNoYWJsZUluc3RhbmNlPiA9XG4gIHR5cGVvZiBXZWFrTWFwID09PSAnZnVuY3Rpb24nID8gbmV3IFdlYWtNYXAoKSA6IG5ldyBNYXAoKVxuXG4vLyBBIFNldCBvZiB0aGUgY3VycmVudGx5IHZpc2libGUgbGlua3MuIFdlIHJlLXByZWZldGNoIHZpc2libGUgbGlua3MgYWZ0ZXIgYVxuLy8gY2FjaGUgaW52YWxpZGF0aW9uLCBvciB3aGVuIHRoZSBjdXJyZW50IFVSTCBjaGFuZ2VzLiBJdCdzIGEgc2VwYXJhdGUgZGF0YVxuLy8gc3RydWN0dXJlIGZyb20gdGhlIFdlYWtNYXAgYWJvdmUgYmVjYXVzZSBvbmx5IHRoZSB2aXNpYmxlIGxpbmtzIG5lZWQgdG9cbi8vIGJlIGVudW1lcmF0ZWQuXG5jb25zdCBwcmVmZXRjaGFibGVBbmRWaXNpYmxlOiBTZXQ8UHJlZmV0Y2hhYmxlSW5zdGFuY2U+ID0gbmV3IFNldCgpXG5cbi8vIEEgc2luZ2xlIEludGVyc2VjdGlvbk9ic2VydmVyIGluc3RhbmNlIHNoYXJlZCBieSBhbGwgPExpbms+IGNvbXBvbmVudHMuXG5jb25zdCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfCBudWxsID1cbiAgdHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyID09PSAnZnVuY3Rpb24nXG4gICAgPyBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlSW50ZXJzZWN0LCB7XG4gICAgICAgIHJvb3RNYXJnaW46ICcyMDBweCcsXG4gICAgICB9KVxuICAgIDogbnVsbFxuXG5mdW5jdGlvbiBvYnNlcnZlVmlzaWJpbGl0eShlbGVtZW50OiBFbGVtZW50LCBpbnN0YW5jZTogUHJlZmV0Y2hhYmxlSW5zdGFuY2UpIHtcbiAgY29uc3QgZXhpc3RpbmdJbnN0YW5jZSA9IHByZWZldGNoYWJsZS5nZXQoZWxlbWVudClcbiAgaWYgKGV4aXN0aW5nSW5zdGFuY2UgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiBiZWNhdXNlIGVhY2ggPExpbms+IGNvbXBvbmVudCBzaG91bGQgaGF2ZSBpdHMgb3duXG4gICAgLy8gYW5jaG9yIHRhZyBpbnN0YW5jZSwgYnV0IGl0J3MgZGVmZW5zaXZlIGNvZGluZyB0byBhdm9pZCBhIG1lbW9yeSBsZWFrIGluXG4gICAgLy8gY2FzZSB0aGVyZSdzIGEgbG9naWNhbCBlcnJvciBzb21ld2hlcmUgZWxzZS5cbiAgICB1bm1vdW50UHJlZmV0Y2hhYmxlSW5zdGFuY2UoZWxlbWVudClcbiAgfVxuICAvLyBPbmx5IHRyYWNrIHByZWZldGNoYWJsZSBsaW5rcyB0aGF0IGhhdmUgYSB2YWxpZCBwcmVmZXRjaCBVUkxcbiAgcHJlZmV0Y2hhYmxlLnNldChlbGVtZW50LCBpbnN0YW5jZSlcbiAgaWYgKG9ic2VydmVyICE9PSBudWxsKSB7XG4gICAgb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvZXJjZVByZWZldGNoYWJsZVVybChocmVmOiBzdHJpbmcpOiBVUkwgfCBudWxsIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gY3JlYXRlUHJlZmV0Y2hVUkwoaHJlZilcbiAgfSBjYXRjaCB7XG4gICAgLy8gY3JlYXRlUHJlZmV0Y2hVUkwgc29tZXRpbWVzIHRocm93cyBhbiBlcnJvciBpZiBhbiBpbnZhbGlkIFVSTCBpc1xuICAgIC8vIHByb3ZpZGVkLCB0aG91Z2ggSSdtIG5vdCBzdXJlIGlmIGl0J3MgYWN0dWFsbHkgbmVjZXNzYXJ5LlxuICAgIC8vIFRPRE86IENvbnNpZGVyIHJlbW92aW5nIHRoZSB0aHJvdyBmcm9tIHRoZSBpbm5lciBmdW5jdGlvbiwgb3IgY2hhbmdlIGl0XG4gICAgLy8gdG8gcmVwb3J0RXJyb3IuIE9yIG1heWJlIHRoZSBlcnJvciBpc24ndCBldmVuIG5lY2Vzc2FyeSBmb3IgYXV0b21hdGljXG4gICAgLy8gcHJlZmV0Y2hlcywganVzdCBuYXZpZ2F0aW9ucy5cbiAgICBjb25zdCByZXBvcnRFcnJvckZuID1cbiAgICAgIHR5cGVvZiByZXBvcnRFcnJvciA9PT0gJ2Z1bmN0aW9uJyA/IHJlcG9ydEVycm9yIDogY29uc29sZS5lcnJvclxuICAgIHJlcG9ydEVycm9yRm4oXG4gICAgICBgQ2Fubm90IHByZWZldGNoICcke2hyZWZ9JyBiZWNhdXNlIGl0IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBVUkwuYFxuICAgIClcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3VudExpbmtJbnN0YW5jZShcbiAgZWxlbWVudDogTGlua0VsZW1lbnQsXG4gIGhyZWY6IHN0cmluZyxcbiAgcm91dGVyOiBBcHBSb3V0ZXJJbnN0YW5jZSxcbiAga2luZDogUHJlZmV0Y2hLaW5kLkFVVE8gfCBQcmVmZXRjaEtpbmQuRlVMTCxcbiAgcHJlZmV0Y2hFbmFibGVkOiBib29sZWFuLFxuICBzZXRPcHRpbWlzdGljTGlua1N0YXR1czogKHN0YXR1czogeyBwZW5kaW5nOiBib29sZWFuIH0pID0+IHZvaWRcbik6IExpbmtJbnN0YW5jZSB7XG4gIGlmIChwcmVmZXRjaEVuYWJsZWQpIHtcbiAgICBjb25zdCBwcmVmZXRjaFVSTCA9IGNvZXJjZVByZWZldGNoYWJsZVVybChocmVmKVxuICAgIGlmIChwcmVmZXRjaFVSTCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgaW5zdGFuY2U6IFByZWZldGNoYWJsZUxpbmtJbnN0YW5jZSA9IHtcbiAgICAgICAgcm91dGVyLFxuICAgICAgICBraW5kLFxuICAgICAgICBpc1Zpc2libGU6IGZhbHNlLFxuICAgICAgICBwcmVmZXRjaFRhc2s6IG51bGwsXG4gICAgICAgIHByZWZldGNoSHJlZjogcHJlZmV0Y2hVUkwuaHJlZixcbiAgICAgICAgc2V0T3B0aW1pc3RpY0xpbmtTdGF0dXMsXG4gICAgICB9XG4gICAgICAvLyBXZSBvbmx5IG9ic2VydmUgdGhlIGxpbmsncyB2aXNpYmlsaXR5IGlmIGl0J3MgcHJlZmV0Y2hhYmxlLiBGb3JcbiAgICAgIC8vIGV4YW1wbGUsIHRoaXMgZXhjbHVkZXMgbGlua3MgdG8gZXh0ZXJuYWwgVVJMcy5cbiAgICAgIG9ic2VydmVWaXNpYmlsaXR5KGVsZW1lbnQsIGluc3RhbmNlKVxuICAgICAgcmV0dXJuIGluc3RhbmNlXG4gICAgfVxuICB9XG4gIC8vIElmIHRoZSBsaW5rIGlzIG5vdCBwcmVmZXRjaGFibGUsIHdlIHN0aWxsIGNyZWF0ZSBhbiBpbnN0YW5jZSBzbyB3ZSBjYW5cbiAgLy8gdHJhY2sgaXRzIG9wdGltaXN0aWMgc3RhdGUgKGkuZS4gdXNlTGlua1N0YXR1cykuXG4gIGNvbnN0IGluc3RhbmNlOiBOb25QcmVmZXRjaGFibGVMaW5rSW5zdGFuY2UgPSB7XG4gICAgcm91dGVyLFxuICAgIGtpbmQsXG4gICAgaXNWaXNpYmxlOiBmYWxzZSxcbiAgICBwcmVmZXRjaFRhc2s6IG51bGwsXG4gICAgcHJlZmV0Y2hIcmVmOiBudWxsLFxuICAgIHNldE9wdGltaXN0aWNMaW5rU3RhdHVzLFxuICB9XG4gIHJldHVybiBpbnN0YW5jZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW91bnRGb3JtSW5zdGFuY2UoXG4gIGVsZW1lbnQ6IEhUTUxGb3JtRWxlbWVudCxcbiAgaHJlZjogc3RyaW5nLFxuICByb3V0ZXI6IEFwcFJvdXRlckluc3RhbmNlLFxuICBraW5kOiBQcmVmZXRjaEtpbmQuQVVUTyB8IFByZWZldGNoS2luZC5GVUxMXG4pOiB2b2lkIHtcbiAgY29uc3QgcHJlZmV0Y2hVUkwgPSBjb2VyY2VQcmVmZXRjaGFibGVVcmwoaHJlZilcbiAgaWYgKHByZWZldGNoVVJMID09PSBudWxsKSB7XG4gICAgLy8gVGhpcyBocmVmIGlzIG5vdCBwcmVmZXRjaGFibGUsIHNvIHdlIGRvbid0IHRyYWNrIGl0LlxuICAgIC8vIFRPRE86IFdlIGN1cnJlbnRseSBvYnNlcnZlL3Vub2JzZXJ2ZSBhIGZvcm0gZXZlcnkgdGltZSBpdHMgaHJlZiBjaGFuZ2VzLlxuICAgIC8vIEZvciBMaW5rcywgdGhpcyBpc24ndCBhIGJpZyBkZWFsIGJlY2F1c2UgdGhlIGhyZWYgZG9lc24ndCB1c3VhbGx5IGNoYW5nZSxcbiAgICAvLyBidXQgZm9yIGZvcm1zIGl0J3MgZXh0cmVtZWx5IGNvbW1vbi4gV2Ugc2hvdWxkIG9wdGltaXplIHRoaXMuXG4gICAgcmV0dXJuXG4gIH1cbiAgY29uc3QgaW5zdGFuY2U6IEZvcm1JbnN0YW5jZSA9IHtcbiAgICByb3V0ZXIsXG4gICAga2luZCxcbiAgICBpc1Zpc2libGU6IGZhbHNlLFxuICAgIHByZWZldGNoVGFzazogbnVsbCxcbiAgICBwcmVmZXRjaEhyZWY6IHByZWZldGNoVVJMLmhyZWYsXG4gICAgc2V0T3B0aW1pc3RpY0xpbmtTdGF0dXM6IG51bGwsXG4gIH1cbiAgb2JzZXJ2ZVZpc2liaWxpdHkoZWxlbWVudCwgaW5zdGFuY2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bm1vdW50UHJlZmV0Y2hhYmxlSW5zdGFuY2UoZWxlbWVudDogRWxlbWVudCkge1xuICBjb25zdCBpbnN0YW5jZSA9IHByZWZldGNoYWJsZS5nZXQoZWxlbWVudClcbiAgaWYgKGluc3RhbmNlICE9PSB1bmRlZmluZWQpIHtcbiAgICBwcmVmZXRjaGFibGUuZGVsZXRlKGVsZW1lbnQpXG4gICAgcHJlZmV0Y2hhYmxlQW5kVmlzaWJsZS5kZWxldGUoaW5zdGFuY2UpXG4gICAgY29uc3QgcHJlZmV0Y2hUYXNrID0gaW5zdGFuY2UucHJlZmV0Y2hUYXNrXG4gICAgaWYgKHByZWZldGNoVGFzayAhPT0gbnVsbCkge1xuICAgICAgY2FuY2VsUHJlZmV0Y2hUYXNrKHByZWZldGNoVGFzaylcbiAgICB9XG4gIH1cbiAgaWYgKG9ic2VydmVyICE9PSBudWxsKSB7XG4gICAgb2JzZXJ2ZXIudW5vYnNlcnZlKGVsZW1lbnQpXG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlSW50ZXJzZWN0KGVudHJpZXM6IEFycmF5PEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+KSB7XG4gIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIC8vIFNvbWUgZXh0cmVtZWx5IG9sZCBicm93c2VycyBvciBwb2x5ZmlsbHMgZG9uJ3QgcmVsaWFibHkgc3VwcG9ydFxuICAgIC8vIGlzSW50ZXJzZWN0aW5nIHNvIHdlIGNoZWNrIGludGVyc2VjdGlvblJhdGlvIGluc3RlYWQuIChEbyB3ZSBjYXJlPyBOb3RcbiAgICAvLyByZWFsbHkuIEJ1dCB3aGF0ZXZlciB0aGlzIGlzIGZpbmUuKVxuICAgIGNvbnN0IGlzVmlzaWJsZSA9IGVudHJ5LmludGVyc2VjdGlvblJhdGlvID4gMFxuICAgIG9uTGlua1Zpc2liaWxpdHlDaGFuZ2VkKGVudHJ5LnRhcmdldCBhcyBIVE1MQW5jaG9yRWxlbWVudCwgaXNWaXNpYmxlKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbkxpbmtWaXNpYmlsaXR5Q2hhbmdlZChlbGVtZW50OiBFbGVtZW50LCBpc1Zpc2libGU6IGJvb2xlYW4pIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBQcmVmZXRjaGluZyBvbiB2aWV3cG9ydCBpcyBkaXNhYmxlZCBpbiBkZXZlbG9wbWVudCBmb3IgcGVyZm9ybWFuY2VcbiAgICAvLyByZWFzb25zLCBiZWNhdXNlIGl0IHJlcXVpcmVzIGNvbXBpbGluZyB0aGUgdGFyZ2V0IHBhZ2UuXG4gICAgLy8gVE9ETzogSW52ZXN0aWdhdGUgcmUtZW5hYmxpbmcgdGhpcy5cbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IGluc3RhbmNlID0gcHJlZmV0Y2hhYmxlLmdldChlbGVtZW50KVxuICBpZiAoaW5zdGFuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgaW5zdGFuY2UuaXNWaXNpYmxlID0gaXNWaXNpYmxlXG4gIGlmIChpc1Zpc2libGUpIHtcbiAgICBwcmVmZXRjaGFibGVBbmRWaXNpYmxlLmFkZChpbnN0YW5jZSlcbiAgfSBlbHNlIHtcbiAgICBwcmVmZXRjaGFibGVBbmRWaXNpYmxlLmRlbGV0ZShpbnN0YW5jZSlcbiAgfVxuICByZXNjaGVkdWxlTGlua1ByZWZldGNoKGluc3RhbmNlLCBQcmVmZXRjaFByaW9yaXR5LkRlZmF1bHQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbk5hdmlnYXRpb25JbnRlbnQoXG4gIGVsZW1lbnQ6IEhUTUxBbmNob3JFbGVtZW50IHwgU1ZHQUVsZW1lbnQsXG4gIHVuc3RhYmxlX3VwZ3JhZGVUb0R5bmFtaWNQcmVmZXRjaDogYm9vbGVhblxuKSB7XG4gIGNvbnN0IGluc3RhbmNlID0gcHJlZmV0Y2hhYmxlLmdldChlbGVtZW50KVxuICBpZiAoaW5zdGFuY2UgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVyblxuICB9XG4gIC8vIFByZWZldGNoIHRoZSBsaW5rIG9uIGhvdmVyL3RvdWNoc3RhcnQuXG4gIGlmIChpbnN0YW5jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX0RZTkFNSUNfT05fSE9WRVIgJiZcbiAgICAgIHVuc3RhYmxlX3VwZ3JhZGVUb0R5bmFtaWNQcmVmZXRjaFxuICAgICkge1xuICAgICAgLy8gU3dpdGNoIHRvIGEgZnVsbCwgZHluYW1pYyBwcmVmZXRjaFxuICAgICAgaW5zdGFuY2Uua2luZCA9IFByZWZldGNoS2luZC5GVUxMXG4gICAgfVxuICAgIHJlc2NoZWR1bGVMaW5rUHJlZmV0Y2goaW5zdGFuY2UsIFByZWZldGNoUHJpb3JpdHkuSW50ZW50KVxuICB9XG59XG5cbmZ1bmN0aW9uIHJlc2NoZWR1bGVMaW5rUHJlZmV0Y2goXG4gIGluc3RhbmNlOiBQcmVmZXRjaGFibGVJbnN0YW5jZSxcbiAgcHJpb3JpdHk6IFByZWZldGNoUHJpb3JpdHkuRGVmYXVsdCB8IFByZWZldGNoUHJpb3JpdHkuSW50ZW50XG4pIHtcbiAgY29uc3QgZXhpc3RpbmdQcmVmZXRjaFRhc2sgPSBpbnN0YW5jZS5wcmVmZXRjaFRhc2tcblxuICBpZiAoIWluc3RhbmNlLmlzVmlzaWJsZSkge1xuICAgIC8vIENhbmNlbCBhbnkgaW4tcHJvZ3Jlc3MgcHJlZmV0Y2ggdGFzay4gKElmIGl0IGFscmVhZHkgZmluaXNoZWQgdGhlbiB0aGlzXG4gICAgLy8gaXMgYSBuby1vcC4pXG4gICAgaWYgKGV4aXN0aW5nUHJlZmV0Y2hUYXNrICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxQcmVmZXRjaFRhc2soZXhpc3RpbmdQcmVmZXRjaFRhc2spXG4gICAgfVxuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gcmVzZXQgdGhlIHByZWZldGNoVGFzayB0byBudWxsIHVwb24gY2FuY2VsbGF0aW9uOyBhblxuICAgIC8vIG9sZCB0YXNrIG9iamVjdCBjYW4gYmUgcmVzY2hlZHVsZWQgd2l0aCByZXNjaGVkdWxlUHJlZmV0Y2hUYXNrLiBUaGlzIGlzIGFcbiAgICAvLyBtaWNyby1vcHRpbWl6YXRpb24gYnV0IGFsc28gbWFrZXMgdGhlIGNvZGUgc2ltcGxlciAoZG9uJ3QgbmVlZCB0b1xuICAgIC8vIHdvcnJ5IGFib3V0IHdoZXRoZXIgYW4gb2xkIHRhc2sgb2JqZWN0IGlzIHN0YWxlKS5cbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmICghcHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFKSB7XG4gICAgLy8gVGhlIG9sZCBwcmVmZXRjaCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBoYXZlIGRpZmZlcmVudCBwcmlvcml0eSBsZXZlbHMuXG4gICAgLy8gSnVzdCBzY2hlZHVsZSBhIG5ldyBwcmVmZXRjaCB0YXNrLlxuICAgIHByZWZldGNoV2l0aE9sZENhY2hlSW1wbGVtZW50YXRpb24oaW5zdGFuY2UpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBhcHBSb3V0ZXJTdGF0ZSA9IGdldEN1cnJlbnRBcHBSb3V0ZXJTdGF0ZSgpXG4gIGlmIChhcHBSb3V0ZXJTdGF0ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHRyZWVBdFRpbWVPZlByZWZldGNoID0gYXBwUm91dGVyU3RhdGUudHJlZVxuICAgIGlmIChleGlzdGluZ1ByZWZldGNoVGFzayA9PT0gbnVsbCkge1xuICAgICAgLy8gSW5pdGlhdGUgYSBwcmVmZXRjaCB0YXNrLlxuICAgICAgY29uc3QgbmV4dFVybCA9IGFwcFJvdXRlclN0YXRlLm5leHRVcmxcbiAgICAgIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlQ2FjaGVLZXkoaW5zdGFuY2UucHJlZmV0Y2hIcmVmLCBuZXh0VXJsKVxuICAgICAgaW5zdGFuY2UucHJlZmV0Y2hUYXNrID0gc2NoZWR1bGVTZWdtZW50UHJlZmV0Y2hUYXNrKFxuICAgICAgICBjYWNoZUtleSxcbiAgICAgICAgdHJlZUF0VGltZU9mUHJlZmV0Y2gsXG4gICAgICAgIGluc3RhbmNlLmtpbmQgPT09IFByZWZldGNoS2luZC5GVUxMLFxuICAgICAgICBwcmlvcml0eSxcbiAgICAgICAgbnVsbFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSBhbHJlYWR5IGhhdmUgYW4gb2xkIHRhc2sgb2JqZWN0IHRoYXQgd2UgY2FuIHJlc2NoZWR1bGUuIFRoaXMgaXNcbiAgICAgIC8vIGVmZmVjdGl2ZWx5IHRoZSBzYW1lIGFzIGNhbmNlbGluZyB0aGUgb2xkIHRhc2sgYW5kIGNyZWF0aW5nIGEgbmV3IG9uZS5cbiAgICAgIHJlc2NoZWR1bGVQcmVmZXRjaFRhc2soXG4gICAgICAgIGV4aXN0aW5nUHJlZmV0Y2hUYXNrLFxuICAgICAgICB0cmVlQXRUaW1lT2ZQcmVmZXRjaCxcbiAgICAgICAgaW5zdGFuY2Uua2luZCA9PT0gUHJlZmV0Y2hLaW5kLkZVTEwsXG4gICAgICAgIHByaW9yaXR5XG4gICAgICApXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwaW5nVmlzaWJsZUxpbmtzKFxuICBuZXh0VXJsOiBzdHJpbmcgfCBudWxsLFxuICB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKSB7XG4gIC8vIEZvciBlYWNoIGN1cnJlbnRseSB2aXNpYmxlIGxpbmssIGNhbmNlbCB0aGUgZXhpc3RpbmcgcHJlZmV0Y2ggdGFzayAoaWYgaXRcbiAgLy8gZXhpc3RzKSBhbmQgc2NoZWR1bGUgYSBuZXcgb25lLiBUaGlzIGlzIGVmZmVjdGl2ZWx5IHRoZSBzYW1lIGFzIGlmIGFsbCB0aGVcbiAgLy8gdmlzaWJsZSBsaW5rcyBsZWZ0IGFuZCB0aGVuIHJlLWVudGVyZWQgdGhlIHZpZXdwb3J0LlxuICAvL1xuICAvLyBUaGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBOZXh0LVVybCBvciB0aGUgYmFzZSB0cmVlIGNoYW5nZXMsIHNpbmNlIHRob3NlXG4gIC8vIG1heSBhZmZlY3QgdGhlIHJlc3VsdCBvZiBhIHByZWZldGNoIHRhc2suIEl0J3MgYWxzbyBjYWxsZWQgYWZ0ZXIgYVxuICAvLyBjYWNoZSBpbnZhbGlkYXRpb24uXG4gIGZvciAoY29uc3QgaW5zdGFuY2Ugb2YgcHJlZmV0Y2hhYmxlQW5kVmlzaWJsZSkge1xuICAgIGNvbnN0IHRhc2sgPSBpbnN0YW5jZS5wcmVmZXRjaFRhc2tcbiAgICBpZiAodGFzayAhPT0gbnVsbCAmJiAhaXNQcmVmZXRjaFRhc2tEaXJ0eSh0YXNrLCBuZXh0VXJsLCB0cmVlKSkge1xuICAgICAgLy8gVGhlIGNhY2hlIGhhcyBub3QgYmVlbiBpbnZhbGlkYXRlZCwgYW5kIG5vbmUgb2YgdGhlIGlucHV0cyBoYXZlXG4gICAgICAvLyBjaGFuZ2VkLiBCYWlsIG91dC5cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIC8vIFNvbWV0aGluZyBjaGFuZ2VkLiBDYW5jZWwgdGhlIGV4aXN0aW5nIHByZWZldGNoIHRhc2sgYW5kIHNjaGVkdWxlIGFcbiAgICAvLyBuZXcgb25lLlxuICAgIGlmICh0YXNrICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxQcmVmZXRjaFRhc2sodGFzaylcbiAgICB9XG4gICAgY29uc3QgY2FjaGVLZXkgPSBjcmVhdGVDYWNoZUtleShpbnN0YW5jZS5wcmVmZXRjaEhyZWYsIG5leHRVcmwpXG4gICAgaW5zdGFuY2UucHJlZmV0Y2hUYXNrID0gc2NoZWR1bGVTZWdtZW50UHJlZmV0Y2hUYXNrKFxuICAgICAgY2FjaGVLZXksXG4gICAgICB0cmVlLFxuICAgICAgaW5zdGFuY2Uua2luZCA9PT0gUHJlZmV0Y2hLaW5kLkZVTEwsXG4gICAgICBQcmVmZXRjaFByaW9yaXR5LkRlZmF1bHQsXG4gICAgICBudWxsXG4gICAgKVxuICB9XG59XG5cbmZ1bmN0aW9uIHByZWZldGNoV2l0aE9sZENhY2hlSW1wbGVtZW50YXRpb24oaW5zdGFuY2U6IFByZWZldGNoYWJsZUluc3RhbmNlKSB7XG4gIC8vIFRoaXMgaXMgdGhlIHBhdGggdXNlZCB3aGVuIHRoZSBTZWdtZW50IENhY2hlIGlzIG5vdCBlbmFibGVkLlxuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IGRvUHJlZmV0Y2ggPSBhc3luYyAoKSA9PiB7XG4gICAgLy8gbm90ZSB0aGF0IGBhcHBSb3V0ZXIucHJlZmV0Y2goKWAgaXMgY3VycmVudGx5IHN5bmMsXG4gICAgLy8gc28gd2UgaGF2ZSB0byB3cmFwIHRoaXMgY2FsbCBpbiBhbiBhc3luYyBmdW5jdGlvbiB0byBiZSBhYmxlIHRvIGNhdGNoKCkgZXJyb3JzIGJlbG93LlxuICAgIHJldHVybiBpbnN0YW5jZS5yb3V0ZXIucHJlZmV0Y2goaW5zdGFuY2UucHJlZmV0Y2hIcmVmLCB7XG4gICAgICBraW5kOiBpbnN0YW5jZS5raW5kLFxuICAgIH0pXG4gIH1cblxuICAvLyBQcmVmZXRjaCB0aGUgcGFnZSBpZiBhc2tlZCAob25seSBpbiB0aGUgY2xpZW50KVxuICAvLyBXZSBuZWVkIHRvIGhhbmRsZSBhIHByZWZldGNoIGVycm9yIGhlcmUgc2luY2Ugd2UgbWF5IGJlXG4gIC8vIGxvYWRpbmcgd2l0aCBwcmlvcml0eSB3aGljaCBjYW4gcmVqZWN0IGJ1dCB3ZSBkb24ndFxuICAvLyB3YW50IHRvIGZvcmNlIG5hdmlnYXRpb24gc2luY2UgdGhpcyBpcyBvbmx5IGEgcHJlZmV0Y2hcbiAgZG9QcmVmZXRjaCgpLmNhdGNoKChlcnIpID0+IHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLy8gcmV0aHJvdyB0byBzaG93IGludmFsaWQgVVJMIGVycm9yc1xuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9KVxufVxuIl0sIm5hbWVzIjpbIklETEVfTElOS19TVEFUVVMiLCJQRU5ESU5HX0xJTktfU1RBVFVTIiwibW91bnRGb3JtSW5zdGFuY2UiLCJtb3VudExpbmtJbnN0YW5jZSIsIm9uTGlua1Zpc2liaWxpdHlDaGFuZ2VkIiwib25OYXZpZ2F0aW9uSW50ZW50IiwicGluZ1Zpc2libGVMaW5rcyIsInNldExpbmtGb3JDdXJyZW50TmF2aWdhdGlvbiIsInVubW91bnRMaW5rRm9yQ3VycmVudE5hdmlnYXRpb24iLCJ1bm1vdW50UHJlZmV0Y2hhYmxlSW5zdGFuY2UiLCJsaW5rRm9yTW9zdFJlY2VudE5hdmlnYXRpb24iLCJwZW5kaW5nIiwibGluayIsInN0YXJ0VHJhbnNpdGlvbiIsInNldE9wdGltaXN0aWNMaW5rU3RhdHVzIiwicHJlZmV0Y2hhYmxlIiwiV2Vha01hcCIsIk1hcCIsInByZWZldGNoYWJsZUFuZFZpc2libGUiLCJTZXQiLCJvYnNlcnZlciIsIkludGVyc2VjdGlvbk9ic2VydmVyIiwiaGFuZGxlSW50ZXJzZWN0Iiwicm9vdE1hcmdpbiIsIm9ic2VydmVWaXNpYmlsaXR5IiwiZWxlbWVudCIsImluc3RhbmNlIiwiZXhpc3RpbmdJbnN0YW5jZSIsImdldCIsInVuZGVmaW5lZCIsInNldCIsIm9ic2VydmUiLCJjb2VyY2VQcmVmZXRjaGFibGVVcmwiLCJocmVmIiwiY3JlYXRlUHJlZmV0Y2hVUkwiLCJyZXBvcnRFcnJvckZuIiwicmVwb3J0RXJyb3IiLCJjb25zb2xlIiwiZXJyb3IiLCJyb3V0ZXIiLCJraW5kIiwicHJlZmV0Y2hFbmFibGVkIiwicHJlZmV0Y2hVUkwiLCJpc1Zpc2libGUiLCJwcmVmZXRjaFRhc2siLCJwcmVmZXRjaEhyZWYiLCJkZWxldGUiLCJjYW5jZWxQcmVmZXRjaFRhc2siLCJ1bm9ic2VydmUiLCJlbnRyaWVzIiwiZW50cnkiLCJpbnRlcnNlY3Rpb25SYXRpbyIsInRhcmdldCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImFkZCIsInJlc2NoZWR1bGVMaW5rUHJlZmV0Y2giLCJQcmVmZXRjaFByaW9yaXR5IiwiRGVmYXVsdCIsInVuc3RhYmxlX3VwZ3JhZGVUb0R5bmFtaWNQcmVmZXRjaCIsIl9fTkVYVF9EWU5BTUlDX09OX0hPVkVSIiwiUHJlZmV0Y2hLaW5kIiwiRlVMTCIsIkludGVudCIsInByaW9yaXR5IiwiZXhpc3RpbmdQcmVmZXRjaFRhc2siLCJfX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEUiLCJwcmVmZXRjaFdpdGhPbGRDYWNoZUltcGxlbWVudGF0aW9uIiwiYXBwUm91dGVyU3RhdGUiLCJnZXRDdXJyZW50QXBwUm91dGVyU3RhdGUiLCJ0cmVlQXRUaW1lT2ZQcmVmZXRjaCIsInRyZWUiLCJuZXh0VXJsIiwiY2FjaGVLZXkiLCJjcmVhdGVDYWNoZUtleSIsInNjaGVkdWxlU2VnbWVudFByZWZldGNoVGFzayIsInJlc2NoZWR1bGVQcmVmZXRjaFRhc2siLCJ0YXNrIiwiaXNQcmVmZXRjaFRhc2tEaXJ0eSIsIndpbmRvdyIsImRvUHJlZmV0Y2giLCJwcmVmZXRjaCIsImNhdGNoIiwiZXJyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/links.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/match-segments.js":
/*!********************************************************************!*\
!*** ./node_modules/next/dist/client/components/match-segments.js ***!
\********************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"matchSegment\", ({\n enumerable: true,\n get: function() {\n return matchSegment;\n }\n}));\nconst matchSegment = (existingSegment, segment)=>{\n // segment is either Array or string\n if (typeof existingSegment === 'string') {\n if (typeof segment === 'string') {\n // Common case: segment is just a string\n return existingSegment === segment;\n }\n return false;\n }\n if (typeof segment === 'string') {\n return false;\n }\n return existingSegment[0] === segment[0] && existingSegment[1] === segment[1];\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=match-segments.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21hdGNoLXNlZ21lbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBRWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLGVBQWUsQ0FDMUJDLGlCQUNBQztJQUVBLG9DQUFvQztJQUNwQyxJQUFJLE9BQU9ELG9CQUFvQixVQUFVO1FBQ3ZDLElBQUksT0FBT0MsWUFBWSxVQUFVO1lBQy9CLHdDQUF3QztZQUN4QyxPQUFPRCxvQkFBb0JDO1FBQzdCO1FBQ0EsT0FBTztJQUNUO0lBRUEsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsT0FBTztJQUNUO0lBQ0EsT0FBT0QsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUUsSUFBSUQsZUFBZSxDQUFDLEVBQUUsS0FBS0MsT0FBTyxDQUFDLEVBQUU7QUFDL0UiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9tYXRjaC1zZWdtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuZXhwb3J0IGNvbnN0IG1hdGNoU2VnbWVudCA9IChcbiAgZXhpc3RpbmdTZWdtZW50OiBTZWdtZW50LFxuICBzZWdtZW50OiBTZWdtZW50XG4pOiBib29sZWFuID0+IHtcbiAgLy8gc2VnbWVudCBpcyBlaXRoZXIgQXJyYXkgb3Igc3RyaW5nXG4gIGlmICh0eXBlb2YgZXhpc3RpbmdTZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIENvbW1vbiBjYXNlOiBzZWdtZW50IGlzIGp1c3QgYSBzdHJpbmdcbiAgICAgIHJldHVybiBleGlzdGluZ1NlZ21lbnQgPT09IHNlZ21lbnRcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIGV4aXN0aW5nU2VnbWVudFswXSA9PT0gc2VnbWVudFswXSAmJiBleGlzdGluZ1NlZ21lbnRbMV0gPT09IHNlZ21lbnRbMV1cbn1cbiJdLCJuYW1lcyI6WyJtYXRjaFNlZ21lbnQiLCJleGlzdGluZ1NlZ21lbnQiLCJzZWdtZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/match-segments.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/metadata/async-metadata.js":
/*!*****************************************************************************!*\
!*** ./node_modules/next/dist/client/components/metadata/async-metadata.js ***!
\*****************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AsyncMetadataOutlet\", ({\n enumerable: true,\n get: function() {\n return AsyncMetadataOutlet;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nfunction MetadataOutlet(param) {\n let { promise } = param;\n const { error, digest } = (0, _react.use)(promise);\n if (error) {\n if (digest) {\n // The error will lose its original digest after passing from server layer to client layer\n // We recover the digest property here to override the React created one if original digest exists.\n ;\n error.digest = digest;\n }\n throw error;\n }\n return null;\n}\nfunction AsyncMetadataOutlet(param) {\n let { promise } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {\n fallback: null,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(MetadataOutlet, {\n promise: promise\n })\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=async-metadata.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21ldGFkYXRhL2FzeW5jLW1ldGFkYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBc0JnQkE7OztlQUFBQTs7OzttQ0FwQmM7QUFHOUIsU0FBU0MsZUFBZSxLQUl2QjtJQUp1QixNQUN0QkMsT0FBTyxFQUdSLEdBSnVCO0lBS3RCLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsR0FBRyxFQUFDSDtJQUM5QixJQUFJQyxPQUFPO1FBQ1QsSUFBSUMsUUFBUTtZQUNWLDJGQUEyRjtZQUMzRixtR0FBbUc7O1lBQ2pHRCxNQUFjQyxNQUFNLEdBQUdBO1FBQzNCO1FBQ0EsTUFBTUQ7SUFDUjtJQUNBLE9BQU87QUFDVDtBQUVPLFNBQVNILG9CQUFvQixLQUluQztJQUptQyxNQUNsQ0UsT0FBTyxFQUdSLEdBSm1DO0lBS2xDLHFCQUNFLHFCQUFDSSxPQUFBQSxRQUFRO1FBQUNDLFVBQVU7a0JBQ2xCLG1DQUFDTixnQkFBQUE7WUFBZUMsU0FBU0E7OztBQUcvQiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL21ldGFkYXRhL2FzeW5jLW1ldGFkYXRhLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgU3VzcGVuc2UsIHVzZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBTdHJlYW1pbmdNZXRhZGF0YVJlc29sdmVkU3RhdGUgfSBmcm9tICcuL3R5cGVzJ1xuXG5mdW5jdGlvbiBNZXRhZGF0YU91dGxldCh7XG4gIHByb21pc2UsXG59OiB7XG4gIHByb21pc2U6IFByb21pc2U8U3RyZWFtaW5nTWV0YWRhdGFSZXNvbHZlZFN0YXRlPlxufSkge1xuICBjb25zdCB7IGVycm9yLCBkaWdlc3QgfSA9IHVzZShwcm9taXNlKVxuICBpZiAoZXJyb3IpIHtcbiAgICBpZiAoZGlnZXN0KSB7XG4gICAgICAvLyBUaGUgZXJyb3Igd2lsbCBsb3NlIGl0cyBvcmlnaW5hbCBkaWdlc3QgYWZ0ZXIgcGFzc2luZyBmcm9tIHNlcnZlciBsYXllciB0byBjbGllbnQgbGF5ZXLvvJtcbiAgICAgIC8vIFdlIHJlY292ZXIgdGhlIGRpZ2VzdCBwcm9wZXJ0eSBoZXJlIHRvIG92ZXJyaWRlIHRoZSBSZWFjdCBjcmVhdGVkIG9uZSBpZiBvcmlnaW5hbCBkaWdlc3QgZXhpc3RzLlxuICAgICAgOyhlcnJvciBhcyBhbnkpLmRpZ2VzdCA9IGRpZ2VzdFxuICAgIH1cbiAgICB0aHJvdyBlcnJvclxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBc3luY01ldGFkYXRhT3V0bGV0KHtcbiAgcHJvbWlzZSxcbn06IHtcbiAgcHJvbWlzZTogUHJvbWlzZTxTdHJlYW1pbmdNZXRhZGF0YVJlc29sdmVkU3RhdGU+XG59KSB7XG4gIHJldHVybiAoXG4gICAgPFN1c3BlbnNlIGZhbGxiYWNrPXtudWxsfT5cbiAgICAgIDxNZXRhZGF0YU91dGxldCBwcm9taXNlPXtwcm9taXNlfSAvPlxuICAgIDwvU3VzcGVuc2U+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJBc3luY01ldGFkYXRhT3V0bGV0IiwiTWV0YWRhdGFPdXRsZXQiLCJwcm9taXNlIiwiZXJyb3IiLCJkaWdlc3QiLCJ1c2UiLCJTdXNwZW5zZSIsImZhbGxiYWNrIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/metadata/async-metadata.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js":
/*!********************************************************************************!*\
!*** ./node_modules/next/dist/client/components/metadata/metadata-boundary.js ***!
\********************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n MetadataBoundary: function() {\n return MetadataBoundary;\n },\n OutletBoundary: function() {\n return OutletBoundary;\n },\n ViewportBoundary: function() {\n return ViewportBoundary;\n }\n});\nconst _metadataconstants = __webpack_require__(/*! ../../../lib/metadata/metadata-constants */ \"(ssr)/./node_modules/next/dist/lib/metadata/metadata-constants.js\");\n// We use a namespace object to allow us to recover the name of the function\n// at runtime even when production bundling/minification is used.\nconst NameSpace = {\n [_metadataconstants.METADATA_BOUNDARY_NAME]: function(param) {\n let { children } = param;\n return children;\n },\n [_metadataconstants.VIEWPORT_BOUNDARY_NAME]: function(param) {\n let { children } = param;\n return children;\n },\n [_metadataconstants.OUTLET_BOUNDARY_NAME]: function(param) {\n let { children } = param;\n return children;\n }\n};\nconst MetadataBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_metadataconstants.METADATA_BOUNDARY_NAME.slice(0)];\nconst ViewportBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_metadataconstants.VIEWPORT_BOUNDARY_NAME.slice(0)];\nconst OutletBoundary = // so it retains the name inferred from the namespace object\nNameSpace[_metadataconstants.OUTLET_BOUNDARY_NAME.slice(0)];\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=metadata-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL21ldGFkYXRhL21ldGFkYXRhLWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWtDYUEsZ0JBQWdCO2VBQWhCQTs7SUFVQUMsY0FBYztlQUFkQTs7SUFMQUMsZ0JBQWdCO2VBQWhCQTs7OytDQWpDTjtBQUVQLDRFQUE0RTtBQUM1RSxpRUFBaUU7QUFDakUsTUFBTUMsWUFBWTtJQUNoQixDQUFDQyxtQkFBQUEsc0JBQXNCLENBQUMsRUFBRSxTQUFVLEtBSW5DO1FBSm1DLE1BQ2xDQyxRQUFRLEVBR1QsR0FKbUM7UUFLbEMsT0FBT0E7SUFDVDtJQUNBLENBQUNDLG1CQUFBQSxzQkFBc0IsQ0FBQyxFQUFFLFNBQVUsS0FJbkM7UUFKbUMsTUFDbENELFFBQVEsRUFHVCxHQUptQztRQUtsQyxPQUFPQTtJQUNUO0lBQ0EsQ0FBQ0UsbUJBQUFBLG9CQUFvQixDQUFDLEVBQUUsU0FBVSxLQUlqQztRQUppQyxNQUNoQ0YsUUFBUSxFQUdULEdBSmlDO1FBS2hDLE9BQU9BO0lBQ1Q7QUFDRjtBQUVPLE1BQU1MLG1CQUNYLDREQUM0RDtBQUM1REcsU0FBUyxDQUFDQyxtQkFBQUEsc0JBQXNCLENBQUNJLEtBQUssQ0FBQyxHQUFvQztBQUV0RSxNQUFNTixtQkFDWCw0REFDNEQ7QUFDNURDLFNBQVMsQ0FBQ0csbUJBQUFBLHNCQUFzQixDQUFDRSxLQUFLLENBQUMsR0FBb0M7QUFFdEUsTUFBTVAsaUJBQ1gsNERBQzREO0FBQzVERSxTQUFTLENBQUNJLG1CQUFBQSxvQkFBb0IsQ0FBQ0MsS0FBSyxDQUFDLEdBQWtDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvbWV0YWRhdGEvbWV0YWRhdGEtYm91bmRhcnkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQge1xuICBNRVRBREFUQV9CT1VOREFSWV9OQU1FLFxuICBWSUVXUE9SVF9CT1VOREFSWV9OQU1FLFxuICBPVVRMRVRfQk9VTkRBUllfTkFNRSxcbn0gZnJvbSAnLi4vLi4vLi4vbGliL21ldGFkYXRhL21ldGFkYXRhLWNvbnN0YW50cydcblxuLy8gV2UgdXNlIGEgbmFtZXNwYWNlIG9iamVjdCB0byBhbGxvdyB1cyB0byByZWNvdmVyIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvblxuLy8gYXQgcnVudGltZSBldmVuIHdoZW4gcHJvZHVjdGlvbiBidW5kbGluZy9taW5pZmljYXRpb24gaXMgdXNlZC5cbmNvbnN0IE5hbWVTcGFjZSA9IHtcbiAgW01FVEFEQVRBX0JPVU5EQVJZX05BTUVdOiBmdW5jdGlvbiAoe1xuICAgIGNoaWxkcmVuLFxuICB9OiB7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICB9KSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuXG4gIH0sXG4gIFtWSUVXUE9SVF9CT1VOREFSWV9OQU1FXTogZnVuY3Rpb24gKHtcbiAgICBjaGlsZHJlbixcbiAgfToge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgfSkge1xuICAgIHJldHVybiBjaGlsZHJlblxuICB9LFxuICBbT1VUTEVUX0JPVU5EQVJZX05BTUVdOiBmdW5jdGlvbiAoe1xuICAgIGNoaWxkcmVuLFxuICB9OiB7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICB9KSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBNZXRhZGF0YUJvdW5kYXJ5ID1cbiAgLy8gV2UgdXNlIHNsaWNlKDApIHRvIHRyaWNrIHRoZSBidW5kbGVyIGludG8gbm90IGlubGluaW5nL21pbmlmeWluZyB0aGUgZnVuY3Rpb25cbiAgLy8gc28gaXQgcmV0YWlucyB0aGUgbmFtZSBpbmZlcnJlZCBmcm9tIHRoZSBuYW1lc3BhY2Ugb2JqZWN0XG4gIE5hbWVTcGFjZVtNRVRBREFUQV9CT1VOREFSWV9OQU1FLnNsaWNlKDApIGFzIHR5cGVvZiBNRVRBREFUQV9CT1VOREFSWV9OQU1FXVxuXG5leHBvcnQgY29uc3QgVmlld3BvcnRCb3VuZGFyeSA9XG4gIC8vIFdlIHVzZSBzbGljZSgwKSB0byB0cmljayB0aGUgYnVuZGxlciBpbnRvIG5vdCBpbmxpbmluZy9taW5pZnlpbmcgdGhlIGZ1bmN0aW9uXG4gIC8vIHNvIGl0IHJldGFpbnMgdGhlIG5hbWUgaW5mZXJyZWQgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdFxuICBOYW1lU3BhY2VbVklFV1BPUlRfQk9VTkRBUllfTkFNRS5zbGljZSgwKSBhcyB0eXBlb2YgVklFV1BPUlRfQk9VTkRBUllfTkFNRV1cblxuZXhwb3J0IGNvbnN0IE91dGxldEJvdW5kYXJ5ID1cbiAgLy8gV2UgdXNlIHNsaWNlKDApIHRvIHRyaWNrIHRoZSBidW5kbGVyIGludG8gbm90IGlubGluaW5nL21pbmlmeWluZyB0aGUgZnVuY3Rpb25cbiAgLy8gc28gaXQgcmV0YWlucyB0aGUgbmFtZSBpbmZlcnJlZCBmcm9tIHRoZSBuYW1lc3BhY2Ugb2JqZWN0XG4gIE5hbWVTcGFjZVtPVVRMRVRfQk9VTkRBUllfTkFNRS5zbGljZSgwKSBhcyB0eXBlb2YgT1VUTEVUX0JPVU5EQVJZX05BTUVdXG4iXSwibmFtZXMiOlsiTWV0YWRhdGFCb3VuZGFyeSIsIk91dGxldEJvdW5kYXJ5IiwiVmlld3BvcnRCb3VuZGFyeSIsIk5hbWVTcGFjZSIsIk1FVEFEQVRBX0JPVU5EQVJZX05BTUUiLCJjaGlsZHJlbiIsIlZJRVdQT1JUX0JPVU5EQVJZX05BTUUiLCJPVVRMRVRfQk9VTkRBUllfTkFNRSIsInNsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/nav-failure-handler.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/client/components/nav-failure-handler.js ***!
\*************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n handleHardNavError: function() {\n return handleHardNavError;\n },\n useNavFailureHandler: function() {\n return useNavFailureHandler;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _createhreffromurl = __webpack_require__(/*! ./router-reducer/create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nfunction handleHardNavError(error) {\n if (error && \"undefined\" !== 'undefined' && 0 && 0) {}\n return false;\n}\nfunction useNavFailureHandler() {\n if (false) {}\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=nav-failure-handler.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdi1mYWlsdXJlLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBR2dCQSxrQkFBa0I7ZUFBbEJBOztJQWtCQUMsb0JBQW9CO2VBQXBCQTs7O21DQXJCVTsrQ0FDUTtBQUUzQixTQUFTRCxtQkFBbUJFLEtBQWM7SUFDL0MsSUFDRUEsU0FDQSxPQUFPQyxTQUFXLGVBQ2xCQSxDQUF3QixJQUN4QkcsQ0FDNkMsRUFDN0MsRUFPRDtJQUNELE9BQU87QUFDVDtBQUVPLFNBQVNMO0lBQ2QsSUFBSVcsS0FBd0MsRUFBRSxFQXVCN0M7QUFDSCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL25hdi1mYWlsdXJlLWhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvY3JlYXRlLWhyZWYtZnJvbS11cmwnXG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVIYXJkTmF2RXJyb3IoZXJyb3I6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKFxuICAgIGVycm9yICYmXG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICB3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwgJiZcbiAgICBjcmVhdGVIcmVmRnJvbVVybChuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSkgIT09XG4gICAgICBjcmVhdGVIcmVmRnJvbVVybCh3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwpXG4gICkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgRXJyb3Igb2NjdXJyZWQgZHVyaW5nIG5hdmlnYXRpb24sIGZhbGxpbmcgYmFjayB0byBoYXJkIG5hdmlnYXRpb25gLFxuICAgICAgZXJyb3JcbiAgICApXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwudG9TdHJpbmcoKVxuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VOYXZGYWlsdXJlSGFuZGxlcigpIHtcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9BUFBfTkFWX0ZBSUxfSEFORExJTkcpIHtcbiAgICAvLyB0aGlzIGlmIGlzIG9ubHkgZm9yIERDRSBvZiB0aGUgZmVhdHVyZSBmbGFnIG5vdCBjb25kaXRpb25hbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIgPSAoXG4gICAgICAgIGV2dDogRXJyb3JFdmVudCB8IFByb21pc2VSZWplY3Rpb25FdmVudFxuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gJ3JlYXNvbicgaW4gZXZ0ID8gZXZ0LnJlYXNvbiA6IGV2dC5lcnJvclxuICAgICAgICAvLyBpZiB3ZSBoYXZlIGFuIHVuaGFuZGxlZCBleGNlcHRpb24vcmVqZWN0aW9uIGR1cmluZ1xuICAgICAgICAvLyBhIG5hdmlnYXRpb24gd2UgZmFsbCBiYWNrIHRvIGEgaGFyZCBuYXZpZ2F0aW9uIHRvXG4gICAgICAgIC8vIGF0dGVtcHQgcmVjb3ZlcmluZyB0byBhIGdvb2Qgc3RhdGVcbiAgICAgICAgaGFuZGxlSGFyZE5hdkVycm9yKGVycm9yKVxuICAgICAgfVxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3VuaGFuZGxlZHJlamVjdGlvbicsIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcilcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcilcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcilcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgJ3VuaGFuZGxlZHJlamVjdGlvbicsXG4gICAgICAgICAgdW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9LCBbXSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZUhhcmROYXZFcnJvciIsInVzZU5hdkZhaWx1cmVIYW5kbGVyIiwiZXJyb3IiLCJ3aW5kb3ciLCJuZXh0IiwiX19wZW5kaW5nVXJsIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJVUkwiLCJsb2NhdGlvbiIsImhyZWYiLCJjb25zb2xlIiwidG9TdHJpbmciLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0FQUF9OQVZfRkFJTF9IQU5ETElORyIsInVzZUVmZmVjdCIsInVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlciIsImV2dCIsInJlYXNvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/nav-failure-handler.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/client/components/navigation-untracked.js ***!
\**************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useUntrackedPathname\", ({\n enumerable: true,\n get: function() {\n return useUntrackedPathname;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js\");\n/**\n * This checks to see if the current render has any unknown route parameters.\n * It's used to trigger a different render path in the error boundary.\n *\n * @returns true if there are any unknown route parameters, false otherwise\n */ function hasFallbackRouteParams() {\n if (true) {\n // AsyncLocalStorage should not be included in the client bundle.\n const { workAsyncStorage } = __webpack_require__(/*! ../../server/app-render/work-async-storage.external */ \"./work-async-storage.external\");\n const workStore = workAsyncStorage.getStore();\n if (!workStore) return false;\n const { fallbackRouteParams } = workStore;\n if (!fallbackRouteParams || fallbackRouteParams.size === 0) return false;\n return true;\n }\n return false;\n}\nfunction useUntrackedPathname() {\n // If there are any unknown route parameters we would typically throw\n // an error, but this internal method allows us to return a null value instead\n // for components that do not propagate the pathname to the static shell (like\n // the error boundary).\n if (hasFallbackRouteParams()) {\n return null;\n }\n // This shouldn't cause any issues related to conditional rendering because\n // the environment will be consistent for the render.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (0, _react.useContext)(_hooksclientcontextsharedruntime.PathnameContext);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=navigation-untracked.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24tdW50cmFja2VkLmpzIiwibWFwcGluZ3MiOiI7Ozs7d0RBc0NnQkE7OztlQUFBQTs7O21DQXRDVzs2REFDSztBQUVoQzs7Ozs7Q0FLQyxHQUNELFNBQVNDO0lBQ1AsSUFBSSxJQUE2QixFQUFFO1FBQ2pDLGlFQUFpRTtRQUNqRSxNQUFNLEVBQUVFLGdCQUFnQixFQUFFLEdBQ3hCQyxtQkFBT0EsQ0FBQywwRkFBcUQ7UUFFL0QsTUFBTUMsWUFBWUYsaUJBQWlCRyxRQUFRO1FBQzNDLElBQUksQ0FBQ0QsV0FBVyxPQUFPO1FBRXZCLE1BQU0sRUFBRUUsbUJBQW1CLEVBQUUsR0FBR0Y7UUFDaEMsSUFBSSxDQUFDRSx1QkFBdUJBLG9CQUFvQkMsSUFBSSxLQUFLLEdBQUcsT0FBTztRQUVuRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFhTyxTQUFTUjtJQUNkLHFFQUFxRTtJQUNyRSw4RUFBOEU7SUFDOUUsOEVBQThFO0lBQzlFLHVCQUF1QjtJQUN2QixJQUFJQywwQkFBMEI7UUFDNUIsT0FBTztJQUNUO0lBRUEsMkVBQTJFO0lBQzNFLHFEQUFxRDtJQUNyRCxzREFBc0Q7SUFDdEQsT0FBT1EsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsaUNBQUFBLGVBQWU7QUFDbkMiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9uYXZpZ2F0aW9uLXVudHJhY2tlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBQYXRobmFtZUNvbnRleHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuXG4vKipcbiAqIFRoaXMgY2hlY2tzIHRvIHNlZSBpZiB0aGUgY3VycmVudCByZW5kZXIgaGFzIGFueSB1bmtub3duIHJvdXRlIHBhcmFtZXRlcnMuXG4gKiBJdCdzIHVzZWQgdG8gdHJpZ2dlciBhIGRpZmZlcmVudCByZW5kZXIgcGF0aCBpbiB0aGUgZXJyb3IgYm91bmRhcnkuXG4gKlxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgYW55IHVua25vd24gcm91dGUgcGFyYW1ldGVycywgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmZ1bmN0aW9uIGhhc0ZhbGxiYWNrUm91dGVQYXJhbXMoKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEFzeW5jTG9jYWxTdG9yYWdlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIGNsaWVudCBidW5kbGUuXG4gICAgY29uc3QgeyB3b3JrQXN5bmNTdG9yYWdlIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJylcblxuICAgIGNvbnN0IHdvcmtTdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICAgIGlmICghd29ya1N0b3JlKSByZXR1cm4gZmFsc2VcblxuICAgIGNvbnN0IHsgZmFsbGJhY2tSb3V0ZVBhcmFtcyB9ID0gd29ya1N0b3JlXG4gICAgaWYgKCFmYWxsYmFja1JvdXRlUGFyYW1zIHx8IGZhbGxiYWNrUm91dGVQYXJhbXMuc2l6ZSA9PT0gMCkgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qKlxuICogVGhpcyByZXR1cm5zIGEgYG51bGxgIHZhbHVlIGlmIHRoZXJlIGFyZSBhbnkgdW5rbm93biByb3V0ZSBwYXJhbWV0ZXJzLCBhbmRcbiAqIG90aGVyd2lzZSByZXR1cm5zIHRoZSBwYXRobmFtZSBmcm9tIHRoZSBjb250ZXh0LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlIHRvXG4gKiBgdXNlUGF0aG5hbWVgIHRoYXQgaXMgdXNlZCBpbiB0aGUgZXJyb3IgYm91bmRhcnkgdG8gYXZvaWQgcmVuZGVyaW5nIHRoZVxuICogZXJyb3IgYm91bmRhcnkgd2hlbiB0aGVyZSBhcmUgdW5rbm93biByb3V0ZSBwYXJhbWV0ZXJzLiBUaGlzIGRvZXNuJ3QgdGhyb3dcbiAqIHdoZW4gYWNjZXNzZWQgd2l0aCB1bmtub3duIHJvdXRlIHBhcmFtZXRlcnMuXG4gKlxuICogQHJldHVybnNcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVudHJhY2tlZFBhdGhuYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAvLyBJZiB0aGVyZSBhcmUgYW55IHVua25vd24gcm91dGUgcGFyYW1ldGVycyB3ZSB3b3VsZCB0eXBpY2FsbHkgdGhyb3dcbiAgLy8gYW4gZXJyb3IsIGJ1dCB0aGlzIGludGVybmFsIG1ldGhvZCBhbGxvd3MgdXMgdG8gcmV0dXJuIGEgbnVsbCB2YWx1ZSBpbnN0ZWFkXG4gIC8vIGZvciBjb21wb25lbnRzIHRoYXQgZG8gbm90IHByb3BhZ2F0ZSB0aGUgcGF0aG5hbWUgdG8gdGhlIHN0YXRpYyBzaGVsbCAobGlrZVxuICAvLyB0aGUgZXJyb3IgYm91bmRhcnkpLlxuICBpZiAoaGFzRmFsbGJhY2tSb3V0ZVBhcmFtcygpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8vIFRoaXMgc2hvdWxkbid0IGNhdXNlIGFueSBpc3N1ZXMgcmVsYXRlZCB0byBjb25kaXRpb25hbCByZW5kZXJpbmcgYmVjYXVzZVxuICAvLyB0aGUgZW52aXJvbm1lbnQgd2lsbCBiZSBjb25zaXN0ZW50IGZvciB0aGUgcmVuZGVyLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgcmV0dXJuIHVzZUNvbnRleHQoUGF0aG5hbWVDb250ZXh0KVxufVxuIl0sIm5hbWVzIjpbInVzZVVudHJhY2tlZFBhdGhuYW1lIiwiaGFzRmFsbGJhY2tSb3V0ZVBhcmFtcyIsIndpbmRvdyIsIndvcmtBc3luY1N0b3JhZ2UiLCJyZXF1aXJlIiwid29ya1N0b3JlIiwiZ2V0U3RvcmUiLCJmYWxsYmFja1JvdXRlUGFyYW1zIiwic2l6ZSIsInVzZUNvbnRleHQiLCJQYXRobmFtZUNvbnRleHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/navigation.js":
/*!****************************************************************!*\
!*** ./node_modules/next/dist/client/components/navigation.js ***!
\****************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ReadonlyURLSearchParams: function() {\n return _navigationreactserver.ReadonlyURLSearchParams;\n },\n RedirectType: function() {\n return _navigationreactserver.RedirectType;\n },\n ServerInsertedHTMLContext: function() {\n return _serverinsertedhtmlsharedruntime.ServerInsertedHTMLContext;\n },\n forbidden: function() {\n return _navigationreactserver.forbidden;\n },\n notFound: function() {\n return _navigationreactserver.notFound;\n },\n permanentRedirect: function() {\n return _navigationreactserver.permanentRedirect;\n },\n redirect: function() {\n return _navigationreactserver.redirect;\n },\n unauthorized: function() {\n return _navigationreactserver.unauthorized;\n },\n unstable_rethrow: function() {\n return _navigationreactserver.unstable_rethrow;\n },\n useParams: function() {\n return useParams;\n },\n usePathname: function() {\n return usePathname;\n },\n useRouter: function() {\n return useRouter;\n },\n useSearchParams: function() {\n return useSearchParams;\n },\n useSelectedLayoutSegment: function() {\n return useSelectedLayoutSegment;\n },\n useSelectedLayoutSegments: function() {\n return useSelectedLayoutSegments;\n },\n useServerInsertedHTML: function() {\n return _serverinsertedhtmlsharedruntime.useServerInsertedHTML;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js\");\nconst _getsegmentvalue = __webpack_require__(/*! ./router-reducer/reducers/get-segment-value */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js\");\nconst _segment = __webpack_require__(/*! ../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _navigationreactserver = __webpack_require__(/*! ./navigation.react-server */ \"(ssr)/./node_modules/next/dist/client/components/navigation.react-server.js\");\nconst _serverinsertedhtmlsharedruntime = __webpack_require__(/*! ../../shared/lib/server-inserted-html.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js\");\nconst useDynamicRouteParams = true ? (__webpack_require__(/*! ../../server/app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\").useDynamicRouteParams) : 0;\nfunction useSearchParams() {\n const searchParams = (0, _react.useContext)(_hooksclientcontextsharedruntime.SearchParamsContext);\n // In the case where this is `null`, the compat types added in\n // `next-env.d.ts` will add a new overload that changes the return type to\n // include `null`.\n const readonlySearchParams = (0, _react.useMemo)(()=>{\n if (!searchParams) {\n // When the router is not ready in pages, we won't have the search params\n // available.\n return null;\n }\n return new _navigationreactserver.ReadonlyURLSearchParams(searchParams);\n }, [\n searchParams\n ]);\n if (true) {\n // AsyncLocalStorage should not be included in the client bundle.\n const { bailoutToClientRendering } = __webpack_require__(/*! ./bailout-to-client-rendering */ \"(ssr)/./node_modules/next/dist/client/components/bailout-to-client-rendering.js\");\n // TODO-APP: handle dynamic = 'force-static' here and on the client\n bailoutToClientRendering('useSearchParams()');\n }\n return readonlySearchParams;\n}\nfunction usePathname() {\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('usePathname()');\n // In the case where this is `null`, the compat types added in `next-env.d.ts`\n // will add a new overload that changes the return type to include `null`.\n return (0, _react.useContext)(_hooksclientcontextsharedruntime.PathnameContext);\n}\nfunction useRouter() {\n const router = (0, _react.useContext)(_approutercontextsharedruntime.AppRouterContext);\n if (router === null) {\n throw Object.defineProperty(new Error('invariant expected app router to be mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E238\",\n enumerable: false,\n configurable: true\n });\n }\n return router;\n}\nfunction useParams() {\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('useParams()');\n return (0, _react.useContext)(_hooksclientcontextsharedruntime.PathParamsContext);\n}\n/** Get the canonical parameters from the current level to the leaf node. */ // Client components API\nfunction getSelectedLayoutSegmentPath(tree, parallelRouteKey, first, segmentPath) {\n if (first === void 0) first = true;\n if (segmentPath === void 0) segmentPath = [];\n let node;\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey];\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1];\n var _parallelRoutes_children;\n node = (_parallelRoutes_children = parallelRoutes.children) != null ? _parallelRoutes_children : Object.values(parallelRoutes)[0];\n }\n if (!node) return segmentPath;\n const segment = node[0];\n let segmentValue = (0, _getsegmentvalue.getSegmentValue)(segment);\n if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) {\n return segmentPath;\n }\n segmentPath.push(segmentValue);\n return getSelectedLayoutSegmentPath(node, parallelRouteKey, false, segmentPath);\n}\nfunction useSelectedLayoutSegments(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = 'children';\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('useSelectedLayoutSegments()');\n const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);\n // @ts-expect-error This only happens in `pages`. Type is overwritten in navigation.d.ts\n if (!context) return null;\n return getSelectedLayoutSegmentPath(context.parentTree, parallelRouteKey);\n}\nfunction useSelectedLayoutSegment(parallelRouteKey) {\n if (parallelRouteKey === void 0) parallelRouteKey = 'children';\n useDynamicRouteParams == null ? void 0 : useDynamicRouteParams('useSelectedLayoutSegment()');\n const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey);\n if (!selectedLayoutSegments || selectedLayoutSegments.length === 0) {\n return null;\n }\n const selectedLayoutSegment = parallelRouteKey === 'children' ? selectedLayoutSegments[0] : selectedLayoutSegments[selectedLayoutSegments.length - 1];\n // if the default slot is showing, we return null since it's not technically \"selected\" (it's a fallback)\n // and returning an internal value like `__DEFAULT__` would be confusing.\n return selectedLayoutSegment === _segment.DEFAULT_SEGMENT_KEY ? null : selectedLayoutSegment;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=navigation.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBMFJFQSx1QkFBdUI7ZUFBdkJBLHVCQUFBQSx1QkFBdUI7O0lBRHZCQyxZQUFZO2VBQVpBLHVCQUFBQSxZQUFZOztJQXBMWkMseUJBQXlCO2VBQXpCQSxpQ0FBQUEseUJBQXlCOztJQWdMekJDLFNBQVM7ZUFBVEEsdUJBQUFBLFNBQVM7O0lBRFRDLFFBQVE7ZUFBUkEsdUJBQUFBLFFBQVE7O0lBSVJDLGlCQUFpQjtlQUFqQkEsdUJBQUFBLGlCQUFpQjs7SUFEakJDLFFBQVE7ZUFBUkEsdUJBQUFBLFFBQVE7O0lBRFJDLFlBQVk7ZUFBWkEsdUJBQUFBLFlBQVk7O0lBS1pDLGdCQUFnQjtlQUFoQkEsdUJBQUFBLGdCQUFnQjs7SUFwSUZDLFNBQVM7ZUFBVEE7O0lBNURBQyxXQUFXO2VBQVhBOztJQWlDQUMsU0FBUztlQUFUQTs7SUE5RUFDLGVBQWU7ZUFBZkE7O0lBNk1BQyx3QkFBd0I7ZUFBeEJBOztJQS9CQUMseUJBQXlCO2VBQXpCQTs7SUF0SGRDLHFCQUFxQjtlQUFyQkEsaUNBQUFBLHFCQUFxQjs7O21DQW5HYTsyREFLN0I7NkRBS0E7NkNBQ3lCO3FDQUNzQjttREFDZDs2REF1RmpDO0FBckZQLE1BQU1DLHdCQUNKLEtBQTZCLEdBRXZCRSxxS0FDcUIsR0FDdkJDLENBQVNBO0FBdUJSLFNBQVNQO0lBQ2QsTUFBTVEsZUFBZUMsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsaUNBQUFBLG1CQUFtQjtJQUVuRCw4REFBOEQ7SUFDOUQsMEVBQTBFO0lBQzFFLGtCQUFrQjtJQUNsQixNQUFNQyx1QkFBdUJDLENBQUFBLEdBQUFBLE9BQUFBLE9BQUFBLEVBQVE7UUFDbkMsSUFBSSxDQUFDSixjQUFjO1lBQ2pCLHlFQUF5RTtZQUN6RSxhQUFhO1lBQ2IsT0FBTztRQUNUO1FBRUEsT0FBTyxJQUFJcEIs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QUFDQSx1QkFBdUJDLE1BQU0sR0FBRyxFQUFFO0lBRS9ELHlHQUF5RztJQUN6Ryx5RUFBeUU7SUFDekUsT0FBT0MsMEJBQTBCQyxTQUFBQSxtQkFBbUIsR0FDaEQsT0FDQUQ7QUFDTiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5cbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIEFwcFJvdXRlckNvbnRleHQsXG4gIExheW91dFJvdXRlckNvbnRleHQsXG4gIHR5cGUgQXBwUm91dGVySW5zdGFuY2UsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHtcbiAgU2VhcmNoUGFyYW1zQ29udGV4dCxcbiAgUGF0aG5hbWVDb250ZXh0LFxuICBQYXRoUGFyYW1zQ29udGV4dCxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9ob29rcy1jbGllbnQtY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGdldFNlZ21lbnRWYWx1ZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZ2V0LXNlZ21lbnQtdmFsdWUnXG5pbXBvcnQgeyBQQUdFX1NFR01FTlRfS0VZLCBERUZBVUxUX1NFR01FTlRfS0VZIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50J1xuaW1wb3J0IHsgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMgfSBmcm9tICcuL25hdmlnYXRpb24ucmVhY3Qtc2VydmVyJ1xuXG5jb25zdCB1c2VEeW5hbWljUm91dGVQYXJhbXMgPVxuICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJ1xuICAgID8gKFxuICAgICAgICByZXF1aXJlKCcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZycpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nJylcbiAgICAgICkudXNlRHluYW1pY1JvdXRlUGFyYW1zXG4gICAgOiB1bmRlZmluZWRcblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgKnJlYWQqIHRoZSBjdXJyZW50IFVSTCdzIHNlYXJjaCBwYXJhbWV0ZXJzLlxuICpcbiAqIExlYXJuIG1vcmUgYWJvdXQgW2BVUkxTZWFyY2hQYXJhbXNgIG9uIE1ETl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1VSTFNlYXJjaFBhcmFtcylcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG4gKlxuICogZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFnZSgpIHtcbiAqICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gdXNlU2VhcmNoUGFyYW1zKClcbiAqICAgc2VhcmNoUGFyYW1zLmdldCgnZm9vJykgLy8gcmV0dXJucyAnYmFyJyB3aGVuID9mb289YmFyXG4gKiAgIC8vIC4uLlxuICogfVxuICogYGBgXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlU2VhcmNoUGFyYW1zYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zKVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWFyY2hQYXJhbXMoKTogUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSB1c2VDb250ZXh0KFNlYXJjaFBhcmFtc0NvbnRleHQpXG5cbiAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhpcyBpcyBgbnVsbGAsIHRoZSBjb21wYXQgdHlwZXMgYWRkZWQgaW5cbiAgLy8gYG5leHQtZW52LmQudHNgIHdpbGwgYWRkIGEgbmV3IG92ZXJsb2FkIHRoYXQgY2hhbmdlcyB0aGUgcmV0dXJuIHR5cGUgdG9cbiAgLy8gaW5jbHVkZSBgbnVsbGAuXG4gIGNvbnN0IHJlYWRvbmx5U2VhcmNoUGFyYW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFzZWFyY2hQYXJhbXMpIHtcbiAgICAgIC8vIFdoZW4gdGhlIHJvdXRlciBpcyBub3QgcmVhZHkgaW4gcGFnZXMsIHdlIHdvbid0IGhhdmUgdGhlIHNlYXJjaCBwYXJhbXNcbiAgICAgIC8vIGF2YWlsYWJsZS5cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtcyhzZWFyY2hQYXJhbXMpXG4gIH0sIFtzZWFyY2hQYXJhbXNdKSBhcyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc1xuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIC8vIEFzeW5jTG9jYWxTdG9yYWdlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIGNsaWVudCBidW5kbGUuXG4gICAgY29uc3QgeyBiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmcgfSA9XG4gICAgICByZXF1aXJlKCcuL2JhaWxvdXQtdG8tY2xpZW50LXJlbmRlcmluZycpIGFzIHR5cGVvZiBpbXBvcnQoJy4vYmFpbG91dC10by1jbGllbnQtcmVuZGVyaW5nJylcbiAgICAvLyBUT0RPLUFQUDogaGFuZGxlIGR5bmFtaWMgPSAnZm9yY2Utc3RhdGljJyBoZXJlIGFuZCBvbiB0aGUgY2xpZW50XG4gICAgYmFpbG91dFRvQ2xpZW50UmVuZGVyaW5nKCd1c2VTZWFyY2hQYXJhbXMoKScpXG4gIH1cblxuICByZXR1cm4gcmVhZG9ubHlTZWFyY2hQYXJhbXNcbn1cblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgcmVhZCB0aGUgY3VycmVudCBVUkwncyBwYXRobmFtZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VQYXRobmFtZSB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQYWdlKCkge1xuICogIGNvbnN0IHBhdGhuYW1lID0gdXNlUGF0aG5hbWUoKSAvLyByZXR1cm5zIFwiL2Rhc2hib2FyZFwiIG9uIC9kYXNoYm9hcmQ/Zm9vPWJhclxuICogIC8vIC4uLlxuICogfVxuICogYGBgXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlUGF0aG5hbWVgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXBhdGhuYW1lKVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VQYXRobmFtZSgpOiBzdHJpbmcge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlUGF0aG5hbWUoKScpXG5cbiAgLy8gSW4gdGhlIGNhc2Ugd2hlcmUgdGhpcyBpcyBgbnVsbGAsIHRoZSBjb21wYXQgdHlwZXMgYWRkZWQgaW4gYG5leHQtZW52LmQudHNgXG4gIC8vIHdpbGwgYWRkIGEgbmV3IG92ZXJsb2FkIHRoYXQgY2hhbmdlcyB0aGUgcmV0dXJuIHR5cGUgdG8gaW5jbHVkZSBgbnVsbGAuXG4gIHJldHVybiB1c2VDb250ZXh0KFBhdGhuYW1lQ29udGV4dCkgYXMgc3RyaW5nXG59XG5cbi8vIENsaWVudCBjb21wb25lbnRzIEFQSVxuZXhwb3J0IHtcbiAgU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dCxcbiAgdXNlU2VydmVySW5zZXJ0ZWRIVE1MLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3NlcnZlci1pbnNlcnRlZC1odG1sLnNoYXJlZC1ydW50aW1lJ1xuXG4vKipcbiAqXG4gKiBUaGlzIGhvb2sgYWxsb3dzIHlvdSB0byBwcm9ncmFtbWF0aWNhbGx5IGNoYW5nZSByb3V0ZXMgaW5zaWRlIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogXCJ1c2UgY2xpZW50XCJcbiAqIGltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQYWdlKCkge1xuICogIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpXG4gKiAgLy8gLi4uXG4gKiAgcm91dGVyLnB1c2goJy9kYXNoYm9hcmQnKSAvLyBOYXZpZ2F0ZSB0byAvZGFzaGJvYXJkXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1c2VSb3V0ZXJgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXJvdXRlcilcbiAqL1xuLy8gQ2xpZW50IGNvbXBvbmVudHMgQVBJXG5leHBvcnQgZnVuY3Rpb24gdXNlUm91dGVyKCk6IEFwcFJvdXRlckluc3RhbmNlIHtcbiAgY29uc3Qgcm91dGVyID0gdXNlQ29udGV4dChBcHBSb3V0ZXJDb250ZXh0KVxuICBpZiAocm91dGVyID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhcmlhbnQgZXhwZWN0ZWQgYXBwIHJvdXRlciB0byBiZSBtb3VudGVkJylcbiAgfVxuXG4gIHJldHVybiByb3V0ZXJcbn1cblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgcmVhZCBhIHJvdXRlJ3MgZHluYW1pYyBwYXJhbXMgZmlsbGVkIGluIGJ5IHRoZSBjdXJyZW50IFVSTC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIFwidXNlIGNsaWVudFwiXG4gKiBpbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG4gKlxuICogZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFnZSgpIHtcbiAqICAgLy8gb24gL2Rhc2hib2FyZC9bdGVhbV0gd2hlcmUgcGF0aG5hbWUgaXMgL2Rhc2hib2FyZC9uZXh0anNcbiAqICAgY29uc3QgeyB0ZWFtIH0gPSB1c2VQYXJhbXMoKSAvLyB0ZWFtID09PSBcIm5leHRqc1wiXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1c2VQYXJhbXNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXBhcmFtcylcbiAqL1xuLy8gQ2xpZW50IGNvbXBvbmVudHMgQVBJXG5leHBvcnQgZnVuY3Rpb24gdXNlUGFyYW1zPFQgZXh0ZW5kcyBQYXJhbXMgPSBQYXJhbXM+KCk6IFQge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlUGFyYW1zKCknKVxuXG4gIHJldHVybiB1c2VDb250ZXh0KFBhdGhQYXJhbXNDb250ZXh0KSBhcyBUXG59XG5cbi8qKiBHZXQgdGhlIGNhbm9uaWNhbCBwYXJhbWV0ZXJzIGZyb20gdGhlIGN1cnJlbnQgbGV2ZWwgdG8gdGhlIGxlYWYgbm9kZS4gKi9cbi8vIENsaWVudCBjb21wb25lbnRzIEFQSVxuZnVuY3Rpb24gZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aChcbiAgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHBhcmFsbGVsUm91dGVLZXk6IHN0cmluZyxcbiAgZmlyc3QgPSB0cnVlLFxuICBzZWdtZW50UGF0aDogc3RyaW5nW10gPSBbXVxuKTogc3RyaW5nW10ge1xuICBsZXQgbm9kZTogRmxpZ2h0Um91dGVyU3RhdGVcbiAgaWYgKGZpcnN0KSB7XG4gICAgLy8gVXNlIHRoZSBwcm92aWRlZCBwYXJhbGxlbCByb3V0ZSBrZXkgb24gdGhlIGZpcnN0IHBhcmFsbGVsIHJvdXRlXG4gICAgbm9kZSA9IHRyZWVbMV1bcGFyYWxsZWxSb3V0ZUtleV1cbiAgfSBlbHNlIHtcbiAgICAvLyBBZnRlciBmaXJzdCBwYXJhbGxlbCByb3V0ZSBwcmVmZXIgY2hpbGRyZW4sIGlmIHRoZXJlJ3Mgbm8gY2hpbGRyZW4gcGljayB0aGUgZmlyc3QgcGFyYWxsZWwgcm91dGUuXG4gICAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSB0cmVlWzFdXG4gICAgbm9kZSA9IHBhcmFsbGVsUm91dGVzLmNoaWxkcmVuID8/IE9iamVjdC52YWx1ZXMocGFyYWxsZWxSb3V0ZXMpWzBdXG4gIH1cblxuICBpZiAoIW5vZGUpIHJldHVybiBzZWdtZW50UGF0aFxuICBjb25zdCBzZWdtZW50ID0gbm9kZVswXVxuXG4gIGxldCBzZWdtZW50VmFsdWUgPSBnZXRTZWdtZW50VmFsdWUoc2VnbWVudClcblxuICBpZiAoIXNlZ21lbnRWYWx1ZSB8fCBzZWdtZW50VmFsdWUuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkge1xuICAgIHJldHVybiBzZWdtZW50UGF0aFxuICB9XG5cbiAgc2VnbWVudFBhdGgucHVzaChzZWdtZW50VmFsdWUpXG5cbiAgcmV0dXJuIGdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgoXG4gICAgbm9kZSxcbiAgICBwYXJhbGxlbFJvdXRlS2V5LFxuICAgIGZhbHNlLFxuICAgIHNlZ21lbnRQYXRoXG4gIClcbn1cblxuLyoqXG4gKiBBIFtDbGllbnQgQ29tcG9uZW50XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvY2xpZW50LWNvbXBvbmVudHMpIGhvb2tcbiAqIHRoYXQgbGV0cyB5b3UgcmVhZCB0aGUgYWN0aXZlIHJvdXRlIHNlZ21lbnRzICoqYmVsb3cqKiB0aGUgTGF5b3V0IGl0IGlzIGNhbGxlZCBmcm9tLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogJ3VzZSBjbGllbnQnXG4gKlxuICogaW1wb3J0IHsgdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cyB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBFeGFtcGxlQ2xpZW50Q29tcG9uZW50KCkge1xuICogICBjb25zdCBzZWdtZW50cyA9IHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMoKVxuICpcbiAqICAgcmV0dXJuIChcbiAqICAgICA8dWw+XG4gKiAgICAgICB7c2VnbWVudHMubWFwKChzZWdtZW50LCBpbmRleCkgPT4gKFxuICogICAgICAgICA8bGkga2V5PXtpbmRleH0+e3NlZ21lbnR9PC9saT5cbiAqICAgICAgICkpfVxuICogICAgIDwvdWw+XG4gKiAgIClcbiAqIH1cbiAqIGBgYFxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlbGVjdGVkLWxheW91dC1zZWdtZW50cylcbiAqL1xuLy8gQ2xpZW50IGNvbXBvbmVudHMgQVBJXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cyhcbiAgcGFyYWxsZWxSb3V0ZUtleTogc3RyaW5nID0gJ2NoaWxkcmVuJ1xuKTogc3RyaW5nW10ge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50cygpJylcblxuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChMYXlvdXRSb3V0ZXJDb250ZXh0KVxuICAvLyBAdHMtZXhwZWN0LWVycm9yIFRoaXMgb25seSBoYXBwZW5zIGluIGBwYWdlc2AuIFR5cGUgaXMgb3ZlcndyaXR0ZW4gaW4gbmF2aWdhdGlvbi5kLnRzXG4gIGlmICghY29udGV4dCkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aChjb250ZXh0LnBhcmVudFRyZWUsIHBhcmFsbGVsUm91dGVLZXkpXG59XG5cbi8qKlxuICogQSBbQ2xpZW50IENvbXBvbmVudF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL2NsaWVudC1jb21wb25lbnRzKSBob29rXG4gKiB0aGF0IGxldHMgeW91IHJlYWQgdGhlIGFjdGl2ZSByb3V0ZSBzZWdtZW50ICoqb25lIGxldmVsIGJlbG93KiogdGhlIExheW91dCBpdCBpcyBjYWxsZWQgZnJvbS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqICd1c2UgY2xpZW50J1xuICogaW1wb3J0IHsgdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50IH0gZnJvbSAnbmV4dC9uYXZpZ2F0aW9uJ1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEV4YW1wbGVDbGllbnRDb21wb25lbnQoKSB7XG4gKiAgIGNvbnN0IHNlZ21lbnQgPSB1c2VTZWxlY3RlZExheW91dFNlZ21lbnQoKVxuICpcbiAqICAgcmV0dXJuIDxwPkFjdGl2ZSBzZWdtZW50OiB7c2VnbWVudH08L3A+XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlbGVjdGVkLWxheW91dC1zZWdtZW50KVxuICovXG4vLyBDbGllbnQgY29tcG9uZW50cyBBUElcbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWxlY3RlZExheW91dFNlZ21lbnQoXG4gIHBhcmFsbGVsUm91dGVLZXk6IHN0cmluZyA9ICdjaGlsZHJlbidcbik6IHN0cmluZyB8IG51bGwge1xuICB1c2VEeW5hbWljUm91dGVQYXJhbXM/LigndXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50KCknKVxuXG4gIGNvbnN0IHNlbGVjdGVkTGF5b3V0U2VnbWVudHMgPSB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzKHBhcmFsbGVsUm91dGVLZXkpXG5cbiAgaWYgKCFzZWxlY3RlZExheW91dFNlZ21lbnRzIHx8IHNlbGVjdGVkTGF5b3V0U2VnbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGVkTGF5b3V0U2VnbWVudCA9XG4gICAgcGFyYWxsZWxSb3V0ZUtleSA9PT0gJ2NoaWxkcmVuJ1xuICAgICAgPyBzZWxlY3RlZExheW91dFNlZ21lbnRzWzBdXG4gICAgICA6IHNlbGVjdGVkTGF5b3V0U2VnbWVudHNbc2VsZWN0ZWRMYXlvdXRTZWdtZW50cy5sZW5ndGggLSAxXVxuXG4gIC8vIGlmIHRoZSBkZWZhdWx0IHNsb3QgaXMgc2hvd2luZywgd2UgcmV0dXJuIG51bGwgc2luY2UgaXQncyBub3QgdGVjaG5pY2FsbHkgXCJzZWxlY3RlZFwiIChpdCdzIGEgZmFsbGJhY2spXG4gIC8vIGFuZCByZXR1cm5pbmcgYW4gaW50ZXJuYWwgdmFsdWUgbGlrZSBgX19ERUZBVUxUX19gIHdvdWxkIGJlIGNvbmZ1c2luZy5cbiAgcmV0dXJuIHNlbGVjdGVkTGF5b3V0U2VnbWVudCA9PT0gREVGQVVMVF9TRUdNRU5UX0tFWVxuICAgID8gbnVsbFxuICAgIDogc2VsZWN0ZWRMYXlvdXRTZWdtZW50XG59XG5cbi8vIFNoYXJlZCBjb21wb25lbnRzIEFQSXNcbmV4cG9ydCB7XG4gIG5vdEZvdW5kLFxuICBmb3JiaWRkZW4sXG4gIHVuYXV0aG9yaXplZCxcbiAgcmVkaXJlY3QsXG4gIHBlcm1hbmVudFJlZGlyZWN0LFxuICBSZWRpcmVjdFR5cGUsXG4gIFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zLFxuICB1bnN0YWJsZV9yZXRocm93LFxufSBmcm9tICcuL25hdmlnYXRpb24ucmVhY3Qtc2VydmVyJ1xuIl0sIm5hbWVzIjpbIlJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zIiwiUmVkaXJlY3RUeXBlIiwiU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dCIsImZvcmJpZGRlbiIsIm5vdEZvdW5kIiwicGVybWFuZW50UmVkaXJlY3QiLCJyZWRpcmVjdCIsInVuYXV0aG9yaXplZCIsInVuc3RhYmxlX3JldGhyb3ciLCJ1c2VQYXJhbXMiLCJ1c2VQYXRobmFtZSIsInVzZVJvdXRlciIsInVzZVNlYXJjaFBhcmFtcyIsInVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudCIsInVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMiLCJ1c2VTZXJ2ZXJJbnNlcnRlZEhUTUwiLCJ1c2VEeW5hbWljUm91dGVQYXJhbXMiLCJ3aW5kb3ciLCJyZXF1aXJlIiwidW5kZWZpbmVkIiwic2VhcmNoUGFyYW1zIiwidXNlQ29udGV4dCIsIlNlYXJjaFBhcmFtc0NvbnRleHQiLCJyZWFkb25seVNlYXJjaFBhcmFtcyIsInVzZU1lbW8iLCJiYWlsb3V0VG9DbGllbnRSZW5kZXJpbmciLCJQYXRobmFtZUNvbnRleHQiLCJyb3V0ZXIiLCJBcHBSb3V0ZXJDb250ZXh0IiwiRXJyb3IiLCJQYXRoUGFyYW1zQ29udGV4dCIsImdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgiLCJ0cmVlIiwicGFyYWxsZWxSb3V0ZUtleSIsImZpcnN0Iiwic2VnbWVudFBhdGgiLCJub2RlIiwicGFyYWxsZWxSb3V0ZXMiLCJjaGlsZHJlbiIsIk9iamVjdCIsInZhbHVlcyIsInNlZ21lbnQiLCJzZWdtZW50VmFsdWUiLCJnZXRTZWdtZW50VmFsdWUiLCJzdGFydHNXaXRoIiwiUEFHRV9TRUdNRU5UX0tFWSIsInB1c2giLCJjb250ZXh0IiwiTGF5b3V0Um91dGVyQ29udGV4dCIsInBhcmVudFRyZWUiLCJzZWxlY3RlZExheW91dFNlZ21lbnRzIiwibGVuZ3RoIiwic2VsZWN0ZWRMYXlvdXRTZWdtZW50IiwiREVGQVVMVF9TRUdNRU5UX0tFWSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/navigation.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/navigation.react-server.js":
/*!*****************************************************************************!*\
!*** ./node_modules/next/dist/client/components/navigation.react-server.js ***!
\*****************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/** @internal */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ReadonlyURLSearchParams: function() {\n return ReadonlyURLSearchParams;\n },\n RedirectType: function() {\n return _redirecterror.RedirectType;\n },\n forbidden: function() {\n return _forbidden.forbidden;\n },\n notFound: function() {\n return _notfound.notFound;\n },\n permanentRedirect: function() {\n return _redirect.permanentRedirect;\n },\n redirect: function() {\n return _redirect.redirect;\n },\n unauthorized: function() {\n return _unauthorized.unauthorized;\n },\n unstable_rethrow: function() {\n return _unstablerethrow.unstable_rethrow;\n }\n});\nconst _redirect = __webpack_require__(/*! ./redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nconst _notfound = __webpack_require__(/*! ./not-found */ \"(ssr)/./node_modules/next/dist/client/components/not-found.js\");\nconst _forbidden = __webpack_require__(/*! ./forbidden */ \"(ssr)/./node_modules/next/dist/client/components/forbidden.js\");\nconst _unauthorized = __webpack_require__(/*! ./unauthorized */ \"(ssr)/./node_modules/next/dist/client/components/unauthorized.js\");\nconst _unstablerethrow = __webpack_require__(/*! ./unstable-rethrow */ \"(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.js\");\nclass ReadonlyURLSearchParamsError extends Error {\n constructor(){\n super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams');\n }\n}\nclass ReadonlyURLSearchParams extends URLSearchParams {\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() {\n throw new ReadonlyURLSearchParamsError();\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() {\n throw new ReadonlyURLSearchParamsError();\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() {\n throw new ReadonlyURLSearchParamsError();\n }\n /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() {\n throw new ReadonlyURLSearchParamsError();\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=navigation.react-server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb24ucmVhY3Qtc2VydmVyLmpzIiwibWFwcGluZ3MiOiJBQUFBLGNBQWM7Ozs7Ozs7Ozs7OztJQWtDTEEsdUJBQXVCO2VBQXZCQTs7SUFMQUMsWUFBWTtlQUFaQSxlQUFBQSxZQUFZOztJQUVaQyxTQUFTO2VBQVRBLFdBQUFBLFNBQVM7O0lBRFRDLFFBQVE7ZUFBUkEsVUFBQUEsUUFBUTs7SUFGRUMsaUJBQWlCO2VBQWpCQSxVQUFBQSxpQkFBaUI7O0lBQTNCQyxRQUFRO2VBQVJBLFVBQUFBLFFBQVE7O0lBSVJDLFlBQVk7ZUFBWkEsY0FBQUEsWUFBWTs7SUFDWkMsZ0JBQWdCO2VBQWhCQSxpQkFBQUEsZ0JBQWdCOzs7c0NBTG1COzJDQUNmO3NDQUNKO3VDQUNDOzBDQUNHOzZDQUNJO0FBaENqQyxNQUFNQyxxQ0FBcUNDO0lBQ3pDQyxhQUFjO1FBQ1osS0FBSyxDQUNIO0lBRUo7QUFDRjtBQUVBLE1BQU1WLGdDQUFnQ1c7SUFDcEMsd0tBQXdLLEdBQ3hLQyxTQUFTO1FBQ1AsTUFBTSxJQUFJSjtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLSyxTQUFTO1FBQ1AsTUFBTSxJQUFJTDtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLTSxNQUFNO1FBQ0osTUFBTSxJQUFJTjtJQUNaO0lBQ0Esd0tBQXdLLEdBQ3hLTyxPQUFPO1FBQ0wsTUFBTSxJQUFJUDtJQUNaO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9uYXZpZ2F0aW9uLnJlYWN0LXNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGludGVybmFsICovXG5jbGFzcyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcbiAgICAgICdNZXRob2QgdW5hdmFpbGFibGUgb24gYFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zYC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlYXJjaC1wYXJhbXMjdXBkYXRpbmctc2VhcmNocGFyYW1zJ1xuICAgIClcbiAgfVxufVxuXG5jbGFzcyBSZWFkb25seVVSTFNlYXJjaFBhcmFtcyBleHRlbmRzIFVSTFNlYXJjaFBhcmFtcyB7XG4gIC8qKiBAZGVwcmVjYXRlZCBNZXRob2QgdW5hdmFpbGFibGUgb24gYFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zYC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlYXJjaC1wYXJhbXMjdXBkYXRpbmctc2VhcmNocGFyYW1zICovXG4gIGFwcGVuZCgpIHtcbiAgICB0aHJvdyBuZXcgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNFcnJvcigpXG4gIH1cbiAgLyoqIEBkZXByZWNhdGVkIE1ldGhvZCB1bmF2YWlsYWJsZSBvbiBgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNgLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy91c2Utc2VhcmNoLXBhcmFtcyN1cGRhdGluZy1zZWFyY2hwYXJhbXMgKi9cbiAgZGVsZXRlKCkge1xuICAgIHRocm93IG5ldyBSZWFkb25seVVSTFNlYXJjaFBhcmFtc0Vycm9yKClcbiAgfVxuICAvKiogQGRlcHJlY2F0ZWQgTWV0aG9kIHVuYXZhaWxhYmxlIG9uIGBSZWFkb25seVVSTFNlYXJjaFBhcmFtc2AuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1zZWFyY2gtcGFyYW1zI3VwZGF0aW5nLXNlYXJjaHBhcmFtcyAqL1xuICBzZXQoKSB7XG4gICAgdGhyb3cgbmV3IFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IoKVxuICB9XG4gIC8qKiBAZGVwcmVjYXRlZCBNZXRob2QgdW5hdmFpbGFibGUgb24gYFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zYC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXNlYXJjaC1wYXJhbXMjdXBkYXRpbmctc2VhcmNocGFyYW1zICovXG4gIHNvcnQoKSB7XG4gICAgdGhyb3cgbmV3IFJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IoKVxuICB9XG59XG5cbmV4cG9ydCB7IHJlZGlyZWN0LCBwZXJtYW5lbnRSZWRpcmVjdCB9IGZyb20gJy4vcmVkaXJlY3QnXG5leHBvcnQgeyBSZWRpcmVjdFR5cGUgfSBmcm9tICcuL3JlZGlyZWN0LWVycm9yJ1xuZXhwb3J0IHsgbm90Rm91bmQgfSBmcm9tICcuL25vdC1mb3VuZCdcbmV4cG9ydCB7IGZvcmJpZGRlbiB9IGZyb20gJy4vZm9yYmlkZGVuJ1xuZXhwb3J0IHsgdW5hdXRob3JpemVkIH0gZnJvbSAnLi91bmF1dGhvcml6ZWQnXG5leHBvcnQgeyB1bnN0YWJsZV9yZXRocm93IH0gZnJvbSAnLi91bnN0YWJsZS1yZXRocm93J1xuZXhwb3J0IHsgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMgfVxuIl0sIm5hbWVzIjpbIlJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zIiwiUmVkaXJlY3RUeXBlIiwiZm9yYmlkZGVuIiwibm90Rm91bmQiLCJwZXJtYW5lbnRSZWRpcmVjdCIsInJlZGlyZWN0IiwidW5hdXRob3JpemVkIiwidW5zdGFibGVfcmV0aHJvdyIsIlJlYWRvbmx5VVJMU2VhcmNoUGFyYW1zRXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwiVVJMU2VhcmNoUGFyYW1zIiwiYXBwZW5kIiwiZGVsZXRlIiwic2V0Iiwic29ydCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/navigation.react-server.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/not-found.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/client/components/not-found.js ***!
\***************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"notFound\", ({\n enumerable: true,\n get: function() {\n return notFound;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\n/**\n * This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)\n * within a route segment as well as inject a tag.\n *\n * `notFound()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n * - In a Server Component, this will insert a `<meta name=\"robots\" content=\"noindex\" />` meta tag and set the status code to 404.\n * - In a Route Handler or Server Action, it will serve a 404 to the caller.\n *\n * Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)\n */ const DIGEST = \"\" + _httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE + \";404\";\nfunction notFound() {\n // eslint-disable-next-line no-throw-literal\n const error = Object.defineProperty(new Error(DIGEST), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = DIGEST;\n throw error;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=not-found.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC5qcyIsIm1hcHBpbmdzIjoiOzs7OzRDQXNCZ0JBOzs7ZUFBQUE7OztnREFuQlQ7QUFFUDs7Ozs7Ozs7Ozs7OztDQWFDLEdBRUQsTUFBTUMsU0FBVSxLQUFFQyxvQkFBQUEsOEJBQThCLEdBQUM7QUFFMUMsU0FBU0Y7SUFDZCw0Q0FBNEM7SUFDNUMsTUFBTUcsUUFBUSxxQkFBaUIsQ0FBakIsSUFBSUMsTUFBTUgsU0FBVjtlQUFBO29CQUFBO3NCQUFBO0lBQWdCO0lBQzVCRSxNQUFrQ0UsTUFBTSxHQUFHSjtJQUU3QyxNQUFNRTtBQUNSIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSxcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gcmVuZGVyIHRoZSBbbm90LWZvdW5kLmpzIGZpbGVdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2ZpbGUtY29udmVudGlvbnMvbm90LWZvdW5kKVxuICogd2l0aGluIGEgcm91dGUgc2VnbWVudCBhcyB3ZWxsIGFzIGluamVjdCBhIHRhZy5cbiAqXG4gKiBgbm90Rm91bmQoKWAgY2FuIGJlIHVzZWQgaW5cbiAqIFtTZXJ2ZXIgQ29tcG9uZW50c10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzKSxcbiAqIFtSb3V0ZSBIYW5kbGVyc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9yb3V0ZS1oYW5kbGVycyksIGFuZFxuICogW1NlcnZlciBBY3Rpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL3NlcnZlci1hY3Rpb25zLWFuZC1tdXRhdGlvbnMpLlxuICpcbiAqIC0gSW4gYSBTZXJ2ZXIgQ29tcG9uZW50LCB0aGlzIHdpbGwgaW5zZXJ0IGEgYDxtZXRhIG5hbWU9XCJyb2JvdHNcIiBjb250ZW50PVwibm9pbmRleFwiIC8+YCBtZXRhIHRhZyBhbmQgc2V0IHRoZSBzdGF0dXMgY29kZSB0byA0MDQuXG4gKiAtIEluIGEgUm91dGUgSGFuZGxlciBvciBTZXJ2ZXIgQWN0aW9uLCBpdCB3aWxsIHNlcnZlIGEgNDA0IHRvIHRoZSBjYWxsZXIuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgbm90Rm91bmRgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvbm90LWZvdW5kKVxuICovXG5cbmNvbnN0IERJR0VTVCA9IGAke0hUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERX07NDA0YFxuXG5leHBvcnQgZnVuY3Rpb24gbm90Rm91bmQoKTogbmV2ZXIge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGhyb3ctbGl0ZXJhbFxuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihESUdFU1QpIGFzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4gIDsoZXJyb3IgYXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpLmRpZ2VzdCA9IERJR0VTVFxuXG4gIHRocm93IGVycm9yXG59XG4iXSwibmFtZXMiOlsibm90Rm91bmQiLCJESUdFU1QiLCJIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUiLCJlcnJvciIsIkVycm9yIiwiZGlnZXN0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/not-found.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/promise-queue.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/client/components/promise-queue.js ***!
\*******************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/*\n This is a simple promise queue that allows you to limit the number of concurrent promises\n that are running at any given time. It's used to limit the number of concurrent\n prefetch requests that are being made to the server but could be used for other\n things as well.\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"PromiseQueue\", ({\n enumerable: true,\n get: function() {\n return PromiseQueue;\n }\n}));\nconst _class_private_field_loose_base = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_base */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js\");\nconst _class_private_field_loose_key = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_key */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js\");\nvar _maxConcurrency = /*#__PURE__*/ _class_private_field_loose_key._(\"_maxConcurrency\"), _runningCount = /*#__PURE__*/ _class_private_field_loose_key._(\"_runningCount\"), _queue = /*#__PURE__*/ _class_private_field_loose_key._(\"_queue\"), _processNext = /*#__PURE__*/ _class_private_field_loose_key._(\"_processNext\");\nclass PromiseQueue {\n enqueue(promiseFn) {\n let taskResolve;\n let taskReject;\n const taskPromise = new Promise((resolve, reject)=>{\n taskResolve = resolve;\n taskReject = reject;\n });\n const task = async ()=>{\n try {\n _class_private_field_loose_base._(this, _runningCount)[_runningCount]++;\n const result = await promiseFn();\n taskResolve(result);\n } catch (error) {\n taskReject(error);\n } finally{\n _class_private_field_loose_base._(this, _runningCount)[_runningCount]--;\n _class_private_field_loose_base._(this, _processNext)[_processNext]();\n }\n };\n const enqueueResult = {\n promiseFn: taskPromise,\n task\n };\n // wonder if we should take a LIFO approach here\n _class_private_field_loose_base._(this, _queue)[_queue].push(enqueueResult);\n _class_private_field_loose_base._(this, _processNext)[_processNext]();\n return taskPromise;\n }\n bump(promiseFn) {\n const index = _class_private_field_loose_base._(this, _queue)[_queue].findIndex((item)=>item.promiseFn === promiseFn);\n if (index > -1) {\n const bumpedItem = _class_private_field_loose_base._(this, _queue)[_queue].splice(index, 1)[0];\n _class_private_field_loose_base._(this, _queue)[_queue].unshift(bumpedItem);\n _class_private_field_loose_base._(this, _processNext)[_processNext](true);\n }\n }\n constructor(maxConcurrency = 5){\n Object.defineProperty(this, _processNext, {\n value: processNext\n });\n Object.defineProperty(this, _maxConcurrency, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _runningCount, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _queue, {\n writable: true,\n value: void 0\n });\n _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] = maxConcurrency;\n _class_private_field_loose_base._(this, _runningCount)[_runningCount] = 0;\n _class_private_field_loose_base._(this, _queue)[_queue] = [];\n }\n}\nfunction processNext(forced) {\n if (forced === void 0) forced = false;\n if ((_class_private_field_loose_base._(this, _runningCount)[_runningCount] < _class_private_field_loose_base._(this, _maxConcurrency)[_maxConcurrency] || forced) && _class_private_field_loose_base._(this, _queue)[_queue].length > 0) {\n var _class_private_field_loose_base__queue_shift;\n (_class_private_field_loose_base__queue_shift = _class_private_field_loose_base._(this, _queue)[_queue].shift()) == null ? void 0 : _class_private_field_loose_base__queue_shift.task();\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=promise-queue.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3Byb21pc2UtcXVldWUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0FBS0E7Ozs7Z0RBQ2FBOzs7ZUFBQUE7Ozs7O0lBQ1gscUZBQ0EsaUZBQ0EsbUVBbURBO0FBdERLLE1BQU1BO0lBY1hDLFFBQVdDLFNBQTJCLEVBQWM7UUFDbEQsSUFBSUM7UUFDSixJQUFJQztRQUVKLE1BQU1DLGNBQWMsSUFBSUMsUUFBUSxDQUFDQyxTQUFTQztZQUN4Q0wsY0FBY0k7WUFDZEgsYUFBYUk7UUFDZjtRQUVBLE1BQU1DLE9BQU87WUFDWCxJQUFJO2dCQUNGLHNDQUFJLEVBQUM7Z0JBQ0wsTUFBTUMsU0FBUyxNQUFNUjtnQkFDckJDLFlBQVlPO1lBQ2QsRUFBRSxPQUFPQyxPQUFPO2dCQUNkUCxXQUFXTztZQUNiLFNBQVU7Z0JBQ1Isc0NBQUksRUFBQztnQkFDTCxzQ0FBSSxFQUFDO1lBQ1A7UUFDRjtRQUVBLE1BQU1DLGdCQUFnQjtZQUFFVixXQUFXRztZQUFhSTtRQUFLO1FBQ3JELGdEQUFnRDtRQUNoRCxzQ0FBSSxFQUFDLGdCQUFPSSxJQUFJLENBQUNEO1FBQ2pCLHNDQUFJLEVBQUM7UUFFTCxPQUFPUDtJQUNUO0lBRUFTLEtBQUtaLFNBQXVCLEVBQUU7UUFDNUIsTUFBTWEsUUFBUSxzQ0FBSSxFQUFDLGdCQUFPQyxTQUFTLENBQUMsQ0FBQ0MsT0FBU0EsS0FBS2YsU0FBUyxLQUFLQTtRQUVqRSxJQUFJYSxRQUFRLENBQUMsR0FBRztZQUNkLE1BQU1HLGFBQWEsc0NBQUksRUFBQyxnQkFBT0MsTUFBTSxDQUFDSixPQUFPLEVBQUUsQ0FBQyxFQUFFO1lBQ2xELHNDQUFJLEVBQUMsZ0JBQU9LLE9BQU8sQ0FBQ0Y7WUFDcEIsc0NBQUksRUFBQyw0QkFBYTtRQUNwQjtJQUNGO0lBNUNBRyxZQUFZQyxpQkFBaUIsQ0FBQyxDQUFFO1FBOENoQzttQkFBQTs7UUFyREE7O21CQUFBOztRQUNBOzttQkFBQTs7UUFDQTs7bUJBQUE7O1FBTUUsc0NBQUksRUFBQyxvQ0FBa0JBO1FBQ3ZCLHNDQUFJLEVBQUMsZ0NBQWdCO1FBQ3JCLHNDQUFJLEVBQUMsa0JBQVMsRUFBRTtJQUNsQjtBQWtERjtBQVJFLHFCQUFhQyxNQUFjO0lBQWRBLElBQUFBLFdBQUFBLEtBQUFBLEdBQUFBLFNBQVM7SUFDcEIsSUFDRyx1Q0FBSSxFQUFDLGdDQUFnQixzQ0FBSSxFQUFDLHFDQUFtQkEsTUFBQUEsQ0FBSyxJQUNuRCxzQ0FBSSxFQUFDLGdCQUFPQyxNQUFNLEdBQUcsR0FDckI7WUFDQTtTQUFBLHFGQUFJLEVBQUMsZ0JBQU9DLEtBQUssdUJBQWpCLDZDQUFxQmhCLElBQUk7SUFDM0I7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3Byb21pc2UtcXVldWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBUaGlzIGlzIGEgc2ltcGxlIHByb21pc2UgcXVldWUgdGhhdCBhbGxvd3MgeW91IHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgY29uY3VycmVudCBwcm9taXNlc1xuICAgIHRoYXQgYXJlIHJ1bm5pbmcgYXQgYW55IGdpdmVuIHRpbWUuIEl0J3MgdXNlZCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnRcbiAgICBwcmVmZXRjaCByZXF1ZXN0cyB0aGF0IGFyZSBiZWluZyBtYWRlIHRvIHRoZSBzZXJ2ZXIgYnV0IGNvdWxkIGJlIHVzZWQgZm9yIG90aGVyXG4gICAgdGhpbmdzIGFzIHdlbGwuXG4qL1xuZXhwb3J0IGNsYXNzIFByb21pc2VRdWV1ZSB7XG4gICNtYXhDb25jdXJyZW5jeTogbnVtYmVyXG4gICNydW5uaW5nQ291bnQ6IG51bWJlclxuICAjcXVldWU6IEFycmF5PHtcbiAgICBwcm9taXNlRm46IFByb21pc2U8YW55PlxuICAgIHRhc2s6ICgpID0+IHZvaWRcbiAgfT5cblxuICBjb25zdHJ1Y3RvcihtYXhDb25jdXJyZW5jeSA9IDUpIHtcbiAgICB0aGlzLiNtYXhDb25jdXJyZW5jeSA9IG1heENvbmN1cnJlbmN5XG4gICAgdGhpcy4jcnVubmluZ0NvdW50ID0gMFxuICAgIHRoaXMuI3F1ZXVlID0gW11cbiAgfVxuXG4gIGVucXVldWU8VD4ocHJvbWlzZUZuOiAoKSA9PiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgbGV0IHRhc2tSZXNvbHZlOiAodmFsdWU6IFQgfCBQcm9taXNlTGlrZTxUPikgPT4gdm9pZFxuICAgIGxldCB0YXNrUmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkXG5cbiAgICBjb25zdCB0YXNrUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRhc2tSZXNvbHZlID0gcmVzb2x2ZVxuICAgICAgdGFza1JlamVjdCA9IHJlamVjdFxuICAgIH0pIGFzIFByb21pc2U8VD5cblxuICAgIGNvbnN0IHRhc2sgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLiNydW5uaW5nQ291bnQrK1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9taXNlRm4oKVxuICAgICAgICB0YXNrUmVzb2x2ZShyZXN1bHQpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0YXNrUmVqZWN0KGVycm9yKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy4jcnVubmluZ0NvdW50LS1cbiAgICAgICAgdGhpcy4jcHJvY2Vzc05leHQoKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGVucXVldWVSZXN1bHQgPSB7IHByb21pc2VGbjogdGFza1Byb21pc2UsIHRhc2sgfVxuICAgIC8vIHdvbmRlciBpZiB3ZSBzaG91bGQgdGFrZSBhIExJRk8gYXBwcm9hY2ggaGVyZVxuICAgIHRoaXMuI3F1ZXVlLnB1c2goZW5xdWV1ZVJlc3VsdClcbiAgICB0aGlzLiNwcm9jZXNzTmV4dCgpXG5cbiAgICByZXR1cm4gdGFza1Byb21pc2VcbiAgfVxuXG4gIGJ1bXAocHJvbWlzZUZuOiBQcm9taXNlPGFueT4pIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuI3F1ZXVlLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5wcm9taXNlRm4gPT09IHByb21pc2VGbilcblxuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICBjb25zdCBidW1wZWRJdGVtID0gdGhpcy4jcXVldWUuc3BsaWNlKGluZGV4LCAxKVswXVxuICAgICAgdGhpcy4jcXVldWUudW5zaGlmdChidW1wZWRJdGVtKVxuICAgICAgdGhpcy4jcHJvY2Vzc05leHQodHJ1ZSlcbiAgICB9XG4gIH1cblxuICAjcHJvY2Vzc05leHQoZm9yY2VkID0gZmFsc2UpIHtcbiAgICBpZiAoXG4gICAgICAodGhpcy4jcnVubmluZ0NvdW50IDwgdGhpcy4jbWF4Q29uY3VycmVuY3kgfHwgZm9yY2VkKSAmJlxuICAgICAgdGhpcy4jcXVldWUubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgdGhpcy4jcXVldWUuc2hpZnQoKT8udGFzaygpXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiUHJvbWlzZVF1ZXVlIiwiZW5xdWV1ZSIsInByb21pc2VGbiIsInRhc2tSZXNvbHZlIiwidGFza1JlamVjdCIsInRhc2tQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ0YXNrIiwicmVzdWx0IiwiZXJyb3IiLCJlbnF1ZXVlUmVzdWx0IiwicHVzaCIsImJ1bXAiLCJpbmRleCIsImZpbmRJbmRleCIsIml0ZW0iLCJidW1wZWRJdGVtIiwic3BsaWNlIiwidW5zaGlmdCIsImNvbnN0cnVjdG9yIiwibWF4Q29uY3VycmVuY3kiLCJmb3JjZWQiLCJsZW5ndGgiLCJzaGlmdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/promise-queue.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js":
/*!***********************************************************************!*\
!*** ./node_modules/next/dist/client/components/redirect-boundary.js ***!
\***********************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RedirectBoundary: function() {\n return RedirectBoundary;\n },\n RedirectErrorBoundary: function() {\n return RedirectErrorBoundary;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _navigation = __webpack_require__(/*! ./navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\nconst _redirect = __webpack_require__(/*! ./redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nfunction HandleRedirect(param) {\n let { redirect, reset, redirectType } = param;\n const router = (0, _navigation.useRouter)();\n (0, _react.useEffect)(()=>{\n _react.default.startTransition(()=>{\n if (redirectType === _redirecterror.RedirectType.push) {\n router.push(redirect, {});\n } else {\n router.replace(redirect, {});\n }\n reset();\n });\n }, [\n redirect,\n redirectType,\n reset,\n router\n ]);\n return null;\n}\nclass RedirectErrorBoundary extends _react.default.Component {\n static getDerivedStateFromError(error) {\n if ((0, _redirecterror.isRedirectError)(error)) {\n const url = (0, _redirect.getURLFromRedirectError)(error);\n const redirectType = (0, _redirect.getRedirectTypeFromError)(error);\n return {\n redirect: url,\n redirectType\n };\n }\n // Re-throw if error is not for redirect\n throw error;\n }\n // Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.\n render() {\n const { redirect, redirectType } = this.state;\n if (redirect !== null && redirectType !== null) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(HandleRedirect, {\n redirect: redirect,\n redirectType: redirectType,\n reset: ()=>this.setState({\n redirect: null\n })\n });\n }\n return this.props.children;\n }\n constructor(props){\n super(props);\n this.state = {\n redirect: null,\n redirectType: null\n };\n }\n}\nfunction RedirectBoundary(param) {\n let { children } = param;\n const router = (0, _navigation.useRouter)();\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(RedirectErrorBoundary, {\n router: router,\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-boundary.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWJvdW5kYXJ5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXlFZ0JBLGdCQUFnQjtlQUFoQkE7O0lBcENIQyxxQkFBcUI7ZUFBckJBOzs7Ozs2RUFwQ29CO3dDQUVQO3NDQUN3QzsyQ0FDcEI7QUFPOUMsU0FBU0MsZUFBZSxLQVF2QjtJQVJ1QixNQUN0QkMsUUFBUSxFQUNSQyxLQUFLLEVBQ0xDLFlBQVksRUFLYixHQVJ1QjtJQVN0QixNQUFNQyxTQUFTQyxDQUFBQSxHQUFBQSxZQUFBQSxTQUFBQTtJQUVmQyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1JDLE9BQUFBLE9BQUssQ0FBQ0MsZUFBZSxDQUFDO1lBQ3BCLElBQUlMLGlCQUFpQk0sZUFBQUEsWUFBWSxDQUFDQyxJQUFJLEVBQUU7Z0JBQ3RDTixPQUFPTSxJQUFJLENBQUNULFVBQVUsQ0FBQztZQUN6QixPQUFPO2dCQUNMRyxPQUFPTyxPQUFPLENBQUNWLFVBQVUsQ0FBQztZQUM1QjtZQUNBQztRQUNGO0lBQ0YsR0FBRztRQUFDRDtRQUFVRTtRQUFjRDtRQUFPRTtLQUFPO0lBRTFDLE9BQU87QUFDVDtBQUVPLE1BQU1MLDhCQUE4QlEsT0FBQUEsT0FBSyxDQUFDSyxTQUFTO0lBU3hELE9BQU9DLHlCQUF5QkMsS0FBVSxFQUFFO1FBQzFDLElBQUlDLENBQUFBLEdBQUFBLGVBQUFBLGVBQUFBLEVBQWdCRCxRQUFRO1lBQzFCLE1BQU1FLE1BQU1DLENBQUFBLEdBQUFBLFVBQUFBLHVCQUFBQSxFQUF3Qkg7WUFDcEMsTUFBTVgsZUFBZWUsQ0FBQUEsR0FBQUEsVUFBQUEsd0JBQUFBLEVBQXlCSjtZQUM5QyxPQUFPO2dCQUFFYixVQUFVZTtnQkFBS2I7WUFBYTtRQUN2QztRQUNBLHdDQUF3QztRQUN4QyxNQUFNVztJQUNSO0lBRUEseUlBQXlJO0lBQ3pJSyxTQUEwQjtRQUN4QixNQUFNLEVBQUVsQixRQUFRLEVBQUVFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQ2lCLEtBQUs7UUFDN0MsSUFBSW5CLGFBQWEsUUFBUUUsaUJBQWlCLE1BQU07WUFDOUMscUJBQ0UscUJBQUNILGdCQUFBQTtnQkFDQ0MsVUFBVUE7Z0JBQ1ZFLGNBQWNBO2dCQUNkRCxPQUFPLElBQU0sSUFBSSxDQUFDbUIsUUFBUSxDQUFDO3dCQUFFcEIsVUFBVTtvQkFBSzs7UUFHbEQ7UUFFQSxPQUFPLElBQUksQ0FBQ3FCLEtBQUssQ0FBQ0MsUUFBUTtJQUM1QjtJQTdCQUMsWUFBWUYsS0FBNEIsQ0FBRTtRQUN4QyxLQUFLLENBQUNBO1FBQ04sSUFBSSxDQUFDRixLQUFLLEdBQUc7WUFBRW5CLFVBQVU7WUFBTUUsY0FBYztRQUFLO0lBQ3BEO0FBMkJGO0FBRU8sU0FBU0wsaUJBQWlCLEtBQTJDO0lBQTNDLE1BQUV5QixRQUFRLEVBQWlDLEdBQTNDO0lBQy9CLE1BQU1uQixTQUFTQyxDQUFBQSxHQUFBQSxZQUFBQSxTQUFBQTtJQUNmLHFCQUNFLHFCQUFDTix1QkFBQUE7UUFBc0JLLFFBQVFBO2tCQUFTbUI7O0FBRTVDIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVkaXJlY3QtYm91bmRhcnkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBBcHBSb3V0ZXJJbnN0YW5jZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgdXNlUm91dGVyIH0gZnJvbSAnLi9uYXZpZ2F0aW9uJ1xuaW1wb3J0IHsgZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yLCBnZXRVUkxGcm9tUmVkaXJlY3RFcnJvciB9IGZyb20gJy4vcmVkaXJlY3QnXG5pbXBvcnQgeyBSZWRpcmVjdFR5cGUsIGlzUmVkaXJlY3RFcnJvciB9IGZyb20gJy4vcmVkaXJlY3QtZXJyb3InXG5cbmludGVyZmFjZSBSZWRpcmVjdEJvdW5kYXJ5UHJvcHMge1xuICByb3V0ZXI6IEFwcFJvdXRlckluc3RhbmNlXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn1cblxuZnVuY3Rpb24gSGFuZGxlUmVkaXJlY3Qoe1xuICByZWRpcmVjdCxcbiAgcmVzZXQsXG4gIHJlZGlyZWN0VHlwZSxcbn06IHtcbiAgcmVkaXJlY3Q6IHN0cmluZ1xuICByZWRpcmVjdFR5cGU6IFJlZGlyZWN0VHlwZVxuICByZXNldDogKCkgPT4gdm9pZFxufSkge1xuICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgUmVhY3Quc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgIGlmIChyZWRpcmVjdFR5cGUgPT09IFJlZGlyZWN0VHlwZS5wdXNoKSB7XG4gICAgICAgIHJvdXRlci5wdXNoKHJlZGlyZWN0LCB7fSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvdXRlci5yZXBsYWNlKHJlZGlyZWN0LCB7fSlcbiAgICAgIH1cbiAgICAgIHJlc2V0KClcbiAgICB9KVxuICB9LCBbcmVkaXJlY3QsIHJlZGlyZWN0VHlwZSwgcmVzZXQsIHJvdXRlcl0pXG5cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0RXJyb3JCb3VuZGFyeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgUmVkaXJlY3RCb3VuZGFyeVByb3BzLFxuICB7IHJlZGlyZWN0OiBzdHJpbmcgfCBudWxsOyByZWRpcmVjdFR5cGU6IFJlZGlyZWN0VHlwZSB8IG51bGwgfVxuPiB7XG4gIGNvbnN0cnVjdG9yKHByb3BzOiBSZWRpcmVjdEJvdW5kYXJ5UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcylcbiAgICB0aGlzLnN0YXRlID0geyByZWRpcmVjdDogbnVsbCwgcmVkaXJlY3RUeXBlOiBudWxsIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZXJyb3I6IGFueSkge1xuICAgIGlmIChpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICBjb25zdCB1cmwgPSBnZXRVUkxGcm9tUmVkaXJlY3RFcnJvcihlcnJvcilcbiAgICAgIGNvbnN0IHJlZGlyZWN0VHlwZSA9IGdldFJlZGlyZWN0VHlwZUZyb21FcnJvcihlcnJvcilcbiAgICAgIHJldHVybiB7IHJlZGlyZWN0OiB1cmwsIHJlZGlyZWN0VHlwZSB9XG4gICAgfVxuICAgIC8vIFJlLXRocm93IGlmIGVycm9yIGlzIG5vdCBmb3IgcmVkaXJlY3RcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgLy8gRXhwbGljaXQgdHlwZSBpcyBuZWVkZWQgdG8gYXZvaWQgdGhlIGdlbmVyYXRlZCBgLmQudHNgIGhhdmluZyBhIHdpZGUgcmV0dXJuIHR5cGUgdGhhdCBjb3VsZCBiZSBzcGVjaWZpYyB0byB0aGUgYEB0eXBlcy9yZWFjdGAgdmVyc2lvbi5cbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgY29uc3QgeyByZWRpcmVjdCwgcmVkaXJlY3RUeXBlIH0gPSB0aGlzLnN0YXRlXG4gICAgaWYgKHJlZGlyZWN0ICE9PSBudWxsICYmIHJlZGlyZWN0VHlwZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEhhbmRsZVJlZGlyZWN0XG4gICAgICAgICAgcmVkaXJlY3Q9e3JlZGlyZWN0fVxuICAgICAgICAgIHJlZGlyZWN0VHlwZT17cmVkaXJlY3RUeXBlfVxuICAgICAgICAgIHJlc2V0PXsoKSA9PiB0aGlzLnNldFN0YXRlKHsgcmVkaXJlY3Q6IG51bGwgfSl9XG4gICAgICAgIC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gUmVkaXJlY3RCb3VuZGFyeSh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpXG4gIHJldHVybiAoXG4gICAgPFJlZGlyZWN0RXJyb3JCb3VuZGFyeSByb3V0ZXI9e3JvdXRlcn0+e2NoaWxkcmVufTwvUmVkaXJlY3RFcnJvckJvdW5kYXJ5PlxuICApXG59XG4iXSwibmFtZXMiOlsiUmVkaXJlY3RCb3VuZGFyeSIsIlJlZGlyZWN0RXJyb3JCb3VuZGFyeSIsIkhhbmRsZVJlZGlyZWN0IiwicmVkaXJlY3QiLCJyZXNldCIsInJlZGlyZWN0VHlwZSIsInJvdXRlciIsInVzZVJvdXRlciIsInVzZUVmZmVjdCIsIlJlYWN0Iiwic3RhcnRUcmFuc2l0aW9uIiwiUmVkaXJlY3RUeXBlIiwicHVzaCIsInJlcGxhY2UiLCJDb21wb25lbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsImlzUmVkaXJlY3RFcnJvciIsInVybCIsImdldFVSTEZyb21SZWRpcmVjdEVycm9yIiwiZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yIiwicmVuZGVyIiwic3RhdGUiLCJzZXRTdGF0ZSIsInByb3BzIiwiY2hpbGRyZW4iLCJjb25zdHJ1Y3RvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect-boundary.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/redirect-error.js":
/*!********************************************************************!*\
!*** ./node_modules/next/dist/client/components/redirect-error.js ***!
\********************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n REDIRECT_ERROR_CODE: function() {\n return REDIRECT_ERROR_CODE;\n },\n RedirectType: function() {\n return RedirectType;\n },\n isRedirectError: function() {\n return isRedirectError;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ./redirect-status-code */ \"(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst REDIRECT_ERROR_CODE = 'NEXT_REDIRECT';\nvar RedirectType = /*#__PURE__*/ function(RedirectType) {\n RedirectType[\"push\"] = \"push\";\n RedirectType[\"replace\"] = \"replace\";\n return RedirectType;\n}({});\nfunction isRedirectError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const digest = error.digest.split(';');\n const [errorCode, type] = digest;\n const destination = digest.slice(2, -2).join(';');\n const status = digest.at(-2);\n const statusCode = Number(status);\n return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxtQkFBbUI7ZUFBbkJBOztJQUVEQyxZQUFZO2VBQVpBOztJQWdCSUMsZUFBZTtlQUFmQTs7O2dEQXBCbUI7QUFFNUIsTUFBTUYsc0JBQXNCO0FBRTVCLElBQUtDLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7V0FBQUE7O0FBZ0JMLFNBQVNDLGdCQUFnQkMsS0FBYztJQUM1QyxJQUNFLE9BQU9BLFVBQVUsWUFDakJBLFVBQVUsUUFDVixDQUFFLGFBQVlBLEtBQUFBLENBQUksSUFDbEIsT0FBT0EsTUFBTUMsTUFBTSxLQUFLLFVBQ3hCO1FBQ0EsT0FBTztJQUNUO0lBRUEsTUFBTUEsU0FBU0QsTUFBTUMsTUFBTSxDQUFDQyxLQUFLLENBQUM7SUFDbEMsTUFBTSxDQUFDQyxXQUFXQyxLQUFLLEdBQUdIO0lBQzFCLE1BQU1JLGNBQWNKLE9BQU9LLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBR0MsSUFBSSxDQUFDO0lBQzdDLE1BQU1DLFNBQVNQLE9BQU9RLEVBQUUsQ0FBQyxDQUFDO0lBRTFCLE1BQU1DLGFBQWFDLE9BQU9IO0lBRTFCLE9BQ0VMLGNBQWNOLHVCQUNiTyxDQUFBQSxTQUFTLGFBQWFBLFNBQVMsT0FBSyxJQUNyQyxPQUFPQyxnQkFBZ0IsWUFDdkIsQ0FBQ08sTUFBTUYsZUFDUEEsY0FBY0csb0JBQUFBLGtCQUFrQjtBQUVwQyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZGlyZWN0U3RhdHVzQ29kZSB9IGZyb20gJy4vcmVkaXJlY3Qtc3RhdHVzLWNvZGUnXG5cbmV4cG9ydCBjb25zdCBSRURJUkVDVF9FUlJPUl9DT0RFID0gJ05FWFRfUkVESVJFQ1QnXG5cbmV4cG9ydCBlbnVtIFJlZGlyZWN0VHlwZSB7XG4gIHB1c2ggPSAncHVzaCcsXG4gIHJlcGxhY2UgPSAncmVwbGFjZScsXG59XG5cbmV4cG9ydCB0eXBlIFJlZGlyZWN0RXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBgJHt0eXBlb2YgUkVESVJFQ1RfRVJST1JfQ09ERX07JHtSZWRpcmVjdFR5cGV9OyR7c3RyaW5nfTske1JlZGlyZWN0U3RhdHVzQ29kZX07YFxufVxuXG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlXG4gKiBgcmVkaXJlY3QodXJsKWAgaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgcmVkaXJlY3QgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3RFcnJvcihlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIFJlZGlyZWN0RXJyb3Ige1xuICBpZiAoXG4gICAgdHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fFxuICAgIGVycm9yID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnJvcikgfHxcbiAgICB0eXBlb2YgZXJyb3IuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGRpZ2VzdCA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpXG4gIGNvbnN0IFtlcnJvckNvZGUsIHR5cGVdID0gZGlnZXN0XG4gIGNvbnN0IGRlc3RpbmF0aW9uID0gZGlnZXN0LnNsaWNlKDIsIC0yKS5qb2luKCc7JylcbiAgY29uc3Qgc3RhdHVzID0gZGlnZXN0LmF0KC0yKVxuXG4gIGNvbnN0IHN0YXR1c0NvZGUgPSBOdW1iZXIoc3RhdHVzKVxuXG4gIHJldHVybiAoXG4gICAgZXJyb3JDb2RlID09PSBSRURJUkVDVF9FUlJPUl9DT0RFICYmXG4gICAgKHR5cGUgPT09ICdyZXBsYWNlJyB8fCB0eXBlID09PSAncHVzaCcpICYmXG4gICAgdHlwZW9mIGRlc3RpbmF0aW9uID09PSAnc3RyaW5nJyAmJlxuICAgICFpc05hTihzdGF0dXNDb2RlKSAmJlxuICAgIHN0YXR1c0NvZGUgaW4gUmVkaXJlY3RTdGF0dXNDb2RlXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSRURJUkVDVF9FUlJPUl9DT0RFIiwiUmVkaXJlY3RUeXBlIiwiaXNSZWRpcmVjdEVycm9yIiwiZXJyb3IiLCJkaWdlc3QiLCJzcGxpdCIsImVycm9yQ29kZSIsInR5cGUiLCJkZXN0aW5hdGlvbiIsInNsaWNlIiwiam9pbiIsInN0YXR1cyIsImF0Iiwic3RhdHVzQ29kZSIsIk51bWJlciIsImlzTmFOIiwiUmVkaXJlY3RTdGF0dXNDb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect-error.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/client/components/redirect-status-code.js ***!
\**************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBQVlBOzs7ZUFBQUE7OztBQUFMLElBQUtBLHFCQUFBQSxXQUFBQSxHQUFBQSxTQUFBQSxrQkFBQUE7Ozs7V0FBQUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZWRpcmVjdFN0YXR1c0NvZGUge1xuICBTZWVPdGhlciA9IDMwMyxcbiAgVGVtcG9yYXJ5UmVkaXJlY3QgPSAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0ID0gMzA4LFxufVxuIl0sIm5hbWVzIjpbIlJlZGlyZWN0U3RhdHVzQ29kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/redirect.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/client/components/redirect.js ***!
\**************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getRedirectError: function() {\n return getRedirectError;\n },\n getRedirectStatusCodeFromError: function() {\n return getRedirectStatusCodeFromError;\n },\n getRedirectTypeFromError: function() {\n return getRedirectTypeFromError;\n },\n getURLFromRedirectError: function() {\n return getURLFromRedirectError;\n },\n permanentRedirect: function() {\n return permanentRedirect;\n },\n redirect: function() {\n return redirect;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ./redirect-status-code */ \"(ssr)/./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nconst actionAsyncStorage = true ? (__webpack_require__(/*! ../../server/app-render/action-async-storage.external */ \"../app-render/action-async-storage.external\").actionAsyncStorage) : 0;\nfunction getRedirectError(url, type, statusCode) {\n if (statusCode === void 0) statusCode = _redirectstatuscode.RedirectStatusCode.TemporaryRedirect;\n const error = Object.defineProperty(new Error(_redirecterror.REDIRECT_ERROR_CODE), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = _redirecterror.REDIRECT_ERROR_CODE + \";\" + type + \";\" + url + \";\" + statusCode + \";\";\n return error;\n}\nfunction redirect(/** The URL to redirect to */ url, type) {\n var _actionAsyncStorage_getStore;\n type != null ? type : type = (actionAsyncStorage == null ? void 0 : (_actionAsyncStorage_getStore = actionAsyncStorage.getStore()) == null ? void 0 : _actionAsyncStorage_getStore.isAction) ? _redirecterror.RedirectType.push : _redirecterror.RedirectType.replace;\n throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.TemporaryRedirect);\n}\nfunction permanentRedirect(/** The URL to redirect to */ url, type) {\n if (type === void 0) type = _redirecterror.RedirectType.replace;\n throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.PermanentRedirect);\n}\nfunction getURLFromRedirectError(error) {\n if (!(0, _redirecterror.isRedirectError)(error)) return null;\n // Slices off the beginning of the digest that contains the code and the\n // separating ';'.\n return error.digest.split(';').slice(2, -2).join(';');\n}\nfunction getRedirectTypeFromError(error) {\n if (!(0, _redirecterror.isRedirectError)(error)) {\n throw Object.defineProperty(new Error('Not a redirect error'), \"__NEXT_ERROR_CODE\", {\n value: \"E260\",\n enumerable: false,\n configurable: true\n });\n }\n return error.digest.split(';', 2)[1];\n}\nfunction getRedirectStatusCodeFromError(error) {\n if (!(0, _redirecterror.isRedirectError)(error)) {\n throw Object.defineProperty(new Error('Not a redirect error'), \"__NEXT_ERROR_CODE\", {\n value: \"E260\",\n enumerable: false,\n configurable: true\n });\n }\n return Number(error.digest.split(';').at(-2));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWVnQkEsZ0JBQWdCO2VBQWhCQTs7SUE2RUFDLDhCQUE4QjtlQUE5QkE7O0lBUkFDLHdCQUF3QjtlQUF4QkE7O0lBUkFDLHVCQUF1QjtlQUF2QkE7O0lBaEJBQyxpQkFBaUI7ZUFBakJBOztJQXZCQUMsUUFBUTtlQUFSQTs7O2dEQXJDbUI7MkNBTTVCO0FBRVAsTUFBTUMscUJBQ0osS0FBNkIsR0FFdkJFLG9KQUNrQixHQUNwQkMsQ0FBU0E7QUFFUixTQUFTVCxpQkFDZFUsR0FBVyxFQUNYQyxJQUFrQixFQUNsQkMsVUFBcUU7SUFBckVBLElBQUFBLGVBQUFBLEtBQUFBLEdBQUFBLGFBQWlDQyxvQkFBQUEsa0JBQWtCLENBQUNDLGlCQUFpQjtJQUVyRSxNQUFNQyxRQUFRLHFCQUE4QixDQUE5QixJQUFJQyxNQUFNQyxlQUFBQSxtQkFBbUIsR0FBN0I7ZUFBQTtvQkFBQTtzQkFBQTtJQUE2QjtJQUMzQ0YsTUFBTUcsTUFBTSxHQUFNRCxlQUFBQSxtQkFBbUIsR0FBQyxNQUFHTixPQUFLLE1BQUdELE1BQUksTUFBR0UsYUFBVztJQUNuRSxPQUFPRztBQUNUO0FBY08sU0FBU1YsU0FDZCwyQkFBMkIsR0FDM0JLLEdBQVcsRUFDWEMsSUFBbUI7UUFFVkw7SUFBVEssUUFBQUEsT0FBQUEsT0FBQUEsT0FBU0wsQ0FBQUEsc0JBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLCtCQUFBQSxtQkFBb0JhLFFBQVEsdUJBQTVCYiw2QkFBZ0NjLFFBQUFBLElBQ3JDQyxlQUFBQSxZQUFZLENBQUNDLElBQUksR0FDakJELGVBQUFBLFlBQVksQ0FBQ0UsT0FBTztJQUV4QixNQUFNdkIsaUJBQWlCVSxLQUFLQyxNQUFNRSxvQkFBQUEsa0JBQWtCLENBQUNDLGlCQUFpQjtBQUN4RTtBQWFPLFNBQVNWLGtCQUNkLDJCQUEyQixHQUMzQk0sR0FBVyxFQUNYQyxJQUF5QztJQUF6Q0EsSUFBQUEsU0FBQUEsS0FBQUEsR0FBQUEsT0FBcUJVLGVBQUFBLFlBQVksQ0FBQ0UsT0FBTztJQUV6QyxNQUFNdkIsaUJBQWlCVSxLQUFLQyxNQUFNRSxvQkFBQUEsa0JBQWtCLENBQUNXLGlCQUFpQjtBQUN4RTtBQVVPLFNBQVNyQix3QkFBd0JZLEtBQWM7SUFDcEQsSUFBSSxDQUFDVSxDQUFBQSxHQUFBQSxlQUFBQSxlQUFBQSxFQUFnQlYsUUFBUSxPQUFPO0lBRXBDLHdFQUF3RTtJQUN4RSxrQkFBa0I7SUFDbEIsT0FBT0EsTUFBTUcsTUFBTSxDQUFDUSxLQUFLLENBQUMsS0FBS0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHQyxJQUFJLENBQUM7QUFDbkQ7QUFFTyxTQUFTMUIseUJBQXlCYSxLQUFvQjtJQUMzRCxJQUFJLENBQUNVLENBQUFBLEdBQUFBLGVBQUFBLGVBQUFBLEVBQWdCVixRQUFRO1FBQzNCLE1BQU0scUJBQWlDLENBQWpDLElBQUlDLE1BQU0seUJBQVY7bUJBQUE7d0JBQUE7MEJBQUE7UUFBZ0M7SUFDeEM7SUFFQSxPQUFPRCxNQUFNRyxNQUFNLENBQUNRLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFO0FBQ3RDO0FBRU8sU0FBU3pCLCtCQUErQmMsS0FBb0I7SUFDakUsSUFBSSxDQUFDVSxDQUFBQSxHQUFBQSxlQUFBQSxlQUFBQSxFQUFnQlYsUUFBUTtRQUMzQixNQUFNLHFCQUFpQyxDQUFqQyxJQUFJQyxNQUFNLHlCQUFWO21CQUFBO3dCQUFBOzBCQUFBO1FBQWdDO0lBQ3hDO0lBRUEsT0FBT2EsT0FBT2QsTUFBTUcsTUFBTSxDQUFDUSxLQUFLLENBQUMsS0FBS0ksRUFBRSxDQUFDLENBQUM7QUFDNUMiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWRpcmVjdFN0YXR1c0NvZGUgfSBmcm9tICcuL3JlZGlyZWN0LXN0YXR1cy1jb2RlJ1xuaW1wb3J0IHtcbiAgUmVkaXJlY3RUeXBlLFxuICB0eXBlIFJlZGlyZWN0RXJyb3IsXG4gIGlzUmVkaXJlY3RFcnJvcixcbiAgUkVESVJFQ1RfRVJST1JfQ09ERSxcbn0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuY29uc3QgYWN0aW9uQXN5bmNTdG9yYWdlID1cbiAgdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCdcbiAgICA/IChcbiAgICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvYWN0aW9uLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9hY3Rpb24tYXN5bmMtc3RvcmFnZS5leHRlcm5hbCcpXG4gICAgICApLmFjdGlvbkFzeW5jU3RvcmFnZVxuICAgIDogdW5kZWZpbmVkXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWRpcmVjdEVycm9yKFxuICB1cmw6IHN0cmluZyxcbiAgdHlwZTogUmVkaXJlY3RUeXBlLFxuICBzdGF0dXNDb2RlOiBSZWRpcmVjdFN0YXR1c0NvZGUgPSBSZWRpcmVjdFN0YXR1c0NvZGUuVGVtcG9yYXJ5UmVkaXJlY3Rcbik6IFJlZGlyZWN0RXJyb3Ige1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihSRURJUkVDVF9FUlJPUl9DT0RFKSBhcyBSZWRpcmVjdEVycm9yXG4gIGVycm9yLmRpZ2VzdCA9IGAke1JFRElSRUNUX0VSUk9SX0NPREV9OyR7dHlwZX07JHt1cmx9OyR7c3RhdHVzQ29kZX07YFxuICByZXR1cm4gZXJyb3Jcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBVUkwuIEl0IGNhbiBiZSB1c2VkIGluXG4gKiBbU2VydmVyIENvbXBvbmVudHNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItY29tcG9uZW50cyksXG4gKiBbUm91dGUgSGFuZGxlcnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JvdXRpbmcvcm91dGUtaGFuZGxlcnMpLCBhbmRcbiAqIFtTZXJ2ZXIgQWN0aW9uc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9zZXJ2ZXItYWN0aW9ucy1hbmQtbXV0YXRpb25zKS5cbiAqXG4gKiAtIEluIGEgU2VydmVyIENvbXBvbmVudCwgdGhpcyB3aWxsIGluc2VydCBhIG1ldGEgdGFnIHRvIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoZSB0YXJnZXQgcGFnZS5cbiAqIC0gSW4gYSBSb3V0ZSBIYW5kbGVyIG9yIFNlcnZlciBBY3Rpb24sIGl0IHdpbGwgc2VydmUgYSAzMDcvMzAzIHRvIHRoZSBjYWxsZXIuXG4gKiAtIEluIGEgU2VydmVyIEFjdGlvbiwgdHlwZSBkZWZhdWx0cyB0byAncHVzaCcgYW5kICdyZXBsYWNlJyBlbHNld2hlcmUuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgcmVkaXJlY3RgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvcmVkaXJlY3QpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWRpcmVjdChcbiAgLyoqIFRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gKi9cbiAgdXJsOiBzdHJpbmcsXG4gIHR5cGU/OiBSZWRpcmVjdFR5cGVcbik6IG5ldmVyIHtcbiAgdHlwZSA/Pz0gYWN0aW9uQXN5bmNTdG9yYWdlPy5nZXRTdG9yZSgpPy5pc0FjdGlvblxuICAgID8gUmVkaXJlY3RUeXBlLnB1c2hcbiAgICA6IFJlZGlyZWN0VHlwZS5yZXBsYWNlXG5cbiAgdGhyb3cgZ2V0UmVkaXJlY3RFcnJvcih1cmwsIHR5cGUsIFJlZGlyZWN0U3RhdHVzQ29kZS5UZW1wb3JhcnlSZWRpcmVjdClcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBVUkwuIEl0IGNhbiBiZSB1c2VkIGluXG4gKiBbU2VydmVyIENvbXBvbmVudHNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zZXJ2ZXItY29tcG9uZW50cyksXG4gKiBbUm91dGUgSGFuZGxlcnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JvdXRpbmcvcm91dGUtaGFuZGxlcnMpLCBhbmRcbiAqIFtTZXJ2ZXIgQWN0aW9uc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9zZXJ2ZXItYWN0aW9ucy1hbmQtbXV0YXRpb25zKS5cbiAqXG4gKiAtIEluIGEgU2VydmVyIENvbXBvbmVudCwgdGhpcyB3aWxsIGluc2VydCBhIG1ldGEgdGFnIHRvIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoZSB0YXJnZXQgcGFnZS5cbiAqIC0gSW4gYSBSb3V0ZSBIYW5kbGVyIG9yIFNlcnZlciBBY3Rpb24sIGl0IHdpbGwgc2VydmUgYSAzMDgvMzAzIHRvIHRoZSBjYWxsZXIuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgcmVkaXJlY3RgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvcmVkaXJlY3QpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwZXJtYW5lbnRSZWRpcmVjdChcbiAgLyoqIFRoZSBVUkwgdG8gcmVkaXJlY3QgdG8gKi9cbiAgdXJsOiBzdHJpbmcsXG4gIHR5cGU6IFJlZGlyZWN0VHlwZSA9IFJlZGlyZWN0VHlwZS5yZXBsYWNlXG4pOiBuZXZlciB7XG4gIHRocm93IGdldFJlZGlyZWN0RXJyb3IodXJsLCB0eXBlLCBSZWRpcmVjdFN0YXR1c0NvZGUuUGVybWFuZW50UmVkaXJlY3QpXG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZW5jb2RlZCBVUkwgZnJvbSB0aGUgZXJyb3IgaWYgaXQncyBhIFJlZGlyZWN0RXJyb3IsIG51bGxcbiAqIG90aGVyd2lzZS4gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgdmFsaWRhdGUgdGhlIFVSTCByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgdGhlIGVycm9yIHRoYXQgbWF5IGJlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm4gdGhlIHVybCBpZiB0aGUgZXJyb3Igd2FzIGEgcmVkaXJlY3QgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVSTEZyb21SZWRpcmVjdEVycm9yKGVycm9yOiBSZWRpcmVjdEVycm9yKTogc3RyaW5nXG5leHBvcnQgZnVuY3Rpb24gZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IoZXJyb3I6IHVua25vd24pOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKCFpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSByZXR1cm4gbnVsbFxuXG4gIC8vIFNsaWNlcyBvZmYgdGhlIGJlZ2lubmluZyBvZiB0aGUgZGlnZXN0IHRoYXQgY29udGFpbnMgdGhlIGNvZGUgYW5kIHRoZVxuICAvLyBzZXBhcmF0aW5nICc7Jy5cbiAgcmV0dXJuIGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpLnNsaWNlKDIsIC0yKS5qb2luKCc7Jylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZGlyZWN0VHlwZUZyb21FcnJvcihlcnJvcjogUmVkaXJlY3RFcnJvcik6IFJlZGlyZWN0VHlwZSB7XG4gIGlmICghaXNSZWRpcmVjdEVycm9yKGVycm9yKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGEgcmVkaXJlY3QgZXJyb3InKVxuICB9XG5cbiAgcmV0dXJuIGVycm9yLmRpZ2VzdC5zcGxpdCgnOycsIDIpWzFdIGFzIFJlZGlyZWN0VHlwZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVkaXJlY3RTdGF0dXNDb2RlRnJvbUVycm9yKGVycm9yOiBSZWRpcmVjdEVycm9yKTogbnVtYmVyIHtcbiAgaWYgKCFpc1JlZGlyZWN0RXJyb3IoZXJyb3IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSByZWRpcmVjdCBlcnJvcicpXG4gIH1cblxuICByZXR1cm4gTnVtYmVyKGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpLmF0KC0yKSlcbn1cbiJdLCJuYW1lcyI6WyJnZXRSZWRpcmVjdEVycm9yIiwiZ2V0UmVkaXJlY3RTdGF0dXNDb2RlRnJvbUVycm9yIiwiZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yIiwiZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IiLCJwZXJtYW5lbnRSZWRpcmVjdCIsInJlZGlyZWN0IiwiYWN0aW9uQXN5bmNTdG9yYWdlIiwid2luZG93IiwicmVxdWlyZSIsInVuZGVmaW5lZCIsInVybCIsInR5cGUiLCJzdGF0dXNDb2RlIiwiUmVkaXJlY3RTdGF0dXNDb2RlIiwiVGVtcG9yYXJ5UmVkaXJlY3QiLCJlcnJvciIsIkVycm9yIiwiUkVESVJFQ1RfRVJST1JfQ09ERSIsImRpZ2VzdCIsImdldFN0b3JlIiwiaXNBY3Rpb24iLCJSZWRpcmVjdFR5cGUiLCJwdXNoIiwicmVwbGFjZSIsIlBlcm1hbmVudFJlZGlyZWN0IiwiaXNSZWRpcmVjdEVycm9yIiwic3BsaXQiLCJzbGljZSIsImpvaW4iLCJOdW1iZXIiLCJhdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/redirect.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js":
/*!**********************************************************************************!*\
!*** ./node_modules/next/dist/client/components/render-from-template-context.js ***!
\**********************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RenderFromTemplateContext;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nfunction RenderFromTemplateContext() {\n const children = (0, _react.useContext)(_approutercontextsharedruntime.TemplateContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=render-from-template-context.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FLQTs7O2VBQXdCQTs7Ozs7NkVBSG9COzJEQUNaO0FBRWpCLFNBQVNBO0lBQ3RCLE1BQU1DLFdBQVdDLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdDLCtCQUFBQSxlQUFlO0lBQzNDLHFCQUFPO2tCQUFHRjs7QUFDWiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRlbXBsYXRlQ29udGV4dCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSZW5kZXJGcm9tVGVtcGxhdGVDb250ZXh0KCk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgY2hpbGRyZW4gPSB1c2VDb250ZXh0KFRlbXBsYXRlQ29udGV4dClcbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPlxufVxuIl0sIm5hbWVzIjpbIlJlbmRlckZyb21UZW1wbGF0ZUNvbnRleHQiLCJjaGlsZHJlbiIsInVzZUNvbnRleHQiLCJUZW1wbGF0ZUNvbnRleHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/aliased-prefetch-navigations.js":
/*!*************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/aliased-prefetch-navigations.js ***!
\*************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n addSearchParamsToPageSegments: function() {\n return addSearchParamsToPageSegments;\n },\n handleAliasedPrefetchEntry: function() {\n return handleAliasedPrefetchEntry;\n }\n});\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _approuter = __webpack_require__(/*! ../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ./apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _createhreffromurl = __webpack_require__(/*! ./create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _fillcachewithnewsubtreedata = __webpack_require__(/*! ./fill-cache-with-new-subtree-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js\");\nconst _handlemutable = __webpack_require__(/*! ./handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nfunction handleAliasedPrefetchEntry(navigatedAt, state, flightData, url, mutable) {\n let currentTree = state.tree;\n let currentCache = state.cache;\n const href = (0, _createhreffromurl.createHrefFromUrl)(url);\n let applied;\n if (typeof flightData === 'string') {\n return false;\n }\n for (const normalizedFlightData of flightData){\n // If the segment doesn't have a loading component, we don't need to do anything.\n if (!hasLoadingComponentInSeedData(normalizedFlightData.seedData)) {\n continue;\n }\n let treePatch = normalizedFlightData.tree;\n // Segments are keyed by searchParams (e.g. __PAGE__?{\"foo\":\"bar\"}). We might return a less specific, param-less entry,\n // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree.\n // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set\n treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams));\n const { seedData, isRootRender, pathToSegment } = normalizedFlightData;\n // TODO-APP: remove ''\n const flightSegmentPathWithLeadingEmpty = [\n '',\n ...pathToSegment\n ];\n // Segments are keyed by searchParams (e.g. __PAGE__?{\"foo\":\"bar\"}). We might return a less specific, param-less entry,\n // so we ensure that the final tree contains the correct searchParams (reflected in the URL) are provided in the updated FlightRouterState tree.\n // We only do this on the first read, as otherwise we'd be overwriting the searchParams that may have already been set\n treePatch = addSearchParamsToPageSegments(treePatch, Object.fromEntries(url.searchParams));\n let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href);\n const newCache = (0, _approuter.createEmptyCacheNode)();\n // The prefetch cache entry was aliased -- this signals that we only fill in the cache with the\n // loading state and not the actual parallel route seed data.\n if (isRootRender && seedData) {\n // Fill in the cache with the new loading / rsc data\n const rsc = seedData[1];\n const loading = seedData[3];\n newCache.loading = loading;\n newCache.rsc = rsc;\n // Construct a new tree and apply the aliased loading state for each parallel route\n fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, currentCache, treePatch, seedData);\n } else {\n // Copy rsc for the root node of the cache.\n newCache.rsc = currentCache.rsc;\n newCache.prefetchRsc = currentCache.prefetchRsc;\n newCache.loading = currentCache.loading;\n newCache.parallelRoutes = new Map(currentCache.parallelRoutes);\n // copy the loading state only into the leaf node (the part that changed)\n (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeDataButOnlyLoading)(navigatedAt, newCache, currentCache, normalizedFlightData);\n }\n // If we don't have an updated tree, there's no reason to update the cache, as the tree\n // dictates what cache nodes to render.\n if (newTree) {\n currentTree = newTree;\n currentCache = newCache;\n applied = true;\n }\n }\n if (!applied) {\n return false;\n }\n mutable.patchedTree = currentTree;\n mutable.cache = currentCache;\n mutable.canonicalUrl = href;\n mutable.hashFragment = url.hash;\n return (0, _handlemutable.handleMutable)(state, mutable);\n}\nfunction hasLoadingComponentInSeedData(seedData) {\n if (!seedData) return false;\n const parallelRoutes = seedData[2];\n const loading = seedData[3];\n if (loading) {\n return true;\n }\n for(const key in parallelRoutes){\n if (hasLoadingComponentInSeedData(parallelRoutes[key])) {\n return true;\n }\n }\n return false;\n}\nfunction fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCache, existingCache, routerState, cacheNodeSeedData) {\n const isLastSegment = Object.keys(routerState[1]).length === 0;\n if (isLastSegment) {\n return;\n }\n for(const key in routerState[1]){\n const parallelRouteState = routerState[1][key];\n const segmentForParallelRoute = parallelRouteState[0];\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute);\n const parallelSeedData = cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined ? cacheNodeSeedData[2][key] : null;\n let newCacheNode;\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const rsc = parallelSeedData[1];\n const loading = parallelSeedData[3];\n newCacheNode = {\n lazyData: null,\n // copy the layout but null the page segment as that's not meant to be used\n rsc: segmentForParallelRoute.includes(_segment.PAGE_SEGMENT_KEY) ? null : rsc,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading,\n navigatedAt\n };\n } else {\n // No data available for this node. This will trigger a lazy fetch\n // during render.\n newCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1\n };\n }\n const existingParallelRoutes = newCache.parallelRoutes.get(key);\n if (existingParallelRoutes) {\n existingParallelRoutes.set(cacheKey, newCacheNode);\n } else {\n newCache.parallelRoutes.set(key, new Map([\n [\n cacheKey,\n newCacheNode\n ]\n ]));\n }\n fillNewTreeWithOnlyLoadingSegments(navigatedAt, newCacheNode, existingCache, parallelRouteState, parallelSeedData);\n }\n}\nfunction addSearchParamsToPageSegments(flightRouterState, searchParams) {\n const [segment, parallelRoutes, ...rest] = flightRouterState;\n // If it's a page segment, modify the segment by adding search params\n if (segment.includes(_segment.PAGE_SEGMENT_KEY)) {\n const newSegment = (0, _segment.addSearchParamsIfPageSegment)(segment, searchParams);\n return [\n newSegment,\n parallelRoutes,\n ...rest\n ];\n }\n // Otherwise, recurse through the parallel routes and return a new tree\n const updatedParallelRoutes = {};\n for (const [key, parallelRoute] of Object.entries(parallelRoutes)){\n updatedParallelRoutes[key] = addSearchParamsToPageSegments(parallelRoute, searchParams);\n }\n return [\n segment,\n updatedParallelRoutes,\n ...rest\n ];\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=aliased-prefetch-navigations.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2FsaWFzZWQtcHJlZmV0Y2gtbmF2aWdhdGlvbnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBbU9nQkEsNkJBQTZCO2VBQTdCQTs7SUExTUFDLDBCQUEwQjtlQUExQkE7OztxQ0FqQlQ7dUNBRThCO3lEQUNPOytDQUNWO2tEQUNHO3lEQUNxQjsyQ0FDNUI7QUFVdkIsU0FBU0EsMkJBQ2RDLFdBQW1CLEVBQ25CQyxLQUEyQixFQUMzQkMsVUFBMkMsRUFDM0NDLEdBQVEsRUFDUkMsT0FBZ0I7SUFFaEIsSUFBSUMsY0FBY0osTUFBTUssSUFBSTtJQUM1QixJQUFJQyxlQUFlTixNQUFNTyxLQUFLO0lBQzlCLE1BQU1DLE9BQU9DLENBQUFBLEdBQUFBLG1CQUFBQSxpQkFBQUEsRUFBa0JQO0lBQy9CLElBQUlRO0lBRUosSUFBSSxPQUFPVCxlQUFlLFVBQVU7UUFDbEMsT0FBTztJQUNUO0lBRUEsS0FBSyxNQUFNVSx3QkFBd0JWLFdBQVk7UUFDN0MsaUZBQWlGO1FBQ2pGLElBQUksQ0FBQ1csOEJBQThCRCxxQkFBcUJFLFFBQVEsR0FBRztZQUNqRTtRQUNGO1FBRUEsSUFBSUMsWUFBWUgscUJBQXFCTixJQUFJO1FBQ3pDLHVIQUF1SDtRQUN2SCxnSkFBZ0o7UUFDaEosc0hBQXNIO1FBQ3RIUyxZQUFZakIsOEJBQ1ZpQixXQUNBQyxPQUFPQyxXQUFXLENBQUNkLElBQUllLFlBQVk7UUFHckMsTUFBTSxFQUFFSixRQUFRLEVBQUVLLFlBQVksRUFBRUMsYUFBYSxFQUFFLEdBQUdSO1FBQ2xELHNCQUFzQjtRQUN0QixNQUFNUyxvQ0FBb0M7WUFBQztlQUFPRDtTQUFjO1FBRWhFLHVIQUF1SDtRQUN2SCxnSkFBZ0o7UUFDaEosc0hBQXNIO1FBQ3RITCxZQUFZakIsOEJBQ1ZpQixXQUNBQyxPQUFPQyxXQUFXLENBQUNkLElBQUllLFlBQVk7UUFHckMsSUFB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QkFBcUIsQ0FBQzNCLElBQUksR0FBR3hDLDhCQUMzQm9FLGVBQ0FoRDtJQUVKO0lBRUEsT0FBTztRQUFDMkM7UUFBU0k7V0FBMEJIO0tBQUs7QUFDbEQiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9hbGlhc2VkLXByZWZldGNoLW5hdmlnYXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQ2FjaGVOb2RlU2VlZERhdGEsXG4gIEZsaWdodFJvdXRlclN0YXRlLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB0eXBlIHsgQ2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQge1xuICBhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50LFxuICBQQUdFX1NFR01FTlRfS0VZLFxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5pbXBvcnQgdHlwZSB7IE5vcm1hbGl6ZWRGbGlnaHREYXRhIH0gZnJvbSAnLi4vLi4vZmxpZ2h0LWRhdGEtaGVscGVycydcbmltcG9ydCB7IGNyZWF0ZUVtcHR5Q2FjaGVOb2RlIH0gZnJvbSAnLi4vYXBwLXJvdXRlcidcbmltcG9ydCB7IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZSB9IGZyb20gJy4vYXBwbHktcm91dGVyLXN0YXRlLXBhdGNoLXRvLXRyZWUnXG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gJy4vY3JlYXRlLWhyZWYtZnJvbS11cmwnXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gJy4vY3JlYXRlLXJvdXRlci1jYWNoZS1rZXknXG5pbXBvcnQgeyBmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGFCdXRPbmx5TG9hZGluZyB9IGZyb20gJy4vZmlsbC1jYWNoZS13aXRoLW5ldy1zdWJ0cmVlLWRhdGEnXG5pbXBvcnQgeyBoYW5kbGVNdXRhYmxlIH0gZnJvbSAnLi9oYW5kbGUtbXV0YWJsZSdcbmltcG9ydCB0eXBlIHsgTXV0YWJsZSwgUmVhZG9ubHlSZWR1Y2VyU3RhdGUgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuXG4vKipcbiAqIFRoaXMgaXMgYSBzdG9wLWdhcCB1bnRpbCBwZXItc2VnbWVudCBjYWNoaW5nIGlzIGltcGxlbWVudGVkLiBJdCBsZXZlcmFnZXMgdGhlIGBhbGlhc2VkYCBmbGFnIHRoYXQgaXMgYWRkZWRcbiAqIHRvIHByZWZldGNoIGVudHJpZXMgd2hlbiBpdCdzIGRldGVybWluZWQgdGhhdCB0aGUgbG9hZGluZyBzdGF0ZSBmcm9tIHRoYXQgZW50cnkgc2hvdWxkIGJlIHVzZWQgZm9yIHRoaXMgbmF2aWdhdGlvbi5cbiAqIFRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGFsaWFzZWQgZW50cnkgYW5kIG9ubHkgYXBwbGllcyB0aGUgbG9hZGluZyBzdGF0ZSB0byB0aGUgdXBkYXRlZCBjYWNoZSBub2RlLlxuICogV2Ugc2hvdWxkIHJlbW92ZSB0aGlzIG9uY2UgcGVyLXNlZ21lbnQgZmV0Y2hpbmcgaXMgaW1wbGVtZW50ZWQgYXMgaWRlYWxseSB0aGUgcHJlZmV0Y2ggY2FjaGUgd2lsbCBjb250YWluIGFcbiAqIG1vcmUgZ3JhbnVsYXIgc2VnbWVudCBtYXAgYW5kIHNvIHRoZSByb3V0ZXIgd2lsbCBiZSBhYmxlIHRvIHNpbXBseSByZS11c2UgdGhlIGxvYWRpbmcgc2VnbWVudCBmb3IgdGhlIG5ldyBuYXZpZ2F0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlQWxpYXNlZFByZWZldGNoRW50cnkoXG4gIG5hdmlnYXRlZEF0OiBudW1iZXIsXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgZmxpZ2h0RGF0YTogc3RyaW5nIHwgTm9ybWFsaXplZEZsaWdodERhdGFbXSxcbiAgdXJsOiBVUkwsXG4gIG11dGFibGU6IE11dGFibGVcbikge1xuICBsZXQgY3VycmVudFRyZWUgPSBzdGF0ZS50cmVlXG4gIGxldCBjdXJyZW50Q2FjaGUgPSBzdGF0ZS5jYWNoZVxuICBjb25zdCBocmVmID0gY3JlYXRlSHJlZkZyb21VcmwodXJsKVxuICBsZXQgYXBwbGllZFxuXG4gIGlmICh0eXBlb2YgZmxpZ2h0RGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGZvciAoY29uc3Qgbm9ybWFsaXplZEZsaWdodERhdGEgb2YgZmxpZ2h0RGF0YSkge1xuICAgIC8vIElmIHRoZSBzZWdtZW50IGRvZXNuJ3QgaGF2ZSBhIGxvYWRpbmcgY29tcG9uZW50LCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nLlxuICAgIGlmICghaGFzTG9hZGluZ0NvbXBvbmVudEluU2VlZERhdGEobm9ybWFsaXplZEZsaWdodERhdGEuc2VlZERhdGEpKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGxldCB0cmVlUGF0Y2ggPSBub3JtYWxpemVkRmxpZ2h0RGF0YS50cmVlXG4gICAgLy8gU2VnbWVudHMgYXJlIGtleWVkIGJ5IHNlYXJjaFBhcmFtcyAoZS5nLiBfX1BBR0VfXz97XCJmb29cIjpcImJhclwifSkuIFdlIG1pZ2h0IHJldHVybiBhIGxlc3Mgc3BlY2lmaWMsIHBhcmFtLWxlc3MgZW50cnksXG4gICAgLy8gc28gd2UgZW5zdXJlIHRoYXQgdGhlIGZpbmFsIHRyZWUgY29udGFpbnMgdGhlIGNvcnJlY3Qgc2VhcmNoUGFyYW1zIChyZWZsZWN0ZWQgaW4gdGhlIFVSTCkgYXJlIHByb3ZpZGVkIGluIHRoZSB1cGRhdGVkIEZsaWdodFJvdXRlclN0YXRlIHRyZWUuXG4gICAgLy8gV2Ugb25seSBkbyB0aGlzIG9uIHRoZSBmaXJzdCByZWFkLCBhcyBvdGhlcndpc2Ugd2UnZCBiZSBvdmVyd3JpdGluZyB0aGUgc2VhcmNoUGFyYW1zIHRoYXQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIHNldFxuICAgIHRyZWVQYXRjaCA9IGFkZFNlYXJjaFBhcmFtc1RvUGFnZVNlZ21lbnRzKFxuICAgICAgdHJlZVBhdGNoLFxuICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKHVybC5zZWFyY2hQYXJhbXMpXG4gICAgKVxuXG4gICAgY29uc3QgeyBzZWVkRGF0YSwgaXNSb290UmVuZGVyLCBwYXRoVG9TZWdtZW50IH0gPSBub3JtYWxpemVkRmxpZ2h0RGF0YVxuICAgIC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICBjb25zdCBmbGlnaHRTZWdtZW50UGF0aFdpdGhMZWFkaW5nRW1wdHkgPSBbJycsIC4uLnBhdGhUb1NlZ21lbnRdXG5cbiAgICAvLyBTZWdtZW50cyBhcmUga2V5ZWQgYnkgc2VhcmNoUGFyYW1zIChlLmcuIF9fUEFHRV9fP3tcImZvb1wiOlwiYmFyXCJ9KS4gV2UgbWlnaHQgcmV0dXJuIGEgbGVzcyBzcGVjaWZpYywgcGFyYW0tbGVzcyBlbnRyeSxcbiAgICAvLyBzbyB3ZSBlbnN1cmUgdGhhdCB0aGUgZmluYWwgdHJlZSBjb250YWlucyB0aGUgY29ycmVjdCBzZWFyY2hQYXJhbXMgKHJlZmxlY3RlZCBpbiB0aGUgVVJMKSBhcmUgcHJvdmlkZWQgaW4gdGhlIHVwZGF0ZWQgRmxpZ2h0Um91dGVyU3RhdGUgdHJlZS5cbiAgICAvLyBXZSBvbmx5IGRvIHRoaXMgb24gdGhlIGZpcnN0IHJlYWQsIGFzIG90aGVyd2lzZSB3ZSdkIGJlIG92ZXJ3cml0aW5nIHRoZSBzZWFyY2hQYXJhbXMgdGhhdCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0XG4gICAgdHJlZVBhdGNoID0gYWRkU2VhcmNoUGFyYW1zVG9QYWdlU2VnbWVudHMoXG4gICAgICB0cmVlUGF0Y2gsXG4gICAgICBPYmplY3QuZnJvbUVudHJpZXModXJsLnNlYXJjaFBhcmFtcylcbiAgICApXG5cbiAgICBsZXQgbmV3VHJlZSA9IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZShcbiAgICAgIGZsaWdodFNlZ21lbnRQYXRoV2l0aExlYWRpbmdFbXB0eSxcbiAgICAgIGN1cnJlbnRUcmVlLFxuICAgICAgdHJlZVBhdGNoLFxuICAgICAgaHJlZlxuICAgIClcblxuICAgIGNvbnN0IG5ld0NhY2hlID0gY3JlYXRlRW1wdHlDYWNoZU5vZGUoKVxuXG4gICAgLy8gVGhlIHByZWZldGNoIGNhY2hlIGVudHJ5IHdhcyBhbGlhc2VkIC0tIHRoaXMgc2lnbmFscyB0aGF0IHdlIG9ubHkgZmlsbCBpbiB0aGUgY2FjaGUgd2l0aCB0aGVcbiAgICAvLyBsb2FkaW5nIHN0YXRlIGFuZCBub3QgdGhlIGFjdHVhbCBwYXJhbGxlbCByb3V0ZSBzZWVkIGRhdGEuXG4gICAgaWYgKGlzUm9vdFJlbmRlciAmJiBzZWVkRGF0YSkge1xuICAgICAgLy8gRmlsbCBpbiB0aGUgY2FjaGUgd2l0aCB0aGUgbmV3IGxvYWRpbmcgLyByc2MgZGF0YVxuICAgICAgY29uc3QgcnNjID0gc2VlZERhdGFbMV1cbiAgICAgIGNvbnN0IGxvYWRpbmcgPSBzZWVkRGF0YVszXVxuICAgICAgbmV3Q2FjaGUubG9hZGluZyA9IGxvYWRpbmdcbiAgICAgIG5ld0NhY2hlLnJzYyA9IHJzY1xuXG4gICAgICAvLyBDb25zdHJ1Y3QgYSBuZXcgdHJlZSBhbmQgYXBwbHkgdGhlIGFsaWFzZWQgbG9hZGluZyBzdGF0ZSBmb3IgZWFjaCBwYXJhbGxlbCByb3V0ZVxuICAgICAgZmlsbE5ld1RyZWVXaXRoT25seUxvYWRpbmdTZWdtZW50cyhcbiAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgIG5ld0NhY2hlLFxuICAgICAgICBjdXJyZW50Q2FjaGUsXG4gICAgICAgIHRyZWVQYXRjaCxcbiAgICAgICAgc2VlZERhdGFcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ29weSByc2MgZm9yIHRoZSByb290IG5vZGUgb2YgdGhlIGNhY2hlLlxuICAgICAgbmV3Q2FjaGUucnNjID0gY3VycmVudENhY2hlLnJzY1xuICAgICAgbmV3Q2FjaGUucHJlZmV0Y2hSc2MgPSBjdXJyZW50Q2FjaGUucHJlZmV0Y2hSc2NcbiAgICAgIG5ld0NhY2hlLmxvYWRpbmcgPSBjdXJyZW50Q2FjaGUubG9hZGluZ1xuICAgICAgbmV3Q2FjaGUucGFyYWxsZWxSb3V0ZXMgPSBuZXcgTWFwKGN1cnJlbnRDYWNoZS5wYXJhbGxlbFJvdXRlcylcblxuICAgICAgLy8gY29weSB0aGUgbG9hZGluZyBzdGF0ZSBvbmx5IGludG8gdGhlIGxlYWYgbm9kZSAodGhlIHBhcnQgdGhhdCBjaGFuZ2VkKVxuICAgICAgZmlsbENhY2hlV2l0aE5ld1N1YlRyZWVEYXRhQnV0T25seUxvYWRpbmcoXG4gICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICBuZXdDYWNoZSxcbiAgICAgICAgY3VycmVudENhY2hlLFxuICAgICAgICBub3JtYWxpemVkRmxpZ2h0RGF0YVxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYW4gdXBkYXRlZCB0cmVlLCB0aGVyZSdzIG5vIHJlYXNvbiB0byB1cGRhdGUgdGhlIGNhY2hlLCBhcyB0aGUgdHJlZVxuICAgIC8vIGRpY3RhdGVzIHdoYXQgY2FjaGUgbm9kZXMgdG8gcmVuZGVyLlxuICAgIGlmIChuZXdUcmVlKSB7XG4gICAgICBjdXJyZW50VHJlZSA9IG5ld1RyZWVcbiAgICAgIGN1cnJlbnRDYWNoZSA9IG5ld0NhY2hlXG4gICAgICBhcHBsaWVkID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIGlmICghYXBwbGllZCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgbXV0YWJsZS5wYXRjaGVkVHJlZSA9IGN1cnJlbnRUcmVlXG4gIG11dGFibGUuY2FjaGUgPSBjdXJyZW50Q2FjaGVcbiAgbXV0YWJsZS5jYW5vbmljYWxVcmwgPSBocmVmXG4gIG11dGFibGUuaGFzaEZyYWdtZW50ID0gdXJsLmhhc2hcblxuICByZXR1cm4gaGFuZGxlTXV0YWJsZShzdGF0ZSwgbXV0YWJsZSlcbn1cblxuZnVuY3Rpb24gaGFzTG9hZGluZ0NvbXBvbmVudEluU2VlZERhdGEoc2VlZERhdGE6IENhY2hlTm9kZVNlZWREYXRhIHwgbnVsbCkge1xuICBpZiAoIXNlZWREYXRhKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBwYXJhbGxlbFJvdXRlcyA9IHNlZWREYXRhWzJdXG4gIGNvbnN0IGxvYWRpbmcgPSBzZWVkRGF0YVszXVxuXG4gIGlmIChsb2FkaW5nKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IGluIHBhcmFsbGVsUm91dGVzKSB7XG4gICAgaWYgKGhhc0xvYWRpbmdDb21wb25lbnRJblNlZWREYXRhKHBhcmFsbGVsUm91dGVzW2tleV0pKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBmaWxsTmV3VHJlZVdpdGhPbmx5TG9hZGluZ1NlZ21lbnRzKFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyLFxuICBuZXdDYWNoZTogQ2FjaGVOb2RlLFxuICBleGlzdGluZ0NhY2hlOiBDYWNoZU5vZGUsXG4gIHJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgY2FjaGVOb2RlU2VlZERhdGE6IENhY2hlTm9kZVNlZWREYXRhIHwgbnVsbFxuKSB7XG4gIGNvbnN0IGlzTGFzdFNlZ21lbnQgPSBPYmplY3Qua2V5cyhyb3V0ZXJTdGF0ZVsxXSkubGVuZ3RoID09PSAwXG4gIGlmIChpc0xhc3RTZWdtZW50KSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBpbiByb3V0ZXJTdGF0ZVsxXSkge1xuICAgIGNvbnN0IHBhcmFsbGVsUm91dGVTdGF0ZSA9IHJvdXRlclN0YXRlWzFdW2tleV1cbiAgICBjb25zdCBzZWdtZW50Rm9yUGFyYWxsZWxSb3V0ZSA9IHBhcmFsbGVsUm91dGVTdGF0ZVswXVxuICAgIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoc2VnbWVudEZvclBhcmFsbGVsUm91dGUpXG5cbiAgICBjb25zdCBwYXJhbGxlbFNlZWREYXRhID1cbiAgICAgIGNhY2hlTm9kZVNlZWREYXRhICE9PSBudWxsICYmIGNhY2hlTm9kZVNlZWREYXRhWzJdW2tleV0gIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGNhY2hlTm9kZVNlZWREYXRhWzJdW2tleV1cbiAgICAgICAgOiBudWxsXG5cbiAgICBsZXQgbmV3Q2FjaGVOb2RlOiBDYWNoZU5vZGVcbiAgICBpZiAocGFyYWxsZWxTZWVkRGF0YSAhPT0gbnVsbCkge1xuICAgICAgLy8gTmV3IGRhdGEgd2FzIHNlbnQgZnJvbSB0aGUgc2VydmVyLlxuICAgICAgY29uc3QgcnNjID0gcGFyYWxsZWxTZWVkRGF0YVsxXVxuICAgICAgY29uc3QgbG9hZGluZyA9IHBhcmFsbGVsU2VlZERhdGFbM11cbiAgICAgIG5ld0NhY2hlTm9kZSA9IHtcbiAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgIC8vIGNvcHkgdGhlIGxheW91dCBidXQgbnVsbCB0aGUgcGFnZSBzZWdtZW50IGFzIHRoYXQncyBub3QgbWVhbnQgdG8gYmUgdXNlZFxuICAgICAgICByc2M6IHNlZ21lbnRGb3JQYXJhbGxlbFJvdXRlLmluY2x1ZGVzKFBBR0VfU0VHTUVOVF9LRVkpID8gbnVsbCA6IHJzYyxcbiAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgIGhlYWQ6IG51bGwsXG4gICAgICAgIHByZWZldGNoSGVhZDogbnVsbCxcbiAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKSxcbiAgICAgICAgbG9hZGluZyxcbiAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGRhdGEgYXZhaWxhYmxlIGZvciB0aGlzIG5vZGUuIFRoaXMgd2lsbCB0cmlnZ2VyIGEgbGF6eSBmZXRjaFxuICAgICAgLy8gZHVyaW5nIHJlbmRlci5cbiAgICAgIG5ld0NhY2hlTm9kZSA9IHtcbiAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgIHJzYzogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgIGhlYWQ6IG51bGwsXG4gICAgICAgIHByZWZldGNoSGVhZDogbnVsbCxcbiAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKSxcbiAgICAgICAgbG9hZGluZzogbnVsbCxcbiAgICAgICAgbmF2aWdhdGVkQXQ6IC0xLFxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nUGFyYWxsZWxSb3V0ZXMgPSBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5nZXQoa2V5KVxuICAgIGlmIChleGlzdGluZ1BhcmFsbGVsUm91dGVzKSB7XG4gICAgICBleGlzdGluZ1BhcmFsbGVsUm91dGVzLnNldChjYWNoZUtleSwgbmV3Q2FjaGVOb2RlKVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5zZXQoa2V5LCBuZXcgTWFwKFtbY2FjaGVLZXksIG5ld0NhY2hlTm9kZV1dKSlcbiAgICB9XG5cbiAgICBmaWxsTmV3VHJlZVdpdGhPbmx5TG9hZGluZ1NlZ21lbnRzKFxuICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICBuZXdDYWNoZU5vZGUsXG4gICAgICBleGlzdGluZ0NhY2hlLFxuICAgICAgcGFyYWxsZWxSb3V0ZVN0YXRlLFxuICAgICAgcGFyYWxsZWxTZWVkRGF0YVxuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIEFkZCBzZWFyY2ggcGFyYW1zIHRvIHRoZSBwYWdlIHNlZ21lbnRzIGluIHRoZSBmbGlnaHQgcm91dGVyIHN0YXRlXG4gKiBQYWdlIHNlZ21lbnRzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBzZWFyY2ggcGFyYW1zIGhhdmUgYSBwYWdlIHNlZ21lbnQga2V5XG4gKiBmb2xsb3dlZCBieSBhIHF1ZXJ5IHN0cmluZy4gVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0aG9zZSBwYXJhbXMgdG8gdGhlIHBhZ2Ugc2VnbWVudC5cbiAqIFRoaXMgaXMgdXNlZnVsIGlmIHdlIHJldHVybiBhbiBhbGlhc2VkIHByZWZldGNoIGVudHJ5IChpZSwgd29uJ3QgaGF2ZSBzZWFyY2ggcGFyYW1zKVxuICogYnV0IHRoZSBjYW5vbmljYWwgcm91dGVyIFVSTCBoYXMgc2VhcmNoIHBhcmFtcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc1RvUGFnZVNlZ21lbnRzKFxuICBmbGlnaHRSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pOiBGbGlnaHRSb3V0ZXJTdGF0ZSB7XG4gIGNvbnN0IFtzZWdtZW50LCBwYXJhbGxlbFJvdXRlcywgLi4ucmVzdF0gPSBmbGlnaHRSb3V0ZXJTdGF0ZVxuXG4gIC8vIElmIGl0J3MgYSBwYWdlIHNlZ21lbnQsIG1vZGlmeSB0aGUgc2VnbWVudCBieSBhZGRpbmcgc2VhcmNoIHBhcmFtc1xuICBpZiAoc2VnbWVudC5pbmNsdWRlcyhQQUdFX1NFR01FTlRfS0VZKSkge1xuICAgIGNvbnN0IG5ld1NlZ21lbnQgPSBhZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50KHNlZ21lbnQsIHNlYXJjaFBhcmFtcylcbiAgICByZXR1cm4gW25ld1NlZ21lbnQsIHBhcmFsbGVsUm91dGVzLCAuLi5yZXN0XVxuICB9XG5cbiAgLy8gT3RoZXJ3aXNlLCByZWN1cnNlIHRocm91Z2ggdGhlIHBhcmFsbGVsIHJvdXRlcyBhbmQgcmV0dXJuIGEgbmV3IHRyZWVcbiAgY29uc3QgdXBkYXRlZFBhcmFsbGVsUm91dGVzOiB7IFtrZXk6IHN0cmluZ106IEZsaWdodFJvdXRlclN0YXRlIH0gPSB7fVxuXG4gIGZvciAoY29uc3QgW2tleSwgcGFyYWxsZWxSb3V0ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYWxsZWxSb3V0ZXMpKSB7XG4gICAgdXBkYXRlZFBhcmFsbGVsUm91dGVzW2tleV0gPSBhZGRTZWFyY2hQYXJhbXNUb1BhZ2VTZWdtZW50cyhcbiAgICAgIHBhcmFsbGVsUm91dGUsXG4gICAgICBzZWFyY2hQYXJhbXNcbiAgICApXG4gIH1cblxuICByZXR1cm4gW3NlZ21lbnQsIHVwZGF0ZWRQYXJhbGxlbFJvdXRlcywgLi4ucmVzdF1cbn1cbiJdLCJuYW1lcyI6WyJhZGRTZWFyY2hQYXJhbXNUb1BhZ2VTZWdtZW50cyIsImhhbmRsZUFsaWFzZWRQcmVmZXRjaEVudHJ5IiwibmF2aWdhdGVkQXQiLCJzdGF0ZSIsImZsaWdodERhdGEiLCJ1cmwiLCJtdXRhYmxlIiwiY3VycmVudFRyZWUiLCJ0cmVlIiwiY3VycmVudENhY2hlIiwiY2FjaGUiLCJocmVmIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJhcHBsaWVkIiwibm9ybWFsaXplZEZsaWdodERhdGEiLCJoYXNMb2FkaW5nQ29tcG9uZW50SW5TZWVkRGF0YSIsInNlZWREYXRhIiwidHJlZVBhdGNoIiwiT2JqZWN0IiwiZnJvbUVudHJpZXMiLCJzZWFyY2hQYXJhbXMiLCJpc1Jvb3RSZW5kZXIiLCJwYXRoVG9TZWdtZW50IiwiZmxpZ2h0U2VnbWVudFBhdGhXaXRoTGVhZGluZ0VtcHR5IiwibmV3VHJlZSIsImFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZSIsIm5ld0NhY2hlIiwiY3JlYXRlRW1wdHlDYWNoZU5vZGUiLCJyc2MiLCJsb2FkaW5nIiwiZmlsbE5ld1RyZWVXaXRoT25seUxvYWRpbmdTZWdtZW50cyIsInByZWZldGNoUnNjIiwicGFyYWxsZWxSb3V0ZXMiLCJNYXAiLCJmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGFCdXRPbmx5TG9hZGluZyIsInBhdGNoZWRUcmVlIiwiY2Fub25pY2FsVXJsIiwiaGFzaEZyYWdtZW50IiwiaGFzaCIsImhhbmRsZU11dGFibGUiLCJrZXkiLCJleGlzdGluZ0NhY2hlIiwicm91dGVyU3RhdGUiLCJjYWNoZU5vZGVTZWVkRGF0YSIsImlzTGFzdFNlZ21lbnQiLCJrZXlzIiwibGVuZ3RoIiwicGFyYWxsZWxSb3V0ZVN0YXRlIiwic2VnbWVudEZvclBhcmFsbGVsUm91dGUiLCJjYWNoZUtleSIsImNyZWF0ZVJvdXRlckNhY2hlS2V5IiwicGFyYWxsZWxTZWVkRGF0YSIsInVuZGVmaW5lZCIsIm5ld0NhY2hlTm9kZSIsImxhenlEYXRhIiwiaW5jbHVkZXMiLCJQQUdFX1NFR01FTlRfS0VZIiwiaGVhZCIsInByZWZldGNoSGVhZCIsImV4aXN0aW5nUGFyYWxsZWxSb3V0ZXMiLCJnZXQiLCJzZXQiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsInNlZ21lbnQiLCJyZXN0IiwibmV3U2VnbWVudCIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJ1cGRhdGVkUGFyYWxsZWxSb3V0ZXMiLCJwYXJhbGxlbFJvdXRlIiwiZW50cmllcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/aliased-prefetch-navigations.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js":
/*!**************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js ***!
\**************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"applyFlightData\", ({\n enumerable: true,\n get: function() {\n return applyFlightData;\n }\n}));\nconst _filllazyitemstillleafwithhead = __webpack_require__(/*! ./fill-lazy-items-till-leaf-with-head */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\nconst _fillcachewithnewsubtreedata = __webpack_require__(/*! ./fill-cache-with-new-subtree-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js\");\nfunction applyFlightData(navigatedAt, existingCache, cache, flightData, prefetchEntry) {\n // The one before last item is the router state tree patch\n const { tree: treePatch, seedData, head, isRootRender } = flightData;\n // Handles case where prefetch only returns the router tree patch without rendered components.\n if (seedData === null) {\n return false;\n }\n if (isRootRender) {\n const rsc = seedData[1];\n const loading = seedData[3];\n cache.loading = loading;\n cache.rsc = rsc;\n // This is a PPR-only field. When PPR is enabled, we shouldn't hit\n // this path during a navigation, but until PPR is fully implemented\n // yet it's possible the existing node does have a non-null\n // `prefetchRsc`. As an incremental step, we'll just de-opt to the\n // old behavior — no PPR value.\n cache.prefetchRsc = null;\n (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, cache, existingCache, treePatch, seedData, head, prefetchEntry);\n } else {\n // Copy rsc for the root node of the cache.\n cache.rsc = existingCache.rsc;\n // This is a PPR-only field. Unlike the previous branch, since we're\n // just cloning the existing cache node, we might as well keep the\n // PPR value, if it exists.\n cache.prefetchRsc = existingCache.prefetchRsc;\n cache.parallelRoutes = new Map(existingCache.parallelRoutes);\n cache.loading = existingCache.loading;\n // Create a copy of the existing cache with the rsc applied.\n (0, _fillcachewithnewsubtreedata.fillCacheWithNewSubTreeData)(navigatedAt, cache, existingCache, flightData, prefetchEntry);\n }\n return true;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=apply-flight-data.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2FwcGx5LWZsaWdodC1kYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBTWdCQTs7O2VBQUFBOzs7MkRBTDhCO3lEQUNGO0FBSXJDLFNBQVNBLGdCQUNkQyxXQUFtQixFQUNuQkMsYUFBd0IsRUFDeEJDLEtBQWdCLEVBQ2hCQyxVQUFnQyxFQUNoQ0MsYUFBa0M7SUFFbEMsMERBQTBEO0lBQzFELE1BQU0sRUFBRUMsTUFBTUMsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsWUFBWSxFQUFFLEdBQUdOO0lBRTFELDhGQUE4RjtJQUM5RixJQUFJSSxhQUFhLE1BQU07UUFDckIsT0FBTztJQUNUO0lBRUEsSUFBSUUsY0FBYztRQUNoQixNQUFNQyxNQUFNSCxRQUFRLENBQUMsRUFBRTtRQUN2QixNQUFNSSxVQUFVSixRQUFRLENBQUMsRUFBRTtRQUMzQkwsTUFBTVMsT0FBTyxHQUFHQTtRQUNoQlQsTUFBTVEsR0FBRyxHQUFHQTtRQUNaLGtFQUFrRTtRQUNsRSxvRUFBb0U7UUFDcEUsMkRBQTJEO1FBQzNELGtFQUFrRTtRQUNsRSwrQkFBK0I7UUFDL0JSLE1BQU1VLFdBQVcsR0FBRztRQUNwQkMsQ0FBQUEsR0FBQUEsK0JBQUFBLDZCQUFBQSxFQUNFYixhQUNBRSxPQUNBRCxlQUNBSyxXQUNBQyxVQUNBQyxNQUNBSjtJQUVKLE9BQU87UUFDTCwyQ0FBMkM7UUFDM0NGLE1BQU1RLEdBQUcsR0FBR1QsY0FBY1MsR0FBRztRQUM3QixvRUFBb0U7UUFDcEUsa0VBQWtFO1FBQ2xFLDJCQUEyQjtRQUMzQlIsTUFBTVUsV0FBVyxHQUFHWCxjQUFjVyxXQUFXO1FBQzdDVixNQUFNWSxjQUFjLEdBQUcsSUFBSUMsSUFBSWQsY0FBY2EsY0FBYztRQUMzRFosTUFBTVMsT0FBTyxHQUFHVixjQUFjVSxPQUFPO1FBQ3JDLDREQUE0RDtRQUM1REssQ0FBQUEsR0FBQUEsNkJBQUFBLDJCQUFBQSxFQUNFaEIsYUFDQUUsT0FDQUQsZUFDQUUsWUFDQUM7SUFFSjtJQUVBLE9BQU87QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2FwcGx5LWZsaWdodC1kYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCB9IGZyb20gJy4vZmlsbC1sYXp5LWl0ZW1zLXRpbGwtbGVhZi13aXRoLWhlYWQnXG5pbXBvcnQgeyBmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGEgfSBmcm9tICcuL2ZpbGwtY2FjaGUtd2l0aC1uZXctc3VidHJlZS1kYXRhJ1xuaW1wb3J0IHR5cGUgeyBQcmVmZXRjaENhY2hlRW50cnkgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHR5cGUgeyBOb3JtYWxpemVkRmxpZ2h0RGF0YSB9IGZyb20gJy4uLy4uL2ZsaWdodC1kYXRhLWhlbHBlcnMnXG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseUZsaWdodERhdGEoXG4gIG5hdmlnYXRlZEF0OiBudW1iZXIsXG4gIGV4aXN0aW5nQ2FjaGU6IENhY2hlTm9kZSxcbiAgY2FjaGU6IENhY2hlTm9kZSxcbiAgZmxpZ2h0RGF0YTogTm9ybWFsaXplZEZsaWdodERhdGEsXG4gIHByZWZldGNoRW50cnk/OiBQcmVmZXRjaENhY2hlRW50cnlcbik6IGJvb2xlYW4ge1xuICAvLyBUaGUgb25lIGJlZm9yZSBsYXN0IGl0ZW0gaXMgdGhlIHJvdXRlciBzdGF0ZSB0cmVlIHBhdGNoXG4gIGNvbnN0IHsgdHJlZTogdHJlZVBhdGNoLCBzZWVkRGF0YSwgaGVhZCwgaXNSb290UmVuZGVyIH0gPSBmbGlnaHREYXRhXG5cbiAgLy8gSGFuZGxlcyBjYXNlIHdoZXJlIHByZWZldGNoIG9ubHkgcmV0dXJucyB0aGUgcm91dGVyIHRyZWUgcGF0Y2ggd2l0aG91dCByZW5kZXJlZCBjb21wb25lbnRzLlxuICBpZiAoc2VlZERhdGEgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChpc1Jvb3RSZW5kZXIpIHtcbiAgICBjb25zdCByc2MgPSBzZWVkRGF0YVsxXVxuICAgIGNvbnN0IGxvYWRpbmcgPSBzZWVkRGF0YVszXVxuICAgIGNhY2hlLmxvYWRpbmcgPSBsb2FkaW5nXG4gICAgY2FjaGUucnNjID0gcnNjXG4gICAgLy8gVGhpcyBpcyBhIFBQUi1vbmx5IGZpZWxkLiBXaGVuIFBQUiBpcyBlbmFibGVkLCB3ZSBzaG91bGRuJ3QgaGl0XG4gICAgLy8gdGhpcyBwYXRoIGR1cmluZyBhIG5hdmlnYXRpb24sIGJ1dCB1bnRpbCBQUFIgaXMgZnVsbHkgaW1wbGVtZW50ZWRcbiAgICAvLyB5ZXQgaXQncyBwb3NzaWJsZSB0aGUgZXhpc3Rpbmcgbm9kZSBkb2VzIGhhdmUgYSBub24tbnVsbFxuICAgIC8vIGBwcmVmZXRjaFJzY2AuIEFzIGFuIGluY3JlbWVudGFsIHN0ZXAsIHdlJ2xsIGp1c3QgZGUtb3B0IHRvIHRoZVxuICAgIC8vIG9sZCBiZWhhdmlvciDigJQgbm8gUFBSIHZhbHVlLlxuICAgIGNhY2hlLnByZWZldGNoUnNjID0gbnVsbFxuICAgIGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkKFxuICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICBjYWNoZSxcbiAgICAgIGV4aXN0aW5nQ2FjaGUsXG4gICAgICB0cmVlUGF0Y2gsXG4gICAgICBzZWVkRGF0YSxcbiAgICAgIGhlYWQsXG4gICAgICBwcmVmZXRjaEVudHJ5XG4gICAgKVxuICB9IGVsc2Uge1xuICAgIC8vIENvcHkgcnNjIGZvciB0aGUgcm9vdCBub2RlIG9mIHRoZSBjYWNoZS5cbiAgICBjYWNoZS5yc2MgPSBleGlzdGluZ0NhY2hlLnJzY1xuICAgIC8vIFRoaXMgaXMgYSBQUFItb25seSBmaWVsZC4gVW5saWtlIHRoZSBwcmV2aW91cyBicmFuY2gsIHNpbmNlIHdlJ3JlXG4gICAgLy8ganVzdCBjbG9uaW5nIHRoZSBleGlzdGluZyBjYWNoZSBub2RlLCB3ZSBtaWdodCBhcyB3ZWxsIGtlZXAgdGhlXG4gICAgLy8gUFBSIHZhbHVlLCBpZiBpdCBleGlzdHMuXG4gICAgY2FjaGUucHJlZmV0Y2hSc2MgPSBleGlzdGluZ0NhY2hlLnByZWZldGNoUnNjXG4gICAgY2FjaGUucGFyYWxsZWxSb3V0ZXMgPSBuZXcgTWFwKGV4aXN0aW5nQ2FjaGUucGFyYWxsZWxSb3V0ZXMpXG4gICAgY2FjaGUubG9hZGluZyA9IGV4aXN0aW5nQ2FjaGUubG9hZGluZ1xuICAgIC8vIENyZWF0ZSBhIGNvcHkgb2YgdGhlIGV4aXN0aW5nIGNhY2hlIHdpdGggdGhlIHJzYyBhcHBsaWVkLlxuICAgIGZpbGxDYWNoZVdpdGhOZXdTdWJUcmVlRGF0YShcbiAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgY2FjaGUsXG4gICAgICBleGlzdGluZ0NhY2hlLFxuICAgICAgZmxpZ2h0RGF0YSxcbiAgICAgIHByZWZldGNoRW50cnlcbiAgICApXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuIl0sIm5hbWVzIjpbImFwcGx5RmxpZ2h0RGF0YSIsIm5hdmlnYXRlZEF0IiwiZXhpc3RpbmdDYWNoZSIsImNhY2hlIiwiZmxpZ2h0RGF0YSIsInByZWZldGNoRW50cnkiLCJ0cmVlIiwidHJlZVBhdGNoIiwic2VlZERhdGEiLCJoZWFkIiwiaXNSb290UmVuZGVyIiwicnNjIiwibG9hZGluZyIsInByZWZldGNoUnNjIiwiZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQiLCJwYXJhbGxlbFJvdXRlcyIsIk1hcCIsImZpbGxDYWNoZVdpdGhOZXdTdWJUcmVlRGF0YSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js":
/*!*****************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js ***!
\*****************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"applyRouterStatePatchToTree\", ({\n enumerable: true,\n get: function() {\n return applyRouterStatePatchToTree;\n }\n}));\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _flightdatahelpers = __webpack_require__(/*! ../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nconst _matchsegments = __webpack_require__(/*! ../match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\nconst _refetchinactiveparallelsegments = __webpack_require__(/*! ./refetch-inactive-parallel-segments */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js\");\n/**\n * Deep merge of the two router states. Parallel route keys are preserved if the patch doesn't have them.\n */ function applyPatch(initialTree, patchTree) {\n const [initialSegment, initialParallelRoutes] = initialTree;\n const [patchSegment, patchParallelRoutes] = patchTree;\n // if the applied patch segment is __DEFAULT__ then it can be ignored in favor of the initial tree\n // this is because the __DEFAULT__ segment is used as a placeholder on navigation\n if (patchSegment === _segment.DEFAULT_SEGMENT_KEY && initialSegment !== _segment.DEFAULT_SEGMENT_KEY) {\n return initialTree;\n }\n if ((0, _matchsegments.matchSegment)(initialSegment, patchSegment)) {\n const newParallelRoutes = {};\n for(const key in initialParallelRoutes){\n const isInPatchTreeParallelRoutes = typeof patchParallelRoutes[key] !== 'undefined';\n if (isInPatchTreeParallelRoutes) {\n newParallelRoutes[key] = applyPatch(initialParallelRoutes[key], patchParallelRoutes[key]);\n } else {\n newParallelRoutes[key] = initialParallelRoutes[key];\n }\n }\n for(const key in patchParallelRoutes){\n if (newParallelRoutes[key]) {\n continue;\n }\n newParallelRoutes[key] = patchParallelRoutes[key];\n }\n const tree = [\n initialSegment,\n newParallelRoutes\n ];\n // Copy over the existing tree\n if (initialTree[2]) {\n tree[2] = initialTree[2];\n }\n if (initialTree[3]) {\n tree[3] = initialTree[3];\n }\n if (initialTree[4]) {\n tree[4] = initialTree[4];\n }\n return tree;\n }\n return patchTree;\n}\nfunction applyRouterStatePatchToTree(flightSegmentPath, flightRouterState, treePatch, path) {\n const [segment, parallelRoutes, url, refetch, isRootLayout] = flightRouterState;\n // Root refresh\n if (flightSegmentPath.length === 1) {\n const tree = applyPatch(flightRouterState, treePatch);\n (0, _refetchinactiveparallelsegments.addRefreshMarkerToActiveParallelSegments)(tree, path);\n return tree;\n }\n const [currentSegment, parallelRouteKey] = flightSegmentPath;\n // Tree path returned from the server should always match up with the current tree in the browser\n if (!(0, _matchsegments.matchSegment)(currentSegment, segment)) {\n return null;\n }\n const lastSegment = flightSegmentPath.length === 2;\n let parallelRoutePatch;\n if (lastSegment) {\n parallelRoutePatch = applyPatch(parallelRoutes[parallelRouteKey], treePatch);\n } else {\n parallelRoutePatch = applyRouterStatePatchToTree((0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath), parallelRoutes[parallelRouteKey], treePatch, path);\n if (parallelRoutePatch === null) {\n return null;\n }\n }\n const tree = [\n flightSegmentPath[0],\n {\n ...parallelRoutes,\n [parallelRouteKey]: parallelRoutePatch\n },\n url,\n refetch\n ];\n // Current segment is the root layout\n if (isRootLayout) {\n tree[4] = true;\n }\n (0, _refetchinactiveparallelsegments.addRefreshMarkerToActiveParallelSegments)(tree, path);\n return tree;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=apply-router-state-patch-to-tree.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2FwcGx5LXJvdXRlci1zdGF0ZS1wYXRjaC10by10cmVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0RBNkVnQkE7OztlQUFBQTs7O3FDQXpFb0I7K0NBQ0s7MkNBQ1o7NkRBQzRCO0FBRXpEOztDQUVDLEdBQ0QsU0FBU0MsV0FDUEMsV0FBOEIsRUFDOUJDLFNBQTRCO0lBRTVCLE1BQU0sQ0FBQ0MsZ0JBQWdCQyxzQkFBc0IsR0FBR0g7SUFDaEQsTUFBTSxDQUFDSSxjQUFjQyxvQkFBb0IsR0FBR0o7SUFFNUMsa0dBQWtHO0lBQ2xHLGlGQUFpRjtJQUNqRixJQUNFRyxpQkFBaUJFLFNBQUFBLG1CQUFtQixJQUNwQ0osbUJBQW1CSSxTQUFBQSxtQkFBbUIsRUFDdEM7UUFDQSxPQUFPTjtJQUNUO0lBRUEsSUFBSU8sQ0FBQUEsR0FBQUEsZUFBQUEsWUFBQUEsRUFBYUwsZ0JBQWdCRSxlQUFlO1FBQzlDLE1BQU1JLG9CQUEwQyxDQUFDO1FBQ2pELElBQUssTUFBTUMsT0FBT04sc0JBQXVCO1lBQ3ZDLE1BQU1PLDhCQUNKLE9BQU9MLG1CQUFtQixDQUFDSSxJQUFJLEtBQUs7WUFDdEMsSUFBSUMsNkJBQTZCO2dCQUMvQkYsaUJBQWlCLENBQUNDLElBQUksR0FBR1YsV0FDdkJJLHFCQUFxQixDQUFDTSxJQUFJLEVBQzFCSixtQkFBbUIsQ0FBQ0ksSUFBSTtZQUU1QixPQUFPO2dCQUNMRCxpQkFBaUIsQ0FBQ0MsSUFBSSxHQUFHTixxQkFBcUIsQ0FBQ00sSUFBSTtZQUNyRDtRQUNGO1FBRUEsSUFBSyxNQUFNQSxPQUFPSixvQkFBcUI7WUFDckMsSUFBSUcsaUJBQWlCLENBQUNDLElBQUksRUFBRTtnQkFDMUI7WUFDRjtZQUVBRCxpQkFBaUIsQ0FBQ0MsSUFBSSxHQUFHSixtQkFBbUIsQ0FBQ0ksSUFBSTtRQUNuRDtRQUVBLE1BQU1FLE9BQTBCO1lBQUNUO1lBQWdCTTtTQUFrQjtRQUVuRSw4QkFBOEI7UUFDOUIsSUFBSVIsV0FBVyxDQUFDLEVBQUUsRUFBRTtZQUNsQlcsSUFBSSxDQUFDLEVBQUUsR0FBR1gsV0FBVyxDQUFDLEVBQUU7UUFDMUI7UUFFQSxJQUFJQSxXQUFXLENBQUMsRUFBRSxFQUFFO1lBQ2xCVyxJQUFJLENBQUMsRUFBRSxHQUFHWCxXQUFXLENBQUMsRUFBRTtRQUMxQjtRQUVBLElBQUlBLFdBQVcsQ0FBQyxFQUFFLEVBQUU7WUFDbEJXLElBQUksQ0FBQyxFQUFFLEdBQUdYLFdBQVcsQ0FBQyxFQUFFO1FBQzFCO1FBRUEsT0FBT1c7SUFDVDtJQUVBLE9BQU9WO0FBQ1Q7QUFPTyxTQUFTSCw0QkFDZGMsaUJBQW9DLEVBQ3BDQyxpQkFBb0MsRUFDcENDLFNBQTRCLEVBQzVCQyxJQUFZO0lBRVosTUFBTSxDQUFDQyxTQUFTQyxnQkFBZ0JDLEtBQUtDLFNBQVNDLGFBQWEsR0FDekRQO0lBRUYsZUFBZTtJQUNmLElBQUlELGtCQUFrQlMsTUFBTSxLQUFLLEdBQUc7UUFDbEMsTUFBTVYsT0FBMEJaLFdBQVdjLG1CQUFtQkM7UUFFOURRLENBQUFBLEdBQUFBLGlDQUFBQSx3Q0FBQUEsRUFBeUNYLE1BQU1JO1FBRS9DLE9BQU9KO0lBQ1Q7SUFFQSxNQUFNLENBQUNZLGdCQUFnQkMsaUJBQWlCLEdBQUdaO0lBRTNDLGlHQUFpRztJQUNqRyxJQUFJLENBQUNMLENBQUFBLEdBQUFBLGVBQUFBLFlBQUFBLEVBQWFnQixnQkFBZ0JQLFVBQVU7UUFDMUMsT0FBTztJQUNUO0lBRUEsTUFBTVMsY0FBY2Isa0JBQWtCUyxNQUFNLEtBQUs7SUFFakQsSUFBSUs7SUFDSixJQUFJRCxhQUFhO1FBQ2ZDLHFCQUFxQjNCLFdBQVdrQixjQUFjLENBQUNPLGlCQUFpQixFQUFFVjtJQUNwRSxPQUFPO1FBQ0xZLHFCQUFxQjVCLDRCQUNuQjZCLENBQUFBLEdBQUFBLG1CQUFBQSx3QkFBQUEsRUFBeUJmLG9CQUN6QkssY0FBYyxDQUFDTyxpQkFBaUIsRUFDaENWLFdBQ0FDO1FBR0YsSUFBSVcsdUJBQXVCLE1BQU07WUFDL0IsT0FBTztRQUNUO0lBQ0Y7SUFFQSxNQUFNZixPQUEwQjtRQUM5QkMsaUJBQWlCLENBQUMsRUFBRTtRQUNwQjtZQUNFLEdBQUdLLGNBQWM7WUFDakIsQ0FBQ08saUJBQWlCLEVBQUVFO1FBQ3RCO1FBQ0FSO1FBQ0FDO0tBQ0Q7SUFFRCxxQ0FBcUM7SUFDckMsSUFBSUMsY0FBYztRQUNoQlQsSUFBSSxDQUFDLEVBQUUsR0FBRztJQUNaO0lBRUFXLENBQUFBLEdBQUFBLGlDQUFBQSx3Q0FBQUEsRUFBeUNYLE1BQU1JO0lBRS9DLE9BQU9KO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9hcHBseS1yb3V0ZXItc3RhdGUtcGF0Y2gtdG8tdHJlZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEZsaWdodFJvdXRlclN0YXRlLFxuICBGbGlnaHRTZWdtZW50UGF0aCxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgeyBERUZBVUxUX1NFR01FTlRfS0VZIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50J1xuaW1wb3J0IHsgZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoIH0gZnJvbSAnLi4vLi4vZmxpZ2h0LWRhdGEtaGVscGVycydcbmltcG9ydCB7IG1hdGNoU2VnbWVudCB9IGZyb20gJy4uL21hdGNoLXNlZ21lbnRzJ1xuaW1wb3J0IHsgYWRkUmVmcmVzaE1hcmtlclRvQWN0aXZlUGFyYWxsZWxTZWdtZW50cyB9IGZyb20gJy4vcmVmZXRjaC1pbmFjdGl2ZS1wYXJhbGxlbC1zZWdtZW50cydcblxuLyoqXG4gKiBEZWVwIG1lcmdlIG9mIHRoZSB0d28gcm91dGVyIHN0YXRlcy4gUGFyYWxsZWwgcm91dGUga2V5cyBhcmUgcHJlc2VydmVkIGlmIHRoZSBwYXRjaCBkb2Vzbid0IGhhdmUgdGhlbS5cbiAqL1xuZnVuY3Rpb24gYXBwbHlQYXRjaChcbiAgaW5pdGlhbFRyZWU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBwYXRjaFRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4pOiBGbGlnaHRSb3V0ZXJTdGF0ZSB7XG4gIGNvbnN0IFtpbml0aWFsU2VnbWVudCwgaW5pdGlhbFBhcmFsbGVsUm91dGVzXSA9IGluaXRpYWxUcmVlXG4gIGNvbnN0IFtwYXRjaFNlZ21lbnQsIHBhdGNoUGFyYWxsZWxSb3V0ZXNdID0gcGF0Y2hUcmVlXG5cbiAgLy8gaWYgdGhlIGFwcGxpZWQgcGF0Y2ggc2VnbWVudCBpcyBfX0RFRkFVTFRfXyB0aGVuIGl0IGNhbiBiZSBpZ25vcmVkIGluIGZhdm9yIG9mIHRoZSBpbml0aWFsIHRyZWVcbiAgLy8gdGhpcyBpcyBiZWNhdXNlIHRoZSBfX0RFRkFVTFRfXyBzZWdtZW50IGlzIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBvbiBuYXZpZ2F0aW9uXG4gIGlmIChcbiAgICBwYXRjaFNlZ21lbnQgPT09IERFRkFVTFRfU0VHTUVOVF9LRVkgJiZcbiAgICBpbml0aWFsU2VnbWVudCAhPT0gREVGQVVMVF9TRUdNRU5UX0tFWVxuICApIHtcbiAgICByZXR1cm4gaW5pdGlhbFRyZWVcbiAgfVxuXG4gIGlmIChtYXRjaFNlZ21lbnQoaW5pdGlhbFNlZ21lbnQsIHBhdGNoU2VnbWVudCkpIHtcbiAgICBjb25zdCBuZXdQYXJhbGxlbFJvdXRlczogRmxpZ2h0Um91dGVyU3RhdGVbMV0gPSB7fVxuICAgIGZvciAoY29uc3Qga2V5IGluIGluaXRpYWxQYXJhbGxlbFJvdXRlcykge1xuICAgICAgY29uc3QgaXNJblBhdGNoVHJlZVBhcmFsbGVsUm91dGVzID1cbiAgICAgICAgdHlwZW9mIHBhdGNoUGFyYWxsZWxSb3V0ZXNba2V5XSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgIGlmIChpc0luUGF0Y2hUcmVlUGFyYWxsZWxSb3V0ZXMpIHtcbiAgICAgICAgbmV3UGFyYWxsZWxSb3V0ZXNba2V5XSA9IGFwcGx5UGF0Y2goXG4gICAgICAgICAgaW5pdGlhbFBhcmFsbGVsUm91dGVzW2tleV0sXG4gICAgICAgICAgcGF0Y2hQYXJhbGxlbFJvdXRlc1trZXldXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1BhcmFsbGVsUm91dGVzW2tleV0gPSBpbml0aWFsUGFyYWxsZWxSb3V0ZXNba2V5XVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IGluIHBhdGNoUGFyYWxsZWxSb3V0ZXMpIHtcbiAgICAgIGlmIChuZXdQYXJhbGxlbFJvdXRlc1trZXldKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIG5ld1BhcmFsbGVsUm91dGVzW2tleV0gPSBwYXRjaFBhcmFsbGVsUm91dGVzW2tleV1cbiAgICB9XG5cbiAgICBjb25zdCB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSA9IFtpbml0aWFsU2VnbWVudCwgbmV3UGFyYWxsZWxSb3V0ZXNdXG5cbiAgICAvLyBDb3B5IG92ZXIgdGhlIGV4aXN0aW5nIHRyZWVcbiAgICBpZiAoaW5pdGlhbFRyZWVbMl0pIHtcbiAgICAgIHRyZWVbMl0gPSBpbml0aWFsVHJlZVsyXVxuICAgIH1cblxuICAgIGlmIChpbml0aWFsVHJlZVszXSkge1xuICAgICAgdHJlZVszXSA9IGluaXRpYWxUcmVlWzNdXG4gICAgfVxuXG4gICAgaWYgKGluaXRpYWxUcmVlWzRdKSB7XG4gICAgICB0cmVlWzRdID0gaW5pdGlhbFRyZWVbNF1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJlZVxuICB9XG5cbiAgcmV0dXJuIHBhdGNoVHJlZVxufVxuXG4vKipcbiAqIEFwcGx5IHRoZSByb3V0ZXIgc3RhdGUgZnJvbSB0aGUgRmxpZ2h0IHJlc3BvbnNlLCBidXQgc2tpcCBwYXRjaGluZyBkZWZhdWx0IHNlZ21lbnRzLlxuICogVXNlZnVsIGZvciBwYXRjaGluZyB0aGUgcm91dGVyIGNhY2hlIHdoZW4gbmF2aWdhdGluZywgd2hlcmUgd2UgcGVyc2lzdCB0aGUgZXhpc3RpbmcgZGVmYXVsdCBzZWdtZW50IGlmIHRoZXJlIGlzbid0IGEgbmV3IG9uZS5cbiAqIENyZWF0ZXMgYSBuZXcgcm91dGVyIHN0YXRlIHRyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUoXG4gIGZsaWdodFNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aCxcbiAgZmxpZ2h0Um91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICB0cmVlUGF0Y2g6IEZsaWdodFJvdXRlclN0YXRlLFxuICBwYXRoOiBzdHJpbmdcbik6IEZsaWdodFJvdXRlclN0YXRlIHwgbnVsbCB7XG4gIGNvbnN0IFtzZWdtZW50LCBwYXJhbGxlbFJvdXRlcywgdXJsLCByZWZldGNoLCBpc1Jvb3RMYXlvdXRdID1cbiAgICBmbGlnaHRSb3V0ZXJTdGF0ZVxuXG4gIC8vIFJvb3QgcmVmcmVzaFxuICBpZiAoZmxpZ2h0U2VnbWVudFBhdGgubGVuZ3RoID09PSAxKSB7XG4gICAgY29uc3QgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGUgPSBhcHBseVBhdGNoKGZsaWdodFJvdXRlclN0YXRlLCB0cmVlUGF0Y2gpXG5cbiAgICBhZGRSZWZyZXNoTWFya2VyVG9BY3RpdmVQYXJhbGxlbFNlZ21lbnRzKHRyZWUsIHBhdGgpXG5cbiAgICByZXR1cm4gdHJlZVxuICB9XG5cbiAgY29uc3QgW2N1cnJlbnRTZWdtZW50LCBwYXJhbGxlbFJvdXRlS2V5XSA9IGZsaWdodFNlZ21lbnRQYXRoXG5cbiAgLy8gVHJlZSBwYXRoIHJldHVybmVkIGZyb20gdGhlIHNlcnZlciBzaG91bGQgYWx3YXlzIG1hdGNoIHVwIHdpdGggdGhlIGN1cnJlbnQgdHJlZSBpbiB0aGUgYnJvd3NlclxuICBpZiAoIW1hdGNoU2VnbWVudChjdXJyZW50U2VnbWVudCwgc2VnbWVudCkpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgbGFzdFNlZ21lbnQgPSBmbGlnaHRTZWdtZW50UGF0aC5sZW5ndGggPT09IDJcblxuICBsZXQgcGFyYWxsZWxSb3V0ZVBhdGNoXG4gIGlmIChsYXN0U2VnbWVudCkge1xuICAgIHBhcmFsbGVsUm91dGVQYXRjaCA9IGFwcGx5UGF0Y2gocGFyYWxsZWxSb3V0ZXNbcGFyYWxsZWxSb3V0ZUtleV0sIHRyZWVQYXRjaClcbiAgfSBlbHNlIHtcbiAgICBwYXJhbGxlbFJvdXRlUGF0Y2ggPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUoXG4gICAgICBnZXROZXh0RmxpZ2h0U2VnbWVudFBhdGgoZmxpZ2h0U2VnbWVudFBhdGgpLFxuICAgICAgcGFyYWxsZWxSb3V0ZXNbcGFyYWxsZWxSb3V0ZUtleV0sXG4gICAgICB0cmVlUGF0Y2gsXG4gICAgICBwYXRoXG4gICAgKVxuXG4gICAgaWYgKHBhcmFsbGVsUm91dGVQYXRjaCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cblxuICBjb25zdCB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSA9IFtcbiAgICBmbGlnaHRTZWdtZW50UGF0aFswXSxcbiAgICB7XG4gICAgICAuLi5wYXJhbGxlbFJvdXRlcyxcbiAgICAgIFtwYXJhbGxlbFJvdXRlS2V5XTogcGFyYWxsZWxSb3V0ZVBhdGNoLFxuICAgIH0sXG4gICAgdXJsLFxuICAgIHJlZmV0Y2gsXG4gIF1cblxuICAvLyBDdXJyZW50IHNlZ21lbnQgaXMgdGhlIHJvb3QgbGF5b3V0XG4gIGlmIChpc1Jvb3RMYXlvdXQpIHtcbiAgICB0cmVlWzRdID0gdHJ1ZVxuICB9XG5cbiAgYWRkUmVmcmVzaE1hcmtlclRvQWN0aXZlUGFyYWxsZWxTZWdtZW50cyh0cmVlLCBwYXRoKVxuXG4gIHJldHVybiB0cmVlXG59XG4iXSwibmFtZXMiOlsiYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlIiwiYXBwbHlQYXRjaCIsImluaXRpYWxUcmVlIiwicGF0Y2hUcmVlIiwiaW5pdGlhbFNlZ21lbnQiLCJpbml0aWFsUGFyYWxsZWxSb3V0ZXMiLCJwYXRjaFNlZ21lbnQiLCJwYXRjaFBhcmFsbGVsUm91dGVzIiwiREVGQVVMVF9TRUdNRU5UX0tFWSIsIm1hdGNoU2VnbWVudCIsIm5ld1BhcmFsbGVsUm91dGVzIiwia2V5IiwiaXNJblBhdGNoVHJlZVBhcmFsbGVsUm91dGVzIiwidHJlZSIsImZsaWdodFNlZ21lbnRQYXRoIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJ0cmVlUGF0Y2giLCJwYXRoIiwic2VnbWVudCIsInBhcmFsbGVsUm91dGVzIiwidXJsIiwicmVmZXRjaCIsImlzUm9vdExheW91dCIsImxlbmd0aCIsImFkZFJlZnJlc2hNYXJrZXJUb0FjdGl2ZVBhcmFsbGVsU2VnbWVudHMiLCJjdXJyZW50U2VnbWVudCIsInBhcmFsbGVsUm91dGVLZXkiLCJsYXN0U2VnbWVudCIsInBhcmFsbGVsUm91dGVQYXRjaCIsImdldE5leHRGbGlnaHRTZWdtZW50UGF0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/clear-cache-node-data-for-segment-path.js":
/*!***********************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/clear-cache-node-data-for-segment-path.js ***!
\***********************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"clearCacheNodeDataForSegmentPath\", ({\n enumerable: true,\n get: function() {\n return clearCacheNodeDataForSegmentPath;\n }\n}));\nconst _flightdatahelpers = __webpack_require__(/*! ../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nfunction clearCacheNodeDataForSegmentPath(newCache, existingCache, flightSegmentPath) {\n const isLastEntry = flightSegmentPath.length <= 2;\n const [parallelRouteKey, segment] = flightSegmentPath;\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segment);\n const existingChildSegmentMap = existingCache.parallelRoutes.get(parallelRouteKey);\n let childSegmentMap = newCache.parallelRoutes.get(parallelRouteKey);\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap);\n newCache.parallelRoutes.set(parallelRouteKey, childSegmentMap);\n }\n const existingChildCacheNode = existingChildSegmentMap == null ? void 0 : existingChildSegmentMap.get(cacheKey);\n let childCacheNode = childSegmentMap.get(cacheKey);\n // In case of last segment start off the fetch at this level and don't copy further down.\n if (isLastEntry) {\n if (!childCacheNode || !childCacheNode.lazyData || childCacheNode === existingChildCacheNode) {\n childSegmentMap.set(cacheKey, {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1\n });\n }\n return;\n }\n if (!childCacheNode || !existingChildCacheNode) {\n // Start fetch in the place where the existing cache doesn't have the data yet.\n if (!childCacheNode) {\n childSegmentMap.set(cacheKey, {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1\n });\n }\n return;\n }\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes),\n loading: childCacheNode.loading\n };\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n return clearCacheNodeDataForSegmentPath(childCacheNode, existingChildCacheNode, (0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=clear-cache-node-data-for-segment-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NsZWFyLWNhY2hlLW5vZGUtZGF0YS1mb3Itc2VnbWVudC1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7b0VBUWdCQTs7O2VBQUFBOzs7K0NBTnlCO2tEQUNKO0FBSzlCLFNBQVNBLGlDQUNkQyxRQUFtQixFQUNuQkMsYUFBd0IsRUFDeEJDLGlCQUFvQztJQUVwQyxNQUFNQyxjQUFjRCxrQkFBa0JFLE1BQU0sSUFBSTtJQUVoRCxNQUFNLENBQUNDLGtCQUFrQkMsUUFBUSxHQUFHSjtJQUNwQyxNQUFNSyxXQUFXQyxDQUFBQSxHQUFBQSxzQkFBQUEsb0JBQUFBLEVBQXFCRjtJQUV0QyxNQUFNRywwQkFDSlIsY0FBY1MsY0FBYyxDQUFDQyxHQUFHLENBQUNOO0lBRW5DLElBQUlPLGtCQUFrQlosU0FBU1UsY0FBYyxDQUFDQyxHQUFHLENBQUNOO0lBRWxELElBQUksQ0FBQ08sbUJBQW1CQSxvQkFBb0JILHlCQUF5QjtRQUNuRUcsa0JBQWtCLElBQUlDLElBQUlKO1FBQzFCVCxTQUFTVSxjQUFjLENBQUNJLEdBQUcsQ0FBQ1Qsa0JBQWtCTztJQUNoRDtJQUVBLE1BQU1HLHlCQUF5Qk4sMkJBQUFBLE9BQUFBLEtBQUFBLElBQUFBLHdCQUF5QkUsR0FBRyxDQUFDSjtJQUM1RCxJQUFJUyxpQkFBaUJKLGdCQUFnQkQsR0FBRyxDQUFDSjtJQUV6Qyx5RkFBeUY7SUFDekYsSUFBSUosYUFBYTtRQUNmLElBQ0UsQ0FBQ2Esa0JBQ0QsQ0FBQ0EsZUFBZUMsUUFBUSxJQUN4QkQsbUJBQW1CRCx3QkFDbkI7WUFDQUgsZ0JBQWdCRSxHQUFHLENBQUNQLFVBQVU7Z0JBQzVCVSxVQUFVO2dCQUNWQyxLQUFLO2dCQUNMQyxhQUFhO2dCQUNiQyxNQUFNO2dCQUNOQyxjQUFjO2dCQUNkWCxnQkFBZ0IsSUFBSUc7Z0JBQ3BCUyxTQUFTO2dCQUNUQyxhQUFhLENBQUM7WUFDaEI7UUFDRjtRQUNBO0lBQ0Y7SUFFQSxJQUFJLENBQUNQLGtCQUFrQixDQUFDRCx3QkFBd0I7UUFDOUMsK0VBQStFO1FBQy9FLElBQUksQ0FBQ0MsZ0JBQWdCO1lBQ25CSixnQkFBZ0JFLEdBQUcsQ0FBQ1AsVUFBVTtnQkFDNUJVLFVBQVU7Z0JBQ1ZDLEtBQUs7Z0JBQ0xDLGFBQWE7Z0JBQ2JDLE1BQU07Z0JBQ05DLGNBQWM7Z0JBQ2RYLGdCQUFnQixJQUFJRztnQkFDcEJTLFNBQVM7Z0JBQ1RDLGFBQWEsQ0FBQztZQUNoQjtRQUNGO1FBQ0E7SUFDRjtJQUVBLElBQUlQLG1CQUFtQkQsd0JBQXdCO1FBQzdDQyxpQkFBaUI7WUFDZkMsVUFBVUQsZUFBZUMsUUFBUTtZQUNqQ0MsS0FBS0YsZUFBZUUsR0FBRztZQUN2QkMsYUFBYUgsZUFBZUcsV0FBVztZQUN2Q0MsTUFBTUosZUFBZUksSUFBSTtZQUN6QkMsY0FBY0wsZUFBZUssWUFBWTtZQUN6Q1gsZ0JBQWdCLElBQUlHLElBQUlHLGVBQWVOLGNBQWM7WUFDckRZLFNBQVNOLGVBQWVNLE9BQU87UUFDakM7UUFDQVYsZ0JBQWdCRSxHQUFHLENBQUNQLFVBQVVTO0lBQ2hDO0lBRUEsT0FBT2pCLGlDQUNMaUIsZ0JBQ0FELHdCQUNBUyxDQUFBQSxHQUFBQSxtQkFBQUEsd0JBQUFBLEVBQXlCdEI7QUFFN0IiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9jbGVhci1jYWNoZS1ub2RlLWRhdGEtZm9yLXNlZ21lbnQtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZsaWdodFNlZ21lbnRQYXRoIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoIH0gZnJvbSAnLi4vLi4vZmxpZ2h0LWRhdGEtaGVscGVycydcbmltcG9ydCB7IGNyZWF0ZVJvdXRlckNhY2hlS2V5IH0gZnJvbSAnLi9jcmVhdGUtcm91dGVyLWNhY2hlLWtleSdcblxuLyoqXG4gKiBUaGlzIHdpbGwgY2xlYXIgdGhlIENhY2hlTm9kZSBkYXRhIGZvciBhIHBhcnRpY3VsYXIgc2VnbWVudCBwYXRoLiBUaGlzIHdpbGwgY2F1c2UgYSBsYXp5LWZldGNoIGluIGxheW91dCByb3V0ZXIgdG8gZmlsbCBpbiBuZXcgZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQ2FjaGVOb2RlRGF0YUZvclNlZ21lbnRQYXRoKFxuICBuZXdDYWNoZTogQ2FjaGVOb2RlLFxuICBleGlzdGluZ0NhY2hlOiBDYWNoZU5vZGUsXG4gIGZsaWdodFNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aFxuKTogdm9pZCB7XG4gIGNvbnN0IGlzTGFzdEVudHJ5ID0gZmxpZ2h0U2VnbWVudFBhdGgubGVuZ3RoIDw9IDJcblxuICBjb25zdCBbcGFyYWxsZWxSb3V0ZUtleSwgc2VnbWVudF0gPSBmbGlnaHRTZWdtZW50UGF0aFxuICBjb25zdCBjYWNoZUtleSA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KHNlZ21lbnQpXG5cbiAgY29uc3QgZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXAgPVxuICAgIGV4aXN0aW5nQ2FjaGUucGFyYWxsZWxSb3V0ZXMuZ2V0KHBhcmFsbGVsUm91dGVLZXkpXG5cbiAgbGV0IGNoaWxkU2VnbWVudE1hcCA9IG5ld0NhY2hlLnBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlS2V5KVxuXG4gIGlmICghY2hpbGRTZWdtZW50TWFwIHx8IGNoaWxkU2VnbWVudE1hcCA9PT0gZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXApIHtcbiAgICBjaGlsZFNlZ21lbnRNYXAgPSBuZXcgTWFwKGV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwKVxuICAgIG5ld0NhY2hlLnBhcmFsbGVsUm91dGVzLnNldChwYXJhbGxlbFJvdXRlS2V5LCBjaGlsZFNlZ21lbnRNYXApXG4gIH1cblxuICBjb25zdCBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlID0gZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXA/LmdldChjYWNoZUtleSlcbiAgbGV0IGNoaWxkQ2FjaGVOb2RlID0gY2hpbGRTZWdtZW50TWFwLmdldChjYWNoZUtleSlcblxuICAvLyBJbiBjYXNlIG9mIGxhc3Qgc2VnbWVudCBzdGFydCBvZmYgdGhlIGZldGNoIGF0IHRoaXMgbGV2ZWwgYW5kIGRvbid0IGNvcHkgZnVydGhlciBkb3duLlxuICBpZiAoaXNMYXN0RW50cnkpIHtcbiAgICBpZiAoXG4gICAgICAhY2hpbGRDYWNoZU5vZGUgfHxcbiAgICAgICFjaGlsZENhY2hlTm9kZS5sYXp5RGF0YSB8fFxuICAgICAgY2hpbGRDYWNoZU5vZGUgPT09IGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGVcbiAgICApIHtcbiAgICAgIGNoaWxkU2VnbWVudE1hcC5zZXQoY2FjaGVLZXksIHtcbiAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgIHJzYzogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgIGhlYWQ6IG51bGwsXG4gICAgICAgIHByZWZldGNoSGVhZDogbnVsbCxcbiAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKSxcbiAgICAgICAgbG9hZGluZzogbnVsbCxcbiAgICAgICAgbmF2aWdhdGVkQXQ6IC0xLFxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoIWNoaWxkQ2FjaGVOb2RlIHx8ICFleGlzdGluZ0NoaWxkQ2FjaGVOb2RlKSB7XG4gICAgLy8gU3RhcnQgZmV0Y2ggaW4gdGhlIHBsYWNlIHdoZXJlIHRoZSBleGlzdGluZyBjYWNoZSBkb2Vzbid0IGhhdmUgdGhlIGRhdGEgeWV0LlxuICAgIGlmICghY2hpbGRDYWNoZU5vZGUpIHtcbiAgICAgIGNoaWxkU2VnbWVudE1hcC5zZXQoY2FjaGVLZXksIHtcbiAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgIHJzYzogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgIGhlYWQ6IG51bGwsXG4gICAgICAgIHByZWZldGNoSGVhZDogbnVsbCxcbiAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoKSxcbiAgICAgICAgbG9hZGluZzogbnVsbCxcbiAgICAgICAgbmF2aWdhdGVkQXQ6IC0xLFxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoY2hpbGRDYWNoZU5vZGUgPT09IGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUpIHtcbiAgICBjaGlsZENhY2hlTm9kZSA9IHtcbiAgICAgIGxhenlEYXRhOiBjaGlsZENhY2hlTm9kZS5sYXp5RGF0YSxcbiAgICAgIHJzYzogY2hpbGRDYWNoZU5vZGUucnNjLFxuICAgICAgcHJlZmV0Y2hSc2M6IGNoaWxkQ2FjaGVOb2RlLnByZWZldGNoUnNjLFxuICAgICAgaGVhZDogY2hpbGRDYWNoZU5vZGUuaGVhZCxcbiAgICAgIHByZWZldGNoSGVhZDogY2hpbGRDYWNoZU5vZGUucHJlZmV0Y2hIZWFkLFxuICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoY2hpbGRDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXMpLFxuICAgICAgbG9hZGluZzogY2hpbGRDYWNoZU5vZGUubG9hZGluZyxcbiAgICB9IGFzIENhY2hlTm9kZVxuICAgIGNoaWxkU2VnbWVudE1hcC5zZXQoY2FjaGVLZXksIGNoaWxkQ2FjaGVOb2RlKVxuICB9XG5cbiAgcmV0dXJuIGNsZWFyQ2FjaGVOb2RlRGF0YUZvclNlZ21lbnRQYXRoKFxuICAgIGNoaWxkQ2FjaGVOb2RlLFxuICAgIGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUsXG4gICAgZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoKGZsaWdodFNlZ21lbnRQYXRoKVxuICApXG59XG4iXSwibmFtZXMiOlsiY2xlYXJDYWNoZU5vZGVEYXRhRm9yU2VnbWVudFBhdGgiLCJuZXdDYWNoZSIsImV4aXN0aW5nQ2FjaGUiLCJmbGlnaHRTZWdtZW50UGF0aCIsImlzTGFzdEVudHJ5IiwibGVuZ3RoIiwicGFyYWxsZWxSb3V0ZUtleSIsInNlZ21lbnQiLCJjYWNoZUtleSIsImNyZWF0ZVJvdXRlckNhY2hlS2V5IiwiZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXAiLCJwYXJhbGxlbFJvdXRlcyIsImdldCIsImNoaWxkU2VnbWVudE1hcCIsIk1hcCIsInNldCIsImV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUiLCJjaGlsZENhY2hlTm9kZSIsImxhenlEYXRhIiwicnNjIiwicHJlZmV0Y2hSc2MiLCJoZWFkIiwicHJlZmV0Y2hIZWFkIiwibG9hZGluZyIsIm5hdmlnYXRlZEF0IiwiZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/clear-cache-node-data-for-segment-path.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js ***!
\*****************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n computeChangedPath: function() {\n return computeChangedPath;\n },\n extractPathFromFlightRouterState: function() {\n return extractPathFromFlightRouterState;\n },\n getSelectedParams: function() {\n return getSelectedParams;\n }\n});\nconst _interceptionroutes = __webpack_require__(/*! ../../../shared/lib/router/utils/interception-routes */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _matchsegments = __webpack_require__(/*! ../match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\nconst removeLeadingSlash = (segment)=>{\n return segment[0] === '/' ? segment.slice(1) : segment;\n};\nconst segmentToPathname = (segment)=>{\n if (typeof segment === 'string') {\n // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page\n // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense.\n if (segment === 'children') return '';\n return segment;\n }\n return segment[1];\n};\nfunction normalizeSegments(segments) {\n return segments.reduce((acc, segment)=>{\n segment = removeLeadingSlash(segment);\n if (segment === '' || (0, _segment.isGroupSegment)(segment)) {\n return acc;\n }\n return acc + \"/\" + segment;\n }, '') || '/';\n}\nfunction extractPathFromFlightRouterState(flightRouterState) {\n const segment = Array.isArray(flightRouterState[0]) ? flightRouterState[0][1] : flightRouterState[0];\n if (segment === _segment.DEFAULT_SEGMENT_KEY || _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m))) return undefined;\n if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) return '';\n const segments = [\n segmentToPathname(segment)\n ];\n var _flightRouterState_;\n const parallelRoutes = (_flightRouterState_ = flightRouterState[1]) != null ? _flightRouterState_ : {};\n const childrenPath = parallelRoutes.children ? extractPathFromFlightRouterState(parallelRoutes.children) : undefined;\n if (childrenPath !== undefined) {\n segments.push(childrenPath);\n } else {\n for (const [key, value] of Object.entries(parallelRoutes)){\n if (key === 'children') continue;\n const childPath = extractPathFromFlightRouterState(value);\n if (childPath !== undefined) {\n segments.push(childPath);\n }\n }\n }\n return normalizeSegments(segments);\n}\nfunction computeChangedPathImpl(treeA, treeB) {\n const [segmentA, parallelRoutesA] = treeA;\n const [segmentB, parallelRoutesB] = treeB;\n const normalizedSegmentA = segmentToPathname(segmentA);\n const normalizedSegmentB = segmentToPathname(segmentB);\n if (_interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m))) {\n return '';\n }\n if (!(0, _matchsegments.matchSegment)(segmentA, segmentB)) {\n var _extractPathFromFlightRouterState;\n // once we find where the tree changed, we compute the rest of the path by traversing the tree\n return (_extractPathFromFlightRouterState = extractPathFromFlightRouterState(treeB)) != null ? _extractPathFromFlightRouterState : '';\n }\n for(const parallelRouterKey in parallelRoutesA){\n if (parallelRoutesB[parallelRouterKey]) {\n const changedPath = computeChangedPathImpl(parallelRoutesA[parallelRouterKey], parallelRoutesB[parallelRouterKey]);\n if (changedPath !== null) {\n return segmentToPathname(segmentB) + \"/\" + changedPath;\n }\n }\n }\n return null;\n}\nfunction computeChangedPath(treeA, treeB) {\n const changedPath = computeChangedPathImpl(treeA, treeB);\n if (changedPath == null || changedPath === '/') {\n return changedPath;\n }\n // lightweight normalization to remove route groups\n return normalizeSegments(changedPath.split('/'));\n}\nfunction getSelectedParams(currentTree, params) {\n if (params === void 0) params = {};\n const parallelRoutes = currentTree[1];\n for (const parallelRoute of Object.values(parallelRoutes)){\n const segment = parallelRoute[0];\n const isDynamicParameter = Array.isArray(segment);\n const segmentValue = isDynamicParameter ? segment[1] : segment;\n if (!segmentValue || segmentValue.startsWith(_segment.PAGE_SEGMENT_KEY)) continue;\n // Ensure catchAll and optional catchall are turned into an array\n const isCatchAll = isDynamicParameter && (segment[2] === 'c' || segment[2] === 'oc');\n if (isCatchAll) {\n params[segment[0]] = segment[1].split('/');\n } else if (isDynamicParameter) {\n params[segment[0]] = segment[1];\n }\n params = getSelectedParams(parallelRoute, params);\n }\n return params;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=compute-changed-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NvbXB1dGUtY2hhbmdlZC1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXdIZ0JBLGtCQUFrQjtlQUFsQkE7O0lBOUVBQyxnQ0FBZ0M7ZUFBaENBOztJQStGQUMsaUJBQWlCO2VBQWpCQTs7O2dEQXJJMkI7cUNBTXBDOzJDQUNzQjtBQUU3QixNQUFNQyxxQkFBcUIsQ0FBQ0M7SUFDMUIsT0FBT0EsT0FBTyxDQUFDLEVBQUUsS0FBSyxNQUFNQSxRQUFRQyxLQUFLLENBQUMsS0FBS0Q7QUFDakQ7QUFFQSxNQUFNRSxvQkFBb0IsQ0FBQ0Y7SUFDekIsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsdUhBQXVIO1FBQ3ZILGdIQUFnSDtRQUNoSCxJQUFJQSxZQUFZLFlBQVksT0FBTztRQUVuQyxPQUFPQTtJQUNUO0lBRUEsT0FBT0EsT0FBTyxDQUFDLEVBQUU7QUFDbkI7QUFFQSxTQUFTRyxrQkFBa0JDLFFBQWtCO0lBQzNDLE9BQ0VBLFNBQVNDLE1BQU0sQ0FBQyxDQUFDQyxLQUFLTjtRQUNwQkEsVUFBVUQsbUJBQW1CQztRQUM3QixJQUFJQSxZQUFZLE1BQU1PLENBQUFBLEdBQUFBLFNBQUFBLGNBQUFBLEVBQWVQLFVBQVU7WUFDN0MsT0FBT007UUFDVDtRQUVBLE9BQVVBLE1BQUksTUFBR047SUFDbkIsR0FBRyxPQUFPO0FBRWQ7QUFFTyxTQUFTSCxpQ0FDZFcsaUJBQW9DO0lBRXBDLE1BQU1SLFVBQVVTLE1BQU1DLE9BQU8sQ0FBQ0YsaUJBQWlCLENBQUMsRUFBRSxJQUM5Q0EsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FDdkJBLGlCQUFpQixDQUFDLEVBQUU7SUFFeEIsSUFDRVIsWUFBWVcsU0FBQUEsbUJBQW1CLElBQy9CQyxvQkFBQUEsMEJBQTBCLENBQUNDLElBQUksQ0FBQyxDQUFDQyxJQUFNZCxRQUFRZSxVQUFVLENB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QUc7UUFFakUsSUFBSThDLFlBQVk7WUFDZEwsTUFBTSxDQUFDekMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHQSxPQUFPLENBQUMsRUFBRSxDQUFDdUMsS0FBSyxDQUFDO1FBQ3hDLE9BQU8sSUFBSUssb0JBQW9CO1lBQzdCSCxNQUFNLENBQUN6QyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUdBLE9BQU8sQ0FBQyxFQUFFO1FBQ2pDO1FBRUF5QyxTQUFTM0Msa0JBQWtCNEMsZUFBZUQ7SUFDNUM7SUFFQSxPQUFPQTtBQUNUIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY29tcHV0ZS1jaGFuZ2VkLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgU2VnbWVudCxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgeyBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcbmltcG9ydCB7XG4gIGlzR3JvdXBTZWdtZW50LFxuICBERUZBVUxUX1NFR01FTlRfS0VZLFxuICBQQUdFX1NFR01FTlRfS0VZLFxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5pbXBvcnQgeyBtYXRjaFNlZ21lbnQgfSBmcm9tICcuLi9tYXRjaC1zZWdtZW50cydcblxuY29uc3QgcmVtb3ZlTGVhZGluZ1NsYXNoID0gKHNlZ21lbnQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnLycgPyBzZWdtZW50LnNsaWNlKDEpIDogc2VnbWVudFxufVxuXG5jb25zdCBzZWdtZW50VG9QYXRobmFtZSA9IChzZWdtZW50OiBTZWdtZW50KTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIC8vICdjaGlsZHJlbicgaXMgbm90IGEgdmFsaWQgcGF0aCAtLSBpdCdzIHRlY2huaWNhbGx5IGEgcGFyYWxsZWwgcm91dGUgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBjdXJyZW50IHNlZ21lbnQncyBwYWdlXG4gICAgLy8gaWYgd2UgZG9uJ3Qgc2tpcCBpdCwgdGhlbiB0aGUgY29tcHV0ZWQgcGF0aG5hbWUgbWlnaHQgYmUgc29tZXRoaW5nIGxpa2UgYC9jaGlsZHJlbmAgd2hpY2ggZG9lc24ndCBtYWtlIHNlbnNlLlxuICAgIGlmIChzZWdtZW50ID09PSAnY2hpbGRyZW4nKSByZXR1cm4gJydcblxuICAgIHJldHVybiBzZWdtZW50XG4gIH1cblxuICByZXR1cm4gc2VnbWVudFsxXVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVTZWdtZW50cyhzZWdtZW50czogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgIHNlZ21lbnRzLnJlZHVjZSgoYWNjLCBzZWdtZW50KSA9PiB7XG4gICAgICBzZWdtZW50ID0gcmVtb3ZlTGVhZGluZ1NsYXNoKHNlZ21lbnQpXG4gICAgICBpZiAoc2VnbWVudCA9PT0gJycgfHwgaXNHcm91cFNlZ21lbnQoc2VnbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7YWNjfS8ke3NlZ21lbnR9YFxuICAgIH0sICcnKSB8fCAnLydcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUoXG4gIGZsaWdodFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc2VnbWVudCA9IEFycmF5LmlzQXJyYXkoZmxpZ2h0Um91dGVyU3RhdGVbMF0pXG4gICAgPyBmbGlnaHRSb3V0ZXJTdGF0ZVswXVsxXVxuICAgIDogZmxpZ2h0Um91dGVyU3RhdGVbMF1cblxuICBpZiAoXG4gICAgc2VnbWVudCA9PT0gREVGQVVMVF9TRUdNRU5UX0tFWSB8fFxuICAgIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoKG0pID0+IHNlZ21lbnQuc3RhcnRzV2l0aChtKSlcbiAgKVxuICAgIHJldHVybiB1bmRlZmluZWRcblxuICBpZiAoc2VnbWVudC5zdGFydHNXaXRoKFBBR0VfU0VHTUVOVF9LRVkpKSByZXR1cm4gJydcblxuICBjb25zdCBzZWdtZW50cyA9IFtzZWdtZW50VG9QYXRobmFtZShzZWdtZW50KV1cbiAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSBmbGlnaHRSb3V0ZXJTdGF0ZVsxXSA/PyB7fVxuXG4gIGNvbnN0IGNoaWxkcmVuUGF0aCA9IHBhcmFsbGVsUm91dGVzLmNoaWxkcmVuXG4gICAgPyBleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZShwYXJhbGxlbFJvdXRlcy5jaGlsZHJlbilcbiAgICA6IHVuZGVmaW5lZFxuXG4gIGlmIChjaGlsZHJlblBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgIHNlZ21lbnRzLnB1c2goY2hpbGRyZW5QYXRoKVxuICB9IGVsc2Uge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhcmFsbGVsUm91dGVzKSkge1xuICAgICAgaWYgKGtleSA9PT0gJ2NoaWxkcmVuJykgY29udGludWVcblxuICAgICAgY29uc3QgY2hpbGRQYXRoID0gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUodmFsdWUpXG5cbiAgICAgIGlmIChjaGlsZFBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzZWdtZW50cy5wdXNoKGNoaWxkUGF0aClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbm9ybWFsaXplU2VnbWVudHMoc2VnbWVudHMpXG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVDaGFuZ2VkUGF0aEltcGwoXG4gIHRyZWVBOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgdHJlZUI6IEZsaWdodFJvdXRlclN0YXRlXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgW3NlZ21lbnRBLCBwYXJhbGxlbFJvdXRlc0FdID0gdHJlZUFcbiAgY29uc3QgW3NlZ21lbnRCLCBwYXJhbGxlbFJvdXRlc0JdID0gdHJlZUJcblxuICBjb25zdCBub3JtYWxpemVkU2VnbWVudEEgPSBzZWdtZW50VG9QYXRobmFtZShzZWdtZW50QSlcbiAgY29uc3Qgbm9ybWFsaXplZFNlZ21lbnRCID0gc2VnbWVudFRvUGF0aG5hbWUoc2VnbWVudEIpXG5cbiAgaWYgKFxuICAgIElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoXG4gICAgICAobSkgPT5cbiAgICAgICAgbm9ybWFsaXplZFNlZ21lbnRBLnN0YXJ0c1dpdGgobSkgfHwgbm9ybWFsaXplZFNlZ21lbnRCLnN0YXJ0c1dpdGgobSlcbiAgICApXG4gICkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKCFtYXRjaFNlZ21lbnQoc2VnbWVudEEsIHNlZ21lbnRCKSkge1xuICAgIC8vIG9uY2Ugd2UgZmluZCB3aGVyZSB0aGUgdHJlZSBjaGFuZ2VkLCB3ZSBjb21wdXRlIHRoZSByZXN0IG9mIHRoZSBwYXRoIGJ5IHRyYXZlcnNpbmcgdGhlIHRyZWVcbiAgICByZXR1cm4gZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUodHJlZUIpID8/ICcnXG4gIH1cblxuICBmb3IgKGNvbnN0IHBhcmFsbGVsUm91dGVyS2V5IGluIHBhcmFsbGVsUm91dGVzQSkge1xuICAgIGlmIChwYXJhbGxlbFJvdXRlc0JbcGFyYWxsZWxSb3V0ZXJLZXldKSB7XG4gICAgICBjb25zdCBjaGFuZ2VkUGF0aCA9IGNvbXB1dGVDaGFuZ2VkUGF0aEltcGwoXG4gICAgICAgIHBhcmFsbGVsUm91dGVzQVtwYXJhbGxlbFJvdXRlcktleV0sXG4gICAgICAgIHBhcmFsbGVsUm91dGVzQltwYXJhbGxlbFJvdXRlcktleV1cbiAgICAgIClcbiAgICAgIGlmIChjaGFuZ2VkUGF0aCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gYCR7c2VnbWVudFRvUGF0aG5hbWUoc2VnbWVudEIpfS8ke2NoYW5nZWRQYXRofWBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUNoYW5nZWRQYXRoKFxuICB0cmVlQTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHRyZWVCOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGNoYW5nZWRQYXRoID0gY29tcHV0ZUNoYW5nZWRQYXRoSW1wbCh0cmVlQSwgdHJlZUIpXG5cbiAgaWYgKGNoYW5nZWRQYXRoID09IG51bGwgfHwgY2hhbmdlZFBhdGggPT09ICcvJykge1xuICAgIHJldHVybiBjaGFuZ2VkUGF0aFxuICB9XG5cbiAgLy8gbGlnaHR3ZWlnaHQgbm9ybWFsaXphdGlvbiB0byByZW1vdmUgcm91dGUgZ3JvdXBzXG4gIHJldHVybiBub3JtYWxpemVTZWdtZW50cyhjaGFuZ2VkUGF0aC5zcGxpdCgnLycpKVxufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGV4dHJhY3RzIGR5bmFtaWMgcGFyYW1ldGVycyBmcm9tIEZsaWdodFJvdXRlclN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0ZWRQYXJhbXMoXG4gIGN1cnJlbnRUcmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgcGFyYW1zOiBQYXJhbXMgPSB7fVxuKTogUGFyYW1zIHtcbiAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSBjdXJyZW50VHJlZVsxXVxuXG4gIGZvciAoY29uc3QgcGFyYWxsZWxSb3V0ZSBvZiBPYmplY3QudmFsdWVzKHBhcmFsbGVsUm91dGVzKSkge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBwYXJhbGxlbFJvdXRlWzBdXG4gICAgY29uc3QgaXNEeW5hbWljUGFyYW1ldGVyID0gQXJyYXkuaXNBcnJheShzZWdtZW50KVxuICAgIGNvbnN0IHNlZ21lbnRWYWx1ZSA9IGlzRHluYW1pY1BhcmFtZXRlciA/IHNlZ21lbnRbMV0gOiBzZWdtZW50XG4gICAgaWYgKCFzZWdtZW50VmFsdWUgfHwgc2VnbWVudFZhbHVlLnN0YXJ0c1dpdGgoUEFHRV9TRUdNRU5UX0tFWSkpIGNvbnRpbnVlXG5cbiAgICAvLyBFbnN1cmUgY2F0Y2hBbGwgYW5kIG9wdGlvbmFsIGNhdGNoYWxsIGFyZSB0dXJuZWQgaW50byBhbiBhcnJheVxuICAgIGNvbnN0IGlzQ2F0Y2hBbGwgPVxuICAgICAgaXNEeW5hbWljUGFyYW1ldGVyICYmIChzZWdtZW50WzJdID09PSAnYycgfHwgc2VnbWVudFsyXSA9PT0gJ29jJylcblxuICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICBwYXJhbXNbc2VnbWVudFswXV0gPSBzZWdtZW50WzFdLnNwbGl0KCcvJylcbiAgICB9IGVsc2UgaWYgKGlzRHluYW1pY1BhcmFtZXRlcikge1xuICAgICAgcGFyYW1zW3NlZ21lbnRbMF1dID0gc2VnbWVudFsxXVxuICAgIH1cblxuICAgIHBhcmFtcyA9IGdldFNlbGVjdGVkUGFyYW1zKHBhcmFsbGVsUm91dGUsIHBhcmFtcylcbiAgfVxuXG4gIHJldHVybiBwYXJhbXNcbn1cbiJdLCJuYW1lcyI6WyJjb21wdXRlQ2hhbmdlZFBhdGgiLCJleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSIsImdldFNlbGVjdGVkUGFyYW1zIiwicmVtb3ZlTGVhZGluZ1NsYXNoIiwic2VnbWVudCIsInNsaWNlIiwic2VnbWVudFRvUGF0aG5hbWUiLCJub3JtYWxpemVTZWdtZW50cyIsInNlZ21lbnRzIiwicmVkdWNlIiwiYWNjIiwiaXNHcm91cFNlZ21lbnQiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIkFycmF5IiwiaXNBcnJheSIsIkRFRkFVTFRfU0VHTUVOVF9LRVkiLCJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsInNvbWUiLCJtIiwic3RhcnRzV2l0aCIsInVuZGVmaW5lZCIsIlBBR0VfU0VHTUVOVF9LRVkiLCJwYXJhbGxlbFJvdXRlcyIsImNoaWxkcmVuUGF0aCIsImNoaWxkcmVuIiwicHVzaCIsImtleSIsInZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyIsImNoaWxkUGF0aCIsImNvbXB1dGVDaGFuZ2VkUGF0aEltcGwiLCJ0cmVlQSIsInRyZWVCIiwic2VnbWVudEEiLCJwYXJhbGxlbFJvdXRlc0EiLCJzZWdtZW50QiIsInBhcmFsbGVsUm91dGVzQiIsIm5vcm1hbGl6ZWRTZWdtZW50QSIsIm5vcm1hbGl6ZWRTZWdtZW50QiIsIm1hdGNoU2VnbWVudCIsInBhcmFsbGVsUm91dGVyS2V5IiwiY2hhbmdlZFBhdGgiLCJzcGxpdCIsImN1cnJlbnRUcmVlIiwicGFyYW1zIiwicGFyYWxsZWxSb3V0ZSIsInZhbHVlcyIsImlzRHluYW1pY1BhcmFtZXRlciIsInNlZ21lbnRWYWx1ZSIsImlzQ2F0Y2hBbGwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js ***!
\*****************************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createHrefFromUrl\", ({\n enumerable: true,\n get: function() {\n return createHrefFromUrl;\n }\n}));\nfunction createHrefFromUrl(url, includeHash) {\n if (includeHash === void 0) includeHash = true;\n return url.pathname + url.search + (includeHash ? url.hash : '');\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=create-href-from-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1ocmVmLWZyb20tdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBQWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxrQkFDZEMsR0FBOEMsRUFDOUNDLFdBQTJCO0lBQTNCQSxJQUFBQSxnQkFBQUEsS0FBQUEsR0FBQUEsY0FBdUI7SUFFdkIsT0FBT0QsSUFBSUUsUUFBUSxHQUFHRixJQUFJRyxNQUFNLEdBQUlGLENBQUFBLGNBQWNELElBQUlJLElBQUksR0FBRyxHQUFDO0FBQ2hFIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvY3JlYXRlLWhyZWYtZnJvbS11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhyZWZGcm9tVXJsKFxuICB1cmw6IFBpY2s8VVJMLCAncGF0aG5hbWUnIHwgJ3NlYXJjaCcgfCAnaGFzaCc+LFxuICBpbmNsdWRlSGFzaDogYm9vbGVhbiA9IHRydWVcbik6IHN0cmluZyB7XG4gIHJldHVybiB1cmwucGF0aG5hbWUgKyB1cmwuc2VhcmNoICsgKGluY2x1ZGVIYXNoID8gdXJsLmhhc2ggOiAnJylcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVIcmVmRnJvbVVybCIsInVybCIsImluY2x1ZGVIYXNoIiwicGF0aG5hbWUiLCJzZWFyY2giLCJoYXNoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js":
/*!********************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js ***!
\********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createRouterCacheKey\", ({\n enumerable: true,\n get: function() {\n return createRouterCacheKey;\n }\n}));\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction createRouterCacheKey(segment, withoutSearchParameters) {\n if (withoutSearchParameters === void 0) withoutSearchParameters = false;\n // if the segment is an array, it means it's a dynamic segment\n // for example, ['lang', 'en', 'd']. We need to convert it to a string to store it as a cache node key.\n if (Array.isArray(segment)) {\n return segment[0] + \"|\" + segment[1] + \"|\" + segment[2];\n }\n // Page segments might have search parameters, ie __PAGE__?foo=bar\n // When `withoutSearchParameters` is true, we only want to return the page segment\n if (withoutSearchParameters && segment.startsWith(_segment.PAGE_SEGMENT_KEY)) {\n return _segment.PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=create-router-cache-key.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5LmpzIiwibWFwcGluZ3MiOiI7Ozs7d0RBR2dCQTs7O2VBQUFBOzs7cUNBRmlCO0FBRTFCLFNBQVNBLHFCQUNkQyxPQUFnQixFQUNoQkMsdUJBQXdDO0lBQXhDQSxJQUFBQSw0QkFBQUEsS0FBQUEsR0FBQUEsMEJBQW1DO0lBRW5DLDhEQUE4RDtJQUM5RCx1R0FBdUc7SUFDdkcsSUFBSUMsTUFBTUMsT0FBTyxDQUFDSCxVQUFVO1FBQzFCLE9BQVVBLE9BQU8sQ0FBQyxFQUFFLEdBQUMsTUFBR0EsT0FBTyxDQUFDLEVBQUUsR0FBQyxNQUFHQSxPQUFPLENBQUMsRUFBRTtJQUNsRDtJQUVBLGtFQUFrRTtJQUNsRSxrRkFBa0Y7SUFDbEYsSUFBSUMsMkJBQTJCRCxRQUFRSSxVQUFVLENBQUNDLFNBQUFBLGdCQUFnQixHQUFHO1FBQ25FLE9BQU9BLFNBQUFBLGdCQUFnQjtJQUN6QjtJQUVBLE9BQU9MO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9jcmVhdGUtcm91dGVyLWNhY2hlLWtleS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7IFBBR0VfU0VHTUVOVF9LRVkgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSb3V0ZXJDYWNoZUtleShcbiAgc2VnbWVudDogU2VnbWVudCxcbiAgd2l0aG91dFNlYXJjaFBhcmFtZXRlcnM6IGJvb2xlYW4gPSBmYWxzZVxuKSB7XG4gIC8vIGlmIHRoZSBzZWdtZW50IGlzIGFuIGFycmF5LCBpdCBtZWFucyBpdCdzIGEgZHluYW1pYyBzZWdtZW50XG4gIC8vIGZvciBleGFtcGxlLCBbJ2xhbmcnLCAnZW4nLCAnZCddLiBXZSBuZWVkIHRvIGNvbnZlcnQgaXQgdG8gYSBzdHJpbmcgdG8gc3RvcmUgaXQgYXMgYSBjYWNoZSBub2RlIGtleS5cbiAgaWYgKEFycmF5LmlzQXJyYXkoc2VnbWVudCkpIHtcbiAgICByZXR1cm4gYCR7c2VnbWVudFswXX18JHtzZWdtZW50WzFdfXwke3NlZ21lbnRbMl19YFxuICB9XG5cbiAgLy8gUGFnZSBzZWdtZW50cyBtaWdodCBoYXZlIHNlYXJjaCBwYXJhbWV0ZXJzLCBpZSBfX1BBR0VfXz9mb289YmFyXG4gIC8vIFdoZW4gYHdpdGhvdXRTZWFyY2hQYXJhbWV0ZXJzYCBpcyB0cnVlLCB3ZSBvbmx5IHdhbnQgdG8gcmV0dXJuIHRoZSBwYWdlIHNlZ21lbnRcbiAgaWYgKHdpdGhvdXRTZWFyY2hQYXJhbWV0ZXJzICYmIHNlZ21lbnQuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZKSkge1xuICAgIHJldHVybiBQQUdFX1NFR01FTlRfS0VZXG4gIH1cblxuICByZXR1cm4gc2VnbWVudFxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJvdXRlckNhY2hlS2V5Iiwic2VnbWVudCIsIndpdGhvdXRTZWFyY2hQYXJhbWV0ZXJzIiwiQXJyYXkiLCJpc0FycmF5Iiwic3RhcnRzV2l0aCIsIlBBR0VfU0VHTUVOVF9LRVkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js":
/*!******************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js ***!
\******************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createFetch: function() {\n return createFetch;\n },\n createFromNextReadableStream: function() {\n return createFromNextReadableStream;\n },\n fetchServerResponse: function() {\n return fetchServerResponse;\n },\n urlToUrlWithoutFlightMarker: function() {\n return urlToUrlWithoutFlightMarker;\n }\n});\nconst _client = __webpack_require__(/*! react-server-dom-webpack/client */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js\");\nconst _approuterheaders = __webpack_require__(/*! ../app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _appcallserver = __webpack_require__(/*! ../../app-call-server */ \"(ssr)/./node_modules/next/dist/client/app-call-server.js\");\nconst _appfindsourcemapurl = __webpack_require__(/*! ../../app-find-source-map-url */ \"(ssr)/./node_modules/next/dist/client/app-find-source-map-url.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _flightdatahelpers = __webpack_require__(/*! ../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nconst _appbuildid = __webpack_require__(/*! ../../app-build-id */ \"(ssr)/./node_modules/next/dist/client/app-build-id.js\");\nconst _setcachebustingsearchparam = __webpack_require__(/*! ./set-cache-busting-search-param */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js\");\nconst createFromReadableStream = _client.createFromReadableStream;\nfunction urlToUrlWithoutFlightMarker(url) {\n const urlWithoutFlightParameters = new URL(url, location.origin);\n urlWithoutFlightParameters.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY);\n if (false) {}\n return urlWithoutFlightParameters;\n}\nfunction doMpaNavigation(url) {\n return {\n flightData: urlToUrlWithoutFlightMarker(url).toString(),\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n staleTime: -1\n };\n}\nlet abortController = new AbortController();\nif (false) {}\nasync function fetchServerResponse(url, options) {\n const { flightRouterState, nextUrl, prefetchKind } = options;\n const headers = {\n // Enable flight response\n [_approuterheaders.RSC_HEADER]: '1',\n // Provide the current router state\n [_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER]: (0, _flightdatahelpers.prepareFlightRouterStateForRequest)(flightRouterState, options.isHmrRefresh)\n };\n /**\n * Three cases:\n * - `prefetchKind` is `undefined`, it means it's a normal navigation, so we want to prefetch the page data fully\n * - `prefetchKind` is `full` - we want to prefetch the whole page so same as above\n * - `prefetchKind` is `auto` - if the page is dynamic, prefetch the page data partially, if static prefetch the page data fully\n */ if (prefetchKind === _routerreducertypes.PrefetchKind.AUTO) {\n headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER] = '1';\n }\n if ( true && options.isHmrRefresh) {\n headers[_approuterheaders.NEXT_HMR_REFRESH_HEADER] = '1';\n }\n if (nextUrl) {\n headers[_approuterheaders.NEXT_URL] = nextUrl;\n }\n try {\n var _res_headers_get;\n // When creating a \"temporary\" prefetch (the \"on-demand\" prefetch that gets created on navigation, if one doesn't exist)\n // we send the request with a \"high\" priority as it's in response to a user interaction that could be blocking a transition.\n // Otherwise, all other prefetches are sent with a \"low\" priority.\n // We use \"auto\" for in all other cases to match the existing default, as this function is shared outside of prefetching.\n const fetchPriority = prefetchKind ? prefetchKind === _routerreducertypes.PrefetchKind.TEMPORARY ? 'high' : 'low' : 'auto';\n if (false) {}\n const res = await createFetch(url, headers, fetchPriority, abortController.signal);\n const responseUrl = urlToUrlWithoutFlightMarker(res.url);\n const canonicalUrl = res.redirected ? responseUrl : undefined;\n const contentType = res.headers.get('content-type') || '';\n const interception = !!((_res_headers_get = res.headers.get('vary')) == null ? void 0 : _res_headers_get.includes(_approuterheaders.NEXT_URL));\n const postponed = !!res.headers.get(_approuterheaders.NEXT_DID_POSTPONE_HEADER);\n const staleTimeHeaderSeconds = res.headers.get(_approuterheaders.NEXT_ROUTER_STALE_TIME_HEADER);\n const staleTime = staleTimeHeaderSeconds !== null ? parseInt(staleTimeHeaderSeconds, 10) * 1000 : -1;\n let isFlightResponse = contentType.startsWith(_approuterheaders.RSC_CONTENT_TYPE_HEADER);\n if (false) {}\n // If fetch returns something different than flight response handle it like a mpa navigation\n // If the fetch was not 200, we also handle it like a mpa navigation\n if (!isFlightResponse || !res.ok || !res.body) {\n // in case the original URL came with a hash, preserve it before redirecting to the new URL\n if (url.hash) {\n responseUrl.hash = url.hash;\n }\n return doMpaNavigation(responseUrl.toString());\n }\n // We may navigate to a page that requires a different Webpack runtime.\n // In prod, every page will have the same Webpack runtime.\n // In dev, the Webpack runtime is minimal for each page.\n // We need to ensure the Webpack runtime is updated before executing client-side JS of the new page.\n if (true) {\n await (__webpack_require__(/*! ../../dev/hot-reloader/app/hot-reloader-app */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js\").waitForWebpackRuntimeHotUpdate)();\n }\n // Handle the `fetch` readable stream that can be unwrapped by `React.use`.\n const flightStream = postponed ? createUnclosingPrefetchStream(res.body) : res.body;\n const response = await createFromNextReadableStream(flightStream);\n if ((0, _appbuildid.getAppBuildId)() !== response.b) {\n return doMpaNavigation(res.url);\n }\n return {\n flightData: (0, _flightdatahelpers.normalizeFlightData)(response.f),\n canonicalUrl: canonicalUrl,\n couldBeIntercepted: interception,\n prerendered: response.S,\n postponed,\n staleTime\n };\n } catch (err) {\n if (!abortController.signal.aborted) {\n console.error(\"Failed to fetch RSC payload for \" + url + \". Falling back to browser navigation.\", err);\n }\n // If fetch fails handle it like a mpa navigation\n // TODO-APP: Add a test for the case where a CORS request fails, e.g. external url redirect coming from the response.\n // See https://github.com/vercel/next.js/issues/43605#issuecomment-1451617521 for a reproduction.\n return {\n flightData: url.toString(),\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n staleTime: -1\n };\n }\n}\nasync function createFetch(url, headers, fetchPriority, signal) {\n // TODO: In output: \"export\" mode, the headers do nothing. Omit them (and the\n // cache busting search param) from the request so they're\n // maximally cacheable.\n if (false) {}\n if (false) {}\n const fetchOptions = {\n // Backwards compat for older browsers. `same-origin` is the default in modern browsers.\n credentials: 'same-origin',\n headers,\n priority: fetchPriority || undefined,\n signal\n };\n // `fetchUrl` is slightly different from `url` because we add a cache-busting\n // search param to it. This should not leak outside of this function, so we\n // track them separately.\n let fetchUrl = new URL(url);\n (0, _setcachebustingsearchparam.setCacheBustingSearchParam)(fetchUrl, headers);\n let browserResponse = await fetch(fetchUrl, fetchOptions);\n // If the server responds with a redirect (e.g. 307), and the redirected\n // location does not contain the cache busting search param set in the\n // original request, the response is likely invalid — when following the\n // redirect, the browser forwards the request headers, but since the cache\n // busting search param is missing, the server will reject the request due to\n // a mismatch.\n //\n // Ideally, we would be able to intercept the redirect response and perform it\n // manually, instead of letting the browser automatically follow it, but this\n // is not allowed by the fetch API.\n //\n // So instead, we must \"replay\" the redirect by fetching the new location\n // again, but this time we'll append the cache busting search param to prevent\n // a mismatch.\n //\n // TODO: We can optimize Next.js's built-in middleware APIs by returning a\n // custom status code, to prevent the browser from automatically following it.\n //\n // This does not affect Server Action-based redirects; those are encoded\n // differently, as part of the Flight body. It only affects redirects that\n // occur in a middleware or a third-party proxy.\n let redirected = browserResponse.redirected;\n if (false) {}\n // Remove the cache busting search param from the response URL, to prevent it\n // from leaking outside of this function.\n const responseUrl = new URL(browserResponse.url, fetchUrl);\n responseUrl.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY);\n const rscResponse = {\n url: responseUrl.href,\n // This is true if any redirects occurred, either automatically by the\n // browser, or manually by us. So it's different from\n // `browserResponse.redirected`, which only tells us whether the browser\n // followed a redirect, and only for the last response in the chain.\n redirected,\n // These can be copied from the last browser response we received. We\n // intentionally only expose the subset of fields that are actually used\n // elsewhere in the codebase.\n ok: browserResponse.ok,\n headers: browserResponse.headers,\n body: browserResponse.body,\n status: browserResponse.status\n };\n return rscResponse;\n}\nfunction createFromNextReadableStream(flightStream) {\n return createFromReadableStream(flightStream, {\n callServer: _appcallserver.callServer,\n findSourceMapURL: _appfindsourcemapurl.findSourceMapURL\n });\n}\nfunction createUnclosingPrefetchStream(originalFlightStream) {\n // When PPR is enabled, prefetch streams may contain references that never\n // resolve, because that's how we encode dynamic data access. In the decoded\n // object returned by the Flight client, these are reified into hanging\n // promises that suspend during render, which is effectively what we want.\n // The UI resolves when it switches to the dynamic data stream\n // (via useDeferredValue(dynamic, static)).\n //\n // However, the Flight implementation currently errors if the server closes\n // the response before all the references are resolved. As a cheat to work\n // around this, we wrap the original stream in a new stream that never closes,\n // and therefore doesn't error.\n const reader = originalFlightStream.getReader();\n return new ReadableStream({\n async pull (controller) {\n while(true){\n const { done, value } = await reader.read();\n if (!done) {\n // Pass to the target stream and keep consuming the Flight response\n // from the server.\n controller.enqueue(value);\n continue;\n }\n // The server stream has closed. Exit, but intentionally do not close\n // the target stream.\n return;\n }\n }\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=fetch-server-response.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZldGNoLXNlcnZlci1yZXNwb25zZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUF5UnNCQSxXQUFXO2VBQVhBOztJQXFITkMsNEJBQTRCO2VBQTVCQTs7SUEzUk1DLG1CQUFtQjtlQUFuQkE7O0lBbEROQywyQkFBMkI7ZUFBM0JBOzs7b0NBN0Q0RDs4Q0FrQnJFOzJDQUNvQjtpREFDTTtnREFDSjsrQ0FLdEI7d0NBQ3VCO3dEQUNhO0FBRTNDLE1BQU1DLDJCQUNKQyxRQUFBQSx3QkFBK0I7QUE4QjFCLFNBQVNGLDRCQUE0QkcsR0FBVztJQUNyRCxNQUFNQyw2QkFBNkIsSUFBSUMsSUFBSUYsS0FBS0csU0FBU0MsTUFBTTtJQUMvREgsMkJBQTJCSSxZQUFZLENBQUNDLE1BQU0sQ0FBQ0Msa0JBQUFBLG9CQUFvQjtJQUNuRSxJQUFJQyxLQUFvQixFQUFtQixFQVUxQztJQUNELE9BQU9QO0FBQ1Q7QUFFQSxTQUFTZSxnQkFBZ0JoQixHQUFXO0lBQ2xDLE9BQU87UUFDTGlCLFlBQVlwQiw0QkFBNEJHLEtBQUtrQixRQUFRO1FBQ3JEQyxjQUFjQztRQUNkQyxvQkFBb0I7UUFDcEJDLGFBQWE7UUFDYkMsV0FBVztRQUNYQyxXQUFXLENBQUM7SUFDZDtBQUNGO0FBRUEsSUFBSUMsa0JBQWtCLElBQUlDO0FBRTFCLElBQUksS0FBNkIsRUFBRSxFQWNsQztBQU1NLGVBQWU5QixvQkFDcEJJLEdBQVEsRUFDUjhCLE9BQW1DO0lBRW5DLE1BQU0sRUFBRUMsaUJBQWlCLEVBQUVDLE9BQU8sRUFBRUMsWUFBWSxFQUFFLEdBQUdIO0lBRXJELE1BQU1JLFVBQTBCO1FBQzlCLHlCQUF5QjtRQUN6QixDQUFDQyxrQkFBQUEsVUFBVSxDQUFDLEVBQUU7UUFDZCxtQ0FBbUM7UUFDbkMsQ0FBQ0Msa0JBQUFBLDZCQUE2QixDQUFDLEVBQUVDLENBQUFBLEdBQUFBLG1C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QU07b0JBQ1QsbUVBQW1FO29CQUNuRSxtQkFBbUI7b0JBQ25CRCxXQUFXSSxPQUFPLENBQUNGO29CQUNuQjtnQkFDRjtnQkFDQSxxRUFBcUU7Z0JBQ3JFLHFCQUFxQjtnQkFDckI7WUFDRjtRQUNGO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZldGNoLXNlcnZlci1yZXNwb25zZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuLy8gVE9ETzogRXhwbGljaXRseSBpbXBvcnQgZnJvbSBjbGllbnQuYnJvd3NlclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHsgY3JlYXRlRnJvbVJlYWRhYmxlU3RyZWFtIGFzIGNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbUJyb3dzZXIgfSBmcm9tICdyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZsaWdodFJvdXRlclN0YXRlLFxuICBOYXZpZ2F0aW9uRmxpZ2h0UmVzcG9uc2UsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5pbXBvcnQgdHlwZSB7IE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSIH0gZnJvbSAnLi4vYXBwLXJvdXRlci1oZWFkZXJzJ1xuaW1wb3J0IHtcbiAgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSLFxuICBORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUixcbiAgTkVYVF9SU0NfVU5JT05fUVVFUlksXG4gIE5FWFRfVVJMLFxuICBSU0NfSEVBREVSLFxuICBSU0NfQ09OVEVOVF9UWVBFX0hFQURFUixcbiAgTkVYVF9ITVJfUkVGUkVTSF9IRUFERVIsXG4gIE5FWFRfRElEX1BPU1RQT05FX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIsXG59IGZyb20gJy4uL2FwcC1yb3V0ZXItaGVhZGVycydcbmltcG9ydCB7IGNhbGxTZXJ2ZXIgfSBmcm9tICcuLi8uLi9hcHAtY2FsbC1zZXJ2ZXInXG5pbXBvcnQgeyBmaW5kU291cmNlTWFwVVJMIH0gZnJvbSAnLi4vLi4vYXBwLWZpbmQtc291cmNlLW1hcC11cmwnXG5pbXBvcnQgeyBQcmVmZXRjaEtpbmQgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHtcbiAgbm9ybWFsaXplRmxpZ2h0RGF0YSxcbiAgcHJlcGFyZUZsaWdodFJvdXRlclN0YXRlRm9yUmVxdWVzdCxcbiAgdHlwZSBOb3JtYWxpemVkRmxpZ2h0RGF0YSxcbn0gZnJvbSAnLi4vLi4vZmxpZ2h0LWRhdGEtaGVscGVycydcbmltcG9ydCB7IGdldEFwcEJ1aWxkSWQgfSBmcm9tICcuLi8uLi9hcHAtYnVpbGQtaWQnXG5pbXBvcnQgeyBzZXRDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbSB9IGZyb20gJy4vc2V0LWNhY2hlLWJ1c3Rpbmctc2VhcmNoLXBhcmFtJ1xuXG5jb25zdCBjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0gPVxuICBjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW1Ccm93c2VyIGFzICh0eXBlb2YgaW1wb3J0KCdyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svY2xpZW50LmJyb3dzZXInKSlbJ2NyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbSddXG5cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hTZXJ2ZXJSZXNwb25zZU9wdGlvbnMge1xuICByZWFkb25seSBmbGlnaHRSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGVcbiAgcmVhZG9ubHkgbmV4dFVybDogc3RyaW5nIHwgbnVsbFxuICByZWFkb25seSBwcmVmZXRjaEtpbmQ/OiBQcmVmZXRjaEtpbmRcbiAgcmVhZG9ubHkgaXNIbXJSZWZyZXNoPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0ID0ge1xuICBmbGlnaHREYXRhOiBOb3JtYWxpemVkRmxpZ2h0RGF0YVtdIHwgc3RyaW5nXG4gIGNhbm9uaWNhbFVybDogVVJMIHwgdW5kZWZpbmVkXG4gIGNvdWxkQmVJbnRlcmNlcHRlZDogYm9vbGVhblxuICBwcmVyZW5kZXJlZDogYm9vbGVhblxuICBwb3N0cG9uZWQ6IGJvb2xlYW5cbiAgc3RhbGVUaW1lOiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgUmVxdWVzdEhlYWRlcnMgPSB7XG4gIFtSU0NfSEVBREVSXT86ICcxJ1xuICBbTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVJdPzogc3RyaW5nXG4gIFtORVhUX1VSTF0/OiBzdHJpbmdcbiAgW05FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl0/OiAnMSdcbiAgW05FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSXT86IHN0cmluZ1xuICAneC1kZXBsb3ltZW50LWlkJz86IHN0cmluZ1xuICBbTkVYVF9ITVJfUkVGUkVTSF9IRUFERVJdPzogJzEnXG4gIC8vIEEgaGVhZGVyIHRoYXQgaXMgb25seSBhZGRlZCBpbiB0ZXN0IG1vZGUgdG8gYXNzZXJ0IG9uIGZldGNoIHByaW9yaXR5XG4gICdOZXh0LVRlc3QtRmV0Y2gtUHJpb3JpdHknPzogUmVxdWVzdEluaXRbJ3ByaW9yaXR5J11cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcih1cmw6IHN0cmluZyk6IFVSTCB7XG4gIGNvbnN0IHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzID0gbmV3IFVSTCh1cmwsIGxvY2F0aW9uLm9yaWdpbilcbiAgdXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnMuc2VhcmNoUGFyYW1zLmRlbGV0ZShORVhUX1JTQ19VTklPTl9RVUVSWSlcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5fX05FWFRfQ09ORklHX09VVFBVVCA9PT0gJ2V4cG9ydCcgJiZcbiAgICAgIHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzLnBhdGhuYW1lLmVuZHNXaXRoKCcudHh0JylcbiAgICApIHtcbiAgICAgIGNvbnN0IHsgcGF0aG5hbWUgfSA9IHVybFdpdGhvdXRGbGlnaHRQYXJhbWV0ZXJzXG4gICAgICBjb25zdCBsZW5ndGggPSBwYXRobmFtZS5lbmRzV2l0aCgnL2luZGV4LnR4dCcpID8gMTAgOiA0XG4gICAgICAvLyBTbGljZSBvZmYgYC9pbmRleC50eHRgIG9yIGAudHh0YCBmcm9tIHRoZSBlbmQgb2YgdGhlIHBhdGhuYW1lXG4gICAgICB1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVycy5wYXRobmFtZSA9IHBhdGhuYW1lLnNsaWNlKDAsIC1sZW5ndGgpXG4gICAgfVxuICB9XG4gIHJldHVybiB1cmxXaXRob3V0RmxpZ2h0UGFyYW1ldGVyc1xufVxuXG5mdW5jdGlvbiBkb01wYU5hdmlnYXRpb24odXJsOiBzdHJpbmcpOiBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0IHtcbiAgcmV0dXJuIHtcbiAgICBmbGlnaHREYXRhOiB1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIodXJsKS50b1N0cmluZygpLFxuICAgIGNhbm9uaWNhbFVybDogdW5kZWZpbmVkLFxuICAgIGNvdWxkQmVJbnRlcmNlcHRlZDogZmFsc2UsXG4gICAgcHJlcmVuZGVyZWQ6IGZhbHNlLFxuICAgIHBvc3Rwb25lZDogZmFsc2UsXG4gICAgc3RhbGVUaW1lOiAtMSxcbiAgfVxufVxuXG5sZXQgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG5cbmlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAvLyBBYm9ydCBhbnkgaW4tZmxpZ2h0IHJlcXVlc3RzIHdoZW4gdGhlIHBhZ2UgaXMgdW5sb2FkZWQsIGUuZy4gZHVlIHRvXG4gIC8vIHJlbG9hZGluZyB0aGUgcGFnZSBvciBwZXJmb3JtaW5nIGhhcmQgbmF2aWdhdGlvbnMuIFRoaXMgYWxsb3dzIHVzIHRvIGlnbm9yZVxuICAvLyB3aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBhIHRocm93biBUeXBlRXJyb3Igd2hlbiB0aGUgYnJvd3NlciBjYW5jZWxzIHRoZVxuICAvLyByZXF1ZXN0cy5cbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VoaWRlJywgKCkgPT4ge1xuICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpXG4gIH0pXG5cbiAgLy8gVXNlIGEgZnJlc2ggQWJvcnRDb250cm9sbGVyIGluc3RhbmNlIG9uIHBhZ2VzaG93LCBlLmcuIHdoZW4gbmF2aWdhdGluZyBiYWNrXG4gIC8vIGFuZCB0aGUgSmF2YVNjcmlwdCBleGVjdXRpb24gY29udGV4dCBpcyByZXN0b3JlZCBieSB0aGUgYnJvd3Nlci5cbiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgKCkgPT4ge1xuICAgIGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKVxuICB9KVxufVxuXG4vKipcbiAqIEZldGNoIHRoZSBmbGlnaHQgZGF0YSBmb3IgdGhlIHByb3ZpZGVkIHVybC4gVGFrZXMgaW4gdGhlIGN1cnJlbnQgcm91dGVyIHN0YXRlXG4gKiB0byBkZWNpZGUgd2hhdCB0byByZW5kZXIgc2VydmVyLXNpZGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFNlcnZlclJlc3BvbnNlKFxuICB1cmw6IFVSTCxcbiAgb3B0aW9uczogRmV0Y2hTZXJ2ZXJSZXNwb25zZU9wdGlvbnNcbik6IFByb21pc2U8RmV0Y2hTZXJ2ZXJSZXNwb25zZVJlc3VsdD4ge1xuICBjb25zdCB7IGZsaWdodFJvdXRlclN0YXRlLCBuZXh0VXJsLCBwcmVmZXRjaEtpbmQgfSA9IG9wdGlvbnNcblxuICBjb25zdCBoZWFkZXJzOiBSZXF1ZXN0SGVhZGVycyA9IHtcbiAgICAvLyBFbmFibGUgZmxpZ2h0IHJlc3BvbnNlXG4gICAgW1JTQ19IRUFERVJdOiAnMScsXG4gICAgLy8gUHJvdmlkZSB0aGUgY3VycmVudCByb3V0ZXIgc3RhdGVcbiAgICBbTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVJdOiBwcmVwYXJlRmxpZ2h0Um91dGVyU3RhdGVGb3JSZXF1ZXN0KFxuICAgICAgZmxpZ2h0Um91dGVyU3RhdGUsXG4gICAgICBvcHRpb25zLmlzSG1yUmVmcmVzaFxuICAgICksXG4gIH1cblxuICAvKipcbiAgICogVGhyZWUgY2FzZXM6XG4gICAqIC0gYHByZWZldGNoS2luZGAgaXMgYHVuZGVmaW5lZGAsIGl0IG1lYW5zIGl0J3MgYSBub3JtYWwgbmF2aWdhdGlvbiwgc28gd2Ugd2FudCB0byBwcmVmZXRjaCB0aGUgcGFnZSBkYXRhIGZ1bGx5XG4gICAqIC0gYHByZWZldGNoS2luZGAgaXMgYGZ1bGxgIC0gd2Ugd2FudCB0byBwcmVmZXRjaCB0aGUgd2hvbGUgcGFnZSBzbyBzYW1lIGFzIGFib3ZlXG4gICAqIC0gYHByZWZldGNoS2luZGAgaXMgYGF1dG9gIC0gaWYgdGhlIHBhZ2UgaXMgZHluYW1pYywgcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBwYXJ0aWFsbHksIGlmIHN0YXRpYyBwcmVmZXRjaCB0aGUgcGFnZSBkYXRhIGZ1bGx5XG4gICAqL1xuICBpZiAocHJlZmV0Y2hLaW5kID09PSBQcmVmZXRjaEtpbmQuQVVUTykge1xuICAgIGhlYWRlcnNbTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSXSA9ICcxJ1xuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmIG9wdGlvbnMuaXNIbXJSZWZyZXNoKSB7XG4gICAgaGVhZGVyc1tORVhUX0hNUl9SRUZSRVNIX0hFQURFUl0gPSAnMSdcbiAgfVxuXG4gIGlmIChuZXh0VXJsKSB7XG4gICAgaGVhZGVyc1tORVhUX1VSTF0gPSBuZXh0VXJsXG4gIH1cblxuICB0cnkge1xuICAgIC8vIFdoZW4gY3JlYXRpbmcgYSBcInRlbXBvcmFyeVwiIHByZWZldGNoICh0aGUgXCJvbi1kZW1hbmRcIiBwcmVmZXRjaCB0aGF0IGdldHMgY3JlYXRlZCBvbiBuYXZpZ2F0aW9uLCBpZiBvbmUgZG9lc24ndCBleGlzdClcbiAgICAvLyB3ZSBzZW5kIHRoZSByZXF1ZXN0IHdpdGggYSBcImhpZ2hcIiBwcmlvcml0eSBhcyBpdCdzIGluIHJlc3BvbnNlIHRvIGEgdXNlciBpbnRlcmFjdGlvbiB0aGF0IGNvdWxkIGJlIGJsb2NraW5nIGEgdHJhbnNpdGlvbi5cbiAgICAvLyBPdGhlcndpc2UsIGFsbCBvdGhlciBwcmVmZXRjaGVzIGFyZSBzZW50IHdpdGggYSBcImxvd1wiIHByaW9yaXR5LlxuICAgIC8vIFdlIHVzZSBcImF1dG9cIiBmb3IgaW4gYWxsIG90aGVyIGNhc2VzIHRvIG1hdGNoIHRoZSBleGlzdGluZyBkZWZhdWx0LCBhcyB0aGlzIGZ1bmN0aW9uIGlzIHNoYXJlZCBvdXRzaWRlIG9mIHByZWZldGNoaW5nLlxuICAgIGNvbnN0IGZldGNoUHJpb3JpdHkgPSBwcmVmZXRjaEtpbmRcbiAgICAgID8gcHJlZmV0Y2hLaW5kID09PSBQcmVmZXRjaEtpbmQuVEVNUE9SQVJZXG4gICAgICAgID8gJ2hpZ2gnXG4gICAgICAgIDogJ2xvdydcbiAgICAgIDogJ2F1dG8nXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DT05GSUdfT1VUUFVUID09PSAnZXhwb3J0Jykge1xuICAgICAgICAvLyBJbiBcIm91dHB1dDogZXhwb3J0XCIgbW9kZSwgd2UgY2FuJ3QgcmVseSBvbiBoZWFkZXJzIHRvIGRpc3Rpbmd1aXNoXG4gICAgICAgIC8vIGJldHdlZW4gSFRNTCBhbmQgUlNDIHJlcXVlc3RzLiBJbnN0ZWFkLCB3ZSBhcHBlbmQgYW4gZXh0cmEgcHJlZml4XG4gICAgICAgIC8vIHRvIHRoZSByZXF1ZXN0LlxuICAgICAgICB1cmwgPSBuZXcgVVJMKHVybClcbiAgICAgICAgaWYgKHVybC5wYXRobmFtZS5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgdXJsLnBhdGhuYW1lICs9ICdpbmRleC50eHQnXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXJsLnBhdGhuYW1lICs9ICcudHh0J1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgY3JlYXRlRmV0Y2goXG4gICAgICB1cmwsXG4gICAgICBoZWFkZXJzLFxuICAgICAgZmV0Y2hQcmlvcml0eSxcbiAgICAgIGFib3J0Q29udHJvbGxlci5zaWduYWxcbiAgICApXG5cbiAgICBjb25zdCByZXNwb25zZVVybCA9IHVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcihyZXMudXJsKVxuICAgIGNvbnN0IGNhbm9uaWNhbFVybCA9IHJlcy5yZWRpcmVjdGVkID8gcmVzcG9uc2VVcmwgOiB1bmRlZmluZWRcblxuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSB8fCAnJ1xuICAgIGNvbnN0IGludGVyY2VwdGlvbiA9ICEhcmVzLmhlYWRlcnMuZ2V0KCd2YXJ5Jyk/LmluY2x1ZGVzKE5FWFRfVVJMKVxuICAgIGNvbnN0IHBvc3Rwb25lZCA9ICEhcmVzLmhlYWRlcnMuZ2V0KE5FWFRfRElEX1BPU1RQT05FX0hFQURFUilcbiAgICBjb25zdCBzdGFsZVRpbWVIZWFkZXJTZWNvbmRzID0gcmVzLmhlYWRlcnMuZ2V0KFxuICAgICAgTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVJcbiAgICApXG4gICAgY29uc3Qgc3RhbGVUaW1lID1cbiAgICAgIHN0YWxlVGltZUhlYWRlclNlY29uZHMgIT09IG51bGxcbiAgICAgICAgPyBwYXJzZUludChzdGFsZVRpbWVIZWFkZXJTZWNvbmRzLCAxMCkgKiAxMDAwXG4gICAgICAgIDogLTFcbiAgICBsZXQgaXNGbGlnaHRSZXNwb25zZSA9IGNvbnRlbnRUeXBlLnN0YXJ0c1dpdGgoUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIpXG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DT05GSUdfT1VUUFVUID09PSAnZXhwb3J0Jykge1xuICAgICAgICBpZiAoIWlzRmxpZ2h0UmVzcG9uc2UpIHtcbiAgICAgICAgICBpc0ZsaWdodFJlc3BvbnNlID0gY29udGVudFR5cGUuc3RhcnRzV2l0aCgndGV4dC9wbGFpbicpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBmZXRjaCByZXR1cm5zIHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhbiBmbGlnaHQgcmVzcG9uc2UgaGFuZGxlIGl0IGxpa2UgYSBtcGEgbmF2aWdhdGlvblxuICAgIC8vIElmIHRoZSBmZXRjaCB3YXMgbm90IDIwMCwgd2UgYWxzbyBoYW5kbGUgaXQgbGlrZSBhIG1wYSBuYXZpZ2F0aW9uXG4gICAgaWYgKCFpc0ZsaWdodFJlc3BvbnNlIHx8ICFyZXMub2sgfHwgIXJlcy5ib2R5KSB7XG4gICAgICAvLyBpbiBjYXNlIHRoZSBvcmlnaW5hbCBVUkwgY2FtZSB3aXRoIGEgaGFzaCwgcHJlc2VydmUgaXQgYmVmb3JlIHJlZGlyZWN0aW5nIHRvIHRoZSBuZXcgVVJMXG4gICAgICBpZiAodXJsLmhhc2gpIHtcbiAgICAgICAgcmVzcG9uc2VVcmwuaGFzaCA9IHVybC5oYXNoXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkb01wYU5hdmlnYXRpb24ocmVzcG9uc2VVcmwudG9TdHJpbmcoKSlcbiAgICB9XG5cbiAgICAvLyBXZSBtYXkgbmF2aWdhdGUgdG8gYSBwYWdlIHRoYXQgcmVxdWlyZXMgYSBkaWZmZXJlbnQgV2VicGFjayBydW50aW1lLlxuICAgIC8vIEluIHByb2QsIGV2ZXJ5IHBhZ2Ugd2lsbCBoYXZlIHRoZSBzYW1lIFdlYnBhY2sgcnVudGltZS5cbiAgICAvLyBJbiBkZXYsIHRoZSBXZWJwYWNrIHJ1bnRpbWUgaXMgbWluaW1hbCBmb3IgZWFjaCBwYWdlLlxuICAgIC8vIFdlIG5lZWQgdG8gZW5zdXJlIHRoZSBXZWJwYWNrIHJ1bnRpbWUgaXMgdXBkYXRlZCBiZWZvcmUgZXhlY3V0aW5nIGNsaWVudC1zaWRlIEpTIG9mIHRoZSBuZXcgcGFnZS5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhcHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICBhd2FpdCAoXG4gICAgICAgIHJlcXVpcmUoJy4uLy4uL2Rldi9ob3QtcmVsb2FkZXIvYXBwL2hvdC1yZWxvYWRlci1hcHAnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9kZXYvaG90LXJlbG9hZGVyL2FwcC9ob3QtcmVsb2FkZXItYXBwJylcbiAgICAgICkud2FpdEZvcldlYnBhY2tSdW50aW1lSG90VXBkYXRlKClcbiAgICB9XG5cbiAgICAvLyBIYW5kbGUgdGhlIGBmZXRjaGAgcmVhZGFibGUgc3RyZWFtIHRoYXQgY2FuIGJlIHVud3JhcHBlZCBieSBgUmVhY3QudXNlYC5cbiAgICBjb25zdCBmbGlnaHRTdHJlYW0gPSBwb3N0cG9uZWRcbiAgICAgID8gY3JlYXRlVW5jbG9zaW5nUHJlZmV0Y2hTdHJlYW0ocmVzLmJvZHkpXG4gICAgICA6IHJlcy5ib2R5XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCAoY3JlYXRlRnJvbU5leHRSZWFkYWJsZVN0cmVhbShcbiAgICAgIGZsaWdodFN0cmVhbVxuICAgICkgYXMgUHJvbWlzZTxOYXZpZ2F0aW9uRmxpZ2h0UmVzcG9uc2U+KVxuXG4gICAgaWYgKGdldEFwcEJ1aWxkSWQoKSAhPT0gcmVzcG9uc2UuYikge1xuICAgICAgcmV0dXJuIGRvTXBhTmF2aWdhdGlvbihyZXMudXJsKVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBmbGlnaHREYXRhOiBub3JtYWxpemVGbGlnaHREYXRhKHJlc3BvbnNlLmYpLFxuICAgICAgY2Fub25pY2FsVXJsOiBjYW5vbmljYWxVcmwsXG4gICAgICBjb3VsZEJlSW50ZXJjZXB0ZWQ6IGludGVyY2VwdGlvbixcbiAgICAgIHByZXJlbmRlcmVkOiByZXNwb25zZS5TLFxuICAgICAgcG9zdHBvbmVkLFxuICAgICAgc3RhbGVUaW1lLFxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKCFhYm9ydENvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gZmV0Y2ggUlNDIHBheWxvYWQgZm9yICR7dXJsfS4gRmFsbGluZyBiYWNrIHRvIGJyb3dzZXIgbmF2aWdhdGlvbi5gLFxuICAgICAgICBlcnJcbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBJZiBmZXRjaCBmYWlscyBoYW5kbGUgaXQgbGlrZSBhIG1wYSBuYXZpZ2F0aW9uXG4gICAgLy8gVE9ETy1BUFA6IEFkZCBhIHRlc3QgZm9yIHRoZSBjYXNlIHdoZXJlIGEgQ09SUyByZXF1ZXN0IGZhaWxzLCBlLmcuIGV4dGVybmFsIHVybCByZWRpcmVjdCBjb21pbmcgZnJvbSB0aGUgcmVzcG9uc2UuXG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvNDM2MDUjaXNzdWVjb21tZW50LTE0NTE2MTc1MjEgZm9yIGEgcmVwcm9kdWN0aW9uLlxuICAgIHJldHVybiB7XG4gICAgICBmbGlnaHREYXRhOiB1cmwudG9TdHJpbmcoKSxcbiAgICAgIGNhbm9uaWNhbFVybDogdW5kZWZpbmVkLFxuICAgICAgY291bGRCZUludGVyY2VwdGVkOiBmYWxzZSxcbiAgICAgIHByZXJlbmRlcmVkOiBmYWxzZSxcbiAgICAgIHBvc3Rwb25lZDogZmFsc2UsXG4gICAgICBzdGFsZVRpbWU6IC0xLFxuICAgIH1cbiAgfVxufVxuXG4vLyBUaGlzIGlzIGEgc3Vic2V0IG9mIHRoZSBzdGFuZGFyZCBSZXNwb25zZSB0eXBlLiBXZSB1c2UgYSBjdXN0b20gdHlwZSBmb3Jcbi8vIHRoaXMgc28gd2UgY2FuIGxpbWl0IHdoaWNoIGRldGFpbHMgYWJvdXQgdGhlIHJlc3BvbnNlIGxlYWsgaW50byB0aGUgcmVzdCBvZlxuLy8gdGhlIGNvZGViYXNlLiBGb3IgZXhhbXBsZSwgdGhlcmUncyBzb21lIGN1c3RvbSBsb2dpYyBmb3IgbWFudWFsbHkgZm9sbG93aW5nXG4vLyByZWRpcmVjdHMsIHNvIFwicmVkaXJlY3RlZFwiIGluIHRoaXMgdHlwZSBjb3VsZCBiZSBhIGNvbXBvc2l0ZSBvZiBtdWx0aXBsZVxuLy8gYnJvd3NlciBmZXRjaCBjYWxsczsgaG93ZXZlciwgdGhpcyBmYWN0IHNob3VsZCBub3QgbGVhayB0byB0aGUgY2FsbGVyLlxuZXhwb3J0IHR5cGUgUlNDUmVzcG9uc2UgPSB7XG4gIG9rOiBib29sZWFuXG4gIHJlZGlyZWN0ZWQ6IGJvb2xlYW5cbiAgaGVhZGVyczogSGVhZGVyc1xuICBib2R5OiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PiB8IG51bGxcbiAgc3RhdHVzOiBudW1iZXJcbiAgdXJsOiBzdHJpbmdcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUZldGNoKFxuICB1cmw6IFVSTCxcbiAgaGVhZGVyczogUmVxdWVzdEhlYWRlcnMsXG4gIGZldGNoUHJpb3JpdHk6ICdhdXRvJyB8ICdoaWdoJyB8ICdsb3cnIHwgbnVsbCxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWxcbik6IFByb21pc2U8UlNDUmVzcG9uc2U+IHtcbiAgLy8gVE9ETzogSW4gb3V0cHV0OiBcImV4cG9ydFwiIG1vZGUsIHRoZSBoZWFkZXJzIGRvIG5vdGhpbmcuIE9taXQgdGhlbSAoYW5kIHRoZVxuICAvLyBjYWNoZSBidXN0aW5nIHNlYXJjaCBwYXJhbSkgZnJvbSB0aGUgcmVxdWVzdCBzbyB0aGV5J3JlXG4gIC8vIG1heGltYWxseSBjYWNoZWFibGUuXG5cbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUgJiYgZmV0Y2hQcmlvcml0eSAhPT0gbnVsbCkge1xuICAgIGhlYWRlcnNbJ05leHQtVGVzdC1GZXRjaC1Qcmlvcml0eSddID0gZmV0Y2hQcmlvcml0eVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfREVQTE9ZTUVOVF9JRCkge1xuICAgIGhlYWRlcnNbJ3gtZGVwbG95bWVudC1pZCddID0gcHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lEXG4gIH1cblxuICBjb25zdCBmZXRjaE9wdGlvbnM6IFJlcXVlc3RJbml0ID0ge1xuICAgIC8vIEJhY2t3YXJkcyBjb21wYXQgZm9yIG9sZGVyIGJyb3dzZXJzLiBgc2FtZS1vcmlnaW5gIGlzIHRoZSBkZWZhdWx0IGluIG1vZGVybiBicm93c2Vycy5cbiAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyxcbiAgICBoZWFkZXJzLFxuICAgIHByaW9yaXR5OiBmZXRjaFByaW9yaXR5IHx8IHVuZGVmaW5lZCxcbiAgICBzaWduYWwsXG4gIH1cbiAgLy8gYGZldGNoVXJsYCBpcyBzbGlnaHRseSBkaWZmZXJlbnQgZnJvbSBgdXJsYCBiZWNhdXNlIHdlIGFkZCBhIGNhY2hlLWJ1c3RpbmdcbiAgLy8gc2VhcmNoIHBhcmFtIHRvIGl0LiBUaGlzIHNob3VsZCBub3QgbGVhayBvdXRzaWRlIG9mIHRoaXMgZnVuY3Rpb24sIHNvIHdlXG4gIC8vIHRyYWNrIHRoZW0gc2VwYXJhdGVseS5cbiAgbGV0IGZldGNoVXJsID0gbmV3IFVSTCh1cmwpXG4gIHNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtKGZldGNoVXJsLCBoZWFkZXJzKVxuICBsZXQgYnJvd3NlclJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZmV0Y2hVcmwsIGZldGNoT3B0aW9ucylcblxuICAvLyBJZiB0aGUgc2VydmVyIHJlc3BvbmRzIHdpdGggYSByZWRpcmVjdCAoZS5nLiAzMDcpLCBhbmQgdGhlIHJlZGlyZWN0ZWRcbiAgLy8gbG9jYXRpb24gZG9lcyBub3QgY29udGFpbiB0aGUgY2FjaGUgYnVzdGluZyBzZWFyY2ggcGFyYW0gc2V0IGluIHRoZVxuICAvLyBvcmlnaW5hbCByZXF1ZXN0LCB0aGUgcmVzcG9uc2UgaXMgbGlrZWx5IGludmFsaWQg4oCUIHdoZW4gZm9sbG93aW5nIHRoZVxuICAvLyByZWRpcmVjdCwgdGhlIGJyb3dzZXIgZm9yd2FyZHMgdGhlIHJlcXVlc3QgaGVhZGVycywgYnV0IHNpbmNlIHRoZSBjYWNoZVxuICAvLyBidXN0aW5nIHNlYXJjaCBwYXJhbSBpcyBtaXNzaW5nLCB0aGUgc2VydmVyIHdpbGwgcmVqZWN0IHRoZSByZXF1ZXN0IGR1ZSB0b1xuICAvLyBhIG1pc21hdGNoLlxuICAvL1xuICAvLyBJZGVhbGx5LCB3ZSB3b3VsZCBiZSBhYmxlIHRvIGludGVyY2VwdCB0aGUgcmVkaXJlY3QgcmVzcG9uc2UgYW5kIHBlcmZvcm0gaXRcbiAgLy8gbWFudWFsbHksIGluc3RlYWQgb2YgbGV0dGluZyB0aGUgYnJvd3NlciBhdXRvbWF0aWNhbGx5IGZvbGxvdyBpdCwgYnV0IHRoaXNcbiAgLy8gaXMgbm90IGFsbG93ZWQgYnkgdGhlIGZldGNoIEFQSS5cbiAgLy9cbiAgLy8gU28gaW5zdGVhZCwgd2UgbXVzdCBcInJlcGxheVwiIHRoZSByZWRpcmVjdCBieSBmZXRjaGluZyB0aGUgbmV3IGxvY2F0aW9uXG4gIC8vIGFnYWluLCBidXQgdGhpcyB0aW1lIHdlJ2xsIGFwcGVuZCB0aGUgY2FjaGUgYnVzdGluZyBzZWFyY2ggcGFyYW0gdG8gcHJldmVudFxuICAvLyBhIG1pc21hdGNoLlxuICAvL1xuICAvLyBUT0RPOiBXZSBjYW4gb3B0aW1pemUgTmV4dC5qcydzIGJ1aWx0LWluIG1pZGRsZXdhcmUgQVBJcyBieSByZXR1cm5pbmcgYVxuICAvLyBjdXN0b20gc3RhdHVzIGNvZGUsIHRvIHByZXZlbnQgdGhlIGJyb3dzZXIgZnJvbSBhdXRvbWF0aWNhbGx5IGZvbGxvd2luZyBpdC5cbiAgLy9cbiAgLy8gVGhpcyBkb2VzIG5vdCBhZmZlY3QgU2VydmVyIEFjdGlvbi1iYXNlZCByZWRpcmVjdHM7IHRob3NlIGFyZSBlbmNvZGVkXG4gIC8vIGRpZmZlcmVudGx5LCBhcyBwYXJ0IG9mIHRoZSBGbGlnaHQgYm9keS4gSXQgb25seSBhZmZlY3RzIHJlZGlyZWN0cyB0aGF0XG4gIC8vIG9jY3VyIGluIGEgbWlkZGxld2FyZSBvciBhIHRoaXJkLXBhcnR5IHByb3h5LlxuXG4gIGxldCByZWRpcmVjdGVkID0gYnJvd3NlclJlc3BvbnNlLnJlZGlyZWN0ZWRcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfVkFMSURBVEVfUlNDX1JFUVVFU1RfSEVBREVSUykge1xuICAgIC8vIFRoaXMgaXMgdG8gcHJldmVudCBhIHJlZGlyZWN0IGxvb3AuIFNhbWUgbGltaXQgdXNlZCBieSBDaHJvbWUuXG4gICAgY29uc3QgTUFYX1JFRElSRUNUUyA9IDIwXG4gICAgZm9yIChsZXQgbiA9IDA7IG4gPCBNQVhfUkVESVJFQ1RTOyBuKyspIHtcbiAgICAgIGlmICghYnJvd3NlclJlc3BvbnNlLnJlZGlyZWN0ZWQpIHtcbiAgICAgICAgLy8gVGhlIHNlcnZlciBkaWQgbm90IHBlcmZvcm0gYSByZWRpcmVjdC5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3BvbnNlVXJsID0gbmV3IFVSTChicm93c2VyUmVzcG9uc2UudXJsLCBmZXRjaFVybClcbiAgICAgIGlmIChyZXNwb25zZVVybC5vcmlnaW4gIT09IGZldGNoVXJsLm9yaWdpbikge1xuICAgICAgICAvLyBUaGUgc2VydmVyIHJlZGlyZWN0ZWQgdG8gYW4gZXh0ZXJuYWwgVVJMLiBUaGUgcmVzdCBvZiB0aGUgbG9naWMgYmVsb3dcbiAgICAgICAgLy8gaXMgbm90IHJlbGV2YW50LCBiZWNhdXNlIGl0IG9ubHkgYXBwbGllcyB0byBpbnRlcm5hbCByZWRpcmVjdHMuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIHJlc3BvbnNlVXJsLnNlYXJjaFBhcmFtcy5nZXQoTkVYVF9SU0NfVU5JT05fUVVFUlkpID09PVxuICAgICAgICBmZXRjaFVybC5zZWFyY2hQYXJhbXMuZ2V0KE5FWFRfUlNDX1VOSU9OX1FVRVJZKVxuICAgICAgKSB7XG4gICAgICAgIC8vIFRoZSByZWRpcmVjdGVkIFVSTCBhbHJlYWR5IGluY2x1ZGVzIHRoZSBjYWNoZSBidXN0aW5nIHNlYXJjaCBwYXJhbS5cbiAgICAgICAgLy8gVGhpcyB3YXMgcHJvYmFibHkgaW50ZW50aW9uYWwuIFJlZ2FyZGxlc3MsIHRoZXJlJ3Mgbm8gcmVhc29uIHRvXG4gICAgICAgIC8vIGlzc3VlIGFub3RoZXIgcmVxdWVzdCB0byB0aGlzIFVSTCBiZWNhdXNlIGl0IGFscmVhZHkgaGFzIHRoZSBwYXJhbVxuICAgICAgICAvLyB2YWx1ZSB0aGF0IHdlIHdvdWxkIGhhdmUgYWRkZWQgYmVsb3cuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICAvLyBUaGUgUlNDIHJlcXVlc3Qgd2FzIHJlZGlyZWN0ZWQuIEFzc3VtZSB0aGUgcmVzcG9uc2UgaXMgaW52YWxpZC5cbiAgICAgIC8vXG4gICAgICAvLyBBcHBlbmQgdGhlIGNhY2hlIGJ1c3Rpbmcgc2VhcmNoIHBhcmFtIHRvIHRoZSByZWRpcmVjdGVkIFVSTCBhbmRcbiAgICAgIC8vIGZldGNoIGFnYWluLlxuICAgICAgZmV0Y2hVcmwgPSBuZXcgVVJMKHJlc3BvbnNlVXJsKVxuICAgICAgc2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0oZmV0Y2hVcmwsIGhlYWRlcnMpXG4gICAgICBicm93c2VyUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChmZXRjaFVybCwgZmV0Y2hPcHRpb25zKVxuICAgICAgLy8gV2UganVzdCBwZXJmb3JtZWQgYSBtYW51YWwgcmVkaXJlY3QsIHNvIHRoaXMgaXMgbm93IHRydWUuXG4gICAgICByZWRpcmVjdGVkID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgY2FjaGUgYnVzdGluZyBzZWFyY2ggcGFyYW0gZnJvbSB0aGUgcmVzcG9uc2UgVVJMLCB0byBwcmV2ZW50IGl0XG4gIC8vIGZyb20gbGVha2luZyBvdXRzaWRlIG9mIHRoaXMgZnVuY3Rpb24uXG4gIGNvbnN0IHJlc3BvbnNlVXJsID0gbmV3IFVSTChicm93c2VyUmVzcG9uc2UudXJsLCBmZXRjaFVybClcbiAgcmVzcG9uc2VVcmwuc2VhcmNoUGFyYW1zLmRlbGV0ZShORVhUX1JTQ19VTklPTl9RVUVSWSlcblxuICBjb25zdCByc2NSZXNwb25zZTogUlNDUmVzcG9uc2UgPSB7XG4gICAgdXJsOiByZXNwb25zZVVybC5ocmVmLFxuXG4gICAgLy8gVGhpcyBpcyB0cnVlIGlmIGFueSByZWRpcmVjdHMgb2NjdXJyZWQsIGVpdGhlciBhdXRvbWF0aWNhbGx5IGJ5IHRoZVxuICAgIC8vIGJyb3dzZXIsIG9yIG1hbnVhbGx5IGJ5IHVzLiBTbyBpdCdzIGRpZmZlcmVudCBmcm9tXG4gICAgLy8gYGJyb3dzZXJSZXNwb25zZS5yZWRpcmVjdGVkYCwgd2hpY2ggb25seSB0ZWxscyB1cyB3aGV0aGVyIHRoZSBicm93c2VyXG4gICAgLy8gZm9sbG93ZWQgYSByZWRpcmVjdCwgYW5kIG9ubHkgZm9yIHRoZSBsYXN0IHJlc3BvbnNlIGluIHRoZSBjaGFpbi5cbiAgICByZWRpcmVjdGVkLFxuXG4gICAgLy8gVGhlc2UgY2FuIGJlIGNvcGllZCBmcm9tIHRoZSBsYXN0IGJyb3dzZXIgcmVzcG9uc2Ugd2UgcmVjZWl2ZWQuIFdlXG4gICAgLy8gaW50ZW50aW9uYWxseSBvbmx5IGV4cG9zZSB0aGUgc3Vic2V0IG9mIGZpZWxkcyB0aGF0IGFyZSBhY3R1YWxseSB1c2VkXG4gICAgLy8gZWxzZXdoZXJlIGluIHRoZSBjb2RlYmFzZS5cbiAgICBvazogYnJvd3NlclJlc3BvbnNlLm9rLFxuICAgIGhlYWRlcnM6IGJyb3dzZXJSZXNwb25zZS5oZWFkZXJzLFxuICAgIGJvZHk6IGJyb3dzZXJSZXNwb25zZS5ib2R5LFxuICAgIHN0YXR1czogYnJvd3NlclJlc3BvbnNlLnN0YXR1cyxcbiAgfVxuXG4gIHJldHVybiByc2NSZXNwb25zZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJvbU5leHRSZWFkYWJsZVN0cmVhbShcbiAgZmxpZ2h0U3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PlxuKTogUHJvbWlzZTx1bmtub3duPiB7XG4gIHJldHVybiBjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0oZmxpZ2h0U3RyZWFtLCB7XG4gICAgY2FsbFNlcnZlcixcbiAgICBmaW5kU291cmNlTWFwVVJMLFxuICB9KVxufVxuXG5mdW5jdGlvbiBjcmVhdGVVbmNsb3NpbmdQcmVmZXRjaFN0cmVhbShcbiAgb3JpZ2luYWxGbGlnaHRTdHJlYW06IFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+XG4pOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PiB7XG4gIC8vIFdoZW4gUFBSIGlzIGVuYWJsZWQsIHByZWZldGNoIHN0cmVhbXMgbWF5IGNvbnRhaW4gcmVmZXJlbmNlcyB0aGF0IG5ldmVyXG4gIC8vIHJlc29sdmUsIGJlY2F1c2UgdGhhdCdzIGhvdyB3ZSBlbmNvZGUgZHluYW1pYyBkYXRhIGFjY2Vzcy4gSW4gdGhlIGRlY29kZWRcbiAgLy8gb2JqZWN0IHJldHVybmVkIGJ5IHRoZSBGbGlnaHQgY2xpZW50LCB0aGVzZSBhcmUgcmVpZmllZCBpbnRvIGhhbmdpbmdcbiAgLy8gcHJvbWlzZXMgdGhhdCBzdXNwZW5kIGR1cmluZyByZW5kZXIsIHdoaWNoIGlzIGVmZmVjdGl2ZWx5IHdoYXQgd2Ugd2FudC5cbiAgLy8gVGhlIFVJIHJlc29sdmVzIHdoZW4gaXQgc3dpdGNoZXMgdG8gdGhlIGR5bmFtaWMgZGF0YSBzdHJlYW1cbiAgLy8gKHZpYSB1c2VEZWZlcnJlZFZhbHVlKGR5bmFtaWMsIHN0YXRpYykpLlxuICAvL1xuICAvLyBIb3dldmVyLCB0aGUgRmxpZ2h0IGltcGxlbWVudGF0aW9uIGN1cnJlbnRseSBlcnJvcnMgaWYgdGhlIHNlcnZlciBjbG9zZXNcbiAgLy8gdGhlIHJlc3BvbnNlIGJlZm9yZSBhbGwgdGhlIHJlZmVyZW5jZXMgYXJlIHJlc29sdmVkLiBBcyBhIGNoZWF0IHRvIHdvcmtcbiAgLy8gYXJvdW5kIHRoaXMsIHdlIHdyYXAgdGhlIG9yaWdpbmFsIHN0cmVhbSBpbiBhIG5ldyBzdHJlYW0gdGhhdCBuZXZlciBjbG9zZXMsXG4gIC8vIGFuZCB0aGVyZWZvcmUgZG9lc24ndCBlcnJvci5cbiAgY29uc3QgcmVhZGVyID0gb3JpZ2luYWxGbGlnaHRTdHJlYW0uZ2V0UmVhZGVyKClcbiAgcmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgYXN5bmMgcHVsbChjb250cm9sbGVyKSB7XG4gICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpXG4gICAgICAgIGlmICghZG9uZSkge1xuICAgICAgICAgIC8vIFBhc3MgdG8gdGhlIHRhcmdldCBzdHJlYW0gYW5kIGtlZXAgY29uc3VtaW5nIHRoZSBGbGlnaHQgcmVzcG9uc2VcbiAgICAgICAgICAvLyBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKHZhbHVlKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgLy8gVGhlIHNlcnZlciBzdHJlYW0gaGFzIGNsb3NlZC4gRXhpdCwgYnV0IGludGVudGlvbmFsbHkgZG8gbm90IGNsb3NlXG4gICAgICAgIC8vIHRoZSB0YXJnZXQgc3RyZWFtLlxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9LFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUZldGNoIiwiY3JlYXRlRnJvbU5leHRSZWFkYWJsZVN0cmVhbSIsImZldGNoU2VydmVyUmVzcG9uc2UiLCJ1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIiLCJjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0iLCJjcmVhdGVGcm9tUmVhZGFibGVTdHJlYW1Ccm93c2VyIiwidXJsIiwidXJsV2l0aG91dEZsaWdodFBhcmFtZXRlcnMiLCJVUkwiLCJsb2NhdGlvbiIsIm9yaWdpbiIsInNlYXJjaFBhcmFtcyIsImRlbGV0ZSIsIk5FWFRfUlNDX1VOSU9OX1FVRVJZIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiX19ORVhUX0NPTkZJR19PVVRQVVQiLCJwYXRobmFtZSIsImVuZHNXaXRoIiwibGVuZ3RoIiwic2xpY2UiLCJkb01wYU5hdmlnYXRpb24iLCJmbGlnaHREYXRhIiwidG9TdHJpbmciLCJjYW5vbmljYWxVcmwiLCJ1bmRlZmluZWQiLCJjb3VsZEJlSW50ZXJjZXB0ZWQiLCJwcmVyZW5kZXJlZCIsInBvc3Rwb25lZCIsInN0YWxlVGltZSIsImFib3J0Q29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJhYm9ydCIsIm9wdGlvbnMiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIm5leHRVcmwiLCJwcmVmZXRjaEtpbmQiLCJoZWFkZXJzIiwiUlNDX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSIiwicHJlcGFyZUZsaWdodFJvdXRlclN0YXRlRm9yUmVxdWVzdCIsImlzSG1yUmVmcmVzaCIsIlByZWZldGNoS2luZCIsIkFVVE8iLCJORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIiLCJORVhUX0hNUl9SRUZSRVNIX0hFQURFUiIsIk5FWFRfVVJMIiwicmVzIiwiZmV0Y2hQcmlvcml0eSIsIlRFTVBPUkFSWSIsInNpZ25hbCIsInJlc3BvbnNlVXJsIiwicmVkaXJlY3RlZCIsImNvbnRlbnRUeXBlIiwiZ2V0IiwiaW50ZXJjZXB0aW9uIiwiaW5jbHVkZXMiLCJORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIiLCJzdGFsZVRpbWVIZWFkZXJTZWNvbmRzIiwiTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIiLCJwYXJzZUludCIsImlzRmxpZ2h0UmVzcG9uc2UiLCJzdGFydHNXaXRoIiwiUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIiLCJvayIsImJvZHkiLCJoYXNoIiwiVFVSQk9QQUNLIiwicmVxdWlyZSIsIndhaXRGb3JXZWJwYWNrUnVudGltZUhvdFVwZGF0ZSIsImZsaWdodFN0cmVhbSIsImNyZWF0ZVVuY2xvc2luZ1ByZWZldGNoU3RyZWFtIiwicmVzcG9uc2UiLCJnZXRBcHBCdWlsZElkIiwiYiIsIm5vcm1hbGl6ZUZsaWdodERhdGEiLCJmIiwiUyIsImVyciIsImFib3J0ZWQiLCJjb25zb2xlIiwiZXJyb3IiLCJfX05FWFRfVEVTVF9NT0RFIiwiTkVYVF9ERVBMT1lNRU5UX0lEIiwiZmV0Y2hPcHRpb25zIiwiY3JlZGVudGlhbHMiLCJwcmlvcml0eSIsImZldGNoVXJsIiwic2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0iLCJicm93c2VyUmVzcG9uc2UiLCJmZXRjaCIsIl9fTkVYVF9DTElFTlRfVkFMSURBVEVfUlNDX1JFUVVFU1RfSEVBREVSUyIsIk1BWF9SRURJUkVDVFMiLCJuIiwicnNjUmVzcG9uc2UiLCJocmVmIiwic3RhdHVzIiwiY2FsbFNlcnZlciIsImZpbmRTb3VyY2VNYXBVUkwiLCJvcmlnaW5hbEZsaWdodFN0cmVhbSIsInJlYWRlciIsImdldFJlYWRlciIsIlJlYWRhYmxlU3RyZWFtIiwicHVsbCIsImNvbnRyb2xsZXIiLCJkb25lIiwidmFsdWUiLCJyZWFkIiwiZW5xdWV1ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js":
/*!*****************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js ***!
\*****************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n fillCacheWithNewSubTreeData: function() {\n return fillCacheWithNewSubTreeData;\n },\n fillCacheWithNewSubTreeDataButOnlyLoading: function() {\n return fillCacheWithNewSubTreeDataButOnlyLoading;\n }\n});\nconst _invalidatecachebyrouterstate = __webpack_require__(/*! ./invalidate-cache-by-router-state */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js\");\nconst _filllazyitemstillleafwithhead = __webpack_require__(/*! ./fill-lazy-items-till-leaf-with-head */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\n/**\n * Common logic for filling cache with new sub tree data.\n */ function fillCacheHelper(navigatedAt, newCache, existingCache, flightData, prefetchEntry, fillLazyItems) {\n const { segmentPath, seedData: cacheNodeSeedData, tree: treePatch, head } = flightData;\n let newCacheNode = newCache;\n let existingCacheNode = existingCache;\n for(let i = 0; i < segmentPath.length; i += 2){\n const parallelRouteKey = segmentPath[i];\n const segment = segmentPath[i + 1];\n // segmentPath is a repeating tuple of parallelRouteKey and segment\n // we know we've hit the last entry we've reached our final pair\n const isLastEntry = i === segmentPath.length - 2;\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segment);\n const existingChildSegmentMap = existingCacheNode.parallelRoutes.get(parallelRouteKey);\n if (!existingChildSegmentMap) {\n continue;\n }\n let childSegmentMap = newCacheNode.parallelRoutes.get(parallelRouteKey);\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap);\n newCacheNode.parallelRoutes.set(parallelRouteKey, childSegmentMap);\n }\n const existingChildCacheNode = existingChildSegmentMap.get(cacheKey);\n let childCacheNode = childSegmentMap.get(cacheKey);\n if (isLastEntry) {\n if (cacheNodeSeedData && (!childCacheNode || !childCacheNode.lazyData || childCacheNode === existingChildCacheNode)) {\n const incomingSegment = cacheNodeSeedData[0];\n const rsc = cacheNodeSeedData[1];\n const loading = cacheNodeSeedData[3];\n childCacheNode = {\n lazyData: null,\n // When `fillLazyItems` is false, we only want to fill the RSC data for the layout,\n // not the page segment.\n rsc: fillLazyItems || incomingSegment !== _segment.PAGE_SEGMENT_KEY ? rsc : null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n loading,\n parallelRoutes: fillLazyItems && existingChildCacheNode ? new Map(existingChildCacheNode.parallelRoutes) : new Map(),\n navigatedAt\n };\n if (existingChildCacheNode && fillLazyItems) {\n (0, _invalidatecachebyrouterstate.invalidateCacheByRouterState)(childCacheNode, existingChildCacheNode, treePatch);\n }\n if (fillLazyItems) {\n (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, childCacheNode, existingChildCacheNode, treePatch, cacheNodeSeedData, head, prefetchEntry);\n }\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n continue;\n }\n if (!childCacheNode || !existingChildCacheNode) {\n continue;\n }\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes),\n loading: childCacheNode.loading\n };\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n // Move deeper into the cache nodes\n newCacheNode = childCacheNode;\n existingCacheNode = existingChildCacheNode;\n }\n}\nfunction fillCacheWithNewSubTreeData(navigatedAt, newCache, existingCache, flightData, prefetchEntry) {\n fillCacheHelper(navigatedAt, newCache, existingCache, flightData, prefetchEntry, true);\n}\nfunction fillCacheWithNewSubTreeDataButOnlyLoading(navigatedAt, newCache, existingCache, flightData, prefetchEntry) {\n fillCacheHelper(navigatedAt, newCache, existingCache, flightData, prefetchEntry, false);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=fill-cache-with-new-subtree-data.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZpbGwtY2FjaGUtd2l0aC1uZXctc3VidHJlZS1kYXRhLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQXdJZ0JBLDJCQUEyQjtlQUEzQkE7O0lBaUJBQyx5Q0FBeUM7ZUFBekNBOzs7MERBdko2QjsyREFDQztrREFDVDtxQ0FFSjtBQUdqQzs7Q0FFQyxHQUNELFNBQVNDLGdCQUNQQyxXQUFtQixFQUNuQkMsUUFBbUIsRUFDbkJDLGFBQXdCLEVBQ3hCQyxVQUFnQyxFQUNoQ0MsYUFBNkMsRUFDN0NDLGFBQXNCO0lBRXRCLE1BQU0sRUFDSkMsV0FBVyxFQUNYQyxVQUFVQyxpQkFBaUIsRUFDM0JDLE1BQU1DLFNBQVMsRUFDZkMsSUFBSSxFQUNMLEdBQUdSO0lBQ0osSUFBSVMsZUFBZVg7SUFDbkIsSUFBSVksb0JBQW9CWDtJQUV4QixJQUFLLElBQUlZLElBQUksR0FBR0EsSUFBSVIsWUFBWVMsTUFBTSxFQUFFRCxLQUFLLEVBQUc7UUFDOUMsTUFBTUUsbUJBQTJCVixXQUFXLENBQUNRLEVBQUU7UUFDL0MsTUFBTUcsVUFBbUJYLFdBQVcsQ0FBQ1EsSUFBSSxFQUFFO1FBRTNDLG1FQUFtRTtRQUNuRSxnRUFBZ0U7UUFDaEUsTUFBTUksY0FBY0osTUFBTVIsWUFBWVMsTUFBTSxHQUFHO1FBQy9DLE1BQU1JLFdBQVdDLENBQUFBLEdBQUFBLHNCQUFBQSxvQkFBQUEsRUFBcUJIO1FBRXRDLE1BQU1JLDBCQUNKUixrQkFBa0JTLGNBQWMsQ0FBQ0MsR0FBRyxDQUFDUDtRQUV2QyxJQUFJLENBQUNLLHlCQUF5QjtZQUc1QjtRQUNGO1FBRUEsSUFBSUcsa0JBQWtCWixhQUFhVSxjQUFjLENBQUNDLEdBQUcsQ0FBQ1A7UUFDdEQsSUFBSSxDQUFDUSxtQkFBbUJBLG9CQUFvQkgseUJBQXlCO1lBQ25FRyxrQkFBa0IsSUFBSUMsSUFBSUo7WUFDMUJULGFBQWFVLGNBQWMsQ0FBQ0ksR0FBRyxDQUFDVixrQkFBa0JRO1FBQ3BEO1FBRUEsTUFBTUcseUJBQXlCTix3QkFBd0JFLEdBQUcsQ0FBQ0o7UUFDM0QsSUFBSVMsaUJBQWlCSixnQkFBZ0JELEdBQUcsQ0FBQ0o7UUFFekMsSUFBSUQsYUFBYTtZQUNmLElBQ0VWLHFCQUNDLEVBQUNvQixrQkFDQSxDQUFDQSxlQUFlQyxRQUFRLElBQ3hCRCxtQkFBbUJELHNCQUFBQSxDQUFxQixFQUMxQztnQkFDQSxNQUFNRyxrQkFBa0J0QixpQkFBaUIsQ0FBQyxFQUFFO2dCQUM1QyxNQUFNdUIsTUFBTXZCLGlCQUFpQixDQUFDLEVBQUU7Z0JBQ2hDLE1BQU13QixVQUFVeEIsaUJBQWlCLENBQUMsRUFBRTtnQkFFcENvQixpQkFBaUI7b0JBQ2ZDLFVBQVU7b0JBQ1YsbUZBQW1GO29CQUNuRix3QkFBd0I7b0JBQ3hCRSxLQUNFMUIsaUJBQWlCeUIsb0JBQW9CRyxTQUFBQSxnQkFBZ0IsR0FBR0YsTUFBTTtvQkFDaEVHLGFBQWE7b0JBQ2J2QixNQUFNO29CQUNOd0IsY0FBYztvQkFDZEg7b0JBQ0FWLGdCQUNFakIsaUJBQWlCc0IseUJBQ2IsSUFBSUYsSUFBSUUsdUJBQXVCTCxjQUFjLElBQzdDLElBQUlHO29CQUNWekI7Z0JBQ0Y7Z0JBRUEsSUFBSTJCLDBCQUEwQnRCLGVBQWU7b0JBQzNDK0IsQ0FBQUEsR0FBQUEsOEJBQUFBLDRCQUFBQSxFQUNFUixnQkFDQUQsd0JBQ0FqQjtnQkFFSjtnQkFDQSxJQUFJTCxlQUFlO29CQUNqQmdDLENBQUFBLEdBQUFBLCtCQUFBQSw2QkFBQUEsRUFDRXJDLGFBQ0E0QixnQkFDQUQsd0JBQ0FqQixXQUNBRixtQkFDQUcsTUFDQVA7Z0JBRUo7Z0JBRUFvQixnQkFBZ0JFLEdBQUcsQ0FBQ1AsVUFBVVM7WUFDaEM7WUFDQTtRQUNGO1FBRUEsSUFBSSxDQUFDQSxrQkFBa0IsQ0FBQ0Qsd0JBQXdCO1lBRzlDO1FBQ0Y7UUFFQSxJQUFJQyxtQkFBbUJELHdCQUF3QjtZQUM3Q0MsaUJBQWlCO2dCQUNmQyxVQUFVRCxlQUFlQyxRQUFRO2dCQUNqQ0UsS0FBS0gsZUFBZUcsR0FBRztnQkFDdkJHLGFBQWFOLGVBQWVNLFdBQVc7Z0JBQ3ZDdkIsTUFBTWlCLGVBQWVqQixJQUFJO2dCQUN6QndCLGNBQWNQLGVBQWVPLFlBQVk7Z0JBQ3pDYixnQkFBZ0IsSUFBSUcsSUFBSUcsZUFBZU4sY0FBYztnQkFDckRVLFNBQVNKLGVBQWVJLE9BQU87WUFDakM7WUFDQVIsZ0JBQWdCRSxHQUFHLENBQUNQLFVBQVVTO1FBQ2hDO1FBRUEsbUNBQW1DO1FBQ25DaEIsZUFBZWdCO1FBQ2ZmLG9CQUFvQmM7SUFDdEI7QUFDRjtBQUtPLFNBQVM5Qiw0QkFDZEcsV0FBbUIsRUFDbkJDLFFBQW1CLEVBQ25CQyxhQUF3QixFQUN4QkMsVUFBZ0MsRUFDaENDLGFBQWtDO0lBRWxDTCxnQkFDRUMsYUFDQUMsVUFDQUMsZUFDQUMsWUFDQUMsZUFDQTtBQUVKO0FBRU8sU0FBU04sMENBQ2RFLFdBQW1CLEVBQ25CQyxRQUFtQixFQUNuQkMsYUFBd0IsRUFDeEJDLFVBQWdDLEVBQ2hDQyxhQUFrQztJQUVsQ0wsZ0JBQ0VDLGFBQ0FDLFVBQ0FDLGVBQ0FDLFlBQ0FDLGVBQ0E7QUFFSiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZpbGwtY2FjaGUtd2l0aC1uZXctc3VidHJlZS1kYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IFNlZ21lbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7IGludmFsaWRhdGVDYWNoZUJ5Um91dGVyU3RhdGUgfSBmcm9tICcuL2ludmFsaWRhdGUtY2FjaGUtYnktcm91dGVyLXN0YXRlJ1xuaW1wb3J0IHsgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQgfSBmcm9tICcuL2ZpbGwtbGF6eS1pdGVtcy10aWxsLWxlYWYtd2l0aC1oZWFkJ1xuaW1wb3J0IHsgY3JlYXRlUm91dGVyQ2FjaGVLZXkgfSBmcm9tICcuL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5J1xuaW1wb3J0IHR5cGUgeyBQcmVmZXRjaENhY2hlRW50cnkgfSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHsgUEFHRV9TRUdNRU5UX0tFWSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvc2VnbWVudCdcbmltcG9ydCB0eXBlIHsgTm9ybWFsaXplZEZsaWdodERhdGEgfSBmcm9tICcuLi8uLi9mbGlnaHQtZGF0YS1oZWxwZXJzJ1xuXG4vKipcbiAqIENvbW1vbiBsb2dpYyBmb3IgZmlsbGluZyBjYWNoZSB3aXRoIG5ldyBzdWIgdHJlZSBkYXRhLlxuICovXG5mdW5jdGlvbiBmaWxsQ2FjaGVIZWxwZXIoXG4gIG5hdmlnYXRlZEF0OiBudW1iZXIsXG4gIG5ld0NhY2hlOiBDYWNoZU5vZGUsXG4gIGV4aXN0aW5nQ2FjaGU6IENhY2hlTm9kZSxcbiAgZmxpZ2h0RGF0YTogTm9ybWFsaXplZEZsaWdodERhdGEsXG4gIHByZWZldGNoRW50cnk6IFByZWZldGNoQ2FjaGVFbnRyeSB8IHVuZGVmaW5lZCxcbiAgZmlsbExhenlJdGVtczogYm9vbGVhblxuKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBzZWdtZW50UGF0aCxcbiAgICBzZWVkRGF0YTogY2FjaGVOb2RlU2VlZERhdGEsXG4gICAgdHJlZTogdHJlZVBhdGNoLFxuICAgIGhlYWQsXG4gIH0gPSBmbGlnaHREYXRhXG4gIGxldCBuZXdDYWNoZU5vZGUgPSBuZXdDYWNoZVxuICBsZXQgZXhpc3RpbmdDYWNoZU5vZGUgPSBleGlzdGluZ0NhY2hlXG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWdtZW50UGF0aC5sZW5ndGg7IGkgKz0gMikge1xuICAgIGNvbnN0IHBhcmFsbGVsUm91dGVLZXk6IHN0cmluZyA9IHNlZ21lbnRQYXRoW2ldXG4gICAgY29uc3Qgc2VnbWVudDogU2VnbWVudCA9IHNlZ21lbnRQYXRoW2kgKyAxXVxuXG4gICAgLy8gc2VnbWVudFBhdGggaXMgYSByZXBlYXRpbmcgdHVwbGUgb2YgcGFyYWxsZWxSb3V0ZUtleSBhbmQgc2VnbWVudFxuICAgIC8vIHdlIGtub3cgd2UndmUgaGl0IHRoZSBsYXN0IGVudHJ5IHdlJ3ZlIHJlYWNoZWQgb3VyIGZpbmFsIHBhaXJcbiAgICBjb25zdCBpc0xhc3RFbnRyeSA9IGkgPT09IHNlZ21lbnRQYXRoLmxlbmd0aCAtIDJcbiAgICBjb25zdCBjYWNoZUtleSA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KHNlZ21lbnQpXG5cbiAgICBjb25zdCBleGlzdGluZ0NoaWxkU2VnbWVudE1hcCA9XG4gICAgICBleGlzdGluZ0NhY2hlTm9kZS5wYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSlcblxuICAgIGlmICghZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXApIHtcbiAgICAgIC8vIEJhaWxvdXQgYmVjYXVzZSB0aGUgZXhpc3RpbmcgY2FjaGUgZG9lcyBub3QgaGF2ZSB0aGUgcGF0aCB0byB0aGUgbGVhZiBub2RlXG4gICAgICAvLyBXaWxsIHRyaWdnZXIgbGF6eSBmZXRjaCBpbiBsYXlvdXQtcm91dGVyIGJlY2F1c2Ugb2YgbWlzc2luZyBzZWdtZW50XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGxldCBjaGlsZFNlZ21lbnRNYXAgPSBuZXdDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXMuZ2V0KHBhcmFsbGVsUm91dGVLZXkpXG4gICAgaWYgKCFjaGlsZFNlZ21lbnRNYXAgfHwgY2hpbGRTZWdtZW50TWFwID09PSBleGlzdGluZ0NoaWxkU2VnbWVudE1hcCkge1xuICAgICAgY2hpbGRTZWdtZW50TWFwID0gbmV3IE1hcChleGlzdGluZ0NoaWxkU2VnbWVudE1hcClcbiAgICAgIG5ld0NhY2hlTm9kZS5wYXJhbGxlbFJvdXRlcy5zZXQocGFyYWxsZWxSb3V0ZUtleSwgY2hpbGRTZWdtZW50TWFwKVxuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUgPSBleGlzdGluZ0NoaWxkU2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpXG4gICAgbGV0IGNoaWxkQ2FjaGVOb2RlID0gY2hpbGRTZWdtZW50TWFwLmdldChjYWNoZUtleSlcblxuICAgIGlmIChpc0xhc3RFbnRyeSkge1xuICAgICAgaWYgKFxuICAgICAgICBjYWNoZU5vZGVTZWVkRGF0YSAmJlxuICAgICAgICAoIWNoaWxkQ2FjaGVOb2RlIHx8XG4gICAgICAgICAgIWNoaWxkQ2FjaGVOb2RlLmxhenlEYXRhIHx8XG4gICAgICAgICAgY2hpbGRDYWNoZU5vZGUgPT09IGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaW5jb21pbmdTZWdtZW50ID0gY2FjaGVOb2RlU2VlZERhdGFbMF1cbiAgICAgICAgY29uc3QgcnNjID0gY2FjaGVOb2RlU2VlZERhdGFbMV1cbiAgICAgICAgY29uc3QgbG9hZGluZyA9IGNhY2hlTm9kZVNlZWREYXRhWzNdXG5cbiAgICAgICAgY2hpbGRDYWNoZU5vZGUgPSB7XG4gICAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgICAgLy8gV2hlbiBgZmlsbExhenlJdGVtc2AgaXMgZmFsc2UsIHdlIG9ubHkgd2FudCB0byBmaWxsIHRoZSBSU0MgZGF0YSBmb3IgdGhlIGxheW91dCxcbiAgICAgICAgICAvLyBub3QgdGhlIHBhZ2Ugc2VnbWVudC5cbiAgICAgICAgICByc2M6XG4gICAgICAgICAgICBmaWxsTGF6eUl0ZW1zIHx8IGluY29taW5nU2VnbWVudCAhPT0gUEFHRV9TRUdNRU5UX0tFWSA/IHJzYyA6IG51bGwsXG4gICAgICAgICAgcHJlZmV0Y2hSc2M6IG51bGwsXG4gICAgICAgICAgaGVhZDogbnVsbCxcbiAgICAgICAgICBwcmVmZXRjaEhlYWQ6IG51bGwsXG4gICAgICAgICAgbG9hZGluZyxcbiAgICAgICAgICBwYXJhbGxlbFJvdXRlczpcbiAgICAgICAgICAgIGZpbGxMYXp5SXRlbXMgJiYgZXhpc3RpbmdDaGlsZENhY2hlTm9kZVxuICAgICAgICAgICAgICA/IG5ldyBNYXAoZXhpc3RpbmdDaGlsZENhY2hlTm9kZS5wYXJhbGxlbFJvdXRlcylcbiAgICAgICAgICAgICAgOiBuZXcgTWFwKCksXG4gICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXhpc3RpbmdDaGlsZENhY2hlTm9kZSAmJiBmaWxsTGF6eUl0ZW1zKSB7XG4gICAgICAgICAgaW52YWxpZGF0ZUNhY2hlQnlSb3V0ZXJTdGF0ZShcbiAgICAgICAgICAgIGNoaWxkQ2FjaGVOb2RlLFxuICAgICAgICAgICAgZXhpc3RpbmdDaGlsZENhY2hlTm9kZSxcbiAgICAgICAgICAgIHRyZWVQYXRjaFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsbExhenlJdGVtcykge1xuICAgICAgICAgIGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkKFxuICAgICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgICBjaGlsZENhY2hlTm9kZSxcbiAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUsXG4gICAgICAgICAgICB0cmVlUGF0Y2gsXG4gICAgICAgICAgICBjYWNoZU5vZGVTZWVkRGF0YSxcbiAgICAgICAgICAgIGhlYWQsXG4gICAgICAgICAgICBwcmVmZXRjaEVudHJ5XG4gICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGRTZWdtZW50TWFwLnNldChjYWNoZUtleSwgY2hpbGRDYWNoZU5vZGUpXG4gICAgICB9XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGlmICghY2hpbGRDYWNoZU5vZGUgfHwgIWV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUpIHtcbiAgICAgIC8vIEJhaWxvdXQgYmVjYXVzZSB0aGUgZXhpc3RpbmcgY2FjaGUgZG9lcyBub3QgaGF2ZSB0aGUgcGF0aCB0byB0aGUgbGVhZiBub2RlXG4gICAgICAvLyBXaWxsIHRyaWdnZXIgbGF6eSBmZXRjaCBpbiBsYXlvdXQtcm91dGVyIGJlY2F1c2Ugb2YgbWlzc2luZyBzZWdtZW50XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGlmIChjaGlsZENhY2hlTm9kZSA9PT0gZXhpc3RpbmdDaGlsZENhY2hlTm9kZSkge1xuICAgICAgY2hpbGRDYWNoZU5vZGUgPSB7XG4gICAgICAgIGxhenlEYXRhOiBjaGlsZENhY2hlTm9kZS5sYXp5RGF0YSxcbiAgICAgICAgcnNjOiBjaGlsZENhY2hlTm9kZS5yc2MsXG4gICAgICAgIHByZWZldGNoUnNjOiBjaGlsZENhY2hlTm9kZS5wcmVmZXRjaFJzYyxcbiAgICAgICAgaGVhZDogY2hpbGRDYWNoZU5vZGUuaGVhZCxcbiAgICAgICAgcHJlZmV0Y2hIZWFkOiBjaGlsZENhY2hlTm9kZS5wcmVmZXRjaEhlYWQsXG4gICAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKGNoaWxkQ2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzKSxcbiAgICAgICAgbG9hZGluZzogY2hpbGRDYWNoZU5vZGUubG9hZGluZyxcbiAgICAgIH0gYXMgQ2FjaGVOb2RlXG4gICAgICBjaGlsZFNlZ21lbnRNYXAuc2V0KGNhY2hlS2V5LCBjaGlsZENhY2hlTm9kZSlcbiAgICB9XG5cbiAgICAvLyBNb3ZlIGRlZXBlciBpbnRvIHRoZSBjYWNoZSBub2Rlc1xuICAgIG5ld0NhY2hlTm9kZSA9IGNoaWxkQ2FjaGVOb2RlXG4gICAgZXhpc3RpbmdDYWNoZU5vZGUgPSBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlXG4gIH1cbn1cblxuLyoqXG4gKiBGaWxsIGNhY2hlIHdpdGggcnNjIGJhc2VkIG9uIGZsaWdodERhdGFQYXRoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGEoXG4gIG5hdmlnYXRlZEF0OiBudW1iZXIsXG4gIG5ld0NhY2hlOiBDYWNoZU5vZGUsXG4gIGV4aXN0aW5nQ2FjaGU6IENhY2hlTm9kZSxcbiAgZmxpZ2h0RGF0YTogTm9ybWFsaXplZEZsaWdodERhdGEsXG4gIHByZWZldGNoRW50cnk/OiBQcmVmZXRjaENhY2hlRW50cnlcbik6IHZvaWQge1xuICBmaWxsQ2FjaGVIZWxwZXIoXG4gICAgbmF2aWdhdGVkQXQsXG4gICAgbmV3Q2FjaGUsXG4gICAgZXhpc3RpbmdDYWNoZSxcbiAgICBmbGlnaHREYXRhLFxuICAgIHByZWZldGNoRW50cnksXG4gICAgdHJ1ZVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGFCdXRPbmx5TG9hZGluZyhcbiAgbmF2aWdhdGVkQXQ6IG51bWJlcixcbiAgbmV3Q2FjaGU6IENhY2hlTm9kZSxcbiAgZXhpc3RpbmdDYWNoZTogQ2FjaGVOb2RlLFxuICBmbGlnaHREYXRhOiBOb3JtYWxpemVkRmxpZ2h0RGF0YSxcbiAgcHJlZmV0Y2hFbnRyeT86IFByZWZldGNoQ2FjaGVFbnRyeVxuKTogdm9pZCB7XG4gIGZpbGxDYWNoZUhlbHBlcihcbiAgICBuYXZpZ2F0ZWRBdCxcbiAgICBuZXdDYWNoZSxcbiAgICBleGlzdGluZ0NhY2hlLFxuICAgIGZsaWdodERhdGEsXG4gICAgcHJlZmV0Y2hFbnRyeSxcbiAgICBmYWxzZVxuICApXG59XG4iXSwibmFtZXMiOlsiZmlsbENhY2hlV2l0aE5ld1N1YlRyZWVEYXRhIiwiZmlsbENhY2hlV2l0aE5ld1N1YlRyZWVEYXRhQnV0T25seUxvYWRpbmciLCJmaWxsQ2FjaGVIZWxwZXIiLCJuYXZpZ2F0ZWRBdCIsIm5ld0NhY2hlIiwiZXhpc3RpbmdDYWNoZSIsImZsaWdodERhdGEiLCJwcmVmZXRjaEVudHJ5IiwiZmlsbExhenlJdGVtcyIsInNlZ21lbnRQYXRoIiwic2VlZERhdGEiLCJjYWNoZU5vZGVTZWVkRGF0YSIsInRyZWUiLCJ0cmVlUGF0Y2giLCJoZWFkIiwibmV3Q2FjaGVOb2RlIiwiZXhpc3RpbmdDYWNoZU5vZGUiLCJpIiwibGVuZ3RoIiwicGFyYWxsZWxSb3V0ZUtleSIsInNlZ21lbnQiLCJpc0xhc3RFbnRyeSIsImNhY2hlS2V5IiwiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJleGlzdGluZ0NoaWxkU2VnbWVudE1hcCIsInBhcmFsbGVsUm91dGVzIiwiZ2V0IiwiY2hpbGRTZWdtZW50TWFwIiwiTWFwIiwic2V0IiwiZXhpc3RpbmdDaGlsZENhY2hlTm9kZSIsImNoaWxkQ2FjaGVOb2RlIiwibGF6eURhdGEiLCJpbmNvbWluZ1NlZ21lbnQiLCJyc2MiLCJsb2FkaW5nIiwiUEFHRV9TRUdNRU5UX0tFWSIsInByZWZldGNoUnNjIiwicHJlZmV0Y2hIZWFkIiwiaW52YWxpZGF0ZUNhY2hlQnlSb3V0ZXJTdGF0ZSIsImZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js":
/*!********************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js ***!
\********************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"fillLazyItemsTillLeafWithHead\", ({\n enumerable: true,\n get: function() {\n return fillLazyItemsTillLeafWithHead;\n }\n}));\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nfunction fillLazyItemsTillLeafWithHead(navigatedAt, newCache, existingCache, routerState, cacheNodeSeedData, head, prefetchEntry) {\n const isLastSegment = Object.keys(routerState[1]).length === 0;\n if (isLastSegment) {\n newCache.head = head;\n return;\n }\n // Remove segment that we got data for so that it is filled in during rendering of rsc.\n for(const key in routerState[1]){\n const parallelRouteState = routerState[1][key];\n const segmentForParallelRoute = parallelRouteState[0];\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute);\n // TODO: We should traverse the cacheNodeSeedData tree instead of the router\n // state tree. Ideally, they would always be the same shape, but because of\n // the loading.js pattern, cacheNodeSeedData sometimes only represents a\n // partial tree. That's why this node is sometimes null. Once PPR lands,\n // loading.js will no longer have special behavior and we can traverse the\n // data tree instead.\n //\n // We should also consider merging the router state tree and the data tree\n // in the response format, so that we don't have to send the keys twice.\n // Then the client can convert them into separate representations.\n const parallelSeedData = cacheNodeSeedData !== null && cacheNodeSeedData[2][key] !== undefined ? cacheNodeSeedData[2][key] : null;\n if (existingCache) {\n const existingParallelRoutesCacheNode = existingCache.parallelRoutes.get(key);\n if (existingParallelRoutesCacheNode) {\n const hasReusablePrefetch = (prefetchEntry == null ? void 0 : prefetchEntry.kind) === 'auto' && prefetchEntry.status === _routerreducertypes.PrefetchCacheEntryStatus.reusable;\n let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode);\n const existingCacheNode = parallelRouteCacheNode.get(cacheKey);\n let newCacheNode;\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const seedNode = parallelSeedData[1];\n const loading = parallelSeedData[3];\n newCacheNode = {\n lazyData: null,\n rsc: seedNode,\n // This is a PPR-only field. When PPR is enabled, we shouldn't hit\n // this path during a navigation, but until PPR is fully implemented\n // yet it's possible the existing node does have a non-null\n // `prefetchRsc`. As an incremental step, we'll just de-opt to the\n // old behavior — no PPR value.\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n loading,\n parallelRoutes: new Map(existingCacheNode == null ? void 0 : existingCacheNode.parallelRoutes),\n navigatedAt\n };\n } else if (hasReusablePrefetch && existingCacheNode) {\n // No new data was sent from the server, but the existing cache node\n // was prefetched, so we should reuse that.\n newCacheNode = {\n lazyData: existingCacheNode.lazyData,\n rsc: existingCacheNode.rsc,\n // This is a PPR-only field. Unlike the previous branch, since we're\n // just cloning the existing cache node, we might as well keep the\n // PPR value, if it exists.\n prefetchRsc: existingCacheNode.prefetchRsc,\n head: existingCacheNode.head,\n prefetchHead: existingCacheNode.prefetchHead,\n parallelRoutes: new Map(existingCacheNode.parallelRoutes),\n loading: existingCacheNode.loading\n };\n } else {\n // No data available for this node. This will trigger a lazy fetch\n // during render.\n newCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(existingCacheNode == null ? void 0 : existingCacheNode.parallelRoutes),\n loading: null,\n navigatedAt\n };\n }\n // Overrides the cache key with the new cache node.\n parallelRouteCacheNode.set(cacheKey, newCacheNode);\n // Traverse deeper to apply the head / fill lazy items till the head.\n fillLazyItemsTillLeafWithHead(navigatedAt, newCacheNode, existingCacheNode, parallelRouteState, parallelSeedData ? parallelSeedData : null, head, prefetchEntry);\n newCache.parallelRoutes.set(key, parallelRouteCacheNode);\n continue;\n }\n }\n let newCacheNode;\n if (parallelSeedData !== null) {\n // New data was sent from the server.\n const seedNode = parallelSeedData[1];\n const loading = parallelSeedData[3];\n newCacheNode = {\n lazyData: null,\n rsc: seedNode,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading,\n navigatedAt\n };\n } else {\n // No data available for this node. This will trigger a lazy fetch\n // during render.\n newCacheNode = {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt\n };\n }\n const existingParallelRoutes = newCache.parallelRoutes.get(key);\n if (existingParallelRoutes) {\n existingParallelRoutes.set(cacheKey, newCacheNode);\n } else {\n newCache.parallelRoutes.set(key, new Map([\n [\n cacheKey,\n newCacheNode\n ]\n ]));\n }\n fillLazyItemsTillLeafWithHead(navigatedAt, newCacheNode, undefined, parallelRouteState, parallelSeedData, head, prefetchEntry);\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=fill-lazy-items-till-leaf-with-head.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ZpbGwtbGF6eS1pdGVtcy10aWxsLWxlYWYtd2l0aC1oZWFkLmpzIiwibWFwcGluZ3MiOiI7Ozs7aUVBV2dCQTs7O2VBQUFBOzs7a0RBTnFCO2dEQUk5QjtBQUVBLFNBQVNBLDhCQUNkQyxXQUFtQixFQUNuQkMsUUFBbUIsRUFDbkJDLGFBQW9DLEVBQ3BDQyxXQUE4QixFQUM5QkMsaUJBQTJDLEVBQzNDQyxJQUFxQixFQUNyQkMsYUFBNkM7SUFFN0MsTUFBTUMsZ0JBQWdCQyxPQUFPQyxJQUFJLENBQUNOLFdBQVcsQ0FBQyxFQUFFLEVBQUVPLE1BQU0sS0FBSztJQUM3RCxJQUFJSCxlQUFlO1FBQ2pCTixTQUFTSSxJQUFJLEdBQUdBO1FBQ2hCO0lBQ0Y7SUFDQSx1RkFBdUY7SUFDdkYsSUFBSyxNQUFNTSxPQUFPUixXQUFXLENBQUMsRUFBRSxDQUFFO1FBQ2hDLE1BQU1TLHFCQUFxQlQsV0FBVyxDQUFDLEVBQUUsQ0FBQ1EsSUFBSTtRQUM5QyxNQUFNRSwwQkFBMEJELGtCQUFrQixDQUFDLEVBQUU7UUFDckQsTUFBTUUsV0FBV0MsQ0FBQUEsR0FBQUEsc0JBQUFBLG9CQUFBQSxFQUFxQkY7UUFFdEMsNEVBQTRFO1FBQzVFLDJFQUEyRTtRQUMzRSx3RUFBd0U7UUFDeEUsd0VBQXdFO1FBQ3hFLDBFQUEwRTtRQUMxRSxxQkFBcUI7UUFDckIsRUFBRTtRQUNGLDBFQUEwRTtRQUMxRSx3RUFBd0U7UUFDeEUsa0VBQWtFO1FBQ2xFLE1BQU1HLG1CQUNKWixzQkFBc0IsUUFBUUEsaUJBQWlCLENBQUMsRUFBRSxDQUFDTyxJQUFJLEtBQUtNLFlBQ3hEYixpQkFBaUIsQ0FBQyxFQUFFLENBQUNPLElBQUksR0FDekI7UUFDTixJQUFJVCxlQUFlO1lBQ2pCLE1BQU1nQixrQ0FDSmhCLGNBQWNpQixjQUFjLENBQUNDLEdBQUcsQ0FBQ1Q7WUFDbkMsSUFBSU8saUNB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NUIsU0FBU2tCLGNBQWMsQ0FBQ2lCLEdBQUcsQ0FBQ3pCLEtBQUssSUFBSWdCLElBQUk7Z0JBQUM7b0JBQUNiO29CQUFVZTtpQkFBYTthQUFDO1FBQ3JFO1FBRUE5Qiw4QkFDRUMsYUFDQTZCLGNBQ0FaLFdBQ0FMLG9CQUNBSSxrQkFDQVgsTUFDQUM7SUFFSjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZmlsbC1sYXp5LWl0ZW1zLXRpbGwtbGVhZi13aXRoLWhlYWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHtcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIENhY2hlTm9kZVNlZWREYXRhLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7IGNyZWF0ZVJvdXRlckNhY2hlS2V5IH0gZnJvbSAnLi9jcmVhdGUtcm91dGVyLWNhY2hlLWtleSdcbmltcG9ydCB7XG4gIFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cyxcbiAgdHlwZSBQcmVmZXRjaENhY2hlRW50cnksXG59IGZyb20gJy4vcm91dGVyLXJlZHVjZXItdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZChcbiAgbmF2aWdhdGVkQXQ6IG51bWJlcixcbiAgbmV3Q2FjaGU6IENhY2hlTm9kZSxcbiAgZXhpc3RpbmdDYWNoZTogQ2FjaGVOb2RlIHwgdW5kZWZpbmVkLFxuICByb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIGNhY2hlTm9kZVNlZWREYXRhOiBDYWNoZU5vZGVTZWVkRGF0YSB8IG51bGwsXG4gIGhlYWQ6IFJlYWN0LlJlYWN0Tm9kZSxcbiAgcHJlZmV0Y2hFbnRyeTogUHJlZmV0Y2hDYWNoZUVudHJ5IHwgdW5kZWZpbmVkXG4pOiB2b2lkIHtcbiAgY29uc3QgaXNMYXN0U2VnbWVudCA9IE9iamVjdC5rZXlzKHJvdXRlclN0YXRlWzFdKS5sZW5ndGggPT09IDBcbiAgaWYgKGlzTGFzdFNlZ21lbnQpIHtcbiAgICBuZXdDYWNoZS5oZWFkID0gaGVhZFxuICAgIHJldHVyblxuICB9XG4gIC8vIFJlbW92ZSBzZWdtZW50IHRoYXQgd2UgZ290IGRhdGEgZm9yIHNvIHRoYXQgaXQgaXMgZmlsbGVkIGluIGR1cmluZyByZW5kZXJpbmcgb2YgcnNjLlxuICBmb3IgKGNvbnN0IGtleSBpbiByb3V0ZXJTdGF0ZVsxXSkge1xuICAgIGNvbnN0IHBhcmFsbGVsUm91dGVTdGF0ZSA9IHJvdXRlclN0YXRlWzFdW2tleV1cbiAgICBjb25zdCBzZWdtZW50Rm9yUGFyYWxsZWxSb3V0ZSA9IHBhcmFsbGVsUm91dGVTdGF0ZVswXVxuICAgIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoc2VnbWVudEZvclBhcmFsbGVsUm91dGUpXG5cbiAgICAvLyBUT0RPOiBXZSBzaG91bGQgdHJhdmVyc2UgdGhlIGNhY2hlTm9kZVNlZWREYXRhIHRyZWUgaW5zdGVhZCBvZiB0aGUgcm91dGVyXG4gICAgLy8gc3RhdGUgdHJlZS4gSWRlYWxseSwgdGhleSB3b3VsZCBhbHdheXMgYmUgdGhlIHNhbWUgc2hhcGUsIGJ1dCBiZWNhdXNlIG9mXG4gICAgLy8gdGhlIGxvYWRpbmcuanMgcGF0dGVybiwgY2FjaGVOb2RlU2VlZERhdGEgc29tZXRpbWVzIG9ubHkgcmVwcmVzZW50cyBhXG4gICAgLy8gcGFydGlhbCB0cmVlLiBUaGF0J3Mgd2h5IHRoaXMgbm9kZSBpcyBzb21ldGltZXMgbnVsbC4gT25jZSBQUFIgbGFuZHMsXG4gICAgLy8gbG9hZGluZy5qcyB3aWxsIG5vIGxvbmdlciBoYXZlIHNwZWNpYWwgYmVoYXZpb3IgYW5kIHdlIGNhbiB0cmF2ZXJzZSB0aGVcbiAgICAvLyBkYXRhIHRyZWUgaW5zdGVhZC5cbiAgICAvL1xuICAgIC8vIFdlIHNob3VsZCBhbHNvIGNvbnNpZGVyIG1lcmdpbmcgdGhlIHJvdXRlciBzdGF0ZSB0cmVlIGFuZCB0aGUgZGF0YSB0cmVlXG4gICAgLy8gaW4gdGhlIHJlc3BvbnNlIGZvcm1hdCwgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHNlbmQgdGhlIGtleXMgdHdpY2UuXG4gICAgLy8gVGhlbiB0aGUgY2xpZW50IGNhbiBjb252ZXJ0IHRoZW0gaW50byBzZXBhcmF0ZSByZXByZXNlbnRhdGlvbnMuXG4gICAgY29uc3QgcGFyYWxsZWxTZWVkRGF0YSA9XG4gICAgICBjYWNoZU5vZGVTZWVkRGF0YSAhPT0gbnVsbCAmJiBjYWNoZU5vZGVTZWVkRGF0YVsyXVtrZXldICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBjYWNoZU5vZGVTZWVkRGF0YVsyXVtrZXldXG4gICAgICAgIDogbnVsbFxuICAgIGlmIChleGlzdGluZ0NhY2hlKSB7XG4gICAgICBjb25zdCBleGlzdGluZ1BhcmFsbGVsUm91dGVzQ2FjaGVOb2RlID1cbiAgICAgICAgZXhpc3RpbmdDYWNoZS5wYXJhbGxlbFJvdXRlcy5nZXQoa2V5KVxuICAgICAgaWYgKGV4aXN0aW5nUGFyYWxsZWxSb3V0ZXNDYWNoZU5vZGUpIHtcbiAgICAgICAgY29uc3QgaGFzUmV1c2FibGVQcmVmZXRjaCA9XG4gICAgICAgICAgcHJlZmV0Y2hFbnRyeT8ua2luZCA9PT0gJ2F1dG8nICYmXG4gICAgICAgICAgcHJlZmV0Y2hFbnRyeS5zdGF0dXMgPT09IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cy5yZXVzYWJsZVxuXG4gICAgICAgIGxldCBwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlID0gbmV3IE1hcChleGlzdGluZ1BhcmFsbGVsUm91dGVzQ2FjaGVOb2RlKVxuICAgICAgICBjb25zdCBleGlzdGluZ0NhY2hlTm9kZSA9IHBhcmFsbGVsUm91dGVDYWNoZU5vZGUuZ2V0KGNhY2hlS2V5KVxuICAgICAgICBsZXQgbmV3Q2FjaGVOb2RlOiBDYWNoZU5vZGVcbiAgICAgICAgaWYgKHBhcmFsbGVsU2VlZERhdGEgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBOZXcgZGF0YSB3YXMgc2VudCBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICAgICAgY29uc3Qgc2VlZE5vZGUgPSBwYXJhbGxlbFNlZWREYXRhWzFdXG4gICAgICAgICAgY29uc3QgbG9hZGluZyA9IHBhcmFsbGVsU2VlZERhdGFbM11cbiAgICAgICAgICBuZXdDYWNoZU5vZGUgPSB7XG4gICAgICAgICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgICAgICAgIHJzYzogc2VlZE5vZGUsXG4gICAgICAgICAgICAvLyBUaGlzIGlzIGEgUFBSLW9ubHkgZmllbGQuIFdoZW4gUFBSIGlzIGVuYWJsZWQsIHdlIHNob3VsZG4ndCBoaXRcbiAgICAgICAgICAgIC8vIHRoaXMgcGF0aCBkdXJpbmcgYSBuYXZpZ2F0aW9uLCBidXQgdW50aWwgUFBSIGlzIGZ1bGx5IGltcGxlbWVudGVkXG4gICAgICAgICAgICAvLyB5ZXQgaXQncyBwb3NzaWJsZSB0aGUgZXhpc3Rpbmcgbm9kZSBkb2VzIGhhdmUgYSBub24tbnVsbFxuICAgICAgICAgICAgLy8gYHByZWZldGNoUnNjYC4gQXMgYW4gaW5jcmVtZW50YWwgc3RlcCwgd2UnbGwganVzdCBkZS1vcHQgdG8gdGhlXG4gICAgICAgICAgICAvLyBvbGQgYmVoYXZpb3Ig4oCUIG5vIFBQUiB2YWx1ZS5cbiAgICAgICAgICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgICAgICAgICAgaGVhZDogbnVsbCxcbiAgICAgICAgICAgIHByZWZldGNoSGVhZDogbnVsbCxcbiAgICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgICBwYXJhbGxlbFJvdXRlczogbmV3IE1hcChleGlzdGluZ0NhY2hlTm9kZT8ucGFyYWxsZWxSb3V0ZXMpLFxuICAgICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGhhc1JldXNhYmxlUHJlZmV0Y2ggJiYgZXhpc3RpbmdDYWNoZU5vZGUpIHtcbiAgICAgICAgICAvLyBObyBuZXcgZGF0YSB3YXMgc2VudCBmcm9tIHRoZSBzZXJ2ZXIsIGJ1dCB0aGUgZXhpc3RpbmcgY2FjaGUgbm9kZVxuICAgICAgICAgIC8vIHdhcyBwcmVmZXRjaGVkLCBzbyB3ZSBzaG91bGQgcmV1c2UgdGhhdC5cbiAgICAgICAgICBuZXdDYWNoZU5vZGUgPSB7XG4gICAgICAgICAgICBsYXp5RGF0YTogZXhpc3RpbmdDYWNoZU5vZGUubGF6eURhdGEsXG4gICAgICAgICAgICByc2M6IGV4aXN0aW5nQ2FjaGVOb2RlLnJzYyxcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBQUFItb25seSBmaWVsZC4gVW5saWtlIHRoZSBwcmV2aW91cyBicmFuY2gsIHNpbmNlIHdlJ3JlXG4gICAgICAgICAgICAvLyBqdXN0IGNsb25pbmcgdGhlIGV4aXN0aW5nIGNhY2hlIG5vZGUsIHdlIG1pZ2h0IGFzIHdlbGwga2VlcCB0aGVcbiAgICAgICAgICAgIC8vIFBQUiB2YWx1ZSwgaWYgaXQgZXhpc3RzLlxuICAgICAgICAgICAgcHJlZmV0Y2hSc2M6IGV4aXN0aW5nQ2FjaGVOb2RlLnByZWZldGNoUnNjLFxuICAgICAgICAgICAgaGVhZDogZXhpc3RpbmdDYWNoZU5vZGUuaGVhZCxcbiAgICAgICAgICAgIHByZWZldGNoSGVhZDogZXhpc3RpbmdDYWNoZU5vZGUucHJlZmV0Y2hIZWFkLFxuICAgICAgICAgICAgcGFyYWxsZWxSb3V0ZXM6IG5ldyBNYXAoZXhpc3RpbmdDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXMpLFxuICAgICAgICAgICAgbG9hZGluZzogZXhpc3RpbmdDYWNoZU5vZGUubG9hZGluZyxcbiAgICAgICAgICB9IGFzIENhY2hlTm9kZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE5vIGRhdGEgYXZhaWxhYmxlIGZvciB0aGlzIG5vZGUuIFRoaXMgd2lsbCB0cmlnZ2VyIGEgbGF6eSBmZXRjaFxuICAgICAgICAgIC8vIGR1cmluZyByZW5kZXIuXG4gICAgICAgICAgbmV3Q2FjaGVOb2RlID0ge1xuICAgICAgICAgICAgbGF6eURhdGE6IG51bGwsXG4gICAgICAgICAgICByc2M6IG51bGwsXG4gICAgICAgICAgICBwcmVmZXRjaFJzYzogbnVsbCxcbiAgICAgICAgICAgIGhlYWQ6IG51bGwsXG4gICAgICAgICAgICBwcmVmZXRjaEhlYWQ6IG51bGwsXG4gICAgICAgICAgICBwYXJhbGxlbFJvdXRlczogbmV3IE1hcChleGlzdGluZ0NhY2hlTm9kZT8ucGFyYWxsZWxSb3V0ZXMpLFxuICAgICAgICAgICAgbG9hZGluZzogbnVsbCxcbiAgICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE92ZXJyaWRlcyB0aGUgY2FjaGUga2V5IHdpdGggdGhlIG5ldyBjYWNoZSBub2RlLlxuICAgICAgICBwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlLnNldChjYWNoZUtleSwgbmV3Q2FjaGVOb2RlKVxuICAgICAgICAvLyBUcmF2ZXJzZSBkZWVwZXIgdG8gYXBwbHkgdGhlIGhlYWQgLyBmaWxsIGxhenkgaXRlbXMgdGlsbCB0aGUgaGVhZC5cbiAgICAgICAgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQoXG4gICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgbmV3Q2FjaGVOb2RlLFxuICAgICAgICAgIGV4aXN0aW5nQ2FjaGVOb2RlLFxuICAgICAgICAgIHBhcmFsbGVsUm91dGVTdGF0ZSxcbiAgICAgICAgICBwYXJhbGxlbFNlZWREYXRhID8gcGFyYWxsZWxTZWVkRGF0YSA6IG51bGwsXG4gICAgICAgICAgaGVhZCxcbiAgICAgICAgICBwcmVmZXRjaEVudHJ5XG4gICAgICAgIClcblxuICAgICAgICBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5zZXQoa2V5LCBwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlKVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBuZXdDYWNoZU5vZGU6IENhY2hlTm9kZVxuICAgIGlmIChwYXJhbGxlbFNlZWREYXRhICE9PSBudWxsKSB7XG4gICAgICAvLyBOZXcgZGF0YSB3YXMgc2VudCBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICBjb25zdCBzZWVkTm9kZSA9IHBhcmFsbGVsU2VlZERhdGFbMV1cbiAgICAgIGNvbnN0IGxvYWRpbmcgPSBwYXJhbGxlbFNlZWREYXRhWzNdXG4gICAgICBuZXdDYWNoZU5vZGUgPSB7XG4gICAgICAgIGxhenlEYXRhOiBudWxsLFxuICAgICAgICByc2M6IHNlZWROb2RlLFxuICAgICAgICBwcmVmZXRjaFJzYzogbnVsbCxcbiAgICAgICAgaGVhZDogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hIZWFkOiBudWxsLFxuICAgICAgICBwYXJhbGxlbFJvdXRlczogbmV3IE1hcCgpLFxuICAgICAgICBsb2FkaW5nLFxuICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gZGF0YSBhdmFpbGFibGUgZm9yIHRoaXMgbm9kZS4gVGhpcyB3aWxsIHRyaWdnZXIgYSBsYXp5IGZldGNoXG4gICAgICAvLyBkdXJpbmcgcmVuZGVyLlxuICAgICAgbmV3Q2FjaGVOb2RlID0ge1xuICAgICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgICAgcnNjOiBudWxsLFxuICAgICAgICBwcmVmZXRjaFJzYzogbnVsbCxcbiAgICAgICAgaGVhZDogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hIZWFkOiBudWxsLFxuICAgICAgICBwYXJhbGxlbFJvdXRlczogbmV3IE1hcCgpLFxuICAgICAgICBsb2FkaW5nOiBudWxsLFxuICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ1BhcmFsbGVsUm91dGVzID0gbmV3Q2FjaGUucGFyYWxsZWxSb3V0ZXMuZ2V0KGtleSlcbiAgICBpZiAoZXhpc3RpbmdQYXJhbGxlbFJvdXRlcykge1xuICAgICAgZXhpc3RpbmdQYXJhbGxlbFJvdXRlcy5zZXQoY2FjaGVLZXksIG5ld0NhY2hlTm9kZSlcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3Q2FjaGUucGFyYWxsZWxSb3V0ZXMuc2V0KGtleSwgbmV3IE1hcChbW2NhY2hlS2V5LCBuZXdDYWNoZU5vZGVdXSkpXG4gICAgfVxuXG4gICAgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQoXG4gICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgIG5ld0NhY2hlTm9kZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHBhcmFsbGVsUm91dGVTdGF0ZSxcbiAgICAgIHBhcmFsbGVsU2VlZERhdGEsXG4gICAgICBoZWFkLFxuICAgICAgcHJlZmV0Y2hFbnRyeVxuICAgIClcbiAgfVxufVxuIl0sIm5hbWVzIjpbImZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIiwibmF2aWdhdGVkQXQiLCJuZXdDYWNoZSIsImV4aXN0aW5nQ2FjaGUiLCJyb3V0ZXJTdGF0ZSIsImNhY2hlTm9kZVNlZWREYXRhIiwiaGVhZCIsInByZWZldGNoRW50cnkiLCJpc0xhc3RTZWdtZW50IiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImtleSIsInBhcmFsbGVsUm91dGVTdGF0ZSIsInNlZ21lbnRGb3JQYXJhbGxlbFJvdXRlIiwiY2FjaGVLZXkiLCJjcmVhdGVSb3V0ZXJDYWNoZUtleSIsInBhcmFsbGVsU2VlZERhdGEiLCJ1bmRlZmluZWQiLCJleGlzdGluZ1BhcmFsbGVsUm91dGVzQ2FjaGVOb2RlIiwicGFyYWxsZWxSb3V0ZXMiLCJnZXQiLCJoYXNSZXVzYWJsZVByZWZldGNoIiwia2luZCIsInN0YXR1cyIsIlByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cyIsInJldXNhYmxlIiwicGFyYWxsZWxSb3V0ZUNhY2hlTm9kZSIsIk1hcCIsImV4aXN0aW5nQ2FjaGVOb2RlIiwibmV3Q2FjaGVOb2RlIiwic2VlZE5vZGUiLCJsb2FkaW5nIiwibGF6eURhdGEiLCJyc2MiLCJwcmVmZXRjaFJzYyIsInByZWZldGNoSGVhZCIsInNldCIsImV4aXN0aW5nUGFyYWxsZWxSb3V0ZXMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js":
/*!***********************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/handle-mutable.js ***!
\***********************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"handleMutable\", ({\n enumerable: true,\n get: function() {\n return handleMutable;\n }\n}));\nconst _computechangedpath = __webpack_require__(/*! ./compute-changed-path */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\");\nfunction isNotUndefined(value) {\n return typeof value !== 'undefined';\n}\nfunction handleMutable(state, mutable) {\n var _mutable_shouldScroll;\n // shouldScroll is true by default, can override to false.\n const shouldScroll = (_mutable_shouldScroll = mutable.shouldScroll) != null ? _mutable_shouldScroll : true;\n let nextUrl = state.nextUrl;\n if (isNotUndefined(mutable.patchedTree)) {\n // If we received a patched tree, we need to compute the changed path.\n const changedPath = (0, _computechangedpath.computeChangedPath)(state.tree, mutable.patchedTree);\n if (changedPath) {\n // If the tree changed, we need to update the nextUrl\n nextUrl = changedPath;\n } else if (!nextUrl) {\n // if the tree ends up being the same (ie, no changed path), and we don't have a nextUrl, then we should use the canonicalUrl\n nextUrl = state.canonicalUrl;\n }\n // otherwise this will be a no-op and continue to use the existing nextUrl\n }\n var _mutable_scrollableSegments;\n return {\n // Set href.\n canonicalUrl: isNotUndefined(mutable.canonicalUrl) ? mutable.canonicalUrl === state.canonicalUrl ? state.canonicalUrl : mutable.canonicalUrl : state.canonicalUrl,\n pushRef: {\n pendingPush: isNotUndefined(mutable.pendingPush) ? mutable.pendingPush : state.pushRef.pendingPush,\n mpaNavigation: isNotUndefined(mutable.mpaNavigation) ? mutable.mpaNavigation : state.pushRef.mpaNavigation,\n preserveCustomHistoryState: isNotUndefined(mutable.preserveCustomHistoryState) ? mutable.preserveCustomHistoryState : state.pushRef.preserveCustomHistoryState\n },\n // All navigation requires scroll and focus management to trigger.\n focusAndScrollRef: {\n apply: shouldScroll ? isNotUndefined(mutable == null ? void 0 : mutable.scrollableSegments) ? true : state.focusAndScrollRef.apply : false,\n onlyHashChange: mutable.onlyHashChange || false,\n hashFragment: shouldScroll ? mutable.hashFragment && mutable.hashFragment !== '' ? decodeURIComponent(mutable.hashFragment.slice(1)) : state.focusAndScrollRef.hashFragment : null,\n segmentPaths: shouldScroll ? (_mutable_scrollableSegments = mutable == null ? void 0 : mutable.scrollableSegments) != null ? _mutable_scrollableSegments : state.focusAndScrollRef.segmentPaths : []\n },\n // Apply cache.\n cache: mutable.cache ? mutable.cache : state.cache,\n prefetchCache: mutable.prefetchCache ? mutable.prefetchCache : state.prefetchCache,\n // Apply patched router state.\n tree: isNotUndefined(mutable.patchedTree) ? mutable.patchedTree : state.tree,\n nextUrl\n };\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=handle-mutable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2hhbmRsZS1tdXRhYmxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBV2dCQTs7O2VBQUFBOzs7Z0RBWG1CO0FBT25DLFNBQVNDLGVBQWtCQyxLQUFRO0lBQ2pDLE9BQU8sT0FBT0EsVUFBVTtBQUMxQjtBQUVPLFNBQVNGLGNBQ2RHLEtBQTJCLEVBQzNCQyxPQUFnQjtRQUdLQTtJQURyQiwwREFBMEQ7SUFDMUQsTUFBTUMsZUFBZUQsQ0FBQUEsd0JBQUFBLFFBQVFDLFlBQUFBLEtBQVksT0FBcEJELHdCQUF3QjtJQUU3QyxJQUFJRSxVQUFVSCxNQUFNRyxPQUFPO0lBRTNCLElBQUlMLGVBQWVHLFFBQVFHLFdBQVcsR0FBRztRQUN2QyxzRUFBc0U7UUFDdEUsTUFBTUMsY0FBY0MsQ0FBQUEsR0FBQUEsb0JBQUFBLGtCQUFBQSxFQUFtQk4sTUFBTU8sSUFBSSxFQUFFTixRQUFRRyxXQUFXO1FBQ3RFLElBQUlDLGFBQWE7WUFDZixxREFBcUQ7WUFDckRGLFVBQVVFO1FBQ1osT0FBTyxJQUFJLENBQUNGLFNBQVM7WUFDbkIsNkhBQTZIO1lBQzdIQSxVQUFVSCxNQUFNUSxZQUFZO1FBQzlCO0lBQ0EsMEVBQTBFO0lBQzVFO1FBeUNRUDtJQXZDUixPQUFPO1FBQ0wsWUFBWTtRQUNaTyxjQUFjVixlQUFlRyxRQUFRTyxZQUFZLElBQzdDUCxRQUFRTyxZQUFZLEtBQUtSLE1BQU1RLFlBQVksR0FDekNSLE1BQU1RLFlBQVksR0FDbEJQLFFBQVFPLFlBQVksR0FDdEJSLE1BQU1RLFlBQVk7UUFDdEJDLFNBQVM7WUFDUEMsYUFBYVosZUFBZUcsUUFBUVMsV0FBVyxJQUMzQ1QsUUFBUVMsV0FBVyxHQUNuQlYsTUFBTVMsT0FBTyxDQUFDQyxXQUFXO1lBQzdCQyxlQUFlYixlQUFlRyxRQUFRVSxhQUFhLElBQy9DVixRQUFRVSxhQUFhLEdBQ3JCWCxNQUFNUyxPQUFPLENBQUNFLGFBQWE7WUFDL0JDLDRCQUE0QmQsZUFDMUJHLFFBQVFXLDBCQUEwQixJQUVoQ1gsUUFBUVcsMEJBQTBCLEdBQ2xDWixNQUFNUyxPQUFPLENBQUNHLDBCQUEwQjtRQUM5QztRQUNBLGtFQUFrRTtRQUNsRUMsbUJBQW1CO1lBQ2pCQyxPQUFPWixlQUNISixlQUFlRyxXQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxRQUFTYyxrQkFBa0IsSUFDeEMsT0FDQWYsTUFBTWEsaUJBQWlCLENBQUNDLEtBQUssR0FFL0I7WUFDSkUsZ0JBQWdCZixRQUFRZSxjQUFjLElBQUk7WUFDMUNDLGNBQWNmLGVBRVYsUUFDUWUsWUFBWSxJQUFJaEIsUUFBUWdCLElBREksUUFDUSxLQUFLLEtBRS9DQyxtQkFBbUJqQixRQUFRZ0IsWUFBWSxDQUFDRSxLQUFLLENBQUMsTUFDOUNuQixNQUFNYSxpQkFBaUIsQ0FBQ0ksWUFBWSxHQUV0QztZQUNKRyxjQUFjbEIsZUFDVkQsQ0FBQUEsOEJBQUFBLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFFBQVNjLGtCQUFBQSxLQUFrQixPQUEzQmQsOEJBQStCRCxNQUFNYSxpQkFBaUIsQ0FBQ08sWUFBWSxHQUVuRSxFQUFFO1FBQ1I7UUFDQSxlQUFlO1FBQ2ZDLE9BQU9wQixRQUFRb0IsS0FBSyxHQUFHcEIsUUFBUW9CLEtBQUssR0FBR3JCLE1BQU1xQixLQUFLO1FBQ2xEQyxlQUFlckIsUUFBUXFCLGFBQWEsR0FDaENyQixRQUFRcUIsYUFBYSxHQUNyQnRCLE1BQU1zQixhQUFhO1FBQ3ZCLDhCQUE4QjtRQUM5QmYsTUFBTVQsZUFBZUcsUUFBUUcsV0FBVyxJQUNwQ0gsUUFBUUcsV0FBVyxHQUNuQkosTUFBTU8sSUFBSTtRQUNkSjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9oYW5kbGUtbXV0YWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlQ2hhbmdlZFBhdGggfSBmcm9tICcuL2NvbXB1dGUtY2hhbmdlZC1wYXRoJ1xuaW1wb3J0IHR5cGUge1xuICBNdXRhYmxlLFxuICBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgUmVkdWNlclN0YXRlLFxufSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuXG5mdW5jdGlvbiBpc05vdFVuZGVmaW5lZDxUPih2YWx1ZTogVCk6IHZhbHVlIGlzIEV4Y2x1ZGU8VCwgdW5kZWZpbmVkPiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVNdXRhYmxlKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIG11dGFibGU6IE11dGFibGVcbik6IFJlZHVjZXJTdGF0ZSB7XG4gIC8vIHNob3VsZFNjcm9sbCBpcyB0cnVlIGJ5IGRlZmF1bHQsIGNhbiBvdmVycmlkZSB0byBmYWxzZS5cbiAgY29uc3Qgc2hvdWxkU2Nyb2xsID0gbXV0YWJsZS5zaG91bGRTY3JvbGwgPz8gdHJ1ZVxuXG4gIGxldCBuZXh0VXJsID0gc3RhdGUubmV4dFVybFxuXG4gIGlmIChpc05vdFVuZGVmaW5lZChtdXRhYmxlLnBhdGNoZWRUcmVlKSkge1xuICAgIC8vIElmIHdlIHJlY2VpdmVkIGEgcGF0Y2hlZCB0cmVlLCB3ZSBuZWVkIHRvIGNvbXB1dGUgdGhlIGNoYW5nZWQgcGF0aC5cbiAgICBjb25zdCBjaGFuZ2VkUGF0aCA9IGNvbXB1dGVDaGFuZ2VkUGF0aChzdGF0ZS50cmVlLCBtdXRhYmxlLnBhdGNoZWRUcmVlKVxuICAgIGlmIChjaGFuZ2VkUGF0aCkge1xuICAgICAgLy8gSWYgdGhlIHRyZWUgY2hhbmdlZCwgd2UgbmVlZCB0byB1cGRhdGUgdGhlIG5leHRVcmxcbiAgICAgIG5leHRVcmwgPSBjaGFuZ2VkUGF0aFxuICAgIH0gZWxzZSBpZiAoIW5leHRVcmwpIHtcbiAgICAgIC8vIGlmIHRoZSB0cmVlIGVuZHMgdXAgYmVpbmcgdGhlIHNhbWUgKGllLCBubyBjaGFuZ2VkIHBhdGgpLCBhbmQgd2UgZG9uJ3QgaGF2ZSBhIG5leHRVcmwsIHRoZW4gd2Ugc2hvdWxkIHVzZSB0aGUgY2Fub25pY2FsVXJsXG4gICAgICBuZXh0VXJsID0gc3RhdGUuY2Fub25pY2FsVXJsXG4gICAgfVxuICAgIC8vIG90aGVyd2lzZSB0aGlzIHdpbGwgYmUgYSBuby1vcCBhbmQgY29udGludWUgdG8gdXNlIHRoZSBleGlzdGluZyBuZXh0VXJsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIFNldCBocmVmLlxuICAgIGNhbm9uaWNhbFVybDogaXNOb3RVbmRlZmluZWQobXV0YWJsZS5jYW5vbmljYWxVcmwpXG4gICAgICA/IG11dGFibGUuY2Fub25pY2FsVXJsID09PSBzdGF0ZS5jYW5vbmljYWxVcmxcbiAgICAgICAgPyBzdGF0ZS5jYW5vbmljYWxVcmxcbiAgICAgICAgOiBtdXRhYmxlLmNhbm9uaWNhbFVybFxuICAgICAgOiBzdGF0ZS5jYW5vbmljYWxVcmwsXG4gICAgcHVzaFJlZjoge1xuICAgICAgcGVuZGluZ1B1c2g6IGlzTm90VW5kZWZpbmVkKG11dGFibGUucGVuZGluZ1B1c2gpXG4gICAgICAgID8gbXV0YWJsZS5wZW5kaW5nUHVzaFxuICAgICAgICA6IHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2gsXG4gICAgICBtcGFOYXZpZ2F0aW9uOiBpc05vdFVuZGVmaW5lZChtdXRhYmxlLm1wYU5hdmlnYXRpb24pXG4gICAgICAgID8gbXV0YWJsZS5tcGFOYXZpZ2F0aW9uXG4gICAgICAgIDogc3RhdGUucHVzaFJlZi5tcGFOYXZpZ2F0aW9uLFxuICAgICAgcHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGU6IGlzTm90VW5kZWZpbmVkKFxuICAgICAgICBtdXRhYmxlLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlXG4gICAgICApXG4gICAgICAgID8gbXV0YWJsZS5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZVxuICAgICAgICA6IHN0YXRlLnB1c2hSZWYucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUsXG4gICAgfSxcbiAgICAvLyBBbGwgbmF2aWdhdGlvbiByZXF1aXJlcyBzY3JvbGwgYW5kIGZvY3VzIG1hbmFnZW1lbnQgdG8gdHJpZ2dlci5cbiAgICBmb2N1c0FuZFNjcm9sbFJlZjoge1xuICAgICAgYXBwbHk6IHNob3VsZFNjcm9sbFxuICAgICAgICA/IGlzTm90VW5kZWZpbmVkKG11dGFibGU/LnNjcm9sbGFibGVTZWdtZW50cylcbiAgICAgICAgICA/IHRydWVcbiAgICAgICAgICA6IHN0YXRlLmZvY3VzQW5kU2Nyb2xsUmVmLmFwcGx5XG4gICAgICAgIDogLy8gSWYgc2hvdWxkU2Nyb2xsIGlzIGZhbHNlIHRoZW4gd2Ugc2hvdWxkIG5vdCBhcHBseSBzY3JvbGwgYW5kIGZvY3VzIG1hbmFnZW1lbnQuXG4gICAgICAgICAgZmFsc2UsXG4gICAgICBvbmx5SGFzaENoYW5nZTogbXV0YWJsZS5vbmx5SGFzaENoYW5nZSB8fCBmYWxzZSxcbiAgICAgIGhhc2hGcmFnbWVudDogc2hvdWxkU2Nyb2xsXG4gICAgICAgID8gLy8gRW1wdHkgaGFzaCBzaG91bGQgdHJpZ2dlciBkZWZhdWx0IGJlaGF2aW9yIG9mIHNjcm9sbGluZyBsYXlvdXQgaW50byB2aWV3LlxuICAgICAgICAgIC8vICN0b3AgaXMgaGFuZGxlZCBpbiBsYXlvdXQtcm91dGVyLlxuICAgICAgICAgIG11dGFibGUuaGFzaEZyYWdtZW50ICYmIG11dGFibGUuaGFzaEZyYWdtZW50ICE9PSAnJ1xuICAgICAgICAgID8gLy8gUmVtb3ZlIGxlYWRpbmcgIyBhbmQgZGVjb2RlIGhhc2ggdG8gbWFrZSBub24tbGF0aW4gaGFzaGVzIHdvcmsuXG4gICAgICAgICAgICBkZWNvZGVVUklDb21wb25lbnQobXV0YWJsZS5oYXNoRnJhZ21lbnQuc2xpY2UoMSkpXG4gICAgICAgICAgOiBzdGF0ZS5mb2N1c0FuZFNjcm9sbFJlZi5oYXNoRnJhZ21lbnRcbiAgICAgICAgOiAvLyBJZiBzaG91bGRTY3JvbGwgaXMgZmFsc2UgdGhlbiB3ZSBzaG91bGQgbm90IGFwcGx5IHNjcm9sbCBhbmQgZm9jdXMgbWFuYWdlbWVudC5cbiAgICAgICAgICBudWxsLFxuICAgICAgc2VnbWVudFBhdGhzOiBzaG91bGRTY3JvbGxcbiAgICAgICAgPyBtdXRhYmxlPy5zY3JvbGxhYmxlU2VnbWVudHMgPz8gc3RhdGUuZm9jdXNBbmRTY3JvbGxSZWYuc2VnbWVudFBhdGhzXG4gICAgICAgIDogLy8gSWYgc2hvdWxkU2Nyb2xsIGlzIGZhbHNlIHRoZW4gd2Ugc2hvdWxkIG5vdCBhcHBseSBzY3JvbGwgYW5kIGZvY3VzIG1hbmFnZW1lbnQuXG4gICAgICAgICAgW10sXG4gICAgfSxcbiAgICAvLyBBcHBseSBjYWNoZS5cbiAgICBjYWNoZTogbXV0YWJsZS5jYWNoZSA/IG11dGFibGUuY2FjaGUgOiBzdGF0ZS5jYWNoZSxcbiAgICBwcmVmZXRjaENhY2hlOiBtdXRhYmxlLnByZWZldGNoQ2FjaGVcbiAgICAgID8gbXV0YWJsZS5wcmVmZXRjaENhY2hlXG4gICAgICA6IHN0YXRlLnByZWZldGNoQ2FjaGUsXG4gICAgLy8gQXBwbHkgcGF0Y2hlZCByb3V0ZXIgc3RhdGUuXG4gICAgdHJlZTogaXNOb3RVbmRlZmluZWQobXV0YWJsZS5wYXRjaGVkVHJlZSlcbiAgICAgID8gbXV0YWJsZS5wYXRjaGVkVHJlZVxuICAgICAgOiBzdGF0ZS50cmVlLFxuICAgIG5leHRVcmwsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJoYW5kbGVNdXRhYmxlIiwiaXNOb3RVbmRlZmluZWQiLCJ2YWx1ZSIsInN0YXRlIiwibXV0YWJsZSIsInNob3VsZFNjcm9sbCIsIm5leHRVcmwiLCJwYXRjaGVkVHJlZSIsImNoYW5nZWRQYXRoIiwiY29tcHV0ZUNoYW5nZWRQYXRoIiwidHJlZSIsImNhbm9uaWNhbFVybCIsInB1c2hSZWYiLCJwZW5kaW5nUHVzaCIsIm1wYU5hdmlnYXRpb24iLCJwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSIsImZvY3VzQW5kU2Nyb2xsUmVmIiwiYXBwbHkiLCJzY3JvbGxhYmxlU2VnbWVudHMiLCJvbmx5SGFzaENoYW5nZSIsImhhc2hGcmFnbWVudCIsImRlY29kZVVSSUNvbXBvbmVudCIsInNsaWNlIiwic2VnbWVudFBhdGhzIiwiY2FjaGUiLCJwcmVmZXRjaENhY2hlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js":
/*!********************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js ***!
\********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"handleSegmentMismatch\", ({\n enumerable: true,\n get: function() {\n return handleSegmentMismatch;\n }\n}));\nconst _navigatereducer = __webpack_require__(/*! ./reducers/navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nfunction handleSegmentMismatch(state, action, treePatch) {\n if (true) {\n console.warn('Performing hard navigation because your application experienced an unrecoverable error. If this keeps occurring, please file a Next.js issue.\\n\\n' + 'Reason: Segment mismatch\\n' + (\"Last Action: \" + action.type + \"\\n\\n\") + (\"Current Tree: \" + JSON.stringify(state.tree) + \"\\n\\n\") + (\"Tree Patch Payload: \" + JSON.stringify(treePatch)));\n }\n return (0, _navigatereducer.handleExternalUrl)(state, {}, state.canonicalUrl, true);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=handle-segment-mismatch.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2hhbmRsZS1zZWdtZW50LW1pc21hdGNoLmpzIiwibWFwcGluZ3MiOiI7Ozs7eURBV2dCQTs7O2VBQUFBOzs7NkNBVmtCO0FBVTNCLFNBQVNBLHNCQUNkQyxLQUEyQixFQUMzQkMsTUFBc0IsRUFDdEJDLFNBQTRCO0lBRTVCLElBQUlDLElBQW9CLEVBQW9CO1FBQzFDRyxRQUFRQyxJQUFJLENBQ1Ysc0pBQ0UsK0JBQ0EsQ0FBQyxrQkFBZU4sT0FBT08sSUFBSSxHQUFDLE9BQUksSUFDaEMsbUJBQWlCQyxLQUFLQyxTQUFTLENBQUNWLE1BQU1XLElBQUksSUFBRSxPQUFJLElBQ2hELHlCQUF1QkYsS0FBS0MsU0FBUyxDQUFDUixVQUFBQSxDQUFXO0lBRXZEO0lBRUEsT0FBT1UsQ0FBQUEsR0FBQUEsaUJBQUFBLGlCQUFBQSxFQUFrQlosT0FBTyxDQUFDLEdBQUdBLE1BQU1hLFlBQVksRUFBRTtBQUMxRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2hhbmRsZS1zZWdtZW50LW1pc21hdGNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmxpZ2h0Um91dGVyU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7IGhhbmRsZUV4dGVybmFsVXJsIH0gZnJvbSAnLi9yZWR1Y2Vycy9uYXZpZ2F0ZS1yZWR1Y2VyJ1xuaW1wb3J0IHR5cGUge1xuICBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgUmVkdWNlckFjdGlvbnMsXG59IGZyb20gJy4vcm91dGVyLXJlZHVjZXItdHlwZXMnXG5cbi8qKlxuICogSGFuZGxlcyB0aGUgY2FzZSB3aGVyZSB0aGUgY2xpZW50IHJvdXRlciBhdHRlbXB0ZWQgdG8gcGF0Y2ggdGhlIHRyZWUgYnV0LCBkdWUgdG8gYSBtaXNtYXRjaCwgdGhlIHBhdGNoIGZhaWxlZC5cbiAqIFRoaXMgd2lsbCBwZXJmb3JtIGFuIE1QQSBuYXZpZ2F0aW9uIHRvIHJldHVybiB0aGUgcm91dGVyIHRvIGEgdmFsaWQgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTZWdtZW50TWlzbWF0Y2goXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgYWN0aW9uOiBSZWR1Y2VyQWN0aW9ucyxcbiAgdHJlZVBhdGNoOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdQZXJmb3JtaW5nIGhhcmQgbmF2aWdhdGlvbiBiZWNhdXNlIHlvdXIgYXBwbGljYXRpb24gZXhwZXJpZW5jZWQgYW4gdW5yZWNvdmVyYWJsZSBlcnJvci4gSWYgdGhpcyBrZWVwcyBvY2N1cnJpbmcsIHBsZWFzZSBmaWxlIGEgTmV4dC5qcyBpc3N1ZS5cXG5cXG4nICtcbiAgICAgICAgJ1JlYXNvbjogU2VnbWVudCBtaXNtYXRjaFxcbicgK1xuICAgICAgICBgTGFzdCBBY3Rpb246ICR7YWN0aW9uLnR5cGV9XFxuXFxuYCArXG4gICAgICAgIGBDdXJyZW50IFRyZWU6ICR7SlNPTi5zdHJpbmdpZnkoc3RhdGUudHJlZSl9XFxuXFxuYCArXG4gICAgICAgIGBUcmVlIFBhdGNoIFBheWxvYWQ6ICR7SlNPTi5zdHJpbmdpZnkodHJlZVBhdGNoKX1gXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCB7fSwgc3RhdGUuY2Fub25pY2FsVXJsLCB0cnVlKVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZVNlZ21lbnRNaXNtYXRjaCIsInN0YXRlIiwiYWN0aW9uIiwidHJlZVBhdGNoIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiY29uc29sZSIsIndhcm4iLCJ0eXBlIiwiSlNPTiIsInN0cmluZ2lmeSIsInRyZWUiLCJoYW5kbGVFeHRlcm5hbFVybCIsImNhbm9uaWNhbFVybCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js":
/*!**************************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js ***!
\**************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"invalidateCacheBelowFlightSegmentPath\", ({\n enumerable: true,\n get: function() {\n return invalidateCacheBelowFlightSegmentPath;\n }\n}));\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _flightdatahelpers = __webpack_require__(/*! ../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nfunction invalidateCacheBelowFlightSegmentPath(newCache, existingCache, flightSegmentPath) {\n const isLastEntry = flightSegmentPath.length <= 2;\n const [parallelRouteKey, segment] = flightSegmentPath;\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segment);\n const existingChildSegmentMap = existingCache.parallelRoutes.get(parallelRouteKey);\n if (!existingChildSegmentMap) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n return;\n }\n let childSegmentMap = newCache.parallelRoutes.get(parallelRouteKey);\n if (!childSegmentMap || childSegmentMap === existingChildSegmentMap) {\n childSegmentMap = new Map(existingChildSegmentMap);\n newCache.parallelRoutes.set(parallelRouteKey, childSegmentMap);\n }\n // In case of last entry don't copy further down.\n if (isLastEntry) {\n childSegmentMap.delete(cacheKey);\n return;\n }\n const existingChildCacheNode = existingChildSegmentMap.get(cacheKey);\n let childCacheNode = childSegmentMap.get(cacheKey);\n if (!childCacheNode || !existingChildCacheNode) {\n // Bailout because the existing cache does not have the path to the leaf node\n // Will trigger lazy fetch in layout-router because of missing segment\n return;\n }\n if (childCacheNode === existingChildCacheNode) {\n childCacheNode = {\n lazyData: childCacheNode.lazyData,\n rsc: childCacheNode.rsc,\n prefetchRsc: childCacheNode.prefetchRsc,\n head: childCacheNode.head,\n prefetchHead: childCacheNode.prefetchHead,\n parallelRoutes: new Map(childCacheNode.parallelRoutes)\n };\n childSegmentMap.set(cacheKey, childCacheNode);\n }\n invalidateCacheBelowFlightSegmentPath(childCacheNode, existingChildCacheNode, (0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=invalidate-cache-below-flight-segmentpath.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ludmFsaWRhdGUtY2FjaGUtYmVsb3ctZmxpZ2h0LXNlZ21lbnRwYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7eUVBUWdCQTs7O2VBQUFBOzs7a0RBTnFCOytDQUNJO0FBS2xDLFNBQVNBLHNDQUNkQyxRQUFtQixFQUNuQkMsYUFBd0IsRUFDeEJDLGlCQUFvQztJQUVwQyxNQUFNQyxjQUFjRCxrQkFBa0JFLE1BQU0sSUFBSTtJQUNoRCxNQUFNLENBQUNDLGtCQUFrQkMsUUFBUSxHQUFHSjtJQUVwQyxNQUFNSyxXQUFXQyxDQUFBQSxHQUFBQSxzQkFBQUEsb0JBQUFBLEVBQXFCRjtJQUV0QyxNQUFNRywwQkFDSlIsY0FBY1MsY0FBYyxDQUFDQyxHQUFHLENBQUNOO0lBRW5DLElBQUksQ0FBQ0kseUJBQXlCO1FBQzVCLDZFQUE2RTtRQUM3RSxzRUFBc0U7UUFDdEU7SUFDRjtJQUVBLElBQUlHLGtCQUFrQlosU0FBU1UsY0FBYyxDQUFDQyxHQUFHLENBQUNOO0lBQ2xELElBQUksQ0FBQ08sbUJBQW1CQSxvQkFBb0JILHlCQUF5QjtRQUNuRUcsa0JBQWtCLElBQUlDLElBQUlKO1FBQzFCVCxTQUFTVSxjQUFjLENBQUNJLEdBQUcsQ0FBQ1Qsa0JBQWtCTztJQUNoRDtJQUVBLGlEQUFpRDtJQUNqRCxJQUFJVCxhQUFhO1FBQ2ZTLGdCQUFnQkcsTUFBTSxDQUFDUjtRQUN2QjtJQUNGO0lBRUEsTUFBTVMseUJBQXlCUCx3QkFBd0JFLEdBQUcsQ0FBQ0o7SUFDM0QsSUFBSVUsaUJBQWlCTCxnQkFBZ0JELEdBQUcsQ0FBQ0o7SUFFekMsSUFBSSxDQUFDVSxrQkFBa0IsQ0FBQ0Qsd0JBQXdCO1FBQzlDLDZFQUE2RTtRQUM3RSxzRUFBc0U7UUFDdEU7SUFDRjtJQUVBLElBQUlDLG1CQUFtQkQsd0JBQXdCO1FBQzdDQyxpQkFBaUI7WUFDZkMsVUFBVUQsZUFBZUMsUUFBUTtZQUNqQ0MsS0FBS0YsZUFBZUUsR0FBRztZQUN2QkMsYUFBYUgsZUFBZUcsV0FBVztZQUN2Q0MsTUFBTUosZUFBZUksSUFBSTtZQUN6QkMsY0FBY0wsZUFBZUssWUFBWTtZQUN6Q1osZ0JBQWdCLElBQUlHLElBQUlJLGVBQWVQLGNBQWM7UUFDdkQ7UUFDQUUsZ0JBQWdCRSxHQUFHLENBQUNQLFVBQVVVO0lBQ2hDO0lBRUFsQixzQ0FDRWtCLGdCQUNBRCx3QkFDQU8sQ0FBQUEsR0FBQUEsbUJBQUFBLHdCQUFBQSxFQUF5QnJCO0FBRTdCIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvaW52YWxpZGF0ZS1jYWNoZS1iZWxvdy1mbGlnaHQtc2VnbWVudHBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHsgRmxpZ2h0U2VnbWVudFBhdGggfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7IGNyZWF0ZVJvdXRlckNhY2hlS2V5IH0gZnJvbSAnLi9jcmVhdGUtcm91dGVyLWNhY2hlLWtleSdcbmltcG9ydCB7IGdldE5leHRGbGlnaHRTZWdtZW50UGF0aCB9IGZyb20gJy4uLy4uL2ZsaWdodC1kYXRhLWhlbHBlcnMnXG5cbi8qKlxuICogRmlsbCBjYWNoZSB1cCB0byB0aGUgZW5kIG9mIHRoZSBmbGlnaHRTZWdtZW50UGF0aCwgaW52YWxpZGF0aW5nIGFueXRoaW5nIGJlbG93IGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZGF0ZUNhY2hlQmVsb3dGbGlnaHRTZWdtZW50UGF0aChcbiAgbmV3Q2FjaGU6IENhY2hlTm9kZSxcbiAgZXhpc3RpbmdDYWNoZTogQ2FjaGVOb2RlLFxuICBmbGlnaHRTZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbik6IHZvaWQge1xuICBjb25zdCBpc0xhc3RFbnRyeSA9IGZsaWdodFNlZ21lbnRQYXRoLmxlbmd0aCA8PSAyXG4gIGNvbnN0IFtwYXJhbGxlbFJvdXRlS2V5LCBzZWdtZW50XSA9IGZsaWdodFNlZ21lbnRQYXRoXG5cbiAgY29uc3QgY2FjaGVLZXkgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50KVxuXG4gIGNvbnN0IGV4aXN0aW5nQ2hpbGRTZWdtZW50TWFwID1cbiAgICBleGlzdGluZ0NhY2hlLnBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlS2V5KVxuXG4gIGlmICghZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXApIHtcbiAgICAvLyBCYWlsb3V0IGJlY2F1c2UgdGhlIGV4aXN0aW5nIGNhY2hlIGRvZXMgbm90IGhhdmUgdGhlIHBhdGggdG8gdGhlIGxlYWYgbm9kZVxuICAgIC8vIFdpbGwgdHJpZ2dlciBsYXp5IGZldGNoIGluIGxheW91dC1yb3V0ZXIgYmVjYXVzZSBvZiBtaXNzaW5nIHNlZ21lbnRcbiAgICByZXR1cm5cbiAgfVxuXG4gIGxldCBjaGlsZFNlZ21lbnRNYXAgPSBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSlcbiAgaWYgKCFjaGlsZFNlZ21lbnRNYXAgfHwgY2hpbGRTZWdtZW50TWFwID09PSBleGlzdGluZ0NoaWxkU2VnbWVudE1hcCkge1xuICAgIGNoaWxkU2VnbWVudE1hcCA9IG5ldyBNYXAoZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXApXG4gICAgbmV3Q2FjaGUucGFyYWxsZWxSb3V0ZXMuc2V0KHBhcmFsbGVsUm91dGVLZXksIGNoaWxkU2VnbWVudE1hcClcbiAgfVxuXG4gIC8vIEluIGNhc2Ugb2YgbGFzdCBlbnRyeSBkb24ndCBjb3B5IGZ1cnRoZXIgZG93bi5cbiAgaWYgKGlzTGFzdEVudHJ5KSB7XG4gICAgY2hpbGRTZWdtZW50TWFwLmRlbGV0ZShjYWNoZUtleSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IGV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUgPSBleGlzdGluZ0NoaWxkU2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpXG4gIGxldCBjaGlsZENhY2hlTm9kZSA9IGNoaWxkU2VnbWVudE1hcC5nZXQoY2FjaGVLZXkpXG5cbiAgaWYgKCFjaGlsZENhY2hlTm9kZSB8fCAhZXhpc3RpbmdDaGlsZENhY2hlTm9kZSkge1xuICAgIC8vIEJhaWxvdXQgYmVjYXVzZSB0aGUgZXhpc3RpbmcgY2FjaGUgZG9lcyBub3QgaGF2ZSB0aGUgcGF0aCB0byB0aGUgbGVhZiBub2RlXG4gICAgLy8gV2lsbCB0cmlnZ2VyIGxhenkgZmV0Y2ggaW4gbGF5b3V0LXJvdXRlciBiZWNhdXNlIG9mIG1pc3Npbmcgc2VnbWVudFxuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKGNoaWxkQ2FjaGVOb2RlID09PSBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlKSB7XG4gICAgY2hpbGRDYWNoZU5vZGUgPSB7XG4gICAgICBsYXp5RGF0YTogY2hpbGRDYWNoZU5vZGUubGF6eURhdGEsXG4gICAgICByc2M6IGNoaWxkQ2FjaGVOb2RlLnJzYyxcbiAgICAgIHByZWZldGNoUnNjOiBjaGlsZENhY2hlTm9kZS5wcmVmZXRjaFJzYyxcbiAgICAgIGhlYWQ6IGNoaWxkQ2FjaGVOb2RlLmhlYWQsXG4gICAgICBwcmVmZXRjaEhlYWQ6IGNoaWxkQ2FjaGVOb2RlLnByZWZldGNoSGVhZCxcbiAgICAgIHBhcmFsbGVsUm91dGVzOiBuZXcgTWFwKGNoaWxkQ2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzKSxcbiAgICB9IGFzIENhY2hlTm9kZVxuICAgIGNoaWxkU2VnbWVudE1hcC5zZXQoY2FjaGVLZXksIGNoaWxkQ2FjaGVOb2RlKVxuICB9XG5cbiAgaW52YWxpZGF0ZUNhY2hlQmVsb3dGbGlnaHRTZWdtZW50UGF0aChcbiAgICBjaGlsZENhY2hlTm9kZSxcbiAgICBleGlzdGluZ0NoaWxkQ2FjaGVOb2RlLFxuICAgIGdldE5leHRGbGlnaHRTZWdtZW50UGF0aChmbGlnaHRTZWdtZW50UGF0aClcbiAgKVxufVxuIl0sIm5hbWVzIjpbImludmFsaWRhdGVDYWNoZUJlbG93RmxpZ2h0U2VnbWVudFBhdGgiLCJuZXdDYWNoZSIsImV4aXN0aW5nQ2FjaGUiLCJmbGlnaHRTZWdtZW50UGF0aCIsImlzTGFzdEVudHJ5IiwibGVuZ3RoIiwicGFyYWxsZWxSb3V0ZUtleSIsInNlZ21lbnQiLCJjYWNoZUtleSIsImNyZWF0ZVJvdXRlckNhY2hlS2V5IiwiZXhpc3RpbmdDaGlsZFNlZ21lbnRNYXAiLCJwYXJhbGxlbFJvdXRlcyIsImdldCIsImNoaWxkU2VnbWVudE1hcCIsIk1hcCIsInNldCIsImRlbGV0ZSIsImV4aXN0aW5nQ2hpbGRDYWNoZU5vZGUiLCJjaGlsZENhY2hlTm9kZSIsImxhenlEYXRhIiwicnNjIiwicHJlZmV0Y2hSc2MiLCJoZWFkIiwicHJlZmV0Y2hIZWFkIiwiZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js":
/*!*****************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js ***!
\*****************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"invalidateCacheByRouterState\", ({\n enumerable: true,\n get: function() {\n return invalidateCacheByRouterState;\n }\n}));\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nfunction invalidateCacheByRouterState(newCache, existingCache, routerState) {\n // Remove segment that we got data for so that it is filled in during rendering of rsc.\n for(const key in routerState[1]){\n const segmentForParallelRoute = routerState[1][key][0];\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segmentForParallelRoute);\n const existingParallelRoutesCacheNode = existingCache.parallelRoutes.get(key);\n if (existingParallelRoutesCacheNode) {\n let parallelRouteCacheNode = new Map(existingParallelRoutesCacheNode);\n parallelRouteCacheNode.delete(cacheKey);\n newCache.parallelRoutes.set(key, parallelRouteCacheNode);\n }\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=invalidate-cache-by-router-state.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ludmFsaWRhdGUtY2FjaGUtYnktcm91dGVyLXN0YXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0VBT2dCQTs7O2VBQUFBOzs7a0RBTHFCO0FBSzlCLFNBQVNBLDZCQUNkQyxRQUFtQixFQUNuQkMsYUFBd0IsRUFDeEJDLFdBQThCO0lBRTlCLHVGQUF1RjtJQUN2RixJQUFLLE1BQU1DLE9BQU9ELFdBQVcsQ0FBQyxFQUFFLENBQUU7UUFDaEMsTUFBTUUsMEJBQTBCRixXQUFXLENBQUMsRUFBRSxDQUFDQyxJQUFJLENBQUMsRUFBRTtRQUN0RCxNQUFNRSxXQUFXQyxDQUFBQSxHQUFBQSxzQkFBQUEsb0JBQUFBLEVBQXFCRjtRQUN0QyxNQUFNRyxrQ0FDSk4sY0FBY08sY0FBYyxDQUFDQyxHQUFHLENBQUNOO1FBQ25DLElBQUlJLGlDQUFpQztZQUNuQyxJQUFJRyx5QkFBeUIsSUFBSUMsSUFBSUo7WUFDckNHLHVCQUF1QkUsTUFBTSxDQUFDUDtZQUM5QkwsU0FBU1EsY0FBYyxDQUFDSyxHQUFHLENBQUNWLEtBQUtPO1FBQ25DO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2ludmFsaWRhdGUtY2FjaGUtYnktcm91dGVyLXN0YXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IEZsaWdodFJvdXRlclN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gJy4vY3JlYXRlLXJvdXRlci1jYWNoZS1rZXknXG5cbi8qKlxuICogSW52YWxpZGF0ZSBjYWNoZSBvbmUgbGV2ZWwgZG93biBmcm9tIHRoZSByb3V0ZXIgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkYXRlQ2FjaGVCeVJvdXRlclN0YXRlKFxuICBuZXdDYWNoZTogQ2FjaGVOb2RlLFxuICBleGlzdGluZ0NhY2hlOiBDYWNoZU5vZGUsXG4gIHJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogdm9pZCB7XG4gIC8vIFJlbW92ZSBzZWdtZW50IHRoYXQgd2UgZ290IGRhdGEgZm9yIHNvIHRoYXQgaXQgaXMgZmlsbGVkIGluIGR1cmluZyByZW5kZXJpbmcgb2YgcnNjLlxuICBmb3IgKGNvbnN0IGtleSBpbiByb3V0ZXJTdGF0ZVsxXSkge1xuICAgIGNvbnN0IHNlZ21lbnRGb3JQYXJhbGxlbFJvdXRlID0gcm91dGVyU3RhdGVbMV1ba2V5XVswXVxuICAgIGNvbnN0IGNhY2hlS2V5ID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkoc2VnbWVudEZvclBhcmFsbGVsUm91dGUpXG4gICAgY29uc3QgZXhpc3RpbmdQYXJhbGxlbFJvdXRlc0NhY2hlTm9kZSA9XG4gICAgICBleGlzdGluZ0NhY2hlLnBhcmFsbGVsUm91dGVzLmdldChrZXkpXG4gICAgaWYgKGV4aXN0aW5nUGFyYWxsZWxSb3V0ZXNDYWNoZU5vZGUpIHtcbiAgICAgIGxldCBwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlID0gbmV3IE1hcChleGlzdGluZ1BhcmFsbGVsUm91dGVzQ2FjaGVOb2RlKVxuICAgICAgcGFyYWxsZWxSb3V0ZUNhY2hlTm9kZS5kZWxldGUoY2FjaGVLZXkpXG4gICAgICBuZXdDYWNoZS5wYXJhbGxlbFJvdXRlcy5zZXQoa2V5LCBwYXJhbGxlbFJvdXRlQ2FjaGVOb2RlKVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImludmFsaWRhdGVDYWNoZUJ5Um91dGVyU3RhdGUiLCJuZXdDYWNoZSIsImV4aXN0aW5nQ2FjaGUiLCJyb3V0ZXJTdGF0ZSIsImtleSIsInNlZ21lbnRGb3JQYXJhbGxlbFJvdXRlIiwiY2FjaGVLZXkiLCJjcmVhdGVSb3V0ZXJDYWNoZUtleSIsImV4aXN0aW5nUGFyYWxsZWxSb3V0ZXNDYWNoZU5vZGUiLCJwYXJhbGxlbFJvdXRlcyIsImdldCIsInBhcmFsbGVsUm91dGVDYWNoZU5vZGUiLCJNYXAiLCJkZWxldGUiLCJzZXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js":
/*!*****************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js ***!
\*****************************************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isNavigatingToNewRootLayout\", ({\n enumerable: true,\n get: function() {\n return isNavigatingToNewRootLayout;\n }\n}));\nfunction isNavigatingToNewRootLayout(currentTree, nextTree) {\n // Compare segments\n const currentTreeSegment = currentTree[0];\n const nextTreeSegment = nextTree[0];\n // If any segment is different before we find the root layout, the root layout has changed.\n // E.g. /same/(group1)/layout.js -> /same/(group2)/layout.js\n // First segment is 'same' for both, keep looking. (group1) changed to (group2) before the root layout was found, it must have changed.\n if (Array.isArray(currentTreeSegment) && Array.isArray(nextTreeSegment)) {\n // Compare dynamic param name and type but ignore the value, different values would not affect the current root layout\n // /[name] - /slug1 and /slug2, both values (slug1 & slug2) still has the same layout /[name]/layout.js\n if (currentTreeSegment[0] !== nextTreeSegment[0] || currentTreeSegment[2] !== nextTreeSegment[2]) {\n return true;\n }\n } else if (currentTreeSegment !== nextTreeSegment) {\n return true;\n }\n // Current tree root layout found\n if (currentTree[4]) {\n // If the next tree doesn't have the root layout flag, it must have changed.\n return !nextTree[4];\n }\n // Current tree didn't have its root layout here, must have changed.\n if (nextTree[4]) {\n return true;\n }\n // We can't assume it's `parallelRoutes.children` here in case the root layout is `app/@something/layout.js`\n // But it's not possible to be more than one parallelRoutes before the root layout is found\n // TODO-APP: change to traverse all parallel routes\n const currentTreeChild = Object.values(currentTree[1])[0];\n const nextTreeChild = Object.values(nextTree[1])[0];\n if (!currentTreeChild || !nextTreeChild) return true;\n return isNavigatingToNewRootLayout(currentTreeChild, nextTreeChild);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=is-navigating-to-new-root-layout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0LmpzIiwibWFwcGluZ3MiOiI7Ozs7K0RBRWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSw0QkFDZEMsV0FBOEIsRUFDOUJDLFFBQTJCO0lBRTNCLG1CQUFtQjtJQUNuQixNQUFNQyxxQkFBcUJGLFdBQVcsQ0FBQyxFQUFFO0lBQ3pDLE1BQU1HLGtCQUFrQkYsUUFBUSxDQUFDLEVBQUU7SUFFbkMsMkZBQTJGO0lBQzNGLDREQUE0RDtJQUM1RCx1SUFBdUk7SUFDdkksSUFBSUcsTUFBTUMsT0FBTyxDQUFDSCx1QkFBdUJFLE1BQU1DLE9BQU8sQ0FBQ0Ysa0JBQWtCO1FBQ3ZFLHNIQUFzSDtRQUN0SCx1R0FBdUc7UUFDdkcsSUFDRUQsa0JBQWtCLENBQUMsRUFBRSxLQUFLQyxlQUFlLENBQUMsRUFBRSxJQUM1Q0Qsa0JBQWtCLENBQUMsRUFBRSxLQUFLQyxlQUFlLENBQUMsRUFBRSxFQUM1QztZQUNBLE9BQU87UUFDVDtJQUNGLE9BQU8sSUFBSUQsdUJBQXVCQyxpQkFBaUI7UUFDakQsT0FBTztJQUNUO0lBRUEsaUNBQWlDO0lBQ2pDLElBQUlILFdBQVcsQ0FBQyxFQUFFLEVBQUU7UUFDbEIsNEVBQTRFO1FBQzVFLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDLEVBQUU7SUFDckI7SUFDQSxvRUFBb0U7SUFDcEUsSUFBSUEsUUFBUSxDQUFDLEVBQUUsRUFBRTtRQUNmLE9BQU87SUFDVDtJQUNBLDRHQUE0RztJQUM1RywyRkFBMkY7SUFDM0YsbURBQW1EO0lBQ25ELE1BQU1LLG1CQUFtQkMsT0FBT0MsTUFBTSxDQUFDUixXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtJQUN6RCxNQUFNUyxnQkFBZ0JGLE9BQU9DLE1BQU0sQ0FBQ1AsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDbkQsSUFBSSxDQUFDSyxvQkFBb0IsQ0FBQ0csZUFBZSxPQUFPO0lBQ2hELE9BQU9WLDRCQUE0Qk8sa0JBQWtCRztBQUN2RCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmxpZ2h0Um91dGVyU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dChcbiAgY3VycmVudFRyZWU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBuZXh0VHJlZTogRmxpZ2h0Um91dGVyU3RhdGVcbik6IGJvb2xlYW4ge1xuICAvLyBDb21wYXJlIHNlZ21lbnRzXG4gIGNvbnN0IGN1cnJlbnRUcmVlU2VnbWVudCA9IGN1cnJlbnRUcmVlWzBdXG4gIGNvbnN0IG5leHRUcmVlU2VnbWVudCA9IG5leHRUcmVlWzBdXG5cbiAgLy8gSWYgYW55IHNlZ21lbnQgaXMgZGlmZmVyZW50IGJlZm9yZSB3ZSBmaW5kIHRoZSByb290IGxheW91dCwgdGhlIHJvb3QgbGF5b3V0IGhhcyBjaGFuZ2VkLlxuICAvLyBFLmcuIC9zYW1lLyhncm91cDEpL2xheW91dC5qcyAtPiAvc2FtZS8oZ3JvdXAyKS9sYXlvdXQuanNcbiAgLy8gRmlyc3Qgc2VnbWVudCBpcyAnc2FtZScgZm9yIGJvdGgsIGtlZXAgbG9va2luZy4gKGdyb3VwMSkgY2hhbmdlZCB0byAoZ3JvdXAyKSBiZWZvcmUgdGhlIHJvb3QgbGF5b3V0IHdhcyBmb3VuZCwgaXQgbXVzdCBoYXZlIGNoYW5nZWQuXG4gIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnRUcmVlU2VnbWVudCkgJiYgQXJyYXkuaXNBcnJheShuZXh0VHJlZVNlZ21lbnQpKSB7XG4gICAgLy8gQ29tcGFyZSBkeW5hbWljIHBhcmFtIG5hbWUgYW5kIHR5cGUgYnV0IGlnbm9yZSB0aGUgdmFsdWUsIGRpZmZlcmVudCB2YWx1ZXMgd291bGQgbm90IGFmZmVjdCB0aGUgY3VycmVudCByb290IGxheW91dFxuICAgIC8vIC9bbmFtZV0gLSAvc2x1ZzEgYW5kIC9zbHVnMiwgYm90aCB2YWx1ZXMgKHNsdWcxICYgc2x1ZzIpIHN0aWxsIGhhcyB0aGUgc2FtZSBsYXlvdXQgL1tuYW1lXS9sYXlvdXQuanNcbiAgICBpZiAoXG4gICAgICBjdXJyZW50VHJlZVNlZ21lbnRbMF0gIT09IG5leHRUcmVlU2VnbWVudFswXSB8fFxuICAgICAgY3VycmVudFRyZWVTZWdtZW50WzJdICE9PSBuZXh0VHJlZVNlZ21lbnRbMl1cbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9IGVsc2UgaWYgKGN1cnJlbnRUcmVlU2VnbWVudCAhPT0gbmV4dFRyZWVTZWdtZW50KSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIEN1cnJlbnQgdHJlZSByb290IGxheW91dCBmb3VuZFxuICBpZiAoY3VycmVudFRyZWVbNF0pIHtcbiAgICAvLyBJZiB0aGUgbmV4dCB0cmVlIGRvZXNuJ3QgaGF2ZSB0aGUgcm9vdCBsYXlvdXQgZmxhZywgaXQgbXVzdCBoYXZlIGNoYW5nZWQuXG4gICAgcmV0dXJuICFuZXh0VHJlZVs0XVxuICB9XG4gIC8vIEN1cnJlbnQgdHJlZSBkaWRuJ3QgaGF2ZSBpdHMgcm9vdCBsYXlvdXQgaGVyZSwgbXVzdCBoYXZlIGNoYW5nZWQuXG4gIGlmIChuZXh0VHJlZVs0XSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgLy8gV2UgY2FuJ3QgYXNzdW1lIGl0J3MgYHBhcmFsbGVsUm91dGVzLmNoaWxkcmVuYCBoZXJlIGluIGNhc2UgdGhlIHJvb3QgbGF5b3V0IGlzIGBhcHAvQHNvbWV0aGluZy9sYXlvdXQuanNgXG4gIC8vIEJ1dCBpdCdzIG5vdCBwb3NzaWJsZSB0byBiZSBtb3JlIHRoYW4gb25lIHBhcmFsbGVsUm91dGVzIGJlZm9yZSB0aGUgcm9vdCBsYXlvdXQgaXMgZm91bmRcbiAgLy8gVE9ETy1BUFA6IGNoYW5nZSB0byB0cmF2ZXJzZSBhbGwgcGFyYWxsZWwgcm91dGVzXG4gIGNvbnN0IGN1cnJlbnRUcmVlQ2hpbGQgPSBPYmplY3QudmFsdWVzKGN1cnJlbnRUcmVlWzFdKVswXVxuICBjb25zdCBuZXh0VHJlZUNoaWxkID0gT2JqZWN0LnZhbHVlcyhuZXh0VHJlZVsxXSlbMF1cbiAgaWYgKCFjdXJyZW50VHJlZUNoaWxkIHx8ICFuZXh0VHJlZUNoaWxkKSByZXR1cm4gdHJ1ZVxuICByZXR1cm4gaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0KGN1cnJlbnRUcmVlQ2hpbGQsIG5leHRUcmVlQ2hpbGQpXG59XG4iXSwibmFtZXMiOlsiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IiwiY3VycmVudFRyZWUiLCJuZXh0VHJlZSIsImN1cnJlbnRUcmVlU2VnbWVudCIsIm5leHRUcmVlU2VnbWVudCIsIkFycmF5IiwiaXNBcnJheSIsImN1cnJlbnRUcmVlQ2hpbGQiLCJPYmplY3QiLCJ2YWx1ZXMiLCJuZXh0VHJlZUNoaWxkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/ppr-navigations.js":
/*!************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/ppr-navigations.js ***!
\************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n abortTask: function() {\n return abortTask;\n },\n listenForDynamicRequest: function() {\n return listenForDynamicRequest;\n },\n startPPRNavigation: function() {\n return startPPRNavigation;\n },\n updateCacheNodeOnPopstateRestoration: function() {\n return updateCacheNodeOnPopstateRestoration;\n }\n});\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _matchsegments = __webpack_require__(/*! ../match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ./is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _prefetchcacheutils = __webpack_require__(/*! ./prefetch-cache-utils */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js\");\nconst MPA_NAVIGATION_TASK = {\n route: null,\n node: null,\n dynamicRequestTree: null,\n children: null\n};\nfunction startPPRNavigation(navigatedAt, oldCacheNode, oldRouterState, newRouterState, prefetchData, prefetchHead, isPrefetchHeadPartial, isSamePageNavigation, scrollableSegmentsResult) {\n const segmentPath = [];\n return updateCacheNodeOnNavigation(navigatedAt, oldCacheNode, oldRouterState, newRouterState, false, prefetchData, prefetchHead, isPrefetchHeadPartial, isSamePageNavigation, segmentPath, scrollableSegmentsResult);\n}\nfunction updateCacheNodeOnNavigation(navigatedAt, oldCacheNode, oldRouterState, newRouterState, didFindRootLayout, prefetchData, prefetchHead, isPrefetchHeadPartial, isSamePageNavigation, segmentPath, scrollableSegmentsResult) {\n // Diff the old and new trees to reuse the shared layouts.\n const oldRouterStateChildren = oldRouterState[1];\n const newRouterStateChildren = newRouterState[1];\n const prefetchDataChildren = prefetchData !== null ? prefetchData[2] : null;\n if (!didFindRootLayout) {\n // We're currently traversing the part of the tree that was also part of\n // the previous route. If we discover a root layout, then we don't need to\n // trigger an MPA navigation. See beginRenderingNewRouteTree for context.\n const isRootLayout = newRouterState[4] === true;\n if (isRootLayout) {\n // Found a matching root layout.\n didFindRootLayout = true;\n }\n }\n const oldParallelRoutes = oldCacheNode.parallelRoutes;\n // Clone the current set of segment children, even if they aren't active in\n // the new tree.\n // TODO: We currently retain all the inactive segments indefinitely, until\n // there's an explicit refresh, or a parent layout is lazily refreshed. We\n // rely on this for popstate navigations, which update the Router State Tree\n // but do not eagerly perform a data fetch, because they expect the segment\n // data to already be in the Cache Node tree. For highly static sites that\n // are mostly read-only, this may happen only rarely, causing memory to\n // leak. We should figure out a better model for the lifetime of inactive\n // segments, so we can maintain instant back/forward navigations without\n // leaking memory indefinitely.\n const prefetchParallelRoutes = new Map(oldParallelRoutes);\n // As we diff the trees, we may sometimes modify (copy-on-write, not mutate)\n // the Route Tree that was returned by the server — for example, in the case\n // of default parallel routes, we preserve the currently active segment. To\n // avoid mutating the original tree, we clone the router state children along\n // the return path.\n let patchedRouterStateChildren = {};\n let taskChildren = null;\n // Most navigations require a request to fetch additional data from the\n // server, either because the data was not already prefetched, or because the\n // target route contains dynamic data that cannot be prefetched.\n //\n // However, if the target route is fully static, and it's already completely\n // loaded into the segment cache, then we can skip the server request.\n //\n // This starts off as `false`, and is set to `true` if any of the child\n // routes requires a dynamic request.\n let needsDynamicRequest = false;\n // As we traverse the children, we'll construct a FlightRouterState that can\n // be sent to the server to request the dynamic data. If it turns out that\n // nothing in the subtree is dynamic (i.e. needsDynamicRequest is false at the\n // end), then this will be discarded.\n // TODO: We can probably optimize the format of this data structure to only\n // include paths that are dynamic. Instead of reusing the\n // FlightRouterState type.\n let dynamicRequestTreeChildren = {};\n for(let parallelRouteKey in newRouterStateChildren){\n const newRouterStateChild = newRouterStateChildren[parallelRouteKey];\n const oldRouterStateChild = oldRouterStateChildren[parallelRouteKey];\n const oldSegmentMapChild = oldParallelRoutes.get(parallelRouteKey);\n const prefetchDataChild = prefetchDataChildren !== null ? prefetchDataChildren[parallelRouteKey] : null;\n const newSegmentChild = newRouterStateChild[0];\n const newSegmentPathChild = segmentPath.concat([\n parallelRouteKey,\n newSegmentChild\n ]);\n const newSegmentKeyChild = (0, _createroutercachekey.createRouterCacheKey)(newSegmentChild);\n const oldSegmentChild = oldRouterStateChild !== undefined ? oldRouterStateChild[0] : undefined;\n const oldCacheNodeChild = oldSegmentMapChild !== undefined ? oldSegmentMapChild.get(newSegmentKeyChild) : undefined;\n let taskChild;\n if (newSegmentChild === _segment.DEFAULT_SEGMENT_KEY) {\n // This is another kind of leaf segment — a default route.\n //\n // Default routes have special behavior. When there's no matching segment\n // for a parallel route, Next.js preserves the currently active segment\n // during a client navigation — but not for initial render. The server\n // leaves it to the client to account for this. So we need to handle\n // it here.\n if (oldRouterStateChild !== undefined) {\n // Reuse the existing Router State for this segment. We spawn a \"task\"\n // just to keep track of the updated router state; unlike most, it's\n // already fulfilled and won't be affected by the dynamic response.\n taskChild = spawnReusedTask(oldRouterStateChild);\n } else {\n // There's no currently active segment. Switch to the \"create\" path.\n taskChild = beginRenderingNewRouteTree(navigatedAt, oldRouterStateChild, newRouterStateChild, oldCacheNodeChild, didFindRootLayout, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchHeadPartial, newSegmentPathChild, scrollableSegmentsResult);\n }\n } else if (isSamePageNavigation && // Check if this is a page segment.\n // TODO: We're not consistent about how we do this check. Some places\n // check if the segment starts with PAGE_SEGMENT_KEY, but most seem to\n // check if there any any children, which is why I'm doing it here. We\n // should probably encode an empty children set as `null` though. Either\n // way, we should update all the checks to be consistent.\n Object.keys(newRouterStateChild[1]).length === 0) {\n // We special case navigations to the exact same URL as the current\n // location. It's a common UI pattern for apps to refresh when you click a\n // link to the current page. So when this happens, we refresh the dynamic\n // data in the page segments.\n //\n // Note that this does not apply if the any part of the hash or search\n // query has changed. This might feel a bit weird but it makes more sense\n // when you consider that the way to trigger this behavior is to click\n // the same link multiple times.\n //\n // TODO: We should probably refresh the *entire* route when this case\n // occurs, not just the page segments. Essentially treating it the same as\n // a refresh() triggered by an action, which is the more explicit way of\n // modeling the UI pattern described above.\n //\n // Also note that this only refreshes the dynamic data, not static/\n // cached data. If the page segment is fully static and prefetched, the\n // request is skipped. (This is also how refresh() works.)\n taskChild = beginRenderingNewRouteTree(navigatedAt, oldRouterStateChild, newRouterStateChild, oldCacheNodeChild, didFindRootLayout, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchHeadPartial, newSegmentPathChild, scrollableSegmentsResult);\n } else if (oldRouterStateChild !== undefined && oldSegmentChild !== undefined && (0, _matchsegments.matchSegment)(newSegmentChild, oldSegmentChild)) {\n if (oldCacheNodeChild !== undefined && oldRouterStateChild !== undefined) {\n // This segment exists in both the old and new trees. Recursively update\n // the children.\n taskChild = updateCacheNodeOnNavigation(navigatedAt, oldCacheNodeChild, oldRouterStateChild, newRouterStateChild, didFindRootLayout, prefetchDataChild, prefetchHead, isPrefetchHeadPartial, isSamePageNavigation, newSegmentPathChild, scrollableSegmentsResult);\n } else {\n // There's no existing Cache Node for this segment. Switch to the\n // \"create\" path.\n taskChild = beginRenderingNewRouteTree(navigatedAt, oldRouterStateChild, newRouterStateChild, oldCacheNodeChild, didFindRootLayout, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchHeadPartial, newSegmentPathChild, scrollableSegmentsResult);\n }\n } else {\n // This is a new tree. Switch to the \"create\" path.\n taskChild = beginRenderingNewRouteTree(navigatedAt, oldRouterStateChild, newRouterStateChild, oldCacheNodeChild, didFindRootLayout, prefetchDataChild !== undefined ? prefetchDataChild : null, prefetchHead, isPrefetchHeadPartial, newSegmentPathChild, scrollableSegmentsResult);\n }\n if (taskChild !== null) {\n // Recursively propagate up the child tasks.\n if (taskChild.route === null) {\n // One of the child tasks discovered a change to the root layout.\n // Immediately unwind from this recursive traversal.\n return MPA_NAVIGATION_TASK;\n }\n if (taskChildren === null) {\n taskChildren = new Map();\n }\n taskChildren.set(parallelRouteKey, taskChild);\n const newCacheNodeChild = taskChild.node;\n if (newCacheNodeChild !== null) {\n const newSegmentMapChild = new Map(oldSegmentMapChild);\n newSegmentMapChild.set(newSegmentKeyChild, newCacheNodeChild);\n prefetchParallelRoutes.set(parallelRouteKey, newSegmentMapChild);\n }\n // The child tree's route state may be different from the prefetched\n // route sent by the server. We need to clone it as we traverse back up\n // the tree.\n const taskChildRoute = taskChild.route;\n patchedRouterStateChildren[parallelRouteKey] = taskChildRoute;\n const dynamicRequestTreeChild = taskChild.dynamicRequestTree;\n if (dynamicRequestTreeChild !== null) {\n // Something in the child tree is dynamic.\n needsDynamicRequest = true;\n dynamicRequestTreeChildren[parallelRouteKey] = dynamicRequestTreeChild;\n } else {\n dynamicRequestTreeChildren[parallelRouteKey] = taskChildRoute;\n }\n } else {\n // The child didn't change. We can use the prefetched router state.\n patchedRouterStateChildren[parallelRouteKey] = newRouterStateChild;\n dynamicRequestTreeChildren[parallelRouteKey] = newRouterStateChild;\n }\n }\n if (taskChildren === null) {\n // No new tasks were spawned.\n return null;\n }\n const newCacheNode = {\n lazyData: null,\n rsc: oldCacheNode.rsc,\n // We intentionally aren't updating the prefetchRsc field, since this node\n // is already part of the current tree, because it would be weird for\n // prefetch data to be newer than the final data. It probably won't ever be\n // observable anyway, but it could happen if the segment is unmounted then\n // mounted again, because LayoutRouter will momentarily switch to rendering\n // prefetchRsc, via useDeferredValue.\n prefetchRsc: oldCacheNode.prefetchRsc,\n head: oldCacheNode.head,\n prefetchHead: oldCacheNode.prefetchHead,\n loading: oldCacheNode.loading,\n // Everything is cloned except for the children, which we computed above.\n parallelRoutes: prefetchParallelRoutes,\n navigatedAt\n };\n return {\n // Return a cloned copy of the router state with updated children.\n route: patchRouterStateWithNewChildren(newRouterState, patchedRouterStateChildren),\n node: newCacheNode,\n dynamicRequestTree: needsDynamicRequest ? patchRouterStateWithNewChildren(newRouterState, dynamicRequestTreeChildren) : null,\n children: taskChildren\n };\n}\nfunction beginRenderingNewRouteTree(navigatedAt, oldRouterState, newRouterState, existingCacheNode, didFindRootLayout, prefetchData, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult) {\n if (!didFindRootLayout) {\n // The route tree changed before we reached a layout. (The highest-level\n // layout in a route tree is referred to as the \"root\" layout.) This could\n // mean that we're navigating between two different root layouts. When this\n // happens, we perform a full-page (MPA-style) navigation.\n //\n // However, the algorithm for deciding where to start rendering a route\n // (i.e. the one performed in order to reach this function) is stricter\n // than the one used to detect a change in the root layout. So just because\n // we're re-rendering a segment outside of the root layout does not mean we\n // should trigger a full-page navigation.\n //\n // Specifically, we handle dynamic parameters differently: two segments are\n // considered the same even if their parameter values are different.\n //\n // Refer to isNavigatingToNewRootLayout for details.\n //\n // Note that we only have to perform this extra traversal if we didn't\n // already discover a root layout in the part of the tree that is unchanged.\n // In the common case, this branch is skipped completely.\n if (oldRouterState === undefined || (0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(oldRouterState, newRouterState)) {\n // The root layout changed. Perform a full-page navigation.\n return MPA_NAVIGATION_TASK;\n }\n }\n return createCacheNodeOnNavigation(navigatedAt, newRouterState, existingCacheNode, prefetchData, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult);\n}\nfunction createCacheNodeOnNavigation(navigatedAt, routerState, existingCacheNode, prefetchData, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult) {\n // Same traversal as updateCacheNodeNavigation, but we switch to this path\n // once we reach the part of the tree that was not in the previous route. We\n // don't need to diff against the old tree, we just need to create a new one.\n // The head is assigned to every leaf segment delivered by the server. Based\n // on corresponding logic in fill-lazy-items-till-leaf-with-head.ts\n const routerStateChildren = routerState[1];\n const isLeafSegment = Object.keys(routerStateChildren).length === 0;\n // Even we're rendering inside the \"new\" part of the target tree, we may have\n // a locally cached segment that we can reuse. This may come from either 1)\n // the CacheNode tree, which lives in React state and is populated by previous\n // navigations; or 2) the prefetch cache, which is a separate cache that is\n // populated by prefetches.\n let rsc;\n let loading;\n let head;\n let cacheNodeNavigatedAt;\n if (existingCacheNode !== undefined && // DYNAMIC_STALETIME_MS defaults to 0, but it can be increased using\n // the experimental.staleTimes.dynamic config. When set, we'll avoid\n // refetching dynamic data if it was fetched within the given threshold.\n existingCacheNode.navigatedAt + _prefetchcacheutils.DYNAMIC_STALETIME_MS > navigatedAt) {\n // We have an existing CacheNode for this segment, and it's not stale. We\n // should reuse it rather than request a new one.\n rsc = existingCacheNode.rsc;\n loading = existingCacheNode.loading;\n head = existingCacheNode.head;\n // Don't update the navigatedAt timestamp, since we're reusing stale data.\n cacheNodeNavigatedAt = existingCacheNode.navigatedAt;\n } else if (prefetchData !== null) {\n // There's no existing CacheNode for this segment, but we do have prefetch\n // data. If the prefetch data is fully static (i.e. does not contain any\n // dynamic holes), we don't need to request it from the server.\n rsc = prefetchData[1];\n loading = prefetchData[3];\n head = isLeafSegment ? possiblyPartialPrefetchHead : null;\n // Even though we're accessing the data from the prefetch cache, this is\n // conceptually a new segment, not a reused one. So we should update the\n // navigatedAt timestamp.\n cacheNodeNavigatedAt = navigatedAt;\n const isPrefetchRscPartial = prefetchData[4];\n if (isPrefetchRscPartial || // Check if the head is partial (only relevant if this is a leaf segment)\n isPrefetchHeadPartial && isLeafSegment) {\n // We only have partial data from this segment. Like missing segments, we\n // must request the full data from the server.\n return spawnPendingTask(navigatedAt, routerState, prefetchData, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult);\n } else {\n // The prefetch data is fully static, so we can omit it from the\n // navigation request.\n }\n } else {\n // There's no prefetch for this segment. Everything from this point will be\n // requested from the server, even if there are static children below it.\n // Create a terminal task node that will later be fulfilled by\n // server response.\n return spawnPendingTask(navigatedAt, routerState, null, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult);\n }\n // We already have a full segment we can render, so we don't need to request a\n // new one from the server. Keep traversing down the tree until we reach\n // something that requires a dynamic request.\n const prefetchDataChildren = prefetchData !== null ? prefetchData[2] : null;\n const taskChildren = new Map();\n const existingCacheNodeChildren = existingCacheNode !== undefined ? existingCacheNode.parallelRoutes : null;\n const cacheNodeChildren = new Map(existingCacheNodeChildren);\n let dynamicRequestTreeChildren = {};\n let needsDynamicRequest = false;\n if (isLeafSegment) {\n // The segment path of every leaf segment (i.e. page) is collected into\n // a result array. This is used by the LayoutRouter to scroll to ensure that\n // new pages are visible after a navigation.\n // TODO: We should use a string to represent the segment path instead of\n // an array. We already use a string representation for the path when\n // accessing the Segment Cache, so we can use the same one.\n scrollableSegmentsResult.push(segmentPath);\n } else {\n for(let parallelRouteKey in routerStateChildren){\n const routerStateChild = routerStateChildren[parallelRouteKey];\n const prefetchDataChild = prefetchDataChildren !== null ? prefetchDataChildren[parallelRouteKey] : null;\n const existingSegmentMapChild = existingCacheNodeChildren !== null ? existingCacheNodeChildren.get(parallelRouteKey) : undefined;\n const segmentChild = routerStateChild[0];\n const segmentPathChild = segmentPath.concat([\n parallelRouteKey,\n segmentChild\n ]);\n const segmentKeyChild = (0, _createroutercachekey.createRouterCacheKey)(segmentChild);\n const existingCacheNodeChild = existingSegmentMapChild !== undefined ? existingSegmentMapChild.get(segmentKeyChild) : undefined;\n const taskChild = createCacheNodeOnNavigation(navigatedAt, routerStateChild, existingCacheNodeChild, prefetchDataChild, possiblyPartialPrefetchHead, isPrefetchHeadPartial, segmentPathChild, scrollableSegmentsResult);\n taskChildren.set(parallelRouteKey, taskChild);\n const dynamicRequestTreeChild = taskChild.dynamicRequestTree;\n if (dynamicRequestTreeChild !== null) {\n // Something in the child tree is dynamic.\n needsDynamicRequest = true;\n dynamicRequestTreeChildren[parallelRouteKey] = dynamicRequestTreeChild;\n } else {\n dynamicRequestTreeChildren[parallelRouteKey] = routerStateChild;\n }\n const newCacheNodeChild = taskChild.node;\n if (newCacheNodeChild !== null) {\n const newSegmentMapChild = new Map();\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild);\n cacheNodeChildren.set(parallelRouteKey, newSegmentMapChild);\n }\n }\n }\n return {\n // Since we're inside a new route tree, unlike the\n // `updateCacheNodeOnNavigation` path, the router state on the children\n // tasks is always the same as the router state we pass in. So we don't need\n // to clone/modify it.\n route: routerState,\n node: {\n lazyData: null,\n // Since this segment is already full, we don't need to use the\n // `prefetchRsc` field.\n rsc,\n prefetchRsc: null,\n head,\n prefetchHead: null,\n loading,\n parallelRoutes: cacheNodeChildren,\n navigatedAt: cacheNodeNavigatedAt\n },\n dynamicRequestTree: needsDynamicRequest ? patchRouterStateWithNewChildren(routerState, dynamicRequestTreeChildren) : null,\n children: taskChildren\n };\n}\nfunction patchRouterStateWithNewChildren(baseRouterState, newChildren) {\n const clone = [\n baseRouterState[0],\n newChildren\n ];\n // Based on equivalent logic in apply-router-state-patch-to-tree, but should\n // confirm whether we need to copy all of these fields. Not sure the server\n // ever sends, e.g. the refetch marker.\n if (2 in baseRouterState) {\n clone[2] = baseRouterState[2];\n }\n if (3 in baseRouterState) {\n clone[3] = baseRouterState[3];\n }\n if (4 in baseRouterState) {\n clone[4] = baseRouterState[4];\n }\n return clone;\n}\nfunction spawnPendingTask(navigatedAt, routerState, prefetchData, prefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult) {\n // Create a task that will later be fulfilled by data from the server.\n // Clone the prefetched route tree and the `refetch` marker to it. We'll send\n // this to the server so it knows where to start rendering.\n const dynamicRequestTree = patchRouterStateWithNewChildren(routerState, routerState[1]);\n dynamicRequestTree[3] = 'refetch';\n const newTask = {\n route: routerState,\n // Corresponds to the part of the route that will be rendered on the server.\n node: createPendingCacheNode(navigatedAt, routerState, prefetchData, prefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult),\n // Because this is non-null, and it gets propagated up through the parent\n // tasks, the root task will know that it needs to perform a server request.\n dynamicRequestTree,\n children: null\n };\n return newTask;\n}\nfunction spawnReusedTask(reusedRouterState) {\n // Create a task that reuses an existing segment, e.g. when reusing\n // the current active segment in place of a default route.\n return {\n route: reusedRouterState,\n node: null,\n dynamicRequestTree: null,\n children: null\n };\n}\nfunction listenForDynamicRequest(task, responsePromise) {\n responsePromise.then((param)=>{\n let { flightData } = param;\n if (typeof flightData === 'string') {\n // Happens when navigating to page in `pages` from `app`. We shouldn't\n // get here because should have already handled this during\n // the prefetch.\n return;\n }\n for (const normalizedFlightData of flightData){\n const { segmentPath, tree: serverRouterState, seedData: dynamicData, head: dynamicHead } = normalizedFlightData;\n if (!dynamicData) {\n continue;\n }\n writeDynamicDataIntoPendingTask(task, segmentPath, serverRouterState, dynamicData, dynamicHead);\n }\n // Now that we've exhausted all the data we received from the server, if\n // there are any remaining pending tasks in the tree, abort them now.\n // If there's any missing data, it will trigger a lazy fetch.\n abortTask(task, null);\n }, (error)=>{\n // This will trigger an error during render\n abortTask(task, error);\n });\n}\nfunction writeDynamicDataIntoPendingTask(rootTask, segmentPath, serverRouterState, dynamicData, dynamicHead) {\n // The data sent by the server represents only a subtree of the app. We need\n // to find the part of the task tree that matches the server response, and\n // fulfill it using the dynamic data.\n //\n // segmentPath represents the parent path of subtree. It's a repeating pattern\n // of parallel route key and segment:\n //\n // [string, Segment, string, Segment, string, Segment, ...]\n //\n // Iterate through the path and finish any tasks that match this payload.\n let task = rootTask;\n for(let i = 0; i < segmentPath.length; i += 2){\n const parallelRouteKey = segmentPath[i];\n const segment = segmentPath[i + 1];\n const taskChildren = task.children;\n if (taskChildren !== null) {\n const taskChild = taskChildren.get(parallelRouteKey);\n if (taskChild !== undefined) {\n const taskSegment = taskChild.route[0];\n if ((0, _matchsegments.matchSegment)(segment, taskSegment)) {\n // Found a match for this task. Keep traversing down the task tree.\n task = taskChild;\n continue;\n }\n }\n }\n // We didn't find a child task that matches the server data. Exit. We won't\n // abort the task, though, because a different FlightDataPath may be able to\n // fulfill it (see loop in listenForDynamicRequest). We only abort tasks\n // once we've run out of data.\n return;\n }\n finishTaskUsingDynamicDataPayload(task, serverRouterState, dynamicData, dynamicHead);\n}\nfunction finishTaskUsingDynamicDataPayload(task, serverRouterState, dynamicData, dynamicHead) {\n if (task.dynamicRequestTree === null) {\n // Everything in this subtree is already complete. Bail out.\n return;\n }\n // dynamicData may represent a larger subtree than the task. Before we can\n // finish the task, we need to line them up.\n const taskChildren = task.children;\n const taskNode = task.node;\n if (taskChildren === null) {\n // We've reached the leaf node of the pending task. The server data tree\n // lines up the pending Cache Node tree. We can now switch to the\n // normal algorithm.\n if (taskNode !== null) {\n finishPendingCacheNode(taskNode, task.route, serverRouterState, dynamicData, dynamicHead);\n // Set this to null to indicate that this task is now complete.\n task.dynamicRequestTree = null;\n }\n return;\n }\n // The server returned more data than we need to finish the task. Skip over\n // the extra segments until we reach the leaf task node.\n const serverChildren = serverRouterState[1];\n const dynamicDataChildren = dynamicData[2];\n for(const parallelRouteKey in serverRouterState){\n const serverRouterStateChild = serverChildren[parallelRouteKey];\n const dynamicDataChild = dynamicDataChildren[parallelRouteKey];\n const taskChild = taskChildren.get(parallelRouteKey);\n if (taskChild !== undefined) {\n const taskSegment = taskChild.route[0];\n if ((0, _matchsegments.matchSegment)(serverRouterStateChild[0], taskSegment) && dynamicDataChild !== null && dynamicDataChild !== undefined) {\n // Found a match for this task. Keep traversing down the task tree.\n return finishTaskUsingDynamicDataPayload(taskChild, serverRouterStateChild, dynamicDataChild, dynamicHead);\n }\n }\n // We didn't find a child task that matches the server data. We won't abort\n // the task, though, because a different FlightDataPath may be able to\n // fulfill it (see loop in listenForDynamicRequest). We only abort tasks\n // once we've run out of data.\n }\n}\nfunction createPendingCacheNode(navigatedAt, routerState, prefetchData, prefetchHead, isPrefetchHeadPartial, segmentPath, scrollableSegmentsResult) {\n const routerStateChildren = routerState[1];\n const prefetchDataChildren = prefetchData !== null ? prefetchData[2] : null;\n const parallelRoutes = new Map();\n for(let parallelRouteKey in routerStateChildren){\n const routerStateChild = routerStateChildren[parallelRouteKey];\n const prefetchDataChild = prefetchDataChildren !== null ? prefetchDataChildren[parallelRouteKey] : null;\n const segmentChild = routerStateChild[0];\n const segmentPathChild = segmentPath.concat([\n parallelRouteKey,\n segmentChild\n ]);\n const segmentKeyChild = (0, _createroutercachekey.createRouterCacheKey)(segmentChild);\n const newCacheNodeChild = createPendingCacheNode(navigatedAt, routerStateChild, prefetchDataChild === undefined ? null : prefetchDataChild, prefetchHead, isPrefetchHeadPartial, segmentPathChild, scrollableSegmentsResult);\n const newSegmentMapChild = new Map();\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild);\n parallelRoutes.set(parallelRouteKey, newSegmentMapChild);\n }\n // The head is assigned to every leaf segment delivered by the server. Based\n // on corresponding logic in fill-lazy-items-till-leaf-with-head.ts\n const isLeafSegment = parallelRoutes.size === 0;\n if (isLeafSegment) {\n // The segment path of every leaf segment (i.e. page) is collected into\n // a result array. This is used by the LayoutRouter to scroll to ensure that\n // new pages are visible after a navigation.\n // TODO: We should use a string to represent the segment path instead of\n // an array. We already use a string representation for the path when\n // accessing the Segment Cache, so we can use the same one.\n scrollableSegmentsResult.push(segmentPath);\n }\n const maybePrefetchRsc = prefetchData !== null ? prefetchData[1] : null;\n const maybePrefetchLoading = prefetchData !== null ? prefetchData[3] : null;\n return {\n lazyData: null,\n parallelRoutes: parallelRoutes,\n prefetchRsc: maybePrefetchRsc !== undefined ? maybePrefetchRsc : null,\n prefetchHead: isLeafSegment ? prefetchHead : [\n null,\n null\n ],\n // TODO: Technically, a loading boundary could contain dynamic data. We must\n // have separate `loading` and `prefetchLoading` fields to handle this, like\n // we do for the segment data and head.\n loading: maybePrefetchLoading !== undefined ? maybePrefetchLoading : null,\n // Create a deferred promise. This will be fulfilled once the dynamic\n // response is received from the server.\n rsc: createDeferredRsc(),\n head: isLeafSegment ? createDeferredRsc() : null,\n navigatedAt\n };\n}\nfunction finishPendingCacheNode(cacheNode, taskState, serverState, dynamicData, dynamicHead) {\n // Writes a dynamic response into an existing Cache Node tree. This does _not_\n // create a new tree, it updates the existing tree in-place. So it must follow\n // the Suspense rules of cache safety — it can resolve pending promises, but\n // it cannot overwrite existing data. It can add segments to the tree (because\n // a missing segment will cause the layout router to suspend).\n // but it cannot delete them.\n //\n // We must resolve every promise in the tree, or else it will suspend\n // indefinitely. If we did not receive data for a segment, we will resolve its\n // data promise to `null` to trigger a lazy fetch during render.\n const taskStateChildren = taskState[1];\n const serverStateChildren = serverState[1];\n const dataChildren = dynamicData[2];\n // The router state that we traverse the tree with (taskState) is the same one\n // that we used to construct the pending Cache Node tree. That way we're sure\n // to resolve all the pending promises.\n const parallelRoutes = cacheNode.parallelRoutes;\n for(let parallelRouteKey in taskStateChildren){\n const taskStateChild = taskStateChildren[parallelRouteKey];\n const serverStateChild = serverStateChildren[parallelRouteKey];\n const dataChild = dataChildren[parallelRouteKey];\n const segmentMapChild = parallelRoutes.get(parallelRouteKey);\n const taskSegmentChild = taskStateChild[0];\n const taskSegmentKeyChild = (0, _createroutercachekey.createRouterCacheKey)(taskSegmentChild);\n const cacheNodeChild = segmentMapChild !== undefined ? segmentMapChild.get(taskSegmentKeyChild) : undefined;\n if (cacheNodeChild !== undefined) {\n if (serverStateChild !== undefined && (0, _matchsegments.matchSegment)(taskSegmentChild, serverStateChild[0])) {\n if (dataChild !== undefined && dataChild !== null) {\n // This is the happy path. Recursively update all the children.\n finishPendingCacheNode(cacheNodeChild, taskStateChild, serverStateChild, dataChild, dynamicHead);\n } else {\n // The server never returned data for this segment. Trigger a lazy\n // fetch during render. This shouldn't happen because the Route Tree\n // and the Seed Data tree sent by the server should always be the same\n // shape when part of the same server response.\n abortPendingCacheNode(taskStateChild, cacheNodeChild, null);\n }\n } else {\n // The server never returned data for this segment. Trigger a lazy\n // fetch during render.\n abortPendingCacheNode(taskStateChild, cacheNodeChild, null);\n }\n } else {\n // The server response matches what was expected to receive, but there's\n // no matching Cache Node in the task tree. This is a bug in the\n // implementation because we should have created a node for every\n // segment in the tree that's associated with this task.\n }\n }\n // Use the dynamic data from the server to fulfill the deferred RSC promise\n // on the Cache Node.\n const rsc = cacheNode.rsc;\n const dynamicSegmentData = dynamicData[1];\n if (rsc === null) {\n // This is a lazy cache node. We can overwrite it. This is only safe\n // because we know that the LayoutRouter suspends if `rsc` is `null`.\n cacheNode.rsc = dynamicSegmentData;\n } else if (isDeferredRsc(rsc)) {\n // This is a deferred RSC promise. We can fulfill it with the data we just\n // received from the server. If it was already resolved by a different\n // navigation, then this does nothing because we can't overwrite data.\n rsc.resolve(dynamicSegmentData);\n } else {\n // This is not a deferred RSC promise, nor is it empty, so it must have\n // been populated by a different navigation. We must not overwrite it.\n }\n // Check if this is a leaf segment. If so, it will have a `head` property with\n // a pending promise that needs to be resolved with the dynamic head from\n // the server.\n const head = cacheNode.head;\n if (isDeferredRsc(head)) {\n head.resolve(dynamicHead);\n }\n}\nfunction abortTask(task, error) {\n const cacheNode = task.node;\n if (cacheNode === null) {\n // This indicates the task is already complete.\n return;\n }\n const taskChildren = task.children;\n if (taskChildren === null) {\n // Reached the leaf task node. This is the root of a pending cache\n // node tree.\n abortPendingCacheNode(task.route, cacheNode, error);\n } else {\n // This is an intermediate task node. Keep traversing until we reach a\n // task node with no children. That will be the root of the cache node tree\n // that needs to be resolved.\n for (const taskChild of taskChildren.values()){\n abortTask(taskChild, error);\n }\n }\n // Set this to null to indicate that this task is now complete.\n task.dynamicRequestTree = null;\n}\nfunction abortPendingCacheNode(routerState, cacheNode, error) {\n // For every pending segment in the tree, resolve its `rsc` promise to `null`\n // to trigger a lazy fetch during render.\n //\n // Or, if an error object is provided, it will error instead.\n const routerStateChildren = routerState[1];\n const parallelRoutes = cacheNode.parallelRoutes;\n for(let parallelRouteKey in routerStateChildren){\n const routerStateChild = routerStateChildren[parallelRouteKey];\n const segmentMapChild = parallelRoutes.get(parallelRouteKey);\n if (segmentMapChild === undefined) {\n continue;\n }\n const segmentChild = routerStateChild[0];\n const segmentKeyChild = (0, _createroutercachekey.createRouterCacheKey)(segmentChild);\n const cacheNodeChild = segmentMapChild.get(segmentKeyChild);\n if (cacheNodeChild !== undefined) {\n abortPendingCacheNode(routerStateChild, cacheNodeChild, error);\n } else {\n // This shouldn't happen because we're traversing the same tree that was\n // used to construct the cache nodes in the first place.\n }\n }\n const rsc = cacheNode.rsc;\n if (isDeferredRsc(rsc)) {\n if (error === null) {\n // This will trigger a lazy fetch during render.\n rsc.resolve(null);\n } else {\n // This will trigger an error during rendering.\n rsc.reject(error);\n }\n }\n // Check if this is a leaf segment. If so, it will have a `head` property with\n // a pending promise that needs to be resolved. If an error was provided, we\n // will not resolve it with an error, since this is rendered at the root of\n // the app. We want the segment to error, not the entire app.\n const head = cacheNode.head;\n if (isDeferredRsc(head)) {\n head.resolve(null);\n }\n}\nfunction updateCacheNodeOnPopstateRestoration(oldCacheNode, routerState) {\n // A popstate navigation reads data from the local cache. It does not issue\n // new network requests (unless the cache entries have been evicted). So, we\n // update the cache to drop the prefetch data for any segment whose dynamic\n // data was already received. This prevents an unnecessary flash back to PPR\n // state during a back/forward navigation.\n //\n // This function clones the entire cache node tree and sets the `prefetchRsc`\n // field to `null` to prevent it from being rendered. We can't mutate the node\n // in place because this is a concurrent data structure.\n const routerStateChildren = routerState[1];\n const oldParallelRoutes = oldCacheNode.parallelRoutes;\n const newParallelRoutes = new Map(oldParallelRoutes);\n for(let parallelRouteKey in routerStateChildren){\n const routerStateChild = routerStateChildren[parallelRouteKey];\n const segmentChild = routerStateChild[0];\n const segmentKeyChild = (0, _createroutercachekey.createRouterCacheKey)(segmentChild);\n const oldSegmentMapChild = oldParallelRoutes.get(parallelRouteKey);\n if (oldSegmentMapChild !== undefined) {\n const oldCacheNodeChild = oldSegmentMapChild.get(segmentKeyChild);\n if (oldCacheNodeChild !== undefined) {\n const newCacheNodeChild = updateCacheNodeOnPopstateRestoration(oldCacheNodeChild, routerStateChild);\n const newSegmentMapChild = new Map(oldSegmentMapChild);\n newSegmentMapChild.set(segmentKeyChild, newCacheNodeChild);\n newParallelRoutes.set(parallelRouteKey, newSegmentMapChild);\n }\n }\n }\n // Only show prefetched data if the dynamic data is still pending.\n //\n // Tehnically, what we're actually checking is whether the dynamic network\n // response was received. But since it's a streaming response, this does not\n // mean that all the dynamic data has fully streamed in. It just means that\n // _some_ of the dynamic data was received. But as a heuristic, we assume that\n // the rest dynamic data will stream in quickly, so it's still better to skip\n // the prefetch state.\n const rsc = oldCacheNode.rsc;\n const shouldUsePrefetch = isDeferredRsc(rsc) && rsc.status === 'pending';\n return {\n lazyData: null,\n rsc,\n head: oldCacheNode.head,\n prefetchHead: shouldUsePrefetch ? oldCacheNode.prefetchHead : [\n null,\n null\n ],\n prefetchRsc: shouldUsePrefetch ? oldCacheNode.prefetchRsc : null,\n loading: oldCacheNode.loading,\n // These are the cloned children we computed above\n parallelRoutes: newParallelRoutes,\n navigatedAt: oldCacheNode.navigatedAt\n };\n}\nconst DEFERRED = Symbol();\n// This type exists to distinguish a DeferredRsc from a Flight promise. It's a\n// compromise to avoid adding an extra field on every Cache Node, which would be\n// awkward because the pre-PPR parts of codebase would need to account for it,\n// too. We can remove it once type Cache Node type is more settled.\nfunction isDeferredRsc(value) {\n return value && value.tag === DEFERRED;\n}\nfunction createDeferredRsc() {\n let resolve;\n let reject;\n const pendingRsc = new Promise((res, rej)=>{\n resolve = res;\n reject = rej;\n });\n pendingRsc.status = 'pending';\n pendingRsc.resolve = (value)=>{\n if (pendingRsc.status === 'pending') {\n const fulfilledRsc = pendingRsc;\n fulfilledRsc.status = 'fulfilled';\n fulfilledRsc.value = value;\n resolve(value);\n }\n };\n pendingRsc.reject = (error)=>{\n if (pendingRsc.status === 'pending') {\n const rejectedRsc = pendingRsc;\n rejectedRsc.status = 'rejected';\n rejectedRsc.reason = error;\n reject(error);\n }\n };\n pendingRsc.tag = DEFERRED;\n return pendingRsc;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=ppr-navigations.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3Bwci1uYXZpZ2F0aW9ucy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUEwa0NnQkEsU0FBUztlQUFUQTs7SUExVkFDLHVCQUF1QjtlQUF2QkE7O0lBdnBCQUMsa0JBQWtCO2VBQWxCQTs7SUE2akNBQyxvQ0FBb0M7ZUFBcENBOzs7cUNBem9Db0I7MkNBQ1A7a0RBQ1E7eURBRU87Z0RBQ1A7QUFpQ3JDLE1BQU1DLHNCQUF5QztJQUM3Q0MsT0FBTztJQUNQQyxNQUFNO0lBQ05DLG9CQUFvQjtJQUNwQkMsVUFBVTtBQUNaO0FBaUNPLFNBQVNOLG1CQUNkTyxXQUFtQixFQUNuQkMsWUFBdUIsRUFDdkJDLGNBQWlDLEVBQ2pDQyxjQUFpQyxFQUNqQ0MsWUFBc0MsRUFDdENDLFlBQTZCLEVBQzdCQyxxQkFBOEIsRUFDOUJDLG9CQUE2QixFQUM3QkMsd0JBQWtEO0lBRWxELE1BQU1DLGNBQXdDLEVBQUU7SUFDaEQsT0FBT0MsNEJBQ0xWLGFBQ0FDLGNBQ0FDLGdCQUNBQyxnQkFDQSxPQUNBQyxjQUNBQyxjQUNBQyx1QkFDQUMsc0JBQ0FFLGFBQ0FEO0FBRUo7QUFFQSxTQUFTRSw0QkFDUFYsV0FBbUIsRUFDbkJDLFlBQXVCLEVBQ3ZCQyxjQUFpQyxFQUNqQ0MsY0FBaUMsRUFDakNRLGlCQUEwQixFQUMxQlAsWUFBc0MsRUFDdENDLFlBQTZCLEVBQzdCQyxxQkFBOEIsRUFDOUJDLG9CQUE2QixFQUM3QkUsV0FBOEIsRUFDOUJELHdCQUFrRDtJQUVsRCwwREFBMEQ7SUFDMUQsTUFBTUkseUJBQXlCVixjQUFjLENBQUMsRUFBRTtJQUNoRCxNQUFNVyx5QkFBeUJWLGNBQWMsQ0FBQyxFQUFFO0lBQ2hELE1BQU1XLHVCQUF1QlYsaUJBQWlCLE9BQU9BLFlBQVksQ0FBQyxFQUFFLEdBQUc7SUFFdkUsSUFBSSxDQUFDTyxtQkFBbUI7UUFDdEIsd0VBQXdFO1FB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OEgsb0JBQW9CbEksYUFBYUksWUFBWSxHQUFHO1lBQUM7WUFBTTtTQUFLO1FBQzFFaUQsYUFBYTZFLG9CQUFvQmxJLGFBQWFxRCxXQUFXLEdBQUc7UUFDNURFLFNBQVN2RCxhQUFhdUQsT0FBTztRQUU3QixrREFBa0Q7UUFDbER2QyxnQkFBZ0JpSDtRQUVoQmxJLGFBQWFDLGFBQWFELFdBQVc7SUFDdkM7QUFDRjtBQUVBLE1BQU1xSSxXQUFXQztBQThCakIsOEVBQThFO0FBQzlFLGdGQUFnRjtBQUNoRiw4RUFBOEU7QUFDOUUsbUVBQW1FO0FBQ25FLFNBQVNSLGNBQWNTLEtBQVU7SUFDL0IsT0FBT0EsU0FBU0EsTUFBTUMsR0FBRyxLQUFLSDtBQUNoQztBQUVBLFNBQVN2QjtJQUNQLElBQUlpQjtJQUNKLElBQUlFO0lBQ0osTUFBTVEsYUFBYSxJQUFJQyxRQUF5QixDQUFDQyxLQUFLQztRQUNwRGIsVUFBVVk7UUFDVlYsU0FBU1c7SUFDWDtJQUNBSCxXQUFXTCxNQUFNLEdBQUc7SUFDcEJLLFdBQVdWLE9BQU8sR0FBRyxDQUFDUTtRQUNwQixJQUFJRSxXQUFXTCxNQUFNLEtBQUssV0FBVztZQUNuQyxNQUFNUyxlQUFxQ0o7WUFDM0NJLGFBQWFULE1BQU0sR0FBRztZQUN0QlMsYUFBYU4sS0FBSyxHQUFHQTtZQUNyQlIsUUFBUVE7UUFDVjtJQUNGO0lBQ0FFLFdBQVdSLE1BQU0sR0FBRyxDQUFDbEM7UUFDbkIsSUFBSTBDLFdBQVdMLE1BQU0sS0FBSyxXQUFXO1lBQ25DLE1BQU1VLGNBQW1DTDtZQUN6Q0ssWUFBWVYsTUFBTSxHQUFHO1lBQ3JCVSxZQUFZQyxNQUFNLEdBQUdoRDtZQUNyQmtDLE9BQU9sQztRQUNUO0lBQ0Y7SUFDQTBDLFdBQVdELEdBQUcsR0FBR0g7SUFDakIsT0FBT0k7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3Bwci1uYXZpZ2F0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIENhY2hlTm9kZVNlZWREYXRhLFxuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgRmxpZ2h0U2VnbWVudFBhdGgsXG4gIFNlZ21lbnQsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBDYWNoZU5vZGUsXG4gIENoaWxkU2VnbWVudE1hcCxcbiAgSGVhZERhdGEsXG4gIExvYWRpbmdNb2R1bGVEYXRhLFxuICBSZWFkeUNhY2hlTm9kZSxcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBERUZBVUxUX1NFR01FTlRfS0VZIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9zZWdtZW50J1xuaW1wb3J0IHsgbWF0Y2hTZWdtZW50IH0gZnJvbSAnLi4vbWF0Y2gtc2VnbWVudHMnXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gJy4vY3JlYXRlLXJvdXRlci1jYWNoZS1rZXknXG5pbXBvcnQgdHlwZSB7IEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuL2ZldGNoLXNlcnZlci1yZXNwb25zZSdcbmltcG9ydCB7IGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCB9IGZyb20gJy4vaXMtbmF2aWdhdGluZy10by1uZXctcm9vdC1sYXlvdXQnXG5pbXBvcnQgeyBEWU5BTUlDX1NUQUxFVElNRV9NUyB9IGZyb20gJy4vcHJlZmV0Y2gtY2FjaGUtdXRpbHMnXG5cbi8vIFRoaXMgaXMgeWV0IGFub3RoZXIgdHJlZSB0eXBlIHRoYXQgaXMgdXNlZCB0byB0cmFjayBwZW5kaW5nIHByb21pc2VzIHRoYXRcbi8vIG5lZWQgdG8gYmUgZnVsZmlsbGVkIG9uY2UgdGhlIGR5bmFtaWMgZGF0YSBpcyByZWNlaXZlZC4gVGhlIHRlcm1pbmFsIG5vZGVzIG9mXG4vLyB0aGlzIHRyZWUgcmVwcmVzZW50IHRoZSBuZXcgQ2FjaGUgTm9kZSB0cmVlcyB0aGF0IHdlcmUgY3JlYXRlZCBkdXJpbmcgdGhpc1xuLy8gcmVxdWVzdC4gV2UgY2FuJ3QgdXNlIHRoZSBDYWNoZSBOb2RlIHRyZWUgb3IgUm91dGUgU3RhdGUgdHJlZSBkaXJlY3RseVxuLy8gYmVjYXVzZSB0aG9zZSBpbmNsdWRlIHJldXNlZCBub2RlcywgdG9vLiBUaGlzIHRyZWUgaXMgZGlzY2FyZGVkIGFzIHNvb24gYXNcbi8vIHRoZSBuYXZpZ2F0aW9uIHJlc3BvbnNlIGlzIHJlY2VpdmVkLlxudHlwZSBTUEFOYXZpZ2F0aW9uVGFzayA9IHtcbiAgLy8gVGhlIHJvdXRlciBzdGF0ZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSB0cmVlIHRoYXQgdGhpcyBUYXNrIHJlcHJlc2VudHMuXG4gIHJvdXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICAvLyBUaGUgQ2FjaGVOb2RlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIHRyZWUgdGhhdCB0aGlzIFRhc2sgcmVwcmVzZW50cy4gSWZcbiAgLy8gYGNoaWxkcmVuYCBpcyBudWxsIChpLmUuIGlmIHRoaXMgaXMgYSB0ZXJtaW5hbCB0YXNrIG5vZGUpLCB0aGVuIGBub2RlYFxuICAvLyByZXByZXNlbnRzIGEgYnJhbmQgbmV3IENhY2hlIE5vZGUgdHJlZSwgd2hpY2ggd2F5IG9yIG1heSBub3QgbmVlZCB0byBiZVxuICAvLyBmaWxsZWQgd2l0aCBkeW5hbWljIGRhdGEgZnJvbSB0aGUgc2VydmVyLlxuICBub2RlOiBDYWNoZU5vZGUgfCBudWxsXG4gIC8vIFRoZSB0cmVlIHNlbnQgdG8gdGhlIHNlcnZlciBkdXJpbmcgdGhlIGR5bmFtaWMgcmVxdWVzdC4gVGhpcyBpcyB0aGVcbiAgLy8gc2FtZSBhcyBgcm91dGVgLCBleGNlcHQgd2l0aCB0aGUgYHJlZmV0Y2hgIG1hcmtlciBzZXQgb24gZHluYW1pYyBzZWdtZW50cy5cbiAgLy8gSWYgYWxsIHRoZSBzZWdtZW50cyBhcmUgc3RhdGljLCB0aGVuIHRoaXMgd2lsbCBiZSBudWxsLCBhbmQgbm8gc2VydmVyXG4gIC8vIHJlcXVlc3QgaXMgcmVxdWlyZWQuXG4gIGR5bmFtaWNSZXF1ZXN0VHJlZTogRmxpZ2h0Um91dGVyU3RhdGUgfCBudWxsXG4gIGNoaWxkcmVuOiBNYXA8c3RyaW5nLCBTUEFOYXZpZ2F0aW9uVGFzaz4gfCBudWxsXG59XG5cbi8vIEEgc3BlY2lhbCB0eXBlIHVzZWQgdG8gYmFpbCBvdXQgYW5kIHRyaWdnZXIgYSBmdWxsLXBhZ2UgbmF2aWdhdGlvbi5cbnR5cGUgTVBBTmF2aWdhdGlvblRhc2sgPSB7XG4gIC8vIE1QQSB0YXNrcyBhcmUgZGlzdGluZ3Vpc2VkIGZyb20gU1BBIHRhc2tzIGJ5IGhhdmluZyBhIG51bGwgYHJvdXRlYC5cbiAgcm91dGU6IG51bGxcbiAgbm9kZTogbnVsbFxuICBkeW5hbWljUmVxdWVzdFRyZWU6IG51bGxcbiAgY2hpbGRyZW46IG51bGxcbn1cblxuY29uc3QgTVBBX05BVklHQVRJT05fVEFTSzogTVBBTmF2aWdhdGlvblRhc2sgPSB7XG4gIHJvdXRlOiBudWxsLFxuICBub2RlOiBudWxsLFxuICBkeW5hbWljUmVxdWVzdFRyZWU6IG51bGwsXG4gIGNoaWxkcmVuOiBudWxsLFxufVxuXG5leHBvcnQgdHlwZSBUYXNrID0gU1BBTmF2aWdhdGlvblRhc2sgfCBNUEFOYXZpZ2F0aW9uVGFza1xuXG4vLyBDcmVhdGVzIGEgbmV3IENhY2hlIE5vZGUgdHJlZSAoaS5lLiBjb3B5LW9uLXdyaXRlKSB0aGF0IHJlcHJlc2VudHMgdGhlXG4vLyBvcHRpbWlzdGljIHJlc3VsdCBvZiBhIG5hdmlnYXRpb24sIHVzaW5nIGJvdGggdGhlIGN1cnJlbnQgQ2FjaGUgTm9kZSB0cmVlIGFuZFxuLy8gZGF0YSB0aGF0IHdhcyBwcmVmZXRjaGVkIHByaW9yIHRvIG5hdmlnYXRpb24uXG4vL1xuLy8gQXQgdGhlIG1vbWVudCB3ZSBjYWxsIHRoaXMgZnVuY3Rpb24sIHdlIGhhdmVuJ3QgeWV0IHJlY2VpdmVkIHRoZSBuYXZpZ2F0aW9uXG4vLyByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuIEl0IGNvdWxkIHNlbmQgYmFjayBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJlbnRcbi8vIGZyb20gdGhlIHRyZWUgdGhhdCB3YXMgcHJlZmV0Y2hlZCDigJQgZHVlIHRvIHJld3JpdGVzLCBkZWZhdWx0IHJvdXRlcywgcGFyYWxsZWxcbi8vIHJvdXRlcywgZXRjLlxuLy9cbi8vIEJ1dCBpbiBtb3N0IGNhc2VzLCBpdCB3aWxsIHJldHVybiB0aGUgc2FtZSB0cmVlIHRoYXQgd2UgcHJlZmV0Y2hlZCwganVzdCB3aXRoXG4vLyB0aGUgZHluYW1pYyBob2xlcyBmaWxsZWQgaW4uIFNvIHdlIG9wdGltaXN0aWNhbGx5IGFzc3VtZSB0aGlzIHdpbGwgaGFwcGVuLFxuLy8gYW5kIGFjY2VwdCB0aGF0IHRoZSByZWFsIHJlc3VsdCBjb3VsZCBiZSBhcmJpdHJhcmlseSBkaWZmZXJlbnQuXG4vL1xuLy8gV2UnbGwgcmV1c2UgYW55dGhpbmcgdGhhdCB3YXMgYWxyZWFkeSBpbiB0aGUgcHJldmlvdXMgdHJlZSwgc2luY2UgdGhhdCdzIHdoYXRcbi8vIHRoZSBzZXJ2ZXIgZG9lcy5cbi8vXG4vLyBOZXcgc2VnbWVudHMgKG9uZXMgdGhhdCBkb24ndCBhcHBlYXIgaW4gdGhlIG9sZCB0cmVlKSBhcmUgYXNzaWduZWQgYW5cbi8vIHVucmVzb2x2ZWQgcHJvbWlzZS4gVGhlIGRhdGEgZm9yIHRoZXNlIHByb21pc2VzIHdpbGwgYmUgZnVsZmlsbGVkIGxhdGVyLCB3aGVuXG4vLyB0aGUgbmF2aWdhdGlvbiByZXNwb25zZSBpcyByZWNlaXZlZC5cbi8vXG4vLyBUaGUgdHJlZSBjYW4gYmUgcmVuZGVyZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgaXQgaXMgY3JlYXRlZCAodGhhdCdzIHdoeSB0aGlzIGlzXG4vLyBhIHN5bmNocm9ub3VzIGZ1bmN0aW9uKS4gQW55IG5ldyB0cmVlcyB0aGF0IGRvIG5vdCBoYXZlIHByZWZldGNoIGRhdGEgd2lsbFxuLy8gc3VzcGVuZCBkdXJpbmcgcmVuZGVyaW5nLCB1bnRpbCB0aGUgZHluYW1pYyBkYXRhIHN0cmVhbXMgaW4uXG4vL1xuLy8gUmV0dXJucyBhIFRhc2sgb2JqZWN0LCB3aGljaCBjb250YWlucyBib3RoIHRoZSB1cGRhdGVkIENhY2hlIE5vZGUgYW5kIGEgcGF0aFxuLy8gdG8gdGhlIHBlbmRpbmcgc3VidHJlZXMgdGhhdCBuZWVkIHRvIGJlIHJlc29sdmVkIGJ5IHRoZSBuYXZpZ2F0aW9uIHJlc3BvbnNlLlxuLy9cbi8vIEEgcmV0dXJuIHZhbHVlIG9mIGBudWxsYCBtZWFucyB0aGVyZSB3ZXJlIG5vIGNoYW5nZXMsIGFuZCB0aGUgcHJldmlvdXMgdHJlZVxuLy8gY2FuIGJlIHJldXNlZCB3aXRob3V0IGluaXRpYXRpbmcgYSBzZXJ2ZXIgcmVxdWVzdC5cbmV4cG9ydCBmdW5jdGlvbiBzdGFydFBQUk5hdmlnYXRpb24oXG4gIG5hdmlnYXRlZEF0OiBudW1iZXIsXG4gIG9sZENhY2hlTm9kZTogQ2FjaGVOb2RlLFxuICBvbGRSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIG5ld1JvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgcHJlZmV0Y2hEYXRhOiBDYWNoZU5vZGVTZWVkRGF0YSB8IG51bGwsXG4gIHByZWZldGNoSGVhZDogSGVhZERhdGEgfCBudWxsLFxuICBpc1ByZWZldGNoSGVhZFBhcnRpYWw6IGJvb2xlYW4sXG4gIGlzU2FtZVBhZ2VOYXZpZ2F0aW9uOiBib29sZWFuLFxuICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHQ6IEFycmF5PEZsaWdodFNlZ21lbnRQYXRoPlxuKTogVGFzayB8IG51bGwge1xuICBjb25zdCBzZWdtZW50UGF0aDogQXJyYXk8RmxpZ2h0U2VnbWVudFBhdGg+ID0gW11cbiAgcmV0dXJuIHVwZGF0ZUNhY2hlTm9kZU9uTmF2aWdhdGlvbihcbiAgICBuYXZpZ2F0ZWRBdCxcbiAgICBvbGRDYWNoZU5vZGUsXG4gICAgb2xkUm91dGVyU3RhdGUsXG4gICAgbmV3Um91dGVyU3RhdGUsXG4gICAgZmFsc2UsXG4gICAgcHJlZmV0Y2hEYXRhLFxuICAgIHByZWZldGNoSGVhZCxcbiAgICBpc1ByZWZldGNoSGVhZFBhcnRpYWwsXG4gICAgaXNTYW1lUGFnZU5hdmlnYXRpb24sXG4gICAgc2VnbWVudFBhdGgsXG4gICAgc2Nyb2xsYWJsZVNlZ21lbnRzUmVzdWx0XG4gIClcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ2FjaGVOb2RlT25OYXZpZ2F0aW9uKFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyLFxuICBvbGRDYWNoZU5vZGU6IENhY2hlTm9kZSxcbiAgb2xkUm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBuZXdSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIGRpZEZpbmRSb290TGF5b3V0OiBib29sZWFuLFxuICBwcmVmZXRjaERhdGE6IENhY2hlTm9kZVNlZWREYXRhIHwgbnVsbCxcbiAgcHJlZmV0Y2hIZWFkOiBIZWFkRGF0YSB8IG51bGwsXG4gIGlzUHJlZmV0Y2hIZWFkUGFydGlhbDogYm9vbGVhbixcbiAgaXNTYW1lUGFnZU5hdmlnYXRpb246IGJvb2xlYW4sXG4gIHNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aCxcbiAgc2Nyb2xsYWJsZVNlZ21lbnRzUmVzdWx0OiBBcnJheTxGbGlnaHRTZWdtZW50UGF0aD5cbik6IFRhc2sgfCBudWxsIHtcbiAgLy8gRGlmZiB0aGUgb2xkIGFuZCBuZXcgdHJlZXMgdG8gcmV1c2UgdGhlIHNoYXJlZCBsYXlvdXRzLlxuICBjb25zdCBvbGRSb3V0ZXJTdGF0ZUNoaWxkcmVuID0gb2xkUm91dGVyU3RhdGVbMV1cbiAgY29uc3QgbmV3Um91dGVyU3RhdGVDaGlsZHJlbiA9IG5ld1JvdXRlclN0YXRlWzFdXG4gIGNvbnN0IHByZWZldGNoRGF0YUNoaWxkcmVuID0gcHJlZmV0Y2hEYXRhICE9PSBudWxsID8gcHJlZmV0Y2hEYXRhWzJdIDogbnVsbFxuXG4gIGlmICghZGlkRmluZFJvb3RMYXlvdXQpIHtcbiAgICAvLyBXZSdyZSBjdXJyZW50bHkgdHJhdmVyc2luZyB0aGUgcGFydCBvZiB0aGUgdHJlZSB0aGF0IHdhcyBhbHNvIHBhcnQgb2ZcbiAgICAvLyB0aGUgcHJldmlvdXMgcm91dGUuIElmIHdlIGRpc2NvdmVyIGEgcm9vdCBsYXlvdXQsIHRoZW4gd2UgZG9uJ3QgbmVlZCB0b1xuICAgIC8vIHRyaWdnZXIgYW4gTVBBIG5hdmlnYXRpb24uIFNlZSBiZWdpblJlbmRlcmluZ05ld1JvdXRlVHJlZSBmb3IgY29udGV4dC5cbiAgICBjb25zdCBpc1Jvb3RMYXlvdXQgPSBuZXdSb3V0ZXJTdGF0ZVs0XSA9PT0gdHJ1ZVxuICAgIGlmIChpc1Jvb3RMYXlvdXQpIHtcbiAgICAgIC8vIEZvdW5kIGEgbWF0Y2hpbmcgcm9vdCBsYXlvdXQuXG4gICAgICBkaWRGaW5kUm9vdExheW91dCA9IHRydWVcbiAgICB9XG4gIH1cblxuICBjb25zdCBvbGRQYXJhbGxlbFJvdXRlcyA9IG9sZENhY2hlTm9kZS5wYXJhbGxlbFJvdXRlc1xuXG4gIC8vIENsb25lIHRoZSBjdXJyZW50IHNldCBvZiBzZWdtZW50IGNoaWxkcmVuLCBldmVuIGlmIHRoZXkgYXJlbid0IGFjdGl2ZSBpblxuICAvLyB0aGUgbmV3IHRyZWUuXG4gIC8vIFRPRE86IFdlIGN1cnJlbnRseSByZXRhaW4gYWxsIHRoZSBpbmFjdGl2ZSBzZWdtZW50cyBpbmRlZmluaXRlbHksIHVudGlsXG4gIC8vIHRoZXJlJ3MgYW4gZXhwbGljaXQgcmVmcmVzaCwgb3IgYSBwYXJlbnQgbGF5b3V0IGlzIGxhemlseSByZWZyZXNoZWQuIFdlXG4gIC8vIHJlbHkgb24gdGhpcyBmb3IgcG9wc3RhdGUgbmF2aWdhdGlvbnMsIHdoaWNoIHVwZGF0ZSB0aGUgUm91dGVyIFN0YXRlIFRyZWVcbiAgLy8gYnV0IGRvIG5vdCBlYWdlcmx5IHBlcmZvcm0gYSBkYXRhIGZldGNoLCBiZWNhdXNlIHRoZXkgZXhwZWN0IHRoZSBzZWdtZW50XG4gIC8vIGRhdGEgdG8gYWxyZWFkeSBiZSBpbiB0aGUgQ2FjaGUgTm9kZSB0cmVlLiBGb3IgaGlnaGx5IHN0YXRpYyBzaXRlcyB0aGF0XG4gIC8vIGFyZSBtb3N0bHkgcmVhZC1vbmx5LCB0aGlzIG1heSBoYXBwZW4gb25seSByYXJlbHksIGNhdXNpbmcgbWVtb3J5IHRvXG4gIC8vIGxlYWsuIFdlIHNob3VsZCBmaWd1cmUgb3V0IGEgYmV0dGVyIG1vZGVsIGZvciB0aGUgbGlmZXRpbWUgb2YgaW5hY3RpdmVcbiAgLy8gc2VnbWVudHMsIHNvIHdlIGNhbiBtYWludGFpbiBpbnN0YW50IGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9ucyB3aXRob3V0XG4gIC8vIGxlYWtpbmcgbWVtb3J5IGluZGVmaW5pdGVseS5cbiAgY29uc3QgcHJlZmV0Y2hQYXJhbGxlbFJvdXRlcyA9IG5ldyBNYXAob2xkUGFyYWxsZWxSb3V0ZXMpXG5cbiAgLy8gQXMgd2UgZGlmZiB0aGUgdHJlZXMsIHdlIG1heSBzb21ldGltZXMgbW9kaWZ5IChjb3B5LW9uLXdyaXRlLCBub3QgbXV0YXRlKVxuICAvLyB0aGUgUm91dGUgVHJlZSB0aGF0IHdhcyByZXR1cm5lZCBieSB0aGUgc2VydmVyIOKAlCBmb3IgZXhhbXBsZSwgaW4gdGhlIGNhc2VcbiAgLy8gb2YgZGVmYXVsdCBwYXJhbGxlbCByb3V0ZXMsIHdlIHByZXNlcnZlIHRoZSBjdXJyZW50bHkgYWN0aXZlIHNlZ21lbnQuIFRvXG4gIC8vIGF2b2lkIG11dGF0aW5nIHRoZSBvcmlnaW5hbCB0cmVlLCB3ZSBjbG9uZSB0aGUgcm91dGVyIHN0YXRlIGNoaWxkcmVuIGFsb25nXG4gIC8vIHRoZSByZXR1cm4gcGF0aC5cbiAgbGV0IHBhdGNoZWRSb3V0ZXJTdGF0ZUNoaWxkcmVuOiB7XG4gICAgW3BhcmFsbGVsUm91dGVLZXk6IHN0cmluZ106IEZsaWdodFJvdXRlclN0YXRlXG4gIH0gPSB7fVxuICBsZXQgdGFza0NoaWxkcmVuID0gbnVsbFxuXG4gIC8vIE1vc3QgbmF2aWdhdGlvbnMgcmVxdWlyZSBhIHJlcXVlc3QgdG8gZmV0Y2ggYWRkaXRpb25hbCBkYXRhIGZyb20gdGhlXG4gIC8vIHNlcnZlciwgZWl0aGVyIGJlY2F1c2UgdGhlIGRhdGEgd2FzIG5vdCBhbHJlYWR5IHByZWZldGNoZWQsIG9yIGJlY2F1c2UgdGhlXG4gIC8vIHRhcmdldCByb3V0ZSBjb250YWlucyBkeW5hbWljIGRhdGEgdGhhdCBjYW5ub3QgYmUgcHJlZmV0Y2hlZC5cbiAgLy9cbiAgLy8gSG93ZXZlciwgaWYgdGhlIHRhcmdldCByb3V0ZSBpcyBmdWxseSBzdGF0aWMsIGFuZCBpdCdzIGFscmVhZHkgY29tcGxldGVseVxuICAvLyBsb2FkZWQgaW50byB0aGUgc2VnbWVudCBjYWNoZSwgdGhlbiB3ZSBjYW4gc2tpcCB0aGUgc2VydmVyIHJlcXVlc3QuXG4gIC8vXG4gIC8vIFRoaXMgc3RhcnRzIG9mZiBhcyBgZmFsc2VgLCBhbmQgaXMgc2V0IHRvIGB0cnVlYCBpZiBhbnkgb2YgdGhlIGNoaWxkXG4gIC8vIHJvdXRlcyByZXF1aXJlcyBhIGR5bmFtaWMgcmVxdWVzdC5cbiAgbGV0IG5lZWRzRHluYW1pY1JlcXVlc3QgPSBmYWxzZVxuICAvLyBBcyB3ZSB0cmF2ZXJzZSB0aGUgY2hpbGRyZW4sIHdlJ2xsIGNvbnN0cnVjdCBhIEZsaWdodFJvdXRlclN0YXRlIHRoYXQgY2FuXG4gIC8vIGJlIHNlbnQgdG8gdGhlIHNlcnZlciB0byByZXF1ZXN0IHRoZSBkeW5hbWljIGRhdGEuIElmIGl0IHR1cm5zIG91dCB0aGF0XG4gIC8vIG5vdGhpbmcgaW4gdGhlIHN1YnRyZWUgaXMgZHluYW1pYyAoaS5lLiBuZWVkc0R5bmFtaWNSZXF1ZXN0IGlzIGZhbHNlIGF0IHRoZVxuICAvLyBlbmQpLCB0aGVuIHRoaXMgd2lsbCBiZSBkaXNjYXJkZWQuXG4gIC8vIFRPRE86IFdlIGNhbiBwcm9iYWJseSBvcHRpbWl6ZSB0aGUgZm9ybWF0IG9mIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgdG8gb25seVxuICAvLyBpbmNsdWRlIHBhdGhzIHRoYXQgYXJlIGR5bmFtaWMuIEluc3RlYWQgb2YgcmV1c2luZyB0aGVcbiAgLy8gRmxpZ2h0Um91dGVyU3RhdGUgdHlwZS5cbiAgbGV0IGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkcmVuOiB7XG4gICAgW3BhcmFsbGVsUm91dGVLZXk6IHN0cmluZ106IEZsaWdodFJvdXRlclN0YXRlXG4gIH0gPSB7fVxuXG4gIGZvciAobGV0IHBhcmFsbGVsUm91dGVLZXkgaW4gbmV3Um91dGVyU3RhdGVDaGlsZHJlbikge1xuICAgIGNvbnN0IG5ld1JvdXRlclN0YXRlQ2hpbGQ6IEZsaWdodFJvdXRlclN0YXRlID1cbiAgICAgIG5ld1JvdXRlclN0YXRlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICBjb25zdCBvbGRSb3V0ZXJTdGF0ZUNoaWxkOiBGbGlnaHRSb3V0ZXJTdGF0ZSB8IHZvaWQgPVxuICAgICAgb2xkUm91dGVyU3RhdGVDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XVxuICAgIGNvbnN0IG9sZFNlZ21lbnRNYXBDaGlsZCA9IG9sZFBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlS2V5KVxuICAgIGNvbnN0IHByZWZldGNoRGF0YUNoaWxkOiBDYWNoZU5vZGVTZWVkRGF0YSB8IHZvaWQgfCBudWxsID1cbiAgICAgIHByZWZldGNoRGF0YUNoaWxkcmVuICE9PSBudWxsXG4gICAgICAgID8gcHJlZmV0Y2hEYXRhQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICAgICAgOiBudWxsXG5cbiAgICBjb25zdCBuZXdTZWdtZW50Q2hpbGQgPSBuZXdSb3V0ZXJTdGF0ZUNoaWxkWzBdXG4gICAgY29uc3QgbmV3U2VnbWVudFBhdGhDaGlsZCA9IHNlZ21lbnRQYXRoLmNvbmNhdChbXG4gICAgICBwYXJhbGxlbFJvdXRlS2V5LFxuICAgICAgbmV3U2VnbWVudENoaWxkLFxuICAgIF0pXG4gICAgY29uc3QgbmV3U2VnbWVudEtleUNoaWxkID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkobmV3U2VnbWVudENoaWxkKVxuXG4gICAgY29uc3Qgb2xkU2VnbWVudENoaWxkID1cbiAgICAgIG9sZFJvdXRlclN0YXRlQ2hpbGQgIT09IHVuZGVmaW5lZCA/IG9sZFJvdXRlclN0YXRlQ2hpbGRbMF0gOiB1bmRlZmluZWRcblxuICAgIGNvbnN0IG9sZENhY2hlTm9kZUNoaWxkID1cbiAgICAgIG9sZFNlZ21lbnRNYXBDaGlsZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gb2xkU2VnbWVudE1hcENoaWxkLmdldChuZXdTZWdtZW50S2V5Q2hpbGQpXG4gICAgICAgIDogdW5kZWZpbmVkXG5cbiAgICBsZXQgdGFza0NoaWxkOiBUYXNrIHwgbnVsbFxuICAgIGlmIChuZXdTZWdtZW50Q2hpbGQgPT09IERFRkFVTFRfU0VHTUVOVF9LRVkpIHtcbiAgICAgIC8vIFRoaXMgaXMgYW5vdGhlciBraW5kIG9mIGxlYWYgc2VnbWVudCDigJQgYSBkZWZhdWx0IHJvdXRlLlxuICAgICAgLy9cbiAgICAgIC8vIERlZmF1bHQgcm91dGVzIGhhdmUgc3BlY2lhbCBiZWhhdmlvci4gV2hlbiB0aGVyZSdzIG5vIG1hdGNoaW5nIHNlZ21lbnRcbiAgICAgIC8vIGZvciBhIHBhcmFsbGVsIHJvdXRlLCBOZXh0LmpzIHByZXNlcnZlcyB0aGUgY3VycmVudGx5IGFjdGl2ZSBzZWdtZW50XG4gICAgICAvLyBkdXJpbmcgYSBjbGllbnQgbmF2aWdhdGlvbiDigJQgYnV0IG5vdCBmb3IgaW5pdGlhbCByZW5kZXIuIFRoZSBzZXJ2ZXJcbiAgICAgIC8vIGxlYXZlcyBpdCB0byB0aGUgY2xpZW50IHRvIGFjY291bnQgZm9yIHRoaXMuIFNvIHdlIG5lZWQgdG8gaGFuZGxlXG4gICAgICAvLyBpdCBoZXJlLlxuICAgICAgaWYgKG9sZFJvdXRlclN0YXRlQ2hpbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAvLyBSZXVzZSB0aGUgZXhpc3RpbmcgUm91dGVyIFN0YXRlIGZvciB0aGlzIHNlZ21lbnQuIFdlIHNwYXduIGEgXCJ0YXNrXCJcbiAgICAgICAgLy8ganVzdCB0byBrZWVwIHRyYWNrIG9mIHRoZSB1cGRhdGVkIHJvdXRlciBzdGF0ZTsgdW5saWtlIG1vc3QsIGl0J3NcbiAgICAgICAgLy8gYWxyZWFkeSBmdWxmaWxsZWQgYW5kIHdvbid0IGJlIGFmZmVjdGVkIGJ5IHRoZSBkeW5hbWljIHJlc3BvbnNlLlxuICAgICAgICB0YXNrQ2hpbGQgPSBzcGF3blJldXNlZFRhc2sob2xkUm91dGVyU3RhdGVDaGlsZClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoZXJlJ3Mgbm8gY3VycmVudGx5IGFjdGl2ZSBzZWdtZW50LiBTd2l0Y2ggdG8gdGhlIFwiY3JlYXRlXCIgcGF0aC5cbiAgICAgICAgdGFza0NoaWxkID0gYmVnaW5SZW5kZXJpbmdOZXdSb3V0ZVRyZWUoXG4gICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgb2xkUm91dGVyU3RhdGVDaGlsZCxcbiAgICAgICAgICBuZXdSb3V0ZXJTdGF0ZUNoaWxkLFxuICAgICAgICAgIG9sZENhY2hlTm9kZUNoaWxkLFxuICAgICAgICAgIGRpZEZpbmRSb290TGF5b3V0LFxuICAgICAgICAgIHByZWZldGNoRGF0YUNoaWxkICE9PSB1bmRlZmluZWQgPyBwcmVmZXRjaERhdGFDaGlsZCA6IG51bGwsXG4gICAgICAgICAgcHJlZmV0Y2hIZWFkLFxuICAgICAgICAgIGlzUHJlZmV0Y2hIZWFkUGFydGlhbCxcbiAgICAgICAgICBuZXdTZWdtZW50UGF0aENoaWxkLFxuICAgICAgICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGlzU2FtZVBhZ2VOYXZpZ2F0aW9uICYmXG4gICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgcGFnZSBzZWdtZW50LlxuICAgICAgLy8gVE9ETzogV2UncmUgbm90IGNvbnNpc3RlbnQgYWJvdXQgaG93IHdlIGRvIHRoaXMgY2hlY2suIFNvbWUgcGxhY2VzXG4gICAgICAvLyBjaGVjayBpZiB0aGUgc2VnbWVudCBzdGFydHMgd2l0aCBQQUdFX1NFR01FTlRfS0VZLCBidXQgbW9zdCBzZWVtIHRvXG4gICAgICAvLyBjaGVjayBpZiB0aGVyZSBhbnkgYW55IGNoaWxkcmVuLCB3aGljaCBpcyB3aHkgSSdtIGRvaW5nIGl0IGhlcmUuIFdlXG4gICAgICAvLyBzaG91bGQgcHJvYmFibHkgZW5jb2RlIGFuIGVtcHR5IGNoaWxkcmVuIHNldCBhcyBgbnVsbGAgdGhvdWdoLiBFaXRoZXJcbiAgICAgIC8vIHdheSwgd2Ugc2hvdWxkIHVwZGF0ZSBhbGwgdGhlIGNoZWNrcyB0byBiZSBjb25zaXN0ZW50LlxuICAgICAgT2JqZWN0LmtleXMobmV3Um91dGVyU3RhdGVDaGlsZFsxXSkubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICAvLyBXZSBzcGVjaWFsIGNhc2UgbmF2aWdhdGlvbnMgdG8gdGhlIGV4YWN0IHNhbWUgVVJMIGFzIHRoZSBjdXJyZW50XG4gICAgICAvLyBsb2NhdGlvbi4gSXQncyBhIGNvbW1vbiBVSSBwYXR0ZXJuIGZvciBhcHBzIHRvIHJlZnJlc2ggd2hlbiB5b3UgY2xpY2sgYVxuICAgICAgLy8gbGluayB0byB0aGUgY3VycmVudCBwYWdlLiBTbyB3aGVuIHRoaXMgaGFwcGVucywgd2UgcmVmcmVzaCB0aGUgZHluYW1pY1xuICAgICAgLy8gZGF0YSBpbiB0aGUgcGFnZSBzZWdtZW50cy5cbiAgICAgIC8vXG4gICAgICAvLyBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBhcHBseSBpZiB0aGUgYW55IHBhcnQgb2YgdGhlIGhhc2ggb3Igc2VhcmNoXG4gICAgICAvLyBxdWVyeSBoYXMgY2hhbmdlZC4gVGhpcyBtaWdodCBmZWVsIGEgYml0IHdlaXJkIGJ1dCBpdCBtYWtlcyBtb3JlIHNlbnNlXG4gICAgICAvLyB3aGVuIHlvdSBjb25zaWRlciB0aGF0IHRoZSB3YXkgdG8gdHJpZ2dlciB0aGlzIGJlaGF2aW9yIGlzIHRvIGNsaWNrXG4gICAgICAvLyB0aGUgc2FtZSBsaW5rIG11bHRpcGxlIHRpbWVzLlxuICAgICAgLy9cbiAgICAgIC8vIFRPRE86IFdlIHNob3VsZCBwcm9iYWJseSByZWZyZXNoIHRoZSAqZW50aXJlKiByb3V0ZSB3aGVuIHRoaXMgY2FzZVxuICAgICAgLy8gb2NjdXJzLCBub3QganVzdCB0aGUgcGFnZSBzZWdtZW50cy4gRXNzZW50aWFsbHkgdHJlYXRpbmcgaXQgdGhlIHNhbWUgYXNcbiAgICAgIC8vIGEgcmVmcmVzaCgpIHRyaWdnZXJlZCBieSBhbiBhY3Rpb24sIHdoaWNoIGlzIHRoZSBtb3JlIGV4cGxpY2l0IHdheSBvZlxuICAgICAgLy8gbW9kZWxpbmcgdGhlIFVJIHBhdHRlcm4gZGVzY3JpYmVkIGFib3ZlLlxuICAgICAgLy9cbiAgICAgIC8vIEFsc28gbm90ZSB0aGF0IHRoaXMgb25seSByZWZyZXNoZXMgdGhlIGR5bmFtaWMgZGF0YSwgbm90IHN0YXRpYy9cbiAgICAgIC8vIGNhY2hlZCBkYXRhLiBJZiB0aGUgcGFnZSBzZWdtZW50IGlzIGZ1bGx5IHN0YXRpYyBhbmQgcHJlZmV0Y2hlZCwgdGhlXG4gICAgICAvLyByZXF1ZXN0IGlzIHNraXBwZWQuIChUaGlzIGlzIGFsc28gaG93IHJlZnJlc2goKSB3b3Jrcy4pXG4gICAgICB0YXNrQ2hpbGQgPSBiZWdpblJlbmRlcmluZ05ld1JvdXRlVHJlZShcbiAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgIG9sZFJvdXRlclN0YXRlQ2hpbGQsXG4gICAgICAgIG5ld1JvdXRlclN0YXRlQ2hpbGQsXG4gICAgICAgIG9sZENhY2hlTm9kZUNoaWxkLFxuICAgICAgICBkaWRGaW5kUm9vdExheW91dCxcbiAgICAgICAgcHJlZmV0Y2hEYXRhQ2hpbGQgIT09IHVuZGVmaW5lZCA/IHByZWZldGNoRGF0YUNoaWxkIDogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hIZWFkLFxuICAgICAgICBpc1ByZWZldGNoSGVhZFBhcnRpYWwsXG4gICAgICAgIG5ld1NlZ21lbnRQYXRoQ2hpbGQsXG4gICAgICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBvbGRSb3V0ZXJTdGF0ZUNoaWxkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIG9sZFNlZ21lbnRDaGlsZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBtYXRjaFNlZ21lbnQobmV3U2VnbWVudENoaWxkLCBvbGRTZWdtZW50Q2hpbGQpXG4gICAgKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG9sZENhY2hlTm9kZUNoaWxkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgb2xkUm91dGVyU3RhdGVDaGlsZCAhPT0gdW5kZWZpbmVkXG4gICAgICApIHtcbiAgICAgICAgLy8gVGhpcyBzZWdtZW50IGV4aXN0cyBpbiBib3RoIHRoZSBvbGQgYW5kIG5ldyB0cmVlcy4gUmVjdXJzaXZlbHkgdXBkYXRlXG4gICAgICAgIC8vIHRoZSBjaGlsZHJlbi5cbiAgICAgICAgdGFza0NoaWxkID0gdXBkYXRlQ2FjaGVOb2RlT25OYXZpZ2F0aW9uKFxuICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgIG9sZENhY2hlTm9kZUNoaWxkLFxuICAgICAgICAgIG9sZFJvdXRlclN0YXRlQ2hpbGQsXG4gICAgICAgICAgbmV3Um91dGVyU3RhdGVDaGlsZCxcbiAgICAgICAgICBkaWRGaW5kUm9vdExheW91dCxcbiAgICAgICAgICBwcmVmZXRjaERhdGFDaGlsZCxcbiAgICAgICAgICBwcmVmZXRjaEhlYWQsXG4gICAgICAgICAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsLFxuICAgICAgICAgIGlzU2FtZVBhZ2VOYXZpZ2F0aW9uLFxuICAgICAgICAgIG5ld1NlZ21lbnRQYXRoQ2hpbGQsXG4gICAgICAgICAgc2Nyb2xsYWJsZVNlZ21lbnRzUmVzdWx0XG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoZXJlJ3Mgbm8gZXhpc3RpbmcgQ2FjaGUgTm9kZSBmb3IgdGhpcyBzZWdtZW50LiBTd2l0Y2ggdG8gdGhlXG4gICAgICAgIC8vIFwiY3JlYXRlXCIgcGF0aC5cbiAgICAgICAgdGFza0NoaWxkID0gYmVnaW5SZW5kZXJpbmdOZXdSb3V0ZVRyZWUoXG4gICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgb2xkUm91dGVyU3RhdGVDaGlsZCxcbiAgICAgICAgICBuZXdSb3V0ZXJTdGF0ZUNoaWxkLFxuICAgICAgICAgIG9sZENhY2hlTm9kZUNoaWxkLFxuICAgICAgICAgIGRpZEZpbmRSb290TGF5b3V0LFxuICAgICAgICAgIHByZWZldGNoRGF0YUNoaWxkICE9PSB1bmRlZmluZWQgPyBwcmVmZXRjaERhdGFDaGlsZCA6IG51bGwsXG4gICAgICAgICAgcHJlZmV0Y2hIZWFkLFxuICAgICAgICAgIGlzUHJlZmV0Y2hIZWFkUGFydGlhbCxcbiAgICAgICAgICBuZXdTZWdtZW50UGF0aENoaWxkLFxuICAgICAgICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBuZXcgdHJlZS4gU3dpdGNoIHRvIHRoZSBcImNyZWF0ZVwiIHBhdGguXG4gICAgICB0YXNrQ2hpbGQgPSBiZWdpblJlbmRlcmluZ05ld1JvdXRlVHJlZShcbiAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgIG9sZFJvdXRlclN0YXRlQ2hpbGQsXG4gICAgICAgIG5ld1JvdXRlclN0YXRlQ2hpbGQsXG4gICAgICAgIG9sZENhY2hlTm9kZUNoaWxkLFxuICAgICAgICBkaWRGaW5kUm9vdExheW91dCxcbiAgICAgICAgcHJlZmV0Y2hEYXRhQ2hpbGQgIT09IHVuZGVmaW5lZCA/IHByZWZldGNoRGF0YUNoaWxkIDogbnVsbCxcbiAgICAgICAgcHJlZmV0Y2hIZWFkLFxuICAgICAgICBpc1ByZWZldGNoSGVhZFBhcnRpYWwsXG4gICAgICAgIG5ld1NlZ21lbnRQYXRoQ2hpbGQsXG4gICAgICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdFxuICAgICAgKVxuICAgIH1cblxuICAgIGlmICh0YXNrQ2hpbGQgIT09IG51bGwpIHtcbiAgICAgIC8vIFJlY3Vyc2l2ZWx5IHByb3BhZ2F0ZSB1cCB0aGUgY2hpbGQgdGFza3MuXG5cbiAgICAgIGlmICh0YXNrQ2hpbGQucm91dGUgPT09IG51bGwpIHtcbiAgICAgICAgLy8gT25lIG9mIHRoZSBjaGlsZCB0YXNrcyBkaXNjb3ZlcmVkIGEgY2hhbmdlIHRvIHRoZSByb290IGxheW91dC5cbiAgICAgICAgLy8gSW1tZWRpYXRlbHkgdW53aW5kIGZyb20gdGhpcyByZWN1cnNpdmUgdHJhdmVyc2FsLlxuICAgICAgICByZXR1cm4gTVBBX05BVklHQVRJT05fVEFTS1xuICAgICAgfVxuXG4gICAgICBpZiAodGFza0NoaWxkcmVuID09PSBudWxsKSB7XG4gICAgICAgIHRhc2tDaGlsZHJlbiA9IG5ldyBNYXAoKVxuICAgICAgfVxuICAgICAgdGFza0NoaWxkcmVuLnNldChwYXJhbGxlbFJvdXRlS2V5LCB0YXNrQ2hpbGQpXG4gICAgICBjb25zdCBuZXdDYWNoZU5vZGVDaGlsZCA9IHRhc2tDaGlsZC5ub2RlXG4gICAgICBpZiAobmV3Q2FjaGVOb2RlQ2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbmV3U2VnbWVudE1hcENoaWxkOiBDaGlsZFNlZ21lbnRNYXAgPSBuZXcgTWFwKG9sZFNlZ21lbnRNYXBDaGlsZClcbiAgICAgICAgbmV3U2VnbWVudE1hcENoaWxkLnNldChuZXdTZWdtZW50S2V5Q2hpbGQsIG5ld0NhY2hlTm9kZUNoaWxkKVxuICAgICAgICBwcmVmZXRjaFBhcmFsbGVsUm91dGVzLnNldChwYXJhbGxlbFJvdXRlS2V5LCBuZXdTZWdtZW50TWFwQ2hpbGQpXG4gICAgICB9XG5cbiAgICAgIC8vIFRoZSBjaGlsZCB0cmVlJ3Mgcm91dGUgc3RhdGUgbWF5IGJlIGRpZmZlcmVudCBmcm9tIHRoZSBwcmVmZXRjaGVkXG4gICAgICAvLyByb3V0ZSBzZW50IGJ5IHRoZSBzZXJ2ZXIuIFdlIG5lZWQgdG8gY2xvbmUgaXQgYXMgd2UgdHJhdmVyc2UgYmFjayB1cFxuICAgICAgLy8gdGhlIHRyZWUuXG4gICAgICBjb25zdCB0YXNrQ2hpbGRSb3V0ZSA9IHRhc2tDaGlsZC5yb3V0ZVxuICAgICAgcGF0Y2hlZFJvdXRlclN0YXRlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV0gPSB0YXNrQ2hpbGRSb3V0ZVxuXG4gICAgICBjb25zdCBkeW5hbWljUmVxdWVzdFRyZWVDaGlsZCA9IHRhc2tDaGlsZC5keW5hbWljUmVxdWVzdFRyZWVcbiAgICAgIGlmIChkeW5hbWljUmVxdWVzdFRyZWVDaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAvLyBTb21ldGhpbmcgaW4gdGhlIGNoaWxkIHRyZWUgaXMgZHluYW1pYy5cbiAgICAgICAgbmVlZHNEeW5hbWljUmVxdWVzdCA9IHRydWVcbiAgICAgICAgZHluYW1pY1JlcXVlc3RUcmVlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV0gPSBkeW5hbWljUmVxdWVzdFRyZWVDaGlsZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHluYW1pY1JlcXVlc3RUcmVlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV0gPSB0YXNrQ2hpbGRSb3V0ZVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGUgY2hpbGQgZGlkbid0IGNoYW5nZS4gV2UgY2FuIHVzZSB0aGUgcHJlZmV0Y2hlZCByb3V0ZXIgc3RhdGUuXG4gICAgICBwYXRjaGVkUm91dGVyU3RhdGVDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XSA9IG5ld1JvdXRlclN0YXRlQ2hpbGRcbiAgICAgIGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldID0gbmV3Um91dGVyU3RhdGVDaGlsZFxuICAgIH1cbiAgfVxuXG4gIGlmICh0YXNrQ2hpbGRyZW4gPT09IG51bGwpIHtcbiAgICAvLyBObyBuZXcgdGFza3Mgd2VyZSBzcGF3bmVkLlxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBuZXdDYWNoZU5vZGU6IFJlYWR5Q2FjaGVOb2RlID0ge1xuICAgIGxhenlEYXRhOiBudWxsLFxuICAgIHJzYzogb2xkQ2FjaGVOb2RlLnJzYyxcbiAgICAvLyBXZSBpbnRlbnRpb25hbGx5IGFyZW4ndCB1cGRhdGluZyB0aGUgcHJlZmV0Y2hSc2MgZmllbGQsIHNpbmNlIHRoaXMgbm9kZVxuICAgIC8vIGlzIGFscmVhZHkgcGFydCBvZiB0aGUgY3VycmVudCB0cmVlLCBiZWNhdXNlIGl0IHdvdWxkIGJlIHdlaXJkIGZvclxuICAgIC8vIHByZWZldGNoIGRhdGEgdG8gYmUgbmV3ZXIgdGhhbiB0aGUgZmluYWwgZGF0YS4gSXQgcHJvYmFibHkgd29uJ3QgZXZlciBiZVxuICAgIC8vIG9ic2VydmFibGUgYW55d2F5LCBidXQgaXQgY291bGQgaGFwcGVuIGlmIHRoZSBzZWdtZW50IGlzIHVubW91bnRlZCB0aGVuXG4gICAgLy8gbW91bnRlZCBhZ2FpbiwgYmVjYXVzZSBMYXlvdXRSb3V0ZXIgd2lsbCBtb21lbnRhcmlseSBzd2l0Y2ggdG8gcmVuZGVyaW5nXG4gICAgLy8gcHJlZmV0Y2hSc2MsIHZpYSB1c2VEZWZlcnJlZFZhbHVlLlxuICAgIHByZWZldGNoUnNjOiBvbGRDYWNoZU5vZGUucHJlZmV0Y2hSc2MsXG4gICAgaGVhZDogb2xkQ2FjaGVOb2RlLmhlYWQsXG4gICAgcHJlZmV0Y2hIZWFkOiBvbGRDYWNoZU5vZGUucHJlZmV0Y2hIZWFkLFxuICAgIGxvYWRpbmc6IG9sZENhY2hlTm9kZS5sb2FkaW5nLFxuXG4gICAgLy8gRXZlcnl0aGluZyBpcyBjbG9uZWQgZXhjZXB0IGZvciB0aGUgY2hpbGRyZW4sIHdoaWNoIHdlIGNvbXB1dGVkIGFib3ZlLlxuICAgIHBhcmFsbGVsUm91dGVzOiBwcmVmZXRjaFBhcmFsbGVsUm91dGVzLFxuXG4gICAgbmF2aWdhdGVkQXQsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIFJldHVybiBhIGNsb25lZCBjb3B5IG9mIHRoZSByb3V0ZXIgc3RhdGUgd2l0aCB1cGRhdGVkIGNoaWxkcmVuLlxuICAgIHJvdXRlOiBwYXRjaFJvdXRlclN0YXRlV2l0aE5ld0NoaWxkcmVuKFxuICAgICAgbmV3Um91dGVyU3RhdGUsXG4gICAgICBwYXRjaGVkUm91dGVyU3RhdGVDaGlsZHJlblxuICAgICksXG4gICAgbm9kZTogbmV3Q2FjaGVOb2RlLFxuICAgIGR5bmFtaWNSZXF1ZXN0VHJlZTogbmVlZHNEeW5hbWljUmVxdWVzdFxuICAgICAgPyBwYXRjaFJvdXRlclN0YXRlV2l0aE5ld0NoaWxkcmVuKFxuICAgICAgICAgIG5ld1JvdXRlclN0YXRlLFxuICAgICAgICAgIGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkcmVuXG4gICAgICAgIClcbiAgICAgIDogbnVsbCxcbiAgICBjaGlsZHJlbjogdGFza0NoaWxkcmVuLFxuICB9XG59XG5cbmZ1bmN0aW9uIGJlZ2luUmVuZGVyaW5nTmV3Um91dGVUcmVlKFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyLFxuICBvbGRSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUgfCB2b2lkLFxuICBuZXdSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIGV4aXN0aW5nQ2FjaGVOb2RlOiBDYWNoZU5vZGUgfCB2b2lkLFxuICBkaWRGaW5kUm9vdExheW91dDogYm9vbGVhbixcbiAgcHJlZmV0Y2hEYXRhOiBDYWNoZU5vZGVTZWVkRGF0YSB8IG51bGwsXG4gIHBvc3NpYmx5UGFydGlhbFByZWZldGNoSGVhZDogSGVhZERhdGEgfCBudWxsLFxuICBpc1ByZWZldGNoSGVhZFBhcnRpYWw6IGJvb2xlYW4sXG4gIHNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aCxcbiAgc2Nyb2xsYWJsZVNlZ21lbnRzUmVzdWx0OiBBcnJheTxGbGlnaHRTZWdtZW50UGF0aD5cbik6IFRhc2sge1xuICBpZiAoIWRpZEZpbmRSb290TGF5b3V0KSB7XG4gICAgLy8gVGhlIHJvdXRlIHRyZWUgY2hhbmdlZCBiZWZvcmUgd2UgcmVhY2hlZCBhIGxheW91dC4gKFRoZSBoaWdoZXN0LWxldmVsXG4gICAgLy8gbGF5b3V0IGluIGEgcm91dGUgdHJlZSBpcyByZWZlcnJlZCB0byBhcyB0aGUgXCJyb290XCIgbGF5b3V0LikgVGhpcyBjb3VsZFxuICAgIC8vIG1lYW4gdGhhdCB3ZSdyZSBuYXZpZ2F0aW5nIGJldHdlZW4gdHdvIGRpZmZlcmVudCByb290IGxheW91dHMuIFdoZW4gdGhpc1xuICAgIC8vIGhhcHBlbnMsIHdlIHBlcmZvcm0gYSBmdWxsLXBhZ2UgKE1QQS1zdHlsZSkgbmF2aWdhdGlvbi5cbiAgICAvL1xuICAgIC8vIEhvd2V2ZXIsIHRoZSBhbGdvcml0aG0gZm9yIGRlY2lkaW5nIHdoZXJlIHRvIHN0YXJ0IHJlbmRlcmluZyBhIHJvdXRlXG4gICAgLy8gKGkuZS4gdGhlIG9uZSBwZXJmb3JtZWQgaW4gb3JkZXIgdG8gcmVhY2ggdGhpcyBmdW5jdGlvbikgaXMgc3RyaWN0ZXJcbiAgICAvLyB0aGFuIHRoZSBvbmUgdXNlZCB0byBkZXRlY3QgYSBjaGFuZ2UgaW4gdGhlIHJvb3QgbGF5b3V0LiBTbyBqdXN0IGJlY2F1c2VcbiAgICAvLyB3ZSdyZSByZS1yZW5kZXJpbmcgYSBzZWdtZW50IG91dHNpZGUgb2YgdGhlIHJvb3QgbGF5b3V0IGRvZXMgbm90IG1lYW4gd2VcbiAgICAvLyBzaG91bGQgdHJpZ2dlciBhIGZ1bGwtcGFnZSBuYXZpZ2F0aW9uLlxuICAgIC8vXG4gICAgLy8gU3BlY2lmaWNhbGx5LCB3ZSBoYW5kbGUgZHluYW1pYyBwYXJhbWV0ZXJzIGRpZmZlcmVudGx5OiB0d28gc2VnbWVudHMgYXJlXG4gICAgLy8gY29uc2lkZXJlZCB0aGUgc2FtZSBldmVuIGlmIHRoZWlyIHBhcmFtZXRlciB2YWx1ZXMgYXJlIGRpZmZlcmVudC5cbiAgICAvL1xuICAgIC8vIFJlZmVyIHRvIGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCBmb3IgZGV0YWlscy5cbiAgICAvL1xuICAgIC8vIE5vdGUgdGhhdCB3ZSBvbmx5IGhhdmUgdG8gcGVyZm9ybSB0aGlzIGV4dHJhIHRyYXZlcnNhbCBpZiB3ZSBkaWRuJ3RcbiAgICAvLyBhbHJlYWR5IGRpc2NvdmVyIGEgcm9vdCBsYXlvdXQgaW4gdGhlIHBhcnQgb2YgdGhlIHRyZWUgdGhhdCBpcyB1bmNoYW5nZWQuXG4gICAgLy8gSW4gdGhlIGNvbW1vbiBjYXNlLCB0aGlzIGJyYW5jaCBpcyBza2lwcGVkIGNvbXBsZXRlbHkuXG4gICAgaWYgKFxuICAgICAgb2xkUm91dGVyU3RhdGUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0KG9sZFJvdXRlclN0YXRlLCBuZXdSb3V0ZXJTdGF0ZSlcbiAgICApIHtcbiAgICAgIC8vIFRoZSByb290IGxheW91dCBjaGFuZ2VkLiBQZXJmb3JtIGEgZnVsbC1wYWdlIG5hdmlnYXRpb24uXG4gICAgICByZXR1cm4gTVBBX05BVklHQVRJT05fVEFTS1xuICAgIH1cbiAgfVxuICByZXR1cm4gY3JlYXRlQ2FjaGVOb2RlT25OYXZpZ2F0aW9uKFxuICAgIG5hdmlnYXRlZEF0LFxuICAgIG5ld1JvdXRlclN0YXRlLFxuICAgIGV4aXN0aW5nQ2FjaGVOb2RlLFxuICAgIHByZWZldGNoRGF0YSxcbiAgICBwb3NzaWJseVBhcnRpYWxQcmVmZXRjaEhlYWQsXG4gICAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsLFxuICAgIHNlZ21lbnRQYXRoLFxuICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdFxuICApXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNhY2hlTm9kZU9uTmF2aWdhdGlvbihcbiAgbmF2aWdhdGVkQXQ6IG51bWJlcixcbiAgcm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBleGlzdGluZ0NhY2hlTm9kZTogQ2FjaGVOb2RlIHwgdm9pZCxcbiAgcHJlZmV0Y2hEYXRhOiBDYWNoZU5vZGVTZWVkRGF0YSB8IG51bGwsXG4gIHBvc3NpYmx5UGFydGlhbFByZWZldGNoSGVhZDogSGVhZERhdGEgfCBudWxsLFxuICBpc1ByZWZldGNoSGVhZFBhcnRpYWw6IGJvb2xlYW4sXG4gIHNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aCxcbiAgc2Nyb2xsYWJsZVNlZ21lbnRzUmVzdWx0OiBBcnJheTxGbGlnaHRTZWdtZW50UGF0aD5cbik6IFNQQU5hdmlnYXRpb25UYXNrIHtcbiAgLy8gU2FtZSB0cmF2ZXJzYWwgYXMgdXBkYXRlQ2FjaGVOb2RlTmF2aWdhdGlvbiwgYnV0IHdlIHN3aXRjaCB0byB0aGlzIHBhdGhcbiAgLy8gb25jZSB3ZSByZWFjaCB0aGUgcGFydCBvZiB0aGUgdHJlZSB0aGF0IHdhcyBub3QgaW4gdGhlIHByZXZpb3VzIHJvdXRlLiBXZVxuICAvLyBkb24ndCBuZWVkIHRvIGRpZmYgYWdhaW5zdCB0aGUgb2xkIHRyZWUsIHdlIGp1c3QgbmVlZCB0byBjcmVhdGUgYSBuZXcgb25lLlxuXG4gIC8vIFRoZSBoZWFkIGlzIGFzc2lnbmVkIHRvIGV2ZXJ5IGxlYWYgc2VnbWVudCBkZWxpdmVyZWQgYnkgdGhlIHNlcnZlci4gQmFzZWRcbiAgLy8gb24gY29ycmVzcG9uZGluZyBsb2dpYyBpbiBmaWxsLWxhenktaXRlbXMtdGlsbC1sZWFmLXdpdGgtaGVhZC50c1xuICBjb25zdCByb3V0ZXJTdGF0ZUNoaWxkcmVuID0gcm91dGVyU3RhdGVbMV1cbiAgY29uc3QgaXNMZWFmU2VnbWVudCA9IE9iamVjdC5rZXlzKHJvdXRlclN0YXRlQ2hpbGRyZW4pLmxlbmd0aCA9PT0gMFxuXG4gIC8vIEV2ZW4gd2UncmUgcmVuZGVyaW5nIGluc2lkZSB0aGUgXCJuZXdcIiBwYXJ0IG9mIHRoZSB0YXJnZXQgdHJlZSwgd2UgbWF5IGhhdmVcbiAgLy8gYSBsb2NhbGx5IGNhY2hlZCBzZWdtZW50IHRoYXQgd2UgY2FuIHJldXNlLiBUaGlzIG1heSBjb21lIGZyb20gZWl0aGVyIDEpXG4gIC8vIHRoZSBDYWNoZU5vZGUgdHJlZSwgd2hpY2ggbGl2ZXMgaW4gUmVhY3Qgc3RhdGUgYW5kIGlzIHBvcHVsYXRlZCBieSBwcmV2aW91c1xuICAvLyBuYXZpZ2F0aW9uczsgb3IgMikgdGhlIHByZWZldGNoIGNhY2hlLCB3aGljaCBpcyBhIHNlcGFyYXRlIGNhY2hlIHRoYXQgaXNcbiAgLy8gcG9wdWxhdGVkIGJ5IHByZWZldGNoZXMuXG4gIGxldCByc2M6IFJlYWN0LlJlYWN0Tm9kZVxuICBsZXQgbG9hZGluZzogTG9hZGluZ01vZHVsZURhdGEgfCBQcm9taXNlPExvYWRpbmdNb2R1bGVEYXRhPlxuICBsZXQgaGVhZDogSGVhZERhdGEgfCBudWxsXG4gIGxldCBjYWNoZU5vZGVOYXZpZ2F0ZWRBdDogbnVtYmVyXG4gIGlmIChcbiAgICBleGlzdGluZ0NhY2hlTm9kZSAhPT0gdW5kZWZpbmVkICYmXG4gICAgLy8gRFlOQU1JQ19TVEFMRVRJTUVfTVMgZGVmYXVsdHMgdG8gMCwgYnV0IGl0IGNhbiBiZSBpbmNyZWFzZWQgdXNpbmdcbiAgICAvLyB0aGUgZXhwZXJpbWVudGFsLnN0YWxlVGltZXMuZHluYW1pYyBjb25maWcuIFdoZW4gc2V0LCB3ZSdsbCBhdm9pZFxuICAgIC8vIHJlZmV0Y2hpbmcgZHluYW1pYyBkYXRhIGlmIGl0IHdhcyBmZXRjaGVkIHdpdGhpbiB0aGUgZ2l2ZW4gdGhyZXNob2xkLlxuICAgIGV4aXN0aW5nQ2FjaGVOb2RlLm5hdmlnYXRlZEF0ICsgRFlOQU1JQ19TVEFMRVRJTUVfTVMgPiBuYXZpZ2F0ZWRBdFxuICApIHtcbiAgICAvLyBXZSBoYXZlIGFuIGV4aXN0aW5nIENhY2hlTm9kZSBmb3IgdGhpcyBzZWdtZW50LCBhbmQgaXQncyBub3Qgc3RhbGUuIFdlXG4gICAgLy8gc2hvdWxkIHJldXNlIGl0IHJhdGhlciB0aGFuIHJlcXVlc3QgYSBuZXcgb25lLlxuICAgIHJzYyA9IGV4aXN0aW5nQ2FjaGVOb2RlLnJzY1xuICAgIGxvYWRpbmcgPSBleGlzdGluZ0NhY2hlTm9kZS5sb2FkaW5nXG4gICAgaGVhZCA9IGV4aXN0aW5nQ2FjaGVOb2RlLmhlYWRcblxuICAgIC8vIERvbid0IHVwZGF0ZSB0aGUgbmF2aWdhdGVkQXQgdGltZXN0YW1wLCBzaW5jZSB3ZSdyZSByZXVzaW5nIHN0YWxlIGRhdGEuXG4gICAgY2FjaGVOb2RlTmF2aWdhdGVkQXQgPSBleGlzdGluZ0NhY2hlTm9kZS5uYXZpZ2F0ZWRBdFxuICB9IGVsc2UgaWYgKHByZWZldGNoRGF0YSAhPT0gbnVsbCkge1xuICAgIC8vIFRoZXJlJ3Mgbm8gZXhpc3RpbmcgQ2FjaGVOb2RlIGZvciB0aGlzIHNlZ21lbnQsIGJ1dCB3ZSBkbyBoYXZlIHByZWZldGNoXG4gICAgLy8gZGF0YS4gSWYgdGhlIHByZWZldGNoIGRhdGEgaXMgZnVsbHkgc3RhdGljIChpLmUuIGRvZXMgbm90IGNvbnRhaW4gYW55XG4gICAgLy8gZHluYW1pYyBob2xlcyksIHdlIGRvbid0IG5lZWQgdG8gcmVxdWVzdCBpdCBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgcnNjID0gcHJlZmV0Y2hEYXRhWzFdXG4gICAgbG9hZGluZyA9IHByZWZldGNoRGF0YVszXVxuICAgIGhlYWQgPSBpc0xlYWZTZWdtZW50ID8gcG9zc2libHlQYXJ0aWFsUHJlZmV0Y2hIZWFkIDogbnVsbFxuICAgIC8vIEV2ZW4gdGhvdWdoIHdlJ3JlIGFjY2Vzc2luZyB0aGUgZGF0YSBmcm9tIHRoZSBwcmVmZXRjaCBjYWNoZSwgdGhpcyBpc1xuICAgIC8vIGNvbmNlcHR1YWxseSBhIG5ldyBzZWdtZW50LCBub3QgYSByZXVzZWQgb25lLiBTbyB3ZSBzaG91bGQgdXBkYXRlIHRoZVxuICAgIC8vIG5hdmlnYXRlZEF0IHRpbWVzdGFtcC5cbiAgICBjYWNoZU5vZGVOYXZpZ2F0ZWRBdCA9IG5hdmlnYXRlZEF0XG4gICAgY29uc3QgaXNQcmVmZXRjaFJzY1BhcnRpYWwgPSBwcmVmZXRjaERhdGFbNF1cbiAgICBpZiAoXG4gICAgICAvLyBDaGVjayBpZiB0aGUgc2VnbWVudCBkYXRhIGlzIHBhcnRpYWxcbiAgICAgIGlzUHJlZmV0Y2hSc2NQYXJ0aWFsIHx8XG4gICAgICAvLyBDaGVjayBpZiB0aGUgaGVhZCBpcyBwYXJ0aWFsIChvbmx5IHJlbGV2YW50IGlmIHRoaXMgaXMgYSBsZWFmIHNlZ21lbnQpXG4gICAgICAoaXNQcmVmZXRjaEhlYWRQYXJ0aWFsICYmIGlzTGVhZlNlZ21lbnQpXG4gICAgKSB7XG4gICAgICAvLyBXZSBvbmx5IGhhdmUgcGFydGlhbCBkYXRhIGZyb20gdGhpcyBzZWdtZW50LiBMaWtlIG1pc3Npbmcgc2VnbWVudHMsIHdlXG4gICAgICAvLyBtdXN0IHJlcXVlc3QgdGhlIGZ1bGwgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgICByZXR1cm4gc3Bhd25QZW5kaW5nVGFzayhcbiAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgIHJvdXRlclN0YXRlLFxuICAgICAgICBwcmVmZXRjaERhdGEsXG4gICAgICAgIHBvc3NpYmx5UGFydGlhbFByZWZldGNoSGVhZCxcbiAgICAgICAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsLFxuICAgICAgICBzZWdtZW50UGF0aCxcbiAgICAgICAgc2Nyb2xsYWJsZVNlZ21lbnRzUmVzdWx0XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBwcmVmZXRjaCBkYXRhIGlzIGZ1bGx5IHN0YXRpYywgc28gd2UgY2FuIG9taXQgaXQgZnJvbSB0aGVcbiAgICAgIC8vIG5hdmlnYXRpb24gcmVxdWVzdC5cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhlcmUncyBubyBwcmVmZXRjaCBmb3IgdGhpcyBzZWdtZW50LiBFdmVyeXRoaW5nIGZyb20gdGhpcyBwb2ludCB3aWxsIGJlXG4gICAgLy8gcmVxdWVzdGVkIGZyb20gdGhlIHNlcnZlciwgZXZlbiBpZiB0aGVyZSBhcmUgc3RhdGljIGNoaWxkcmVuIGJlbG93IGl0LlxuICAgIC8vIENyZWF0ZSBhIHRlcm1pbmFsIHRhc2sgbm9kZSB0aGF0IHdpbGwgbGF0ZXIgYmUgZnVsZmlsbGVkIGJ5XG4gICAgLy8gc2VydmVyIHJlc3BvbnNlLlxuICAgIHJldHVybiBzcGF3blBlbmRpbmdUYXNrKFxuICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICByb3V0ZXJTdGF0ZSxcbiAgICAgIG51bGwsXG4gICAgICBwb3NzaWJseVBhcnRpYWxQcmVmZXRjaEhlYWQsXG4gICAgICBpc1ByZWZldGNoSGVhZFBhcnRpYWwsXG4gICAgICBzZWdtZW50UGF0aCxcbiAgICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdFxuICAgIClcbiAgfVxuXG4gIC8vIFdlIGFscmVhZHkgaGF2ZSBhIGZ1bGwgc2VnbWVudCB3ZSBjYW4gcmVuZGVyLCBzbyB3ZSBkb24ndCBuZWVkIHRvIHJlcXVlc3QgYVxuICAvLyBuZXcgb25lIGZyb20gdGhlIHNlcnZlci4gS2VlcCB0cmF2ZXJzaW5nIGRvd24gdGhlIHRyZWUgdW50aWwgd2UgcmVhY2hcbiAgLy8gc29tZXRoaW5nIHRoYXQgcmVxdWlyZXMgYSBkeW5hbWljIHJlcXVlc3QuXG4gIGNvbnN0IHByZWZldGNoRGF0YUNoaWxkcmVuID0gcHJlZmV0Y2hEYXRhICE9PSBudWxsID8gcHJlZmV0Y2hEYXRhWzJdIDogbnVsbFxuICBjb25zdCB0YXNrQ2hpbGRyZW4gPSBuZXcgTWFwKClcbiAgY29uc3QgZXhpc3RpbmdDYWNoZU5vZGVDaGlsZHJlbiA9XG4gICAgZXhpc3RpbmdDYWNoZU5vZGUgIT09IHVuZGVmaW5lZCA/IGV4aXN0aW5nQ2FjaGVOb2RlLnBhcmFsbGVsUm91dGVzIDogbnVsbFxuICBjb25zdCBjYWNoZU5vZGVDaGlsZHJlbiA9IG5ldyBNYXAoZXhpc3RpbmdDYWNoZU5vZGVDaGlsZHJlbilcbiAgbGV0IGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkcmVuOiB7XG4gICAgW3BhcmFsbGVsUm91dGVLZXk6IHN0cmluZ106IEZsaWdodFJvdXRlclN0YXRlXG4gIH0gPSB7fVxuICBsZXQgbmVlZHNEeW5hbWljUmVxdWVzdCA9IGZhbHNlXG4gIGlmIChpc0xlYWZTZWdtZW50KSB7XG4gICAgLy8gVGhlIHNlZ21lbnQgcGF0aCBvZiBldmVyeSBsZWFmIHNlZ21lbnQgKGkuZS4gcGFnZSkgaXMgY29sbGVjdGVkIGludG9cbiAgICAvLyBhIHJlc3VsdCBhcnJheS4gVGhpcyBpcyB1c2VkIGJ5IHRoZSBMYXlvdXRSb3V0ZXIgdG8gc2Nyb2xsIHRvIGVuc3VyZSB0aGF0XG4gICAgLy8gbmV3IHBhZ2VzIGFyZSB2aXNpYmxlIGFmdGVyIGEgbmF2aWdhdGlvbi5cbiAgICAvLyBUT0RPOiBXZSBzaG91bGQgdXNlIGEgc3RyaW5nIHRvIHJlcHJlc2VudCB0aGUgc2VnbWVudCBwYXRoIGluc3RlYWQgb2ZcbiAgICAvLyBhbiBhcnJheS4gV2UgYWxyZWFkeSB1c2UgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBwYXRoIHdoZW5cbiAgICAvLyBhY2Nlc3NpbmcgdGhlIFNlZ21lbnQgQ2FjaGUsIHNvIHdlIGNhbiB1c2UgdGhlIHNhbWUgb25lLlxuICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdC5wdXNoKHNlZ21lbnRQYXRoKVxuICB9IGVsc2Uge1xuICAgIGZvciAobGV0IHBhcmFsbGVsUm91dGVLZXkgaW4gcm91dGVyU3RhdGVDaGlsZHJlbikge1xuICAgICAgY29uc3Qgcm91dGVyU3RhdGVDaGlsZDogRmxpZ2h0Um91dGVyU3RhdGUgPVxuICAgICAgICByb3V0ZXJTdGF0ZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldXG4gICAgICBjb25zdCBwcmVmZXRjaERhdGFDaGlsZDogQ2FjaGVOb2RlU2VlZERhdGEgfCB2b2lkIHwgbnVsbCA9XG4gICAgICAgIHByZWZldGNoRGF0YUNoaWxkcmVuICE9PSBudWxsXG4gICAgICAgICAgPyBwcmVmZXRjaERhdGFDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XVxuICAgICAgICAgIDogbnVsbFxuICAgICAgY29uc3QgZXhpc3RpbmdTZWdtZW50TWFwQ2hpbGQgPVxuICAgICAgICBleGlzdGluZ0NhY2hlTm9kZUNoaWxkcmVuICE9PSBudWxsXG4gICAgICAgICAgPyBleGlzdGluZ0NhY2hlTm9kZUNoaWxkcmVuLmdldChwYXJhbGxlbFJvdXRlS2V5KVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICBjb25zdCBzZWdtZW50Q2hpbGQgPSByb3V0ZXJTdGF0ZUNoaWxkWzBdXG4gICAgICBjb25zdCBzZWdtZW50UGF0aENoaWxkID0gc2VnbWVudFBhdGguY29uY2F0KFtcbiAgICAgICAgcGFyYWxsZWxSb3V0ZUtleSxcbiAgICAgICAgc2VnbWVudENoaWxkLFxuICAgICAgXSlcbiAgICAgIGNvbnN0IHNlZ21lbnRLZXlDaGlsZCA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KHNlZ21lbnRDaGlsZClcblxuICAgICAgY29uc3QgZXhpc3RpbmdDYWNoZU5vZGVDaGlsZCA9XG4gICAgICAgIGV4aXN0aW5nU2VnbWVudE1hcENoaWxkICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IGV4aXN0aW5nU2VnbWVudE1hcENoaWxkLmdldChzZWdtZW50S2V5Q2hpbGQpXG4gICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgICAgY29uc3QgdGFza0NoaWxkID0gY3JlYXRlQ2FjaGVOb2RlT25OYXZpZ2F0aW9uKFxuICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgICAgcm91dGVyU3RhdGVDaGlsZCxcbiAgICAgICAgZXhpc3RpbmdDYWNoZU5vZGVDaGlsZCxcbiAgICAgICAgcHJlZmV0Y2hEYXRhQ2hpbGQsXG4gICAgICAgIHBvc3NpYmx5UGFydGlhbFByZWZldGNoSGVhZCxcbiAgICAgICAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsLFxuICAgICAgICBzZWdtZW50UGF0aENoaWxkLFxuICAgICAgICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHRcbiAgICAgIClcbiAgICAgIHRhc2tDaGlsZHJlbi5zZXQocGFyYWxsZWxSb3V0ZUtleSwgdGFza0NoaWxkKVxuICAgICAgY29uc3QgZHluYW1pY1JlcXVlc3RUcmVlQ2hpbGQgPSB0YXNrQ2hpbGQuZHluYW1pY1JlcXVlc3RUcmVlXG4gICAgICBpZiAoZHluYW1pY1JlcXVlc3RUcmVlQ2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgLy8gU29tZXRoaW5nIGluIHRoZSBjaGlsZCB0cmVlIGlzIGR5bmFtaWMuXG4gICAgICAgIG5lZWRzRHluYW1pY1JlcXVlc3QgPSB0cnVlXG4gICAgICAgIGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldID0gZHluYW1pY1JlcXVlc3RUcmVlQ2hpbGRcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldID0gcm91dGVyU3RhdGVDaGlsZFxuICAgICAgfVxuICAgICAgY29uc3QgbmV3Q2FjaGVOb2RlQ2hpbGQgPSB0YXNrQ2hpbGQubm9kZVxuICAgICAgaWYgKG5ld0NhY2hlTm9kZUNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IG5ld1NlZ21lbnRNYXBDaGlsZDogQ2hpbGRTZWdtZW50TWFwID0gbmV3IE1hcCgpXG4gICAgICAgIG5ld1NlZ21lbnRNYXBDaGlsZC5zZXQoc2VnbWVudEtleUNoaWxkLCBuZXdDYWNoZU5vZGVDaGlsZClcbiAgICAgICAgY2FjaGVOb2RlQ2hpbGRyZW4uc2V0KHBhcmFsbGVsUm91dGVLZXksIG5ld1NlZ21lbnRNYXBDaGlsZClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIFNpbmNlIHdlJ3JlIGluc2lkZSBhIG5ldyByb3V0ZSB0cmVlLCB1bmxpa2UgdGhlXG4gICAgLy8gYHVwZGF0ZUNhY2hlTm9kZU9uTmF2aWdhdGlvbmAgcGF0aCwgdGhlIHJvdXRlciBzdGF0ZSBvbiB0aGUgY2hpbGRyZW5cbiAgICAvLyB0YXNrcyBpcyBhbHdheXMgdGhlIHNhbWUgYXMgdGhlIHJvdXRlciBzdGF0ZSB3ZSBwYXNzIGluLiBTbyB3ZSBkb24ndCBuZWVkXG4gICAgLy8gdG8gY2xvbmUvbW9kaWZ5IGl0LlxuICAgIHJvdXRlOiByb3V0ZXJTdGF0ZSxcbiAgICBub2RlOiB7XG4gICAgICBsYXp5RGF0YTogbnVsbCxcbiAgICAgIC8vIFNpbmNlIHRoaXMgc2VnbWVudCBpcyBhbHJlYWR5IGZ1bGwsIHdlIGRvbid0IG5lZWQgdG8gdXNlIHRoZVxuICAgICAgLy8gYHByZWZldGNoUnNjYCBmaWVsZC5cbiAgICAgIHJzYyxcbiAgICAgIHByZWZldGNoUnNjOiBudWxsLFxuICAgICAgaGVhZCxcbiAgICAgIHByZWZldGNoSGVhZDogbnVsbCxcbiAgICAgIGxvYWRpbmcsXG4gICAgICBwYXJhbGxlbFJvdXRlczogY2FjaGVOb2RlQ2hpbGRyZW4sXG4gICAgICBuYXZpZ2F0ZWRBdDogY2FjaGVOb2RlTmF2aWdhdGVkQXQsXG4gICAgfSxcbiAgICBkeW5hbWljUmVxdWVzdFRyZWU6IG5lZWRzRHluYW1pY1JlcXVlc3RcbiAgICAgID8gcGF0Y2hSb3V0ZXJTdGF0ZVdpdGhOZXdDaGlsZHJlbihyb3V0ZXJTdGF0ZSwgZHluYW1pY1JlcXVlc3RUcmVlQ2hpbGRyZW4pXG4gICAgICA6IG51bGwsXG4gICAgY2hpbGRyZW46IHRhc2tDaGlsZHJlbixcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXRjaFJvdXRlclN0YXRlV2l0aE5ld0NoaWxkcmVuKFxuICBiYXNlUm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBuZXdDaGlsZHJlbjogeyBbcGFyYWxsZWxSb3V0ZUtleTogc3RyaW5nXTogRmxpZ2h0Um91dGVyU3RhdGUgfVxuKTogRmxpZ2h0Um91dGVyU3RhdGUge1xuICBjb25zdCBjbG9uZTogRmxpZ2h0Um91dGVyU3RhdGUgPSBbYmFzZVJvdXRlclN0YXRlWzBdLCBuZXdDaGlsZHJlbl1cbiAgLy8gQmFzZWQgb24gZXF1aXZhbGVudCBsb2dpYyBpbiBhcHBseS1yb3V0ZXItc3RhdGUtcGF0Y2gtdG8tdHJlZSwgYnV0IHNob3VsZFxuICAvLyBjb25maXJtIHdoZXRoZXIgd2UgbmVlZCB0byBjb3B5IGFsbCBvZiB0aGVzZSBmaWVsZHMuIE5vdCBzdXJlIHRoZSBzZXJ2ZXJcbiAgLy8gZXZlciBzZW5kcywgZS5nLiB0aGUgcmVmZXRjaCBtYXJrZXIuXG4gIGlmICgyIGluIGJhc2VSb3V0ZXJTdGF0ZSkge1xuICAgIGNsb25lWzJdID0gYmFzZVJvdXRlclN0YXRlWzJdXG4gIH1cbiAgaWYgKDMgaW4gYmFzZVJvdXRlclN0YXRlKSB7XG4gICAgY2xvbmVbM10gPSBiYXNlUm91dGVyU3RhdGVbM11cbiAgfVxuICBpZiAoNCBpbiBiYXNlUm91dGVyU3RhdGUpIHtcbiAgICBjbG9uZVs0XSA9IGJhc2VSb3V0ZXJTdGF0ZVs0XVxuICB9XG4gIHJldHVybiBjbG9uZVxufVxuXG5mdW5jdGlvbiBzcGF3blBlbmRpbmdUYXNrKFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyLFxuICByb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHByZWZldGNoRGF0YTogQ2FjaGVOb2RlU2VlZERhdGEgfCBudWxsLFxuICBwcmVmZXRjaEhlYWQ6IEhlYWREYXRhIHwgbnVsbCxcbiAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsOiBib29sZWFuLFxuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGgsXG4gIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdDogQXJyYXk8RmxpZ2h0U2VnbWVudFBhdGg+XG4pOiBTUEFOYXZpZ2F0aW9uVGFzayB7XG4gIC8vIENyZWF0ZSBhIHRhc2sgdGhhdCB3aWxsIGxhdGVyIGJlIGZ1bGZpbGxlZCBieSBkYXRhIGZyb20gdGhlIHNlcnZlci5cblxuICAvLyBDbG9uZSB0aGUgcHJlZmV0Y2hlZCByb3V0ZSB0cmVlIGFuZCB0aGUgYHJlZmV0Y2hgIG1hcmtlciB0byBpdC4gV2UnbGwgc2VuZFxuICAvLyB0aGlzIHRvIHRoZSBzZXJ2ZXIgc28gaXQga25vd3Mgd2hlcmUgdG8gc3RhcnQgcmVuZGVyaW5nLlxuICBjb25zdCBkeW5hbWljUmVxdWVzdFRyZWUgPSBwYXRjaFJvdXRlclN0YXRlV2l0aE5ld0NoaWxkcmVuKFxuICAgIHJvdXRlclN0YXRlLFxuICAgIHJvdXRlclN0YXRlWzFdXG4gIClcbiAgZHluYW1pY1JlcXVlc3RUcmVlWzNdID0gJ3JlZmV0Y2gnXG5cbiAgY29uc3QgbmV3VGFzazogVGFzayA9IHtcbiAgICByb3V0ZTogcm91dGVyU3RhdGUsXG5cbiAgICAvLyBDb3JyZXNwb25kcyB0byB0aGUgcGFydCBvZiB0aGUgcm91dGUgdGhhdCB3aWxsIGJlIHJlbmRlcmVkIG9uIHRoZSBzZXJ2ZXIuXG4gICAgbm9kZTogY3JlYXRlUGVuZGluZ0NhY2hlTm9kZShcbiAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgcm91dGVyU3RhdGUsXG4gICAgICBwcmVmZXRjaERhdGEsXG4gICAgICBwcmVmZXRjaEhlYWQsXG4gICAgICBpc1ByZWZldGNoSGVhZFBhcnRpYWwsXG4gICAgICBzZWdtZW50UGF0aCxcbiAgICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdFxuICAgICksXG4gICAgLy8gQmVjYXVzZSB0aGlzIGlzIG5vbi1udWxsLCBhbmQgaXQgZ2V0cyBwcm9wYWdhdGVkIHVwIHRocm91Z2ggdGhlIHBhcmVudFxuICAgIC8vIHRhc2tzLCB0aGUgcm9vdCB0YXNrIHdpbGwga25vdyB0aGF0IGl0IG5lZWRzIHRvIHBlcmZvcm0gYSBzZXJ2ZXIgcmVxdWVzdC5cbiAgICBkeW5hbWljUmVxdWVzdFRyZWUsXG4gICAgY2hpbGRyZW46IG51bGwsXG4gIH1cbiAgcmV0dXJuIG5ld1Rhc2tcbn1cblxuZnVuY3Rpb24gc3Bhd25SZXVzZWRUYXNrKHJldXNlZFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSk6IFRhc2sge1xuICAvLyBDcmVhdGUgYSB0YXNrIHRoYXQgcmV1c2VzIGFuIGV4aXN0aW5nIHNlZ21lbnQsIGUuZy4gd2hlbiByZXVzaW5nXG4gIC8vIHRoZSBjdXJyZW50IGFjdGl2ZSBzZWdtZW50IGluIHBsYWNlIG9mIGEgZGVmYXVsdCByb3V0ZS5cbiAgcmV0dXJuIHtcbiAgICByb3V0ZTogcmV1c2VkUm91dGVyU3RhdGUsXG4gICAgbm9kZTogbnVsbCxcbiAgICBkeW5hbWljUmVxdWVzdFRyZWU6IG51bGwsXG4gICAgY2hpbGRyZW46IG51bGwsXG4gIH1cbn1cblxuLy8gV3JpdGVzIGEgZHluYW1pYyBzZXJ2ZXIgcmVzcG9uc2UgaW50byB0aGUgdHJlZSBjcmVhdGVkIGJ5XG4vLyB1cGRhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24uIEFsbCBwZW5kaW5nIHByb21pc2VzIHRoYXQgd2VyZSBzcGF3bmVkIGJ5IHRoZVxuLy8gbmF2aWdhdGlvbiB3aWxsIGJlIHJlc29sdmVkLCBlaXRoZXIgd2l0aCBkeW5hbWljIGRhdGEgZnJvbSB0aGUgc2VydmVyLCBvclxuLy8gYG51bGxgIHRvIGluZGljYXRlIHRoYXQgdGhlIGRhdGEgaXMgbWlzc2luZy5cbi8vXG4vLyBBIGBudWxsYCB2YWx1ZSB3aWxsIHRyaWdnZXIgYSBsYXp5IGZldGNoIGR1cmluZyByZW5kZXIsIHdoaWNoIHdpbGwgdGhlbiBwYXRjaFxuLy8gdXAgdGhlIHRyZWUgdXNpbmcgdGhlIHNhbWUgbWVjaGFuaXNtIGFzIHRoZSBub24tUFBSIGltcGxlbWVudGF0aW9uXG4vLyAoc2VydmVyUGF0Y2hSZWR1Y2VyKS5cbi8vXG4vLyBVc3VhbGx5LCB0aGUgc2VydmVyIHdpbGwgcmVzcG9uZCB3aXRoIGV4YWN0bHkgdGhlIHN1YnNldCBvZiBkYXRhIHRoYXQgd2UncmVcbi8vIHdhaXRpbmcgZm9yIOKAlCBldmVyeXRoaW5nIGJlbG93IHRoZSBuZWFyZXN0IHNoYXJlZCBsYXlvdXQuIEJ1dCB0ZWNobmljYWxseSxcbi8vIHRoZSBzZXJ2ZXIgY2FuIHJldHVybiBhbnl0aGluZyBpdCB3YW50cy5cbi8vXG4vLyBUaGlzIGRvZXMgX25vdF8gY3JlYXRlIGEgbmV3IHRyZWU7IGl0IG1vZGlmaWVzIHRoZSBleGlzdGluZyBvbmUgaW4gcGxhY2UuXG4vLyBXaGljaCBtZWFucyBpdCBtdXN0IGZvbGxvdyB0aGUgU3VzcGVuc2UgcnVsZXMgb2YgY2FjaGUgc2FmZXR5LlxuZXhwb3J0IGZ1bmN0aW9uIGxpc3RlbkZvckR5bmFtaWNSZXF1ZXN0KFxuICB0YXNrOiBTUEFOYXZpZ2F0aW9uVGFzayxcbiAgcmVzcG9uc2VQcm9taXNlOiBQcm9taXNlPEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQ+XG4pIHtcbiAgcmVzcG9uc2VQcm9taXNlLnRoZW4oXG4gICAgKHsgZmxpZ2h0RGF0YSB9OiBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGZsaWdodERhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIEhhcHBlbnMgd2hlbiBuYXZpZ2F0aW5nIHRvIHBhZ2UgaW4gYHBhZ2VzYCBmcm9tIGBhcHBgLiBXZSBzaG91bGRuJ3RcbiAgICAgICAgLy8gZ2V0IGhlcmUgYmVjYXVzZSBzaG91bGQgaGF2ZSBhbHJlYWR5IGhhbmRsZWQgdGhpcyBkdXJpbmdcbiAgICAgICAgLy8gdGhlIHByZWZldGNoLlxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3Qgbm9ybWFsaXplZEZsaWdodERhdGEgb2YgZmxpZ2h0RGF0YSkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgc2VnbWVudFBhdGgsXG4gICAgICAgICAgdHJlZTogc2VydmVyUm91dGVyU3RhdGUsXG4gICAgICAgICAgc2VlZERhdGE6IGR5bmFtaWNEYXRhLFxuICAgICAgICAgIGhlYWQ6IGR5bmFtaWNIZWFkLFxuICAgICAgICB9ID0gbm9ybWFsaXplZEZsaWdodERhdGFcblxuICAgICAgICBpZiAoIWR5bmFtaWNEYXRhKSB7XG4gICAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuLiBQUFIgc2hvdWxkIGFsd2F5cyBzZW5kIGJhY2sgYSByZXNwb25zZS5cbiAgICAgICAgICAvLyBIb3dldmVyLCBgRmxpZ2h0RGF0YVBhdGhgIGlzIGEgc2hhcmVkIHR5cGUgYW5kIHRoZSBwcmUtUFBSIGhhbmRsaW5nIG9mXG4gICAgICAgICAgLy8gdGhpcyBtaWdodCByZXR1cm4gbnVsbC5cbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG5cbiAgICAgICAgd3JpdGVEeW5hbWljRGF0YUludG9QZW5kaW5nVGFzayhcbiAgICAgICAgICB0YXNrLFxuICAgICAgICAgIHNlZ21lbnRQYXRoLFxuICAgICAgICAgIHNlcnZlclJvdXRlclN0YXRlLFxuICAgICAgICAgIGR5bmFtaWNEYXRhLFxuICAgICAgICAgIGR5bmFtaWNIZWFkXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgLy8gTm93IHRoYXQgd2UndmUgZXhoYXVzdGVkIGFsbCB0aGUgZGF0YSB3ZSByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIsIGlmXG4gICAgICAvLyB0aGVyZSBhcmUgYW55IHJlbWFpbmluZyBwZW5kaW5nIHRhc2tzIGluIHRoZSB0cmVlLCBhYm9ydCB0aGVtIG5vdy5cbiAgICAgIC8vIElmIHRoZXJlJ3MgYW55IG1pc3NpbmcgZGF0YSwgaXQgd2lsbCB0cmlnZ2VyIGEgbGF6eSBmZXRjaC5cbiAgICAgIGFib3J0VGFzayh0YXNrLCBudWxsKVxuICAgIH0sXG4gICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgIC8vIFRoaXMgd2lsbCB0cmlnZ2VyIGFuIGVycm9yIGR1cmluZyByZW5kZXJcbiAgICAgIGFib3J0VGFzayh0YXNrLCBlcnJvcilcbiAgICB9XG4gIClcbn1cblxuZnVuY3Rpb24gd3JpdGVEeW5hbWljRGF0YUludG9QZW5kaW5nVGFzayhcbiAgcm9vdFRhc2s6IFNQQU5hdmlnYXRpb25UYXNrLFxuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGgsXG4gIHNlcnZlclJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgZHluYW1pY0RhdGE6IENhY2hlTm9kZVNlZWREYXRhLFxuICBkeW5hbWljSGVhZDogSGVhZERhdGFcbikge1xuICAvLyBUaGUgZGF0YSBzZW50IGJ5IHRoZSBzZXJ2ZXIgcmVwcmVzZW50cyBvbmx5IGEgc3VidHJlZSBvZiB0aGUgYXBwLiBXZSBuZWVkXG4gIC8vIHRvIGZpbmQgdGhlIHBhcnQgb2YgdGhlIHRhc2sgdHJlZSB0aGF0IG1hdGNoZXMgdGhlIHNlcnZlciByZXNwb25zZSwgYW5kXG4gIC8vIGZ1bGZpbGwgaXQgdXNpbmcgdGhlIGR5bmFtaWMgZGF0YS5cbiAgLy9cbiAgLy8gc2VnbWVudFBhdGggcmVwcmVzZW50cyB0aGUgcGFyZW50IHBhdGggb2Ygc3VidHJlZS4gSXQncyBhIHJlcGVhdGluZyBwYXR0ZXJuXG4gIC8vIG9mIHBhcmFsbGVsIHJvdXRlIGtleSBhbmQgc2VnbWVudDpcbiAgLy9cbiAgLy8gICBbc3RyaW5nLCBTZWdtZW50LCBzdHJpbmcsIFNlZ21lbnQsIHN0cmluZywgU2VnbWVudCwgLi4uXVxuICAvL1xuICAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIHBhdGggYW5kIGZpbmlzaCBhbnkgdGFza3MgdGhhdCBtYXRjaCB0aGlzIHBheWxvYWQuXG4gIGxldCB0YXNrID0gcm9vdFRhc2tcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWdtZW50UGF0aC5sZW5ndGg7IGkgKz0gMikge1xuICAgIGNvbnN0IHBhcmFsbGVsUm91dGVLZXk6IHN0cmluZyA9IHNlZ21lbnRQYXRoW2ldXG4gICAgY29uc3Qgc2VnbWVudDogU2VnbWVudCA9IHNlZ21lbnRQYXRoW2kgKyAxXVxuICAgIGNvbnN0IHRhc2tDaGlsZHJlbiA9IHRhc2suY2hpbGRyZW5cbiAgICBpZiAodGFza0NoaWxkcmVuICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0YXNrQ2hpbGQgPSB0YXNrQ2hpbGRyZW4uZ2V0KHBhcmFsbGVsUm91dGVLZXkpXG4gICAgICBpZiAodGFza0NoaWxkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgdGFza1NlZ21lbnQgPSB0YXNrQ2hpbGQucm91dGVbMF1cbiAgICAgICAgaWYgKG1hdGNoU2VnbWVudChzZWdtZW50LCB0YXNrU2VnbWVudCkpIHtcbiAgICAgICAgICAvLyBGb3VuZCBhIG1hdGNoIGZvciB0aGlzIHRhc2suIEtlZXAgdHJhdmVyc2luZyBkb3duIHRoZSB0YXNrIHRyZWUuXG4gICAgICAgICAgdGFzayA9IHRhc2tDaGlsZFxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gV2UgZGlkbid0IGZpbmQgYSBjaGlsZCB0YXNrIHRoYXQgbWF0Y2hlcyB0aGUgc2VydmVyIGRhdGEuIEV4aXQuIFdlIHdvbid0XG4gICAgLy8gYWJvcnQgdGhlIHRhc2ssIHRob3VnaCwgYmVjYXVzZSBhIGRpZmZlcmVudCBGbGlnaHREYXRhUGF0aCBtYXkgYmUgYWJsZSB0b1xuICAgIC8vIGZ1bGZpbGwgaXQgKHNlZSBsb29wIGluIGxpc3RlbkZvckR5bmFtaWNSZXF1ZXN0KS4gV2Ugb25seSBhYm9ydCB0YXNrc1xuICAgIC8vIG9uY2Ugd2UndmUgcnVuIG91dCBvZiBkYXRhLlxuICAgIHJldHVyblxuICB9XG5cbiAgZmluaXNoVGFza1VzaW5nRHluYW1pY0RhdGFQYXlsb2FkKFxuICAgIHRhc2ssXG4gICAgc2VydmVyUm91dGVyU3RhdGUsXG4gICAgZHluYW1pY0RhdGEsXG4gICAgZHluYW1pY0hlYWRcbiAgKVxufVxuXG5mdW5jdGlvbiBmaW5pc2hUYXNrVXNpbmdEeW5hbWljRGF0YVBheWxvYWQoXG4gIHRhc2s6IFNQQU5hdmlnYXRpb25UYXNrLFxuICBzZXJ2ZXJSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIGR5bmFtaWNEYXRhOiBDYWNoZU5vZGVTZWVkRGF0YSxcbiAgZHluYW1pY0hlYWQ6IEhlYWREYXRhXG4pIHtcbiAgaWYgKHRhc2suZHluYW1pY1JlcXVlc3RUcmVlID09PSBudWxsKSB7XG4gICAgLy8gRXZlcnl0aGluZyBpbiB0aGlzIHN1YnRyZWUgaXMgYWxyZWFkeSBjb21wbGV0ZS4gQmFpbCBvdXQuXG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyBkeW5hbWljRGF0YSBtYXkgcmVwcmVzZW50IGEgbGFyZ2VyIHN1YnRyZWUgdGhhbiB0aGUgdGFzay4gQmVmb3JlIHdlIGNhblxuICAvLyBmaW5pc2ggdGhlIHRhc2ssIHdlIG5lZWQgdG8gbGluZSB0aGVtIHVwLlxuICBjb25zdCB0YXNrQ2hpbGRyZW4gPSB0YXNrLmNoaWxkcmVuXG4gIGNvbnN0IHRhc2tOb2RlID0gdGFzay5ub2RlXG4gIGlmICh0YXNrQ2hpbGRyZW4gPT09IG51bGwpIHtcbiAgICAvLyBXZSd2ZSByZWFjaGVkIHRoZSBsZWFmIG5vZGUgb2YgdGhlIHBlbmRpbmcgdGFzay4gVGhlIHNlcnZlciBkYXRhIHRyZWVcbiAgICAvLyBsaW5lcyB1cCB0aGUgcGVuZGluZyBDYWNoZSBOb2RlIHRyZWUuIFdlIGNhbiBub3cgc3dpdGNoIHRvIHRoZVxuICAgIC8vIG5vcm1hbCBhbGdvcml0aG0uXG4gICAgaWYgKHRhc2tOb2RlICE9PSBudWxsKSB7XG4gICAgICBmaW5pc2hQZW5kaW5nQ2FjaGVOb2RlKFxuICAgICAgICB0YXNrTm9kZSxcbiAgICAgICAgdGFzay5yb3V0ZSxcbiAgICAgICAgc2VydmVyUm91dGVyU3RhdGUsXG4gICAgICAgIGR5bmFtaWNEYXRhLFxuICAgICAgICBkeW5hbWljSGVhZFxuICAgICAgKVxuICAgICAgLy8gU2V0IHRoaXMgdG8gbnVsbCB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgdGFzayBpcyBub3cgY29tcGxldGUuXG4gICAgICB0YXNrLmR5bmFtaWNSZXF1ZXN0VHJlZSA9IG51bGxcbiAgICB9XG4gICAgcmV0dXJuXG4gIH1cbiAgLy8gVGhlIHNlcnZlciByZXR1cm5lZCBtb3JlIGRhdGEgdGhhbiB3ZSBuZWVkIHRvIGZpbmlzaCB0aGUgdGFzay4gU2tpcCBvdmVyXG4gIC8vIHRoZSBleHRyYSBzZWdtZW50cyB1bnRpbCB3ZSByZWFjaCB0aGUgbGVhZiB0YXNrIG5vZGUuXG4gIGNvbnN0IHNlcnZlckNoaWxkcmVuID0gc2VydmVyUm91dGVyU3RhdGVbMV1cbiAgY29uc3QgZHluYW1pY0RhdGFDaGlsZHJlbiA9IGR5bmFtaWNEYXRhWzJdXG5cbiAgZm9yIChjb25zdCBwYXJhbGxlbFJvdXRlS2V5IGluIHNlcnZlclJvdXRlclN0YXRlKSB7XG4gICAgY29uc3Qgc2VydmVyUm91dGVyU3RhdGVDaGlsZDogRmxpZ2h0Um91dGVyU3RhdGUgPVxuICAgICAgc2VydmVyQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICBjb25zdCBkeW5hbWljRGF0YUNoaWxkOiBDYWNoZU5vZGVTZWVkRGF0YSB8IG51bGwgfCB2b2lkID1cbiAgICAgIGR5bmFtaWNEYXRhQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV1cblxuICAgIGNvbnN0IHRhc2tDaGlsZCA9IHRhc2tDaGlsZHJlbi5nZXQocGFyYWxsZWxSb3V0ZUtleSlcbiAgICBpZiAodGFza0NoaWxkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHRhc2tTZWdtZW50ID0gdGFza0NoaWxkLnJvdXRlWzBdXG4gICAgICBpZiAoXG4gICAgICAgIG1hdGNoU2VnbWVudChzZXJ2ZXJSb3V0ZXJTdGF0ZUNoaWxkWzBdLCB0YXNrU2VnbWVudCkgJiZcbiAgICAgICAgZHluYW1pY0RhdGFDaGlsZCAhPT0gbnVsbCAmJlxuICAgICAgICBkeW5hbWljRGF0YUNoaWxkICE9PSB1bmRlZmluZWRcbiAgICAgICkge1xuICAgICAgICAvLyBGb3VuZCBhIG1hdGNoIGZvciB0aGlzIHRhc2suIEtlZXAgdHJhdmVyc2luZyBkb3duIHRoZSB0YXNrIHRyZWUuXG4gICAgICAgIHJldHVybiBmaW5pc2hUYXNrVXNpbmdEeW5hbWljRGF0YVBheWxvYWQoXG4gICAgICAgICAgdGFza0NoaWxkLFxuICAgICAgICAgIHNlcnZlclJvdXRlclN0YXRlQ2hpbGQsXG4gICAgICAgICAgZHluYW1pY0RhdGFDaGlsZCxcbiAgICAgICAgICBkeW5hbWljSGVhZFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICAgIC8vIFdlIGRpZG4ndCBmaW5kIGEgY2hpbGQgdGFzayB0aGF0IG1hdGNoZXMgdGhlIHNlcnZlciBkYXRhLiBXZSB3b24ndCBhYm9ydFxuICAgIC8vIHRoZSB0YXNrLCB0aG91Z2gsIGJlY2F1c2UgYSBkaWZmZXJlbnQgRmxpZ2h0RGF0YVBhdGggbWF5IGJlIGFibGUgdG9cbiAgICAvLyBmdWxmaWxsIGl0IChzZWUgbG9vcCBpbiBsaXN0ZW5Gb3JEeW5hbWljUmVxdWVzdCkuIFdlIG9ubHkgYWJvcnQgdGFza3NcbiAgICAvLyBvbmNlIHdlJ3ZlIHJ1biBvdXQgb2YgZGF0YS5cbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQZW5kaW5nQ2FjaGVOb2RlKFxuICBuYXZpZ2F0ZWRBdDogbnVtYmVyLFxuICByb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIHByZWZldGNoRGF0YTogQ2FjaGVOb2RlU2VlZERhdGEgfCBudWxsLFxuICBwcmVmZXRjaEhlYWQ6IEhlYWREYXRhIHwgbnVsbCxcbiAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsOiBib29sZWFuLFxuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGgsXG4gIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdDogQXJyYXk8RmxpZ2h0U2VnbWVudFBhdGg+XG4pOiBSZWFkeUNhY2hlTm9kZSB7XG4gIGNvbnN0IHJvdXRlclN0YXRlQ2hpbGRyZW4gPSByb3V0ZXJTdGF0ZVsxXVxuICBjb25zdCBwcmVmZXRjaERhdGFDaGlsZHJlbiA9IHByZWZldGNoRGF0YSAhPT0gbnVsbCA/IHByZWZldGNoRGF0YVsyXSA6IG51bGxcblxuICBjb25zdCBwYXJhbGxlbFJvdXRlcyA9IG5ldyBNYXAoKVxuICBmb3IgKGxldCBwYXJhbGxlbFJvdXRlS2V5IGluIHJvdXRlclN0YXRlQ2hpbGRyZW4pIHtcbiAgICBjb25zdCByb3V0ZXJTdGF0ZUNoaWxkOiBGbGlnaHRSb3V0ZXJTdGF0ZSA9XG4gICAgICByb3V0ZXJTdGF0ZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldXG4gICAgY29uc3QgcHJlZmV0Y2hEYXRhQ2hpbGQ6IENhY2hlTm9kZVNlZWREYXRhIHwgbnVsbCB8IHZvaWQgPVxuICAgICAgcHJlZmV0Y2hEYXRhQ2hpbGRyZW4gIT09IG51bGxcbiAgICAgICAgPyBwcmVmZXRjaERhdGFDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XVxuICAgICAgICA6IG51bGxcblxuICAgIGNvbnN0IHNlZ21lbnRDaGlsZCA9IHJvdXRlclN0YXRlQ2hpbGRbMF1cbiAgICBjb25zdCBzZWdtZW50UGF0aENoaWxkID0gc2VnbWVudFBhdGguY29uY2F0KFtcbiAgICAgIHBhcmFsbGVsUm91dGVLZXksXG4gICAgICBzZWdtZW50Q2hpbGQsXG4gICAgXSlcbiAgICBjb25zdCBzZWdtZW50S2V5Q2hpbGQgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50Q2hpbGQpXG5cbiAgICBjb25zdCBuZXdDYWNoZU5vZGVDaGlsZCA9IGNyZWF0ZVBlbmRpbmdDYWNoZU5vZGUoXG4gICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgIHJvdXRlclN0YXRlQ2hpbGQsXG4gICAgICBwcmVmZXRjaERhdGFDaGlsZCA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IHByZWZldGNoRGF0YUNoaWxkLFxuICAgICAgcHJlZmV0Y2hIZWFkLFxuICAgICAgaXNQcmVmZXRjaEhlYWRQYXJ0aWFsLFxuICAgICAgc2VnbWVudFBhdGhDaGlsZCxcbiAgICAgIHNjcm9sbGFibGVTZWdtZW50c1Jlc3VsdFxuICAgIClcblxuICAgIGNvbnN0IG5ld1NlZ21lbnRNYXBDaGlsZDogQ2hpbGRTZWdtZW50TWFwID0gbmV3IE1hcCgpXG4gICAgbmV3U2VnbWVudE1hcENoaWxkLnNldChzZWdtZW50S2V5Q2hpbGQsIG5ld0NhY2hlTm9kZUNoaWxkKVxuICAgIHBhcmFsbGVsUm91dGVzLnNldChwYXJhbGxlbFJvdXRlS2V5LCBuZXdTZWdtZW50TWFwQ2hpbGQpXG4gIH1cblxuICAvLyBUaGUgaGVhZCBpcyBhc3NpZ25lZCB0byBldmVyeSBsZWFmIHNlZ21lbnQgZGVsaXZlcmVkIGJ5IHRoZSBzZXJ2ZXIuIEJhc2VkXG4gIC8vIG9uIGNvcnJlc3BvbmRpbmcgbG9naWMgaW4gZmlsbC1sYXp5LWl0ZW1zLXRpbGwtbGVhZi13aXRoLWhlYWQudHNcbiAgY29uc3QgaXNMZWFmU2VnbWVudCA9IHBhcmFsbGVsUm91dGVzLnNpemUgPT09IDBcblxuICBpZiAoaXNMZWFmU2VnbWVudCkge1xuICAgIC8vIFRoZSBzZWdtZW50IHBhdGggb2YgZXZlcnkgbGVhZiBzZWdtZW50IChpLmUuIHBhZ2UpIGlzIGNvbGxlY3RlZCBpbnRvXG4gICAgLy8gYSByZXN1bHQgYXJyYXkuIFRoaXMgaXMgdXNlZCBieSB0aGUgTGF5b3V0Um91dGVyIHRvIHNjcm9sbCB0byBlbnN1cmUgdGhhdFxuICAgIC8vIG5ldyBwYWdlcyBhcmUgdmlzaWJsZSBhZnRlciBhIG5hdmlnYXRpb24uXG4gICAgLy8gVE9ETzogV2Ugc2hvdWxkIHVzZSBhIHN0cmluZyB0byByZXByZXNlbnQgdGhlIHNlZ21lbnQgcGF0aCBpbnN0ZWFkIG9mXG4gICAgLy8gYW4gYXJyYXkuIFdlIGFscmVhZHkgdXNlIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciB0aGUgcGF0aCB3aGVuXG4gICAgLy8gYWNjZXNzaW5nIHRoZSBTZWdtZW50IENhY2hlLCBzbyB3ZSBjYW4gdXNlIHRoZSBzYW1lIG9uZS5cbiAgICBzY3JvbGxhYmxlU2VnbWVudHNSZXN1bHQucHVzaChzZWdtZW50UGF0aClcbiAgfVxuXG4gIGNvbnN0IG1heWJlUHJlZmV0Y2hSc2MgPSBwcmVmZXRjaERhdGEgIT09IG51bGwgPyBwcmVmZXRjaERhdGFbMV0gOiBudWxsXG4gIGNvbnN0IG1heWJlUHJlZmV0Y2hMb2FkaW5nID0gcHJlZmV0Y2hEYXRhICE9PSBudWxsID8gcHJlZmV0Y2hEYXRhWzNdIDogbnVsbFxuICByZXR1cm4ge1xuICAgIGxhenlEYXRhOiBudWxsLFxuICAgIHBhcmFsbGVsUm91dGVzOiBwYXJhbGxlbFJvdXRlcyxcblxuICAgIHByZWZldGNoUnNjOiBtYXliZVByZWZldGNoUnNjICE9PSB1bmRlZmluZWQgPyBtYXliZVByZWZldGNoUnNjIDogbnVsbCxcbiAgICBwcmVmZXRjaEhlYWQ6IGlzTGVhZlNlZ21lbnQgPyBwcmVmZXRjaEhlYWQgOiBbbnVsbCwgbnVsbF0sXG5cbiAgICAvLyBUT0RPOiBUZWNobmljYWxseSwgYSBsb2FkaW5nIGJvdW5kYXJ5IGNvdWxkIGNvbnRhaW4gZHluYW1pYyBkYXRhLiBXZSBtdXN0XG4gICAgLy8gaGF2ZSBzZXBhcmF0ZSBgbG9hZGluZ2AgYW5kIGBwcmVmZXRjaExvYWRpbmdgIGZpZWxkcyB0byBoYW5kbGUgdGhpcywgbGlrZVxuICAgIC8vIHdlIGRvIGZvciB0aGUgc2VnbWVudCBkYXRhIGFuZCBoZWFkLlxuICAgIGxvYWRpbmc6IG1heWJlUHJlZmV0Y2hMb2FkaW5nICE9PSB1bmRlZmluZWQgPyBtYXliZVByZWZldGNoTG9hZGluZyA6IG51bGwsXG5cbiAgICAvLyBDcmVhdGUgYSBkZWZlcnJlZCBwcm9taXNlLiBUaGlzIHdpbGwgYmUgZnVsZmlsbGVkIG9uY2UgdGhlIGR5bmFtaWNcbiAgICAvLyByZXNwb25zZSBpcyByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIuXG4gICAgcnNjOiBjcmVhdGVEZWZlcnJlZFJzYygpIGFzIFJlYWN0LlJlYWN0Tm9kZSxcbiAgICBoZWFkOiBpc0xlYWZTZWdtZW50ID8gKGNyZWF0ZURlZmVycmVkUnNjKCkgYXMgUmVhY3QuUmVhY3ROb2RlKSA6IG51bGwsXG5cbiAgICBuYXZpZ2F0ZWRBdCxcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5pc2hQZW5kaW5nQ2FjaGVOb2RlKFxuICBjYWNoZU5vZGU6IENhY2hlTm9kZSxcbiAgdGFza1N0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgc2VydmVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlLFxuICBkeW5hbWljRGF0YTogQ2FjaGVOb2RlU2VlZERhdGEsXG4gIGR5bmFtaWNIZWFkOiBIZWFkRGF0YVxuKTogdm9pZCB7XG4gIC8vIFdyaXRlcyBhIGR5bmFtaWMgcmVzcG9uc2UgaW50byBhbiBleGlzdGluZyBDYWNoZSBOb2RlIHRyZWUuIFRoaXMgZG9lcyBfbm90X1xuICAvLyBjcmVhdGUgYSBuZXcgdHJlZSwgaXQgdXBkYXRlcyB0aGUgZXhpc3RpbmcgdHJlZSBpbi1wbGFjZS4gU28gaXQgbXVzdCBmb2xsb3dcbiAgLy8gdGhlIFN1c3BlbnNlIHJ1bGVzIG9mIGNhY2hlIHNhZmV0eSDigJQgaXQgY2FuIHJlc29sdmUgcGVuZGluZyBwcm9taXNlcywgYnV0XG4gIC8vIGl0IGNhbm5vdCBvdmVyd3JpdGUgZXhpc3RpbmcgZGF0YS4gSXQgY2FuIGFkZCBzZWdtZW50cyB0byB0aGUgdHJlZSAoYmVjYXVzZVxuICAvLyBhIG1pc3Npbmcgc2VnbWVudCB3aWxsIGNhdXNlIHRoZSBsYXlvdXQgcm91dGVyIHRvIHN1c3BlbmQpLlxuICAvLyBidXQgaXQgY2Fubm90IGRlbGV0ZSB0aGVtLlxuICAvL1xuICAvLyBXZSBtdXN0IHJlc29sdmUgZXZlcnkgcHJvbWlzZSBpbiB0aGUgdHJlZSwgb3IgZWxzZSBpdCB3aWxsIHN1c3BlbmRcbiAgLy8gaW5kZWZpbml0ZWx5LiBJZiB3ZSBkaWQgbm90IHJlY2VpdmUgZGF0YSBmb3IgYSBzZWdtZW50LCB3ZSB3aWxsIHJlc29sdmUgaXRzXG4gIC8vIGRhdGEgcHJvbWlzZSB0byBgbnVsbGAgdG8gdHJpZ2dlciBhIGxhenkgZmV0Y2ggZHVyaW5nIHJlbmRlci5cbiAgY29uc3QgdGFza1N0YXRlQ2hpbGRyZW4gPSB0YXNrU3RhdGVbMV1cbiAgY29uc3Qgc2VydmVyU3RhdGVDaGlsZHJlbiA9IHNlcnZlclN0YXRlWzFdXG4gIGNvbnN0IGRhdGFDaGlsZHJlbiA9IGR5bmFtaWNEYXRhWzJdXG5cbiAgLy8gVGhlIHJvdXRlciBzdGF0ZSB0aGF0IHdlIHRyYXZlcnNlIHRoZSB0cmVlIHdpdGggKHRhc2tTdGF0ZSkgaXMgdGhlIHNhbWUgb25lXG4gIC8vIHRoYXQgd2UgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIHBlbmRpbmcgQ2FjaGUgTm9kZSB0cmVlLiBUaGF0IHdheSB3ZSdyZSBzdXJlXG4gIC8vIHRvIHJlc29sdmUgYWxsIHRoZSBwZW5kaW5nIHByb21pc2VzLlxuICBjb25zdCBwYXJhbGxlbFJvdXRlcyA9IGNhY2hlTm9kZS5wYXJhbGxlbFJvdXRlc1xuICBmb3IgKGxldCBwYXJhbGxlbFJvdXRlS2V5IGluIHRhc2tTdGF0ZUNoaWxkcmVuKSB7XG4gICAgY29uc3QgdGFza1N0YXRlQ2hpbGQ6IEZsaWdodFJvdXRlclN0YXRlID1cbiAgICAgIHRhc2tTdGF0ZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldXG4gICAgY29uc3Qgc2VydmVyU3RhdGVDaGlsZDogRmxpZ2h0Um91dGVyU3RhdGUgfCB2b2lkID1cbiAgICAgIHNlcnZlclN0YXRlQ2hpbGRyZW5bcGFyYWxsZWxSb3V0ZUtleV1cbiAgICBjb25zdCBkYXRhQ2hpbGQ6IENhY2hlTm9kZVNlZWREYXRhIHwgbnVsbCB8IHZvaWQgPVxuICAgICAgZGF0YUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldXG5cbiAgICBjb25zdCBzZWdtZW50TWFwQ2hpbGQgPSBwYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSlcbiAgICBjb25zdCB0YXNrU2VnbWVudENoaWxkID0gdGFza1N0YXRlQ2hpbGRbMF1cbiAgICBjb25zdCB0YXNrU2VnbWVudEtleUNoaWxkID0gY3JlYXRlUm91dGVyQ2FjaGVLZXkodGFza1NlZ21lbnRDaGlsZClcblxuICAgIGNvbnN0IGNhY2hlTm9kZUNoaWxkID1cbiAgICAgIHNlZ21lbnRNYXBDaGlsZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gc2VnbWVudE1hcENoaWxkLmdldCh0YXNrU2VnbWVudEtleUNoaWxkKVxuICAgICAgICA6IHVuZGVmaW5lZFxuXG4gICAgaWYgKGNhY2hlTm9kZUNoaWxkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgc2VydmVyU3RhdGVDaGlsZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIG1hdGNoU2VnbWVudCh0YXNrU2VnbWVudENoaWxkLCBzZXJ2ZXJTdGF0ZUNoaWxkWzBdKVxuICAgICAgKSB7XG4gICAgICAgIGlmIChkYXRhQ2hpbGQgIT09IHVuZGVmaW5lZCAmJiBkYXRhQ2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBoYXBweSBwYXRoLiBSZWN1cnNpdmVseSB1cGRhdGUgYWxsIHRoZSBjaGlsZHJlbi5cbiAgICAgICAgICBmaW5pc2hQZW5kaW5nQ2FjaGVOb2RlKFxuICAgICAgICAgICAgY2FjaGVOb2RlQ2hpbGQsXG4gICAgICAgICAgICB0YXNrU3RhdGVDaGlsZCxcbiAgICAgICAgICAgIHNlcnZlclN0YXRlQ2hpbGQsXG4gICAgICAgICAgICBkYXRhQ2hpbGQsXG4gICAgICAgICAgICBkeW5hbWljSGVhZFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUaGUgc2VydmVyIG5ldmVyIHJldHVybmVkIGRhdGEgZm9yIHRoaXMgc2VnbWVudC4gVHJpZ2dlciBhIGxhenlcbiAgICAgICAgICAvLyBmZXRjaCBkdXJpbmcgcmVuZGVyLiBUaGlzIHNob3VsZG4ndCBoYXBwZW4gYmVjYXVzZSB0aGUgUm91dGUgVHJlZVxuICAgICAgICAgIC8vIGFuZCB0aGUgU2VlZCBEYXRhIHRyZWUgc2VudCBieSB0aGUgc2VydmVyIHNob3VsZCBhbHdheXMgYmUgdGhlIHNhbWVcbiAgICAgICAgICAvLyBzaGFwZSB3aGVuIHBhcnQgb2YgdGhlIHNhbWUgc2VydmVyIHJlc3BvbnNlLlxuICAgICAgICAgIGFib3J0UGVuZGluZ0NhY2hlTm9kZSh0YXNrU3RhdGVDaGlsZCwgY2FjaGVOb2RlQ2hpbGQsIG51bGwpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoZSBzZXJ2ZXIgbmV2ZXIgcmV0dXJuZWQgZGF0YSBmb3IgdGhpcyBzZWdtZW50LiBUcmlnZ2VyIGEgbGF6eVxuICAgICAgICAvLyBmZXRjaCBkdXJpbmcgcmVuZGVyLlxuICAgICAgICBhYm9ydFBlbmRpbmdDYWNoZU5vZGUodGFza1N0YXRlQ2hpbGQsIGNhY2hlTm9kZUNoaWxkLCBudWxsKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGUgc2VydmVyIHJlc3BvbnNlIG1hdGNoZXMgd2hhdCB3YXMgZXhwZWN0ZWQgdG8gcmVjZWl2ZSwgYnV0IHRoZXJlJ3NcbiAgICAgIC8vIG5vIG1hdGNoaW5nIENhY2hlIE5vZGUgaW4gdGhlIHRhc2sgdHJlZS4gVGhpcyBpcyBhIGJ1ZyBpbiB0aGVcbiAgICAgIC8vIGltcGxlbWVudGF0aW9uIGJlY2F1c2Ugd2Ugc2hvdWxkIGhhdmUgY3JlYXRlZCBhIG5vZGUgZm9yIGV2ZXJ5XG4gICAgICAvLyBzZWdtZW50IGluIHRoZSB0cmVlIHRoYXQncyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YXNrLlxuICAgIH1cbiAgfVxuXG4gIC8vIFVzZSB0aGUgZHluYW1pYyBkYXRhIGZyb20gdGhlIHNlcnZlciB0byBmdWxmaWxsIHRoZSBkZWZlcnJlZCBSU0MgcHJvbWlzZVxuICAvLyBvbiB0aGUgQ2FjaGUgTm9kZS5cbiAgY29uc3QgcnNjID0gY2FjaGVOb2RlLnJzY1xuICBjb25zdCBkeW5hbWljU2VnbWVudERhdGEgPSBkeW5hbWljRGF0YVsxXVxuICBpZiAocnNjID09PSBudWxsKSB7XG4gICAgLy8gVGhpcyBpcyBhIGxhenkgY2FjaGUgbm9kZS4gV2UgY2FuIG92ZXJ3cml0ZSBpdC4gVGhpcyBpcyBvbmx5IHNhZmVcbiAgICAvLyBiZWNhdXNlIHdlIGtub3cgdGhhdCB0aGUgTGF5b3V0Um91dGVyIHN1c3BlbmRzIGlmIGByc2NgIGlzIGBudWxsYC5cbiAgICBjYWNoZU5vZGUucnNjID0gZHluYW1pY1NlZ21lbnREYXRhXG4gIH0gZWxzZSBpZiAoaXNEZWZlcnJlZFJzYyhyc2MpKSB7XG4gICAgLy8gVGhpcyBpcyBhIGRlZmVycmVkIFJTQyBwcm9taXNlLiBXZSBjYW4gZnVsZmlsbCBpdCB3aXRoIHRoZSBkYXRhIHdlIGp1c3RcbiAgICAvLyByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIuIElmIGl0IHdhcyBhbHJlYWR5IHJlc29sdmVkIGJ5IGEgZGlmZmVyZW50XG4gICAgLy8gbmF2aWdhdGlvbiwgdGhlbiB0aGlzIGRvZXMgbm90aGluZyBiZWNhdXNlIHdlIGNhbid0IG92ZXJ3cml0ZSBkYXRhLlxuICAgIHJzYy5yZXNvbHZlKGR5bmFtaWNTZWdtZW50RGF0YSlcbiAgfSBlbHNlIHtcbiAgICAvLyBUaGlzIGlzIG5vdCBhIGRlZmVycmVkIFJTQyBwcm9taXNlLCBub3IgaXMgaXQgZW1wdHksIHNvIGl0IG11c3QgaGF2ZVxuICAgIC8vIGJlZW4gcG9wdWxhdGVkIGJ5IGEgZGlmZmVyZW50IG5hdmlnYXRpb24uIFdlIG11c3Qgbm90IG92ZXJ3cml0ZSBpdC5cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoaXMgaXMgYSBsZWFmIHNlZ21lbnQuIElmIHNvLCBpdCB3aWxsIGhhdmUgYSBgaGVhZGAgcHJvcGVydHkgd2l0aFxuICAvLyBhIHBlbmRpbmcgcHJvbWlzZSB0aGF0IG5lZWRzIHRvIGJlIHJlc29sdmVkIHdpdGggdGhlIGR5bmFtaWMgaGVhZCBmcm9tXG4gIC8vIHRoZSBzZXJ2ZXIuXG4gIGNvbnN0IGhlYWQgPSBjYWNoZU5vZGUuaGVhZFxuICBpZiAoaXNEZWZlcnJlZFJzYyhoZWFkKSkge1xuICAgIGhlYWQucmVzb2x2ZShkeW5hbWljSGVhZClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWJvcnRUYXNrKHRhc2s6IFNQQU5hdmlnYXRpb25UYXNrLCBlcnJvcjogYW55KTogdm9pZCB7XG4gIGNvbnN0IGNhY2hlTm9kZSA9IHRhc2subm9kZVxuICBpZiAoY2FjaGVOb2RlID09PSBudWxsKSB7XG4gICAgLy8gVGhpcyBpbmRpY2F0ZXMgdGhlIHRhc2sgaXMgYWxyZWFkeSBjb21wbGV0ZS5cbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHRhc2tDaGlsZHJlbiA9IHRhc2suY2hpbGRyZW5cbiAgaWYgKHRhc2tDaGlsZHJlbiA9PT0gbnVsbCkge1xuICAgIC8vIFJlYWNoZWQgdGhlIGxlYWYgdGFzayBub2RlLiBUaGlzIGlzIHRoZSByb290IG9mIGEgcGVuZGluZyBjYWNoZVxuICAgIC8vIG5vZGUgdHJlZS5cbiAgICBhYm9ydFBlbmRpbmdDYWNoZU5vZGUodGFzay5yb3V0ZSwgY2FjaGVOb2RlLCBlcnJvcilcbiAgfSBlbHNlIHtcbiAgICAvLyBUaGlzIGlzIGFuIGludGVybWVkaWF0ZSB0YXNrIG5vZGUuIEtlZXAgdHJhdmVyc2luZyB1bnRpbCB3ZSByZWFjaCBhXG4gICAgLy8gdGFzayBub2RlIHdpdGggbm8gY2hpbGRyZW4uIFRoYXQgd2lsbCBiZSB0aGUgcm9vdCBvZiB0aGUgY2FjaGUgbm9kZSB0cmVlXG4gICAgLy8gdGhhdCBuZWVkcyB0byBiZSByZXNvbHZlZC5cbiAgICBmb3IgKGNvbnN0IHRhc2tDaGlsZCBvZiB0YXNrQ2hpbGRyZW4udmFsdWVzKCkpIHtcbiAgICAgIGFib3J0VGFzayh0YXNrQ2hpbGQsIGVycm9yKVxuICAgIH1cbiAgfVxuXG4gIC8vIFNldCB0aGlzIHRvIG51bGwgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIHRhc2sgaXMgbm93IGNvbXBsZXRlLlxuICB0YXNrLmR5bmFtaWNSZXF1ZXN0VHJlZSA9IG51bGxcbn1cblxuZnVuY3Rpb24gYWJvcnRQZW5kaW5nQ2FjaGVOb2RlKFxuICByb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIGNhY2hlTm9kZTogQ2FjaGVOb2RlLFxuICBlcnJvcjogYW55XG4pOiB2b2lkIHtcbiAgLy8gRm9yIGV2ZXJ5IHBlbmRpbmcgc2VnbWVudCBpbiB0aGUgdHJlZSwgcmVzb2x2ZSBpdHMgYHJzY2AgcHJvbWlzZSB0byBgbnVsbGBcbiAgLy8gdG8gdHJpZ2dlciBhIGxhenkgZmV0Y2ggZHVyaW5nIHJlbmRlci5cbiAgLy9cbiAgLy8gT3IsIGlmIGFuIGVycm9yIG9iamVjdCBpcyBwcm92aWRlZCwgaXQgd2lsbCBlcnJvciBpbnN0ZWFkLlxuICBjb25zdCByb3V0ZXJTdGF0ZUNoaWxkcmVuID0gcm91dGVyU3RhdGVbMV1cbiAgY29uc3QgcGFyYWxsZWxSb3V0ZXMgPSBjYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXNcbiAgZm9yIChsZXQgcGFyYWxsZWxSb3V0ZUtleSBpbiByb3V0ZXJTdGF0ZUNoaWxkcmVuKSB7XG4gICAgY29uc3Qgcm91dGVyU3RhdGVDaGlsZDogRmxpZ2h0Um91dGVyU3RhdGUgPVxuICAgICAgcm91dGVyU3RhdGVDaGlsZHJlbltwYXJhbGxlbFJvdXRlS2V5XVxuICAgIGNvbnN0IHNlZ21lbnRNYXBDaGlsZCA9IHBhcmFsbGVsUm91dGVzLmdldChwYXJhbGxlbFJvdXRlS2V5KVxuICAgIGlmIChzZWdtZW50TWFwQ2hpbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuIGJlY2F1c2Ugd2UncmUgdHJhdmVyc2luZyB0aGUgc2FtZSB0cmVlIHRoYXQgd2FzXG4gICAgICAvLyB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgY2FjaGUgbm9kZXMgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3Qgc2VnbWVudENoaWxkID0gcm91dGVyU3RhdGVDaGlsZFswXVxuICAgIGNvbnN0IHNlZ21lbnRLZXlDaGlsZCA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KHNlZ21lbnRDaGlsZClcbiAgICBjb25zdCBjYWNoZU5vZGVDaGlsZCA9IHNlZ21lbnRNYXBDaGlsZC5nZXQoc2VnbWVudEtleUNoaWxkKVxuICAgIGlmIChjYWNoZU5vZGVDaGlsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhYm9ydFBlbmRpbmdDYWNoZU5vZGUocm91dGVyU3RhdGVDaGlsZCwgY2FjaGVOb2RlQ2hpbGQsIGVycm9yKVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIHNob3VsZG4ndCBoYXBwZW4gYmVjYXVzZSB3ZSdyZSB0cmF2ZXJzaW5nIHRoZSBzYW1lIHRyZWUgdGhhdCB3YXNcbiAgICAgIC8vIHVzZWQgdG8gY29uc3RydWN0IHRoZSBjYWNoZSBub2RlcyBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgfVxuICB9XG4gIGNvbnN0IHJzYyA9IGNhY2hlTm9kZS5yc2NcbiAgaWYgKGlzRGVmZXJyZWRSc2MocnNjKSkge1xuICAgIGlmIChlcnJvciA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhpcyB3aWxsIHRyaWdnZXIgYSBsYXp5IGZldGNoIGR1cmluZyByZW5kZXIuXG4gICAgICByc2MucmVzb2x2ZShudWxsKVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIHdpbGwgdHJpZ2dlciBhbiBlcnJvciBkdXJpbmcgcmVuZGVyaW5nLlxuICAgICAgcnNjLnJlamVjdChlcnJvcilcbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgbGVhZiBzZWdtZW50LiBJZiBzbywgaXQgd2lsbCBoYXZlIGEgYGhlYWRgIHByb3BlcnR5IHdpdGhcbiAgLy8gYSBwZW5kaW5nIHByb21pc2UgdGhhdCBuZWVkcyB0byBiZSByZXNvbHZlZC4gSWYgYW4gZXJyb3Igd2FzIHByb3ZpZGVkLCB3ZVxuICAvLyB3aWxsIG5vdCByZXNvbHZlIGl0IHdpdGggYW4gZXJyb3IsIHNpbmNlIHRoaXMgaXMgcmVuZGVyZWQgYXQgdGhlIHJvb3Qgb2ZcbiAgLy8gdGhlIGFwcC4gV2Ugd2FudCB0aGUgc2VnbWVudCB0byBlcnJvciwgbm90IHRoZSBlbnRpcmUgYXBwLlxuICBjb25zdCBoZWFkID0gY2FjaGVOb2RlLmhlYWRcbiAgaWYgKGlzRGVmZXJyZWRSc2MoaGVhZCkpIHtcbiAgICBoZWFkLnJlc29sdmUobnVsbClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FjaGVOb2RlT25Qb3BzdGF0ZVJlc3RvcmF0aW9uKFxuICBvbGRDYWNoZU5vZGU6IENhY2hlTm9kZSxcbiAgcm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlXG4pOiBSZWFkeUNhY2hlTm9kZSB7XG4gIC8vIEEgcG9wc3RhdGUgbmF2aWdhdGlvbiByZWFkcyBkYXRhIGZyb20gdGhlIGxvY2FsIGNhY2hlLiBJdCBkb2VzIG5vdCBpc3N1ZVxuICAvLyBuZXcgbmV0d29yayByZXF1ZXN0cyAodW5sZXNzIHRoZSBjYWNoZSBlbnRyaWVzIGhhdmUgYmVlbiBldmljdGVkKS4gU28sIHdlXG4gIC8vIHVwZGF0ZSB0aGUgY2FjaGUgdG8gZHJvcCB0aGUgcHJlZmV0Y2ggZGF0YSBmb3IgYW55IHNlZ21lbnQgd2hvc2UgZHluYW1pY1xuICAvLyBkYXRhIHdhcyBhbHJlYWR5IHJlY2VpdmVkLiBUaGlzIHByZXZlbnRzIGFuIHVubmVjZXNzYXJ5IGZsYXNoIGJhY2sgdG8gUFBSXG4gIC8vIHN0YXRlIGR1cmluZyBhIGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9uLlxuICAvL1xuICAvLyBUaGlzIGZ1bmN0aW9uIGNsb25lcyB0aGUgZW50aXJlIGNhY2hlIG5vZGUgdHJlZSBhbmQgc2V0cyB0aGUgYHByZWZldGNoUnNjYFxuICAvLyBmaWVsZCB0byBgbnVsbGAgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIHJlbmRlcmVkLiBXZSBjYW4ndCBtdXRhdGUgdGhlIG5vZGVcbiAgLy8gaW4gcGxhY2UgYmVjYXVzZSB0aGlzIGlzIGEgY29uY3VycmVudCBkYXRhIHN0cnVjdHVyZS5cblxuICBjb25zdCByb3V0ZXJTdGF0ZUNoaWxkcmVuID0gcm91dGVyU3RhdGVbMV1cbiAgY29uc3Qgb2xkUGFyYWxsZWxSb3V0ZXMgPSBvbGRDYWNoZU5vZGUucGFyYWxsZWxSb3V0ZXNcbiAgY29uc3QgbmV3UGFyYWxsZWxSb3V0ZXMgPSBuZXcgTWFwKG9sZFBhcmFsbGVsUm91dGVzKVxuICBmb3IgKGxldCBwYXJhbGxlbFJvdXRlS2V5IGluIHJvdXRlclN0YXRlQ2hpbGRyZW4pIHtcbiAgICBjb25zdCByb3V0ZXJTdGF0ZUNoaWxkOiBGbGlnaHRSb3V0ZXJTdGF0ZSA9XG4gICAgICByb3V0ZXJTdGF0ZUNoaWxkcmVuW3BhcmFsbGVsUm91dGVLZXldXG4gICAgY29uc3Qgc2VnbWVudENoaWxkID0gcm91dGVyU3RhdGVDaGlsZFswXVxuICAgIGNvbnN0IHNlZ21lbnRLZXlDaGlsZCA9IGNyZWF0ZVJvdXRlckNhY2hlS2V5KHNlZ21lbnRDaGlsZClcbiAgICBjb25zdCBvbGRTZWdtZW50TWFwQ2hpbGQgPSBvbGRQYXJhbGxlbFJvdXRlcy5nZXQocGFyYWxsZWxSb3V0ZUtleSlcbiAgICBpZiAob2xkU2VnbWVudE1hcENoaWxkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG9sZENhY2hlTm9kZUNoaWxkID0gb2xkU2VnbWVudE1hcENoaWxkLmdldChzZWdtZW50S2V5Q2hpbGQpXG4gICAgICBpZiAob2xkQ2FjaGVOb2RlQ2hpbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBuZXdDYWNoZU5vZGVDaGlsZCA9IHVwZGF0ZUNhY2hlTm9kZU9uUG9wc3RhdGVSZXN0b3JhdGlvbihcbiAgICAgICAgICBvbGRDYWNoZU5vZGVDaGlsZCxcbiAgICAgICAgICByb3V0ZXJTdGF0ZUNoaWxkXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgbmV3U2VnbWVudE1hcENoaWxkID0gbmV3IE1hcChvbGRTZWdtZW50TWFwQ2hpbGQpXG4gICAgICAgIG5ld1NlZ21lbnRNYXBDaGlsZC5zZXQoc2VnbWVudEtleUNoaWxkLCBuZXdDYWNoZU5vZGVDaGlsZClcbiAgICAgICAgbmV3UGFyYWxsZWxSb3V0ZXMuc2V0KHBhcmFsbGVsUm91dGVLZXksIG5ld1NlZ21lbnRNYXBDaGlsZClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBPbmx5IHNob3cgcHJlZmV0Y2hlZCBkYXRhIGlmIHRoZSBkeW5hbWljIGRhdGEgaXMgc3RpbGwgcGVuZGluZy5cbiAgLy9cbiAgLy8gVGVobmljYWxseSwgd2hhdCB3ZSdyZSBhY3R1YWxseSBjaGVja2luZyBpcyB3aGV0aGVyIHRoZSBkeW5hbWljIG5ldHdvcmtcbiAgLy8gcmVzcG9uc2Ugd2FzIHJlY2VpdmVkLiBCdXQgc2luY2UgaXQncyBhIHN0cmVhbWluZyByZXNwb25zZSwgdGhpcyBkb2VzIG5vdFxuICAvLyBtZWFuIHRoYXQgYWxsIHRoZSBkeW5hbWljIGRhdGEgaGFzIGZ1bGx5IHN0cmVhbWVkIGluLiBJdCBqdXN0IG1lYW5zIHRoYXRcbiAgLy8gX3NvbWVfIG9mIHRoZSBkeW5hbWljIGRhdGEgd2FzIHJlY2VpdmVkLiBCdXQgYXMgYSBoZXVyaXN0aWMsIHdlIGFzc3VtZSB0aGF0XG4gIC8vIHRoZSByZXN0IGR5bmFtaWMgZGF0YSB3aWxsIHN0cmVhbSBpbiBxdWlja2x5LCBzbyBpdCdzIHN0aWxsIGJldHRlciB0byBza2lwXG4gIC8vIHRoZSBwcmVmZXRjaCBzdGF0ZS5cbiAgY29uc3QgcnNjID0gb2xkQ2FjaGVOb2RlLnJzY1xuICBjb25zdCBzaG91bGRVc2VQcmVmZXRjaCA9IGlzRGVmZXJyZWRSc2MocnNjKSAmJiByc2Muc3RhdHVzID09PSAncGVuZGluZydcblxuICByZXR1cm4ge1xuICAgIGxhenlEYXRhOiBudWxsLFxuICAgIHJzYyxcbiAgICBoZWFkOiBvbGRDYWNoZU5vZGUuaGVhZCxcblxuICAgIHByZWZldGNoSGVhZDogc2hvdWxkVXNlUHJlZmV0Y2ggPyBvbGRDYWNoZU5vZGUucHJlZmV0Y2hIZWFkIDogW251bGwsIG51bGxdLFxuICAgIHByZWZldGNoUnNjOiBzaG91bGRVc2VQcmVmZXRjaCA/IG9sZENhY2hlTm9kZS5wcmVmZXRjaFJzYyA6IG51bGwsXG4gICAgbG9hZGluZzogb2xkQ2FjaGVOb2RlLmxvYWRpbmcsXG5cbiAgICAvLyBUaGVzZSBhcmUgdGhlIGNsb25lZCBjaGlsZHJlbiB3ZSBjb21wdXRlZCBhYm92ZVxuICAgIHBhcmFsbGVsUm91dGVzOiBuZXdQYXJhbGxlbFJvdXRlcyxcblxuICAgIG5hdmlnYXRlZEF0OiBvbGRDYWNoZU5vZGUubmF2aWdhdGVkQXQsXG4gIH1cbn1cblxuY29uc3QgREVGRVJSRUQgPSBTeW1ib2woKVxuXG50eXBlIFBlbmRpbmdEZWZlcnJlZFJzYyA9IFByb21pc2U8UmVhY3QuUmVhY3ROb2RlPiAmIHtcbiAgc3RhdHVzOiAncGVuZGluZydcbiAgcmVzb2x2ZTogKHZhbHVlOiBSZWFjdC5SZWFjdE5vZGUpID0+IHZvaWRcbiAgcmVqZWN0OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICB0YWc6IFN5bWJvbFxufVxuXG50eXBlIEZ1bGZpbGxlZERlZmVycmVkUnNjID0gUHJvbWlzZTxSZWFjdC5SZWFjdE5vZGU+ICYge1xuICBzdGF0dXM6ICdmdWxmaWxsZWQnXG4gIHZhbHVlOiBSZWFjdC5SZWFjdE5vZGVcbiAgcmVzb2x2ZTogKHZhbHVlOiBSZWFjdC5SZWFjdE5vZGUpID0+IHZvaWRcbiAgcmVqZWN0OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICB0YWc6IFN5bWJvbFxufVxuXG50eXBlIFJlamVjdGVkRGVmZXJyZWRSc2MgPSBQcm9taXNlPFJlYWN0LlJlYWN0Tm9kZT4gJiB7XG4gIHN0YXR1czogJ3JlamVjdGVkJ1xuICByZWFzb246IGFueVxuICByZXNvbHZlOiAodmFsdWU6IFJlYWN0LlJlYWN0Tm9kZSkgPT4gdm9pZFxuICByZWplY3Q6IChlcnJvcjogYW55KSA9PiB2b2lkXG4gIHRhZzogU3ltYm9sXG59XG5cbnR5cGUgRGVmZXJyZWRSc2MgPVxuICB8IFBlbmRpbmdEZWZlcnJlZFJzY1xuICB8IEZ1bGZpbGxlZERlZmVycmVkUnNjXG4gIHwgUmVqZWN0ZWREZWZlcnJlZFJzY1xuXG4vLyBUaGlzIHR5cGUgZXhpc3RzIHRvIGRpc3Rpbmd1aXNoIGEgRGVmZXJyZWRSc2MgZnJvbSBhIEZsaWdodCBwcm9taXNlLiBJdCdzIGFcbi8vIGNvbXByb21pc2UgdG8gYXZvaWQgYWRkaW5nIGFuIGV4dHJhIGZpZWxkIG9uIGV2ZXJ5IENhY2hlIE5vZGUsIHdoaWNoIHdvdWxkIGJlXG4vLyBhd2t3YXJkIGJlY2F1c2UgdGhlIHByZS1QUFIgcGFydHMgb2YgY29kZWJhc2Ugd291bGQgbmVlZCB0byBhY2NvdW50IGZvciBpdCxcbi8vIHRvby4gV2UgY2FuIHJlbW92ZSBpdCBvbmNlIHR5cGUgQ2FjaGUgTm9kZSB0eXBlIGlzIG1vcmUgc2V0dGxlZC5cbmZ1bmN0aW9uIGlzRGVmZXJyZWRSc2ModmFsdWU6IGFueSk6IHZhbHVlIGlzIERlZmVycmVkUnNjIHtcbiAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLnRhZyA9PT0gREVGRVJSRURcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGVmZXJyZWRSc2MoKTogUGVuZGluZ0RlZmVycmVkUnNjIHtcbiAgbGV0IHJlc29sdmU6IGFueVxuICBsZXQgcmVqZWN0OiBhbnlcbiAgY29uc3QgcGVuZGluZ1JzYyA9IG5ldyBQcm9taXNlPFJlYWN0LlJlYWN0Tm9kZT4oKHJlcywgcmVqKSA9PiB7XG4gICAgcmVzb2x2ZSA9IHJlc1xuICAgIHJlamVjdCA9IHJlalxuICB9KSBhcyBQZW5kaW5nRGVmZXJyZWRSc2NcbiAgcGVuZGluZ1JzYy5zdGF0dXMgPSAncGVuZGluZydcbiAgcGVuZGluZ1JzYy5yZXNvbHZlID0gKHZhbHVlOiBSZWFjdC5SZWFjdE5vZGUpID0+IHtcbiAgICBpZiAocGVuZGluZ1JzYy5zdGF0dXMgPT09ICdwZW5kaW5nJykge1xuICAgICAgY29uc3QgZnVsZmlsbGVkUnNjOiBGdWxmaWxsZWREZWZlcnJlZFJzYyA9IHBlbmRpbmdSc2MgYXMgYW55XG4gICAgICBmdWxmaWxsZWRSc2Muc3RhdHVzID0gJ2Z1bGZpbGxlZCdcbiAgICAgIGZ1bGZpbGxlZFJzYy52YWx1ZSA9IHZhbHVlXG4gICAgICByZXNvbHZlKHZhbHVlKVxuICAgIH1cbiAgfVxuICBwZW5kaW5nUnNjLnJlamVjdCA9IChlcnJvcjogYW55KSA9PiB7XG4gICAgaWYgKHBlbmRpbmdSc2Muc3RhdHVzID09PSAncGVuZGluZycpIHtcbiAgICAgIGNvbnN0IHJlamVjdGVkUnNjOiBSZWplY3RlZERlZmVycmVkUnNjID0gcGVuZGluZ1JzYyBhcyBhbnlcbiAgICAgIHJlamVjdGVkUnNjLnN0YXR1cyA9ICdyZWplY3RlZCdcbiAgICAgIHJlamVjdGVkUnNjLnJlYXNvbiA9IGVycm9yXG4gICAgICByZWplY3QoZXJyb3IpXG4gICAgfVxuICB9XG4gIHBlbmRpbmdSc2MudGFnID0gREVGRVJSRURcbiAgcmV0dXJuIHBlbmRpbmdSc2Ncbn1cbiJdLCJuYW1lcyI6WyJhYm9ydFRhc2siLCJsaXN0ZW5Gb3JEeW5hbWljUmVxdWVzdCIsInN0YXJ0UFBSTmF2aWdhdGlvbiIsInVwZGF0ZUNhY2hlTm9kZU9uUG9wc3RhdGVSZXN0b3JhdGlvbiIsIk1QQV9OQVZJR0FUSU9OX1RBU0siLCJyb3V0ZSIsIm5vZGUiLCJkeW5hbWljUmVxdWVzdFRyZWUiLCJjaGlsZHJlbiIsIm5hdmlnYXRlZEF0Iiwib2xkQ2FjaGVOb2RlIiwib2xkUm91dGVyU3RhdGUiLCJuZXdSb3V0ZXJTdGF0ZSIsInByZWZldGNoRGF0YSIsInByZWZldGNoSGVhZCIsImlzUHJlZmV0Y2hIZWFkUGFydGlhbCIsImlzU2FtZVBhZ2VOYXZpZ2F0aW9uIiwic2Nyb2xsYWJsZVNlZ21lbnRzUmVzdWx0Iiwic2VnbWVudFBhdGgiLCJ1cGRhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24iLCJkaWRGaW5kUm9vdExheW91dCIsIm9sZFJvdXRlclN0YXRlQ2hpbGRyZW4iLCJuZXdSb3V0ZXJTdGF0ZUNoaWxkcmVuIiwicHJlZmV0Y2hEYXRhQ2hpbGRyZW4iLCJpc1Jvb3RMYXlvdXQiLCJvbGRQYXJhbGxlbFJvdXRlcyIsInBhcmFsbGVsUm91dGVzIiwicHJlZmV0Y2hQYXJhbGxlbFJvdXRlcyIsIk1hcCIsInBhdGNoZWRSb3V0ZXJTdGF0ZUNoaWxkcmVuIiwidGFza0NoaWxkcmVuIiwibmVlZHNEeW5hbWljUmVxdWVzdCIsImR5bmFtaWNSZXF1ZXN0VHJlZUNoaWxkcmVuIiwicGFyYWxsZWxSb3V0ZUtleSIsIm5ld1JvdXRlclN0YXRlQ2hpbGQiLCJvbGRSb3V0ZXJTdGF0ZUNoaWxkIiwib2xkU2VnbWVudE1hcENoaWxkIiwiZ2V0IiwicHJlZmV0Y2hEYXRhQ2hpbGQiLCJuZXdTZWdtZW50Q2hpbGQiLCJuZXdTZWdtZW50UGF0aENoaWxkIiwiY29uY2F0IiwibmV3U2VnbWVudEtleUNoaWxkIiwiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLCJvbGRTZWdtZW50Q2hpbGQiLCJ1bmRlZmluZWQiLCJvbGRDYWNoZU5vZGVDaGlsZCIsInRhc2tDaGlsZCIsIkRFRkFVTFRfU0VHTUVOVF9LRVkiLCJzcGF3blJldXNlZFRhc2siLCJiZWdpblJlbmRlcmluZ05ld1JvdXRlVHJlZSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJtYXRjaFNlZ21lbnQiLCJzZXQiLCJuZXdDYWNoZU5vZGVDaGlsZCIsIm5ld1NlZ21lbnRNYXBDaGlsZCIsInRhc2tDaGlsZFJvdXRlIiwiZHluYW1pY1JlcXVlc3RUcmVlQ2hpbGQiLCJuZXdDYWNoZU5vZGUiLCJsYXp5RGF0YSIsInJzYyIsInByZWZldGNoUnNjIiwiaGVhZCIsImxvYWRpbmciLCJwYXRjaFJvdXRlclN0YXRlV2l0aE5ld0NoaWxkcmVuIiwiZXhpc3RpbmdDYWNoZU5vZGUiLCJwb3NzaWJseVBhcnRpYWxQcmVmZXRjaEhlYWQiLCJpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQiLCJjcmVhdGVDYWNoZU5vZGVPbk5hdmlnYXRpb24iLCJyb3V0ZXJTdGF0ZSIsInJvdXRlclN0YXRlQ2hpbGRyZW4iLCJpc0xlYWZTZWdtZW50IiwiY2FjaGVOb2RlTmF2aWdhdGVkQXQiLCJEWU5BTUlDX1NUQUxFVElNRV9NUyIsImlzUHJlZmV0Y2hSc2NQYXJ0aWFsIiwic3Bhd25QZW5kaW5nVGFzayIsImV4aXN0aW5nQ2FjaGVOb2RlQ2hpbGRyZW4iLCJjYWNoZU5vZGVDaGlsZHJlbiIsInB1c2giLCJyb3V0ZXJTdGF0ZUNoaWxkIiwiZXhpc3RpbmdTZWdtZW50TWFwQ2hpbGQiLCJzZWdtZW50Q2hpbGQiLCJzZWdtZW50UGF0aENoaWxkIiwic2VnbWVudEtleUNoaWxkIiwiZXhpc3RpbmdDYWNoZU5vZGVDaGlsZCIsImJhc2VSb3V0ZXJTdGF0ZSIsIm5ld0NoaWxkcmVuIiwiY2xvbmUiLCJuZXdUYXNrIiwiY3JlYXRlUGVuZGluZ0NhY2hlTm9kZSIsInJldXNlZFJvdXRlclN0YXRlIiwidGFzayIsInJlc3BvbnNlUHJvbWlzZSIsInRoZW4iLCJmbGlnaHREYXRhIiwibm9ybWFsaXplZEZsaWdodERhdGEiLCJ0cmVlIiwic2VydmVyUm91dGVyU3RhdGUiLCJzZWVkRGF0YSIsImR5bmFtaWNEYXRhIiwiZHluYW1pY0hlYWQiLCJ3cml0ZUR5bmFtaWNEYXRhSW50b1BlbmRpbmdUYXNrIiwiZXJyb3IiLCJyb290VGFzayIsImkiLCJzZWdtZW50IiwidGFza1NlZ21lbnQiLCJmaW5pc2hUYXNrVXNpbmdEeW5hbWljRGF0YVBheWxvYWQiLCJ0YXNrTm9kZSIsImZpbmlzaFBlbmRpbmdDYWNoZU5vZGUiLCJzZXJ2ZXJDaGlsZHJlbiIsImR5bmFtaWNEYXRhQ2hpbGRyZW4iLCJzZXJ2ZXJSb3V0ZXJTdGF0ZUNoaWxkIiwiZHluYW1pY0RhdGFDaGlsZCIsInNpemUiLCJtYXliZVByZWZldGNoUnNjIiwibWF5YmVQcmVmZXRjaExvYWRpbmciLCJjcmVhdGVEZWZlcnJlZFJzYyIsImNhY2hlTm9kZSIsInRhc2tTdGF0ZSIsInNlcnZlclN0YXRlIiwidGFza1N0YXRlQ2hpbGRyZW4iLCJzZXJ2ZXJTdGF0ZUNoaWxkcmVuIiwiZGF0YUNoaWxkcmVuIiwidGFza1N0YXRlQ2hpbGQiLCJzZXJ2ZXJTdGF0ZUNoaWxkIiwiZGF0YUNoaWxkIiwic2VnbWVudE1hcENoaWxkIiwidGFza1NlZ21lbnRDaGlsZCIsInRhc2tTZWdtZW50S2V5Q2hpbGQiLCJjYWNoZU5vZGVDaGlsZCIsImFib3J0UGVuZGluZ0NhY2hlTm9kZSIsImR5bmFtaWNTZWdtZW50RGF0YSIsImlzRGVmZXJyZWRSc2MiLCJyZXNvbHZlIiwidmFsdWVzIiwicmVqZWN0IiwibmV3UGFyYWxsZWxSb3V0ZXMiLCJzaG91bGRVc2VQcmVmZXRjaCIsInN0YXR1cyIsIkRFRkVSUkVEIiwiU3ltYm9sIiwidmFsdWUiLCJ0YWciLCJwZW5kaW5nUnNjIiwiUHJvbWlzZSIsInJlcyIsInJlaiIsImZ1bGZpbGxlZFJzYyIsInJlamVjdGVkUnNjIiwicmVhc29uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/ppr-navigations.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js ***!
\*****************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DYNAMIC_STALETIME_MS: function() {\n return DYNAMIC_STALETIME_MS;\n },\n STATIC_STALETIME_MS: function() {\n return STATIC_STALETIME_MS;\n },\n createSeededPrefetchCacheEntry: function() {\n return createSeededPrefetchCacheEntry;\n },\n getOrCreatePrefetchCacheEntry: function() {\n return getOrCreatePrefetchCacheEntry;\n },\n prunePrefetchCache: function() {\n return prunePrefetchCache;\n }\n});\nconst _fetchserverresponse = __webpack_require__(/*! ./fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _prefetchreducer = __webpack_require__(/*! ./reducers/prefetch-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js\");\nconst INTERCEPTION_CACHE_KEY_MARKER = '%';\n/**\n * Creates a cache key for the router prefetch cache\n *\n * @param url - The URL being navigated to\n * @param nextUrl - an internal URL, primarily used for handling rewrites. Defaults to '/'.\n * @return The generated prefetch cache key.\n */ function createPrefetchCacheKeyImpl(url, includeSearchParams, prefix) {\n // Initially we only use the pathname as the cache key. We don't want to include\n // search params so that multiple URLs with the same search parameter can re-use\n // loading states.\n let pathnameFromUrl = url.pathname;\n // RSC responses can differ based on search params, specifically in the case where we aren't\n // returning a partial response (ie with `PrefetchKind.AUTO`).\n // In the auto case, since loading.js & layout.js won't have access to search params,\n // we can safely re-use that cache entry. But for full prefetches, we should not\n // re-use the cache entry as the response may differ.\n if (includeSearchParams) {\n // if we have a full prefetch, we can include the search param in the key,\n // as we'll be getting back a full response. The server might have read the search\n // params when generating the full response.\n pathnameFromUrl += url.search;\n }\n if (prefix) {\n return \"\" + prefix + INTERCEPTION_CACHE_KEY_MARKER + pathnameFromUrl;\n }\n return pathnameFromUrl;\n}\nfunction createPrefetchCacheKey(url, kind, nextUrl) {\n return createPrefetchCacheKeyImpl(url, kind === _routerreducertypes.PrefetchKind.FULL, nextUrl);\n}\nfunction getExistingCacheEntry(url, kind, nextUrl, prefetchCache, allowAliasing) {\n if (kind === void 0) kind = _routerreducertypes.PrefetchKind.TEMPORARY;\n // We first check if there's a more specific interception route prefetch entry\n // This is because when we detect a prefetch that corresponds with an interception route, we prefix it with nextUrl (see `createPrefetchCacheKey`)\n // to avoid conflicts with other pages that may have the same URL but render different things depending on the `Next-URL` header.\n for (const maybeNextUrl of [\n nextUrl,\n null\n ]){\n const cacheKeyWithParams = createPrefetchCacheKeyImpl(url, true, maybeNextUrl);\n const cacheKeyWithoutParams = createPrefetchCacheKeyImpl(url, false, maybeNextUrl);\n // First, we check if we have a cache entry that exactly matches the URL\n const cacheKeyToUse = url.search ? cacheKeyWithParams : cacheKeyWithoutParams;\n const existingEntry = prefetchCache.get(cacheKeyToUse);\n if (existingEntry && allowAliasing) {\n // We know we're returning an aliased entry when the pathname matches but the search params don't,\n const isAliased = existingEntry.url.pathname === url.pathname && existingEntry.url.search !== url.search;\n if (isAliased) {\n return {\n ...existingEntry,\n aliased: true\n };\n }\n return existingEntry;\n }\n // If the request contains search params, and we're not doing a full prefetch, we can return the\n // param-less entry if it exists.\n // This is technically covered by the check at the bottom of this function, which iterates over cache entries,\n // but lets us arrive there quicker in the param-full case.\n const entryWithoutParams = prefetchCache.get(cacheKeyWithoutParams);\n if (false) {}\n }\n // If we've gotten to this point, we didn't find a specific cache entry that matched\n // the request URL.\n // We attempt a partial match by checking if there's a cache entry with the same pathname.\n // Regardless of what we find, since it doesn't correspond with the requested URL, we'll mark it \"aliased\".\n // This will signal to the router that it should only apply the loading state on the prefetched data.\n if (false) {}\n return undefined;\n}\nfunction getOrCreatePrefetchCacheEntry(param) {\n let { url, nextUrl, tree, prefetchCache, kind, allowAliasing = true } = param;\n const existingCacheEntry = getExistingCacheEntry(url, kind, nextUrl, prefetchCache, allowAliasing);\n if (existingCacheEntry) {\n // Grab the latest status of the cache entry and update it\n existingCacheEntry.status = getPrefetchEntryCacheStatus(existingCacheEntry);\n // when `kind` is provided, an explicit prefetch was requested.\n // if the requested prefetch is \"full\" and the current cache entry wasn't, we want to re-prefetch with the new intent\n const switchedToFullPrefetch = existingCacheEntry.kind !== _routerreducertypes.PrefetchKind.FULL && kind === _routerreducertypes.PrefetchKind.FULL;\n if (switchedToFullPrefetch) {\n // If we switched to a full prefetch, validate that the existing cache entry contained partial data.\n // It's possible that the cache entry was seeded with full data but has a cache type of \"auto\" (ie when cache entries\n // are seeded but without a prefetch intent)\n existingCacheEntry.data.then((prefetchResponse)=>{\n const isFullPrefetch = Array.isArray(prefetchResponse.flightData) && prefetchResponse.flightData.some((flightData)=>{\n // If we started rendering from the root and we returned RSC data (seedData), we already had a full prefetch.\n return flightData.isRootRender && flightData.seedData !== null;\n });\n if (!isFullPrefetch) {\n return createLazyPrefetchEntry({\n tree,\n url,\n nextUrl,\n prefetchCache,\n // If we didn't get an explicit prefetch kind, we want to set a temporary kind\n // rather than assuming the same intent as the previous entry, to be consistent with how we\n // lazily create prefetch entries when intent is left unspecified.\n kind: kind != null ? kind : _routerreducertypes.PrefetchKind.TEMPORARY\n });\n }\n });\n }\n // If the existing cache entry was marked as temporary, it means it was lazily created when attempting to get an entry,\n // where we didn't have the prefetch intent. Now that we have the intent (in `kind`), we want to update the entry to the more accurate kind.\n if (kind && existingCacheEntry.kind === _routerreducertypes.PrefetchKind.TEMPORARY) {\n existingCacheEntry.kind = kind;\n }\n // We've determined that the existing entry we found is still valid, so we return it.\n return existingCacheEntry;\n }\n // If we didn't return an entry, create a new one.\n return createLazyPrefetchEntry({\n tree,\n url,\n nextUrl,\n prefetchCache,\n kind: kind || _routerreducertypes.PrefetchKind.TEMPORARY\n });\n}\n/*\n * Used to take an existing cache entry and prefix it with the nextUrl, if it exists.\n * This ensures that we don't have conflicting cache entries for the same URL (as is the case with route interception).\n */ function prefixExistingPrefetchCacheEntry(param) {\n let { url, nextUrl, prefetchCache, existingCacheKey } = param;\n const existingCacheEntry = prefetchCache.get(existingCacheKey);\n if (!existingCacheEntry) {\n // no-op -- there wasn't an entry to move\n return;\n }\n const newCacheKey = createPrefetchCacheKey(url, existingCacheEntry.kind, nextUrl);\n prefetchCache.set(newCacheKey, {\n ...existingCacheEntry,\n key: newCacheKey\n });\n prefetchCache.delete(existingCacheKey);\n return newCacheKey;\n}\nfunction createSeededPrefetchCacheEntry(param) {\n let { nextUrl, tree, prefetchCache, url, data, kind } = param;\n // The initial cache entry technically includes full data, but it isn't explicitly prefetched -- we just seed the\n // prefetch cache so that we can skip an extra prefetch request later, since we already have the data.\n // if the prefetch corresponds with an interception route, we use the nextUrl to prefix the cache key\n const prefetchCacheKey = data.couldBeIntercepted ? createPrefetchCacheKey(url, kind, nextUrl) : createPrefetchCacheKey(url, kind);\n const prefetchEntry = {\n treeAtTimeOfPrefetch: tree,\n data: Promise.resolve(data),\n kind,\n prefetchTime: Date.now(),\n lastUsedTime: Date.now(),\n staleTime: data.staleTime,\n key: prefetchCacheKey,\n status: _routerreducertypes.PrefetchCacheEntryStatus.fresh,\n url\n };\n prefetchCache.set(prefetchCacheKey, prefetchEntry);\n return prefetchEntry;\n}\n/**\n * Creates a prefetch entry entry and enqueues a fetch request to retrieve the data.\n */ function createLazyPrefetchEntry(param) {\n let { url, kind, tree, nextUrl, prefetchCache } = param;\n const prefetchCacheKey = createPrefetchCacheKey(url, kind);\n // initiates the fetch request for the prefetch and attaches a listener\n // to the promise to update the prefetch cache entry when the promise resolves (if necessary)\n const data = _prefetchreducer.prefetchQueue.enqueue(()=>(0, _fetchserverresponse.fetchServerResponse)(url, {\n flightRouterState: tree,\n nextUrl,\n prefetchKind: kind\n }).then((prefetchResponse)=>{\n // TODO: `fetchServerResponse` should be more tighly coupled to these prefetch cache operations\n // to avoid drift between this cache key prefixing logic\n // (which is currently directly influenced by the server response)\n let newCacheKey;\n if (prefetchResponse.couldBeIntercepted) {\n // Determine if we need to prefix the cache key with the nextUrl\n newCacheKey = prefixExistingPrefetchCacheEntry({\n url,\n existingCacheKey: prefetchCacheKey,\n nextUrl,\n prefetchCache\n });\n }\n // If the prefetch was a cache hit, we want to update the existing cache entry to reflect that it was a full prefetch.\n // This is because we know that a static response will contain the full RSC payload, and can be updated to respect the `static`\n // staleTime.\n if (prefetchResponse.prerendered) {\n const existingCacheEntry = prefetchCache.get(newCacheKey != null ? newCacheKey : prefetchCacheKey);\n if (existingCacheEntry) {\n existingCacheEntry.kind = _routerreducertypes.PrefetchKind.FULL;\n if (prefetchResponse.staleTime !== -1) {\n // This is the stale time that was collected by the server during\n // static generation. Use this in place of the default stale time.\n existingCacheEntry.staleTime = prefetchResponse.staleTime;\n }\n }\n }\n return prefetchResponse;\n }));\n const prefetchEntry = {\n treeAtTimeOfPrefetch: tree,\n data,\n kind,\n prefetchTime: Date.now(),\n lastUsedTime: null,\n staleTime: -1,\n key: prefetchCacheKey,\n status: _routerreducertypes.PrefetchCacheEntryStatus.fresh,\n url\n };\n prefetchCache.set(prefetchCacheKey, prefetchEntry);\n return prefetchEntry;\n}\nfunction prunePrefetchCache(prefetchCache) {\n for (const [href, prefetchCacheEntry] of prefetchCache){\n if (getPrefetchEntryCacheStatus(prefetchCacheEntry) === _routerreducertypes.PrefetchCacheEntryStatus.expired) {\n prefetchCache.delete(href);\n }\n }\n}\nconst DYNAMIC_STALETIME_MS = Number(\"0\") * 1000;\nconst STATIC_STALETIME_MS = Number(\"300\") * 1000;\nfunction getPrefetchEntryCacheStatus(param) {\n let { kind, prefetchTime, lastUsedTime, staleTime } = param;\n if (staleTime !== -1) {\n // `staleTime` is the value sent by the server during static generation.\n // When this is available, it takes precedence over any of the heuristics\n // that follow.\n //\n // TODO: When PPR is enabled, the server will *always* return a stale time\n // when prefetching. We should never use a prefetch entry that hasn't yet\n // received data from the server. So the only two cases should be 1) we use\n // the server-generated stale time 2) the unresolved entry is discarded.\n return Date.now() < prefetchTime + staleTime ? _routerreducertypes.PrefetchCacheEntryStatus.fresh : _routerreducertypes.PrefetchCacheEntryStatus.stale;\n }\n // We will re-use the cache entry data for up to the `dynamic` staletime window.\n if (Date.now() < (lastUsedTime != null ? lastUsedTime : prefetchTime) + DYNAMIC_STALETIME_MS) {\n return lastUsedTime ? _routerreducertypes.PrefetchCacheEntryStatus.reusable : _routerreducertypes.PrefetchCacheEntryStatus.fresh;\n }\n // For \"auto\" prefetching, we'll re-use only the loading boundary for up to `static` staletime window.\n // A stale entry will only re-use the `loading` boundary, not the full data.\n // This will trigger a \"lazy fetch\" for the full data.\n if (kind === _routerreducertypes.PrefetchKind.AUTO) {\n if (Date.now() < prefetchTime + STATIC_STALETIME_MS) {\n return _routerreducertypes.PrefetchCacheEntryStatus.stale;\n }\n }\n // for \"full\" prefetching, we'll re-use the cache entry data for up to `static` staletime window.\n if (kind === _routerreducertypes.PrefetchKind.FULL) {\n if (Date.now() < prefetchTime + STATIC_STALETIME_MS) {\n return _routerreducertypes.PrefetchCacheEntryStatus.reusable;\n }\n }\n return _routerreducertypes.PrefetchCacheEntryStatus.expired;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=prefetch-cache-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3ByZWZldGNoLWNhY2hlLXV0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTRZYUEsb0JBQW9CO2VBQXBCQTs7SUFHQUMsbUJBQW1CO2VBQW5CQTs7SUFuSUdDLDhCQUE4QjtlQUE5QkE7O0lBOUdBQyw2QkFBNkI7ZUFBN0JBOztJQStOQUMsa0JBQWtCO2VBQWxCQTs7O2lEQTFYVDtnREFNQTs2Q0FDdUI7QUFFOUIsTUFBTUMsZ0NBQWdDO0FBVXRDOzs7Ozs7Q0FNQyxHQUNELFNBQVNDLDJCQUNQQyxHQUFRLEVBQ1JDLG1CQUE0QixFQUM1QkMsTUFBc0I7SUFFdEIsZ0ZBQWdGO0lBQ2hGLGdGQUFnRjtJQUNoRixrQkFBa0I7SUFDbEIsSUFBSUMsa0JBQWtCSCxJQUFJSSxRQUFRO0lBRWxDLDRGQUE0RjtJQUM1Riw4REFBOEQ7SUFDOUQscUZBQXFGO0lBQ3JGLGdGQUFnRjtJQUNoRixxREFBcUQ7SUFDckQsSUFBSUgscUJBQXFCO1FBQ3ZCLDBFQUEwRTtRQUMxRSxrRkFBa0Y7UUFDbEYsNENBQTRDO1FBQzVDRSxtQkFBbUJILElBQUlLLE1BQU07SUFDL0I7SUFFQSxJQUFJSCxRQUFRO1FBQ1YsT0FBUSxLQUFFQSxTQUFTSixnQ0FBZ0NLO0lBQ3JEO0lBRUEsT0FBT0E7QUFDVDtBQUVBLFNBQVNHLHVCQUNQTixHQUFRLEVBQ1JPLElBQThCLEVBQzlCQyxPQUF1QjtJQUV2QixPQUFPVCwyQkFBMkJDLEtBQUtPLFNBQVNFLG9CQUFBQSxZQUFZLENBQUNDLElBQUksRUFBRUY7QUFDckU7QUFFQSxTQUFTRyxzQkFDUFgsR0FBUSxFQUNSTyxJQUEyQyxFQUMzQ0MsT0FBc0IsRUFDdEJJLGFBQThDLEVBQzlDQyxhQUFzQjtJQUh0Qk4sSUFBQUEsU0FBQUEsS0FBQUEsR0FBQUEsT0FBcUJFLG9CQUFBQSxZQUFZLENBQUNLLFNBQVM7SUFLM0MsOEVB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QXNEO0lBQ3RELElBQUkxRCxTQUFTRSxvQkFBQUEsWUFBWSxDQUFDdUUsSUFBSSxFQUFFO1FBQzlCLElBQUlwQixLQUFLQyxHQUFHLEtBQUtGLGVBQWVqRSxxQkFBcUI7WUFDbkQsT0FBT3NFLG9CQUFBQSx3QkFBd0IsQ0FBQ2MsS0FBSztRQUN2QztJQUNGO0lBRUEsaUdBQWlHO0lBQ2pHLElBQUl2RSxTQUFTRSxvQkFBQUEsWUFBWSxDQUFDQyxJQUFJLEVBQUU7UUFDOUIsSUFBSWtELEtBQUtDLEdBQUcsS0FBS0YsZUFBZWpFLHFCQUFxQjtZQUNuRCxPQUFPc0Usb0JBQUFBLHdCQUF3QixDQUFDZSxRQUFRO1FBQzFDO0lBQ0Y7SUFFQSxPQUFPZixvQkFBQUEsd0JBQXdCLENBQUNVLE9BQU87QUFDekMiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9wcmVmZXRjaC1jYWNoZS11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBmZXRjaFNlcnZlclJlc3BvbnNlLFxuICB0eXBlIEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQsXG59IGZyb20gJy4vZmV0Y2gtc2VydmVyLXJlc3BvbnNlJ1xuaW1wb3J0IHtcbiAgUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzLFxuICB0eXBlIFByZWZldGNoQ2FjaGVFbnRyeSxcbiAgUHJlZmV0Y2hLaW5kLFxuICB0eXBlIFJlYWRvbmx5UmVkdWNlclN0YXRlLFxufSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHsgcHJlZmV0Y2hRdWV1ZSB9IGZyb20gJy4vcmVkdWNlcnMvcHJlZmV0Y2gtcmVkdWNlcidcblxuY29uc3QgSU5URVJDRVBUSU9OX0NBQ0hFX0tFWV9NQVJLRVIgPSAnJSdcblxuZXhwb3J0IHR5cGUgQWxpYXNlZFByZWZldGNoQ2FjaGVFbnRyeSA9IFByZWZldGNoQ2FjaGVFbnRyeSAmIHtcbiAgLyoqIFRoaXMgaXMgYSBzcGVjaWFsIHByb3BlcnR5IHRoYXQgaW5kaWNhdGVzIGEgcHJlZmV0Y2ggZW50cnkgYXNzb2NpYXRlZCB3aXRoIGEgZGlmZmVyZW50IFVSTFxuICAgKiB3YXMgcmV0dXJuZWQgcmF0aGVyIHRoYW4gdGhlIHJlcXVlc3RlZCBVUkwuIFRoaXMgc2lnbmFscyB0byB0aGUgcm91dGVyIHRoYXQgaXQgc2hvdWxkIG9ubHlcbiAgICogYXBwbHkgdGhlIHBhcnQgdGhhdCBkb2Vzbid0IGRlcGVuZCBvbiBzZWFyY2hQYXJhbXMgKHNwZWNpZmljYWxseSB0aGUgbG9hZGluZyBzdGF0ZSkuXG4gICAqL1xuICBhbGlhc2VkPzogYm9vbGVhblxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBjYWNoZSBrZXkgZm9yIHRoZSByb3V0ZXIgcHJlZmV0Y2ggY2FjaGVcbiAqXG4gKiBAcGFyYW0gdXJsIC0gVGhlIFVSTCBiZWluZyBuYXZpZ2F0ZWQgdG9cbiAqIEBwYXJhbSBuZXh0VXJsIC0gYW4gaW50ZXJuYWwgVVJMLCBwcmltYXJpbHkgdXNlZCBmb3IgaGFuZGxpbmcgcmV3cml0ZXMuIERlZmF1bHRzIHRvICcvJy5cbiAqIEByZXR1cm4gVGhlIGdlbmVyYXRlZCBwcmVmZXRjaCBjYWNoZSBrZXkuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVByZWZldGNoQ2FjaGVLZXlJbXBsKFxuICB1cmw6IFVSTCxcbiAgaW5jbHVkZVNlYXJjaFBhcmFtczogYm9vbGVhbixcbiAgcHJlZml4Pzogc3RyaW5nIHwgbnVsbFxuKSB7XG4gIC8vIEluaXRpYWxseSB3ZSBvbmx5IHVzZSB0aGUgcGF0aG5hbWUgYXMgdGhlIGNhY2hlIGtleS4gV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlXG4gIC8vIHNlYXJjaCBwYXJhbXMgc28gdGhhdCBtdWx0aXBsZSBVUkxzIHdpdGggdGhlIHNhbWUgc2VhcmNoIHBhcmFtZXRlciBjYW4gcmUtdXNlXG4gIC8vIGxvYWRpbmcgc3RhdGVzLlxuICBsZXQgcGF0aG5hbWVGcm9tVXJsID0gdXJsLnBhdGhuYW1lXG5cbiAgLy8gUlNDIHJlc3BvbnNlcyBjYW4gZGlmZmVyIGJhc2VkIG9uIHNlYXJjaCBwYXJhbXMsIHNwZWNpZmljYWxseSBpbiB0aGUgY2FzZSB3aGVyZSB3ZSBhcmVuJ3RcbiAgLy8gcmV0dXJuaW5nIGEgcGFydGlhbCByZXNwb25zZSAoaWUgd2l0aCBgUHJlZmV0Y2hLaW5kLkFVVE9gKS5cbiAgLy8gSW4gdGhlIGF1dG8gY2FzZSwgc2luY2UgbG9hZGluZy5qcyAmIGxheW91dC5qcyB3b24ndCBoYXZlIGFjY2VzcyB0byBzZWFyY2ggcGFyYW1zLFxuICAvLyB3ZSBjYW4gc2FmZWx5IHJlLXVzZSB0aGF0IGNhY2hlIGVudHJ5LiBCdXQgZm9yIGZ1bGwgcHJlZmV0Y2hlcywgd2Ugc2hvdWxkIG5vdFxuICAvLyByZS11c2UgdGhlIGNhY2hlIGVudHJ5IGFzIHRoZSByZXNwb25zZSBtYXkgZGlmZmVyLlxuICBpZiAoaW5jbHVkZVNlYXJjaFBhcmFtcykge1xuICAgIC8vIGlmIHdlIGhhdmUgYSBmdWxsIHByZWZldGNoLCB3ZSBjYW4gaW5jbHVkZSB0aGUgc2VhcmNoIHBhcmFtIGluIHRoZSBrZXksXG4gICAgLy8gYXMgd2UnbGwgYmUgZ2V0dGluZyBiYWNrIGEgZnVsbCByZXNwb25zZS4gVGhlIHNlcnZlciBtaWdodCBoYXZlIHJlYWQgdGhlIHNlYXJjaFxuICAgIC8vIHBhcmFtcyB3aGVuIGdlbmVyYXRpbmcgdGhlIGZ1bGwgcmVzcG9uc2UuXG4gICAgcGF0aG5hbWVGcm9tVXJsICs9IHVybC5zZWFyY2hcbiAgfVxuXG4gIGlmIChwcmVmaXgpIHtcbiAgICByZXR1cm4gYCR7cHJlZml4fSR7SU5URVJDRVBUSU9OX0NBQ0hFX0tFWV9NQVJLRVJ9JHtwYXRobmFtZUZyb21Vcmx9YFxuICB9XG5cbiAgcmV0dXJuIHBhdGhuYW1lRnJvbVVybFxufVxuXG5mdW5jdGlvbiBjcmVhdGVQcmVmZXRjaENhY2hlS2V5KFxuICB1cmw6IFVSTCxcbiAga2luZDogUHJlZmV0Y2hLaW5kIHwgdW5kZWZpbmVkLFxuICBuZXh0VXJsPzogc3RyaW5nIHwgbnVsbFxuKSB7XG4gIHJldHVybiBjcmVhdGVQcmVmZXRjaENhY2hlS2V5SW1wbCh1cmwsIGtpbmQgPT09IFByZWZldGNoS2luZC5GVUxMLCBuZXh0VXJsKVxufVxuXG5mdW5jdGlvbiBnZXRFeGlzdGluZ0NhY2hlRW50cnkoXG4gIHVybDogVVJMLFxuICBraW5kOiBQcmVmZXRjaEtpbmQgPSBQcmVmZXRjaEtpbmQuVEVNUE9SQVJZLFxuICBuZXh0VXJsOiBzdHJpbmcgfCBudWxsLFxuICBwcmVmZXRjaENhY2hlOiBNYXA8c3RyaW5nLCBQcmVmZXRjaENhY2hlRW50cnk+LFxuICBhbGxvd0FsaWFzaW5nOiBib29sZWFuXG4pOiBBbGlhc2VkUHJlZmV0Y2hDYWNoZUVudHJ5IHwgdW5kZWZpbmVkIHtcbiAgLy8gV2UgZmlyc3QgY2hlY2sgaWYgdGhlcmUncyBhIG1vcmUgc3BlY2lmaWMgaW50ZXJjZXB0aW9uIHJvdXRlIHByZWZldGNoIGVudHJ5XG4gIC8vIFRoaXMgaXMgYmVjYXVzZSB3aGVuIHdlIGRldGVjdCBhIHByZWZldGNoIHRoYXQgY29ycmVzcG9uZHMgd2l0aCBhbiBpbnRlcmNlcHRpb24gcm91dGUsIHdlIHByZWZpeCBpdCB3aXRoIG5leHRVcmwgKHNlZSBgY3JlYXRlUHJlZmV0Y2hDYWNoZUtleWApXG4gIC8vIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIG90aGVyIHBhZ2VzIHRoYXQgbWF5IGhhdmUgdGhlIHNhbWUgVVJMIGJ1dCByZW5kZXIgZGlmZmVyZW50IHRoaW5ncyBkZXBlbmRpbmcgb24gdGhlIGBOZXh0LVVSTGAgaGVhZGVyLlxuICBmb3IgKGNvbnN0IG1heWJlTmV4dFVybCBvZiBbbmV4dFVybCwgbnVsbF0pIHtcbiAgICBjb25zdCBjYWNoZUtleVdpdGhQYXJhbXMgPSBjcmVhdGVQcmVmZXRjaENhY2hlS2V5SW1wbChcbiAgICAgIHVybCxcbiAgICAgIHRydWUsXG4gICAgICBtYXliZU5leHRVcmxcbiAgICApXG4gICAgY29uc3QgY2FjaGVLZXlXaXRob3V0UGFyYW1zID0gY3JlYXRlUHJlZmV0Y2hDYWNoZUtleUltcGwoXG4gICAgICB1cmwsXG4gICAgICBmYWxzZSxcbiAgICAgIG1heWJlTmV4dFVybFxuICAgIClcblxuICAgIC8vIEZpcnN0LCB3ZSBjaGVjayBpZiB3ZSBoYXZlIGEgY2FjaGUgZW50cnkgdGhhdCBleGFjdGx5IG1hdGNoZXMgdGhlIFVSTFxuICAgIGNvbnN0IGNhY2hlS2V5VG9Vc2UgPSB1cmwuc2VhcmNoXG4gICAgICA/IGNhY2hlS2V5V2l0aFBhcmFtc1xuICAgICAgOiBjYWNoZUtleVdpdGhvdXRQYXJhbXNcblxuICAgIGNvbnN0IGV4aXN0aW5nRW50cnkgPSBwcmVmZXRjaENhY2hlLmdldChjYWNoZUtleVRvVXNlKVxuICAgIGlmIChleGlzdGluZ0VudHJ5ICYmIGFsbG93QWxpYXNpbmcpIHtcbiAgICAgIC8vIFdlIGtub3cgd2UncmUgcmV0dXJuaW5nIGFuIGFsaWFzZWQgZW50cnkgd2hlbiB0aGUgcGF0aG5hbWUgbWF0Y2hlcyBidXQgdGhlIHNlYXJjaCBwYXJhbXMgZG9uJ3QsXG4gICAgICBjb25zdCBpc0FsaWFzZWQgPVxuICAgICAgICBleGlzdGluZ0VudHJ5LnVybC5wYXRobmFtZSA9PT0gdXJsLnBhdGhuYW1lICYmXG4gICAgICAgIGV4aXN0aW5nRW50cnkudXJsLnNlYXJjaCAhPT0gdXJsLnNlYXJjaFxuXG4gICAgICBpZiAoaXNBbGlhc2VkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZXhpc3RpbmdFbnRyeSxcbiAgICAgICAgICBhbGlhc2VkOiB0cnVlLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBleGlzdGluZ0VudHJ5XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIHJlcXVlc3QgY29udGFpbnMgc2VhcmNoIHBhcmFtcywgYW5kIHdlJ3JlIG5vdCBkb2luZyBhIGZ1bGwgcHJlZmV0Y2gsIHdlIGNhbiByZXR1cm4gdGhlXG4gICAgLy8gcGFyYW0tbGVzcyBlbnRyeSBpZiBpdCBleGlzdHMuXG4gICAgLy8gVGhpcyBpcyB0ZWNobmljYWxseSBjb3ZlcmVkIGJ5IHRoZSBjaGVjayBhdCB0aGUgYm90dG9tIG9mIHRoaXMgZnVuY3Rpb24sIHdoaWNoIGl0ZXJhdGVzIG92ZXIgY2FjaGUgZW50cmllcyxcbiAgICAvLyBidXQgbGV0cyB1cyBhcnJpdmUgdGhlcmUgcXVpY2tlciBpbiB0aGUgcGFyYW0tZnVsbCBjYXNlLlxuICAgIGNvbnN0IGVudHJ5V2l0aG91dFBhcmFtcyA9IHByZWZldGNoQ2FjaGUuZ2V0KGNhY2hlS2V5V2l0aG91dFBhcmFtcylcbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyAmJlxuICAgICAgYWxsb3dBbGlhc2luZyAmJlxuICAgICAgdXJsLnNlYXJjaCAmJlxuICAgICAga2luZCAhPT0gUHJlZmV0Y2hLaW5kLkZVTEwgJiZcbiAgICAgIGVudHJ5V2l0aG91dFBhcmFtcyAmJlxuICAgICAgLy8gV2Ugc2hvdWxkbid0IHJldHVybiB0aGUgYWxpYXNlZCBlbnRyeSBpZiBpdCB3YXMgcmVsb2NhdGVkIHRvIGEgbmV3IGNhY2hlIGtleS5cbiAgICAgIC8vIFNpbmNlIGl0J3MgcmV3cml0dGVuLCBpdCBjb3VsZCByZXNwb25kIHdpdGggYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBsb2FkaW5nIHN0YXRlLlxuICAgICAgIWVudHJ5V2l0aG91dFBhcmFtcy5rZXkuaW5jbHVkZXMoSU5URVJDRVBUSU9OX0NBQ0hFX0tFWV9NQVJLRVIpXG4gICAgKSB7XG4gICAgICByZXR1cm4geyAuLi5lbnRyeVdpdGhvdXRQYXJhbXMsIGFsaWFzZWQ6IHRydWUgfVxuICAgIH1cbiAgfVxuXG4gIC8vIElmIHdlJ3ZlIGdvdHRlbiB0byB0aGlzIHBvaW50LCB3ZSBkaWRuJ3QgZmluZCBhIHNwZWNpZmljIGNhY2hlIGVudHJ5IHRoYXQgbWF0Y2hlZFxuICAvLyB0aGUgcmVxdWVzdCBVUkwuXG4gIC8vIFdlIGF0dGVtcHQgYSBwYXJ0aWFsIG1hdGNoIGJ5IGNoZWNraW5nIGlmIHRoZXJlJ3MgYSBjYWNoZSBlbnRyeSB3aXRoIHRoZSBzYW1lIHBhdGhuYW1lLlxuICAvLyBSZWdhcmRsZXNzIG9mIHdoYXQgd2UgZmluZCwgc2luY2UgaXQgZG9lc24ndCBjb3JyZXNwb25kIHdpdGggdGhlIHJlcXVlc3RlZCBVUkwsIHdlJ2xsIG1hcmsgaXQgXCJhbGlhc2VkXCIuXG4gIC8vIFRoaXMgd2lsbCBzaWduYWwgdG8gdGhlIHJvdXRlciB0aGF0IGl0IHNob3VsZCBvbmx5IGFwcGx5IHRoZSBsb2FkaW5nIHN0YXRlIG9uIHRoZSBwcmVmZXRjaGVkIGRhdGEuXG4gIGlmIChcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyAmJlxuICAgIGtpbmQgIT09IFByZWZldGNoS2luZC5GVUxMICYmXG4gICAgYWxsb3dBbGlhc2luZ1xuICApIHtcbiAgICBmb3IgKGNvbnN0IGNhY2hlRW50cnkgb2YgcHJlZmV0Y2hDYWNoZS52YWx1ZXMoKSkge1xuICAgICAgaWYgKFxuICAgICAgICBjYWNoZUVudHJ5LnVybC5wYXRobmFtZSA9PT0gdXJsLnBhdGhuYW1lICYmXG4gICAgICAgIC8vIFdlIHNob3VsZG4ndCByZXR1cm4gdGhlIGFsaWFzZWQgZW50cnkgaWYgaXQgd2FzIHJlbG9jYXRlZCB0byBhIG5ldyBjYWNoZSBrZXkuXG4gICAgICAgIC8vIFNpbmNlIGl0J3MgcmV3cml0dGVuLCBpdCBjb3VsZCByZXNwb25kIHdpdGggYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBsb2FkaW5nIHN0YXRlLlxuICAgICAgICAhY2FjaGVFbnRyeS5rZXkuaW5jbHVkZXMoSU5URVJDRVBUSU9OX0NBQ0hFX0tFWV9NQVJLRVIpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uY2FjaGVFbnRyeSwgYWxpYXNlZDogdHJ1ZSB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIFJldHVybnMgYSBwcmVmZXRjaCBjYWNoZSBlbnRyeSBpZiBvbmUgZXhpc3RzLiBPdGhlcndpc2UgY3JlYXRlcyBhIG5ldyBvbmUgYW5kIGVucXVldWVzIGEgZmV0Y2ggcmVxdWVzdFxuICogdG8gcmV0cmlldmUgdGhlIHByZWZldGNoIGRhdGEgZnJvbSB0aGUgc2VydmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3JDcmVhdGVQcmVmZXRjaENhY2hlRW50cnkoe1xuICB1cmwsXG4gIG5leHRVcmwsXG4gIHRyZWUsXG4gIHByZWZldGNoQ2FjaGUsXG4gIGtpbmQsXG4gIGFsbG93QWxpYXNpbmcgPSB0cnVlLFxufTogUGljazxSZWFkb25seVJlZHVjZXJTdGF0ZSwgJ25leHRVcmwnIHwgJ3ByZWZldGNoQ2FjaGUnIHwgJ3RyZWUnPiAmIHtcbiAgdXJsOiBVUkxcbiAga2luZD86IFByZWZldGNoS2luZFxuICBhbGxvd0FsaWFzaW5nOiBib29sZWFuXG59KTogQWxpYXNlZFByZWZldGNoQ2FjaGVFbnRyeSB7XG4gIGNvbnN0IGV4aXN0aW5nQ2FjaGVFbnRyeSA9IGdldEV4aXN0aW5nQ2FjaGVFbnRyeShcbiAgICB1cmwsXG4gICAga2luZCxcbiAgICBuZXh0VXJsLFxuICAgIHByZWZldGNoQ2FjaGUsXG4gICAgYWxsb3dBbGlhc2luZ1xuICApXG5cbiAgaWYgKGV4aXN0aW5nQ2FjaGVFbnRyeSkge1xuICAgIC8vIEdyYWIgdGhlIGxhdGVzdCBzdGF0dXMgb2YgdGhlIGNhY2hlIGVudHJ5IGFuZCB1cGRhdGUgaXRcbiAgICBleGlzdGluZ0NhY2hlRW50cnkuc3RhdHVzID0gZ2V0UHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzKGV4aXN0aW5nQ2FjaGVFbnRyeSlcblxuICAgIC8vIHdoZW4gYGtpbmRgIGlzIHByb3ZpZGVkLCBhbiBleHBsaWNpdCBwcmVmZXRjaCB3YXMgcmVxdWVzdGVkLlxuICAgIC8vIGlmIHRoZSByZXF1ZXN0ZWQgcHJlZmV0Y2ggaXMgXCJmdWxsXCIgYW5kIHRoZSBjdXJyZW50IGNhY2hlIGVudHJ5IHdhc24ndCwgd2Ugd2FudCB0byByZS1wcmVmZXRjaCB3aXRoIHRoZSBuZXcgaW50ZW50XG4gICAgY29uc3Qgc3dpdGNoZWRUb0Z1bGxQcmVmZXRjaCA9XG4gICAgICBleGlzdGluZ0NhY2hlRW50cnkua2luZCAhPT0gUHJlZmV0Y2hLaW5kLkZVTEwgJiZcbiAgICAgIGtpbmQgPT09IFByZWZldGNoS2luZC5GVUxMXG5cbiAgICBpZiAoc3dpdGNoZWRUb0Z1bGxQcmVmZXRjaCkge1xuICAgICAgLy8gSWYgd2Ugc3dpdGNoZWQgdG8gYSBmdWxsIHByZWZldGNoLCB2YWxpZGF0ZSB0aGF0IHRoZSBleGlzdGluZyBjYWNoZSBlbnRyeSBjb250YWluZWQgcGFydGlhbCBkYXRhLlxuICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBjYWNoZSBlbnRyeSB3YXMgc2VlZGVkIHdpdGggZnVsbCBkYXRhIGJ1dCBoYXMgYSBjYWNoZSB0eXBlIG9mIFwiYXV0b1wiIChpZSB3aGVuIGNhY2hlIGVudHJpZXNcbiAgICAgIC8vIGFyZSBzZWVkZWQgYnV0IHdpdGhvdXQgYSBwcmVmZXRjaCBpbnRlbnQpXG4gICAgICBleGlzdGluZ0NhY2hlRW50cnkuZGF0YS50aGVuKChwcmVmZXRjaFJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzRnVsbFByZWZldGNoID1cbiAgICAgICAgICBBcnJheS5pc0FycmF5KHByZWZldGNoUmVzcG9uc2UuZmxpZ2h0RGF0YSkgJiZcbiAgICAgICAgICBwcmVmZXRjaFJlc3BvbnNlLmZsaWdodERhdGEuc29tZSgoZmxpZ2h0RGF0YSkgPT4ge1xuICAgICAgICAgICAgLy8gSWYgd2Ugc3RhcnRlZCByZW5kZXJpbmcgZnJvbSB0aGUgcm9vdCBhbmQgd2UgcmV0dXJuZWQgUlNDIGRhdGEgKHNlZWREYXRhKSwgd2UgYWxyZWFkeSBoYWQgYSBmdWxsIHByZWZldGNoLlxuICAgICAgICAgICAgcmV0dXJuIGZsaWdodERhdGEuaXNSb290UmVuZGVyICYmIGZsaWdodERhdGEuc2VlZERhdGEgIT09IG51bGxcbiAgICAgICAgICB9KVxuXG4gICAgICAgIGlmICghaXNGdWxsUHJlZmV0Y2gpIHtcbiAgICAgICAgICByZXR1cm4gY3JlYXRlTGF6eVByZWZldGNoRW50cnkoe1xuICAgICAgICAgICAgdHJlZSxcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIG5leHRVcmwsXG4gICAgICAgICAgICBwcmVmZXRjaENhY2hlLFxuICAgICAgICAgICAgLy8gSWYgd2UgZGlkbid0IGdldCBhbiBleHBsaWNpdCBwcmVmZXRjaCBraW5kLCB3ZSB3YW50IHRvIHNldCBhIHRlbXBvcmFyeSBraW5kXG4gICAgICAgICAgICAvLyByYXRoZXIgdGhhbiBhc3N1bWluZyB0aGUgc2FtZSBpbnRlbnQgYXMgdGhlIHByZXZpb3VzIGVudHJ5LCB0byBiZSBjb25zaXN0ZW50IHdpdGggaG93IHdlXG4gICAgICAgICAgICAvLyBsYXppbHkgY3JlYXRlIHByZWZldGNoIGVudHJpZXMgd2hlbiBpbnRlbnQgaXMgbGVmdCB1bnNwZWNpZmllZC5cbiAgICAgICAgICAgIGtpbmQ6IGtpbmQgPz8gUHJlZmV0Y2hLaW5kLlRFTVBPUkFSWSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIElmIHRoZSBleGlzdGluZyBjYWNoZSBlbnRyeSB3YXMgbWFya2VkIGFzIHRlbXBvcmFyeSwgaXQgbWVhbnMgaXQgd2FzIGxhemlseSBjcmVhdGVkIHdoZW4gYXR0ZW1wdGluZyB0byBnZXQgYW4gZW50cnksXG4gICAgLy8gd2hlcmUgd2UgZGlkbid0IGhhdmUgdGhlIHByZWZldGNoIGludGVudC4gTm93IHRoYXQgd2UgaGF2ZSB0aGUgaW50ZW50IChpbiBga2luZGApLCB3ZSB3YW50IHRvIHVwZGF0ZSB0aGUgZW50cnkgdG8gdGhlIG1vcmUgYWNjdXJhdGUga2luZC5cbiAgICBpZiAoa2luZCAmJiBleGlzdGluZ0NhY2hlRW50cnkua2luZCA9PT0gUHJlZmV0Y2hLaW5kLlRFTVBPUkFSWSkge1xuICAgICAgZXhpc3RpbmdDYWNoZUVudHJ5LmtpbmQgPSBraW5kXG4gICAgfVxuXG4gICAgLy8gV2UndmUgZGV0ZXJtaW5lZCB0aGF0IHRoZSBleGlzdGluZyBlbnRyeSB3ZSBmb3VuZCBpcyBzdGlsbCB2YWxpZCwgc28gd2UgcmV0dXJuIGl0LlxuICAgIHJldHVybiBleGlzdGluZ0NhY2hlRW50cnlcbiAgfVxuXG4gIC8vIElmIHdlIGRpZG4ndCByZXR1cm4gYW4gZW50cnksIGNyZWF0ZSBhIG5ldyBvbmUuXG4gIHJldHVybiBjcmVhdGVMYXp5UHJlZmV0Y2hFbnRyeSh7XG4gICAgdHJlZSxcbiAgICB1cmwsXG4gICAgbmV4dFVybCxcbiAgICBwcmVmZXRjaENhY2hlLFxuICAgIGtpbmQ6IGtpbmQgfHwgUHJlZmV0Y2hLaW5kLlRFTVBPUkFSWSxcbiAgfSlcbn1cblxuLypcbiAqIFVzZWQgdG8gdGFrZSBhbiBleGlzdGluZyBjYWNoZSBlbnRyeSBhbmQgcHJlZml4IGl0IHdpdGggdGhlIG5leHRVcmwsIGlmIGl0IGV4aXN0cy5cbiAqIFRoaXMgZW5zdXJlcyB0aGF0IHdlIGRvbid0IGhhdmUgY29uZmxpY3RpbmcgY2FjaGUgZW50cmllcyBmb3IgdGhlIHNhbWUgVVJMIChhcyBpcyB0aGUgY2FzZSB3aXRoIHJvdXRlIGludGVyY2VwdGlvbikuXG4gKi9cbmZ1bmN0aW9uIHByZWZpeEV4aXN0aW5nUHJlZmV0Y2hDYWNoZUVudHJ5KHtcbiAgdXJsLFxuICBuZXh0VXJsLFxuICBwcmVmZXRjaENhY2hlLFxuICBleGlzdGluZ0NhY2hlS2V5LFxufTogUGljazxSZWFkb25seVJlZHVjZXJTdGF0ZSwgJ25leHRVcmwnIHwgJ3ByZWZldGNoQ2FjaGUnPiAmIHtcbiAgdXJsOiBVUkxcbiAgZXhpc3RpbmdDYWNoZUtleTogc3RyaW5nXG59KSB7XG4gIGNvbnN0IGV4aXN0aW5nQ2FjaGVFbnRyeSA9IHByZWZldGNoQ2FjaGUuZ2V0KGV4aXN0aW5nQ2FjaGVLZXkpXG4gIGlmICghZXhpc3RpbmdDYWNoZUVudHJ5KSB7XG4gICAgLy8gbm8tb3AgLS0gdGhlcmUgd2Fzbid0IGFuIGVudHJ5IHRvIG1vdmVcbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IG5ld0NhY2hlS2V5ID0gY3JlYXRlUHJlZmV0Y2hDYWNoZUtleShcbiAgICB1cmwsXG4gICAgZXhpc3RpbmdDYWNoZUVudHJ5LmtpbmQsXG4gICAgbmV4dFVybFxuICApXG4gIHByZWZldGNoQ2FjaGUuc2V0KG5ld0NhY2hlS2V5LCB7IC4uLmV4aXN0aW5nQ2FjaGVFbnRyeSwga2V5OiBuZXdDYWNoZUtleSB9KVxuICBwcmVmZXRjaENhY2hlLmRlbGV0ZShleGlzdGluZ0NhY2hlS2V5KVxuXG4gIHJldHVybiBuZXdDYWNoZUtleVxufVxuXG4vKipcbiAqIFVzZSB0byBzZWVkIHRoZSBwcmVmZXRjaCBjYWNoZSB3aXRoIGRhdGEgdGhhdCBoYXMgYWxyZWFkeSBiZWVuIGZldGNoZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWVkZWRQcmVmZXRjaENhY2hlRW50cnkoe1xuICBuZXh0VXJsLFxuICB0cmVlLFxuICBwcmVmZXRjaENhY2hlLFxuICB1cmwsXG4gIGRhdGEsXG4gIGtpbmQsXG59OiBQaWNrPFJlYWRvbmx5UmVkdWNlclN0YXRlLCAnbmV4dFVybCcgfCAndHJlZScgfCAncHJlZmV0Y2hDYWNoZSc+ICYge1xuICB1cmw6IFVSTFxuICBkYXRhOiBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0XG4gIGtpbmQ6IFByZWZldGNoS2luZFxufSkge1xuICAvLyBUaGUgaW5pdGlhbCBjYWNoZSBlbnRyeSB0ZWNobmljYWxseSBpbmNsdWRlcyBmdWxsIGRhdGEsIGJ1dCBpdCBpc24ndCBleHBsaWNpdGx5IHByZWZldGNoZWQgLS0gd2UganVzdCBzZWVkIHRoZVxuICAvLyBwcmVmZXRjaCBjYWNoZSBzbyB0aGF0IHdlIGNhbiBza2lwIGFuIGV4dHJhIHByZWZldGNoIHJlcXVlc3QgbGF0ZXIsIHNpbmNlIHdlIGFscmVhZHkgaGF2ZSB0aGUgZGF0YS5cbiAgLy8gaWYgdGhlIHByZWZldGNoIGNvcnJlc3BvbmRzIHdpdGggYW4gaW50ZXJjZXB0aW9uIHJvdXRlLCB3ZSB1c2UgdGhlIG5leHRVcmwgdG8gcHJlZml4IHRoZSBjYWNoZSBrZXlcbiAgY29uc3QgcHJlZmV0Y2hDYWNoZUtleSA9IGRhdGEuY291bGRCZUludGVyY2VwdGVkXG4gICAgPyBjcmVhdGVQcmVmZXRjaENhY2hlS2V5KHVybCwga2luZCwgbmV4dFVybClcbiAgICA6IGNyZWF0ZVByZWZldGNoQ2FjaGVLZXkodXJsLCBraW5kKVxuXG4gIGNvbnN0IHByZWZldGNoRW50cnkgPSB7XG4gICAgdHJlZUF0VGltZU9mUHJlZmV0Y2g6IHRyZWUsXG4gICAgZGF0YTogUHJvbWlzZS5yZXNvbHZlKGRhdGEpLFxuICAgIGtpbmQsXG4gICAgcHJlZmV0Y2hUaW1lOiBEYXRlLm5vdygpLFxuICAgIGxhc3RVc2VkVGltZTogRGF0ZS5ub3coKSxcbiAgICBzdGFsZVRpbWU6IGRhdGEuc3RhbGVUaW1lLFxuICAgIGtleTogcHJlZmV0Y2hDYWNoZUtleSxcbiAgICBzdGF0dXM6IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cy5mcmVzaCxcbiAgICB1cmwsXG4gIH0gc2F0aXNmaWVzIFByZWZldGNoQ2FjaGVFbnRyeVxuXG4gIHByZWZldGNoQ2FjaGUuc2V0KHByZWZldGNoQ2FjaGVLZXksIHByZWZldGNoRW50cnkpXG5cbiAgcmV0dXJuIHByZWZldGNoRW50cnlcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgcHJlZmV0Y2ggZW50cnkgZW50cnkgYW5kIGVucXVldWVzIGEgZmV0Y2ggcmVxdWVzdCB0byByZXRyaWV2ZSB0aGUgZGF0YS5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlTGF6eVByZWZldGNoRW50cnkoe1xuICB1cmwsXG4gIGtpbmQsXG4gIHRyZWUsXG4gIG5leHRVcmwsXG4gIHByZWZldGNoQ2FjaGUsXG59OiBQaWNrPFJlYWRvbmx5UmVkdWNlclN0YXRlLCAnbmV4dFVybCcgfCAndHJlZScgfCAncHJlZmV0Y2hDYWNoZSc+ICYge1xuICB1cmw6IFVSTFxuICBraW5kOiBQcmVmZXRjaEtpbmRcbn0pOiBQcmVmZXRjaENhY2hlRW50cnkge1xuICBjb25zdCBwcmVmZXRjaENhY2hlS2V5ID0gY3JlYXRlUHJlZmV0Y2hDYWNoZUtleSh1cmwsIGtpbmQpXG5cbiAgLy8gaW5pdGlhdGVzIHRoZSBmZXRjaCByZXF1ZXN0IGZvciB0aGUgcHJlZmV0Y2ggYW5kIGF0dGFjaGVzIGEgbGlzdGVuZXJcbiAgLy8gdG8gdGhlIHByb21pc2UgdG8gdXBkYXRlIHRoZSBwcmVmZXRjaCBjYWNoZSBlbnRyeSB3aGVuIHRoZSBwcm9taXNlIHJlc29sdmVzIChpZiBuZWNlc3NhcnkpXG4gIGNvbnN0IGRhdGEgPSBwcmVmZXRjaFF1ZXVlLmVucXVldWUoKCkgPT5cbiAgICBmZXRjaFNlcnZlclJlc3BvbnNlKHVybCwge1xuICAgICAgZmxpZ2h0Um91dGVyU3RhdGU6IHRyZWUsXG4gICAgICBuZXh0VXJsLFxuICAgICAgcHJlZmV0Y2hLaW5kOiBraW5kLFxuICAgIH0pLnRoZW4oKHByZWZldGNoUmVzcG9uc2UpID0+IHtcbiAgICAgIC8vIFRPRE86IGBmZXRjaFNlcnZlclJlc3BvbnNlYCBzaG91bGQgYmUgbW9yZSB0aWdobHkgY291cGxlZCB0byB0aGVzZSBwcmVmZXRjaCBjYWNoZSBvcGVyYXRpb25zXG4gICAgICAvLyB0byBhdm9pZCBkcmlmdCBiZXR3ZWVuIHRoaXMgY2FjaGUga2V5IHByZWZpeGluZyBsb2dpY1xuICAgICAgLy8gKHdoaWNoIGlzIGN1cnJlbnRseSBkaXJlY3RseSBpbmZsdWVuY2VkIGJ5IHRoZSBzZXJ2ZXIgcmVzcG9uc2UpXG4gICAgICBsZXQgbmV3Q2FjaGVLZXlcblxuICAgICAgaWYgKHByZWZldGNoUmVzcG9uc2UuY291bGRCZUludGVyY2VwdGVkKSB7XG4gICAgICAgIC8vIERldGVybWluZSBpZiB3ZSBuZWVkIHRvIHByZWZpeCB0aGUgY2FjaGUga2V5IHdpdGggdGhlIG5leHRVcmxcbiAgICAgICAgbmV3Q2FjaGVLZXkgPSBwcmVmaXhFeGlzdGluZ1ByZWZldGNoQ2FjaGVFbnRyeSh7XG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIGV4aXN0aW5nQ2FjaGVLZXk6IHByZWZldGNoQ2FjaGVLZXksXG4gICAgICAgICAgbmV4dFVybCxcbiAgICAgICAgICBwcmVmZXRjaENhY2hlLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGUgcHJlZmV0Y2ggd2FzIGEgY2FjaGUgaGl0LCB3ZSB3YW50IHRvIHVwZGF0ZSB0aGUgZXhpc3RpbmcgY2FjaGUgZW50cnkgdG8gcmVmbGVjdCB0aGF0IGl0IHdhcyBhIGZ1bGwgcHJlZmV0Y2guXG4gICAgICAvLyBUaGlzIGlzIGJlY2F1c2Ugd2Uga25vdyB0aGF0IGEgc3RhdGljIHJlc3BvbnNlIHdpbGwgY29udGFpbiB0aGUgZnVsbCBSU0MgcGF5bG9hZCwgYW5kIGNhbiBiZSB1cGRhdGVkIHRvIHJlc3BlY3QgdGhlIGBzdGF0aWNgXG4gICAgICAvLyBzdGFsZVRpbWUuXG4gICAgICBpZiAocHJlZmV0Y2hSZXNwb25zZS5wcmVyZW5kZXJlZCkge1xuICAgICAgICBjb25zdCBleGlzdGluZ0NhY2hlRW50cnkgPSBwcmVmZXRjaENhY2hlLmdldChcbiAgICAgICAgICAvLyBpZiB3ZSBwcmVmaXhlZCB0aGUgY2FjaGUga2V5IGR1ZSB0byByb3V0ZSBpbnRlcmNlcHRpb24sIHdlIHdhbnQgdG8gdXNlIHRoZSBuZXcga2V5LiBPdGhlcndpc2Ugd2UgdXNlIHRoZSBvcmlnaW5hbCBrZXlcbiAgICAgICAgICBuZXdDYWNoZUtleSA/PyBwcmVmZXRjaENhY2hlS2V5XG4gICAgICAgIClcbiAgICAgICAgaWYgKGV4aXN0aW5nQ2FjaGVFbnRyeSkge1xuICAgICAgICAgIGV4aXN0aW5nQ2FjaGVFbnRyeS5raW5kID0gUHJlZmV0Y2hLaW5kLkZVTExcbiAgICAgICAgICBpZiAocHJlZmV0Y2hSZXNwb25zZS5zdGFsZVRpbWUgIT09IC0xKSB7XG4gICAgICAgICAgICAvLyBUaGlzIGlzIHRoZSBzdGFsZSB0aW1lIHRoYXQgd2FzIGNvbGxlY3RlZCBieSB0aGUgc2VydmVyIGR1cmluZ1xuICAgICAgICAgICAgLy8gc3RhdGljIGdlbmVyYXRpb24uIFVzZSB0aGlzIGluIHBsYWNlIG9mIHRoZSBkZWZhdWx0IHN0YWxlIHRpbWUuXG4gICAgICAgICAgICBleGlzdGluZ0NhY2hlRW50cnkuc3RhbGVUaW1lID0gcHJlZmV0Y2hSZXNwb25zZS5zdGFsZVRpbWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHByZWZldGNoUmVzcG9uc2VcbiAgICB9KVxuICApXG5cbiAgY29uc3QgcHJlZmV0Y2hFbnRyeSA9IHtcbiAgICB0cmVlQXRUaW1lT2ZQcmVmZXRjaDogdHJlZSxcbiAgICBkYXRhLFxuICAgIGtpbmQsXG4gICAgcHJlZmV0Y2hUaW1lOiBEYXRlLm5vdygpLFxuICAgIGxhc3RVc2VkVGltZTogbnVsbCxcbiAgICBzdGFsZVRpbWU6IC0xLFxuICAgIGtleTogcHJlZmV0Y2hDYWNoZUtleSxcbiAgICBzdGF0dXM6IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cy5mcmVzaCxcbiAgICB1cmwsXG4gIH1cblxuICBwcmVmZXRjaENhY2hlLnNldChwcmVmZXRjaENhY2hlS2V5LCBwcmVmZXRjaEVudHJ5KVxuXG4gIHJldHVybiBwcmVmZXRjaEVudHJ5XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcnVuZVByZWZldGNoQ2FjaGUoXG4gIHByZWZldGNoQ2FjaGU6IFJlYWRvbmx5UmVkdWNlclN0YXRlWydwcmVmZXRjaENhY2hlJ11cbikge1xuICBmb3IgKGNvbnN0IFtocmVmLCBwcmVmZXRjaENhY2hlRW50cnldIG9mIHByZWZldGNoQ2FjaGUpIHtcbiAgICBpZiAoXG4gICAgICBnZXRQcmVmZXRjaEVudHJ5Q2FjaGVTdGF0dXMocHJlZmV0Y2hDYWNoZUVudHJ5KSA9PT1cbiAgICAgIFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cy5leHBpcmVkXG4gICAgKSB7XG4gICAgICBwcmVmZXRjaENhY2hlLmRlbGV0ZShocmVmKVxuICAgIH1cbiAgfVxufVxuXG4vLyBUaGVzZSB2YWx1ZXMgYXJlIHNldCBieSBgZGVmaW5lLWVudi1wbHVnaW5gIChiYXNlZCBvbiBgbmV4dENvbmZpZy5leHBlcmltZW50YWwuc3RhbGVUaW1lc2ApXG4vLyBhbmQgZGVmYXVsdCB0byA1IG1pbnV0ZXMgKHN0YXRpYykgLyAwIHNlY29uZHMgKGR5bmFtaWMpXG5leHBvcnQgY29uc3QgRFlOQU1JQ19TVEFMRVRJTUVfTVMgPVxuICBOdW1iZXIocHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9ST1VURVJfRFlOQU1JQ19TVEFMRVRJTUUpICogMTAwMFxuXG5leHBvcnQgY29uc3QgU1RBVElDX1NUQUxFVElNRV9NUyA9XG4gIE51bWJlcihwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1JPVVRFUl9TVEFUSUNfU1RBTEVUSU1FKSAqIDEwMDBcblxuZnVuY3Rpb24gZ2V0UHJlZmV0Y2hFbnRyeUNhY2hlU3RhdHVzKHtcbiAga2luZCxcbiAgcHJlZmV0Y2hUaW1lLFxuICBsYXN0VXNlZFRpbWUsXG4gIHN0YWxlVGltZSxcbn06IFByZWZldGNoQ2FjaGVFbnRyeSk6IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cyB7XG4gIGlmIChzdGFsZVRpbWUgIT09IC0xKSB7XG4gICAgLy8gYHN0YWxlVGltZWAgaXMgdGhlIHZhbHVlIHNlbnQgYnkgdGhlIHNlcnZlciBkdXJpbmcgc3RhdGljIGdlbmVyYXRpb24uXG4gICAgLy8gV2hlbiB0aGlzIGlzIGF2YWlsYWJsZSwgaXQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGFueSBvZiB0aGUgaGV1cmlzdGljc1xuICAgIC8vIHRoYXQgZm9sbG93LlxuICAgIC8vXG4gICAgLy8gVE9ETzogV2hlbiBQUFIgaXMgZW5hYmxlZCwgdGhlIHNlcnZlciB3aWxsICphbHdheXMqIHJldHVybiBhIHN0YWxlIHRpbWVcbiAgICAvLyB3aGVuIHByZWZldGNoaW5nLiBXZSBzaG91bGQgbmV2ZXIgdXNlIGEgcHJlZmV0Y2ggZW50cnkgdGhhdCBoYXNuJ3QgeWV0XG4gICAgLy8gcmVjZWl2ZWQgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuIFNvIHRoZSBvbmx5IHR3byBjYXNlcyBzaG91bGQgYmUgMSkgd2UgdXNlXG4gICAgLy8gdGhlIHNlcnZlci1nZW5lcmF0ZWQgc3RhbGUgdGltZSAyKSB0aGUgdW5yZXNvbHZlZCBlbnRyeSBpcyBkaXNjYXJkZWQuXG4gICAgcmV0dXJuIERhdGUubm93KCkgPCBwcmVmZXRjaFRpbWUgKyBzdGFsZVRpbWVcbiAgICAgID8gUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzLmZyZXNoXG4gICAgICA6IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cy5zdGFsZVxuICB9XG5cbiAgLy8gV2Ugd2lsbCByZS11c2UgdGhlIGNhY2hlIGVudHJ5IGRhdGEgZm9yIHVwIHRvIHRoZSBgZHluYW1pY2Agc3RhbGV0aW1lIHdpbmRvdy5cbiAgaWYgKERhdGUubm93KCkgPCAobGFzdFVzZWRUaW1lID8/IHByZWZldGNoVGltZSkgKyBEWU5BTUlDX1NUQUxFVElNRV9NUykge1xuICAgIHJldHVybiBsYXN0VXNlZFRpbWVcbiAgICAgID8gUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzLnJldXNhYmxlXG4gICAgICA6IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cy5mcmVzaFxuICB9XG5cbiAgLy8gRm9yIFwiYXV0b1wiIHByZWZldGNoaW5nLCB3ZSdsbCByZS11c2Ugb25seSB0aGUgbG9hZGluZyBib3VuZGFyeSBmb3IgdXAgdG8gYHN0YXRpY2Agc3RhbGV0aW1lIHdpbmRvdy5cbiAgLy8gQSBzdGFsZSBlbnRyeSB3aWxsIG9ubHkgcmUtdXNlIHRoZSBgbG9hZGluZ2AgYm91bmRhcnksIG5vdCB0aGUgZnVsbCBkYXRhLlxuICAvLyBUaGlzIHdpbGwgdHJpZ2dlciBhIFwibGF6eSBmZXRjaFwiIGZvciB0aGUgZnVsbCBkYXRhLlxuICBpZiAoa2luZCA9PT0gUHJlZmV0Y2hLaW5kLkFVVE8pIHtcbiAgICBpZiAoRGF0ZS5ub3coKSA8IHByZWZldGNoVGltZSArIFNUQVRJQ19TVEFMRVRJTUVfTVMpIHtcbiAgICAgIHJldHVybiBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMuc3RhbGVcbiAgICB9XG4gIH1cblxuICAvLyBmb3IgXCJmdWxsXCIgcHJlZmV0Y2hpbmcsIHdlJ2xsIHJlLXVzZSB0aGUgY2FjaGUgZW50cnkgZGF0YSBmb3IgdXAgdG8gYHN0YXRpY2Agc3RhbGV0aW1lIHdpbmRvdy5cbiAgaWYgKGtpbmQgPT09IFByZWZldGNoS2luZC5GVUxMKSB7XG4gICAgaWYgKERhdGUubm93KCkgPCBwcmVmZXRjaFRpbWUgKyBTVEFUSUNfU1RBTEVUSU1FX01TKSB7XG4gICAgICByZXR1cm4gUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzLnJldXNhYmxlXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cy5leHBpcmVkXG59XG4iXSwibmFtZXMiOlsiRFlOQU1JQ19TVEFMRVRJTUVfTVMiLCJTVEFUSUNfU1RBTEVUSU1FX01TIiwiY3JlYXRlU2VlZGVkUHJlZmV0Y2hDYWNoZUVudHJ5IiwiZ2V0T3JDcmVhdGVQcmVmZXRjaENhY2hlRW50cnkiLCJwcnVuZVByZWZldGNoQ2FjaGUiLCJJTlRFUkNFUFRJT05fQ0FDSEVfS0VZX01BUktFUiIsImNyZWF0ZVByZWZldGNoQ2FjaGVLZXlJbXBsIiwidXJsIiwiaW5jbHVkZVNlYXJjaFBhcmFtcyIsInByZWZpeCIsInBhdGhuYW1lRnJvbVVybCIsInBhdGhuYW1lIiwic2VhcmNoIiwiY3JlYXRlUHJlZmV0Y2hDYWNoZUtleSIsImtpbmQiLCJuZXh0VXJsIiwiUHJlZmV0Y2hLaW5kIiwiRlVMTCIsImdldEV4aXN0aW5nQ2FjaGVFbnRyeSIsInByZWZldGNoQ2FjaGUiLCJhbGxvd0FsaWFzaW5nIiwiVEVNUE9SQVJZIiwibWF5YmVOZXh0VXJsIiwiY2FjaGVLZXlXaXRoUGFyYW1zIiwiY2FjaGVLZXlXaXRob3V0UGFyYW1zIiwiY2FjaGVLZXlUb1VzZSIsImV4aXN0aW5nRW50cnkiLCJnZXQiLCJpc0FsaWFzZWQiLCJhbGlhc2VkIiwiZW50cnlXaXRob3V0UGFyYW1zIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwia2V5IiwiaW5jbHVkZXMiLCJjYWNoZUVudHJ5IiwidmFsdWVzIiwidW5kZWZpbmVkIiwidHJlZSIsImV4aXN0aW5nQ2FjaGVFbnRyeSIsInN0YXR1cyIsImdldFByZWZldGNoRW50cnlDYWNoZVN0YXR1cyIsInN3aXRjaGVkVG9GdWxsUHJlZmV0Y2giLCJkYXRhIiwidGhlbiIsInByZWZldGNoUmVzcG9uc2UiLCJpc0Z1bGxQcmVmZXRjaCIsIkFycmF5IiwiaXNBcnJheSIsImZsaWdodERhdGEiLCJzb21lIiwiaXNSb290UmVuZGVyIiwic2VlZERhdGEiLCJjcmVhdGVMYXp5UHJlZmV0Y2hFbnRyeSIsInByZWZpeEV4aXN0aW5nUHJlZmV0Y2hDYWNoZUVudHJ5IiwiZXhpc3RpbmdDYWNoZUtleSIsIm5ld0NhY2hlS2V5Iiwic2V0IiwiZGVsZXRlIiwicHJlZmV0Y2hDYWNoZUtleSIsImNvdWxkQmVJbnRlcmNlcHRlZCIsInByZWZldGNoRW50cnkiLCJ0cmVlQXRUaW1lT2ZQcmVmZXRjaCIsIlByb21pc2UiLCJyZXNvbHZlIiwicHJlZmV0Y2hUaW1lIiwiRGF0ZSIsIm5vdyIsImxhc3RVc2VkVGltZSIsInN0YWxlVGltZSIsIlByZWZldGNoQ2FjaGVFbnRyeVN0YXR1cyIsImZyZXNoIiwicHJlZmV0Y2hRdWV1ZSIsImVucXVldWUiLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJwcmVmZXRjaEtpbmQiLCJwcmVyZW5kZXJlZCIsImhyZWYiLCJwcmVmZXRjaENhY2hlRW50cnkiLCJleHBpcmVkIiwiTnVtYmVyIiwiX19ORVhUX0NMSUVOVF9ST1VURVJfRFlOQU1JQ19TVEFMRVRJTUUiLCJfX05FWFRfQ0xJRU5UX1JPVVRFUl9TVEFUSUNfU1RBTEVUSU1FIiwic3RhbGUiLCJyZXVzYWJsZSIsIkFVVE8iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js":
/*!************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js ***!
\************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"findHeadInCache\", ({\n enumerable: true,\n get: function() {\n return findHeadInCache;\n }\n}));\nconst _segment = __webpack_require__(/*! ../../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _createroutercachekey = __webpack_require__(/*! ../create-router-cache-key */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nfunction findHeadInCache(cache, parallelRoutes) {\n return findHeadInCacheImpl(cache, parallelRoutes, '');\n}\nfunction findHeadInCacheImpl(cache, parallelRoutes, keyPrefix) {\n const isLastItem = Object.keys(parallelRoutes).length === 0;\n if (isLastItem) {\n // Returns the entire Cache Node of the segment whose head we will render.\n return [\n cache,\n keyPrefix\n ];\n }\n // First try the 'children' parallel route if it exists\n // when starting from the \"root\", this corresponds with the main page component\n const parallelRoutesKeys = Object.keys(parallelRoutes).filter((key)=>key !== 'children');\n // if we are at the root, we need to check the children slot first\n if ('children' in parallelRoutes) {\n parallelRoutesKeys.unshift('children');\n }\n for (const key of parallelRoutesKeys){\n const [segment, childParallelRoutes] = parallelRoutes[key];\n // If the parallel is not matched and using the default segment,\n // skip searching the head from it.\n if (segment === _segment.DEFAULT_SEGMENT_KEY) {\n continue;\n }\n const childSegmentMap = cache.parallelRoutes.get(key);\n if (!childSegmentMap) {\n continue;\n }\n const cacheKey = (0, _createroutercachekey.createRouterCacheKey)(segment);\n const cacheNode = childSegmentMap.get(cacheKey);\n if (!cacheNode) {\n continue;\n }\n const item = findHeadInCacheImpl(cacheNode, childParallelRoutes, keyPrefix + '/' + cacheKey);\n if (item) {\n return item;\n }\n }\n return null;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=find-head-in-cache.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2ZpbmQtaGVhZC1pbi1jYWNoZS5qcyIsIm1hcHBpbmdzIjoiOzs7O21EQUtnQkE7OztlQUFBQTs7O3FDQUhvQjtrREFDQztBQUU5QixTQUFTQSxnQkFDZEMsS0FBZ0IsRUFDaEJDLGNBQW9DO0lBRXBDLE9BQU9DLG9CQUFvQkYsT0FBT0MsZ0JBQWdCO0FBQ3BEO0FBRUEsU0FBU0Msb0JBQ1BGLEtBQWdCLEVBQ2hCQyxjQUFvQyxFQUNwQ0UsU0FBaUI7SUFFakIsTUFBTUMsYUFBYUMsT0FBT0MsSUFBSSxDQUFDTCxnQkFBZ0JNLE1BQU0sS0FBSztJQUMxRCxJQUFJSCxZQUFZO1FBQ2QsMEVBQTBFO1FBQzFFLE9BQU87WUFBQ0o7WUFBT0c7U0FBVTtJQUMzQjtJQUVBLHVEQUF1RDtJQUN2RCwrRUFBK0U7SUFDL0UsTUFBTUsscUJBQXFCSCxPQUFPQyxJQUFJLENBQUNMLGdCQUFnQlEsTUFBTSxDQUMzRCxDQUFDQyxNQUFRQSxRQUFRO0lBR25CLGtFQUFrRTtJQUNsRSxJQUFJLGNBQWNULGdCQUFnQjtRQUNoQ08sbUJBQW1CRyxPQUFPLENBQUM7SUFDN0I7SUFFQSxLQUFLLE1BQU1ELE9BQU9GLG1CQUFvQjtRQUNwQyxNQUFNLENBQUNJLFNBQVNDLG9CQUFvQixHQUFHWixjQUFjLENBQUNTLElBQUk7UUFDMUQsZ0VBQWdFO1FBQ2hFLG1DQUFtQztRQUNuQyxJQUFJRSxZQUFZRSxTQUFBQSxtQkFBbUIsRUFBRTtZQUNuQztRQUNGO1FBQ0EsTUFBTUMsa0JBQWtCZixNQUFNQyxjQUFjLENBQUNlLEdBQUcsQ0FBQ047UUFDakQsSUFBSSxDQUFDSyxpQkFBaUI7WUFDcEI7UUFDRjtRQUVBLE1BQU1FLFdBQVdDLENBQUFBLEdBQUFBLHNCQUFBQSxvQkFBQUEsRUFBcUJOO1FBRXRDLE1BQU1PLFlBQVlKLGdCQUFnQkMsR0FBRyxDQUFDQztRQUN0QyxJQUFJLENBQUNFLFdBQVc7WUFDZDtRQUNGO1FBRUEsTUFBTUMsT0FBT2xCLG9CQUNYaUIsV0FDQU4scUJBQ0FWLFlBQVksTUFBTWM7UUFFcEIsSUFBSUcsTUFBTTtZQUNSLE9BQU9BO1FBQ1Q7SUFDRjtJQUVBLE9BQU87QUFDVCIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9maW5kLWhlYWQtaW4tY2FjaGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IERFRkFVTFRfU0VHTUVOVF9LRVkgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gJy4uL2NyZWF0ZS1yb3V0ZXItY2FjaGUta2V5J1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZEhlYWRJbkNhY2hlKFxuICBjYWNoZTogQ2FjaGVOb2RlLFxuICBwYXJhbGxlbFJvdXRlczogRmxpZ2h0Um91dGVyU3RhdGVbMV1cbik6IFtDYWNoZU5vZGUsIHN0cmluZ10gfCBudWxsIHtcbiAgcmV0dXJuIGZpbmRIZWFkSW5DYWNoZUltcGwoY2FjaGUsIHBhcmFsbGVsUm91dGVzLCAnJylcbn1cblxuZnVuY3Rpb24gZmluZEhlYWRJbkNhY2hlSW1wbChcbiAgY2FjaGU6IENhY2hlTm9kZSxcbiAgcGFyYWxsZWxSb3V0ZXM6IEZsaWdodFJvdXRlclN0YXRlWzFdLFxuICBrZXlQcmVmaXg6IHN0cmluZ1xuKTogW0NhY2hlTm9kZSwgc3RyaW5nXSB8IG51bGwge1xuICBjb25zdCBpc0xhc3RJdGVtID0gT2JqZWN0LmtleXMocGFyYWxsZWxSb3V0ZXMpLmxlbmd0aCA9PT0gMFxuICBpZiAoaXNMYXN0SXRlbSkge1xuICAgIC8vIFJldHVybnMgdGhlIGVudGlyZSBDYWNoZSBOb2RlIG9mIHRoZSBzZWdtZW50IHdob3NlIGhlYWQgd2Ugd2lsbCByZW5kZXIuXG4gICAgcmV0dXJuIFtjYWNoZSwga2V5UHJlZml4XVxuICB9XG5cbiAgLy8gRmlyc3QgdHJ5IHRoZSAnY2hpbGRyZW4nIHBhcmFsbGVsIHJvdXRlIGlmIGl0IGV4aXN0c1xuICAvLyB3aGVuIHN0YXJ0aW5nIGZyb20gdGhlIFwicm9vdFwiLCB0aGlzIGNvcnJlc3BvbmRzIHdpdGggdGhlIG1haW4gcGFnZSBjb21wb25lbnRcbiAgY29uc3QgcGFyYWxsZWxSb3V0ZXNLZXlzID0gT2JqZWN0LmtleXMocGFyYWxsZWxSb3V0ZXMpLmZpbHRlcihcbiAgICAoa2V5KSA9PiBrZXkgIT09ICdjaGlsZHJlbidcbiAgKVxuXG4gIC8vIGlmIHdlIGFyZSBhdCB0aGUgcm9vdCwgd2UgbmVlZCB0byBjaGVjayB0aGUgY2hpbGRyZW4gc2xvdCBmaXJzdFxuICBpZiAoJ2NoaWxkcmVuJyBpbiBwYXJhbGxlbFJvdXRlcykge1xuICAgIHBhcmFsbGVsUm91dGVzS2V5cy51bnNoaWZ0KCdjaGlsZHJlbicpXG4gIH1cblxuICBmb3IgKGNvbnN0IGtleSBvZiBwYXJhbGxlbFJvdXRlc0tleXMpIHtcbiAgICBjb25zdCBbc2VnbWVudCwgY2hpbGRQYXJhbGxlbFJvdXRlc10gPSBwYXJhbGxlbFJvdXRlc1trZXldXG4gICAgLy8gSWYgdGhlIHBhcmFsbGVsIGlzIG5vdCBtYXRjaGVkIGFuZCB1c2luZyB0aGUgZGVmYXVsdCBzZWdtZW50LFxuICAgIC8vIHNraXAgc2VhcmNoaW5nIHRoZSBoZWFkIGZyb20gaXQuXG4gICAgaWYgKHNlZ21lbnQgPT09IERFRkFVTFRfU0VHTUVOVF9LRVkpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGNoaWxkU2VnbWVudE1hcCA9IGNhY2hlLnBhcmFsbGVsUm91dGVzLmdldChrZXkpXG4gICAgaWYgKCFjaGlsZFNlZ21lbnRNYXApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgY2FjaGVLZXkgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShzZWdtZW50KVxuXG4gICAgY29uc3QgY2FjaGVOb2RlID0gY2hpbGRTZWdtZW50TWFwLmdldChjYWNoZUtleSlcbiAgICBpZiAoIWNhY2hlTm9kZSkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtID0gZmluZEhlYWRJbkNhY2hlSW1wbChcbiAgICAgIGNhY2hlTm9kZSxcbiAgICAgIGNoaWxkUGFyYWxsZWxSb3V0ZXMsXG4gICAgICBrZXlQcmVmaXggKyAnLycgKyBjYWNoZUtleVxuICAgIClcbiAgICBpZiAoaXRlbSkge1xuICAgICAgcmV0dXJuIGl0ZW1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuIl0sIm5hbWVzIjpbImZpbmRIZWFkSW5DYWNoZSIsImNhY2hlIiwicGFyYWxsZWxSb3V0ZXMiLCJmaW5kSGVhZEluQ2FjaGVJbXBsIiwia2V5UHJlZml4IiwiaXNMYXN0SXRlbSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJwYXJhbGxlbFJvdXRlc0tleXMiLCJmaWx0ZXIiLCJrZXkiLCJ1bnNoaWZ0Iiwic2VnbWVudCIsImNoaWxkUGFyYWxsZWxSb3V0ZXMiLCJERUZBVUxUX1NFR01FTlRfS0VZIiwiY2hpbGRTZWdtZW50TWFwIiwiZ2V0IiwiY2FjaGVLZXkiLCJjcmVhdGVSb3V0ZXJDYWNoZUtleSIsImNhY2hlTm9kZSIsIml0ZW0iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js":
/*!***********************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js ***!
\***********************************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSegmentValue\", ({\n enumerable: true,\n get: function() {\n return getSegmentValue;\n }\n}));\nfunction getSegmentValue(segment) {\n return Array.isArray(segment) ? segment[1] : segment;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-segment-value.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2dldC1zZWdtZW50LXZhbHVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBRWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxnQkFBZ0JDLE9BQWdCO0lBQzlDLE9BQU9DLE1BQU1DLE9BQU8sQ0FBQ0YsV0FBV0EsT0FBTyxDQUFDLEVBQUUsR0FBR0E7QUFDL0MiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvZ2V0LXNlZ21lbnQtdmFsdWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTZWdtZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWdtZW50VmFsdWUoc2VnbWVudDogU2VnbWVudCkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShzZWdtZW50KSA/IHNlZ21lbnRbMV0gOiBzZWdtZW50XG59XG4iXSwibmFtZXMiOlsiZ2V0U2VnbWVudFZhbHVlIiwic2VnbWVudCIsIkFycmF5IiwiaXNBcnJheSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js":
/*!********************************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js ***!
\********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hasInterceptionRouteInCurrentTree\", ({\n enumerable: true,\n get: function() {\n return hasInterceptionRouteInCurrentTree;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ../../../../shared/lib/router/utils/interception-routes */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\");\nfunction hasInterceptionRouteInCurrentTree(param) {\n let [segment, parallelRoutes] = param;\n // If we have a dynamic segment, it's marked as an interception route by the presence of the `i` suffix.\n if (Array.isArray(segment) && (segment[2] === 'di' || segment[2] === 'ci')) {\n return true;\n }\n // If segment is not an array, apply the existing string-based check\n if (typeof segment === 'string' && (0, _interceptionroutes.isInterceptionRouteAppPath)(segment)) {\n return true;\n }\n // Iterate through parallelRoutes if they exist\n if (parallelRoutes) {\n for(const key in parallelRoutes){\n if (hasInterceptionRouteInCurrentTree(parallelRoutes[key])) {\n return true;\n }\n }\n }\n return false;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=has-interception-route-in-current-tree.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2hhcy1pbnRlcmNlcHRpb24tcm91dGUtaW4tY3VycmVudC10cmVlLmpzIiwibWFwcGluZ3MiOiI7Ozs7cUVBR2dCQTs7O2VBQUFBOzs7Z0RBRjJCO0FBRXBDLFNBQVNBLGtDQUFrQyxLQUc5QjtJQUg4QixLQUNoREMsU0FDQUMsZUFDa0IsR0FIOEI7SUFJaEQsd0dBQXdHO0lBQ3hHLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0gsWUFBYUEsQ0FBQUEsT0FBTyxDQUFDLEVBQUUsS0FBSyxRQUFRQSxPQUFPLENBQUMsRUFBRSxLQUFLLEtBQUcsRUFBSTtRQUMxRSxPQUFPO0lBQ1Q7SUFFQSxvRUFBb0U7SUFDcEUsSUFBSSxPQUFPQSxZQUFZLFlBQVlJLENBQUFBLEdBQUFBLG9CQUFBQSwwQkFBQUEsRUFBMkJKLFVBQVU7UUFDdEUsT0FBTztJQUNUO0lBRUEsK0NBQStDO0lBQy9DLElBQUlDLGdCQUFnQjtRQUNsQixJQUFLLE1BQU1JLE9BQU9KLGVBQWdCO1lBQ2hDLElBQUlGLGtDQUFrQ0UsY0FBYyxDQUFDSSxJQUFJLEdBQUc7Z0JBQzFELE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvaGFzLWludGVyY2VwdGlvbi1yb3V0ZS1pbi1jdXJyZW50LXRyZWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGggfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pbnRlcmNlcHRpb24tcm91dGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlKFtcbiAgc2VnbWVudCxcbiAgcGFyYWxsZWxSb3V0ZXMsXG5dOiBGbGlnaHRSb3V0ZXJTdGF0ZSk6IGJvb2xlYW4ge1xuICAvLyBJZiB3ZSBoYXZlIGEgZHluYW1pYyBzZWdtZW50LCBpdCdzIG1hcmtlZCBhcyBhbiBpbnRlcmNlcHRpb24gcm91dGUgYnkgdGhlIHByZXNlbmNlIG9mIHRoZSBgaWAgc3VmZml4LlxuICBpZiAoQXJyYXkuaXNBcnJheShzZWdtZW50KSAmJiAoc2VnbWVudFsyXSA9PT0gJ2RpJyB8fCBzZWdtZW50WzJdID09PSAnY2knKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBJZiBzZWdtZW50IGlzIG5vdCBhbiBhcnJheSwgYXBwbHkgdGhlIGV4aXN0aW5nIHN0cmluZy1iYXNlZCBjaGVja1xuICBpZiAodHlwZW9mIHNlZ21lbnQgPT09ICdzdHJpbmcnICYmIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHNlZ21lbnQpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBwYXJhbGxlbFJvdXRlcyBpZiB0aGV5IGV4aXN0XG4gIGlmIChwYXJhbGxlbFJvdXRlcykge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHBhcmFsbGVsUm91dGVzKSB7XG4gICAgICBpZiAoaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlKHBhcmFsbGVsUm91dGVzW2tleV0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG4iXSwibmFtZXMiOlsiaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlIiwic2VnbWVudCIsInBhcmFsbGVsUm91dGVzIiwiQXJyYXkiLCJpc0FycmF5IiwiaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgiLCJrZXkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js":
/*!*************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js ***!
\*************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hmrRefreshReducer\", ({\n enumerable: true,\n get: function() {\n return hmrRefreshReducer;\n }\n}));\nconst _fetchserverresponse = __webpack_require__(/*! ../fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _navigatereducer = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nconst _handlemutable = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nconst _applyflightdata = __webpack_require__(/*! ../apply-flight-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js\");\nconst _approuter = __webpack_require__(/*! ../../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _handlesegmentmismatch = __webpack_require__(/*! ../handle-segment-mismatch */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js\");\nconst _hasinterceptionrouteincurrenttree = __webpack_require__(/*! ./has-interception-route-in-current-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\");\n// A version of refresh reducer that keeps the cache around instead of wiping all of it.\nfunction hmrRefreshReducerImpl(state, action) {\n const { origin } = action;\n const mutable = {};\n const href = state.canonicalUrl;\n mutable.preserveCustomHistoryState = false;\n const cache = (0, _approuter.createEmptyCacheNode)();\n // If the current tree was intercepted, the nextUrl should be included in the request.\n // This is to ensure that the refresh request doesn't get intercepted, accidentally triggering the interception route.\n const includeNextUrl = (0, _hasinterceptionrouteincurrenttree.hasInterceptionRouteInCurrentTree)(state.tree);\n // TODO-APP: verify that `href` is not an external url.\n // Fetch data from the root of the tree.\n const navigatedAt = Date.now();\n cache.lazyData = (0, _fetchserverresponse.fetchServerResponse)(new URL(href, origin), {\n flightRouterState: [\n state.tree[0],\n state.tree[1],\n state.tree[2],\n 'refetch'\n ],\n nextUrl: includeNextUrl ? state.nextUrl : null,\n isHmrRefresh: true\n });\n return cache.lazyData.then((param)=>{\n let { flightData, canonicalUrl: canonicalUrlOverride } = param;\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, flightData, state.pushRef.pendingPush);\n }\n // Remove cache.lazyData as it has been resolved at this point.\n cache.lazyData = null;\n let currentTree = state.tree;\n let currentCache = state.cache;\n for (const normalizedFlightData of flightData){\n const { tree: treePatch, isRootRender } = normalizedFlightData;\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('REFRESH FAILED');\n return state;\n }\n const newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)([\n ''\n ], currentTree, treePatch, state.canonicalUrl);\n if (newTree === null) {\n return (0, _handlesegmentmismatch.handleSegmentMismatch)(state, action, treePatch);\n }\n if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, href, state.pushRef.pendingPush);\n }\n const canonicalUrlOverrideHref = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : undefined;\n if (canonicalUrlOverride) {\n mutable.canonicalUrl = canonicalUrlOverrideHref;\n }\n const applied = (0, _applyflightdata.applyFlightData)(navigatedAt, currentCache, cache, normalizedFlightData);\n if (applied) {\n mutable.cache = cache;\n currentCache = cache;\n }\n mutable.patchedTree = newTree;\n mutable.canonicalUrl = href;\n currentTree = newTree;\n }\n return (0, _handlemutable.handleMutable)(state, mutable);\n }, ()=>state);\n}\nfunction hmrRefreshReducerNoop(state, _action) {\n return state;\n}\nconst hmrRefreshReducer = false ? 0 : hmrRefreshReducerImpl;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hmr-refresh-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2htci1yZWZyZXNoLXJlZHVjZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztxREErSGFBOzs7ZUFBQUE7OztpREEvSHVCOytDQUNGO3lEQUNVO3lEQUNBOzZDQU9WOzJDQUNKOzZDQUNFO3VDQUVLO21EQUNDOytEQUNZO0FBRWxELHdGQUF3RjtBQUN4RixTQUFTQyxzQkFDUEMsS0FBMkIsRUFDM0JDLE1BQXdCO0lBRXhCLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdEO0lBQ25CLE1BQU1FLFVBQW1CLENBQUM7SUFDMUIsTUFBTUMsT0FBT0osTUFBTUssWUFBWTtJQUUvQkYsUUFBUUcsMEJBQTBCLEdBQUc7SUFFckMsTUFBTUMsUUFBbUJDLENBQUFBLEdBQUFBLFdBQUFBLG9CQUFBQTtJQUN6QixzRkFBc0Y7SUFDdEYsc0hBQXNIO0lBQ3RILE1BQU1DLGlCQUFpQkMsQ0FBQUEsR0FBQUEsbUNBQUFBLGlDQUFBQSxFQUFrQ1YsTUFBTVcsSUFBSTtJQUVuRSx1REFBdUQ7SUFDdkQsd0NBQXdDO0lBQ3hDLE1BQU1DLGNBQWNDLEtBQUtDLEdBQUc7SUFDNUJQLE1BQU1RLFFBQVEsR0FBR0MsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQixJQUFJQyxJQUFJYixNQUFNRixTQUFTO1FBQzFEZ0IsbUJBQW1CO1lBQUNsQixNQUFNVyxJQUFJLENBQUMsRUFBRTtZQUFFWCxNQUFNVyxJQUFJLENBQUMsRUFBRTtZQUFFWCxNQUFNVyxJQUFJLENBQUMsRUFBRTtZQUFFO1NBQVU7UUFDM0VRLFNBQVNWLGlCQUFpQlQsTUFBTW1CLE9BQU8sR0FBRztRQUMxQ0MsY0FBYztJQUNoQjtJQUVBLE9BQU9iLE1BQU1RLFFBQVEsQ0FBQ00sSUFBSSxDQUN4QjtZQUFDLEVBQUVDLFVBQVUsRUFBRWpCLGNBQWNrQixvQkFBb0IsRUFBRTtRQUNqRCw0REFBNEQ7UUFDNUQsSUFBSSxPQUFPRCxlQUFlLFVBQVU7WUFDbEMsT0FBT0UsQ0FBQUEsR0FBQUEsaUJBQUFBLGlCQUFBQSxFQUNMeEIsT0FDQUcsU0FDQW1CLFlBQ0F0QixNQUFNeUIsT0FBTyxDQUFDQyxXQUFXO1FBRTdCO1FBRUEsK0RBQStEO1FBQy9EbkIsTUFBTVEsUUFBUSxHQUFHO1FBRWpCLElBQUlZLGNBQWMzQixNQUFNVyxJQUFJO1FBQzVCLElBQUlpQixlQUFlNUIsTUFBTU8sS0FBSztRQUU5QixLQUFLLE1BQU1zQix3QkFBd0JQLFdBQVk7WUFDN0MsTUFBTSxFQUFFWCxNQUFNbUIsU0FBUyxFQUFFQyxZQUFZLEVBQUUsR0FBR0Y7WUFDMUMsSUFBSSxDQUFDRSxjQUFjO2dCQUNqQixvQ0FBb0M7Z0JBQ3BDQyxRQUFRQyxHQUFHLENBQUM7Z0JBQ1osT0FBT2pDO1lBQ1Q7WUFFQSxNQUFNa0MsVUFBVUMsQ0FBQUEsR0FBQUEsNkJBQUFBLDJCQUFBQSxFQUNkO2dCQUNDO2FBQUcsRUFDSlIsYUFDQUcsV0FDQTlCLE1BQU1LLFlBQVk7WUFHcEIsSUFBSTZCLFlBQVksTUFBTTtnQkFDcEIsT0FBT0UsQ0FBQUEsR0FBQUEsdUJBQUFBLHFCQUFBQSxFQUFzQnBDLE9BQU9DLFFBQVE2QjtZQUM5QztZQUVBLElBQUlPLENBQUFBLEdBQUFBLDZCQUFBQSwyQkFBQUEsRUFBNEJWLGFBQWFPLFVBQVU7Z0JBQ3JELE9BQU9WLENBQUFBLEdBQUFBLGlCQUFBQSxpQkFBaUIsRUFDdEJ4QixPQUNBRyxTQUNBQyxNQUNBSixNQUFNeUIsT0FBTyxDQUFDQyxXQUFXO1lBRTdCO1lBRUEsTUFBTVksMkJBQTJCZix1QkFDN0JnQixDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCaEIsd0JBQ2xCaUI7WUFFSixJQUFJakIsc0JBQXNCO2dCQUN4QnBCLFFBQVFFLFlBQVksR0FBR2lDO1lBQ3pCO1lBQ0EsTUFBTUcsVUFBVUMsQ0FBQUEsR0FBQUEsaUJBQUFBLGVBQUFBLEVBQ2Q5QixhQUNBZ0IsY0FDQXJCLE9BQ0FzQjtZQUdGLElBQUlZLFNBQVM7Z0JBQ1h0QyxRQUFRSSxLQUFLLEdBQUdBO2dCQUNoQnFCLGVBQWVyQjtZQUNqQjtZQUVBSixRQUFRd0MsV0FBVyxHQUFHVDtZQUN0Qi9CLFFBQVFFLFlBQVksR0FBR0Q7WUFFdkJ1QixjQUFjTztRQUNoQjtRQUNBLE9BQU9VLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWM1QyxPQUFPRztJQUM5QixHQUNBLElBQU1IO0FBRVY7QUFFQSxTQUFTNkMsc0JBQ1A3QyxLQUEyQixFQUMzQjhDLE9BQXlCO0lBRXpCLE9BQU85QztBQUNUO0FBRU8sTUFBTUYsb0JBckhxQixNQXNIWixHQUNoQitDLENBQXFCQSxHQUNyQjlDIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL2htci1yZWZyZXNoLXJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJy4uL2ZldGNoLXNlcnZlci1yZXNwb25zZSdcbmltcG9ydCB7IGNyZWF0ZUhyZWZGcm9tVXJsIH0gZnJvbSAnLi4vY3JlYXRlLWhyZWYtZnJvbS11cmwnXG5pbXBvcnQgeyBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUgfSBmcm9tICcuLi9hcHBseS1yb3V0ZXItc3RhdGUtcGF0Y2gtdG8tdHJlZSdcbmltcG9ydCB7IGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCB9IGZyb20gJy4uL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0J1xuaW1wb3J0IHR5cGUge1xuICBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgUmVkdWNlclN0YXRlLFxuICBIbXJSZWZyZXNoQWN0aW9uLFxuICBNdXRhYmxlLFxufSBmcm9tICcuLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IGhhbmRsZUV4dGVybmFsVXJsIH0gZnJvbSAnLi9uYXZpZ2F0ZS1yZWR1Y2VyJ1xuaW1wb3J0IHsgaGFuZGxlTXV0YWJsZSB9IGZyb20gJy4uL2hhbmRsZS1tdXRhYmxlJ1xuaW1wb3J0IHsgYXBwbHlGbGlnaHREYXRhIH0gZnJvbSAnLi4vYXBwbHktZmxpZ2h0LWRhdGEnXG5pbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgY3JlYXRlRW1wdHlDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi9hcHAtcm91dGVyJ1xuaW1wb3J0IHsgaGFuZGxlU2VnbWVudE1pc21hdGNoIH0gZnJvbSAnLi4vaGFuZGxlLXNlZ21lbnQtbWlzbWF0Y2gnXG5pbXBvcnQgeyBoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUgfSBmcm9tICcuL2hhcy1pbnRlcmNlcHRpb24tcm91dGUtaW4tY3VycmVudC10cmVlJ1xuXG4vLyBBIHZlcnNpb24gb2YgcmVmcmVzaCByZWR1Y2VyIHRoYXQga2VlcHMgdGhlIGNhY2hlIGFyb3VuZCBpbnN0ZWFkIG9mIHdpcGluZyBhbGwgb2YgaXQuXG5mdW5jdGlvbiBobXJSZWZyZXNoUmVkdWNlckltcGwoXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgYWN0aW9uOiBIbXJSZWZyZXNoQWN0aW9uXG4pOiBSZWR1Y2VyU3RhdGUge1xuICBjb25zdCB7IG9yaWdpbiB9ID0gYWN0aW9uXG4gIGNvbnN0IG11dGFibGU6IE11dGFibGUgPSB7fVxuICBjb25zdCBocmVmID0gc3RhdGUuY2Fub25pY2FsVXJsXG5cbiAgbXV0YWJsZS5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSA9IGZhbHNlXG5cbiAgY29uc3QgY2FjaGU6IENhY2hlTm9kZSA9IGNyZWF0ZUVtcHR5Q2FjaGVOb2RlKClcbiAgLy8gSWYgdGhlIGN1cnJlbnQgdHJlZSB3YXMgaW50ZXJjZXB0ZWQsIHRoZSBuZXh0VXJsIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVxdWVzdC5cbiAgLy8gVGhpcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgcmVmcmVzaCByZXF1ZXN0IGRvZXNuJ3QgZ2V0IGludGVyY2VwdGVkLCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyB0aGUgaW50ZXJjZXB0aW9uIHJvdXRlLlxuICBjb25zdCBpbmNsdWRlTmV4dFVybCA9IGhhc0ludGVyY2VwdGlvblJvdXRlSW5DdXJyZW50VHJlZShzdGF0ZS50cmVlKVxuXG4gIC8vIFRPRE8tQVBQOiB2ZXJpZnkgdGhhdCBgaHJlZmAgaXMgbm90IGFuIGV4dGVybmFsIHVybC5cbiAgLy8gRmV0Y2ggZGF0YSBmcm9tIHRoZSByb290IG9mIHRoZSB0cmVlLlxuICBjb25zdCBuYXZpZ2F0ZWRBdCA9IERhdGUubm93KClcbiAgY2FjaGUubGF6eURhdGEgPSBmZXRjaFNlcnZlclJlc3BvbnNlKG5ldyBVUkwoaHJlZiwgb3JpZ2luKSwge1xuICAgIGZsaWdodFJvdXRlclN0YXRlOiBbc3RhdGUudHJlZVswXSwgc3RhdGUudHJlZVsxXSwgc3RhdGUudHJlZVsyXSwgJ3JlZmV0Y2gnXSxcbiAgICBuZXh0VXJsOiBpbmNsdWRlTmV4dFVybCA/IHN0YXRlLm5leHRVcmwgOiBudWxsLFxuICAgIGlzSG1yUmVmcmVzaDogdHJ1ZSxcbiAgfSlcblxuICByZXR1cm4gY2FjaGUubGF6eURhdGEudGhlbihcbiAgICAoeyBmbGlnaHREYXRhLCBjYW5vbmljYWxVcmw6IGNhbm9uaWNhbFVybE92ZXJyaWRlIH0pID0+IHtcbiAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbmF2aWdhdGluZyB0byBwYWdlIGluIGBwYWdlc2AgZnJvbSBgYXBwYFxuICAgICAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgbXV0YWJsZSxcbiAgICAgICAgICBmbGlnaHREYXRhLFxuICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2hcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICAvLyBSZW1vdmUgY2FjaGUubGF6eURhdGEgYXMgaXQgaGFzIGJlZW4gcmVzb2x2ZWQgYXQgdGhpcyBwb2ludC5cbiAgICAgIGNhY2hlLmxhenlEYXRhID0gbnVsbFxuXG4gICAgICBsZXQgY3VycmVudFRyZWUgPSBzdGF0ZS50cmVlXG4gICAgICBsZXQgY3VycmVudENhY2hlID0gc3RhdGUuY2FjaGVcblxuICAgICAgZm9yIChjb25zdCBub3JtYWxpemVkRmxpZ2h0RGF0YSBvZiBmbGlnaHREYXRhKSB7XG4gICAgICAgIGNvbnN0IHsgdHJlZTogdHJlZVBhdGNoLCBpc1Jvb3RSZW5kZXIgfSA9IG5vcm1hbGl6ZWRGbGlnaHREYXRhXG4gICAgICAgIGlmICghaXNSb290UmVuZGVyKSB7XG4gICAgICAgICAgLy8gVE9ETy1BUFA6IGhhbmRsZSB0aGlzIGNhc2UgYmV0dGVyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1JFRlJFU0ggRkFJTEVEJylcbiAgICAgICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1RyZWUgPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUoXG4gICAgICAgICAgLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgICAgIFsnJ10sXG4gICAgICAgICAgY3VycmVudFRyZWUsXG4gICAgICAgICAgdHJlZVBhdGNoLFxuICAgICAgICAgIHN0YXRlLmNhbm9uaWNhbFVybFxuICAgICAgICApXG5cbiAgICAgICAgaWYgKG5ld1RyZWUgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlU2VnbWVudE1pc21hdGNoKHN0YXRlLCBhY3Rpb24sIHRyZWVQYXRjaClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQoY3VycmVudFRyZWUsIG5ld1RyZWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBtdXRhYmxlLFxuICAgICAgICAgICAgaHJlZixcbiAgICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2hcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYW5vbmljYWxVcmxPdmVycmlkZUhyZWYgPSBjYW5vbmljYWxVcmxPdmVycmlkZVxuICAgICAgICAgID8gY3JlYXRlSHJlZkZyb21VcmwoY2Fub25pY2FsVXJsT3ZlcnJpZGUpXG4gICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgICAgICBpZiAoY2Fub25pY2FsVXJsT3ZlcnJpZGUpIHtcbiAgICAgICAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IGNhbm9uaWNhbFVybE92ZXJyaWRlSHJlZlxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFwcGxpZWQgPSBhcHBseUZsaWdodERhdGEoXG4gICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgY3VycmVudENhY2hlLFxuICAgICAgICAgIGNhY2hlLFxuICAgICAgICAgIG5vcm1hbGl6ZWRGbGlnaHREYXRhXG4gICAgICAgIClcblxuICAgICAgICBpZiAoYXBwbGllZCkge1xuICAgICAgICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZVxuICAgICAgICAgIGN1cnJlbnRDYWNoZSA9IGNhY2hlXG4gICAgICAgIH1cblxuICAgICAgICBtdXRhYmxlLnBhdGNoZWRUcmVlID0gbmV3VHJlZVxuICAgICAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IGhyZWZcblxuICAgICAgICBjdXJyZW50VHJlZSA9IG5ld1RyZWVcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKVxuICAgIH0sXG4gICAgKCkgPT4gc3RhdGVcbiAgKVxufVxuXG5mdW5jdGlvbiBobXJSZWZyZXNoUmVkdWNlck5vb3AoXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgX2FjdGlvbjogSG1yUmVmcmVzaEFjdGlvblxuKTogUmVkdWNlclN0YXRlIHtcbiAgcmV0dXJuIHN0YXRlXG59XG5cbmV4cG9ydCBjb25zdCBobXJSZWZyZXNoUmVkdWNlciA9XG4gIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbidcbiAgICA/IGhtclJlZnJlc2hSZWR1Y2VyTm9vcFxuICAgIDogaG1yUmVmcmVzaFJlZHVjZXJJbXBsXG4iXSwibmFtZXMiOlsiaG1yUmVmcmVzaFJlZHVjZXIiLCJobXJSZWZyZXNoUmVkdWNlckltcGwiLCJzdGF0ZSIsImFjdGlvbiIsIm9yaWdpbiIsIm11dGFibGUiLCJocmVmIiwiY2Fub25pY2FsVXJsIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJjYWNoZSIsImNyZWF0ZUVtcHR5Q2FjaGVOb2RlIiwiaW5jbHVkZU5leHRVcmwiLCJoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUiLCJ0cmVlIiwibmF2aWdhdGVkQXQiLCJEYXRlIiwibm93IiwibGF6eURhdGEiLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwiVVJMIiwiZmxpZ2h0Um91dGVyU3RhdGUiLCJuZXh0VXJsIiwiaXNIbXJSZWZyZXNoIiwidGhlbiIsImZsaWdodERhdGEiLCJjYW5vbmljYWxVcmxPdmVycmlkZSIsImhhbmRsZUV4dGVybmFsVXJsIiwicHVzaFJlZiIsInBlbmRpbmdQdXNoIiwiY3VycmVudFRyZWUiLCJjdXJyZW50Q2FjaGUiLCJub3JtYWxpemVkRmxpZ2h0RGF0YSIsInRyZWVQYXRjaCIsImlzUm9vdFJlbmRlciIsImNvbnNvbGUiLCJsb2ciLCJuZXdUcmVlIiwiYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlIiwiaGFuZGxlU2VnbWVudE1pc21hdGNoIiwiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IiwiY2Fub25pY2FsVXJsT3ZlcnJpZGVIcmVmIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJ1bmRlZmluZWQiLCJhcHBsaWVkIiwiYXBwbHlGbGlnaHREYXRhIiwicGF0Y2hlZFRyZWUiLCJoYW5kbGVNdXRhYmxlIiwiaG1yUmVmcmVzaFJlZHVjZXJOb29wIiwiX2FjdGlvbiIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js":
/*!**********************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js ***!
\**********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n handleExternalUrl: function() {\n return handleExternalUrl;\n },\n navigateReducer: function() {\n return navigateReducer;\n }\n});\nconst _fetchserverresponse = __webpack_require__(/*! ../fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _invalidatecachebelowflightsegmentpath = __webpack_require__(/*! ../invalidate-cache-below-flight-segmentpath */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _shouldhardnavigate = __webpack_require__(/*! ../should-hard-navigate */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/should-hard-navigate.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _routerreducertypes = __webpack_require__(/*! ../router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _handlemutable = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nconst _applyflightdata = __webpack_require__(/*! ../apply-flight-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js\");\nconst _prefetchreducer = __webpack_require__(/*! ./prefetch-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js\");\nconst _approuter = __webpack_require__(/*! ../../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _segment = __webpack_require__(/*! ../../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nconst _pprnavigations = __webpack_require__(/*! ../ppr-navigations */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/ppr-navigations.js\");\nconst _prefetchcacheutils = __webpack_require__(/*! ../prefetch-cache-utils */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js\");\nconst _clearcachenodedataforsegmentpath = __webpack_require__(/*! ../clear-cache-node-data-for-segment-path */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/clear-cache-node-data-for-segment-path.js\");\nconst _aliasedprefetchnavigations = __webpack_require__(/*! ../aliased-prefetch-navigations */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/aliased-prefetch-navigations.js\");\nconst _segmentcache = __webpack_require__(/*! ../../segment-cache */ \"(ssr)/./node_modules/next/dist/client/components/segment-cache.js\");\nfunction handleExternalUrl(state, mutable, url, pendingPush) {\n mutable.mpaNavigation = true;\n mutable.canonicalUrl = url;\n mutable.pendingPush = pendingPush;\n mutable.scrollableSegments = undefined;\n return (0, _handlemutable.handleMutable)(state, mutable);\n}\nfunction generateSegmentsFromPatch(flightRouterPatch) {\n const segments = [];\n const [segment, parallelRoutes] = flightRouterPatch;\n if (Object.keys(parallelRoutes).length === 0) {\n return [\n [\n segment\n ]\n ];\n }\n for (const [parallelRouteKey, parallelRoute] of Object.entries(parallelRoutes)){\n for (const childSegment of generateSegmentsFromPatch(parallelRoute)){\n // If the segment is empty, it means we are at the root of the tree\n if (segment === '') {\n segments.push([\n parallelRouteKey,\n ...childSegment\n ]);\n } else {\n segments.push([\n segment,\n parallelRouteKey,\n ...childSegment\n ]);\n }\n }\n }\n return segments;\n}\nfunction triggerLazyFetchForLeafSegments(newCache, currentCache, flightSegmentPath, treePatch) {\n let appliedPatch = false;\n newCache.rsc = currentCache.rsc;\n newCache.prefetchRsc = currentCache.prefetchRsc;\n newCache.loading = currentCache.loading;\n newCache.parallelRoutes = new Map(currentCache.parallelRoutes);\n const segmentPathsToFill = generateSegmentsFromPatch(treePatch).map((segment)=>[\n ...flightSegmentPath,\n ...segment\n ]);\n for (const segmentPaths of segmentPathsToFill){\n (0, _clearcachenodedataforsegmentpath.clearCacheNodeDataForSegmentPath)(newCache, currentCache, segmentPaths);\n appliedPatch = true;\n }\n return appliedPatch;\n}\nfunction handleNavigationResult(url, state, mutable, pendingPush, result) {\n switch(result.tag){\n case _segmentcache.NavigationResultTag.MPA:\n {\n // Perform an MPA navigation.\n const newUrl = result.data;\n return handleExternalUrl(state, mutable, newUrl, pendingPush);\n }\n case _segmentcache.NavigationResultTag.NoOp:\n {\n // The server responded with no change to the current page. However, if\n // the URL changed, we still need to update that.\n const newCanonicalUrl = result.data.canonicalUrl;\n mutable.canonicalUrl = newCanonicalUrl;\n // Check if the only thing that changed was the hash fragment.\n const oldUrl = new URL(state.canonicalUrl, url);\n const onlyHashChange = // navigations are always same-origin.\n url.pathname === oldUrl.pathname && url.search === oldUrl.search && url.hash !== oldUrl.hash;\n if (onlyHashChange) {\n // The only updated part of the URL is the hash.\n mutable.onlyHashChange = true;\n mutable.shouldScroll = result.data.shouldScroll;\n mutable.hashFragment = url.hash;\n // Setting this to an empty array triggers a scroll for all new and\n // updated segments. See `ScrollAndFocusHandler` for more details.\n mutable.scrollableSegments = [];\n }\n return (0, _handlemutable.handleMutable)(state, mutable);\n }\n case _segmentcache.NavigationResultTag.Success:\n {\n // Received a new result.\n mutable.cache = result.data.cacheNode;\n mutable.patchedTree = result.data.flightRouterState;\n mutable.canonicalUrl = result.data.canonicalUrl;\n mutable.scrollableSegments = result.data.scrollableSegments;\n mutable.shouldScroll = result.data.shouldScroll;\n mutable.hashFragment = result.data.hash;\n return (0, _handlemutable.handleMutable)(state, mutable);\n }\n case _segmentcache.NavigationResultTag.Async:\n {\n return result.data.then((asyncResult)=>handleNavigationResult(url, state, mutable, pendingPush, asyncResult), // TODO: This matches the current behavior but we need to do something\n // better here if the network fails.\n ()=>{\n return state;\n });\n }\n default:\n {\n result;\n return state;\n }\n }\n}\nfunction navigateReducer(state, action) {\n const { url, isExternalUrl, navigateType, shouldScroll, allowAliasing } = action;\n const mutable = {};\n const { hash } = url;\n const href = (0, _createhreffromurl.createHrefFromUrl)(url);\n const pendingPush = navigateType === 'push';\n // we want to prune the prefetch cache on every navigation to avoid it growing too large\n (0, _prefetchcacheutils.prunePrefetchCache)(state.prefetchCache);\n mutable.preserveCustomHistoryState = false;\n mutable.pendingPush = pendingPush;\n if (isExternalUrl) {\n return handleExternalUrl(state, mutable, url.toString(), pendingPush);\n }\n // Handles case where `<meta http-equiv=\"refresh\">` tag is present,\n // which will trigger an MPA navigation.\n if (document.getElementById('__next-page-redirect')) {\n return handleExternalUrl(state, mutable, href, pendingPush);\n }\n if (false) {}\n const prefetchValues = (0, _prefetchcacheutils.getOrCreatePrefetchCacheEntry)({\n url,\n nextUrl: state.nextUrl,\n tree: state.tree,\n prefetchCache: state.prefetchCache,\n allowAliasing\n });\n const { treeAtTimeOfPrefetch, data } = prefetchValues;\n _prefetchreducer.prefetchQueue.bump(data);\n return data.then((param)=>{\n let { flightData, canonicalUrl: canonicalUrlOverride, postponed } = param;\n const navigatedAt = Date.now();\n let isFirstRead = false;\n // we only want to mark this once\n if (!prefetchValues.lastUsedTime) {\n // important: we should only mark the cache node as dirty after we unsuspend from the call above\n prefetchValues.lastUsedTime = navigatedAt;\n isFirstRead = true;\n }\n if (prefetchValues.aliased) {\n // When alias is enabled, search param may not be included in the canonicalUrl.\n // But we want to set url to canonicalUrl so that we use redirected path for fetching dynamic data.\n const urlWithCanonicalPathname = new URL(url.href);\n if (canonicalUrlOverride) {\n urlWithCanonicalPathname.pathname = canonicalUrlOverride.pathname;\n }\n const result = (0, _aliasedprefetchnavigations.handleAliasedPrefetchEntry)(navigatedAt, state, flightData, urlWithCanonicalPathname, mutable);\n // We didn't return new router state because we didn't apply the aliased entry for some reason.\n // We'll re-invoke the navigation handler but ensure that we don't attempt to use the aliased entry. This\n // will create an on-demand prefetch entry.\n if (result === false) {\n return navigateReducer(state, {\n ...action,\n allowAliasing: false\n });\n }\n return result;\n }\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return handleExternalUrl(state, mutable, flightData, pendingPush);\n }\n const updatedCanonicalUrl = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : href;\n const onlyHashChange = !!hash && state.canonicalUrl.split('#', 1)[0] === updatedCanonicalUrl.split('#', 1)[0];\n // If only the hash has changed, the server hasn't sent us any new data. We can just update\n // the mutable properties responsible for URL and scroll handling and return early.\n if (onlyHashChange) {\n mutable.onlyHashChange = true;\n mutable.canonicalUrl = updatedCanonicalUrl;\n mutable.shouldScroll = shouldScroll;\n mutable.hashFragment = hash;\n mutable.scrollableSegments = [];\n return (0, _handlemutable.handleMutable)(state, mutable);\n }\n let currentTree = state.tree;\n let currentCache = state.cache;\n let scrollableSegments = [];\n for (const normalizedFlightData of flightData){\n const { pathToSegment: flightSegmentPath, seedData, head, isHeadPartial, isRootRender } = normalizedFlightData;\n let treePatch = normalizedFlightData.tree;\n // TODO-APP: remove ''\n const flightSegmentPathWithLeadingEmpty = [\n '',\n ...flightSegmentPath\n ];\n // Create new tree based on the flightSegmentPath and router state patch\n let newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, currentTree, treePatch, href);\n // If the tree patch can't be applied to the current tree then we use the tree at time of prefetch\n // TODO-APP: This should instead fill in the missing pieces in `currentTree` with the data from `treeAtTimeOfPrefetch`, then apply the patch.\n if (newTree === null) {\n newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)(flightSegmentPathWithLeadingEmpty, treeAtTimeOfPrefetch, treePatch, href);\n }\n if (newTree !== null) {\n if (// will send back a static response that's rendered from\n // the root. If for some reason it doesn't, we fall back to the\n // non-PPR implementation.\n // TODO: We should get rid of the else branch and do all navigations\n // via startPPRNavigation. The current structure is just\n // an incremental step.\n seedData && isRootRender && postponed) {\n const task = (0, _pprnavigations.startPPRNavigation)(navigatedAt, currentCache, currentTree, treePatch, seedData, head, isHeadPartial, false, scrollableSegments);\n if (task !== null) {\n if (task.route === null) {\n // Detected a change to the root layout. Perform an full-\n // page navigation.\n return handleExternalUrl(state, mutable, href, pendingPush);\n }\n // Use the tree computed by startPPRNavigation instead\n // of the one computed by applyRouterStatePatchToTree.\n // TODO: We should remove applyRouterStatePatchToTree\n // from the PPR path entirely.\n const patchedRouterState = task.route;\n newTree = patchedRouterState;\n const newCache = task.node;\n if (newCache !== null) {\n // We've created a new Cache Node tree that contains a prefetched\n // version of the next page. This can be rendered instantly.\n mutable.cache = newCache;\n }\n const dynamicRequestTree = task.dynamicRequestTree;\n if (dynamicRequestTree !== null) {\n // The prefetched tree has dynamic holes in it. We initiate a\n // dynamic request to fill them in.\n //\n // Do not block on the result. We'll immediately render the Cache\n // Node tree and suspend on the dynamic parts. When the request\n // comes in, we'll fill in missing data and ping React to\n // re-render. Unlike the lazy fetching model in the non-PPR\n // implementation, this is modeled as a single React update +\n // streaming, rather than multiple top-level updates. (However,\n // even in the new model, we'll still need to sometimes update the\n // root multiple times per navigation, like if the server sends us\n // a different response than we expected. For now, we revert back\n // to the lazy fetching mechanism in that case.)\n const dynamicRequest = (0, _fetchserverresponse.fetchServerResponse)(new URL(updatedCanonicalUrl, url.origin), {\n flightRouterState: dynamicRequestTree,\n nextUrl: state.nextUrl\n });\n (0, _pprnavigations.listenForDynamicRequest)(task, dynamicRequest);\n // We store the dynamic request on the `lazyData` property of the CacheNode\n // because we're not going to await the dynamic request here. Since we're not blocking\n // on the dynamic request, `layout-router` will\n // task.node.lazyData = dynamicRequest\n } else {\n // The prefetched tree does not contain dynamic holes — it's\n // fully static. We can skip the dynamic request.\n }\n } else {\n // Nothing changed, so reuse the old cache.\n // TODO: What if the head changed but not any of the segment data?\n // Is that possible? If so, we should clone the whole tree and\n // update the head.\n newTree = treePatch;\n }\n } else {\n // The static response does not include any dynamic holes, so\n // there's no need to do a second request.\n // TODO: As an incremental step this just reverts back to the\n // non-PPR implementation. We can simplify this branch further,\n // given that PPR prefetches are always static and return the whole\n // tree. Or in the meantime we could factor it out into a\n // separate function.\n if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return handleExternalUrl(state, mutable, href, pendingPush);\n }\n const cache = (0, _approuter.createEmptyCacheNode)();\n let applied = false;\n if (prefetchValues.status === _routerreducertypes.PrefetchCacheEntryStatus.stale && !isFirstRead) {\n // When we have a stale prefetch entry, we only want to re-use the loading state of the route we're navigating to, to support instant loading navigations\n // this will trigger a lazy fetch for the actual page data by nulling the `rsc` and `prefetchRsc` values for page data,\n // while copying over the `loading` for the segment that contains the page data.\n // We only do this on subsequent reads, as otherwise there'd be no loading data to re-use.\n // We skip this branch if only the hash fragment has changed, as we don't want to trigger a lazy fetch in that case\n applied = triggerLazyFetchForLeafSegments(cache, currentCache, flightSegmentPath, treePatch);\n // since we re-used the stale cache's loading state & refreshed the data,\n // update the `lastUsedTime` so that it can continue to be re-used for the next 30s\n prefetchValues.lastUsedTime = navigatedAt;\n } else {\n applied = (0, _applyflightdata.applyFlightData)(navigatedAt, currentCache, cache, normalizedFlightData, prefetchValues);\n }\n const hardNavigate = (0, _shouldhardnavigate.shouldHardNavigate)(flightSegmentPathWithLeadingEmpty, currentTree);\n if (hardNavigate) {\n // Copy rsc for the root node of the cache.\n cache.rsc = currentCache.rsc;\n cache.prefetchRsc = currentCache.prefetchRsc;\n (0, _invalidatecachebelowflightsegmentpath.invalidateCacheBelowFlightSegmentPath)(cache, currentCache, flightSegmentPath);\n // Ensure the existing cache value is used when the cache was not invalidated.\n mutable.cache = cache;\n } else if (applied) {\n mutable.cache = cache;\n // If we applied the cache, we update the \"current cache\" value so any other\n // segments in the FlightDataPath will be able to reference the updated cache.\n currentCache = cache;\n }\n for (const subSegment of generateSegmentsFromPatch(treePatch)){\n const scrollableSegmentPath = [\n ...flightSegmentPath,\n ...subSegment\n ];\n // Filter out the __DEFAULT__ paths as they shouldn't be scrolled to in this case.\n if (scrollableSegmentPath[scrollableSegmentPath.length - 1] !== _segment.DEFAULT_SEGMENT_KEY) {\n scrollableSegments.push(scrollableSegmentPath);\n }\n }\n }\n currentTree = newTree;\n }\n }\n mutable.patchedTree = currentTree;\n mutable.canonicalUrl = updatedCanonicalUrl;\n mutable.scrollableSegments = scrollableSegments;\n mutable.hashFragment = hash;\n mutable.shouldScroll = shouldScroll;\n return (0, _handlemutable.handleMutable)(state, mutable);\n }, ()=>state);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=navigate-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL25hdmlnYXRlLXJlZHVjZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb0NnQkEsaUJBQWlCO2VBQWpCQTs7SUFzSUFDLGVBQWU7ZUFBZkE7OztpREFyS29COytDQUNGO21FQUNvQjt5REFDVjtnREFDVDt5REFDUztnREFPckM7MkNBQ3VCOzZDQUNFOzZDQUNGO3VDQUNPO3FDQUNEOzRDQUN3QjtnREFJckQ7OERBQzBDO3dEQUNOOzBDQUtwQztBQUVBLFNBQVNELGtCQUNkRSxLQUEyQixFQUMzQkMsT0FBZ0IsRUFDaEJDLEdBQVcsRUFDWEMsV0FBb0I7SUFFcEJGLFFBQVFHLGFBQWEsR0FBRztJQUN4QkgsUUFBUUksWUFBWSxHQUFHSDtJQUN2QkQsUUFBUUUsV0FBVyxHQUFHQTtJQUN0QkYsUUFBUUssa0JBQWtCLEdBQUdDO0lBRTdCLE9BQU9DLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNSLE9BQU9DO0FBQzlCO0FBRUEsU0FBU1EsMEJBQ1BDLGlCQUFvQztJQUVwQyxNQUFNQyxXQUFnQyxFQUFFO0lBQ3hDLE1BQU0sQ0FBQ0MsU0FBU0MsZUFBZSxHQUFHSDtJQUVsQyxJQUFJSSxPQUFPQyxJQUFJLENBQUNGLGdCQUFnQkcsTUFBTSxLQUFLLEdBQUc7UUFDNUMsT0FBTztZQUFDO2dCQUFDSjthQUFRO1NBQUM7SUFDcEI7SUFFQSxLQUFLLE1BQU0sQ0FBQ0ssa0JBQWtCQyxjQUFjLElBQUlKLE9BQU9LLE9BQU8sQ0FDNUROLGdCQUNDO1FBQ0QsS0FBSyxNQUFNTyxnQkFBZ0JYLDBCQUEwQlMsZUFBZ0I7WUFDbkUsbUVBQW1FO1lBQ25FLElBQUlOLFlBQVksSUFBSTtnQkFDbEJELFNBQVNVLElBQUksQ0FBQztvQkFBQ0o7dUJBQXFCRztpQkFBYTtZQUNuRCxPQUFPO2dCQUNMVCxTQUFTVSxJQUFJLENBQUM7b0JBQUNU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QWVDLENBQUFBLEdBQUFBLG9CQUFBQSxrQkFBQUEsRUFDbkIsc0JBQXNCLGFBRXRCNUI7b0JBR0YsSUFBSTJCLGNBQWM7d0JBQ2hCLDJDQUEyQzt3QkFDM0N0RSxNQUFNMUIsR0FBRyxHQUFHSixhQUFhSSxHQUFHO3dCQUM1QjBCLE1BQU16QixXQUFXLEdBQUdMLGFBQWFLLFdBQVc7d0JBRTVDaUcsQ0FBQUEsR0FBQUEsdUNBQUFBLHFDQUFBQSxFQUNFeEUsT0FDQTlCLGNBQ0FDO3dCQUVGLDhFQUE4RTt3QkFDOUV4QixRQUFRcUQsS0FBSyxHQUFHQTtvQkFDbEIsT0FBTyxJQUFJaUUsU0FBUzt3QkFDbEJ0SCxRQUFRcUQsS0FBSyxHQUFHQTt3QkFDaEIsNEVBQTRFO3dCQUM1RSw4RUFBOEU7d0JBQzlFOUIsZUFBZThCO29CQUNqQjtvQkFFQSxLQUFLLE1BQU15RSxjQUFjdEgsMEJBQTBCaUIsV0FBWTt3QkFDN0QsTUFBTXNHLHdCQUF3QjsrQkFDekJ2RzsrQkFDQXNHO3lCQUNKO3dCQUNELGtGQUFrRjt3QkFDbEYsSUFDRUMscUJBQXFCLENBQUNBLHNCQUFzQmhILE1BQU0sR0FBRyxFQUFFLEtBQ3ZEaUgsU0FBQUEsbUJBQW1CLEVBQ25COzRCQUNBM0gsbUJBQW1CZSxJQUFJLENBQUMyRzt3QkFDMUI7b0JBQ0Y7Z0JBQ0Y7Z0JBRUEvQixjQUFjUTtZQUNoQjtRQUNGO1FBRUF4RyxRQUFRdUQsV0FBVyxHQUFHeUM7UUFDdEJoRyxRQUFRSSxZQUFZLEdBQUcwRjtRQUN2QjlGLFFBQVFLLGtCQUFrQixHQUFHQTtRQUM3QkwsUUFBUW1ELFlBQVksR0FBR0Y7UUFDdkJqRCxRQUFRa0QsWUFBWSxHQUFHQTtRQUV2QixPQUFPM0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY1IsT0FBT0M7SUFDOUIsR0FDQSxJQUFNRDtBQUVWIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL25hdmlnYXRlLXJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHtcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG4gIEZsaWdodFNlZ21lbnRQYXRoLFxufSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7IGZldGNoU2VydmVyUmVzcG9uc2UgfSBmcm9tICcuLi9mZXRjaC1zZXJ2ZXItcmVzcG9uc2UnXG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gJy4uL2NyZWF0ZS1ocmVmLWZyb20tdXJsJ1xuaW1wb3J0IHsgaW52YWxpZGF0ZUNhY2hlQmVsb3dGbGlnaHRTZWdtZW50UGF0aCB9IGZyb20gJy4uL2ludmFsaWRhdGUtY2FjaGUtYmVsb3ctZmxpZ2h0LXNlZ21lbnRwYXRoJ1xuaW1wb3J0IHsgYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlIH0gZnJvbSAnLi4vYXBwbHktcm91dGVyLXN0YXRlLXBhdGNoLXRvLXRyZWUnXG5pbXBvcnQgeyBzaG91bGRIYXJkTmF2aWdhdGUgfSBmcm9tICcuLi9zaG91bGQtaGFyZC1uYXZpZ2F0ZSdcbmltcG9ydCB7IGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCB9IGZyb20gJy4uL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0J1xuaW1wb3J0IHtcbiAgUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzLFxuICB0eXBlIE11dGFibGUsXG4gIHR5cGUgTmF2aWdhdGVBY3Rpb24sXG4gIHR5cGUgUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIHR5cGUgUmVkdWNlclN0YXRlLFxufSBmcm9tICcuLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IGhhbmRsZU11dGFibGUgfSBmcm9tICcuLi9oYW5kbGUtbXV0YWJsZSdcbmltcG9ydCB7IGFwcGx5RmxpZ2h0RGF0YSB9IGZyb20gJy4uL2FwcGx5LWZsaWdodC1kYXRhJ1xuaW1wb3J0IHsgcHJlZmV0Y2hRdWV1ZSB9IGZyb20gJy4vcHJlZmV0Y2gtcmVkdWNlcidcbmltcG9ydCB7IGNyZWF0ZUVtcHR5Q2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vYXBwLXJvdXRlcidcbmltcG9ydCB7IERFRkFVTFRfU0VHTUVOVF9LRVkgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL3NlZ21lbnQnXG5pbXBvcnQgeyBsaXN0ZW5Gb3JEeW5hbWljUmVxdWVzdCwgc3RhcnRQUFJOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vcHByLW5hdmlnYXRpb25zJ1xuaW1wb3J0IHtcbiAgZ2V0T3JDcmVhdGVQcmVmZXRjaENhY2hlRW50cnksXG4gIHBydW5lUHJlZmV0Y2hDYWNoZSxcbn0gZnJvbSAnLi4vcHJlZmV0Y2gtY2FjaGUtdXRpbHMnXG5pbXBvcnQgeyBjbGVhckNhY2hlTm9kZURhdGFGb3JTZWdtZW50UGF0aCB9IGZyb20gJy4uL2NsZWFyLWNhY2hlLW5vZGUtZGF0YS1mb3Itc2VnbWVudC1wYXRoJ1xuaW1wb3J0IHsgaGFuZGxlQWxpYXNlZFByZWZldGNoRW50cnkgfSBmcm9tICcuLi9hbGlhc2VkLXByZWZldGNoLW5hdmlnYXRpb25zJ1xuaW1wb3J0IHtcbiAgbmF2aWdhdGUgYXMgbmF2aWdhdGVVc2luZ1NlZ21lbnRDYWNoZSxcbiAgTmF2aWdhdGlvblJlc3VsdFRhZyxcbiAgdHlwZSBOYXZpZ2F0aW9uUmVzdWx0LFxufSBmcm9tICcuLi8uLi9zZWdtZW50LWNhY2hlJ1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlRXh0ZXJuYWxVcmwoXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgbXV0YWJsZTogTXV0YWJsZSxcbiAgdXJsOiBzdHJpbmcsXG4gIHBlbmRpbmdQdXNoOiBib29sZWFuXG4pIHtcbiAgbXV0YWJsZS5tcGFOYXZpZ2F0aW9uID0gdHJ1ZVxuICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IHVybFxuICBtdXRhYmxlLnBlbmRpbmdQdXNoID0gcGVuZGluZ1B1c2hcbiAgbXV0YWJsZS5zY3JvbGxhYmxlU2VnbWVudHMgPSB1bmRlZmluZWRcblxuICByZXR1cm4gaGFuZGxlTXV0YWJsZShzdGF0ZSwgbXV0YWJsZSlcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVTZWdtZW50c0Zyb21QYXRjaChcbiAgZmxpZ2h0Um91dGVyUGF0Y2g6IEZsaWdodFJvdXRlclN0YXRlXG4pOiBGbGlnaHRTZWdtZW50UGF0aFtdIHtcbiAgY29uc3Qgc2VnbWVudHM6IEZsaWdodFNlZ21lbnRQYXRoW10gPSBbXVxuICBjb25zdCBbc2VnbWVudCwgcGFyYWxsZWxSb3V0ZXNdID0gZmxpZ2h0Um91dGVyUGF0Y2hcblxuICBpZiAoT2JqZWN0LmtleXMocGFyYWxsZWxSb3V0ZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbW3NlZ21lbnRdXVxuICB9XG5cbiAgZm9yIChjb25zdCBbcGFyYWxsZWxSb3V0ZUtleSwgcGFyYWxsZWxSb3V0ZV0gb2YgT2JqZWN0LmVudHJpZXMoXG4gICAgcGFyYWxsZWxSb3V0ZXNcbiAgKSkge1xuICAgIGZvciAoY29uc3QgY2hpbGRTZWdtZW50IG9mIGdlbmVyYXRlU2VnbWVudHNGcm9tUGF0Y2gocGFyYWxsZWxSb3V0ZSkpIHtcbiAgICAgIC8vIElmIHRoZSBzZWdtZW50IGlzIGVtcHR5LCBpdCBtZWFucyB3ZSBhcmUgYXQgdGhlIHJvb3Qgb2YgdGhlIHRyZWVcbiAgICAgIGlmIChzZWdtZW50ID09PSAnJykge1xuICAgICAgICBzZWdtZW50cy5wdXNoKFtwYXJhbGxlbFJvdXRlS2V5LCAuLi5jaGlsZFNlZ21lbnRdKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VnbWVudHMucHVzaChbc2VnbWVudCwgcGFyYWxsZWxSb3V0ZUtleSwgLi4uY2hpbGRTZWdtZW50XSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc2VnbWVudHNcbn1cblxuZnVuY3Rpb24gdHJpZ2dlckxhenlGZXRjaEZvckxlYWZTZWdtZW50cyhcbiAgbmV3Q2FjaGU6IENhY2hlTm9kZSxcbiAgY3VycmVudENhY2hlOiBDYWNoZU5vZGUsXG4gIGZsaWdodFNlZ21lbnRQYXRoOiBGbGlnaHRTZWdtZW50UGF0aCxcbiAgdHJlZVBhdGNoOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKSB7XG4gIGxldCBhcHBsaWVkUGF0Y2ggPSBmYWxzZVxuXG4gIG5ld0NhY2hlLnJzYyA9IGN1cnJlbnRDYWNoZS5yc2NcbiAgbmV3Q2FjaGUucHJlZmV0Y2hSc2MgPSBjdXJyZW50Q2FjaGUucHJlZmV0Y2hSc2NcbiAgbmV3Q2FjaGUubG9hZGluZyA9IGN1cnJlbnRDYWNoZS5sb2FkaW5nXG4gIG5ld0NhY2hlLnBhcmFsbGVsUm91dGVzID0gbmV3IE1hcChjdXJyZW50Q2FjaGUucGFyYWxsZWxSb3V0ZXMpXG5cbiAgY29uc3Qgc2VnbWVudFBhdGhzVG9GaWxsID0gZ2VuZXJhdGVTZWdtZW50c0Zyb21QYXRjaCh0cmVlUGF0Y2gpLm1hcChcbiAgICAoc2VnbWVudCkgPT4gWy4uLmZsaWdodFNlZ21lbnRQYXRoLCAuLi5zZWdtZW50XVxuICApXG5cbiAgZm9yIChjb25zdCBzZWdtZW50UGF0aHMgb2Ygc2VnbWVudFBhdGhzVG9GaWxsKSB7XG4gICAgY2xlYXJDYWNoZU5vZGVEYXRhRm9yU2VnbWVudFBhdGgobmV3Q2FjaGUsIGN1cnJlbnRDYWNoZSwgc2VnbWVudFBhdGhzKVxuXG4gICAgYXBwbGllZFBhdGNoID0gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGFwcGxpZWRQYXRjaFxufVxuXG5mdW5jdGlvbiBoYW5kbGVOYXZpZ2F0aW9uUmVzdWx0KFxuICB1cmw6IFVSTCxcbiAgc3RhdGU6IFJlYWRvbmx5UmVkdWNlclN0YXRlLFxuICBtdXRhYmxlOiBNdXRhYmxlLFxuICBwZW5kaW5nUHVzaDogYm9vbGVhbixcbiAgcmVzdWx0OiBOYXZpZ2F0aW9uUmVzdWx0XG4pOiBSZWR1Y2VyU3RhdGUge1xuICBzd2l0Y2ggKHJlc3VsdC50YWcpIHtcbiAgICBjYXNlIE5hdmlnYXRpb25SZXN1bHRUYWcuTVBBOiB7XG4gICAgICAvLyBQZXJmb3JtIGFuIE1QQSBuYXZpZ2F0aW9uLlxuICAgICAgY29uc3QgbmV3VXJsID0gcmVzdWx0LmRhdGFcbiAgICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChzdGF0ZSwgbXV0YWJsZSwgbmV3VXJsLCBwZW5kaW5nUHVzaClcbiAgICB9XG4gICAgY2FzZSBOYXZpZ2F0aW9uUmVzdWx0VGFnLk5vT3A6IHtcbiAgICAgIC8vIFRoZSBzZXJ2ZXIgcmVzcG9uZGVkIHdpdGggbm8gY2hhbmdlIHRvIHRoZSBjdXJyZW50IHBhZ2UuIEhvd2V2ZXIsIGlmXG4gICAgICAvLyB0aGUgVVJMIGNoYW5nZWQsIHdlIHN0aWxsIG5lZWQgdG8gdXBkYXRlIHRoYXQuXG4gICAgICBjb25zdCBuZXdDYW5vbmljYWxVcmwgPSByZXN1bHQuZGF0YS5jYW5vbmljYWxVcmxcbiAgICAgIG11dGFibGUuY2Fub25pY2FsVXJsID0gbmV3Q2Fub25pY2FsVXJsXG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBvbmx5IHRoaW5nIHRoYXQgY2hhbmdlZCB3YXMgdGhlIGhhc2ggZnJhZ21lbnQuXG4gICAgICBjb25zdCBvbGRVcmwgPSBuZXcgVVJMKHN0YXRlLmNhbm9uaWNhbFVybCwgdXJsKVxuICAgICAgY29uc3Qgb25seUhhc2hDaGFuZ2UgPVxuICAgICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGNvbXBhcmUgdGhlIG9yaWdpbnMsIGJlY2F1c2UgY2xpZW50LWRyaXZlblxuICAgICAgICAvLyBuYXZpZ2F0aW9ucyBhcmUgYWx3YXlzIHNhbWUtb3JpZ2luLlxuICAgICAgICB1cmwucGF0aG5hbWUgPT09IG9sZFVybC5wYXRobmFtZSAmJlxuICAgICAgICB1cmwuc2VhcmNoID09PSBvbGRVcmwuc2VhcmNoICYmXG4gICAgICAgIHVybC5oYXNoICE9PSBvbGRVcmwuaGFzaFxuICAgICAgaWYgKG9ubHlIYXNoQ2hhbmdlKSB7XG4gICAgICAgIC8vIFRoZSBvbmx5IHVwZGF0ZWQgcGFydCBvZiB0aGUgVVJMIGlzIHRoZSBoYXNoLlxuICAgICAgICBtdXRhYmxlLm9ubHlIYXNoQ2hhbmdlID0gdHJ1ZVxuICAgICAgICBtdXRhYmxlLnNob3VsZFNjcm9sbCA9IHJlc3VsdC5kYXRhLnNob3VsZFNjcm9sbFxuICAgICAgICBtdXRhYmxlLmhhc2hGcmFnbWVudCA9IHVybC5oYXNoXG4gICAgICAgIC8vIFNldHRpbmcgdGhpcyB0byBhbiBlbXB0eSBhcnJheSB0cmlnZ2VycyBhIHNjcm9sbCBmb3IgYWxsIG5ldyBhbmRcbiAgICAgICAgLy8gdXBkYXRlZCBzZWdtZW50cy4gU2VlIGBTY3JvbGxBbmRGb2N1c0hhbmRsZXJgIGZvciBtb3JlIGRldGFpbHMuXG4gICAgICAgIG11dGFibGUuc2Nyb2xsYWJsZVNlZ21lbnRzID0gW11cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGhhbmRsZU11dGFibGUoc3RhdGUsIG11dGFibGUpXG4gICAgfVxuICAgIGNhc2UgTmF2aWdhdGlvblJlc3VsdFRhZy5TdWNjZXNzOiB7XG4gICAgICAvLyBSZWNlaXZlZCBhIG5ldyByZXN1bHQuXG4gICAgICBtdXRhYmxlLmNhY2hlID0gcmVzdWx0LmRhdGEuY2FjaGVOb2RlXG4gICAgICBtdXRhYmxlLnBhdGNoZWRUcmVlID0gcmVzdWx0LmRhdGEuZmxpZ2h0Um91dGVyU3RhdGVcbiAgICAgIG11dGFibGUuY2Fub25pY2FsVXJsID0gcmVzdWx0LmRhdGEuY2Fub25pY2FsVXJsXG4gICAgICBtdXRhYmxlLnNjcm9sbGFibGVTZWdtZW50cyA9IHJlc3VsdC5kYXRhLnNjcm9sbGFibGVTZWdtZW50c1xuICAgICAgbXV0YWJsZS5zaG91bGRTY3JvbGwgPSByZXN1bHQuZGF0YS5zaG91bGRTY3JvbGxcbiAgICAgIG11dGFibGUuaGFzaEZyYWdtZW50ID0gcmVzdWx0LmRhdGEuaGFzaFxuICAgICAgcmV0dXJuIGhhbmRsZU11dGFibGUoc3RhdGUsIG11dGFibGUpXG4gICAgfVxuICAgIGNhc2UgTmF2aWdhdGlvblJlc3VsdFRhZy5Bc3luYzoge1xuICAgICAgcmV0dXJuIHJlc3VsdC5kYXRhLnRoZW4oXG4gICAgICAgIChhc3luY1Jlc3VsdCkgPT5cbiAgICAgICAgICBoYW5kbGVOYXZpZ2F0aW9uUmVzdWx0KHVybCwgc3RhdGUsIG11dGFibGUsIHBlbmRpbmdQdXNoLCBhc3luY1Jlc3VsdCksXG4gICAgICAgIC8vIElmIHRoZSBuYXZpZ2F0aW9uIGZhaWxlZCwgcmV0dXJuIHRoZSBjdXJyZW50IHN0YXRlLlxuICAgICAgICAvLyBUT0RPOiBUaGlzIG1hdGNoZXMgdGhlIGN1cnJlbnQgYmVoYXZpb3IgYnV0IHdlIG5lZWQgdG8gZG8gc29tZXRoaW5nXG4gICAgICAgIC8vIGJldHRlciBoZXJlIGlmIHRoZSBuZXR3b3JrIGZhaWxzLlxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmVzdWx0IHNhdGlzZmllcyBuZXZlclxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuYXZpZ2F0ZVJlZHVjZXIoXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgYWN0aW9uOiBOYXZpZ2F0ZUFjdGlvblxuKTogUmVkdWNlclN0YXRlIHtcbiAgY29uc3QgeyB1cmwsIGlzRXh0ZXJuYWxVcmwsIG5hdmlnYXRlVHlwZSwgc2hvdWxkU2Nyb2xsLCBhbGxvd0FsaWFzaW5nIH0gPVxuICAgIGFjdGlvblxuICBjb25zdCBtdXRhYmxlOiBNdXRhYmxlID0ge31cbiAgY29uc3QgeyBoYXNoIH0gPSB1cmxcbiAgY29uc3QgaHJlZiA9IGNyZWF0ZUhyZWZGcm9tVXJsKHVybClcbiAgY29uc3QgcGVuZGluZ1B1c2ggPSBuYXZpZ2F0ZVR5cGUgPT09ICdwdXNoJ1xuICAvLyB3ZSB3YW50IHRvIHBydW5lIHRoZSBwcmVmZXRjaCBjYWNoZSBvbiBldmVyeSBuYXZpZ2F0aW9uIHRvIGF2b2lkIGl0IGdyb3dpbmcgdG9vIGxhcmdlXG4gIHBydW5lUHJlZmV0Y2hDYWNoZShzdGF0ZS5wcmVmZXRjaENhY2hlKVxuXG4gIG11dGFibGUucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUgPSBmYWxzZVxuICBtdXRhYmxlLnBlbmRpbmdQdXNoID0gcGVuZGluZ1B1c2hcblxuICBpZiAoaXNFeHRlcm5hbFVybCkge1xuICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChzdGF0ZSwgbXV0YWJsZSwgdXJsLnRvU3RyaW5nKCksIHBlbmRpbmdQdXNoKVxuICB9XG5cbiAgLy8gSGFuZGxlcyBjYXNlIHdoZXJlIGA8bWV0YSBodHRwLWVxdWl2PVwicmVmcmVzaFwiPmAgdGFnIGlzIHByZXNlbnQsXG4gIC8vIHdoaWNoIHdpbGwgdHJpZ2dlciBhbiBNUEEgbmF2aWdhdGlvbi5cbiAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfX25leHQtcGFnZS1yZWRpcmVjdCcpKSB7XG4gICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCBtdXRhYmxlLCBocmVmLCBwZW5kaW5nUHVzaClcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEUpIHtcbiAgICAvLyAoVmVyeSBFYXJseSBFeHBlcmltZW50YWwgRmVhdHVyZSkgU2VnbWVudCBDYWNoZVxuICAgIC8vXG4gICAgLy8gQnlwYXNzIHRoZSBub3JtYWwgcHJlZmV0Y2ggY2FjaGUgYW5kIHVzZSB0aGUgbmV3IHBlci1zZWdtZW50IGNhY2hlXG4gICAgLy8gaW1wbGVtZW50YXRpb24gaW5zdGVhZC4gVGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBpZiBQUFIgaXMgZW5hYmxlZCwgdG9vLlxuICAgIC8vXG4gICAgLy8gVGVtcG9yYXJ5IGdsdWUgY29kZSBiZXR3ZWVuIHRoZSByb3V0ZXIgcmVkdWNlciBhbmQgdGhlIG5ldyBuYXZpZ2F0aW9uXG4gICAgLy8gaW1wbGVtZW50YXRpb24uIEV2ZW50dWFsbHkgd2UnbGwgcmV3cml0ZSB0aGUgcm91dGVyIHJlZHVjZXIgdG8gYVxuICAgIC8vIHN0YXRlIG1hY2hpbmUuXG4gICAgY29uc3QgcmVzdWx0ID0gbmF2aWdhdGVVc2luZ1NlZ21lbnRDYWNoZShcbiAgICAgIHVybCxcbiAgICAgIHN0YXRlLmNhY2hlLFxuICAgICAgc3RhdGUudHJlZSxcbiAgICAgIHN0YXRlLm5leHRVcmwsXG4gICAgICBzaG91bGRTY3JvbGxcbiAgICApXG4gICAgcmV0dXJuIGhhbmRsZU5hdmlnYXRpb25SZXN1bHQodXJsLCBzdGF0ZSwgbXV0YWJsZSwgcGVuZGluZ1B1c2gsIHJlc3VsdClcbiAgfVxuXG4gIGNvbnN0IHByZWZldGNoVmFsdWVzID0gZ2V0T3JDcmVhdGVQcmVmZXRjaENhY2hlRW50cnkoe1xuICAgIHVybCxcbiAgICBuZXh0VXJsOiBzdGF0ZS5uZXh0VXJsLFxuICAgIHRyZWU6IHN0YXRlLnRyZWUsXG4gICAgcHJlZmV0Y2hDYWNoZTogc3RhdGUucHJlZmV0Y2hDYWNoZSxcbiAgICBhbGxvd0FsaWFzaW5nLFxuICB9KVxuICBjb25zdCB7IHRyZWVBdFRpbWVPZlByZWZldGNoLCBkYXRhIH0gPSBwcmVmZXRjaFZhbHVlc1xuXG4gIHByZWZldGNoUXVldWUuYnVtcChkYXRhKVxuXG4gIHJldHVybiBkYXRhLnRoZW4oXG4gICAgKHsgZmxpZ2h0RGF0YSwgY2Fub25pY2FsVXJsOiBjYW5vbmljYWxVcmxPdmVycmlkZSwgcG9zdHBvbmVkIH0pID0+IHtcbiAgICAgIGNvbnN0IG5hdmlnYXRlZEF0ID0gRGF0ZS5ub3coKVxuXG4gICAgICBsZXQgaXNGaXJzdFJlYWQgPSBmYWxzZVxuICAgICAgLy8gd2Ugb25seSB3YW50IHRvIG1hcmsgdGhpcyBvbmNlXG4gICAgICBpZiAoIXByZWZldGNoVmFsdWVzLmxhc3RVc2VkVGltZSkge1xuICAgICAgICAvLyBpbXBvcnRhbnQ6IHdlIHNob3VsZCBvbmx5IG1hcmsgdGhlIGNhY2hlIG5vZGUgYXMgZGlydHkgYWZ0ZXIgd2UgdW5zdXNwZW5kIGZyb20gdGhlIGNhbGwgYWJvdmVcbiAgICAgICAgcHJlZmV0Y2hWYWx1ZXMubGFzdFVzZWRUaW1lID0gbmF2aWdhdGVkQXRcbiAgICAgICAgaXNGaXJzdFJlYWQgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChwcmVmZXRjaFZhbHVlcy5hbGlhc2VkKSB7XG4gICAgICAgIC8vIFdoZW4gYWxpYXMgaXMgZW5hYmxlZCwgc2VhcmNoIHBhcmFtIG1heSBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIGNhbm9uaWNhbFVybC5cbiAgICAgICAgLy8gQnV0IHdlIHdhbnQgdG8gc2V0IHVybCB0byBjYW5vbmljYWxVcmwgc28gdGhhdCB3ZSB1c2UgcmVkaXJlY3RlZCBwYXRoIGZvciBmZXRjaGluZyBkeW5hbWljIGRhdGEuXG4gICAgICAgIGNvbnN0IHVybFdpdGhDYW5vbmljYWxQYXRobmFtZSA9IG5ldyBVUkwodXJsLmhyZWYpXG4gICAgICAgIGlmIChjYW5vbmljYWxVcmxPdmVycmlkZSkge1xuICAgICAgICAgIHVybFdpdGhDYW5vbmljYWxQYXRobmFtZS5wYXRobmFtZSA9IGNhbm9uaWNhbFVybE92ZXJyaWRlLnBhdGhuYW1lXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSBoYW5kbGVBbGlhc2VkUHJlZmV0Y2hFbnRyeShcbiAgICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICBmbGlnaHREYXRhLFxuICAgICAgICAgIHVybFdpdGhDYW5vbmljYWxQYXRobmFtZSxcbiAgICAgICAgICBtdXRhYmxlXG4gICAgICAgIClcblxuICAgICAgICAvLyBXZSBkaWRuJ3QgcmV0dXJuIG5ldyByb3V0ZXIgc3RhdGUgYmVjYXVzZSB3ZSBkaWRuJ3QgYXBwbHkgdGhlIGFsaWFzZWQgZW50cnkgZm9yIHNvbWUgcmVhc29uLlxuICAgICAgICAvLyBXZSdsbCByZS1pbnZva2UgdGhlIG5hdmlnYXRpb24gaGFuZGxlciBidXQgZW5zdXJlIHRoYXQgd2UgZG9uJ3QgYXR0ZW1wdCB0byB1c2UgdGhlIGFsaWFzZWQgZW50cnkuIFRoaXNcbiAgICAgICAgLy8gd2lsbCBjcmVhdGUgYW4gb24tZGVtYW5kIHByZWZldGNoIGVudHJ5LlxuICAgICAgICBpZiAocmVzdWx0ID09PSBmYWxzZSkge1xuICAgICAgICAgIHJldHVybiBuYXZpZ2F0ZVJlZHVjZXIoc3RhdGUsIHsgLi4uYWN0aW9uLCBhbGxvd0FsaWFzaW5nOiBmYWxzZSB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5hdmlnYXRpbmcgdG8gcGFnZSBpbiBgcGFnZXNgIGZyb20gYGFwcGBcbiAgICAgIGlmICh0eXBlb2YgZmxpZ2h0RGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCBtdXRhYmxlLCBmbGlnaHREYXRhLCBwZW5kaW5nUHVzaClcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXBkYXRlZENhbm9uaWNhbFVybCA9IGNhbm9uaWNhbFVybE92ZXJyaWRlXG4gICAgICAgID8gY3JlYXRlSHJlZkZyb21VcmwoY2Fub25pY2FsVXJsT3ZlcnJpZGUpXG4gICAgICAgIDogaHJlZlxuXG4gICAgICBjb25zdCBvbmx5SGFzaENoYW5nZSA9XG4gICAgICAgICEhaGFzaCAmJlxuICAgICAgICBzdGF0ZS5jYW5vbmljYWxVcmwuc3BsaXQoJyMnLCAxKVswXSA9PT1cbiAgICAgICAgICB1cGRhdGVkQ2Fub25pY2FsVXJsLnNwbGl0KCcjJywgMSlbMF1cblxuICAgICAgLy8gSWYgb25seSB0aGUgaGFzaCBoYXMgY2hhbmdlZCwgdGhlIHNlcnZlciBoYXNuJ3Qgc2VudCB1cyBhbnkgbmV3IGRhdGEuIFdlIGNhbiBqdXN0IHVwZGF0ZVxuICAgICAgLy8gdGhlIG11dGFibGUgcHJvcGVydGllcyByZXNwb25zaWJsZSBmb3IgVVJMIGFuZCBzY3JvbGwgaGFuZGxpbmcgYW5kIHJldHVybiBlYXJseS5cbiAgICAgIGlmIChvbmx5SGFzaENoYW5nZSkge1xuICAgICAgICBtdXRhYmxlLm9ubHlIYXNoQ2hhbmdlID0gdHJ1ZVxuICAgICAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IHVwZGF0ZWRDYW5vbmljYWxVcmxcbiAgICAgICAgbXV0YWJsZS5zaG91bGRTY3JvbGwgPSBzaG91bGRTY3JvbGxcbiAgICAgICAgbXV0YWJsZS5oYXNoRnJhZ21lbnQgPSBoYXNoXG4gICAgICAgIG11dGFibGUuc2Nyb2xsYWJsZVNlZ21lbnRzID0gW11cbiAgICAgICAgcmV0dXJuIGhhbmRsZU11dGFibGUoc3RhdGUsIG11dGFibGUpXG4gICAgICB9XG5cbiAgICAgIGxldCBjdXJyZW50VHJlZSA9IHN0YXRlLnRyZWVcbiAgICAgIGxldCBjdXJyZW50Q2FjaGUgPSBzdGF0ZS5jYWNoZVxuICAgICAgbGV0IHNjcm9sbGFibGVTZWdtZW50czogRmxpZ2h0U2VnbWVudFBhdGhbXSA9IFtdXG4gICAgICBmb3IgKGNvbnN0IG5vcm1hbGl6ZWRGbGlnaHREYXRhIG9mIGZsaWdodERhdGEpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHBhdGhUb1NlZ21lbnQ6IGZsaWdodFNlZ21lbnRQYXRoLFxuICAgICAgICAgIHNlZWREYXRhLFxuICAgICAgICAgIGhlYWQsXG4gICAgICAgICAgaXNIZWFkUGFydGlhbCxcbiAgICAgICAgICBpc1Jvb3RSZW5kZXIsXG4gICAgICAgIH0gPSBub3JtYWxpemVkRmxpZ2h0RGF0YVxuICAgICAgICBsZXQgdHJlZVBhdGNoID0gbm9ybWFsaXplZEZsaWdodERhdGEudHJlZVxuXG4gICAgICAgIC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgICAgY29uc3QgZmxpZ2h0U2VnbWVudFBhdGhXaXRoTGVhZGluZ0VtcHR5ID0gWycnLCAuLi5mbGlnaHRTZWdtZW50UGF0aF1cblxuICAgICAgICAvLyBDcmVhdGUgbmV3IHRyZWUgYmFzZWQgb24gdGhlIGZsaWdodFNlZ21lbnRQYXRoIGFuZCByb3V0ZXIgc3RhdGUgcGF0Y2hcbiAgICAgICAgbGV0IG5ld1RyZWUgPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUoXG4gICAgICAgICAgLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgICAgIGZsaWdodFNlZ21lbnRQYXRoV2l0aExlYWRpbmdFbXB0eSxcbiAgICAgICAgICBjdXJyZW50VHJlZSxcbiAgICAgICAgICB0cmVlUGF0Y2gsXG4gICAgICAgICAgaHJlZlxuICAgICAgICApXG5cbiAgICAgICAgLy8gSWYgdGhlIHRyZWUgcGF0Y2ggY2FuJ3QgYmUgYXBwbGllZCB0byB0aGUgY3VycmVudCB0cmVlIHRoZW4gd2UgdXNlIHRoZSB0cmVlIGF0IHRpbWUgb2YgcHJlZmV0Y2hcbiAgICAgICAgLy8gVE9ETy1BUFA6IFRoaXMgc2hvdWxkIGluc3RlYWQgZmlsbCBpbiB0aGUgbWlzc2luZyBwaWVjZXMgaW4gYGN1cnJlbnRUcmVlYCB3aXRoIHRoZSBkYXRhIGZyb20gYHRyZWVBdFRpbWVPZlByZWZldGNoYCwgdGhlbiBhcHBseSB0aGUgcGF0Y2guXG4gICAgICAgIGlmIChuZXdUcmVlID09PSBudWxsKSB7XG4gICAgICAgICAgbmV3VHJlZSA9IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZShcbiAgICAgICAgICAgIC8vIFRPRE8tQVBQOiByZW1vdmUgJydcbiAgICAgICAgICAgIGZsaWdodFNlZ21lbnRQYXRoV2l0aExlYWRpbmdFbXB0eSxcbiAgICAgICAgICAgIHRyZWVBdFRpbWVPZlByZWZldGNoLFxuICAgICAgICAgICAgdHJlZVBhdGNoLFxuICAgICAgICAgICAgaHJlZlxuICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdUcmVlICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgLy8gVGhpcyBpcyBqdXN0IGEgcGFyYW5vaWQgY2hlY2suIFdoZW4gYSByb3V0ZSBpcyBQUFJlZCwgdGhlIHNlcnZlclxuICAgICAgICAgICAgLy8gd2lsbCBzZW5kIGJhY2sgYSBzdGF0aWMgcmVzcG9uc2UgdGhhdCdzIHJlbmRlcmVkIGZyb21cbiAgICAgICAgICAgIC8vIHRoZSByb290LiBJZiBmb3Igc29tZSByZWFzb24gaXQgZG9lc24ndCwgd2UgZmFsbCBiYWNrIHRvIHRoZVxuICAgICAgICAgICAgLy8gbm9uLVBQUiBpbXBsZW1lbnRhdGlvbi5cbiAgICAgICAgICAgIC8vIFRPRE86IFdlIHNob3VsZCBnZXQgcmlkIG9mIHRoZSBlbHNlIGJyYW5jaCBhbmQgZG8gYWxsIG5hdmlnYXRpb25zXG4gICAgICAgICAgICAvLyB2aWEgc3RhcnRQUFJOYXZpZ2F0aW9uLiBUaGUgY3VycmVudCBzdHJ1Y3R1cmUgaXMganVzdFxuICAgICAgICAgICAgLy8gYW4gaW5jcmVtZW50YWwgc3RlcC5cbiAgICAgICAgICAgIHNlZWREYXRhICYmXG4gICAgICAgICAgICBpc1Jvb3RSZW5kZXIgJiZcbiAgICAgICAgICAgIHBvc3Rwb25lZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgdGFzayA9IHN0YXJ0UFBSTmF2aWdhdGlvbihcbiAgICAgICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgICAgIGN1cnJlbnRDYWNoZSxcbiAgICAgICAgICAgICAgY3VycmVudFRyZWUsXG4gICAgICAgICAgICAgIHRyZWVQYXRjaCxcbiAgICAgICAgICAgICAgc2VlZERhdGEsXG4gICAgICAgICAgICAgIGhlYWQsXG4gICAgICAgICAgICAgIGlzSGVhZFBhcnRpYWwsXG4gICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICBzY3JvbGxhYmxlU2VnbWVudHNcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgaWYgKHRhc2sgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgaWYgKHRhc2sucm91dGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyBEZXRlY3RlZCBhIGNoYW5nZSB0byB0aGUgcm9vdCBsYXlvdXQuIFBlcmZvcm0gYW4gZnVsbC1cbiAgICAgICAgICAgICAgICAvLyBwYWdlIG5hdmlnYXRpb24uXG4gICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKHN0YXRlLCBtdXRhYmxlLCBocmVmLCBwZW5kaW5nUHVzaClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyBVc2UgdGhlIHRyZWUgY29tcHV0ZWQgYnkgc3RhcnRQUFJOYXZpZ2F0aW9uIGluc3RlYWRcbiAgICAgICAgICAgICAgLy8gb2YgdGhlIG9uZSBjb21wdXRlZCBieSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUuXG4gICAgICAgICAgICAgIC8vIFRPRE86IFdlIHNob3VsZCByZW1vdmUgYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlXG4gICAgICAgICAgICAgIC8vIGZyb20gdGhlIFBQUiBwYXRoIGVudGlyZWx5LlxuICAgICAgICAgICAgICBjb25zdCBwYXRjaGVkUm91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlID0gdGFzay5yb3V0ZVxuICAgICAgICAgICAgICBuZXdUcmVlID0gcGF0Y2hlZFJvdXRlclN0YXRlXG5cbiAgICAgICAgICAgICAgY29uc3QgbmV3Q2FjaGUgPSB0YXNrLm5vZGVcbiAgICAgICAgICAgICAgaWYgKG5ld0NhY2hlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gV2UndmUgY3JlYXRlZCBhIG5ldyBDYWNoZSBOb2RlIHRyZWUgdGhhdCBjb250YWlucyBhIHByZWZldGNoZWRcbiAgICAgICAgICAgICAgICAvLyB2ZXJzaW9uIG9mIHRoZSBuZXh0IHBhZ2UuIFRoaXMgY2FuIGJlIHJlbmRlcmVkIGluc3RhbnRseS5cbiAgICAgICAgICAgICAgICBtdXRhYmxlLmNhY2hlID0gbmV3Q2FjaGVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBkeW5hbWljUmVxdWVzdFRyZWUgPSB0YXNrLmR5bmFtaWNSZXF1ZXN0VHJlZVxuICAgICAgICAgICAgICBpZiAoZHluYW1pY1JlcXVlc3RUcmVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByZWZldGNoZWQgdHJlZSBoYXMgZHluYW1pYyBob2xlcyBpbiBpdC4gV2UgaW5pdGlhdGUgYVxuICAgICAgICAgICAgICAgIC8vIGR5bmFtaWMgcmVxdWVzdCB0byBmaWxsIHRoZW0gaW4uXG4gICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICAvLyBEbyBub3QgYmxvY2sgb24gdGhlIHJlc3VsdC4gV2UnbGwgaW1tZWRpYXRlbHkgcmVuZGVyIHRoZSBDYWNoZVxuICAgICAgICAgICAgICAgIC8vIE5vZGUgdHJlZSBhbmQgc3VzcGVuZCBvbiB0aGUgZHluYW1pYyBwYXJ0cy4gV2hlbiB0aGUgcmVxdWVzdFxuICAgICAgICAgICAgICAgIC8vIGNvbWVzIGluLCB3ZSdsbCBmaWxsIGluIG1pc3NpbmcgZGF0YSBhbmQgcGluZyBSZWFjdCB0b1xuICAgICAgICAgICAgICAgIC8vIHJlLXJlbmRlci4gVW5saWtlIHRoZSBsYXp5IGZldGNoaW5nIG1vZGVsIGluIHRoZSBub24tUFBSXG4gICAgICAgICAgICAgICAgLy8gaW1wbGVtZW50YXRpb24sIHRoaXMgaXMgbW9kZWxlZCBhcyBhIHNpbmdsZSBSZWFjdCB1cGRhdGUgK1xuICAgICAgICAgICAgICAgIC8vIHN0cmVhbWluZywgcmF0aGVyIHRoYW4gbXVsdGlwbGUgdG9wLWxldmVsIHVwZGF0ZXMuIChIb3dldmVyLFxuICAgICAgICAgICAgICAgIC8vIGV2ZW4gaW4gdGhlIG5ldyBtb2RlbCwgd2UnbGwgc3RpbGwgbmVlZCB0byBzb21ldGltZXMgdXBkYXRlIHRoZVxuICAgICAgICAgICAgICAgIC8vIHJvb3QgbXVsdGlwbGUgdGltZXMgcGVyIG5hdmlnYXRpb24sIGxpa2UgaWYgdGhlIHNlcnZlciBzZW5kcyB1c1xuICAgICAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IHJlc3BvbnNlIHRoYW4gd2UgZXhwZWN0ZWQuIEZvciBub3csIHdlIHJldmVydCBiYWNrXG4gICAgICAgICAgICAgICAgLy8gdG8gdGhlIGxhenkgZmV0Y2hpbmcgbWVjaGFuaXNtIGluIHRoYXQgY2FzZS4pXG4gICAgICAgICAgICAgICAgY29uc3QgZHluYW1pY1JlcXVlc3QgPSBmZXRjaFNlcnZlclJlc3BvbnNlKFxuICAgICAgICAgICAgICAgICAgbmV3IFVSTCh1cGRhdGVkQ2Fub25pY2FsVXJsLCB1cmwub3JpZ2luKSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmxpZ2h0Um91dGVyU3RhdGU6IGR5bmFtaWNSZXF1ZXN0VHJlZSxcbiAgICAgICAgICAgICAgICAgICAgbmV4dFVybDogc3RhdGUubmV4dFVybCxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JEeW5hbWljUmVxdWVzdCh0YXNrLCBkeW5hbWljUmVxdWVzdClcbiAgICAgICAgICAgICAgICAvLyBXZSBzdG9yZSB0aGUgZHluYW1pYyByZXF1ZXN0IG9uIHRoZSBgbGF6eURhdGFgIHByb3BlcnR5IG9mIHRoZSBDYWNoZU5vZGVcbiAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHdlJ3JlIG5vdCBnb2luZyB0byBhd2FpdCB0aGUgZHluYW1pYyByZXF1ZXN0IGhlcmUuIFNpbmNlIHdlJ3JlIG5vdCBibG9ja2luZ1xuICAgICAgICAgICAgICAgIC8vIG9uIHRoZSBkeW5hbWljIHJlcXVlc3QsIGBsYXlvdXQtcm91dGVyYCB3aWxsXG4gICAgICAgICAgICAgICAgLy8gdGFzay5ub2RlLmxhenlEYXRhID0gZHluYW1pY1JlcXVlc3RcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgcHJlZmV0Y2hlZCB0cmVlIGRvZXMgbm90IGNvbnRhaW4gZHluYW1pYyBob2xlcyDigJQgaXQnc1xuICAgICAgICAgICAgICAgIC8vIGZ1bGx5IHN0YXRpYy4gV2UgY2FuIHNraXAgdGhlIGR5bmFtaWMgcmVxdWVzdC5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gTm90aGluZyBjaGFuZ2VkLCBzbyByZXVzZSB0aGUgb2xkIGNhY2hlLlxuICAgICAgICAgICAgICAvLyBUT0RPOiBXaGF0IGlmIHRoZSBoZWFkIGNoYW5nZWQgYnV0IG5vdCBhbnkgb2YgdGhlIHNlZ21lbnQgZGF0YT9cbiAgICAgICAgICAgICAgLy8gSXMgdGhhdCBwb3NzaWJsZT8gSWYgc28sIHdlIHNob3VsZCBjbG9uZSB0aGUgd2hvbGUgdHJlZSBhbmRcbiAgICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBoZWFkLlxuICAgICAgICAgICAgICBuZXdUcmVlID0gdHJlZVBhdGNoXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRoZSBzdGF0aWMgcmVzcG9uc2UgZG9lcyBub3QgaW5jbHVkZSBhbnkgZHluYW1pYyBob2xlcywgc29cbiAgICAgICAgICAgIC8vIHRoZXJlJ3Mgbm8gbmVlZCB0byBkbyBhIHNlY29uZCByZXF1ZXN0LlxuICAgICAgICAgICAgLy8gVE9ETzogQXMgYW4gaW5jcmVtZW50YWwgc3RlcCB0aGlzIGp1c3QgcmV2ZXJ0cyBiYWNrIHRvIHRoZVxuICAgICAgICAgICAgLy8gbm9uLVBQUiBpbXBsZW1lbnRhdGlvbi4gV2UgY2FuIHNpbXBsaWZ5IHRoaXMgYnJhbmNoIGZ1cnRoZXIsXG4gICAgICAgICAgICAvLyBnaXZlbiB0aGF0IFBQUiBwcmVmZXRjaGVzIGFyZSBhbHdheXMgc3RhdGljIGFuZCByZXR1cm4gdGhlIHdob2xlXG4gICAgICAgICAgICAvLyB0cmVlLiBPciBpbiB0aGUgbWVhbnRpbWUgd2UgY291bGQgZmFjdG9yIGl0IG91dCBpbnRvIGFcbiAgICAgICAgICAgIC8vIHNlcGFyYXRlIGZ1bmN0aW9uLlxuXG4gICAgICAgICAgICBpZiAoaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0KGN1cnJlbnRUcmVlLCBuZXdUcmVlKSkge1xuICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoc3RhdGUsIG11dGFibGUsIGhyZWYsIHBlbmRpbmdQdXNoKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjYWNoZTogQ2FjaGVOb2RlID0gY3JlYXRlRW1wdHlDYWNoZU5vZGUoKVxuICAgICAgICAgICAgbGV0IGFwcGxpZWQgPSBmYWxzZVxuXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHByZWZldGNoVmFsdWVzLnN0YXR1cyA9PT0gUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzLnN0YWxlICYmXG4gICAgICAgICAgICAgICFpc0ZpcnN0UmVhZFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIC8vIFdoZW4gd2UgaGF2ZSBhIHN0YWxlIHByZWZldGNoIGVudHJ5LCB3ZSBvbmx5IHdhbnQgdG8gcmUtdXNlIHRoZSBsb2FkaW5nIHN0YXRlIG9mIHRoZSByb3V0ZSB3ZSdyZSBuYXZpZ2F0aW5nIHRvLCB0byBzdXBwb3J0IGluc3RhbnQgbG9hZGluZyBuYXZpZ2F0aW9uc1xuICAgICAgICAgICAgICAvLyB0aGlzIHdpbGwgdHJpZ2dlciBhIGxhenkgZmV0Y2ggZm9yIHRoZSBhY3R1YWwgcGFnZSBkYXRhIGJ5IG51bGxpbmcgdGhlIGByc2NgIGFuZCBgcHJlZmV0Y2hSc2NgIHZhbHVlcyBmb3IgcGFnZSBkYXRhLFxuICAgICAgICAgICAgICAvLyB3aGlsZSBjb3B5aW5nIG92ZXIgdGhlIGBsb2FkaW5nYCBmb3IgdGhlIHNlZ21lbnQgdGhhdCBjb250YWlucyB0aGUgcGFnZSBkYXRhLlxuICAgICAgICAgICAgICAvLyBXZSBvbmx5IGRvIHRoaXMgb24gc3Vic2VxdWVudCByZWFkcywgYXMgb3RoZXJ3aXNlIHRoZXJlJ2QgYmUgbm8gbG9hZGluZyBkYXRhIHRvIHJlLXVzZS5cblxuICAgICAgICAgICAgICAvLyBXZSBza2lwIHRoaXMgYnJhbmNoIGlmIG9ubHkgdGhlIGhhc2ggZnJhZ21lbnQgaGFzIGNoYW5nZWQsIGFzIHdlIGRvbid0IHdhbnQgdG8gdHJpZ2dlciBhIGxhenkgZmV0Y2ggaW4gdGhhdCBjYXNlXG4gICAgICAgICAgICAgIGFwcGxpZWQgPSB0cmlnZ2VyTGF6eUZldGNoRm9yTGVhZlNlZ21lbnRzKFxuICAgICAgICAgICAgICAgIGNhY2hlLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRDYWNoZSxcbiAgICAgICAgICAgICAgICBmbGlnaHRTZWdtZW50UGF0aCxcbiAgICAgICAgICAgICAgICB0cmVlUGF0Y2hcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSByZS11c2VkIHRoZSBzdGFsZSBjYWNoZSdzIGxvYWRpbmcgc3RhdGUgJiByZWZyZXNoZWQgdGhlIGRhdGEsXG4gICAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgYGxhc3RVc2VkVGltZWAgc28gdGhhdCBpdCBjYW4gY29udGludWUgdG8gYmUgcmUtdXNlZCBmb3IgdGhlIG5leHQgMzBzXG4gICAgICAgICAgICAgIHByZWZldGNoVmFsdWVzLmxhc3RVc2VkVGltZSA9IG5hdmlnYXRlZEF0XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhcHBsaWVkID0gYXBwbHlGbGlnaHREYXRhKFxuICAgICAgICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgICAgICAgIGN1cnJlbnRDYWNoZSxcbiAgICAgICAgICAgICAgICBjYWNoZSxcbiAgICAgICAgICAgICAgICBub3JtYWxpemVkRmxpZ2h0RGF0YSxcbiAgICAgICAgICAgICAgICBwcmVmZXRjaFZhbHVlc1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhhcmROYXZpZ2F0ZSA9IHNob3VsZEhhcmROYXZpZ2F0ZShcbiAgICAgICAgICAgICAgLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgICAgICAgICBmbGlnaHRTZWdtZW50UGF0aFdpdGhMZWFkaW5nRW1wdHksXG4gICAgICAgICAgICAgIGN1cnJlbnRUcmVlXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGlmIChoYXJkTmF2aWdhdGUpIHtcbiAgICAgICAgICAgICAgLy8gQ29weSByc2MgZm9yIHRoZSByb290IG5vZGUgb2YgdGhlIGNhY2hlLlxuICAgICAgICAgICAgICBjYWNoZS5yc2MgPSBjdXJyZW50Q2FjaGUucnNjXG4gICAgICAgICAgICAgIGNhY2hlLnByZWZldGNoUnNjID0gY3VycmVudENhY2hlLnByZWZldGNoUnNjXG5cbiAgICAgICAgICAgICAgaW52YWxpZGF0ZUNhY2hlQmVsb3dGbGlnaHRTZWdtZW50UGF0aChcbiAgICAgICAgICAgICAgICBjYWNoZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50Q2FjaGUsXG4gICAgICAgICAgICAgICAgZmxpZ2h0U2VnbWVudFBhdGhcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAvLyBFbnN1cmUgdGhlIGV4aXN0aW5nIGNhY2hlIHZhbHVlIGlzIHVzZWQgd2hlbiB0aGUgY2FjaGUgd2FzIG5vdCBpbnZhbGlkYXRlZC5cbiAgICAgICAgICAgICAgbXV0YWJsZS5jYWNoZSA9IGNhY2hlXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFwcGxpZWQpIHtcbiAgICAgICAgICAgICAgbXV0YWJsZS5jYWNoZSA9IGNhY2hlXG4gICAgICAgICAgICAgIC8vIElmIHdlIGFwcGxpZWQgdGhlIGNhY2hlLCB3ZSB1cGRhdGUgdGhlIFwiY3VycmVudCBjYWNoZVwiIHZhbHVlIHNvIGFueSBvdGhlclxuICAgICAgICAgICAgICAvLyBzZWdtZW50cyBpbiB0aGUgRmxpZ2h0RGF0YVBhdGggd2lsbCBiZSBhYmxlIHRvIHJlZmVyZW5jZSB0aGUgdXBkYXRlZCBjYWNoZS5cbiAgICAgICAgICAgICAgY3VycmVudENhY2hlID0gY2FjaGVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCBzdWJTZWdtZW50IG9mIGdlbmVyYXRlU2VnbWVudHNGcm9tUGF0Y2godHJlZVBhdGNoKSkge1xuICAgICAgICAgICAgICBjb25zdCBzY3JvbGxhYmxlU2VnbWVudFBhdGggPSBbXG4gICAgICAgICAgICAgICAgLi4uZmxpZ2h0U2VnbWVudFBhdGgsXG4gICAgICAgICAgICAgICAgLi4uc3ViU2VnbWVudCxcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAvLyBGaWx0ZXIgb3V0IHRoZSBfX0RFRkFVTFRfXyBwYXRocyBhcyB0aGV5IHNob3VsZG4ndCBiZSBzY3JvbGxlZCB0byBpbiB0aGlzIGNhc2UuXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBzY3JvbGxhYmxlU2VnbWVudFBhdGhbc2Nyb2xsYWJsZVNlZ21lbnRQYXRoLmxlbmd0aCAtIDFdICE9PVxuICAgICAgICAgICAgICAgIERFRkFVTFRfU0VHTUVOVF9LRVlcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsYWJsZVNlZ21lbnRzLnB1c2goc2Nyb2xsYWJsZVNlZ21lbnRQYXRoKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY3VycmVudFRyZWUgPSBuZXdUcmVlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbXV0YWJsZS5wYXRjaGVkVHJlZSA9IGN1cnJlbnRUcmVlXG4gICAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IHVwZGF0ZWRDYW5vbmljYWxVcmxcbiAgICAgIG11dGFibGUuc2Nyb2xsYWJsZVNlZ21lbnRzID0gc2Nyb2xsYWJsZVNlZ21lbnRzXG4gICAgICBtdXRhYmxlLmhhc2hGcmFnbWVudCA9IGhhc2hcbiAgICAgIG11dGFibGUuc2hvdWxkU2Nyb2xsID0gc2hvdWxkU2Nyb2xsXG5cbiAgICAgIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKVxuICAgIH0sXG4gICAgKCkgPT4gc3RhdGVcbiAgKVxufVxuIl0sIm5hbWVzIjpbImhhbmRsZUV4dGVybmFsVXJsIiwibmF2aWdhdGVSZWR1Y2VyIiwic3RhdGUiLCJtdXRhYmxlIiwidXJsIiwicGVuZGluZ1B1c2giLCJtcGFOYXZpZ2F0aW9uIiwiY2Fub25pY2FsVXJsIiwic2Nyb2xsYWJsZVNlZ21lbnRzIiwidW5kZWZpbmVkIiwiaGFuZGxlTXV0YWJsZSIsImdlbmVyYXRlU2VnbWVudHNGcm9tUGF0Y2giLCJmbGlnaHRSb3V0ZXJQYXRjaCIsInNlZ21lbnRzIiwic2VnbWVudCIsInBhcmFsbGVsUm91dGVzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsInBhcmFsbGVsUm91dGVLZXkiLCJwYXJhbGxlbFJvdXRlIiwiZW50cmllcyIsImNoaWxkU2VnbWVudCIsInB1c2giLCJ0cmlnZ2VyTGF6eUZldGNoRm9yTGVhZlNlZ21lbnRzIiwibmV3Q2FjaGUiLCJjdXJyZW50Q2FjaGUiLCJmbGlnaHRTZWdtZW50UGF0aCIsInRyZWVQYXRjaCIsImFwcGxpZWRQYXRjaCIsInJzYyIsInByZWZldGNoUnNjIiwibG9hZGluZyIsIk1hcCIsInNlZ21lbnRQYXRoc1RvRmlsbCIsIm1hcCIsInNlZ21lbnRQYXRocyIsImNsZWFyQ2FjaGVOb2RlRGF0YUZvclNlZ21lbnRQYXRoIiwiaGFuZGxlTmF2aWdhdGlvblJlc3VsdCIsInJlc3VsdCIsInRhZyIsIk5hdmlnYXRpb25SZXN1bHRUYWciLCJNUEEiLCJuZXdVcmwiLCJkYXRhIiwiTm9PcCIsIm5ld0Nhbm9uaWNhbFVybCIsIm9sZFVybCIsIlVSTCIsIm9ubHlIYXNoQ2hhbmdlIiwicGF0aG5hbWUiLCJzZWFyY2giLCJoYXNoIiwic2hvdWxkU2Nyb2xsIiwiaGFzaEZyYWdtZW50IiwiU3VjY2VzcyIsImNhY2hlIiwiY2FjaGVOb2RlIiwicGF0Y2hlZFRyZWUiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIkFzeW5jIiwidGhlbiIsImFzeW5jUmVzdWx0IiwiYWN0aW9uIiwiaXNFeHRlcm5hbFVybCIsIm5hdmlnYXRlVHlwZSIsImFsbG93QWxpYXNpbmciLCJocmVmIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJwcnVuZVByZWZldGNoQ2FjaGUiLCJwcmVmZXRjaENhY2hlIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJ0b1N0cmluZyIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFIiwibmF2aWdhdGVVc2luZ1NlZ21lbnRDYWNoZSIsInRyZWUiLCJuZXh0VXJsIiwicHJlZmV0Y2hWYWx1ZXMiLCJnZXRPckNyZWF0ZVByZWZldGNoQ2FjaGVFbnRyeSIsInRyZWVBdFRpbWVPZlByZWZldGNoIiwicHJlZmV0Y2hRdWV1ZSIsImJ1bXAiLCJmbGlnaHREYXRhIiwiY2Fub25pY2FsVXJsT3ZlcnJpZGUiLCJwb3N0cG9uZWQiLCJuYXZpZ2F0ZWRBdCIsIkRhdGUiLCJub3ciLCJpc0ZpcnN0UmVhZCIsImxhc3RVc2VkVGltZSIsImFsaWFzZWQiLCJ1cmxXaXRoQ2Fub25pY2FsUGF0aG5hbWUiLCJoYW5kbGVBbGlhc2VkUHJlZmV0Y2hFbnRyeSIsInVwZGF0ZWRDYW5vbmljYWxVcmwiLCJzcGxpdCIsImN1cnJlbnRUcmVlIiwibm9ybWFsaXplZEZsaWdodERhdGEiLCJwYXRoVG9TZWdtZW50Iiwic2VlZERhdGEiLCJoZWFkIiwiaXNIZWFkUGFydGlhbCIsImlzUm9vdFJlbmRlciIsImZsaWdodFNlZ21lbnRQYXRoV2l0aExlYWRpbmdFbXB0eSIsIm5ld1RyZWUiLCJhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUiLCJ0YXNrIiwic3RhcnRQUFJOYXZpZ2F0aW9uIiwicm91dGUiLCJwYXRjaGVkUm91dGVyU3RhdGUiLCJub2RlIiwiZHluYW1pY1JlcXVlc3RUcmVlIiwiZHluYW1pY1JlcXVlc3QiLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwib3JpZ2luIiwibGlzdGVuRm9yRHluYW1pY1JlcXVlc3QiLCJpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQiLCJjcmVhdGVFbXB0eUNhY2hlTm9kZSIsImFwcGxpZWQiLCJzdGF0dXMiLCJQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMiLCJzdGFsZSIsImFwcGx5RmxpZ2h0RGF0YSIsImhhcmROYXZpZ2F0ZSIsInNob3VsZEhhcmROYXZpZ2F0ZSIsImludmFsaWRhdGVDYWNoZUJlbG93RmxpZ2h0U2VnbWVudFBhdGgiLCJzdWJTZWdtZW50Iiwic2Nyb2xsYWJsZVNlZ21lbnRQYXRoIiwiREVGQVVMVF9TRUdNRU5UX0tFWSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js":
/*!**********************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js ***!
\**********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n prefetchQueue: function() {\n return prefetchQueue;\n },\n prefetchReducer: function() {\n return prefetchReducer;\n }\n});\nconst _promisequeue = __webpack_require__(/*! ../../promise-queue */ \"(ssr)/./node_modules/next/dist/client/components/promise-queue.js\");\nconst _prefetchcacheutils = __webpack_require__(/*! ../prefetch-cache-utils */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js\");\nconst prefetchQueue = new _promisequeue.PromiseQueue(5);\nconst prefetchReducer = false ? 0 : prefetchReducerImpl;\nfunction identityReducerWhenSegmentCacheIsEnabled(state) {\n // Unlike the old implementation, the Segment Cache doesn't store its data in\n // the router reducer state.\n //\n // This shouldn't be reachable because we wrap the prefetch API in a check,\n // too, which prevents the action from being dispatched. But it's here for\n // clarity + code elimination.\n return state;\n}\nfunction prefetchReducerImpl(state, action) {\n // let's prune the prefetch cache before we do anything else\n (0, _prefetchcacheutils.prunePrefetchCache)(state.prefetchCache);\n const { url } = action;\n (0, _prefetchcacheutils.getOrCreatePrefetchCacheEntry)({\n url,\n nextUrl: state.nextUrl,\n prefetchCache: state.prefetchCache,\n kind: action.kind,\n tree: state.tree,\n allowAliasing: true\n });\n return state;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=prefetch-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3ByZWZldGNoLXJlZHVjZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBVWFBLGFBQWE7ZUFBYkE7O0lBRUFDLGVBQWU7ZUFBZkE7OzswQ0FQZ0I7Z0RBSXRCO0FBQ0EsTUFBTUQsZ0JBQWdCLElBQUlFLGNBQUFBLFlBQVksQ0FBQztBQUV2QyxNQUFNRCxrQkFBa0JFLE1BQXVDLEdBQ2xFRyxDQUF3Q0EsR0FDeENDO0FBRUosU0FBU0QseUNBQTRDRSxLQUFRO0lBQzNELDZFQUE2RTtJQUM3RSw0QkFBNEI7SUFDNUIsRUFBRTtJQUNGLDJFQUEyRTtJQUMzRSwwRUFBMEU7SUFDMUUsOEJBQThCO0lBQzlCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTRCxvQkFDUEMsS0FBMkIsRUFDM0JDLE1BQXNCO0lBRXRCLDREQUE0RDtJQUM1REMsQ0FBQUEsR0FBQUEsb0JBQUFBLGtCQUFBQSxFQUFtQkYsTUFBTUcsYUFBYTtJQUV0QyxNQUFNLEVBQUVDLEdBQUcsRUFBRSxHQUFHSDtJQUVoQkksQ0FBQUEsR0FBQUEsb0JBQUFBLDZCQUFBQSxFQUE4QjtRQUM1QkQ7UUFDQUUsU0FBU04sTUFBTU0sT0FBTztRQUN0QkgsZUFBZUgsTUFBTUcsYUFBYTtRQUNsQ0ksTUFBTU4sT0FBT00sSUFBSTtRQUNqQkMsTUFBTVIsTUFBTVEsSUFBSTtRQUNoQkMsZUFBZTtJQUNqQjtJQUVBLE9BQU9UO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvcHJlZmV0Y2gtcmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIFByZWZldGNoQWN0aW9uLFxuICBSZWR1Y2VyU3RhdGUsXG4gIFJlYWRvbmx5UmVkdWNlclN0YXRlLFxufSBmcm9tICcuLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IFByb21pc2VRdWV1ZSB9IGZyb20gJy4uLy4uL3Byb21pc2UtcXVldWUnXG5pbXBvcnQge1xuICBnZXRPckNyZWF0ZVByZWZldGNoQ2FjaGVFbnRyeSxcbiAgcHJ1bmVQcmVmZXRjaENhY2hlLFxufSBmcm9tICcuLi9wcmVmZXRjaC1jYWNoZS11dGlscydcbmV4cG9ydCBjb25zdCBwcmVmZXRjaFF1ZXVlID0gbmV3IFByb21pc2VRdWV1ZSg1KVxuXG5leHBvcnQgY29uc3QgcHJlZmV0Y2hSZWR1Y2VyID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFXG4gID8gaWRlbnRpdHlSZWR1Y2VyV2hlblNlZ21lbnRDYWNoZUlzRW5hYmxlZFxuICA6IHByZWZldGNoUmVkdWNlckltcGxcblxuZnVuY3Rpb24gaWRlbnRpdHlSZWR1Y2VyV2hlblNlZ21lbnRDYWNoZUlzRW5hYmxlZDxUPihzdGF0ZTogVCk6IFQge1xuICAvLyBVbmxpa2UgdGhlIG9sZCBpbXBsZW1lbnRhdGlvbiwgdGhlIFNlZ21lbnQgQ2FjaGUgZG9lc24ndCBzdG9yZSBpdHMgZGF0YSBpblxuICAvLyB0aGUgcm91dGVyIHJlZHVjZXIgc3RhdGUuXG4gIC8vXG4gIC8vIFRoaXMgc2hvdWxkbid0IGJlIHJlYWNoYWJsZSBiZWNhdXNlIHdlIHdyYXAgdGhlIHByZWZldGNoIEFQSSBpbiBhIGNoZWNrLFxuICAvLyB0b28sIHdoaWNoIHByZXZlbnRzIHRoZSBhY3Rpb24gZnJvbSBiZWluZyBkaXNwYXRjaGVkLiBCdXQgaXQncyBoZXJlIGZvclxuICAvLyBjbGFyaXR5ICsgY29kZSBlbGltaW5hdGlvbi5cbiAgcmV0dXJuIHN0YXRlXG59XG5cbmZ1bmN0aW9uIHByZWZldGNoUmVkdWNlckltcGwoXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgYWN0aW9uOiBQcmVmZXRjaEFjdGlvblxuKTogUmVkdWNlclN0YXRlIHtcbiAgLy8gbGV0J3MgcHJ1bmUgdGhlIHByZWZldGNoIGNhY2hlIGJlZm9yZSB3ZSBkbyBhbnl0aGluZyBlbHNlXG4gIHBydW5lUHJlZmV0Y2hDYWNoZShzdGF0ZS5wcmVmZXRjaENhY2hlKVxuXG4gIGNvbnN0IHsgdXJsIH0gPSBhY3Rpb25cblxuICBnZXRPckNyZWF0ZVByZWZldGNoQ2FjaGVFbnRyeSh7XG4gICAgdXJsLFxuICAgIG5leHRVcmw6IHN0YXRlLm5leHRVcmwsXG4gICAgcHJlZmV0Y2hDYWNoZTogc3RhdGUucHJlZmV0Y2hDYWNoZSxcbiAgICBraW5kOiBhY3Rpb24ua2luZCxcbiAgICB0cmVlOiBzdGF0ZS50cmVlLFxuICAgIGFsbG93QWxpYXNpbmc6IHRydWUsXG4gIH0pXG5cbiAgcmV0dXJuIHN0YXRlXG59XG4iXSwibmFtZXMiOlsicHJlZmV0Y2hRdWV1ZSIsInByZWZldGNoUmVkdWNlciIsIlByb21pc2VRdWV1ZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEUiLCJpZGVudGl0eVJlZHVjZXJXaGVuU2VnbWVudENhY2hlSXNFbmFibGVkIiwicHJlZmV0Y2hSZWR1Y2VySW1wbCIsInN0YXRlIiwiYWN0aW9uIiwicHJ1bmVQcmVmZXRjaENhY2hlIiwicHJlZmV0Y2hDYWNoZSIsInVybCIsImdldE9yQ3JlYXRlUHJlZmV0Y2hDYWNoZUVudHJ5IiwibmV4dFVybCIsImtpbmQiLCJ0cmVlIiwiYWxsb3dBbGlhc2luZyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js":
/*!*********************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js ***!
\*********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"refreshReducer\", ({\n enumerable: true,\n get: function() {\n return refreshReducer;\n }\n}));\nconst _fetchserverresponse = __webpack_require__(/*! ../fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _navigatereducer = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nconst _handlemutable = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nconst _filllazyitemstillleafwithhead = __webpack_require__(/*! ../fill-lazy-items-till-leaf-with-head */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\nconst _approuter = __webpack_require__(/*! ../../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _handlesegmentmismatch = __webpack_require__(/*! ../handle-segment-mismatch */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js\");\nconst _hasinterceptionrouteincurrenttree = __webpack_require__(/*! ./has-interception-route-in-current-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\");\nconst _refetchinactiveparallelsegments = __webpack_require__(/*! ../refetch-inactive-parallel-segments */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js\");\nconst _segmentcache = __webpack_require__(/*! ../../segment-cache */ \"(ssr)/./node_modules/next/dist/client/components/segment-cache.js\");\nfunction refreshReducer(state, action) {\n const { origin } = action;\n const mutable = {};\n const href = state.canonicalUrl;\n let currentTree = state.tree;\n mutable.preserveCustomHistoryState = false;\n const cache = (0, _approuter.createEmptyCacheNode)();\n // If the current tree was intercepted, the nextUrl should be included in the request.\n // This is to ensure that the refresh request doesn't get intercepted, accidentally triggering the interception route.\n const includeNextUrl = (0, _hasinterceptionrouteincurrenttree.hasInterceptionRouteInCurrentTree)(state.tree);\n // TODO-APP: verify that `href` is not an external url.\n // Fetch data from the root of the tree.\n cache.lazyData = (0, _fetchserverresponse.fetchServerResponse)(new URL(href, origin), {\n flightRouterState: [\n currentTree[0],\n currentTree[1],\n currentTree[2],\n 'refetch'\n ],\n nextUrl: includeNextUrl ? state.nextUrl : null\n });\n const navigatedAt = Date.now();\n return cache.lazyData.then(async (param)=>{\n let { flightData, canonicalUrl: canonicalUrlOverride } = param;\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, flightData, state.pushRef.pendingPush);\n }\n // Remove cache.lazyData as it has been resolved at this point.\n cache.lazyData = null;\n for (const normalizedFlightData of flightData){\n const { tree: treePatch, seedData: cacheNodeSeedData, head, isRootRender } = normalizedFlightData;\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('REFRESH FAILED');\n return state;\n }\n const newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)([\n ''\n ], currentTree, treePatch, state.canonicalUrl);\n if (newTree === null) {\n return (0, _handlesegmentmismatch.handleSegmentMismatch)(state, action, treePatch);\n }\n if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, href, state.pushRef.pendingPush);\n }\n const canonicalUrlOverrideHref = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : undefined;\n if (canonicalUrlOverride) {\n mutable.canonicalUrl = canonicalUrlOverrideHref;\n }\n // Handles case where prefetch only returns the router tree patch without rendered components.\n if (cacheNodeSeedData !== null) {\n const rsc = cacheNodeSeedData[1];\n const loading = cacheNodeSeedData[3];\n cache.rsc = rsc;\n cache.prefetchRsc = null;\n cache.loading = loading;\n (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, cache, undefined, treePatch, cacheNodeSeedData, head, undefined);\n if (false) {} else {\n mutable.prefetchCache = new Map();\n }\n }\n await (0, _refetchinactiveparallelsegments.refreshInactiveParallelSegments)({\n navigatedAt,\n state,\n updatedTree: newTree,\n updatedCache: cache,\n includeNextUrl,\n canonicalUrl: mutable.canonicalUrl || state.canonicalUrl\n });\n mutable.cache = cache;\n mutable.patchedTree = newTree;\n currentTree = newTree;\n }\n return (0, _handlemutable.handleMutable)(state, mutable);\n }, ()=>state);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=refresh-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3JlZnJlc2gtcmVkdWNlci5qcyIsIm1hcHBpbmdzIjoiOzs7O2tEQW9CZ0JBOzs7ZUFBQUE7OztpREFwQm9COytDQUNGO3lEQUNVO3lEQUNBOzZDQU9WOzJDQUNKOzJEQUVnQjt1Q0FDVDttREFDQzsrREFDWTs2REFDRjswQ0FDVjtBQUUvQixTQUFTQSxlQUNkQyxLQUEyQixFQUMzQkMsTUFBcUI7SUFFckIsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR0Q7SUFDbkIsTUFBTUUsVUFBbUIsQ0FBQztJQUMxQixNQUFNQyxPQUFPSixNQUFNSyxZQUFZO0lBRS9CLElBQUlDLGNBQWNOLE1BQU1PLElBQUk7SUFFNUJKLFFBQVFLLDBCQUEwQixHQUFHO0lBRXJDLE1BQU1DLFFBQW1CQyxDQUFBQSxHQUFBQSxXQUFBQSxvQkFBQUE7SUFFekIsc0ZBQXNGO0lBQ3RGLHNIQUFzSDtJQUN0SCxNQUFNQyxpQkFBaUJDLENBQUFBLEdBQUFBLG1DQUFBQSxpQ0FBaUMsRUFBQ1osTUFBTU8sSUFBSTtJQUVuRSx1REFBdUQ7SUFDdkQsd0NBQXdDO0lBQ3hDRSxNQUFNSSxRQUFRLEdBQUdDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0IsSUFBSUMsSUFBSVgsTUFBTUYsU0FBUztRQUMxRGMsbUJBQW1CO1lBQ2pCVixXQUFXLENBQUMsRUFBRTtZQUNkQSxXQUFXLENBQUMsRUFBRTtZQUNkQSxXQUFXLENBQUMsRUFBRTtZQUNkO1NBQ0Q7UUFDRFcsU0FBU04saUJBQWlCWCxNQUFNaUIsT0FBTyxHQUFHO0lBQzVDO0lBRUEsTUFBTUMsY0FBY0MsS0FBS0MsR0FBRztJQUM1QixPQUFPWCxNQUFNSSxRQUFRLENBQUNRLElBQUksQ0FDeEI7WUFBTyxFQUFFQyxVQUFVLEVBQUVqQixjQUFja0Isb0JBQW9CLEVBQUU7UUFDdkQsNERBQTREO1FBQzVELElBQUksT0FBT0QsZUFBZSxVQUFVO1lBQ2xDLE9BQU9FLENBQUFBLEdBQUFBLGlCQUFBQSxpQkFBQUEsRUFDTHhCLE9BQ0FHLFNBQ0FtQixZQUNBdEIsTUFBTXlCLE9BQU8sQ0FBQ0MsV0FBVztRQUU3QjtRQUVBLCtEQUErRDtRQUMvRGpCLE1BQU1JLFFBQVEsR0FBRztRQUVqQixLQUFLLE1BQU1jLHdCQUF3QkwsV0FBWTtZQUM3QyxNQUFNLEVBQ0pmLE1BQU1xQixTQUFTLEVBQ2ZDLFVBQVVDLGlCQUFpQixFQUMzQkMsSUFBSSxFQUNKQyxZQUFZLEVBQ2IsR0FBR0w7WUFFSixJQUFJLENBQUNLLGNBQWM7Z0JBQ2pCLG9DQUFvQztnQkFDcENDLFFBQVFDLEdBQUcsQ0FBQztnQkFDWixPQUFPbEM7WUFDVDtZQUVBLE1BQU1tQyxVQUFVQyxDQUFBQSxHQUFBQSw2QkFBQUEsMkJBQUFBLEVBQ2Q7Z0JBQ0M7YUFBRyxFQUNKOUIsYUFDQXNCLFdBQ0E1QixNQUFNSyxZQUFZO1lBR3BCLElBQUk4QixZQUFZLE1BQU07Z0JBQ3BCLE9BQU9FLENBQUFBLEdBQUFBLHVCQUFBQSxxQkFBQUEsRUFBc0JyQyxPQUFPQyxRQUFRMkI7WUFDOUM7WUFFQSxJQUFJVSxDQUFBQSxHQUFBQSw2QkFBQUEsMkJBQUFBLEVBQTRCaEMsYUFBYTZCLFVBQVU7Z0JBQ3JELE9BQU9YLENBQUFBLEdBQUFBLGlCQUFBQSxpQkFBQUEsRUFDTHhCLE9BQ0FHLFNBQ0FDLE1BQ0FKLE1BQU15QixPQUFPLENBQUNDLFdBQVc7WUFFN0I7WUFFQSxNQUFNYSwyQkFBMkJoQix1QkFDN0JpQixDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCakIsd0JBQ2xCa0I7WUFFSixJQUFJbEIsc0JBQXNCO2dCQUN4QnBCLFFBQVFFLFlBQVksR0FBR2tDO1lBQ3pCO1lBRUEsOEZBQThGO1lBQzlGLElBQUlULHNCQUFzQixNQUFNO2dCQUM5QixNQUFNWSxNQUFNWixpQkFBaUIsQ0FBQyxFQUFFO2dCQUNoQyxNQUFNYSxVQUFVYixpQkFBaUIsQ0FBQyxFQUFFO2dCQUNwQ3JCLE1BQU1pQyxHQUFHLEdBQUdBO2dCQUNaakMsTUFBTW1DLFdBQVcsR0FBRztnQkFDcEJuQyxNQUFNa0MsT0FBTyxHQUFHQTtnQkFDaEJFLENBQUFBLEdBQUFBLCtCQUFBQSw2QkFBQUEsRUFDRTNCLGFBQ0FULE9BQ0EsV0FFQW1CLFdBQ0FFLG1CQUNBQyxNQUNBVTtnQkFFRixJQUFJSyxLQUF1QyxFQUFFLEVBRTVDLE1BQU07b0JBQ0wzQyxRQUFRK0MsYUFBYSxHQUFHLElBQUlDO2dCQUM5QjtZQUNGO1lBRUEsTUFBTUMsQ0FBQUEsR0FBQUEsaUNBQUFBLCtCQUFBQSxFQUFnQztnQkFDcENsQztnQkFDQWxCO2dCQUNBcUQsYUFBYWxCO2dCQUNibUIsY0FBYzdDO2dCQUNkRTtnQkFDQU4sY0FBY0YsUUFBUUUsWUFBWSxJQUFJTCxNQUFNSyxZQUFZO1lBQzFEO1lBRUFGLFFBQVFNLEtBQUssR0FBR0E7WUFDaEJOLFFBQVFvRCxXQUFXLEdBQUdwQjtZQUV0QjdCLGNBQWM2QjtRQUNoQjtRQUVBLE9BQU9xQixDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjeEQsT0FBT0c7SUFDOUIsR0FDQSxJQUFNSDtBQUVWIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3JlZnJlc2gtcmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnLi4vZmV0Y2gtc2VydmVyLXJlc3BvbnNlJ1xuaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tICcuLi9jcmVhdGUtaHJlZi1mcm9tLXVybCdcbmltcG9ydCB7IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZSB9IGZyb20gJy4uL2FwcGx5LXJvdXRlci1zdGF0ZS1wYXRjaC10by10cmVlJ1xuaW1wb3J0IHsgaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IH0gZnJvbSAnLi4vaXMtbmF2aWdhdGluZy10by1uZXctcm9vdC1sYXlvdXQnXG5pbXBvcnQgdHlwZSB7XG4gIE11dGFibGUsXG4gIFJlYWRvbmx5UmVkdWNlclN0YXRlLFxuICBSZWR1Y2VyU3RhdGUsXG4gIFJlZnJlc2hBY3Rpb24sXG59IGZyb20gJy4uL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHsgaGFuZGxlRXh0ZXJuYWxVcmwgfSBmcm9tICcuL25hdmlnYXRlLXJlZHVjZXInXG5pbXBvcnQgeyBoYW5kbGVNdXRhYmxlIH0gZnJvbSAnLi4vaGFuZGxlLW11dGFibGUnXG5pbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQgfSBmcm9tICcuLi9maWxsLWxhenktaXRlbXMtdGlsbC1sZWFmLXdpdGgtaGVhZCdcbmltcG9ydCB7IGNyZWF0ZUVtcHR5Q2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vYXBwLXJvdXRlcidcbmltcG9ydCB7IGhhbmRsZVNlZ21lbnRNaXNtYXRjaCB9IGZyb20gJy4uL2hhbmRsZS1zZWdtZW50LW1pc21hdGNoJ1xuaW1wb3J0IHsgaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlIH0gZnJvbSAnLi9oYXMtaW50ZXJjZXB0aW9uLXJvdXRlLWluLWN1cnJlbnQtdHJlZSdcbmltcG9ydCB7IHJlZnJlc2hJbmFjdGl2ZVBhcmFsbGVsU2VnbWVudHMgfSBmcm9tICcuLi9yZWZldGNoLWluYWN0aXZlLXBhcmFsbGVsLXNlZ21lbnRzJ1xuaW1wb3J0IHsgcmV2YWxpZGF0ZUVudGlyZUNhY2hlIH0gZnJvbSAnLi4vLi4vc2VnbWVudC1jYWNoZSdcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZnJlc2hSZWR1Y2VyKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIGFjdGlvbjogUmVmcmVzaEFjdGlvblxuKTogUmVkdWNlclN0YXRlIHtcbiAgY29uc3QgeyBvcmlnaW4gfSA9IGFjdGlvblxuICBjb25zdCBtdXRhYmxlOiBNdXRhYmxlID0ge31cbiAgY29uc3QgaHJlZiA9IHN0YXRlLmNhbm9uaWNhbFVybFxuXG4gIGxldCBjdXJyZW50VHJlZSA9IHN0YXRlLnRyZWVcblxuICBtdXRhYmxlLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlID0gZmFsc2VcblxuICBjb25zdCBjYWNoZTogQ2FjaGVOb2RlID0gY3JlYXRlRW1wdHlDYWNoZU5vZGUoKVxuXG4gIC8vIElmIHRoZSBjdXJyZW50IHRyZWUgd2FzIGludGVyY2VwdGVkLCB0aGUgbmV4dFVybCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIHJlcXVlc3QuXG4gIC8vIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgdGhlIHJlZnJlc2ggcmVxdWVzdCBkb2Vzbid0IGdldCBpbnRlcmNlcHRlZCwgYWNjaWRlbnRhbGx5IHRyaWdnZXJpbmcgdGhlIGludGVyY2VwdGlvbiByb3V0ZS5cbiAgY29uc3QgaW5jbHVkZU5leHRVcmwgPSBoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUoc3RhdGUudHJlZSlcblxuICAvLyBUT0RPLUFQUDogdmVyaWZ5IHRoYXQgYGhyZWZgIGlzIG5vdCBhbiBleHRlcm5hbCB1cmwuXG4gIC8vIEZldGNoIGRhdGEgZnJvbSB0aGUgcm9vdCBvZiB0aGUgdHJlZS5cbiAgY2FjaGUubGF6eURhdGEgPSBmZXRjaFNlcnZlclJlc3BvbnNlKG5ldyBVUkwoaHJlZiwgb3JpZ2luKSwge1xuICAgIGZsaWdodFJvdXRlclN0YXRlOiBbXG4gICAgICBjdXJyZW50VHJlZVswXSxcbiAgICAgIGN1cnJlbnRUcmVlWzFdLFxuICAgICAgY3VycmVudFRyZWVbMl0sXG4gICAgICAncmVmZXRjaCcsXG4gICAgXSxcbiAgICBuZXh0VXJsOiBpbmNsdWRlTmV4dFVybCA/IHN0YXRlLm5leHRVcmwgOiBudWxsLFxuICB9KVxuXG4gIGNvbnN0IG5hdmlnYXRlZEF0ID0gRGF0ZS5ub3coKVxuICByZXR1cm4gY2FjaGUubGF6eURhdGEudGhlbihcbiAgICBhc3luYyAoeyBmbGlnaHREYXRhLCBjYW5vbmljYWxVcmw6IGNhbm9uaWNhbFVybE92ZXJyaWRlIH0pID0+IHtcbiAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbmF2aWdhdGluZyB0byBwYWdlIGluIGBwYWdlc2AgZnJvbSBgYXBwYFxuICAgICAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgbXV0YWJsZSxcbiAgICAgICAgICBmbGlnaHREYXRhLFxuICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2hcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICAvLyBSZW1vdmUgY2FjaGUubGF6eURhdGEgYXMgaXQgaGFzIGJlZW4gcmVzb2x2ZWQgYXQgdGhpcyBwb2ludC5cbiAgICAgIGNhY2hlLmxhenlEYXRhID0gbnVsbFxuXG4gICAgICBmb3IgKGNvbnN0IG5vcm1hbGl6ZWRGbGlnaHREYXRhIG9mIGZsaWdodERhdGEpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHRyZWU6IHRyZWVQYXRjaCxcbiAgICAgICAgICBzZWVkRGF0YTogY2FjaGVOb2RlU2VlZERhdGEsXG4gICAgICAgICAgaGVhZCxcbiAgICAgICAgICBpc1Jvb3RSZW5kZXIsXG4gICAgICAgIH0gPSBub3JtYWxpemVkRmxpZ2h0RGF0YVxuXG4gICAgICAgIGlmICghaXNSb290UmVuZGVyKSB7XG4gICAgICAgICAgLy8gVE9ETy1BUFA6IGhhbmRsZSB0aGlzIGNhc2UgYmV0dGVyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1JFRlJFU0ggRkFJTEVEJylcbiAgICAgICAgICByZXR1cm4gc3RhdGVcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld1RyZWUgPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUoXG4gICAgICAgICAgLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgICAgIFsnJ10sXG4gICAgICAgICAgY3VycmVudFRyZWUsXG4gICAgICAgICAgdHJlZVBhdGNoLFxuICAgICAgICAgIHN0YXRlLmNhbm9uaWNhbFVybFxuICAgICAgICApXG5cbiAgICAgICAgaWYgKG5ld1RyZWUgPT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlU2VnbWVudE1pc21hdGNoKHN0YXRlLCBhY3Rpb24sIHRyZWVQYXRjaClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQoY3VycmVudFRyZWUsIG5ld1RyZWUpKSB7XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBtdXRhYmxlLFxuICAgICAgICAgICAgaHJlZixcbiAgICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2hcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYW5vbmljYWxVcmxPdmVycmlkZUhyZWYgPSBjYW5vbmljYWxVcmxPdmVycmlkZVxuICAgICAgICAgID8gY3JlYXRlSHJlZkZyb21VcmwoY2Fub25pY2FsVXJsT3ZlcnJpZGUpXG4gICAgICAgICAgOiB1bmRlZmluZWRcblxuICAgICAgICBpZiAoY2Fub25pY2FsVXJsT3ZlcnJpZGUpIHtcbiAgICAgICAgICBtdXRhYmxlLmNhbm9uaWNhbFVybCA9IGNhbm9uaWNhbFVybE92ZXJyaWRlSHJlZlxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlcyBjYXNlIHdoZXJlIHByZWZldGNoIG9ubHkgcmV0dXJucyB0aGUgcm91dGVyIHRyZWUgcGF0Y2ggd2l0aG91dCByZW5kZXJlZCBjb21wb25lbnRzLlxuICAgICAgICBpZiAoY2FjaGVOb2RlU2VlZERhdGEgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCByc2MgPSBjYWNoZU5vZGVTZWVkRGF0YVsxXVxuICAgICAgICAgIGNvbnN0IGxvYWRpbmcgPSBjYWNoZU5vZGVTZWVkRGF0YVszXVxuICAgICAgICAgIGNhY2hlLnJzYyA9IHJzY1xuICAgICAgICAgIGNhY2hlLnByZWZldGNoUnNjID0gbnVsbFxuICAgICAgICAgIGNhY2hlLmxvYWRpbmcgPSBsb2FkaW5nXG4gICAgICAgICAgZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQoXG4gICAgICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgICAgICAgIGNhY2hlLFxuICAgICAgICAgICAgLy8gRXhpc3RpbmcgY2FjaGUgaXMgbm90IHBhc3NlZCBpbiBhcyBgcm91dGVyLnJlZnJlc2goKWAgaGFzIHRvIGludmFsaWRhdGUgdGhlIGVudGlyZSBjYWNoZS5cbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRyZWVQYXRjaCxcbiAgICAgICAgICAgIGNhY2hlTm9kZVNlZWREYXRhLFxuICAgICAgICAgICAgaGVhZCxcbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgIClcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFKSB7XG4gICAgICAgICAgICByZXZhbGlkYXRlRW50aXJlQ2FjaGUoc3RhdGUubmV4dFVybCwgbmV3VHJlZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbXV0YWJsZS5wcmVmZXRjaENhY2hlID0gbmV3IE1hcCgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgcmVmcmVzaEluYWN0aXZlUGFyYWxsZWxTZWdtZW50cyh7XG4gICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgdXBkYXRlZFRyZWU6IG5ld1RyZWUsXG4gICAgICAgICAgdXBkYXRlZENhY2hlOiBjYWNoZSxcbiAgICAgICAgICBpbmNsdWRlTmV4dFVybCxcbiAgICAgICAgICBjYW5vbmljYWxVcmw6IG11dGFibGUuY2Fub25pY2FsVXJsIHx8IHN0YXRlLmNhbm9uaWNhbFVybCxcbiAgICAgICAgfSlcblxuICAgICAgICBtdXRhYmxlLmNhY2hlID0gY2FjaGVcbiAgICAgICAgbXV0YWJsZS5wYXRjaGVkVHJlZSA9IG5ld1RyZWVcblxuICAgICAgICBjdXJyZW50VHJlZSA9IG5ld1RyZWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGhhbmRsZU11dGFibGUoc3RhdGUsIG11dGFibGUpXG4gICAgfSxcbiAgICAoKSA9PiBzdGF0ZVxuICApXG59XG4iXSwibmFtZXMiOlsicmVmcmVzaFJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsIm9yaWdpbiIsIm11dGFibGUiLCJocmVmIiwiY2Fub25pY2FsVXJsIiwiY3VycmVudFRyZWUiLCJ0cmVlIiwicHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGUiLCJjYWNoZSIsImNyZWF0ZUVtcHR5Q2FjaGVOb2RlIiwiaW5jbHVkZU5leHRVcmwiLCJoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUiLCJsYXp5RGF0YSIsImZldGNoU2VydmVyUmVzcG9uc2UiLCJVUkwiLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIm5leHRVcmwiLCJuYXZpZ2F0ZWRBdCIsIkRhdGUiLCJub3ciLCJ0aGVuIiwiZmxpZ2h0RGF0YSIsImNhbm9uaWNhbFVybE92ZXJyaWRlIiwiaGFuZGxlRXh0ZXJuYWxVcmwiLCJwdXNoUmVmIiwicGVuZGluZ1B1c2giLCJub3JtYWxpemVkRmxpZ2h0RGF0YSIsInRyZWVQYXRjaCIsInNlZWREYXRhIiwiY2FjaGVOb2RlU2VlZERhdGEiLCJoZWFkIiwiaXNSb290UmVuZGVyIiwiY29uc29sZSIsImxvZyIsIm5ld1RyZWUiLCJhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUiLCJoYW5kbGVTZWdtZW50TWlzbWF0Y2giLCJpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQiLCJjYW5vbmljYWxVcmxPdmVycmlkZUhyZWYiLCJjcmVhdGVIcmVmRnJvbVVybCIsInVuZGVmaW5lZCIsInJzYyIsImxvYWRpbmciLCJwcmVmZXRjaFJzYyIsImZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRSIsInJldmFsaWRhdGVFbnRpcmVDYWNoZSIsInByZWZldGNoQ2FjaGUiLCJNYXAiLCJyZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzIiwidXBkYXRlZFRyZWUiLCJ1cGRhdGVkQ2FjaGUiLCJwYXRjaGVkVHJlZSIsImhhbmRsZU11dGFibGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js":
/*!*********************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js ***!
\*********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"restoreReducer\", ({\n enumerable: true,\n get: function() {\n return restoreReducer;\n }\n}));\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _computechangedpath = __webpack_require__(/*! ../compute-changed-path */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/compute-changed-path.js\");\nconst _pprnavigations = __webpack_require__(/*! ../ppr-navigations */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/ppr-navigations.js\");\nfunction restoreReducer(state, action) {\n const { url, tree } = action;\n const href = (0, _createhreffromurl.createHrefFromUrl)(url);\n // This action is used to restore the router state from the history state.\n // However, it's possible that the history state no longer contains the `FlightRouterState`.\n // We will copy over the internal state on pushState/replaceState events, but if a history entry\n // occurred before hydration, or if the user navigated to a hash using a regular anchor link,\n // the history state will not contain the `FlightRouterState`.\n // In this case, we'll continue to use the existing tree so the router doesn't get into an invalid state.\n const treeToRestore = tree || state.tree;\n const oldCache = state.cache;\n const newCache = false ? // prevents an unnecessary flash back to PPR state during a\n // back/forward navigation.\n 0 : oldCache;\n var _extractPathFromFlightRouterState;\n return {\n // Set canonical url\n canonicalUrl: href,\n pushRef: {\n pendingPush: false,\n mpaNavigation: false,\n // Ensures that the custom history state that was set is preserved when applying this update.\n preserveCustomHistoryState: true\n },\n focusAndScrollRef: state.focusAndScrollRef,\n cache: newCache,\n prefetchCache: state.prefetchCache,\n // Restore provided tree\n tree: treeToRestore,\n nextUrl: (_extractPathFromFlightRouterState = (0, _computechangedpath.extractPathFromFlightRouterState)(treeToRestore)) != null ? _extractPathFromFlightRouterState : url.pathname\n };\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=restore-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3Jlc3RvcmUtcmVkdWNlci5qcyIsIm1hcHBpbmdzIjoiOzs7O2tEQVNnQkE7OztlQUFBQTs7OytDQVRrQjtnREFNZTs0Q0FDSTtBQUU5QyxTQUFTQSxlQUNkQyxLQUEyQixFQUMzQkMsTUFBcUI7SUFFckIsTUFBTSxFQUFFQyxHQUFHLEVBQUVDLElBQUksRUFBRSxHQUFHRjtJQUN0QixNQUFNRyxPQUFPQyxDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCSDtJQUMvQiwwRUFBMEU7SUFDMUUsNEZBQTRGO0lBQzVGLGdHQUFnRztJQUNoRyw2RkFBNkY7SUFDN0YsOERBQThEO0lBQzlELHlHQUF5RztJQUN6RyxNQUFNSSxnQkFBZ0JILFFBQVFILE1BQU1HLElBQUk7SUFFeEMsTUFBTUksV0FBV1AsTUFBTVEsS0FBSztJQUM1QixNQUFNQyxXQUFXQyxNQUFzQixHQUVuQywyREFDMkQ7SUFDM0QsMkJBQTJCO0lBQzNCRyxDQUE2RFAsR0FDN0RDO1FBZ0JPTztJQWRYLE9BQU87UUFDTCxvQkFBb0I7UUFDcEJDLGNBQWNYO1FBQ2RZLFNBQVM7WUFDUEMsYUFBYTtZQUNiQyxlQUFlO1lBQ2YsNkZBQTZGO1lBQzdGQyw0QkFBNEI7UUFDOUI7UUFDQUMsbUJBQW1CcEIsTUFBTW9CLGlCQUFpQjtRQUMxQ1osT0FBT0M7UUFDUFksZUFBZXJCLE1BQU1xQixhQUFhO1FBQ2xDLHdCQUF3QjtRQUN4QmxCLE1BQU1HO1FBQ05nQixTQUFTUixDQUFBQSxvQ0FBQUEsQ0FBQUEsR0FBQUEsb0JBQUFBLGdDQUFBQSxFQUFpQ1IsY0FBQUEsS0FBQUEsT0FBakNRLG9DQUFtRFosSUFBSXFCLFFBQVE7SUFDMUU7QUFDRiIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9yZXN0b3JlLXJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tICcuLi9jcmVhdGUtaHJlZi1mcm9tLXVybCdcbmltcG9ydCB0eXBlIHtcbiAgUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIFJlZHVjZXJTdGF0ZSxcbiAgUmVzdG9yZUFjdGlvbixcbn0gZnJvbSAnLi4vcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgeyBleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSB9IGZyb20gJy4uL2NvbXB1dGUtY2hhbmdlZC1wYXRoJ1xuaW1wb3J0IHsgdXBkYXRlQ2FjaGVOb2RlT25Qb3BzdGF0ZVJlc3RvcmF0aW9uIH0gZnJvbSAnLi4vcHByLW5hdmlnYXRpb25zJ1xuXG5leHBvcnQgZnVuY3Rpb24gcmVzdG9yZVJlZHVjZXIoXG4gIHN0YXRlOiBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgYWN0aW9uOiBSZXN0b3JlQWN0aW9uXG4pOiBSZWR1Y2VyU3RhdGUge1xuICBjb25zdCB7IHVybCwgdHJlZSB9ID0gYWN0aW9uXG4gIGNvbnN0IGhyZWYgPSBjcmVhdGVIcmVmRnJvbVVybCh1cmwpXG4gIC8vIFRoaXMgYWN0aW9uIGlzIHVzZWQgdG8gcmVzdG9yZSB0aGUgcm91dGVyIHN0YXRlIGZyb20gdGhlIGhpc3Rvcnkgc3RhdGUuXG4gIC8vIEhvd2V2ZXIsIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgaGlzdG9yeSBzdGF0ZSBubyBsb25nZXIgY29udGFpbnMgdGhlIGBGbGlnaHRSb3V0ZXJTdGF0ZWAuXG4gIC8vIFdlIHdpbGwgY29weSBvdmVyIHRoZSBpbnRlcm5hbCBzdGF0ZSBvbiBwdXNoU3RhdGUvcmVwbGFjZVN0YXRlIGV2ZW50cywgYnV0IGlmIGEgaGlzdG9yeSBlbnRyeVxuICAvLyBvY2N1cnJlZCBiZWZvcmUgaHlkcmF0aW9uLCBvciBpZiB0aGUgdXNlciBuYXZpZ2F0ZWQgdG8gYSBoYXNoIHVzaW5nIGEgcmVndWxhciBhbmNob3IgbGluayxcbiAgLy8gdGhlIGhpc3Rvcnkgc3RhdGUgd2lsbCBub3QgY29udGFpbiB0aGUgYEZsaWdodFJvdXRlclN0YXRlYC5cbiAgLy8gSW4gdGhpcyBjYXNlLCB3ZSdsbCBjb250aW51ZSB0byB1c2UgdGhlIGV4aXN0aW5nIHRyZWUgc28gdGhlIHJvdXRlciBkb2Vzbid0IGdldCBpbnRvIGFuIGludmFsaWQgc3RhdGUuXG4gIGNvbnN0IHRyZWVUb1Jlc3RvcmUgPSB0cmVlIHx8IHN0YXRlLnRyZWVcblxuICBjb25zdCBvbGRDYWNoZSA9IHN0YXRlLmNhY2hlXG4gIGNvbnN0IG5ld0NhY2hlID0gcHJvY2Vzcy5lbnYuX19ORVhUX1BQUlxuICAgID8gLy8gV2hlbiBQUFIgaXMgZW5hYmxlZCwgd2UgdXBkYXRlIHRoZSBjYWNoZSB0byBkcm9wIHRoZSBwcmVmZXRjaFxuICAgICAgLy8gZGF0YSBmb3IgYW55IHNlZ21lbnQgd2hvc2UgZHluYW1pYyBkYXRhIHdhcyBhbHJlYWR5IHJlY2VpdmVkLiBUaGlzXG4gICAgICAvLyBwcmV2ZW50cyBhbiB1bm5lY2Vzc2FyeSBmbGFzaCBiYWNrIHRvIFBQUiBzdGF0ZSBkdXJpbmcgYVxuICAgICAgLy8gYmFjay9mb3J3YXJkIG5hdmlnYXRpb24uXG4gICAgICB1cGRhdGVDYWNoZU5vZGVPblBvcHN0YXRlUmVzdG9yYXRpb24ob2xkQ2FjaGUsIHRyZWVUb1Jlc3RvcmUpXG4gICAgOiBvbGRDYWNoZVxuXG4gIHJldHVybiB7XG4gICAgLy8gU2V0IGNhbm9uaWNhbCB1cmxcbiAgICBjYW5vbmljYWxVcmw6IGhyZWYsXG4gICAgcHVzaFJlZjoge1xuICAgICAgcGVuZGluZ1B1c2g6IGZhbHNlLFxuICAgICAgbXBhTmF2aWdhdGlvbjogZmFsc2UsXG4gICAgICAvLyBFbnN1cmVzIHRoYXQgdGhlIGN1c3RvbSBoaXN0b3J5IHN0YXRlIHRoYXQgd2FzIHNldCBpcyBwcmVzZXJ2ZWQgd2hlbiBhcHBseWluZyB0aGlzIHVwZGF0ZS5cbiAgICAgIHByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlOiB0cnVlLFxuICAgIH0sXG4gICAgZm9jdXNBbmRTY3JvbGxSZWY6IHN0YXRlLmZvY3VzQW5kU2Nyb2xsUmVmLFxuICAgIGNhY2hlOiBuZXdDYWNoZSxcbiAgICBwcmVmZXRjaENhY2hlOiBzdGF0ZS5wcmVmZXRjaENhY2hlLFxuICAgIC8vIFJlc3RvcmUgcHJvdmlkZWQgdHJlZVxuICAgIHRyZWU6IHRyZWVUb1Jlc3RvcmUsXG4gICAgbmV4dFVybDogZXh0cmFjdFBhdGhGcm9tRmxpZ2h0Um91dGVyU3RhdGUodHJlZVRvUmVzdG9yZSkgPz8gdXJsLnBhdGhuYW1lLFxuICB9XG59XG4iXSwibmFtZXMiOlsicmVzdG9yZVJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInVybCIsInRyZWUiLCJocmVmIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJ0cmVlVG9SZXN0b3JlIiwib2xkQ2FjaGUiLCJjYWNoZSIsIm5ld0NhY2hlIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9QUFIiLCJ1cGRhdGVDYWNoZU5vZGVPblBvcHN0YXRlUmVzdG9yYXRpb24iLCJleHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSIsImNhbm9uaWNhbFVybCIsInB1c2hSZWYiLCJwZW5kaW5nUHVzaCIsIm1wYU5hdmlnYXRpb24iLCJwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSIsImZvY3VzQW5kU2Nyb2xsUmVmIiwicHJlZmV0Y2hDYWNoZSIsIm5leHRVcmwiLCJwYXRobmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js":
/*!***************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js ***!
\***************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"serverActionReducer\", ({\n enumerable: true,\n get: function() {\n return serverActionReducer;\n }\n}));\nconst _appcallserver = __webpack_require__(/*! ../../../app-call-server */ \"(ssr)/./node_modules/next/dist/client/app-call-server.js\");\nconst _appfindsourcemapurl = __webpack_require__(/*! ../../../app-find-source-map-url */ \"(ssr)/./node_modules/next/dist/client/app-find-source-map-url.js\");\nconst _approuterheaders = __webpack_require__(/*! ../../app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _client = __webpack_require__(/*! react-server-dom-webpack/client */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js\");\nconst _routerreducertypes = __webpack_require__(/*! ../router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _assignlocation = __webpack_require__(/*! ../../../assign-location */ \"(ssr)/./node_modules/next/dist/client/assign-location.js\");\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _navigatereducer = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _handlemutable = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nconst _filllazyitemstillleafwithhead = __webpack_require__(/*! ../fill-lazy-items-till-leaf-with-head */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js\");\nconst _approuter = __webpack_require__(/*! ../../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nconst _hasinterceptionrouteincurrenttree = __webpack_require__(/*! ./has-interception-route-in-current-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js\");\nconst _handlesegmentmismatch = __webpack_require__(/*! ../handle-segment-mismatch */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js\");\nconst _refetchinactiveparallelsegments = __webpack_require__(/*! ../refetch-inactive-parallel-segments */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js\");\nconst _flightdatahelpers = __webpack_require__(/*! ../../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nconst _redirect = __webpack_require__(/*! ../../redirect */ \"(ssr)/./node_modules/next/dist/client/components/redirect.js\");\nconst _redirecterror = __webpack_require__(/*! ../../redirect-error */ \"(ssr)/./node_modules/next/dist/client/components/redirect-error.js\");\nconst _prefetchcacheutils = __webpack_require__(/*! ../prefetch-cache-utils */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js\");\nconst _removebasepath = __webpack_require__(/*! ../../../remove-base-path */ \"(ssr)/./node_modules/next/dist/client/remove-base-path.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../has-base-path */ \"(ssr)/./node_modules/next/dist/client/has-base-path.js\");\nconst _serverreferenceinfo = __webpack_require__(/*! ../../../../shared/lib/server-reference-info */ \"(ssr)/./node_modules/next/dist/shared/lib/server-reference-info.js\");\nconst _segmentcache = __webpack_require__(/*! ../../segment-cache */ \"(ssr)/./node_modules/next/dist/client/components/segment-cache.js\");\nconst createFromFetch = _client.createFromFetch;\nasync function fetchServerAction(state, nextUrl, param) {\n let { actionId, actionArgs } = param;\n const temporaryReferences = (0, _client.createTemporaryReferenceSet)();\n const info = (0, _serverreferenceinfo.extractInfoFromServerReferenceId)(actionId);\n // TODO: Currently, we're only omitting unused args for the experimental \"use\n // cache\" functions. Once the server reference info byte feature is stable, we\n // should apply this to server actions as well.\n const usedArgs = info.type === 'use-cache' ? (0, _serverreferenceinfo.omitUnusedArgs)(actionArgs, info) : actionArgs;\n const body = await (0, _client.encodeReply)(usedArgs, {\n temporaryReferences\n });\n const res = await fetch(state.canonicalUrl, {\n method: 'POST',\n headers: {\n Accept: _approuterheaders.RSC_CONTENT_TYPE_HEADER,\n [_approuterheaders.ACTION_HEADER]: actionId,\n [_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER]: (0, _flightdatahelpers.prepareFlightRouterStateForRequest)(state.tree),\n ... false ? 0 : {},\n ...nextUrl ? {\n [_approuterheaders.NEXT_URL]: nextUrl\n } : {}\n },\n body\n });\n // Handle server actions that the server didn't recognize.\n const unrecognizedActionHeader = res.headers.get(_approuterheaders.NEXT_ACTION_NOT_FOUND_HEADER);\n if (unrecognizedActionHeader === '1') {\n throw Object.defineProperty(new Error('Server Action \"' + actionId + '\" was not found on the server. \\nRead more: https://nextjs.org/docs/messages/failed-to-find-server-action'), \"__NEXT_ERROR_CODE\", {\n value: \"E715\",\n enumerable: false,\n configurable: true\n });\n }\n const redirectHeader = res.headers.get('x-action-redirect');\n const [location, _redirectType] = (redirectHeader == null ? void 0 : redirectHeader.split(';')) || [];\n let redirectType;\n switch(_redirectType){\n case 'push':\n redirectType = _redirecterror.RedirectType.push;\n break;\n case 'replace':\n redirectType = _redirecterror.RedirectType.replace;\n break;\n default:\n redirectType = undefined;\n }\n const isPrerender = !!res.headers.get(_approuterheaders.NEXT_IS_PRERENDER_HEADER);\n let revalidatedParts;\n try {\n const revalidatedHeader = JSON.parse(res.headers.get('x-action-revalidated') || '[[],0,0]');\n revalidatedParts = {\n paths: revalidatedHeader[0] || [],\n tag: !!revalidatedHeader[1],\n cookie: revalidatedHeader[2]\n };\n } catch (e) {\n revalidatedParts = NO_REVALIDATED_PARTS;\n }\n const redirectLocation = location ? (0, _assignlocation.assignLocation)(location, new URL(state.canonicalUrl, window.location.href)) : undefined;\n const contentType = res.headers.get('content-type');\n const isRscResponse = !!(contentType && contentType.startsWith(_approuterheaders.RSC_CONTENT_TYPE_HEADER));\n // Handle invalid server action responses.\n // A valid response must have `content-type: text/x-component`, unless it's an external redirect.\n // (external redirects have an 'x-action-redirect' header, but the body is an empty 'text/plain')\n if (!isRscResponse && !redirectLocation) {\n // The server can respond with a text/plain error message, but we'll fallback to something generic\n // if there isn't one.\n const message = res.status >= 400 && contentType === 'text/plain' ? await res.text() : 'An unexpected response was received from the server.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n let actionResult;\n let actionFlightData;\n if (isRscResponse) {\n const response = await createFromFetch(Promise.resolve(res), {\n callServer: _appcallserver.callServer,\n findSourceMapURL: _appfindsourcemapurl.findSourceMapURL,\n temporaryReferences\n });\n // An internal redirect can send an RSC response, but does not have a useful `actionResult`.\n actionResult = redirectLocation ? undefined : response.a;\n actionFlightData = (0, _flightdatahelpers.normalizeFlightData)(response.f);\n } else {\n // An external redirect doesn't contain RSC data.\n actionResult = undefined;\n actionFlightData = undefined;\n }\n return {\n actionResult,\n actionFlightData,\n redirectLocation,\n redirectType,\n revalidatedParts,\n isPrerender\n };\n}\nconst NO_REVALIDATED_PARTS = {\n paths: [],\n tag: false,\n cookie: false\n};\nfunction serverActionReducer(state, action) {\n const { resolve, reject } = action;\n const mutable = {};\n let currentTree = state.tree;\n mutable.preserveCustomHistoryState = false;\n // only pass along the `nextUrl` param (used for interception routes) if the current route was intercepted.\n // If the route has been intercepted, the action should be as well.\n // Otherwise the server action might be intercepted with the wrong action id\n // (ie, one that corresponds with the intercepted route)\n const nextUrl = state.nextUrl && (0, _hasinterceptionrouteincurrenttree.hasInterceptionRouteInCurrentTree)(state.tree) ? state.nextUrl : null;\n const navigatedAt = Date.now();\n return fetchServerAction(state, nextUrl, action).then(async (param)=>{\n let { actionResult, actionFlightData: flightData, redirectLocation, redirectType, isPrerender, revalidatedParts } = param;\n let redirectHref;\n // honor the redirect type instead of defaulting to push in case of server actions.\n if (redirectLocation) {\n if (redirectType === _redirecterror.RedirectType.replace) {\n state.pushRef.pendingPush = false;\n mutable.pendingPush = false;\n } else {\n state.pushRef.pendingPush = true;\n mutable.pendingPush = true;\n }\n redirectHref = (0, _createhreffromurl.createHrefFromUrl)(redirectLocation, false);\n mutable.canonicalUrl = redirectHref;\n }\n if (!flightData) {\n resolve(actionResult);\n // If there is a redirect but no flight data we need to do a mpaNavigation.\n if (redirectLocation) {\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, redirectLocation.href, state.pushRef.pendingPush);\n }\n return state;\n }\n if (typeof flightData === 'string') {\n // Handle case when navigating to page in `pages` from `app`\n resolve(actionResult);\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, flightData, state.pushRef.pendingPush);\n }\n const actionRevalidated = revalidatedParts.paths.length > 0 || revalidatedParts.tag || revalidatedParts.cookie;\n for (const normalizedFlightData of flightData){\n const { tree: treePatch, seedData: cacheNodeSeedData, head, isRootRender } = normalizedFlightData;\n if (!isRootRender) {\n // TODO-APP: handle this case better\n console.log('SERVER ACTION APPLY FAILED');\n resolve(actionResult);\n return state;\n }\n // Given the path can only have two items the items are only the router state and rsc for the root.\n const newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)([\n ''\n ], currentTree, treePatch, redirectHref ? redirectHref : state.canonicalUrl);\n if (newTree === null) {\n resolve(actionResult);\n return (0, _handlesegmentmismatch.handleSegmentMismatch)(state, action, treePatch);\n }\n if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n resolve(actionResult);\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, redirectHref || state.canonicalUrl, state.pushRef.pendingPush);\n }\n // The server sent back RSC data for the server action, so we need to apply it to the cache.\n if (cacheNodeSeedData !== null) {\n const rsc = cacheNodeSeedData[1];\n const cache = (0, _approuter.createEmptyCacheNode)();\n cache.rsc = rsc;\n cache.prefetchRsc = null;\n cache.loading = cacheNodeSeedData[3];\n (0, _filllazyitemstillleafwithhead.fillLazyItemsTillLeafWithHead)(navigatedAt, cache, undefined, treePatch, cacheNodeSeedData, head, undefined);\n mutable.cache = cache;\n if (false) {} else {\n mutable.prefetchCache = new Map();\n }\n if (actionRevalidated) {\n await (0, _refetchinactiveparallelsegments.refreshInactiveParallelSegments)({\n navigatedAt,\n state,\n updatedTree: newTree,\n updatedCache: cache,\n includeNextUrl: Boolean(nextUrl),\n canonicalUrl: mutable.canonicalUrl || state.canonicalUrl\n });\n }\n }\n mutable.patchedTree = newTree;\n currentTree = newTree;\n }\n if (redirectLocation && redirectHref) {\n if ( true && !actionRevalidated) {\n // Because the RedirectBoundary will trigger a navigation, we need to seed the prefetch cache\n // with the FlightData that we got from the server action for the target page, so that it's\n // available when the page is navigated to and doesn't need to be re-fetched.\n // We only do this if the server action didn't revalidate any data, as in that case the\n // client cache will be cleared and the data will be re-fetched anyway.\n // NOTE: We don't do this in the Segment Cache implementation.\n // Dynamic data should never be placed into the cache, unless it's\n // \"converted\" to static data using <Link prefetch={true}>. What we\n // do instead is re-prefetch links and forms whenever the cache is\n // invalidated.\n (0, _prefetchcacheutils.createSeededPrefetchCacheEntry)({\n url: redirectLocation,\n data: {\n flightData,\n canonicalUrl: undefined,\n couldBeIntercepted: false,\n prerendered: false,\n postponed: false,\n // TODO: We should be able to set this if the server action\n // returned a fully static response.\n staleTime: -1\n },\n tree: state.tree,\n prefetchCache: state.prefetchCache,\n nextUrl: state.nextUrl,\n kind: isPrerender ? _routerreducertypes.PrefetchKind.FULL : _routerreducertypes.PrefetchKind.AUTO\n });\n mutable.prefetchCache = state.prefetchCache;\n }\n // If the action triggered a redirect, the action promise will be rejected with\n // a redirect so that it's handled by RedirectBoundary as we won't have a valid\n // action result to resolve the promise with. This will effectively reset the state of\n // the component that called the action as the error boundary will remount the tree.\n // The status code doesn't matter here as the action handler will have already sent\n // a response with the correct status code.\n reject((0, _redirect.getRedirectError)((0, _hasbasepath.hasBasePath)(redirectHref) ? (0, _removebasepath.removeBasePath)(redirectHref) : redirectHref, redirectType || _redirecterror.RedirectType.push));\n } else {\n resolve(actionResult);\n }\n return (0, _handlemutable.handleMutable)(state, mutable);\n }, (e)=>{\n // When the server action is rejected we don't update the state and instead call the reject handler of the promise.\n reject(e);\n return state;\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=server-action-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3NlcnZlci1hY3Rpb24tcmVkdWNlci5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQW1OZ0JBOzs7ZUFBQUE7OzsyQ0EvTVc7aURBQ007OENBUTFCO29DQVFBO2dEQVFBOzRDQUN3QjsrQ0FDRzs2Q0FDQTt5REFDVTt5REFDQTsyQ0FFZDsyREFDZ0I7dUNBQ1Q7K0RBQ2E7bURBQ1o7NkRBQ1U7K0NBS3pDO3NDQUMwQjsyQ0FDSjtnREFDa0I7NENBQ2hCO3lDQUNIO2lEQUlyQjswQ0FDK0I7QUFFdEMsTUFBTUMsa0JBQ0pDLFFBQUFBLGVBQXNCO0FBZXhCLGVBQWVDLGtCQUNiQyxLQUEyQixFQUMzQkMsT0FBd0MsRUFDeEMsS0FBNEM7SUFBNUMsTUFBRUMsUUFBUSxFQUFFQyxVQUFVLEVBQXNCLEdBQTVDO0lBRUEsTUFBTUMsc0JBQXNCQyxDQUFBQSxHQUFBQSxRQUFBQSwyQkFBQUE7SUFDNUIsTUFBTUMsT0FBT0MsQ0FBQUEsR0FBQUEscUJBQUFBLGdDQUFnQyxFQUFDTDtJQUU5Qyw2RUFBNkU7SUFDN0UsOEVBQThFO0lBQzlFLCtDQUErQztJQUMvQyxNQUFNTSxXQUNKRixLQUFLRyxJQUFJLEtBQUssY0FBY0MsQ0FBQUEsR0FBQUEscUJBQUFBLGNBQUFBLEVBQWVQLFlBQVlHLFFBQVFIO0lBRWpFLE1BQU1RLE9BQU8sTUFBTUMsQ0FBQUEsR0FBQUEsUUFBQUEsV0FBQUEsRUFBWUosVUFBVTtRQUFFSjtJQUFvQjtJQUUvRCxNQUFNUyxNQUFNLE1BQU1DLE1BQU1kLE1BQU1lLFlBQVksRUFBRTtRQUMxQ0MsUUFBUTtRQUNSQyxTQUFTO1lBQ1BDLFFBQVFDLGtCQUFBQSx1QkFBdUI7WUFDL0IsQ0FBQ0Msa0JBQUFBLGFBQWEsQ0FBQyxFQUFFbEI7WUFDakIsQ0FBQ21CLGtCQUFBQSw2QkFBNkIsQ0FBQyxFQUFFQyxDQUFBQSxHQUFBQSxtQkFB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ZW50cy9yb3V0ZXItcmVkdWNlci9yZWR1Y2Vycy9zZXJ2ZXItYWN0aW9uLXJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBBY3Rpb25GbGlnaHRSZXNwb25zZSxcbiAgQWN0aW9uUmVzdWx0LFxufSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCB7IGNhbGxTZXJ2ZXIgfSBmcm9tICcuLi8uLi8uLi9hcHAtY2FsbC1zZXJ2ZXInXG5pbXBvcnQgeyBmaW5kU291cmNlTWFwVVJMIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWZpbmQtc291cmNlLW1hcC11cmwnXG5pbXBvcnQge1xuICBBQ1RJT05fSEVBREVSLFxuICBORVhUX0FDVElPTl9OT1RfRk9VTkRfSEVBREVSLFxuICBORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSLFxuICBORVhUX1VSTCxcbiAgUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIsXG59IGZyb20gJy4uLy4uL2FwcC1yb3V0ZXItaGVhZGVycydcblxuLy8gVE9ETzogRXhwbGljaXRseSBpbXBvcnQgZnJvbSBjbGllbnQuYnJvd3NlclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xuaW1wb3J0IHtcbiAgY3JlYXRlRnJvbUZldGNoIGFzIGNyZWF0ZUZyb21GZXRjaEJyb3dzZXIsXG4gIGNyZWF0ZVRlbXBvcmFyeVJlZmVyZW5jZVNldCxcbiAgZW5jb2RlUmVwbHksXG59IGZyb20gJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQnXG5cbmltcG9ydCB7XG4gIFByZWZldGNoS2luZCxcbiAgdHlwZSBSZWFkb25seVJlZHVjZXJTdGF0ZSxcbiAgdHlwZSBSZWR1Y2VyU3RhdGUsXG4gIHR5cGUgU2VydmVyQWN0aW9uQWN0aW9uLFxuICB0eXBlIFNlcnZlckFjdGlvbk11dGFibGUsXG59IGZyb20gJy4uL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuaW1wb3J0IHsgYXNzaWduTG9jYXRpb24gfSBmcm9tICcuLi8uLi8uLi9hc3NpZ24tbG9jYXRpb24nXG5pbXBvcnQgeyBjcmVhdGVIcmVmRnJvbVVybCB9IGZyb20gJy4uL2NyZWF0ZS1ocmVmLWZyb20tdXJsJ1xuaW1wb3J0IHsgaGFuZGxlRXh0ZXJuYWxVcmwgfSBmcm9tICcuL25hdmlnYXRlLXJlZHVjZXInXG5pbXBvcnQgeyBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUgfSBmcm9tICcuLi9hcHBseS1yb3V0ZXItc3RhdGUtcGF0Y2gtdG8tdHJlZSdcbmltcG9ydCB7IGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCB9IGZyb20gJy4uL2lzLW5hdmlnYXRpbmctdG8tbmV3LXJvb3QtbGF5b3V0J1xuaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGhhbmRsZU11dGFibGUgfSBmcm9tICcuLi9oYW5kbGUtbXV0YWJsZSdcbmltcG9ydCB7IGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkIH0gZnJvbSAnLi4vZmlsbC1sYXp5LWl0ZW1zLXRpbGwtbGVhZi13aXRoLWhlYWQnXG5pbXBvcnQgeyBjcmVhdGVFbXB0eUNhY2hlTm9kZSB9IGZyb20gJy4uLy4uL2FwcC1yb3V0ZXInXG5pbXBvcnQgeyBoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUgfSBmcm9tICcuL2hhcy1pbnRlcmNlcHRpb24tcm91dGUtaW4tY3VycmVudC10cmVlJ1xuaW1wb3J0IHsgaGFuZGxlU2VnbWVudE1pc21hdGNoIH0gZnJvbSAnLi4vaGFuZGxlLXNlZ21lbnQtbWlzbWF0Y2gnXG5pbXBvcnQgeyByZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzIH0gZnJvbSAnLi4vcmVmZXRjaC1pbmFjdGl2ZS1wYXJhbGxlbC1zZWdtZW50cydcbmltcG9ydCB7XG4gIG5vcm1hbGl6ZUZsaWdodERhdGEsXG4gIHByZXBhcmVGbGlnaHRSb3V0ZXJTdGF0ZUZvclJlcXVlc3QsXG4gIHR5cGUgTm9ybWFsaXplZEZsaWdodERhdGEsXG59IGZyb20gJy4uLy4uLy4uL2ZsaWdodC1kYXRhLWhlbHBlcnMnXG5pbXBvcnQgeyBnZXRSZWRpcmVjdEVycm9yIH0gZnJvbSAnLi4vLi4vcmVkaXJlY3QnXG5pbXBvcnQgeyBSZWRpcmVjdFR5cGUgfSBmcm9tICcuLi8uLi9yZWRpcmVjdC1lcnJvcidcbmltcG9ydCB7IGNyZWF0ZVNlZWRlZFByZWZldGNoQ2FjaGVFbnRyeSB9IGZyb20gJy4uL3ByZWZldGNoLWNhY2hlLXV0aWxzJ1xuaW1wb3J0IHsgcmVtb3ZlQmFzZVBhdGggfSBmcm9tICcuLi8uLi8uLi9yZW1vdmUtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgaGFzQmFzZVBhdGggfSBmcm9tICcuLi8uLi8uLi9oYXMtYmFzZS1wYXRoJ1xuaW1wb3J0IHtcbiAgZXh0cmFjdEluZm9Gcm9tU2VydmVyUmVmZXJlbmNlSWQsXG4gIG9taXRVbnVzZWRBcmdzLFxufSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL3NlcnZlci1yZWZlcmVuY2UtaW5mbydcbmltcG9ydCB7IHJldmFsaWRhdGVFbnRpcmVDYWNoZSB9IGZyb20gJy4uLy4uL3NlZ21lbnQtY2FjaGUnXG5cbmNvbnN0IGNyZWF0ZUZyb21GZXRjaCA9XG4gIGNyZWF0ZUZyb21GZXRjaEJyb3dzZXIgYXMgKHR5cGVvZiBpbXBvcnQoJ3JlYWN0LXNlcnZlci1kb20td2VicGFjay9jbGllbnQuYnJvd3NlcicpKVsnY3JlYXRlRnJvbUZldGNoJ11cblxudHlwZSBGZXRjaFNlcnZlckFjdGlvblJlc3VsdCA9IHtcbiAgcmVkaXJlY3RMb2NhdGlvbjogVVJMIHwgdW5kZWZpbmVkXG4gIHJlZGlyZWN0VHlwZTogUmVkaXJlY3RUeXBlIHwgdW5kZWZpbmVkXG4gIGFjdGlvblJlc3VsdDogQWN0aW9uUmVzdWx0IHwgdW5kZWZpbmVkXG4gIGFjdGlvbkZsaWdodERhdGE6IE5vcm1hbGl6ZWRGbGlnaHREYXRhW10gfCBzdHJpbmcgfCB1bmRlZmluZWRcbiAgaXNQcmVyZW5kZXI6IGJvb2xlYW5cbiAgcmV2YWxpZGF0ZWRQYXJ0czoge1xuICAgIHRhZzogYm9vbGVhblxuICAgIGNvb2tpZTogYm9vbGVhblxuICAgIHBhdGhzOiBzdHJpbmdbXVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoU2VydmVyQWN0aW9uKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIG5leHRVcmw6IFJlYWRvbmx5UmVkdWNlclN0YXRlWyduZXh0VXJsJ10sXG4gIHsgYWN0aW9uSWQsIGFjdGlvbkFyZ3MgfTogU2VydmVyQWN0aW9uQWN0aW9uXG4pOiBQcm9taXNlPEZldGNoU2VydmVyQWN0aW9uUmVzdWx0PiB7XG4gIGNvbnN0IHRlbXBvcmFyeVJlZmVyZW5jZXMgPSBjcmVhdGVUZW1wb3JhcnlSZWZlcmVuY2VTZXQoKVxuICBjb25zdCBpbmZvID0gZXh0cmFjdEluZm9Gcm9tU2VydmVyUmVmZXJlbmNlSWQoYWN0aW9uSWQpXG5cbiAgLy8gVE9ETzogQ3VycmVudGx5LCB3ZSdyZSBvbmx5IG9taXR0aW5nIHVudXNlZCBhcmdzIGZvciB0aGUgZXhwZXJpbWVudGFsIFwidXNlXG4gIC8vIGNhY2hlXCIgZnVuY3Rpb25zLiBPbmNlIHRoZSBzZXJ2ZXIgcmVmZXJlbmNlIGluZm8gYnl0ZSBmZWF0dXJlIGlzIHN0YWJsZSwgd2VcbiAgLy8gc2hvdWxkIGFwcGx5IHRoaXMgdG8gc2VydmVyIGFjdGlvbnMgYXMgd2VsbC5cbiAgY29uc3QgdXNlZEFyZ3MgPVxuICAgIGluZm8udHlwZSA9PT0gJ3VzZS1jYWNoZScgPyBvbWl0VW51c2VkQXJncyhhY3Rpb25BcmdzLCBpbmZvKSA6IGFjdGlvbkFyZ3NcblxuICBjb25zdCBib2R5ID0gYXdhaXQgZW5jb2RlUmVwbHkodXNlZEFyZ3MsIHsgdGVtcG9yYXJ5UmVmZXJlbmNlcyB9KVxuXG4gIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKHN0YXRlLmNhbm9uaWNhbFVybCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgIEFjY2VwdDogUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIsXG4gICAgICBbQUNUSU9OX0hFQURFUl06IGFjdGlvbklkLFxuICAgICAgW05FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSXTogcHJlcGFyZUZsaWdodFJvdXRlclN0YXRlRm9yUmVxdWVzdChcbiAgICAgICAgc3RhdGUudHJlZVxuICAgICAgKSxcbiAgICAgIC4uLihwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSURcbiAgICAgICAgPyB7XG4gICAgICAgICAgICAneC1kZXBsb3ltZW50LWlkJzogcHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lELFxuICAgICAgICAgIH1cbiAgICAgICAgOiB7fSksXG4gICAgICAuLi4obmV4dFVybFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIFtORVhUX1VSTF06IG5leHRVcmwsXG4gICAgICAgICAgfVxuICAgICAgICA6IHt9KSxcbiAgICB9LFxuICAgIGJvZHksXG4gIH0pXG5cbiAgLy8gSGFuZGxlIHNlcnZlciBhY3Rpb25zIHRoYXQgdGhlIHNlcnZlciBkaWRuJ3QgcmVjb2duaXplLlxuICBjb25zdCB1bnJlY29nbml6ZWRBY3Rpb25IZWFkZXIgPSByZXMuaGVhZGVycy5nZXQoTkVYVF9BQ1RJT05fTk9UX0ZPVU5EX0hFQURFUilcbiAgaWYgKHVucmVjb2duaXplZEFjdGlvbkhlYWRlciA9PT0gJzEnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFNlcnZlciBBY3Rpb24gXCIke2FjdGlvbklkfVwiIHdhcyBub3QgZm91bmQgb24gdGhlIHNlcnZlci4gXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9mYWlsZWQtdG8tZmluZC1zZXJ2ZXItYWN0aW9uYFxuICAgIClcbiAgfVxuXG4gIGNvbnN0IHJlZGlyZWN0SGVhZGVyID0gcmVzLmhlYWRlcnMuZ2V0KCd4LWFjdGlvbi1yZWRpcmVjdCcpXG4gIGNvbnN0IFtsb2NhdGlvbiwgX3JlZGlyZWN0VHlwZV0gPSByZWRpcmVjdEhlYWRlcj8uc3BsaXQoJzsnKSB8fCBbXVxuICBsZXQgcmVkaXJlY3RUeXBlOiBSZWRpcmVjdFR5cGUgfCB1bmRlZmluZWRcbiAgc3dpdGNoIChfcmVkaXJlY3RUeXBlKSB7XG4gICAgY2FzZSAncHVzaCc6XG4gICAgICByZWRpcmVjdFR5cGUgPSBSZWRpcmVjdFR5cGUucHVzaFxuICAgICAgYnJlYWtcbiAgICBjYXNlICdyZXBsYWNlJzpcbiAgICAgIHJlZGlyZWN0VHlwZSA9IFJlZGlyZWN0VHlwZS5yZXBsYWNlXG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICByZWRpcmVjdFR5cGUgPSB1bmRlZmluZWRcbiAgfVxuXG4gIGNvbnN0IGlzUHJlcmVuZGVyID0gISFyZXMuaGVhZGVycy5nZXQoTkVYVF9JU19QUkVSRU5ERVJfSEVBREVSKVxuICBsZXQgcmV2YWxpZGF0ZWRQYXJ0czogRmV0Y2hTZXJ2ZXJBY3Rpb25SZXN1bHRbJ3JldmFsaWRhdGVkUGFydHMnXVxuICB0cnkge1xuICAgIGNvbnN0IHJldmFsaWRhdGVkSGVhZGVyID0gSlNPTi5wYXJzZShcbiAgICAgIHJlcy5oZWFkZXJzLmdldCgneC1hY3Rpb24tcmV2YWxpZGF0ZWQnKSB8fCAnW1tdLDAsMF0nXG4gICAgKVxuICAgIHJldmFsaWRhdGVkUGFydHMgPSB7XG4gICAgICBwYXRoczogcmV2YWxpZGF0ZWRIZWFkZXJbMF0gfHwgW10sXG4gICAgICB0YWc6ICEhcmV2YWxpZGF0ZWRIZWFkZXJbMV0sXG4gICAgICBjb29raWU6IHJldmFsaWRhdGVkSGVhZGVyWzJdLFxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldmFsaWRhdGVkUGFydHMgPSBOT19SRVZBTElEQVRFRF9QQVJUU1xuICB9XG5cbiAgY29uc3QgcmVkaXJlY3RMb2NhdGlvbiA9IGxvY2F0aW9uXG4gICAgPyBhc3NpZ25Mb2NhdGlvbihcbiAgICAgICAgbG9jYXRpb24sXG4gICAgICAgIG5ldyBVUkwoc3RhdGUuY2Fub25pY2FsVXJsLCB3aW5kb3cubG9jYXRpb24uaHJlZilcbiAgICAgIClcbiAgICA6IHVuZGVmaW5lZFxuXG4gIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKVxuICBjb25zdCBpc1JzY1Jlc3BvbnNlID0gISEoXG4gICAgY29udGVudFR5cGUgJiYgY29udGVudFR5cGUuc3RhcnRzV2l0aChSU0NfQ09OVEVOVF9UWVBFX0hFQURFUilcbiAgKVxuXG4gIC8vIEhhbmRsZSBpbnZhbGlkIHNlcnZlciBhY3Rpb24gcmVzcG9uc2VzLlxuICAvLyBBIHZhbGlkIHJlc3BvbnNlIG11c3QgaGF2ZSBgY29udGVudC10eXBlOiB0ZXh0L3gtY29tcG9uZW50YCwgdW5sZXNzIGl0J3MgYW4gZXh0ZXJuYWwgcmVkaXJlY3QuXG4gIC8vIChleHRlcm5hbCByZWRpcmVjdHMgaGF2ZSBhbiAneC1hY3Rpb24tcmVkaXJlY3QnIGhlYWRlciwgYnV0IHRoZSBib2R5IGlzIGFuIGVtcHR5ICd0ZXh0L3BsYWluJylcbiAgaWYgKCFpc1JzY1Jlc3BvbnNlICYmICFyZWRpcmVjdExvY2F0aW9uKSB7XG4gICAgLy8gVGhlIHNlcnZlciBjYW4gcmVzcG9uZCB3aXRoIGEgdGV4dC9wbGFpbiBlcnJvciBtZXNzYWdlLCBidXQgd2UnbGwgZmFsbGJhY2sgdG8gc29tZXRoaW5nIGdlbmVyaWNcbiAgICAvLyBpZiB0aGVyZSBpc24ndCBvbmUuXG4gICAgY29uc3QgbWVzc2FnZSA9XG4gICAgICByZXMuc3RhdHVzID49IDQwMCAmJiBjb250ZW50VHlwZSA9PT0gJ3RleHQvcGxhaW4nXG4gICAgICAgID8gYXdhaXQgcmVzLnRleHQoKVxuICAgICAgICA6ICdBbiB1bmV4cGVjdGVkIHJlc3BvbnNlIHdhcyByZWNlaXZlZCBmcm9tIHRoZSBzZXJ2ZXIuJ1xuXG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpXG4gIH1cblxuICBsZXQgYWN0aW9uUmVzdWx0OiBGZXRjaFNlcnZlckFjdGlvblJlc3VsdFsnYWN0aW9uUmVzdWx0J11cbiAgbGV0IGFjdGlvbkZsaWdodERhdGE6IEZldGNoU2VydmVyQWN0aW9uUmVzdWx0WydhY3Rpb25GbGlnaHREYXRhJ11cbiAgaWYgKGlzUnNjUmVzcG9uc2UpIHtcbiAgICBjb25zdCByZXNwb25zZTogQWN0aW9uRmxpZ2h0UmVzcG9uc2UgPSBhd2FpdCBjcmVhdGVGcm9tRmV0Y2goXG4gICAgICBQcm9taXNlLnJlc29sdmUocmVzKSxcbiAgICAgIHsgY2FsbFNlcnZlciwgZmluZFNvdXJjZU1hcFVSTCwgdGVtcG9yYXJ5UmVmZXJlbmNlcyB9XG4gICAgKVxuICAgIC8vIEFuIGludGVybmFsIHJlZGlyZWN0IGNhbiBzZW5kIGFuIFJTQyByZXNwb25zZSwgYnV0IGRvZXMgbm90IGhhdmUgYSB1c2VmdWwgYGFjdGlvblJlc3VsdGAuXG4gICAgYWN0aW9uUmVzdWx0ID0gcmVkaXJlY3RMb2NhdGlvbiA/IHVuZGVmaW5lZCA6IHJlc3BvbnNlLmFcbiAgICBhY3Rpb25GbGlnaHREYXRhID0gbm9ybWFsaXplRmxpZ2h0RGF0YShyZXNwb25zZS5mKVxuICB9IGVsc2Uge1xuICAgIC8vIEFuIGV4dGVybmFsIHJlZGlyZWN0IGRvZXNuJ3QgY29udGFpbiBSU0MgZGF0YS5cbiAgICBhY3Rpb25SZXN1bHQgPSB1bmRlZmluZWRcbiAgICBhY3Rpb25GbGlnaHREYXRhID0gdW5kZWZpbmVkXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGlvblJlc3VsdCxcbiAgICBhY3Rpb25GbGlnaHREYXRhLFxuICAgIHJlZGlyZWN0TG9jYXRpb24sXG4gICAgcmVkaXJlY3RUeXBlLFxuICAgIHJldmFsaWRhdGVkUGFydHMsXG4gICAgaXNQcmVyZW5kZXIsXG4gIH1cbn1cblxuY29uc3QgTk9fUkVWQUxJREFURURfUEFSVFMgPSB7XG4gIHBhdGhzOiBbXSxcbiAgdGFnOiBmYWxzZSxcbiAgY29va2llOiBmYWxzZSxcbn1cblxuLypcbiAqIFRoaXMgcmVkdWNlciBpcyByZXNwb25zaWJsZSBmb3IgY2FsbGluZyB0aGUgc2VydmVyIGFjdGlvbiBhbmQgcHJvY2Vzc2luZyBhbnkgc2lkZS1lZmZlY3RzIGZyb20gdGhlIHNlcnZlciBhY3Rpb24uXG4gKiBJdCBkb2VzIG5vdCBtdXRhdGUgdGhlIHN0YXRlIGJ5IGl0c2VsZiBidXQgcmF0aGVyIGRlbGVnYXRlcyB0byBvdGhlciByZWR1Y2VycyB0byBkbyB0aGUgYWN0dWFsIG11dGF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VydmVyQWN0aW9uUmVkdWNlcihcbiAgc3RhdGU6IFJlYWRvbmx5UmVkdWNlclN0YXRlLFxuICBhY3Rpb246IFNlcnZlckFjdGlvbkFjdGlvblxuKTogUmVkdWNlclN0YXRlIHtcbiAgY29uc3QgeyByZXNvbHZlLCByZWplY3QgfSA9IGFjdGlvblxuICBjb25zdCBtdXRhYmxlOiBTZXJ2ZXJBY3Rpb25NdXRhYmxlID0ge31cblxuICBsZXQgY3VycmVudFRyZWUgPSBzdGF0ZS50cmVlXG5cbiAgbXV0YWJsZS5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSA9IGZhbHNlXG5cbiAgLy8gb25seSBwYXNzIGFsb25nIHRoZSBgbmV4dFVybGAgcGFyYW0gKHVzZWQgZm9yIGludGVyY2VwdGlvbiByb3V0ZXMpIGlmIHRoZSBjdXJyZW50IHJvdXRlIHdhcyBpbnRlcmNlcHRlZC5cbiAgLy8gSWYgdGhlIHJvdXRlIGhhcyBiZWVuIGludGVyY2VwdGVkLCB0aGUgYWN0aW9uIHNob3VsZCBiZSBhcyB3ZWxsLlxuICAvLyBPdGhlcndpc2UgdGhlIHNlcnZlciBhY3Rpb24gbWlnaHQgYmUgaW50ZXJjZXB0ZWQgd2l0aCB0aGUgd3JvbmcgYWN0aW9uIGlkXG4gIC8vIChpZSwgb25lIHRoYXQgY29ycmVzcG9uZHMgd2l0aCB0aGUgaW50ZXJjZXB0ZWQgcm91dGUpXG4gIGNvbnN0IG5leHRVcmwgPVxuICAgIHN0YXRlLm5leHRVcmwgJiYgaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlKHN0YXRlLnRyZWUpXG4gICAgICA/IHN0YXRlLm5leHRVcmxcbiAgICAgIDogbnVsbFxuXG4gIGNvbnN0IG5hdmlnYXRlZEF0ID0gRGF0ZS5ub3coKVxuXG4gIHJldHVybiBmZXRjaFNlcnZlckFjdGlvbihzdGF0ZSwgbmV4dFVybCwgYWN0aW9uKS50aGVuKFxuICAgIGFzeW5jICh7XG4gICAgICBhY3Rpb25SZXN1bHQsXG4gICAgICBhY3Rpb25GbGlnaHREYXRhOiBmbGlnaHREYXRhLFxuICAgICAgcmVkaXJlY3RMb2NhdGlvbixcbiAgICAgIHJlZGlyZWN0VHlwZSxcbiAgICAgIGlzUHJlcmVuZGVyLFxuICAgICAgcmV2YWxpZGF0ZWRQYXJ0cyxcbiAgICB9KSA9PiB7XG4gICAgICBsZXQgcmVkaXJlY3RIcmVmOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICAgICAgLy8gaG9ub3IgdGhlIHJlZGlyZWN0IHR5cGUgaW5zdGVhZCBvZiBkZWZhdWx0aW5nIHRvIHB1c2ggaW4gY2FzZSBvZiBzZXJ2ZXIgYWN0aW9ucy5cbiAgICAgIGlmIChyZWRpcmVjdExvY2F0aW9uKSB7XG4gICAgICAgIGlmIChyZWRpcmVjdFR5cGUgPT09IFJlZGlyZWN0VHlwZS5yZXBsYWNlKSB7XG4gICAgICAgICAgc3RhdGUucHVzaFJlZi5wZW5kaW5nUHVzaCA9IGZhbHNlXG4gICAgICAgICAgbXV0YWJsZS5wZW5kaW5nUHVzaCA9IGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUucHVzaFJlZi5wZW5kaW5nUHVzaCA9IHRydWVcbiAgICAgICAgICBtdXRhYmxlLnBlbmRpbmdQdXNoID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgcmVkaXJlY3RIcmVmID0gY3JlYXRlSHJlZkZyb21VcmwocmVkaXJlY3RMb2NhdGlvbiwgZmFsc2UpXG4gICAgICAgIG11dGFibGUuY2Fub25pY2FsVXJsID0gcmVkaXJlY3RIcmVmXG4gICAgICB9XG5cbiAgICAgIGlmICghZmxpZ2h0RGF0YSkge1xuICAgICAgICByZXNvbHZlKGFjdGlvblJlc3VsdClcblxuICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHJlZGlyZWN0IGJ1dCBubyBmbGlnaHQgZGF0YSB3ZSBuZWVkIHRvIGRvIGEgbXBhTmF2aWdhdGlvbi5cbiAgICAgICAgaWYgKHJlZGlyZWN0TG9jYXRpb24pIHtcbiAgICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIG11dGFibGUsXG4gICAgICAgICAgICByZWRpcmVjdExvY2F0aW9uLmhyZWYsXG4gICAgICAgICAgICBzdGF0ZS5wdXNoUmVmLnBlbmRpbmdQdXNoXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGZsaWdodERhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gbmF2aWdhdGluZyB0byBwYWdlIGluIGBwYWdlc2AgZnJvbSBgYXBwYFxuICAgICAgICByZXNvbHZlKGFjdGlvblJlc3VsdClcblxuICAgICAgICByZXR1cm4gaGFuZGxlRXh0ZXJuYWxVcmwoXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgbXV0YWJsZSxcbiAgICAgICAgICBmbGlnaHREYXRhLFxuICAgICAgICAgIHN0YXRlLnB1c2hSZWYucGVuZGluZ1B1c2hcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBhY3Rpb25SZXZhbGlkYXRlZCA9XG4gICAgICAgIHJldmFsaWRhdGVkUGFydHMucGF0aHMubGVuZ3RoID4gMCB8fFxuICAgICAgICByZXZhbGlkYXRlZFBhcnRzLnRhZyB8fFxuICAgICAgICByZXZhbGlkYXRlZFBhcnRzLmNvb2tpZVxuXG4gICAgICBmb3IgKGNvbnN0IG5vcm1hbGl6ZWRGbGlnaHREYXRhIG9mIGZsaWdodERhdGEpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHRyZWU6IHRyZWVQYXRjaCxcbiAgICAgICAgICBzZWVkRGF0YTogY2FjaGVOb2RlU2VlZERhdGEsXG4gICAgICAgICAgaGVhZCxcbiAgICAgICAgICBpc1Jvb3RSZW5kZXIsXG4gICAgICAgIH0gPSBub3JtYWxpemVkRmxpZ2h0RGF0YVxuXG4gICAgICAgIGlmICghaXNSb290UmVuZGVyKSB7XG4gICAgICAgICAgLy8gVE9ETy1BUFA6IGhhbmRsZSB0aGlzIGNhc2UgYmV0dGVyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1NFUlZFUiBBQ1RJT04gQVBQTFkgRkFJTEVEJylcbiAgICAgICAgICByZXNvbHZlKGFjdGlvblJlc3VsdClcblxuICAgICAgICAgIHJldHVybiBzdGF0ZVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2l2ZW4gdGhlIHBhdGggY2FuIG9ubHkgaGF2ZSB0d28gaXRlbXMgdGhlIGl0ZW1zIGFyZSBvbmx5IHRoZSByb3V0ZXIgc3RhdGUgYW5kIHJzYyBmb3IgdGhlIHJvb3QuXG4gICAgICAgIGNvbnN0IG5ld1RyZWUgPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUoXG4gICAgICAgICAgLy8gVE9ETy1BUFA6IHJlbW92ZSAnJ1xuICAgICAgICAgIFsnJ10sXG4gICAgICAgICAgY3VycmVudFRyZWUsXG4gICAgICAgICAgdHJlZVBhdGNoLFxuICAgICAgICAgIHJlZGlyZWN0SHJlZiA/IHJlZGlyZWN0SHJlZiA6IHN0YXRlLmNhbm9uaWNhbFVybFxuICAgICAgICApXG5cbiAgICAgICAgaWYgKG5ld1RyZWUgPT09IG51bGwpIHtcbiAgICAgICAgICByZXNvbHZlKGFjdGlvblJlc3VsdClcblxuICAgICAgICAgIHJldHVybiBoYW5kbGVTZWdtZW50TWlzbWF0Y2goc3RhdGUsIGFjdGlvbiwgdHJlZVBhdGNoKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dChjdXJyZW50VHJlZSwgbmV3VHJlZSkpIHtcbiAgICAgICAgICByZXNvbHZlKGFjdGlvblJlc3VsdClcblxuICAgICAgICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChcbiAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgbXV0YWJsZSxcbiAgICAgICAgICAgIHJlZGlyZWN0SHJlZiB8fCBzdGF0ZS5jYW5vbmljYWxVcmwsXG4gICAgICAgICAgICBzdGF0ZS5wdXNoUmVmLnBlbmRpbmdQdXNoXG4gICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIHNlcnZlciBzZW50IGJhY2sgUlNDIGRhdGEgZm9yIHRoZSBzZXJ2ZXIgYWN0aW9uLCBzbyB3ZSBuZWVkIHRvIGFwcGx5IGl0IHRvIHRoZSBjYWNoZS5cbiAgICAgICAgaWYgKGNhY2hlTm9kZVNlZWREYXRhICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgcnNjID0gY2FjaGVOb2RlU2VlZERhdGFbMV1cbiAgICAgICAgICBjb25zdCBjYWNoZTogQ2FjaGVOb2RlID0gY3JlYXRlRW1wdHlDYWNoZU5vZGUoKVxuICAgICAgICAgIGNhY2hlLnJzYyA9IHJzY1xuICAgICAgICAgIGNhY2hlLnByZWZldGNoUnNjID0gbnVsbFxuICAgICAgICAgIGNhY2hlLmxvYWRpbmcgPSBjYWNoZU5vZGVTZWVkRGF0YVszXVxuICAgICAgICAgIGZpbGxMYXp5SXRlbXNUaWxsTGVhZldpdGhIZWFkKFxuICAgICAgICAgICAgbmF2aWdhdGVkQXQsXG4gICAgICAgICAgICBjYWNoZSxcbiAgICAgICAgICAgIC8vIEV4aXN0aW5nIGNhY2hlIGlzIG5vdCBwYXNzZWQgaW4gYXMgc2VydmVyIGFjdGlvbnMgaGF2ZSB0byBpbnZhbGlkYXRlIHRoZSBlbnRpcmUgY2FjaGUuXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICB0cmVlUGF0Y2gsXG4gICAgICAgICAgICBjYWNoZU5vZGVTZWVkRGF0YSxcbiAgICAgICAgICAgIGhlYWQsXG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICApXG5cbiAgICAgICAgICBtdXRhYmxlLmNhY2hlID0gY2FjaGVcbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFKSB7XG4gICAgICAgICAgICByZXZhbGlkYXRlRW50aXJlQ2FjaGUoc3RhdGUubmV4dFVybCwgbmV3VHJlZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbXV0YWJsZS5wcmVmZXRjaENhY2hlID0gbmV3IE1hcCgpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChhY3Rpb25SZXZhbGlkYXRlZCkge1xuICAgICAgICAgICAgYXdhaXQgcmVmcmVzaEluYWN0aXZlUGFyYWxsZWxTZWdtZW50cyh7XG4gICAgICAgICAgICAgIG5hdmlnYXRlZEF0LFxuICAgICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgICAgdXBkYXRlZFRyZWU6IG5ld1RyZWUsXG4gICAgICAgICAgICAgIHVwZGF0ZWRDYWNoZTogY2FjaGUsXG4gICAgICAgICAgICAgIGluY2x1ZGVOZXh0VXJsOiBCb29sZWFuKG5leHRVcmwpLFxuICAgICAgICAgICAgICBjYW5vbmljYWxVcmw6IG11dGFibGUuY2Fub25pY2FsVXJsIHx8IHN0YXRlLmNhbm9uaWNhbFVybCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbXV0YWJsZS5wYXRjaGVkVHJlZSA9IG5ld1RyZWVcbiAgICAgICAgY3VycmVudFRyZWUgPSBuZXdUcmVlXG4gICAgICB9XG5cbiAgICAgIGlmIChyZWRpcmVjdExvY2F0aW9uICYmIHJlZGlyZWN0SHJlZikge1xuICAgICAgICBpZiAoIXByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRSAmJiAhYWN0aW9uUmV2YWxpZGF0ZWQpIHtcbiAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBSZWRpcmVjdEJvdW5kYXJ5IHdpbGwgdHJpZ2dlciBhIG5hdmlnYXRpb24sIHdlIG5lZWQgdG8gc2VlZCB0aGUgcHJlZmV0Y2ggY2FjaGVcbiAgICAgICAgICAvLyB3aXRoIHRoZSBGbGlnaHREYXRhIHRoYXQgd2UgZ290IGZyb20gdGhlIHNlcnZlciBhY3Rpb24gZm9yIHRoZSB0YXJnZXQgcGFnZSwgc28gdGhhdCBpdCdzXG4gICAgICAgICAgLy8gYXZhaWxhYmxlIHdoZW4gdGhlIHBhZ2UgaXMgbmF2aWdhdGVkIHRvIGFuZCBkb2Vzbid0IG5lZWQgdG8gYmUgcmUtZmV0Y2hlZC5cbiAgICAgICAgICAvLyBXZSBvbmx5IGRvIHRoaXMgaWYgdGhlIHNlcnZlciBhY3Rpb24gZGlkbid0IHJldmFsaWRhdGUgYW55IGRhdGEsIGFzIGluIHRoYXQgY2FzZSB0aGVcbiAgICAgICAgICAvLyBjbGllbnQgY2FjaGUgd2lsbCBiZSBjbGVhcmVkIGFuZCB0aGUgZGF0YSB3aWxsIGJlIHJlLWZldGNoZWQgYW55d2F5LlxuICAgICAgICAgIC8vIE5PVEU6IFdlIGRvbid0IGRvIHRoaXMgaW4gdGhlIFNlZ21lbnQgQ2FjaGUgaW1wbGVtZW50YXRpb24uXG4gICAgICAgICAgLy8gRHluYW1pYyBkYXRhIHNob3VsZCBuZXZlciBiZSBwbGFjZWQgaW50byB0aGUgY2FjaGUsIHVubGVzcyBpdCdzXG4gICAgICAgICAgLy8gXCJjb252ZXJ0ZWRcIiB0byBzdGF0aWMgZGF0YSB1c2luZyA8TGluayBwcmVmZXRjaD17dHJ1ZX0+LiBXaGF0IHdlXG4gICAgICAgICAgLy8gZG8gaW5zdGVhZCBpcyByZS1wcmVmZXRjaCBsaW5rcyBhbmQgZm9ybXMgd2hlbmV2ZXIgdGhlIGNhY2hlIGlzXG4gICAgICAgICAgLy8gaW52YWxpZGF0ZWQuXG4gICAgICAgICAgY3JlYXRlU2VlZGVkUHJlZmV0Y2hDYWNoZUVudHJ5KHtcbiAgICAgICAgICAgIHVybDogcmVkaXJlY3RMb2NhdGlvbixcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgZmxpZ2h0RGF0YSxcbiAgICAgICAgICAgICAgY2Fub25pY2FsVXJsOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGNvdWxkQmVJbnRlcmNlcHRlZDogZmFsc2UsXG4gICAgICAgICAgICAgIHByZXJlbmRlcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgcG9zdHBvbmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgLy8gVE9ETzogV2Ugc2hvdWxkIGJlIGFibGUgdG8gc2V0IHRoaXMgaWYgdGhlIHNlcnZlciBhY3Rpb25cbiAgICAgICAgICAgICAgLy8gcmV0dXJuZWQgYSBmdWxseSBzdGF0aWMgcmVzcG9uc2UuXG4gICAgICAgICAgICAgIHN0YWxlVGltZTogLTEsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJlZTogc3RhdGUudHJlZSxcbiAgICAgICAgICAgIHByZWZldGNoQ2FjaGU6IHN0YXRlLnByZWZldGNoQ2FjaGUsXG4gICAgICAgICAgICBuZXh0VXJsOiBzdGF0ZS5uZXh0VXJsLFxuICAgICAgICAgICAga2luZDogaXNQcmVyZW5kZXIgPyBQcmVmZXRjaEtpbmQuRlVMTCA6IFByZWZldGNoS2luZC5BVVRPLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgbXV0YWJsZS5wcmVmZXRjaENhY2hlID0gc3RhdGUucHJlZmV0Y2hDYWNoZVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIGFjdGlvbiB0cmlnZ2VyZWQgYSByZWRpcmVjdCwgdGhlIGFjdGlvbiBwcm9taXNlIHdpbGwgYmUgcmVqZWN0ZWQgd2l0aFxuICAgICAgICAvLyBhIHJlZGlyZWN0IHNvIHRoYXQgaXQncyBoYW5kbGVkIGJ5IFJlZGlyZWN0Qm91bmRhcnkgYXMgd2Ugd29uJ3QgaGF2ZSBhIHZhbGlkXG4gICAgICAgIC8vIGFjdGlvbiByZXN1bHQgdG8gcmVzb2x2ZSB0aGUgcHJvbWlzZSB3aXRoLiBUaGlzIHdpbGwgZWZmZWN0aXZlbHkgcmVzZXQgdGhlIHN0YXRlIG9mXG4gICAgICAgIC8vIHRoZSBjb21wb25lbnQgdGhhdCBjYWxsZWQgdGhlIGFjdGlvbiBhcyB0aGUgZXJyb3IgYm91bmRhcnkgd2lsbCByZW1vdW50IHRoZSB0cmVlLlxuICAgICAgICAvLyBUaGUgc3RhdHVzIGNvZGUgZG9lc24ndCBtYXR0ZXIgaGVyZSBhcyB0aGUgYWN0aW9uIGhhbmRsZXIgd2lsbCBoYXZlIGFscmVhZHkgc2VudFxuICAgICAgICAvLyBhIHJlc3BvbnNlIHdpdGggdGhlIGNvcnJlY3Qgc3RhdHVzIGNvZGUuXG4gICAgICAgIHJlamVjdChcbiAgICAgICAgICBnZXRSZWRpcmVjdEVycm9yKFxuICAgICAgICAgICAgaGFzQmFzZVBhdGgocmVkaXJlY3RIcmVmKVxuICAgICAgICAgICAgICA/IHJlbW92ZUJhc2VQYXRoKHJlZGlyZWN0SHJlZilcbiAgICAgICAgICAgICAgOiByZWRpcmVjdEhyZWYsXG4gICAgICAgICAgICByZWRpcmVjdFR5cGUgfHwgUmVkaXJlY3RUeXBlLnB1c2hcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoYWN0aW9uUmVzdWx0KVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gaGFuZGxlTXV0YWJsZShzdGF0ZSwgbXV0YWJsZSlcbiAgICB9LFxuICAgIChlOiBhbnkpID0+IHtcbiAgICAgIC8vIFdoZW4gdGhlIHNlcnZlciBhY3Rpb24gaXMgcmVqZWN0ZWQgd2UgZG9uJ3QgdXBkYXRlIHRoZSBzdGF0ZSBhbmQgaW5zdGVhZCBjYWxsIHRoZSByZWplY3QgaGFuZGxlciBvZiB0aGUgcHJvbWlzZS5cbiAgICAgIHJlamVjdChlKVxuXG4gICAgICByZXR1cm4gc3RhdGVcbiAgICB9XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJzZXJ2ZXJBY3Rpb25SZWR1Y2VyIiwiY3JlYXRlRnJvbUZldGNoIiwiY3JlYXRlRnJvbUZldGNoQnJvd3NlciIsImZldGNoU2VydmVyQWN0aW9uIiwic3RhdGUiLCJuZXh0VXJsIiwiYWN0aW9uSWQiLCJhY3Rpb25BcmdzIiwidGVtcG9yYXJ5UmVmZXJlbmNlcyIsImNyZWF0ZVRlbXBvcmFyeVJlZmVyZW5jZVNldCIsImluZm8iLCJleHRyYWN0SW5mb0Zyb21TZXJ2ZXJSZWZlcmVuY2VJZCIsInVzZWRBcmdzIiwidHlwZSIsIm9taXRVbnVzZWRBcmdzIiwiYm9keSIsImVuY29kZVJlcGx5IiwicmVzIiwiZmV0Y2giLCJjYW5vbmljYWxVcmwiLCJtZXRob2QiLCJoZWFkZXJzIiwiQWNjZXB0IiwiUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIiLCJBQ1RJT05fSEVBREVSIiwiTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIiLCJwcmVwYXJlRmxpZ2h0Um91dGVyU3RhdGVGb3JSZXF1ZXN0IiwidHJlZSIsInByb2Nlc3MiLCJlbnYiLCJORVhUX0RFUExPWU1FTlRfSUQiLCJORVhUX1VSTCIsInVucmVjb2duaXplZEFjdGlvbkhlYWRlciIsImdldCIsIk5FWFRfQUNUSU9OX05PVF9GT1VORF9IRUFERVIiLCJFcnJvciIsInJlZGlyZWN0SGVhZGVyIiwibG9jYXRpb24iLCJfcmVkaXJlY3RUeXBlIiwic3BsaXQiLCJyZWRpcmVjdFR5cGUiLCJSZWRpcmVjdFR5cGUiLCJwdXNoIiwicmVwbGFjZSIsInVuZGVmaW5lZCIsImlzUHJlcmVuZGVyIiwiTkVYVF9JU19QUkVSRU5ERVJfSEVBREVSIiwicmV2YWxpZGF0ZWRQYXJ0cyIsInJldmFsaWRhdGVkSGVhZGVyIiwiSlNPTiIsInBhcnNlIiwicGF0aHMiLCJ0YWciLCJjb29raWUiLCJlIiwiTk9fUkVWQUxJREFURURfUEFSVFMiLCJyZWRpcmVjdExvY2F0aW9uIiwiYXNzaWduTG9jYXRpb24iLCJVUkwiLCJ3aW5kb3ciLCJocmVmIiwiY29udGVudFR5cGUiLCJpc1JzY1Jlc3BvbnNlIiwic3RhcnRzV2l0aCIsIm1lc3NhZ2UiLCJzdGF0dXMiLCJ0ZXh0IiwiYWN0aW9uUmVzdWx0IiwiYWN0aW9uRmxpZ2h0RGF0YSIsInJlc3BvbnNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjYWxsU2VydmVyIiwiZmluZFNvdXJjZU1hcFVSTCIsImEiLCJub3JtYWxpemVGbGlnaHREYXRhIiwiZiIsImFjdGlvbiIsInJlamVjdCIsIm11dGFibGUiLCJjdXJyZW50VHJlZSIsInByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlIiwiaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlIiwibmF2aWdhdGVkQXQiLCJEYXRlIiwibm93IiwidGhlbiIsImZsaWdodERhdGEiLCJyZWRpcmVjdEhyZWYiLCJwdXNoUmVmIiwicGVuZGluZ1B1c2giLCJjcmVhdGVIcmVmRnJvbVVybCIsImhhbmRsZUV4dGVybmFsVXJsIiwiYWN0aW9uUmV2YWxpZGF0ZWQiLCJsZW5ndGgiLCJub3JtYWxpemVkRmxpZ2h0RGF0YSIsInRyZWVQYXRjaCIsInNlZWREYXRhIiwiY2FjaGVOb2RlU2VlZERhdGEiLCJoZWFkIiwiaXNSb290UmVuZGVyIiwiY29uc29sZSIsImxvZyIsIm5ld1RyZWUiLCJhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUiLCJoYW5kbGVTZWdtZW50TWlzbWF0Y2giLCJpc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQiLCJyc2MiLCJjYWNoZSIsImNyZWF0ZUVtcHR5Q2FjaGVOb2RlIiwicHJlZmV0Y2hSc2MiLCJsb2FkaW5nIiwiZmlsbExhenlJdGVtc1RpbGxMZWFmV2l0aEhlYWQiLCJfX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEUiLCJyZXZhbGlkYXRlRW50aXJlQ2FjaGUiLCJwcmVmZXRjaENhY2hlIiwiTWFwIiwicmVmcmVzaEluYWN0aXZlUGFyYWxsZWxTZWdtZW50cyIsInVwZGF0ZWRUcmVlIiwidXBkYXRlZENhY2hlIiwiaW5jbHVkZU5leHRVcmwiLCJCb29sZWFuIiwicGF0Y2hlZFRyZWUiLCJjcmVhdGVTZWVkZWRQcmVmZXRjaENhY2hlRW50cnkiLCJ1cmwiLCJkYXRhIiwiY291bGRCZUludGVyY2VwdGVkIiwicHJlcmVuZGVyZWQiLCJwb3N0cG9uZWQiLCJzdGFsZVRpbWUiLCJraW5kIiwiUHJlZmV0Y2hLaW5kIiwiRlVMTCIsIkFVVE8iLCJnZXRSZWRpcmVjdEVycm9yIiwiaGFzQmFzZVBhdGgiLCJyZW1vdmVCYXNlUGF0aCIsImhhbmRsZU11dGFibGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js":
/*!**************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js ***!
\**************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"serverPatchReducer\", ({\n enumerable: true,\n get: function() {\n return serverPatchReducer;\n }\n}));\nconst _createhreffromurl = __webpack_require__(/*! ../create-href-from-url */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/create-href-from-url.js\");\nconst _applyrouterstatepatchtotree = __webpack_require__(/*! ../apply-router-state-patch-to-tree */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js\");\nconst _isnavigatingtonewrootlayout = __webpack_require__(/*! ../is-navigating-to-new-root-layout */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js\");\nconst _navigatereducer = __webpack_require__(/*! ./navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nconst _applyflightdata = __webpack_require__(/*! ../apply-flight-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js\");\nconst _handlemutable = __webpack_require__(/*! ../handle-mutable */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/handle-mutable.js\");\nconst _approuter = __webpack_require__(/*! ../../app-router */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\");\nfunction serverPatchReducer(state, action) {\n const { serverResponse: { flightData, canonicalUrl: canonicalUrlOverride }, navigatedAt } = action;\n const mutable = {};\n mutable.preserveCustomHistoryState = false;\n // Handle case when navigating to page in `pages` from `app`\n if (typeof flightData === 'string') {\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, flightData, state.pushRef.pendingPush);\n }\n let currentTree = state.tree;\n let currentCache = state.cache;\n for (const normalizedFlightData of flightData){\n const { segmentPath: flightSegmentPath, tree: treePatch } = normalizedFlightData;\n const newTree = (0, _applyrouterstatepatchtotree.applyRouterStatePatchToTree)([\n '',\n ...flightSegmentPath\n ], currentTree, treePatch, state.canonicalUrl);\n // `applyRouterStatePatchToTree` returns `null` when it determined that the server response is not applicable to the current tree.\n // In other words, the server responded with a tree that doesn't match what the client is currently rendering.\n // This can happen if the server patch action took longer to resolve than a subsequent navigation which would have changed the tree.\n // Previously this case triggered an MPA navigation but it should be safe to simply discard the server response rather than forcing\n // the entire page to reload.\n if (newTree === null) {\n return state;\n }\n if ((0, _isnavigatingtonewrootlayout.isNavigatingToNewRootLayout)(currentTree, newTree)) {\n return (0, _navigatereducer.handleExternalUrl)(state, mutable, state.canonicalUrl, state.pushRef.pendingPush);\n }\n const canonicalUrlOverrideHref = canonicalUrlOverride ? (0, _createhreffromurl.createHrefFromUrl)(canonicalUrlOverride) : undefined;\n if (canonicalUrlOverrideHref) {\n mutable.canonicalUrl = canonicalUrlOverrideHref;\n }\n const cache = (0, _approuter.createEmptyCacheNode)();\n (0, _applyflightdata.applyFlightData)(navigatedAt, currentCache, cache, normalizedFlightData);\n mutable.patchedTree = newTree;\n mutable.cache = cache;\n currentCache = cache;\n currentTree = newTree;\n }\n return (0, _handlemutable.handleMutable)(state, mutable);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=server-patch-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZHVjZXJzL3NlcnZlci1wYXRjaC1yZWR1Y2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBZWdCQTs7O2VBQUFBOzs7K0NBZmtCO3lEQUNVO3lEQUNBOzZDQU9WOzZDQUNGOzJDQUNGO3VDQUVPO0FBRTlCLFNBQVNBLG1CQUNkQyxLQUEyQixFQUMzQkMsTUFBeUI7SUFFekIsTUFBTSxFQUNKQyxnQkFBZ0IsRUFBRUMsVUFBVSxFQUFFQyxjQUFjQyxvQkFBb0IsRUFBRSxFQUNsRUMsV0FBVyxFQUNaLEdBQUdMO0lBRUosTUFBTU0sVUFBbUIsQ0FBQztJQUUxQkEsUUFBUUMsMEJBQTBCLEdBQUc7SUFFckMsNERBQTREO0lBQzVELElBQUksT0FBT0wsZUFBZSxVQUFVO1FBQ2xDLE9BQU9NLENBQUFBLEdBQUFBLGlCQUFBQSxpQkFBQUEsRUFDTFQsT0FDQU8sU0FDQUosWUFDQUgsTUFBTVUsT0FBTyxDQUFDQyxXQUFXO0lBRTdCO0lBRUEsSUFBSUMsY0FBY1osTUFBTWEsSUFBSTtJQUM1QixJQUFJQyxlQUFlZCxNQUFNZSxLQUFLO0lBRTlCLEtBQUssTUFBTUMsd0JBQXdCYixXQUFZO1FBQzdDLE1BQU0sRUFBRWMsYUFBYUMsaUJBQWlCLEVBQUVMLE1BQU1NLFNBQVMsRUFBRSxHQUN2REg7UUFFRixNQUFNSSxVQUFVQyxDQUFBQSxHQUFBQSw2QkFBQUEsMkJBQUFBLEVBQ2Q7WUFDQztlQUFPSDtTQUFrQixFQUMxQk4sYUFDQU8sV0FDQW5CLE1BQU1JLFlBQVk7UUFHcEIsa0lBQWtJO1FBQ2xJLDhHQUE4RztRQUM5RyxvSUFBb0k7UUFDcEksbUlBQW1JO1FBQ25JLDZCQUE2QjtRQUM3QixJQUFJZ0IsWUFBWSxNQUFNO1lBQ3BCLE9BQU9wQjtRQUNUO1FBRUEsSUFBSXNCLENBQUFBLEdBQUFBLDZCQUFBQSwyQkFBQUEsRUFBNEJWLGFBQWFRLFVBQVU7WUFDckQsT0FBT1gsQ0FBQUEsR0FBQUEsaUJBQUFBLGlCQUFBQSxFQUNMVCxPQUNBTyxTQUNBUCxNQUFNSSxZQUFZLEVBQ2xCSixNQUFNVSxPQUFPLENBQUNDLFdBQVc7UUFFN0I7UUFFQSxNQUFNWSwyQkFBMkJsQix1QkFDN0JtQixDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCbkIsd0JBQ2xCb0I7UUFFSixJQUFJRiwwQkFBMEI7WUFDNUJoQixRQUFRSCxZQUFZLEdBQUdtQjtRQUN6QjtRQUVBLE1BQU1SLFFBQW1CVyxDQUFBQSxHQUFBQSxXQUFBQSxvQkFBQUE7UUFDekJDLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUFnQnJCLGFBQWFRLGNBQWNDLE9BQU9DO1FBRWxEVCxRQUFRcUIsV0FBVyxHQUFHUjtRQUN0QmIsUUFBUVEsS0FBSyxHQUFHQTtRQUVoQkQsZUFBZUM7UUFDZkgsY0FBY1E7SUFDaEI7SUFFQSxPQUFPUyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjN0IsT0FBT087QUFDOUIiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVkdWNlcnMvc2VydmVyLXBhdGNoLXJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSHJlZkZyb21VcmwgfSBmcm9tICcuLi9jcmVhdGUtaHJlZi1mcm9tLXVybCdcbmltcG9ydCB7IGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZSB9IGZyb20gJy4uL2FwcGx5LXJvdXRlci1zdGF0ZS1wYXRjaC10by10cmVlJ1xuaW1wb3J0IHsgaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IH0gZnJvbSAnLi4vaXMtbmF2aWdhdGluZy10by1uZXctcm9vdC1sYXlvdXQnXG5pbXBvcnQgdHlwZSB7XG4gIFNlcnZlclBhdGNoQWN0aW9uLFxuICBSZWR1Y2VyU3RhdGUsXG4gIFJlYWRvbmx5UmVkdWNlclN0YXRlLFxuICBNdXRhYmxlLFxufSBmcm9tICcuLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB7IGhhbmRsZUV4dGVybmFsVXJsIH0gZnJvbSAnLi9uYXZpZ2F0ZS1yZWR1Y2VyJ1xuaW1wb3J0IHsgYXBwbHlGbGlnaHREYXRhIH0gZnJvbSAnLi4vYXBwbHktZmxpZ2h0LWRhdGEnXG5pbXBvcnQgeyBoYW5kbGVNdXRhYmxlIH0gZnJvbSAnLi4vaGFuZGxlLW11dGFibGUnXG5pbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgY3JlYXRlRW1wdHlDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi9hcHAtcm91dGVyJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2VydmVyUGF0Y2hSZWR1Y2VyKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIGFjdGlvbjogU2VydmVyUGF0Y2hBY3Rpb25cbik6IFJlZHVjZXJTdGF0ZSB7XG4gIGNvbnN0IHtcbiAgICBzZXJ2ZXJSZXNwb25zZTogeyBmbGlnaHREYXRhLCBjYW5vbmljYWxVcmw6IGNhbm9uaWNhbFVybE92ZXJyaWRlIH0sXG4gICAgbmF2aWdhdGVkQXQsXG4gIH0gPSBhY3Rpb25cblxuICBjb25zdCBtdXRhYmxlOiBNdXRhYmxlID0ge31cblxuICBtdXRhYmxlLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlID0gZmFsc2VcblxuICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5hdmlnYXRpbmcgdG8gcGFnZSBpbiBgcGFnZXNgIGZyb20gYGFwcGBcbiAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBoYW5kbGVFeHRlcm5hbFVybChcbiAgICAgIHN0YXRlLFxuICAgICAgbXV0YWJsZSxcbiAgICAgIGZsaWdodERhdGEsXG4gICAgICBzdGF0ZS5wdXNoUmVmLnBlbmRpbmdQdXNoXG4gICAgKVxuICB9XG5cbiAgbGV0IGN1cnJlbnRUcmVlID0gc3RhdGUudHJlZVxuICBsZXQgY3VycmVudENhY2hlID0gc3RhdGUuY2FjaGVcblxuICBmb3IgKGNvbnN0IG5vcm1hbGl6ZWRGbGlnaHREYXRhIG9mIGZsaWdodERhdGEpIHtcbiAgICBjb25zdCB7IHNlZ21lbnRQYXRoOiBmbGlnaHRTZWdtZW50UGF0aCwgdHJlZTogdHJlZVBhdGNoIH0gPVxuICAgICAgbm9ybWFsaXplZEZsaWdodERhdGFcblxuICAgIGNvbnN0IG5ld1RyZWUgPSBhcHBseVJvdXRlclN0YXRlUGF0Y2hUb1RyZWUoXG4gICAgICAvLyBUT0RPLUFQUDogcmVtb3ZlICcnXG4gICAgICBbJycsIC4uLmZsaWdodFNlZ21lbnRQYXRoXSxcbiAgICAgIGN1cnJlbnRUcmVlLFxuICAgICAgdHJlZVBhdGNoLFxuICAgICAgc3RhdGUuY2Fub25pY2FsVXJsXG4gICAgKVxuXG4gICAgLy8gYGFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZWAgcmV0dXJucyBgbnVsbGAgd2hlbiBpdCBkZXRlcm1pbmVkIHRoYXQgdGhlIHNlcnZlciByZXNwb25zZSBpcyBub3QgYXBwbGljYWJsZSB0byB0aGUgY3VycmVudCB0cmVlLlxuICAgIC8vIEluIG90aGVyIHdvcmRzLCB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoIGEgdHJlZSB0aGF0IGRvZXNuJ3QgbWF0Y2ggd2hhdCB0aGUgY2xpZW50IGlzIGN1cnJlbnRseSByZW5kZXJpbmcuXG4gICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHRoZSBzZXJ2ZXIgcGF0Y2ggYWN0aW9uIHRvb2sgbG9uZ2VyIHRvIHJlc29sdmUgdGhhbiBhIHN1YnNlcXVlbnQgbmF2aWdhdGlvbiB3aGljaCB3b3VsZCBoYXZlIGNoYW5nZWQgdGhlIHRyZWUuXG4gICAgLy8gUHJldmlvdXNseSB0aGlzIGNhc2UgdHJpZ2dlcmVkIGFuIE1QQSBuYXZpZ2F0aW9uIGJ1dCBpdCBzaG91bGQgYmUgc2FmZSB0byBzaW1wbHkgZGlzY2FyZCB0aGUgc2VydmVyIHJlc3BvbnNlIHJhdGhlciB0aGFuIGZvcmNpbmdcbiAgICAvLyB0aGUgZW50aXJlIHBhZ2UgdG8gcmVsb2FkLlxuICAgIGlmIChuZXdUcmVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gc3RhdGVcbiAgICB9XG5cbiAgICBpZiAoaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0KGN1cnJlbnRUcmVlLCBuZXdUcmVlKSkge1xuICAgICAgcmV0dXJuIGhhbmRsZUV4dGVybmFsVXJsKFxuICAgICAgICBzdGF0ZSxcbiAgICAgICAgbXV0YWJsZSxcbiAgICAgICAgc3RhdGUuY2Fub25pY2FsVXJsLFxuICAgICAgICBzdGF0ZS5wdXNoUmVmLnBlbmRpbmdQdXNoXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgY2Fub25pY2FsVXJsT3ZlcnJpZGVIcmVmID0gY2Fub25pY2FsVXJsT3ZlcnJpZGVcbiAgICAgID8gY3JlYXRlSHJlZkZyb21VcmwoY2Fub25pY2FsVXJsT3ZlcnJpZGUpXG4gICAgICA6IHVuZGVmaW5lZFxuXG4gICAgaWYgKGNhbm9uaWNhbFVybE92ZXJyaWRlSHJlZikge1xuICAgICAgbXV0YWJsZS5jYW5vbmljYWxVcmwgPSBjYW5vbmljYWxVcmxPdmVycmlkZUhyZWZcbiAgICB9XG5cbiAgICBjb25zdCBjYWNoZTogQ2FjaGVOb2RlID0gY3JlYXRlRW1wdHlDYWNoZU5vZGUoKVxuICAgIGFwcGx5RmxpZ2h0RGF0YShuYXZpZ2F0ZWRBdCwgY3VycmVudENhY2hlLCBjYWNoZSwgbm9ybWFsaXplZEZsaWdodERhdGEpXG5cbiAgICBtdXRhYmxlLnBhdGNoZWRUcmVlID0gbmV3VHJlZVxuICAgIG11dGFibGUuY2FjaGUgPSBjYWNoZVxuXG4gICAgY3VycmVudENhY2hlID0gY2FjaGVcbiAgICBjdXJyZW50VHJlZSA9IG5ld1RyZWVcbiAgfVxuXG4gIHJldHVybiBoYW5kbGVNdXRhYmxlKHN0YXRlLCBtdXRhYmxlKVxufVxuIl0sIm5hbWVzIjpbInNlcnZlclBhdGNoUmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwic2VydmVyUmVzcG9uc2UiLCJmbGlnaHREYXRhIiwiY2Fub25pY2FsVXJsIiwiY2Fub25pY2FsVXJsT3ZlcnJpZGUiLCJuYXZpZ2F0ZWRBdCIsIm11dGFibGUiLCJwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZSIsImhhbmRsZUV4dGVybmFsVXJsIiwicHVzaFJlZiIsInBlbmRpbmdQdXNoIiwiY3VycmVudFRyZWUiLCJ0cmVlIiwiY3VycmVudENhY2hlIiwiY2FjaGUiLCJub3JtYWxpemVkRmxpZ2h0RGF0YSIsInNlZ21lbnRQYXRoIiwiZmxpZ2h0U2VnbWVudFBhdGgiLCJ0cmVlUGF0Y2giLCJuZXdUcmVlIiwiYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlIiwiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0IiwiY2Fub25pY2FsVXJsT3ZlcnJpZGVIcmVmIiwiY3JlYXRlSHJlZkZyb21VcmwiLCJ1bmRlZmluZWQiLCJjcmVhdGVFbXB0eUNhY2hlTm9kZSIsImFwcGx5RmxpZ2h0RGF0YSIsInBhdGNoZWRUcmVlIiwiaGFuZGxlTXV0YWJsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js":
/*!*******************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js ***!
\*******************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n addRefreshMarkerToActiveParallelSegments: function() {\n return addRefreshMarkerToActiveParallelSegments;\n },\n refreshInactiveParallelSegments: function() {\n return refreshInactiveParallelSegments;\n }\n});\nconst _applyflightdata = __webpack_require__(/*! ./apply-flight-data */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/apply-flight-data.js\");\nconst _fetchserverresponse = __webpack_require__(/*! ./fetch-server-response */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/fetch-server-response.js\");\nconst _segment = __webpack_require__(/*! ../../../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nasync function refreshInactiveParallelSegments(options) {\n const fetchedSegments = new Set();\n await refreshInactiveParallelSegmentsImpl({\n ...options,\n rootTree: options.updatedTree,\n fetchedSegments\n });\n}\nasync function refreshInactiveParallelSegmentsImpl(param) {\n let { navigatedAt, state, updatedTree, updatedCache, includeNextUrl, fetchedSegments, rootTree = updatedTree, canonicalUrl } = param;\n const [, parallelRoutes, refetchPath, refetchMarker] = updatedTree;\n const fetchPromises = [];\n if (refetchPath && refetchPath !== canonicalUrl && refetchMarker === 'refresh' && // it's possible for the tree to contain multiple segments that contain data at the same URL\n // we keep track of them so we can dedupe the requests\n !fetchedSegments.has(refetchPath)) {\n fetchedSegments.add(refetchPath) // Mark this URL as fetched\n ;\n // Eagerly kick off the fetch for the refetch path & the parallel routes. This should be fine to do as they each operate\n // independently on their own cache nodes, and `applyFlightData` will copy anything it doesn't care about from the existing cache.\n const fetchPromise = (0, _fetchserverresponse.fetchServerResponse)(new URL(refetchPath, location.origin), {\n // refetch from the root of the updated tree, otherwise it will be scoped to the current segment\n // and might not contain the data we need to patch in interception route data (such as dynamic params from a previous segment)\n flightRouterState: [\n rootTree[0],\n rootTree[1],\n rootTree[2],\n 'refetch'\n ],\n nextUrl: includeNextUrl ? state.nextUrl : null\n }).then((param)=>{\n let { flightData } = param;\n if (typeof flightData !== 'string') {\n for (const flightDataPath of flightData){\n // we only pass the new cache as this function is called after clearing the router cache\n // and filling in the new page data from the server. Meaning the existing cache is actually the cache that's\n // just been created & has been written to, but hasn't been \"committed\" yet.\n (0, _applyflightdata.applyFlightData)(navigatedAt, updatedCache, updatedCache, flightDataPath);\n }\n } else {\n // When flightData is a string, it suggests that the server response should have triggered an MPA navigation\n // I'm not 100% sure of this decision, but it seems unlikely that we'd want to introduce a redirect side effect\n // when refreshing on-screen data, so handling this has been ommitted.\n }\n });\n fetchPromises.push(fetchPromise);\n }\n for(const key in parallelRoutes){\n const parallelFetchPromise = refreshInactiveParallelSegmentsImpl({\n navigatedAt,\n state,\n updatedTree: parallelRoutes[key],\n updatedCache,\n includeNextUrl,\n fetchedSegments,\n rootTree,\n canonicalUrl\n });\n fetchPromises.push(parallelFetchPromise);\n }\n await Promise.all(fetchPromises);\n}\nfunction addRefreshMarkerToActiveParallelSegments(tree, path) {\n const [segment, parallelRoutes, , refetchMarker] = tree;\n // a page segment might also contain concatenated search params, so we do a partial match on the key\n if (segment.includes(_segment.PAGE_SEGMENT_KEY) && refetchMarker !== 'refresh') {\n tree[2] = path;\n tree[3] = 'refresh';\n }\n for(const key in parallelRoutes){\n addRefreshMarkerToActiveParallelSegments(parallelRoutes[key], path);\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=refetch-inactive-parallel-segments.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JlZmV0Y2gtaW5hY3RpdmUtcGFyYWxsZWwtc2VnbWVudHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBeUhnQkEsd0NBQXdDO2VBQXhDQTs7SUE5Rk1DLCtCQUErQjtlQUEvQkE7Ozs2Q0F4QlU7aURBQ0k7cUNBQ0g7QUFzQjFCLGVBQWVBLGdDQUNwQkMsT0FBd0M7SUFFeEMsTUFBTUMsa0JBQWtCLElBQUlDO0lBQzVCLE1BQU1DLG9DQUFvQztRQUN4QyxHQUFHSCxPQUFPO1FBQ1ZJLFVBQVVKLFFBQVFLLFdBQVc7UUFDN0JKO0lBQ0Y7QUFDRjtBQUVBLGVBQWVFLG9DQUFvQyxLQVlsRDtJQVprRCxNQUNqREcsV0FBVyxFQUNYQyxLQUFLLEVBQ0xGLFdBQVcsRUFDWEcsWUFBWSxFQUNaQyxjQUFjLEVBQ2RSLGVBQWUsRUFDZkcsV0FBV0MsV0FBVyxFQUN0QkssWUFBWSxFQUliLEdBWmtEO0lBYWpELE1BQU0sR0FBR0MsZ0JBQWdCQyxhQUFhQyxjQUFjLEdBQUdSO0lBQ3ZELE1BQU1TLGdCQUFnQixFQUFFO0lBRXhCLElBQ0VGLGVBQ0FBLGdCQUFnQkYsZ0JBQ2hCRyxrQkFBa0IsYUFDbEIsNEZBQTRGO0lBQzVGLHNEQUFzRDtJQUN0RCxDQUFDWixnQkFBZ0JjLEdBQUcsQ0FBQ0gsY0FDckI7UUFDQVgsZ0JBQWdCZSxHQUFHLENBQUNKLGFBQWEsMkJBQTJCOztRQUU1RCx3SEFBd0g7UUFDeEgsa0lBQWtJO1FBQ2xJLE1BQU1LLGVBQWVDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFDbkIsSUFBSUMsSUFBSVAsYUFBYVEsU0FBU0MsTUFBTSxHQUNwQztZQUNFLGdHQUFnRztZQUNoRyw4SEFBOEg7WUFDOUhDLG1CQUFtQjtnQkFBQ2xCLFFBQVEsQ0FBQyxFQUFFO2dCQUFFQSxRQUFRLENBQUMsRUFBRTtnQkFBRUEsUUFBUSxDQUFDLEVBQUU7Z0JBQUU7YUFBVTtZQUNyRW1CLFNBQVNkLGlCQUFpQkYsTUFBTWdCLE9BQU8sR0FBRztRQUM1QyxHQUNBQyxJQUFJLENBQUM7Z0JBQUMsRUFBRUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksT0FBT0EsZUFBZSxVQUFVO2dCQUNsQyxLQUFLLE1BQU1DLGtCQUFrQkQsV0FBWTtvQkFDdkMsd0ZBQXdGO29CQUN4Riw0R0FBNEc7b0JBQzVHLDRFQUE0RTtvQkFDNUVFLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUNFckIsYUFDQUUsY0FDQUEsY0FDQWtCO2dCQUVKO1lBQ0YsT0FBTztZQUNMLDRHQUE0RztZQUM1RywrR0FBK0c7WUFDL0csc0VBQXNFO1lBQ3hFO1FBQ0Y7UUFFQVosY0FBY2MsSUFBSSxDQUFDWDtJQUNyQjtJQUVBLElBQUssTUFBTVksT0FBT2xCLGVBQWdCO1FBQ2hDLE1BQU1tQix1QkFBdUIzQixvQ0FBb0M7WUFDL0RHO1lBQ0FDO1lBQ0FGLGFBQWFNLGNBQWMsQ0FBQ2tCLElBQUk7WUFDaENyQjtZQUNBQztZQUNBUjtZQUNBRztZQUNBTTtRQUNGO1FBRUFJLGNBQWNjLElBQUksQ0FBQ0U7SUFDckI7SUFFQSxNQUFNQyxRQUFRQyxHQUFHLENBQUNsQjtBQUNwQjtBQVFPLFNBQVNoQix5Q0FDZG1DLElBQXVCLEVBQ3ZCQyxJQUFZO0lBRVosTUFBTSxDQUFDQyxTQUFTeEIsa0JBQWtCRSxjQUFjLEdBQUdvQjtJQUNuRCxvR0FBb0c7SUFDcEcsSUFBSUUsUUFBUUMsUUFBUSxDQUFDQyxTQUFBQSxnQkFBZ0IsS0FBS3hCLGtCQUFrQixXQUFXO1FBQ3JFb0IsSUFBSSxDQUFDLEVBQUUsR0FBR0M7UUFDVkQsSUFBSSxDQUFDLEVBQUUsR0FBRztJQUNaO0lBRUEsSUFBSyxNQUFNSixPQUFPbEIsZUFBZ0I7UUFDaENiLHlDQUF5Q2EsY0FBYyxDQUFDa0IsSUFBSSxFQUFFSztJQUNoRTtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcmVmZXRjaC1pbmFjdGl2ZS1wYXJhbGxlbC1zZWdtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZsaWdodFJvdXRlclN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IENhY2hlTm9kZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBBcHBSb3V0ZXJTdGF0ZSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgeyBhcHBseUZsaWdodERhdGEgfSBmcm9tICcuL2FwcGx5LWZsaWdodC1kYXRhJ1xuaW1wb3J0IHsgZmV0Y2hTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJy4vZmV0Y2gtc2VydmVyLXJlc3BvbnNlJ1xuaW1wb3J0IHsgUEFHRV9TRUdNRU5UX0tFWSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9saWIvc2VnbWVudCdcblxuaW50ZXJmYWNlIFJlZnJlc2hJbmFjdGl2ZVBhcmFsbGVsU2VnbWVudHMge1xuICBuYXZpZ2F0ZWRBdDogbnVtYmVyXG4gIHN0YXRlOiBBcHBSb3V0ZXJTdGF0ZVxuICB1cGRhdGVkVHJlZTogRmxpZ2h0Um91dGVyU3RhdGVcbiAgdXBkYXRlZENhY2hlOiBDYWNoZU5vZGVcbiAgaW5jbHVkZU5leHRVcmw6IGJvb2xlYW5cbiAgY2Fub25pY2FsVXJsOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBSZWZyZXNoZXMgaW5hY3RpdmUgc2VnbWVudHMgdGhhdCBhcmUgc3RpbGwgaW4gdGhlIGN1cnJlbnQgRmxpZ2h0Um91dGVyU3RhdGUuXG4gKiBBIHNlZ21lbnQgaXMgY29uc2lkZXJlZCBcImluYWN0aXZlXCIgd2hlbiB0aGUgc2VydmVyIHJlc3BvbnNlIGluZGljYXRlcyBpdCBkaWRuJ3QgbWF0Y2ggdG8gYSBwYWdlIGNvbXBvbmVudC5cbiAqIFRoaXMgaGFwcGVucyBkdXJpbmcgYSBzb2Z0LW5hdmlnYXRpb24sIHdoZXJlIHRoZSBzZXJ2ZXIgd2lsbCB3YW50IHRvIHBhdGNoIGluIHRoZSBzZWdtZW50XG4gKiB3aXRoIHRoZSBcImRlZmF1bHRcIiBjb21wb25lbnQsIGJ1dCB3ZSBleHBsaWNpdGx5IGlnbm9yZSB0aGUgc2VydmVyIGluIHRoaXMgY2FzZVxuICogYW5kIGtlZXAgdGhlIGV4aXN0aW5nIHN0YXRlIGZvciB0aGF0IHNlZ21lbnQuIE5ldyBkYXRhIGZvciBpbmFjdGl2ZSBzZWdtZW50cyBhcmUgaW5oZXJlbnRseVxuICogbm90IHBhcnQgb2YgdGhlIHNlcnZlciByZXNwb25zZSB3aGVuIHdlIHBhdGNoIHRoZSB0cmVlLCBiZWNhdXNlIHRoZXkgd2VyZSBhc3NvY2lhdGVkIHdpdGggYSByZXNwb25zZVxuICogZnJvbSBhbiBlYXJsaWVyIG5hdmlnYXRpb24vcmVxdWVzdC4gRm9yIGVhY2ggc2VnbWVudCwgb25jZSBpdCBiZWNvbWVzIFwiYWN0aXZlXCIsIHdlIGVuY29kZSB0aGUgVVJMIHRoYXQgcHJvdmlkZWRcbiAqIHRoZSBkYXRhIGZvciBpdC4gVGhpcyBmdW5jdGlvbiB0cmF2ZXJzZXMgcGFyYWxsZWwgcm91dGVzIGxvb2tpbmcgZm9yIHRoZXNlIG1hcmtlcnMgc28gdGhhdCBpdCBjYW4gcmUtZmV0Y2hcbiAqIGFuZCBwYXRjaCB0aGUgbmV3IGRhdGEgaW50byB0aGUgdHJlZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlZnJlc2hJbmFjdGl2ZVBhcmFsbGVsU2VnbWVudHMoXG4gIG9wdGlvbnM6IFJlZnJlc2hJbmFjdGl2ZVBhcmFsbGVsU2VnbWVudHNcbikge1xuICBjb25zdCBmZXRjaGVkU2VnbWVudHMgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBhd2FpdCByZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzSW1wbCh7XG4gICAgLi4ub3B0aW9ucyxcbiAgICByb290VHJlZTogb3B0aW9ucy51cGRhdGVkVHJlZSxcbiAgICBmZXRjaGVkU2VnbWVudHMsXG4gIH0pXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZnJlc2hJbmFjdGl2ZVBhcmFsbGVsU2VnbWVudHNJbXBsKHtcbiAgbmF2aWdhdGVkQXQsXG4gIHN0YXRlLFxuICB1cGRhdGVkVHJlZSxcbiAgdXBkYXRlZENhY2hlLFxuICBpbmNsdWRlTmV4dFVybCxcbiAgZmV0Y2hlZFNlZ21lbnRzLFxuICByb290VHJlZSA9IHVwZGF0ZWRUcmVlLFxuICBjYW5vbmljYWxVcmwsXG59OiBSZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzICYge1xuICBmZXRjaGVkU2VnbWVudHM6IFNldDxzdHJpbmc+XG4gIHJvb3RUcmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxufSkge1xuICBjb25zdCBbLCBwYXJhbGxlbFJvdXRlcywgcmVmZXRjaFBhdGgsIHJlZmV0Y2hNYXJrZXJdID0gdXBkYXRlZFRyZWVcbiAgY29uc3QgZmV0Y2hQcm9taXNlcyA9IFtdXG5cbiAgaWYgKFxuICAgIHJlZmV0Y2hQYXRoICYmXG4gICAgcmVmZXRjaFBhdGggIT09IGNhbm9uaWNhbFVybCAmJlxuICAgIHJlZmV0Y2hNYXJrZXIgPT09ICdyZWZyZXNoJyAmJlxuICAgIC8vIGl0J3MgcG9zc2libGUgZm9yIHRoZSB0cmVlIHRvIGNvbnRhaW4gbXVsdGlwbGUgc2VnbWVudHMgdGhhdCBjb250YWluIGRhdGEgYXQgdGhlIHNhbWUgVVJMXG4gICAgLy8gd2Uga2VlcCB0cmFjayBvZiB0aGVtIHNvIHdlIGNhbiBkZWR1cGUgdGhlIHJlcXVlc3RzXG4gICAgIWZldGNoZWRTZWdtZW50cy5oYXMocmVmZXRjaFBhdGgpXG4gICkge1xuICAgIGZldGNoZWRTZWdtZW50cy5hZGQocmVmZXRjaFBhdGgpIC8vIE1hcmsgdGhpcyBVUkwgYXMgZmV0Y2hlZFxuXG4gICAgLy8gRWFnZXJseSBraWNrIG9mZiB0aGUgZmV0Y2ggZm9yIHRoZSByZWZldGNoIHBhdGggJiB0aGUgcGFyYWxsZWwgcm91dGVzLiBUaGlzIHNob3VsZCBiZSBmaW5lIHRvIGRvIGFzIHRoZXkgZWFjaCBvcGVyYXRlXG4gICAgLy8gaW5kZXBlbmRlbnRseSBvbiB0aGVpciBvd24gY2FjaGUgbm9kZXMsIGFuZCBgYXBwbHlGbGlnaHREYXRhYCB3aWxsIGNvcHkgYW55dGhpbmcgaXQgZG9lc24ndCBjYXJlIGFib3V0IGZyb20gdGhlIGV4aXN0aW5nIGNhY2hlLlxuICAgIGNvbnN0IGZldGNoUHJvbWlzZSA9IGZldGNoU2VydmVyUmVzcG9uc2UoXG4gICAgICBuZXcgVVJMKHJlZmV0Y2hQYXRoLCBsb2NhdGlvbi5vcmlnaW4pLFxuICAgICAge1xuICAgICAgICAvLyByZWZldGNoIGZyb20gdGhlIHJvb3Qgb2YgdGhlIHVwZGF0ZWQgdHJlZSwgb3RoZXJ3aXNlIGl0IHdpbGwgYmUgc2NvcGVkIHRvIHRoZSBjdXJyZW50IHNlZ21lbnRcbiAgICAgICAgLy8gYW5kIG1pZ2h0IG5vdCBjb250YWluIHRoZSBkYXRhIHdlIG5lZWQgdG8gcGF0Y2ggaW4gaW50ZXJjZXB0aW9uIHJvdXRlIGRhdGEgKHN1Y2ggYXMgZHluYW1pYyBwYXJhbXMgZnJvbSBhIHByZXZpb3VzIHNlZ21lbnQpXG4gICAgICAgIGZsaWdodFJvdXRlclN0YXRlOiBbcm9vdFRyZWVbMF0sIHJvb3RUcmVlWzFdLCByb290VHJlZVsyXSwgJ3JlZmV0Y2gnXSxcbiAgICAgICAgbmV4dFVybDogaW5jbHVkZU5leHRVcmwgPyBzdGF0ZS5uZXh0VXJsIDogbnVsbCxcbiAgICAgIH1cbiAgICApLnRoZW4oKHsgZmxpZ2h0RGF0YSB9KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGZsaWdodERhdGEgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGZvciAoY29uc3QgZmxpZ2h0RGF0YVBhdGggb2YgZmxpZ2h0RGF0YSkge1xuICAgICAgICAgIC8vIHdlIG9ubHkgcGFzcyB0aGUgbmV3IGNhY2hlIGFzIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFmdGVyIGNsZWFyaW5nIHRoZSByb3V0ZXIgY2FjaGVcbiAgICAgICAgICAvLyBhbmQgZmlsbGluZyBpbiB0aGUgbmV3IHBhZ2UgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuIE1lYW5pbmcgdGhlIGV4aXN0aW5nIGNhY2hlIGlzIGFjdHVhbGx5IHRoZSBjYWNoZSB0aGF0J3NcbiAgICAgICAgICAvLyBqdXN0IGJlZW4gY3JlYXRlZCAmIGhhcyBiZWVuIHdyaXR0ZW4gdG8sIGJ1dCBoYXNuJ3QgYmVlbiBcImNvbW1pdHRlZFwiIHlldC5cbiAgICAgICAgICBhcHBseUZsaWdodERhdGEoXG4gICAgICAgICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgICAgICAgIHVwZGF0ZWRDYWNoZSxcbiAgICAgICAgICAgIHVwZGF0ZWRDYWNoZSxcbiAgICAgICAgICAgIGZsaWdodERhdGFQYXRoXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXaGVuIGZsaWdodERhdGEgaXMgYSBzdHJpbmcsIGl0IHN1Z2dlc3RzIHRoYXQgdGhlIHNlcnZlciByZXNwb25zZSBzaG91bGQgaGF2ZSB0cmlnZ2VyZWQgYW4gTVBBIG5hdmlnYXRpb25cbiAgICAgICAgLy8gSSdtIG5vdCAxMDAlIHN1cmUgb2YgdGhpcyBkZWNpc2lvbiwgYnV0IGl0IHNlZW1zIHVubGlrZWx5IHRoYXQgd2UnZCB3YW50IHRvIGludHJvZHVjZSBhIHJlZGlyZWN0IHNpZGUgZWZmZWN0XG4gICAgICAgIC8vIHdoZW4gcmVmcmVzaGluZyBvbi1zY3JlZW4gZGF0YSwgc28gaGFuZGxpbmcgdGhpcyBoYXMgYmVlbiBvbW1pdHRlZC5cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgZmV0Y2hQcm9taXNlcy5wdXNoKGZldGNoUHJvbWlzZSlcbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IGluIHBhcmFsbGVsUm91dGVzKSB7XG4gICAgY29uc3QgcGFyYWxsZWxGZXRjaFByb21pc2UgPSByZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzSW1wbCh7XG4gICAgICBuYXZpZ2F0ZWRBdCxcbiAgICAgIHN0YXRlLFxuICAgICAgdXBkYXRlZFRyZWU6IHBhcmFsbGVsUm91dGVzW2tleV0sXG4gICAgICB1cGRhdGVkQ2FjaGUsXG4gICAgICBpbmNsdWRlTmV4dFVybCxcbiAgICAgIGZldGNoZWRTZWdtZW50cyxcbiAgICAgIHJvb3RUcmVlLFxuICAgICAgY2Fub25pY2FsVXJsLFxuICAgIH0pXG5cbiAgICBmZXRjaFByb21pc2VzLnB1c2gocGFyYWxsZWxGZXRjaFByb21pc2UpXG4gIH1cblxuICBhd2FpdCBQcm9taXNlLmFsbChmZXRjaFByb21pc2VzKVxufVxuXG4vKipcbiAqIFdhbGtzIHRoZSBjdXJyZW50IHBhcmFsbGVsIHNlZ21lbnRzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBcImFjdGl2ZVwiLlxuICogQW4gYWN0aXZlIHBhcmFsbGVsIHJvdXRlIHdpbGwgaGF2ZSBhIGBfX1BBR0VfX2Agc2VnbWVudCBpbiB0aGUgRmxpZ2h0Um91dGVyU3RhdGUuXG4gKiBBcyBvcHBvc2VkIHRvIGEgYF9fREVGQVVMVF9fYCBzZWdtZW50LCB3aGljaCBtZWFucyB0aGVyZSB3YXMgbm8gbWF0Y2ggZm9yIHRoYXQgcGFyYWxsZWwgcm91dGUuXG4gKiBXZSBhZGQgYSBzcGVjaWFsIG1hcmtlciBoZXJlIHNvIHRoYXQgd2Uga25vdyBob3cgdG8gcmVmcmVzaCBpdHMgZGF0YSB3aGVuIHRoZSByb3V0ZXIgaXMgcmV2YWxpZGF0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRSZWZyZXNoTWFya2VyVG9BY3RpdmVQYXJhbGxlbFNlZ21lbnRzKFxuICB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgcGF0aDogc3RyaW5nXG4pIHtcbiAgY29uc3QgW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVzLCAsIHJlZmV0Y2hNYXJrZXJdID0gdHJlZVxuICAvLyBhIHBhZ2Ugc2VnbWVudCBtaWdodCBhbHNvIGNvbnRhaW4gY29uY2F0ZW5hdGVkIHNlYXJjaCBwYXJhbXMsIHNvIHdlIGRvIGEgcGFydGlhbCBtYXRjaCBvbiB0aGUga2V5XG4gIGlmIChzZWdtZW50LmluY2x1ZGVzKFBBR0VfU0VHTUVOVF9LRVkpICYmIHJlZmV0Y2hNYXJrZXIgIT09ICdyZWZyZXNoJykge1xuICAgIHRyZWVbMl0gPSBwYXRoXG4gICAgdHJlZVszXSA9ICdyZWZyZXNoJ1xuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gcGFyYWxsZWxSb3V0ZXMpIHtcbiAgICBhZGRSZWZyZXNoTWFya2VyVG9BY3RpdmVQYXJhbGxlbFNlZ21lbnRzKHBhcmFsbGVsUm91dGVzW2tleV0sIHBhdGgpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJhZGRSZWZyZXNoTWFya2VyVG9BY3RpdmVQYXJhbGxlbFNlZ21lbnRzIiwicmVmcmVzaEluYWN0aXZlUGFyYWxsZWxTZWdtZW50cyIsIm9wdGlvbnMiLCJmZXRjaGVkU2VnbWVudHMiLCJTZXQiLCJyZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzSW1wbCIsInJvb3RUcmVlIiwidXBkYXRlZFRyZWUiLCJuYXZpZ2F0ZWRBdCIsInN0YXRlIiwidXBkYXRlZENhY2hlIiwiaW5jbHVkZU5leHRVcmwiLCJjYW5vbmljYWxVcmwiLCJwYXJhbGxlbFJvdXRlcyIsInJlZmV0Y2hQYXRoIiwicmVmZXRjaE1hcmtlciIsImZldGNoUHJvbWlzZXMiLCJoYXMiLCJhZGQiLCJmZXRjaFByb21pc2UiLCJmZXRjaFNlcnZlclJlc3BvbnNlIiwiVVJMIiwibG9jYXRpb24iLCJvcmlnaW4iLCJmbGlnaHRSb3V0ZXJTdGF0ZSIsIm5leHRVcmwiLCJ0aGVuIiwiZmxpZ2h0RGF0YSIsImZsaWdodERhdGFQYXRoIiwiYXBwbHlGbGlnaHREYXRhIiwicHVzaCIsImtleSIsInBhcmFsbGVsRmV0Y2hQcm9taXNlIiwiUHJvbWlzZSIsImFsbCIsInRyZWUiLCJwYXRoIiwic2VnbWVudCIsImluY2x1ZGVzIiwiUEFHRV9TRUdNRU5UX0tFWSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js ***!
\*****************************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_HMR_REFRESH: function() {\n return ACTION_HMR_REFRESH;\n },\n ACTION_NAVIGATE: function() {\n return ACTION_NAVIGATE;\n },\n ACTION_PREFETCH: function() {\n return ACTION_PREFETCH;\n },\n ACTION_REFRESH: function() {\n return ACTION_REFRESH;\n },\n ACTION_RESTORE: function() {\n return ACTION_RESTORE;\n },\n ACTION_SERVER_ACTION: function() {\n return ACTION_SERVER_ACTION;\n },\n ACTION_SERVER_PATCH: function() {\n return ACTION_SERVER_PATCH;\n },\n PrefetchCacheEntryStatus: function() {\n return PrefetchCacheEntryStatus;\n },\n PrefetchKind: function() {\n return PrefetchKind;\n }\n});\nconst ACTION_REFRESH = 'refresh';\nconst ACTION_NAVIGATE = 'navigate';\nconst ACTION_RESTORE = 'restore';\nconst ACTION_SERVER_PATCH = 'server-patch';\nconst ACTION_PREFETCH = 'prefetch';\nconst ACTION_HMR_REFRESH = 'hmr-refresh';\nconst ACTION_SERVER_ACTION = 'server-action';\nvar PrefetchKind = /*#__PURE__*/ function(PrefetchKind) {\n PrefetchKind[\"AUTO\"] = \"auto\";\n PrefetchKind[\"FULL\"] = \"full\";\n PrefetchKind[\"TEMPORARY\"] = \"temporary\";\n return PrefetchKind;\n}({});\nvar PrefetchCacheEntryStatus = /*#__PURE__*/ function(PrefetchCacheEntryStatus) {\n PrefetchCacheEntryStatus[\"fresh\"] = \"fresh\";\n PrefetchCacheEntryStatus[\"reusable\"] = \"reusable\";\n PrefetchCacheEntryStatus[\"expired\"] = \"expired\";\n PrefetchCacheEntryStatus[\"stale\"] = \"stale\";\n return PrefetchCacheEntryStatus;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=router-reducer-types.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVlhQSxrQkFBa0I7ZUFBbEJBOztJQUpBQyxlQUFlO2VBQWZBOztJQUdBQyxlQUFlO2VBQWZBOztJQUpBQyxjQUFjO2VBQWRBOztJQUVBQyxjQUFjO2VBQWRBOztJQUlBQyxvQkFBb0I7ZUFBcEJBOztJQUhBQyxtQkFBbUI7ZUFBbkJBOztJQXlNREMsd0JBQXdCO2VBQXhCQTs7SUFoRUFDLFlBQVk7ZUFBWkE7OztBQTVJTCxNQUFNTCxpQkFBaUI7QUFDdkIsTUFBTUYsa0JBQWtCO0FBQ3hCLE1BQU1HLGlCQUFpQjtBQUN2QixNQUFNRSxzQkFBc0I7QUFDNUIsTUFBTUosa0JBQWtCO0FBQ3hCLE1BQU1GLHFCQUFxQjtBQUMzQixNQUFNSyx1QkFBdUI7QUFzSTdCLElBQUtHLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7O1dBQUFBOztBQWdFTCxJQUFLRCwyQkFBQUEsV0FBQUEsR0FBQUEsU0FBQUEsd0JBQUFBOzs7OztXQUFBQSIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2FjaGVOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7XG4gIEZsaWdodFJvdXRlclN0YXRlLFxuICBGbGlnaHRTZWdtZW50UGF0aCxcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2FwcC1yZW5kZXIvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuL2ZldGNoLXNlcnZlci1yZXNwb25zZSdcblxuZXhwb3J0IGNvbnN0IEFDVElPTl9SRUZSRVNIID0gJ3JlZnJlc2gnXG5leHBvcnQgY29uc3QgQUNUSU9OX05BVklHQVRFID0gJ25hdmlnYXRlJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9SRVNUT1JFID0gJ3Jlc3RvcmUnXG5leHBvcnQgY29uc3QgQUNUSU9OX1NFUlZFUl9QQVRDSCA9ICdzZXJ2ZXItcGF0Y2gnXG5leHBvcnQgY29uc3QgQUNUSU9OX1BSRUZFVENIID0gJ3ByZWZldGNoJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9ITVJfUkVGUkVTSCA9ICdobXItcmVmcmVzaCdcbmV4cG9ydCBjb25zdCBBQ1RJT05fU0VSVkVSX0FDVElPTiA9ICdzZXJ2ZXItYWN0aW9uJ1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJDaGFuZ2VCeVNlcnZlclJlc3BvbnNlID0gKHtcbiAgbmF2aWdhdGVkQXQsXG4gIHByZXZpb3VzVHJlZSxcbiAgc2VydmVyUmVzcG9uc2UsXG59OiB7XG4gIG5hdmlnYXRlZEF0OiBudW1iZXJcbiAgcHJldmlvdXNUcmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICBzZXJ2ZXJSZXNwb25zZTogRmV0Y2hTZXJ2ZXJSZXNwb25zZVJlc3VsdFxufSkgPT4gdm9pZFxuXG5leHBvcnQgaW50ZXJmYWNlIE11dGFibGUge1xuICBtcGFOYXZpZ2F0aW9uPzogYm9vbGVhblxuICBwYXRjaGVkVHJlZT86IEZsaWdodFJvdXRlclN0YXRlXG4gIGNhbm9uaWNhbFVybD86IHN0cmluZ1xuICBzY3JvbGxhYmxlU2VnbWVudHM/OiBGbGlnaHRTZWdtZW50UGF0aFtdXG4gIHBlbmRpbmdQdXNoPzogYm9vbGVhblxuICBjYWNoZT86IENhY2hlTm9kZVxuICBwcmVmZXRjaENhY2hlPzogQXBwUm91dGVyU3RhdGVbJ3ByZWZldGNoQ2FjaGUnXVxuICBoYXNoRnJhZ21lbnQ/OiBzdHJpbmdcbiAgc2hvdWxkU2Nyb2xsPzogYm9vbGVhblxuICBwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZT86IGJvb2xlYW5cbiAgb25seUhhc2hDaGFuZ2U/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVyQWN0aW9uTXV0YWJsZSBleHRlbmRzIE11dGFibGUge1xuICBpbkZsaWdodFNlcnZlckFjdGlvbj86IFByb21pc2U8YW55PiB8IG51bGxcbn1cblxuLyoqXG4gKiBSZWZyZXNoIHRyaWdnZXJzIGEgcmVmcmVzaCBvZiB0aGUgZnVsbCBwYWdlIGRhdGEuXG4gKiAtIGZldGNoZXMgdGhlIEZsaWdodCBkYXRhIGFuZCBmaWxscyByc2MgYXQgdGhlIHJvb3Qgb2YgdGhlIGNhY2hlLlxuICogLSBUaGUgcm91dGVyIHN0YXRlIGlzIHVwZGF0ZWQgYXQgdGhlIHJvb3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaEFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fUkVGUkVTSFxuICBvcmlnaW46IExvY2F0aW9uWydvcmlnaW4nXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhtclJlZnJlc2hBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX0hNUl9SRUZSRVNIXG4gIG9yaWdpbjogTG9jYXRpb25bJ29yaWdpbiddXG59XG5cbmV4cG9ydCB0eXBlIFNlcnZlckFjdGlvbkRpc3BhdGNoZXIgPSAoXG4gIGFyZ3M6IE9taXQ8XG4gICAgU2VydmVyQWN0aW9uQWN0aW9uLFxuICAgICd0eXBlJyB8ICdtdXRhYmxlJyB8ICduYXZpZ2F0ZScgfCAnY2hhbmdlQnlTZXJ2ZXJSZXNwb25zZScgfCAnY2FjaGUnXG4gID5cbikgPT4gdm9pZFxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckFjdGlvbkFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fU0VSVkVSX0FDVElPTlxuICBhY3Rpb25JZDogc3RyaW5nXG4gIGFjdGlvbkFyZ3M6IGFueVtdXG4gIHJlc29sdmU6ICh2YWx1ZTogYW55KSA9PiB2b2lkXG4gIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZFxufVxuXG4vKipcbiAqIE5hdmlnYXRlIHRyaWdnZXJzIGEgbmF2aWdhdGlvbiB0byB0aGUgcHJvdmlkZWQgdXJsLiBJdCBzdXBwb3J0cyB0d28gdHlwZXM6IGBwdXNoYCBhbmQgYHJlcGxhY2VgLlxuICpcbiAqIGBuYXZpZ2F0ZVR5cGVgOlxuICogLSBgcHVzaGAgLSBwdXNoZXMgYSBuZXcgaGlzdG9yeSBlbnRyeSBpbiB0aGUgYnJvd3NlciBoaXN0b3J5XG4gKiAtIGByZXBsYWNlYCAtIHJlcGxhY2VzIHRoZSBjdXJyZW50IGhpc3RvcnkgZW50cnkgaW4gdGhlIGJyb3dzZXIgaGlzdG9yeVxuICpcbiAqIE5hdmlnYXRlIGhhcyBtdWx0aXBsZSBjYWNoZSBoZXVyaXN0aWNzOlxuICogLSBwYWdlIHdhcyBwcmVmZXRjaGVkXG4gKiAgLSBBcHBseSByb3V0ZXIgc3RhdGUgdHJlZSBmcm9tIHByZWZldGNoXG4gKiAgLSBBcHBseSBGbGlnaHQgZGF0YSBmcm9tIHByZWZldGNoIHRvIHRoZSBjYWNoZVxuICogIC0gSWYgRmxpZ2h0IGRhdGEgaXMgYSBzdHJpbmcsIGl0J3MgYSByZWRpcmVjdCBhbmQgdGhlIHN0YXRlIGlzIHVwZGF0ZWQgdG8gdHJpZ2dlciBhIHJlZGlyZWN0XG4gKiAgLSBDaGVjayBpZiBoYXJkIG5hdmlnYXRpb24gaXMgbmVlZGVkXG4gKiAgICAtIEhhcmQgbmF2aWdhdGlvbiBoYXBwZW5zIHdoZW4gYSBkeW5hbWljIHBhcmFtZXRlciBiZWxvdyB0aGUgY29tbW9uIGxheW91dCBjaGFuZ2VkXG4gKiAgICAtIFdoZW4gaGFyZCBuYXZpZ2F0aW9uIGlzIG5lZWRlZCB0aGUgY2FjaGUgaXMgaW52YWxpZGF0ZWQgYmVsb3cgdGhlIGZsaWdodFNlZ21lbnRQYXRoXG4gKiAgICAtIFRoZSBtaXNzaW5nIGNhY2hlIG5vZGVzIG9mIHRoZSBwYWdlIHdpbGwgYmUgZmV0Y2hlZCBpbiBsYXlvdXQtcm91dGVyIGFuZCB0cmlnZ2VyIHRoZSBTRVJWRVJfUEFUQ0ggYWN0aW9uXG4gKiAgLSBJZiBoYXJkIG5hdmlnYXRpb24gaXMgbm90IG5lZWRlZFxuICogICAgLSBUaGUgY2FjaGUgaXMgcmV1c2VkXG4gKiAgICAtIElmIGFueSBjYWNoZSBub2RlcyBhcmUgbWlzc2luZyB0aGV5J2xsIGJlIGZldGNoZWQgaW4gbGF5b3V0LXJvdXRlciBhbmQgdHJpZ2dlciB0aGUgU0VSVkVSX1BBVENIIGFjdGlvblxuICogLSBwYWdlIHdhcyBub3QgcHJlZmV0Y2hlZFxuICogIC0gVGhlIG5hdmlnYXRlIHdhcyBjYWxsZWQgZnJvbSBgbmV4dC9yb3V0ZXJgIChgcm91dGVyLnB1c2goKWAgLyBgcm91dGVyLnJlcGxhY2UoKWApIC8gYG5leHQvbGlua2Agd2l0aG91dCBwcmVmZXRjaGVkIGRhdGEgYXZhaWxhYmxlIChlLmcuIHRoZSBwcmVmZXRjaCBkaWRuJ3QgY29tZSBiYWNrIGZyb20gdGhlIHNlcnZlciBiZWZvcmUgY2xpY2tpbmcgdGhlIGxpbmspXG4gKiAgICAtIEZsaWdodCBkYXRhIGlzIGZldGNoZWQgaW4gdGhlIHJlZHVjZXIgKHN1c3BlbmRzIHRoZSByZWR1Y2VyKVxuICogICAgLSBSb3V0ZXIgc3RhdGUgdHJlZSBpcyBjcmVhdGVkIGJhc2VkIG9uIEZsaWdodCBkYXRhXG4gKiAgICAtIENhY2hlIGlzIGZpbGxlZCBiYXNlZCBvbiB0aGUgRmxpZ2h0IGRhdGFcbiAqXG4gKiBBYm92ZSBzdGVwcyBleHBsYWluIDMgY2FzZXM6XG4gKiAtIGBzb2Z0YCAtIFJldXNlcyB0aGUgZXhpc3RpbmcgY2FjaGUgYW5kIGZldGNoZXMgbWlzc2luZyBub2RlcyBpbiBsYXlvdXQtcm91dGVyLlxuICogLSBgaGFyZGAgLSBDcmVhdGVzIGEgbmV3IGNhY2hlIHdoZXJlIGNhY2hlIG5vZGVzIGFyZSByZW1vdmVkIGJlbG93IHRoZSBjb21tb24gbGF5b3V0IGFuZCBmZXRjaGVzIG1pc3Npbmcgbm9kZXMgaW4gbGF5b3V0LXJvdXRlci5cbiAqIC0gYG9wdGltaXN0aWNgIChleHBsaWNpdCBubyBwcmVmZXRjaCkgLSBDcmVhdGVzIGEgbmV3IGNhY2hlIGFuZCBraWNrcyBvZmYgdGhlIGRhdGEgZmV0Y2ggaW4gdGhlIHJlZHVjZXIuIFRoZSBkYXRhIGZldGNoIGlzIGF3YWl0ZWQgaW4gdGhlIGxheW91dC1yb3V0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGVBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX05BVklHQVRFXG4gIHVybDogVVJMXG4gIGlzRXh0ZXJuYWxVcmw6IGJvb2xlYW5cbiAgbG9jYXRpb25TZWFyY2g6IExvY2F0aW9uWydzZWFyY2gnXVxuICBuYXZpZ2F0ZVR5cGU6ICdwdXNoJyB8ICdyZXBsYWNlJ1xuICBzaG91bGRTY3JvbGw6IGJvb2xlYW5cbiAgYWxsb3dBbGlhc2luZzogYm9vbGVhblxufVxuXG4vKipcbiAqIFJlc3RvcmUgYXBwbGllcyB0aGUgcHJvdmlkZWQgcm91dGVyIHN0YXRlLlxuICogLSBVc2VkIGZvciBgcG9wc3RhdGVgIChiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbikgd2hlcmUgYSBrbm93biByb3V0ZXIgc3RhdGUgaGFzIHRvIGJlIGFwcGxpZWQuXG4gKiAtIEFsc28gdXNlZCB3aGVuIHN5bmNpbmcgdGhlIHJvdXRlciBzdGF0ZSB3aXRoIGBwdXNoU3RhdGVgL2ByZXBsYWNlU3RhdGVgIGNhbGxzLlxuICogLSBSb3V0ZXIgc3RhdGUgaXMgYXBwbGllZCBhcy1pcyBmcm9tIHRoZSBoaXN0b3J5IHN0YXRlLCBpZiBhdmFpbGFibGUuXG4gKiAtIElmIHRoZSBoaXN0b3J5IHN0YXRlIGRvZXMgbm90IGNvbnRhaW4gdGhlIHJvdXRlciBzdGF0ZSwgdGhlIGV4aXN0aW5nIHJvdXRlciBzdGF0ZSBpcyB1c2VkLlxuICogLSBJZiBhbnkgY2FjaGUgbm9kZSBpcyBtaXNzaW5nIGl0IHdpbGwgYmUgZmV0Y2hlZCBpbiBsYXlvdXQtcm91dGVyIGR1cmluZyByZW5kZXJpbmcgYW5kIHRoZSBzZXJ2ZXItcGF0Y2ggY2FzZS5cbiAqIC0gSWYgZXhpc3RpbmcgY2FjaGUgbm9kZXMgbWF0Y2ggdGhlc2UgYXJlIHVzZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdG9yZUFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fUkVTVE9SRVxuICB1cmw6IFVSTFxuICB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZSB8IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIFNlcnZlci1wYXRjaCBhcHBsaWVzIHRoZSBwcm92aWRlZCBGbGlnaHQgZGF0YSB0byB0aGUgY2FjaGUgYW5kIHJvdXRlciB0cmVlLlxuICogLSBPbmx5IHRyaWdnZXJlZCBpbiBsYXlvdXQtcm91dGVyLlxuICogLSBDcmVhdGVzIGEgbmV3IGNhY2hlIGFuZCByb3V0ZXIgc3RhdGUgd2l0aCB0aGUgRmxpZ2h0IGRhdGEgYXBwbGllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJQYXRjaEFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fU0VSVkVSX1BBVENIXG4gIG5hdmlnYXRlZEF0OiBudW1iZXJcbiAgc2VydmVyUmVzcG9uc2U6IEZldGNoU2VydmVyUmVzcG9uc2VSZXN1bHRcbiAgcHJldmlvdXNUcmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxufVxuXG4vKipcbiAqIFByZWZldGNoS2luZCBkZWZpbmVzIHRoZSB0eXBlIG9mIHByZWZldGNoaW5nIHRoYXQgc2hvdWxkIGJlIGRvbmUuXG4gKiAtIGBhdXRvYCAtIGlmIHRoZSBwYWdlIGlzIGR5bmFtaWMsIHByZWZldGNoIHRoZSBwYWdlIGRhdGEgcGFydGlhbGx5LCBpZiBzdGF0aWMgcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBmdWxseS5cbiAqIC0gYGZ1bGxgIC0gcHJlZmV0Y2ggdGhlIHBhZ2UgZGF0YSBmdWxseS5cbiAqIC0gYHRlbXBvcmFyeWAgLSBhIHRlbXBvcmFyeSBwcmVmZXRjaCBlbnRyeSBpcyBhZGRlZCB0byB0aGUgY2FjaGUsIHRoaXMgaXMgdXNlZCB3aGVuIHByZWZldGNoPXtmYWxzZX0gaXMgdXNlZCBpbiBuZXh0L2xpbmsgb3Igd2hlbiB5b3UgcHVzaCBhIHJvdXRlIHByb2dyYW1tYXRpY2FsbHkuXG4gKi9cblxuZXhwb3J0IGVudW0gUHJlZmV0Y2hLaW5kIHtcbiAgQVVUTyA9ICdhdXRvJyxcbiAgRlVMTCA9ICdmdWxsJyxcbiAgVEVNUE9SQVJZID0gJ3RlbXBvcmFyeScsXG59XG5cbi8qKlxuICogUHJlZmV0Y2ggYWRkcyB0aGUgcHJvdmlkZWQgRmxpZ2h0RGF0YSB0byB0aGUgcHJlZmV0Y2ggY2FjaGVcbiAqIC0gQ3JlYXRlcyB0aGUgcm91dGVyIHN0YXRlIHRyZWUgYmFzZWQgb24gdGhlIHBhdGNoIGluIEZsaWdodERhdGFcbiAqIC0gQWRkcyB0aGUgRmxpZ2h0RGF0YSB0byB0aGUgcHJlZmV0Y2ggY2FjaGVcbiAqIC0gSW4gQUNUSU9OX05BVklHQVRFIHRoZSBwcmVmZXRjaCBjYWNoZSBpcyBjaGVja2VkIGFuZCB0aGUgcm91dGVyIHN0YXRlIHRyZWUgYW5kIEZsaWdodERhdGEgYXJlIGFwcGxpZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZmV0Y2hBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX1BSRUZFVENIXG4gIHVybDogVVJMXG4gIGtpbmQ6IFByZWZldGNoS2luZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1c2hSZWYge1xuICAvKipcbiAgICogSWYgdGhlIGFwcC1yb3V0ZXIgc2hvdWxkIHB1c2ggYSBuZXcgaGlzdG9yeSBlbnRyeSBpbiBhcHAtcm91dGVyJ3MgdXNlRWZmZWN0KClcbiAgICovXG4gIHBlbmRpbmdQdXNoOiBib29sZWFuXG4gIC8qKlxuICAgKiBNdWx0aS1wYWdlIG5hdmlnYXRpb24gdGhyb3VnaCBsb2NhdGlvbi5ocmVmLlxuICAgKi9cbiAgbXBhTmF2aWdhdGlvbjogYm9vbGVhblxuICAvKipcbiAgICogU2tpcCBhcHBseWluZyB0aGUgcm91dGVyIHN0YXRlIHRvIHRoZSBicm93c2VyIGhpc3Rvcnkgc3RhdGUuXG4gICAqL1xuICBwcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZTogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBGb2N1c0FuZFNjcm9sbFJlZiA9IHtcbiAgLyoqXG4gICAqIElmIGZvY3VzIGFuZCBzY3JvbGwgc2hvdWxkIGJlIHNldCBpbiB0aGUgbGF5b3V0LXJvdXRlcidzIHVzZUVmZmVjdCgpXG4gICAqL1xuICBhcHBseTogYm9vbGVhblxuICAvKipcbiAgICogVGhlIGhhc2ggZnJhZ21lbnQgdGhhdCBzaG91bGQgYmUgc2Nyb2xsZWQgdG8uXG4gICAqL1xuICBoYXNoRnJhZ21lbnQ6IHN0cmluZyB8IG51bGxcbiAgLyoqXG4gICAqIFRoZSBwYXRocyBvZiB0aGUgc2VnbWVudHMgdGhhdCBzaG91bGQgYmUgZm9jdXNlZC5cbiAgICovXG4gIHNlZ21lbnRQYXRoczogRmxpZ2h0U2VnbWVudFBhdGhbXVxuICAvKipcbiAgICogSWYgb25seSB0aGUgVVJMcyBoYXNoIGZyYWdtZW50IGNoYW5nZWRcbiAgICovXG4gIG9ubHlIYXNoQ2hhbmdlOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIFByZWZldGNoQ2FjaGVFbnRyeSA9IHtcbiAgdHJlZUF0VGltZU9mUHJlZmV0Y2g6IEZsaWdodFJvdXRlclN0YXRlXG4gIGRhdGE6IFByb21pc2U8RmV0Y2hTZXJ2ZXJSZXNwb25zZVJlc3VsdD5cbiAga2luZDogUHJlZmV0Y2hLaW5kXG4gIHByZWZldGNoVGltZTogbnVtYmVyXG4gIHN0YWxlVGltZTogbnVtYmVyXG4gIGxhc3RVc2VkVGltZTogbnVtYmVyIHwgbnVsbFxuICBrZXk6IHN0cmluZ1xuICBzdGF0dXM6IFByZWZldGNoQ2FjaGVFbnRyeVN0YXR1c1xuICB1cmw6IFVSTFxufVxuXG5leHBvcnQgZW51bSBQcmVmZXRjaENhY2hlRW50cnlTdGF0dXMge1xuICBmcmVzaCA9ICdmcmVzaCcsXG4gIHJldXNhYmxlID0gJ3JldXNhYmxlJyxcbiAgZXhwaXJlZCA9ICdleHBpcmVkJyxcbiAgc3RhbGUgPSAnc3RhbGUnLFxufVxuXG4vKipcbiAqIEhhbmRsZXMga2VlcGluZyB0aGUgc3RhdGUgb2YgYXBwLXJvdXRlci5cbiAqL1xuZXhwb3J0IHR5cGUgQXBwUm91dGVyU3RhdGUgPSB7XG4gIC8qKlxuICAgKiBUaGUgcm91dGVyIHN0YXRlLCB0aGlzIGlzIHdyaXR0ZW4gaW50byB0aGUgaGlzdG9yeSBzdGF0ZSBpbiBhcHAtcm91dGVyIHVzaW5nIHJlcGxhY2VTdGF0ZS9wdXNoU3RhdGUuXG4gICAqIC0gSGFzIHRvIGJlIHNlcmlhbGl6YWJsZSBhcyBpdCBpcyB3cml0dGVuIGludG8gdGhlIGhpc3Rvcnkgc3RhdGUuXG4gICAqIC0gSG9sZHMgd2hpY2ggc2VnbWVudHMgYW5kIHBhcmFsbGVsIHJvdXRlcyBhcmUgc2hvd24gb24gdGhlIHNjcmVlbi5cbiAgICovXG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIC8qKlxuICAgKiBUaGUgY2FjaGUgaG9sZHMgUmVhY3Qgbm9kZXMgZm9yIGV2ZXJ5IHNlZ21lbnQgdGhhdCBpcyBzaG93biBvbiBzY3JlZW4gYXMgd2VsbCBhcyBwcmV2aW91c2x5IHNob3duIHNlZ21lbnRzLlxuICAgKiBJdCBhbHNvIGhvbGRzIGluLXByb2dyZXNzIGRhdGEgcmVxdWVzdHMuXG4gICAqIFByZWZldGNoZWQgZGF0YSBpcyBzdG9yZWQgc2VwYXJhdGVseSBpbiBgcHJlZmV0Y2hDYWNoZWAsIHRoYXQgaXMgYXBwbGllZCBkdXJpbmcgQUNUSU9OX05BVklHQVRFLlxuICAgKi9cbiAgY2FjaGU6IENhY2hlTm9kZVxuICAvKipcbiAgICogQ2FjaGUgdGhhdCBob2xkcyBwcmVmZXRjaGVkIEZsaWdodCByZXNwb25zZXMga2V5ZWQgYnkgdXJsLlxuICAgKi9cbiAgcHJlZmV0Y2hDYWNoZTogTWFwPHN0cmluZywgUHJlZmV0Y2hDYWNoZUVudHJ5PlxuICAvKipcbiAgICogRGVjaWRlcyBpZiB0aGUgdXBkYXRlIHNob3VsZCBjcmVhdGUgYSBuZXcgaGlzdG9yeSBlbnRyeSBhbmQgaWYgdGhlIG5hdmlnYXRpb24gaGFzIHRvIHRyaWdnZXIgYSBicm93c2VyIG5hdmlnYXRpb24uXG4gICAqL1xuICBwdXNoUmVmOiBQdXNoUmVmXG4gIC8qKlxuICAgKiBEZWNpZGVzIGlmIHRoZSB1cGRhdGUgc2hvdWxkIGFwcGx5IHNjcm9sbCBhbmQgZm9jdXMgbWFuYWdlbWVudC5cbiAgICovXG4gIGZvY3VzQW5kU2Nyb2xsUmVmOiBGb2N1c0FuZFNjcm9sbFJlZlxuICAvKipcbiAgICogVGhlIGNhbm9uaWNhbCB1cmwgdGhhdCBpcyBwdXNoZWQvcmVwbGFjZWQuXG4gICAqIC0gVGhpcyBpcyB0aGUgdXJsIHlvdSBzZWUgaW4gdGhlIGJyb3dzZXIuXG4gICAqL1xuICBjYW5vbmljYWxVcmw6IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHVuZGVybHlpbmcgXCJ1cmxcIiByZXByZXNlbnRpbmcgdGhlIFVJIHN0YXRlLCB3aGljaCBpcyB1c2VkIGZvciBpbnRlcmNlcHRpbmcgcm91dGVzLlxuICAgKi9cbiAgbmV4dFVybDogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBSZWFkb25seVJlZHVjZXJTdGF0ZSA9IFJlYWRvbmx5PEFwcFJvdXRlclN0YXRlPlxuZXhwb3J0IHR5cGUgUmVkdWNlclN0YXRlID0gUHJvbWlzZTxBcHBSb3V0ZXJTdGF0ZT4gfCBBcHBSb3V0ZXJTdGF0ZVxuZXhwb3J0IHR5cGUgUmVkdWNlckFjdGlvbnMgPSBSZWFkb25seTxcbiAgfCBSZWZyZXNoQWN0aW9uXG4gIHwgTmF2aWdhdGVBY3Rpb25cbiAgfCBSZXN0b3JlQWN0aW9uXG4gIHwgU2VydmVyUGF0Y2hBY3Rpb25cbiAgfCBQcmVmZXRjaEFjdGlvblxuICB8IEhtclJlZnJlc2hBY3Rpb25cbiAgfCBTZXJ2ZXJBY3Rpb25BY3Rpb25cbj5cbiJdLCJuYW1lcyI6WyJBQ1RJT05fSE1SX1JFRlJFU0giLCJBQ1RJT05fTkFWSUdBVEUiLCJBQ1RJT05fUFJFRkVUQ0giLCJBQ1RJT05fUkVGUkVTSCIsIkFDVElPTl9SRVNUT1JFIiwiQUNUSU9OX1NFUlZFUl9BQ1RJT04iLCJBQ1RJT05fU0VSVkVSX1BBVENIIiwiUHJlZmV0Y2hDYWNoZUVudHJ5U3RhdHVzIiwiUHJlZmV0Y2hLaW5kIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer.js":
/*!***********************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/router-reducer.js ***!
\***********************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"reducer\", ({\n enumerable: true,\n get: function() {\n return reducer;\n }\n}));\nconst _routerreducertypes = __webpack_require__(/*! ./router-reducer-types */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst _navigatereducer = __webpack_require__(/*! ./reducers/navigate-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js\");\nconst _serverpatchreducer = __webpack_require__(/*! ./reducers/server-patch-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js\");\nconst _restorereducer = __webpack_require__(/*! ./reducers/restore-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js\");\nconst _refreshreducer = __webpack_require__(/*! ./reducers/refresh-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js\");\nconst _prefetchreducer = __webpack_require__(/*! ./reducers/prefetch-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js\");\nconst _hmrrefreshreducer = __webpack_require__(/*! ./reducers/hmr-refresh-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js\");\nconst _serveractionreducer = __webpack_require__(/*! ./reducers/server-action-reducer */ \"(ssr)/./node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js\");\n/**\n * Reducer that handles the app-router state updates.\n */ function clientReducer(state, action) {\n switch(action.type){\n case _routerreducertypes.ACTION_NAVIGATE:\n {\n return (0, _navigatereducer.navigateReducer)(state, action);\n }\n case _routerreducertypes.ACTION_SERVER_PATCH:\n {\n return (0, _serverpatchreducer.serverPatchReducer)(state, action);\n }\n case _routerreducertypes.ACTION_RESTORE:\n {\n return (0, _restorereducer.restoreReducer)(state, action);\n }\n case _routerreducertypes.ACTION_REFRESH:\n {\n return (0, _refreshreducer.refreshReducer)(state, action);\n }\n case _routerreducertypes.ACTION_HMR_REFRESH:\n {\n return (0, _hmrrefreshreducer.hmrRefreshReducer)(state, action);\n }\n case _routerreducertypes.ACTION_PREFETCH:\n {\n return (0, _prefetchreducer.prefetchReducer)(state, action);\n }\n case _routerreducertypes.ACTION_SERVER_ACTION:\n {\n return (0, _serveractionreducer.serverActionReducer)(state, action);\n }\n // This case should never be hit as dispatch is strongly typed.\n default:\n throw Object.defineProperty(new Error('Unknown action'), \"__NEXT_ERROR_CODE\", {\n value: \"E295\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction serverReducer(state, _action) {\n return state;\n}\nconst reducer = true ? serverReducer : 0;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=router-reducer.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBaUVhQTs7O2VBQUFBOzs7Z0RBekROOzZDQU15QjtnREFDRzs0Q0FDSjs0Q0FDQTs2Q0FDQzsrQ0FDRTtpREFDRTtBQUVwQzs7Q0FFQyxHQUNELFNBQVNDLGNBQ1BDLEtBQTJCLEVBQzNCQyxNQUFzQjtJQUV0QixPQUFRQSxPQUFPQyxJQUFJO1FBQ2pCLEtBQUtDLG9CQUFBQSxlQUFlO1lBQUU7Z0JBQ3BCLE9BQU9DLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUFnQkosT0FBT0M7WUFDaEM7UUFDQSxLQUFLSSxvQkFBQUEsbUJBQW1CO1lBQUU7Z0JBQ3hCLE9BQU9DLENBQUFBLEdBQUFBLG9CQUFBQSxrQkFBQUEsRUFBbUJOLE9BQU9DO1lBQ25DO1FBQ0EsS0FBS00sb0JBQUFBLGNBQWM7WUFBRTtnQkFDbkIsT0FBT0MsQ0FBQUEsR0FBQUEsZ0JBQUFBLGNBQUFBLEVBQWVSLE9BQU9DO1lBQy9CO1FBQ0EsS0FBS1Esb0JBQUFBLGNBQWM7WUFBRTtnQkFDbkIsT0FBT0MsQ0FBQUEsR0FBQUEsZ0JBQUFBLGNBQUFBLEVBQWVWLE9BQU9DO1lBQy9CO1FBQ0EsS0FBS1Usb0JBQUFBLGtCQUFrQjtZQUFFO2dCQUN2QixPQUFPQyxDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCWixPQUFPQztZQUNsQztRQUNBLEtBQUtZLG9CQUFBQSxlQUFlO1lBQUU7Z0JBQ3BCLE9BQU9DLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUFnQmQsT0FBT0M7WUFDaEM7UUFDQSxLQUFLYyxvQkFBQUEsb0JBQW9CO1lBQUU7Z0JBQ3pCLE9BQU9DLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JoQixPQUFPQztZQUNwQztRQUNBLCtEQUErRDtRQUMvRDtZQUNFLE1BQU0scUJBQTJCLENBQTNCLElBQUlnQixNQUFNLG1CQUFWO3VCQUFBOzRCQUFBOzhCQUFBO1lBQTBCO0lBQ3BDO0FBQ0Y7QUFFQSxTQUFTQyxjQUNQbEIsS0FBMkIsRUFDM0JtQixPQUF1QjtJQUV2QixPQUFPbkI7QUFDVDtBQUdPLE1BQU1GLFVBQ1gsS0FBNkIsR0FBR29CLGdCQUFnQm5CLENBQWFBIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQUNUSU9OX05BVklHQVRFLFxuICBBQ1RJT05fU0VSVkVSX1BBVENILFxuICBBQ1RJT05fUkVTVE9SRSxcbiAgQUNUSU9OX1JFRlJFU0gsXG4gIEFDVElPTl9QUkVGRVRDSCxcbiAgQUNUSU9OX0hNUl9SRUZSRVNILFxuICBBQ1RJT05fU0VSVkVSX0FDVElPTixcbn0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgUmVkdWNlckFjdGlvbnMsXG4gIFJlZHVjZXJTdGF0ZSxcbiAgUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG59IGZyb20gJy4vcm91dGVyLXJlZHVjZXItdHlwZXMnXG5pbXBvcnQgeyBuYXZpZ2F0ZVJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXJzL25hdmlnYXRlLXJlZHVjZXInXG5pbXBvcnQgeyBzZXJ2ZXJQYXRjaFJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXJzL3NlcnZlci1wYXRjaC1yZWR1Y2VyJ1xuaW1wb3J0IHsgcmVzdG9yZVJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXJzL3Jlc3RvcmUtcmVkdWNlcidcbmltcG9ydCB7IHJlZnJlc2hSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2Vycy9yZWZyZXNoLXJlZHVjZXInXG5pbXBvcnQgeyBwcmVmZXRjaFJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXJzL3ByZWZldGNoLXJlZHVjZXInXG5pbXBvcnQgeyBobXJSZWZyZXNoUmVkdWNlciB9IGZyb20gJy4vcmVkdWNlcnMvaG1yLXJlZnJlc2gtcmVkdWNlcidcbmltcG9ydCB7IHNlcnZlckFjdGlvblJlZHVjZXIgfSBmcm9tICcuL3JlZHVjZXJzL3NlcnZlci1hY3Rpb24tcmVkdWNlcidcblxuLyoqXG4gKiBSZWR1Y2VyIHRoYXQgaGFuZGxlcyB0aGUgYXBwLXJvdXRlciBzdGF0ZSB1cGRhdGVzLlxuICovXG5mdW5jdGlvbiBjbGllbnRSZWR1Y2VyKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIGFjdGlvbjogUmVkdWNlckFjdGlvbnNcbik6IFJlZHVjZXJTdGF0ZSB7XG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIEFDVElPTl9OQVZJR0FURToge1xuICAgICAgcmV0dXJuIG5hdmlnYXRlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKVxuICAgIH1cbiAgICBjYXNlIEFDVElPTl9TRVJWRVJfUEFUQ0g6IHtcbiAgICAgIHJldHVybiBzZXJ2ZXJQYXRjaFJlZHVjZXIoc3RhdGUsIGFjdGlvbilcbiAgICB9XG4gICAgY2FzZSBBQ1RJT05fUkVTVE9SRToge1xuICAgICAgcmV0dXJuIHJlc3RvcmVSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pXG4gICAgfVxuICAgIGNhc2UgQUNUSU9OX1JFRlJFU0g6IHtcbiAgICAgIHJldHVybiByZWZyZXNoUmVkdWNlcihzdGF0ZSwgYWN0aW9uKVxuICAgIH1cbiAgICBjYXNlIEFDVElPTl9ITVJfUkVGUkVTSDoge1xuICAgICAgcmV0dXJuIGhtclJlZnJlc2hSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pXG4gICAgfVxuICAgIGNhc2UgQUNUSU9OX1BSRUZFVENIOiB7XG4gICAgICByZXR1cm4gcHJlZmV0Y2hSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pXG4gICAgfVxuICAgIGNhc2UgQUNUSU9OX1NFUlZFUl9BQ1RJT046IHtcbiAgICAgIHJldHVybiBzZXJ2ZXJBY3Rpb25SZWR1Y2VyKHN0YXRlLCBhY3Rpb24pXG4gICAgfVxuICAgIC8vIFRoaXMgY2FzZSBzaG91bGQgbmV2ZXIgYmUgaGl0IGFzIGRpc3BhdGNoIGlzIHN0cm9uZ2x5IHR5cGVkLlxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gYWN0aW9uJylcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXJ2ZXJSZWR1Y2VyKFxuICBzdGF0ZTogUmVhZG9ubHlSZWR1Y2VyU3RhdGUsXG4gIF9hY3Rpb246IFJlZHVjZXJBY3Rpb25zXG4pOiBSZWR1Y2VyU3RhdGUge1xuICByZXR1cm4gc3RhdGVcbn1cblxuLy8gd2UgZG9uJ3QgcnVuIHRoZSBjbGllbnQgcmVkdWNlciBvbiB0aGUgc2VydmVyLCBzbyB3ZSB1c2UgYSBub29wIGZ1bmN0aW9uIGZvciBiZXR0ZXIgdHJlZSBzaGFraW5nXG5leHBvcnQgY29uc3QgcmVkdWNlciA9XG4gIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gc2VydmVyUmVkdWNlciA6IGNsaWVudFJlZHVjZXJcbiJdLCJuYW1lcyI6WyJyZWR1Y2VyIiwiY2xpZW50UmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwidHlwZSIsIkFDVElPTl9OQVZJR0FURSIsIm5hdmlnYXRlUmVkdWNlciIsIkFDVElPTl9TRVJWRVJfUEFUQ0giLCJzZXJ2ZXJQYXRjaFJlZHVjZXIiLCJBQ1RJT05fUkVTVE9SRSIsInJlc3RvcmVSZWR1Y2VyIiwiQUNUSU9OX1JFRlJFU0giLCJyZWZyZXNoUmVkdWNlciIsIkFDVElPTl9ITVJfUkVGUkVTSCIsImhtclJlZnJlc2hSZWR1Y2VyIiwiQUNUSU9OX1BSRUZFVENIIiwicHJlZmV0Y2hSZWR1Y2VyIiwiQUNUSU9OX1NFUlZFUl9BQ1RJT04iLCJzZXJ2ZXJBY3Rpb25SZWR1Y2VyIiwiRXJyb3IiLCJzZXJ2ZXJSZWR1Y2VyIiwiX2FjdGlvbiIsIndpbmRvdyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/router-reducer.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js":
/*!***************************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js ***!
\***************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n setCacheBustingSearchParam: function() {\n return setCacheBustingSearchParam;\n },\n setCacheBustingSearchParamWithHash: function() {\n return setCacheBustingSearchParamWithHash;\n }\n});\nconst _cachebustingsearchparam = __webpack_require__(/*! ../../../shared/lib/router/utils/cache-busting-search-param */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js\");\nconst _approuterheaders = __webpack_require__(/*! ../app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst setCacheBustingSearchParam = (url, headers)=>{\n const uniqueCacheKey = (0, _cachebustingsearchparam.computeCacheBustingSearchParam)(headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER], headers[_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER], headers[_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER], headers[_approuterheaders.NEXT_URL]);\n setCacheBustingSearchParamWithHash(url, uniqueCacheKey);\n};\nconst setCacheBustingSearchParamWithHash = (url, hash)=>{\n /**\n * Note that we intentionally do not use `url.searchParams.set` here:\n *\n * const url = new URL('https://example.com/search?q=custom%20spacing');\n * url.searchParams.set('_rsc', 'abc123');\n * console.log(url.toString()); // Outputs: https://example.com/search?q=custom+spacing&_rsc=abc123\n * ^ <--- this is causing confusion\n * This is in fact intended based on https://url.spec.whatwg.org/#interface-urlsearchparams, but\n * we want to preserve the %20 as %20 if that's what the user passed in, hence the custom\n * logic below.\n */ const existingSearch = url.search;\n const rawQuery = existingSearch.startsWith('?') ? existingSearch.slice(1) : existingSearch;\n // Always remove any existing cache busting param and add a fresh one to ensure\n // we have the correct value based on current request headers\n const pairs = rawQuery.split('&').filter((pair)=>pair && !pair.startsWith(\"\" + _approuterheaders.NEXT_RSC_UNION_QUERY + \"=\"));\n if (hash.length > 0) {\n pairs.push(_approuterheaders.NEXT_RSC_UNION_QUERY + \"=\" + hash);\n } else {\n pairs.push(\"\" + _approuterheaders.NEXT_RSC_UNION_QUERY);\n }\n url.search = pairs.length ? \"?\" + pairs.join('&') : '';\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=set-cache-busting-search-param.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3NldC1jYWNoZS1idXN0aW5nLXNlYXJjaC1wYXJhbS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLDBCQUEwQjtlQUExQkE7O0lBNkJBQyxrQ0FBa0M7ZUFBbENBOzs7cURBdkRrQzs4Q0FPeEM7QUFtQkEsTUFBTUQsNkJBQTZCLENBQ3hDRSxLQUNBQztJQUVBLE1BQU1DLGlCQUFpQkMsQ0FBQUEsR0FBQUEseUJBQUFBLDhCQUFBQSxFQUNyQkYsT0FBTyxDQUFDRyxrQkFBQUEsMkJBQTJCLENBQUMsRUFDcENILE9BQU8sQ0FBQ0ksa0JBQUFBLG1DQUFtQyxDQUFDLEVBQzVDSixPQUFPLENBQUNLLGtCQUFBQSw2QkFBNkIsQ0FBQyxFQUN0Q0wsT0FBTyxDQUFDTSxrQkFBQUEsUUFBUSxDQUFDO0lBRW5CUixtQ0FBbUNDLEtBQUtFO0FBQzFDO0FBa0JPLE1BQU1ILHFDQUFxQyxDQUNoREMsS0FDQVE7SUFFQTs7Ozs7Ozs7OztHQVVDLEdBQ0QsTUFBTUMsaUJBQWlCVCxJQUFJVSxNQUFNO0lBQ2pDLE1BQU1DLFdBQVdGLGVBQWVHLFVBQVUsQ0FBQyxPQUN2Q0gsZUFBZUksS0FBSyxDQUFDLEtBQ3JCSjtJQUVKLCtFQUErRTtJQUMvRSw2REFBNkQ7SUFDN0QsTUFBTUssUUFBUUgsU0FDWEksS0FBSyxDQUFDLEtBQ05DLE1BQU0sQ0FBQyxDQUFDQyxPQUFTQSxRQUFRLENBQUNBLEtBQUtMLFVBQVUsQ0FBRSxLQUFFTSxrQkFBQUEsb0JBQW9CLEdBQUM7SUFFckUsSUFBSVYsS0FBS1csTUFBTSxHQUFHLEdBQUc7UUFDbkJMLE1BQU1NLElBQUksQ0FBSUYsa0JBQUFBLG9CQUFvQixHQUFDLE1BQUdWO0lBQ3hDLE9BQU87UUFDTE0sTUFBTU0sSUFBSSxDQUFFLEtBQUVGLGtCQUFBQSxvQkFBb0I7SUFDcEM7SUFDQWxCLElBQUlVLE1BQU0sR0FBR0ksTUFBTUssTUFBTSxHQUFJLE1BQUdMLE1BQU1PLElBQUksQ0FBQyxPQUFTO0FBQ3REIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvc2V0LWNhY2hlLWJ1c3Rpbmctc2VhcmNoLXBhcmFtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjb21wdXRlQ2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9jYWNoZS1idXN0aW5nLXNlYXJjaC1wYXJhbSdcbmltcG9ydCB7XG4gIE5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUixcbiAgTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVIsXG4gIE5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSLFxuICBORVhUX1VSTCxcbiAgTkVYVF9SU0NfVU5JT05fUVVFUlksXG59IGZyb20gJy4uL2FwcC1yb3V0ZXItaGVhZGVycydcbmltcG9ydCB0eXBlIHsgUmVxdWVzdEhlYWRlcnMgfSBmcm9tICcuL2ZldGNoLXNlcnZlci1yZXNwb25zZSdcblxuLyoqXG4gKiBNdXRhdGVzIHRoZSBwcm92aWRlZCBVUkwgYnkgYWRkaW5nIGEgY2FjaGUtYnVzdGluZyBzZWFyY2ggcGFyYW1ldGVyIGZvciBDRE5zIHRoYXQgZG9uJ3RcbiAqIHN1cHBvcnQgY3VzdG9tIGhlYWRlcnMuIFRoaXMgaGVscHMgYXZvaWQgY2FjaGluZyBjb25mbGljdHMgYnkgbWFraW5nIGVhY2ggcmVxdWVzdCB1bmlxdWUuXG4gKlxuICogUmF0aGVyIHRoYW4gcmVseWluZyBvbiB0aGUgVmFyeSBoZWFkZXIgd2hpY2ggc29tZSBDRE5zIGlnbm9yZSwgd2UgYXBwZW5kIGEgc2VhcmNoIHBhcmFtXG4gKiB0byBjcmVhdGUgYSB1bmlxdWUgVVJMIHRoYXQgZm9yY2VzIGEgZnJlc2ggcmVxdWVzdC5cbiAqXG4gKiBFeGFtcGxlOlxuICogVVJMIGJlZm9yZTogaHR0cHM6Ly9leGFtcGxlLmNvbS9wYXRoP3F1ZXJ5PTFcbiAqIFVSTCBhZnRlcjogaHR0cHM6Ly9leGFtcGxlLmNvbS9wYXRoP3F1ZXJ5PTEmX3JzYz1hYmMxMjNcbiAqXG4gKiBOb3RlOiBUaGlzIGZ1bmN0aW9uIG11dGF0ZXMgdGhlIGlucHV0IFVSTCBkaXJlY3RseSBhbmQgZG9lcyBub3QgcmV0dXJuIGFueXRoaW5nLlxuICpcbiAqIFRPRE86IFNpbmNlIHdlIG5lZWQgdG8gdXNlIGEgc2VhcmNoIHBhcmFtIGFueXdheSwgd2UgY291bGQgc2ltcGxpZnkgYnkgcmVtb3ZpbmcgdGhlIGN1c3RvbVxuICogaGVhZGVycyBhcHByb2FjaCBlbnRpcmVseSBhbmQganVzdCB1c2Ugc2VhcmNoIHBhcmFtcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtID0gKFxuICB1cmw6IFVSTCxcbiAgaGVhZGVyczogUmVxdWVzdEhlYWRlcnNcbik6IHZvaWQgPT4ge1xuICBjb25zdCB1bmlxdWVDYWNoZUtleSA9IGNvbXB1dGVDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbShcbiAgICBoZWFkZXJzW05FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl0sXG4gICAgaGVhZGVyc1tORVhUX1JPVVRFUl9TRUdNRU5UX1BSRUZFVENIX0hFQURFUl0sXG4gICAgaGVhZGVyc1tORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUl0sXG4gICAgaGVhZGVyc1tORVhUX1VSTF1cbiAgKVxuICBzZXRDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbVdpdGhIYXNoKHVybCwgdW5pcXVlQ2FjaGVLZXkpXG59XG5cbi8qKlxuICogU2V0cyBhIGNhY2hlLWJ1c3Rpbmcgc2VhcmNoIHBhcmFtZXRlciBvbiBhIFVSTCB1c2luZyBhIHByb3ZpZGVkIGhhc2ggdmFsdWUuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyB0aGUgc2FtZSBsb2dpYyBhcyBgc2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW1gIGJ1dCBhY2NlcHRzXG4gKiBhIHByZS1jb21wdXRlZCBoYXNoIGluc3RlYWQgb2YgY29tcHV0aW5nIGl0IGZyb20gaGVhZGVycy5cbiAqXG4gKiBFeGFtcGxlOlxuICogVVJMIGJlZm9yZTogaHR0cHM6Ly9leGFtcGxlLmNvbS9wYXRoP3F1ZXJ5PTFcbiAqIGhhc2g6IFwiYWJjMTIzXCJcbiAqIFVSTCBhZnRlcjogaHR0cHM6Ly9leGFtcGxlLmNvbS9wYXRoP3F1ZXJ5PTEmX3JzYz1hYmMxMjNcbiAqXG4gKiBJZiB0aGUgaGFzaCBpcyBudWxsLCB3ZSB3aWxsIHNldCBgX3JzY2Agc2VhcmNoIHBhcmFtIHdpdGhvdXQgYSB2YWx1ZS5cbiAqIExpa2UgdGhpczogaHR0cHM6Ly9leGFtcGxlLmNvbS9wYXRoP3F1ZXJ5PTEmX3JzY1xuICpcbiAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gbXV0YXRlcyB0aGUgaW5wdXQgVVJMIGRpcmVjdGx5IGFuZCBkb2VzIG5vdCByZXR1cm4gYW55dGhpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbVdpdGhIYXNoID0gKFxuICB1cmw6IFVSTCxcbiAgaGFzaDogc3RyaW5nXG4pOiB2b2lkID0+IHtcbiAgLyoqXG4gICAqIE5vdGUgdGhhdCB3ZSBpbnRlbnRpb25hbGx5IGRvIG5vdCB1c2UgYHVybC5zZWFyY2hQYXJhbXMuc2V0YCBoZXJlOlxuICAgKlxuICAgKiBjb25zdCB1cmwgPSBuZXcgVVJMKCdodHRwczovL2V4YW1wbGUuY29tL3NlYXJjaD9xPWN1c3RvbSUyMHNwYWNpbmcnKTtcbiAgICogdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ19yc2MnLCAnYWJjMTIzJyk7XG4gICAqIGNvbnNvbGUubG9nKHVybC50b1N0cmluZygpKTsgLy8gT3V0cHV0czogaHR0cHM6Ly9leGFtcGxlLmNvbS9zZWFyY2g/cT1jdXN0b20rc3BhY2luZyZfcnNjPWFiYzEyM1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiA8LS0tIHRoaXMgaXMgY2F1c2luZyBjb25mdXNpb25cbiAgICogVGhpcyBpcyBpbiBmYWN0IGludGVuZGVkIGJhc2VkIG9uIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jaW50ZXJmYWNlLXVybHNlYXJjaHBhcmFtcywgYnV0XG4gICAqIHdlIHdhbnQgdG8gcHJlc2VydmUgdGhlICUyMCBhcyAlMjAgaWYgdGhhdCdzIHdoYXQgdGhlIHVzZXIgcGFzc2VkIGluLCBoZW5jZSB0aGUgY3VzdG9tXG4gICAqIGxvZ2ljIGJlbG93LlxuICAgKi9cbiAgY29uc3QgZXhpc3RpbmdTZWFyY2ggPSB1cmwuc2VhcmNoXG4gIGNvbnN0IHJhd1F1ZXJ5ID0gZXhpc3RpbmdTZWFyY2guc3RhcnRzV2l0aCgnPycpXG4gICAgPyBleGlzdGluZ1NlYXJjaC5zbGljZSgxKVxuICAgIDogZXhpc3RpbmdTZWFyY2hcblxuICAvLyBBbHdheXMgcmVtb3ZlIGFueSBleGlzdGluZyBjYWNoZSBidXN0aW5nIHBhcmFtIGFuZCBhZGQgYSBmcmVzaCBvbmUgdG8gZW5zdXJlXG4gIC8vIHdlIGhhdmUgdGhlIGNvcnJlY3QgdmFsdWUgYmFzZWQgb24gY3VycmVudCByZXF1ZXN0IGhlYWRlcnNcbiAgY29uc3QgcGFpcnMgPSByYXdRdWVyeVxuICAgIC5zcGxpdCgnJicpXG4gICAgLmZpbHRlcigocGFpcikgPT4gcGFpciAmJiAhcGFpci5zdGFydHNXaXRoKGAke05FWFRfUlNDX1VOSU9OX1FVRVJZfT1gKSlcblxuICBpZiAoaGFzaC5sZW5ndGggPiAwKSB7XG4gICAgcGFpcnMucHVzaChgJHtORVhUX1JTQ19VTklPTl9RVUVSWX09JHtoYXNofWApXG4gIH0gZWxzZSB7XG4gICAgcGFpcnMucHVzaChgJHtORVhUX1JTQ19VTklPTl9RVUVSWX1gKVxuICB9XG4gIHVybC5zZWFyY2ggPSBwYWlycy5sZW5ndGggPyBgPyR7cGFpcnMuam9pbignJicpfWAgOiAnJ1xufVxuIl0sIm5hbWVzIjpbInNldENhY2hlQnVzdGluZ1NlYXJjaFBhcmFtIiwic2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW1XaXRoSGFzaCIsInVybCIsImhlYWRlcnMiLCJ1bmlxdWVDYWNoZUtleSIsImNvbXB1dGVDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbSIsIk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUiIsIk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSIiwiTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVIiLCJORVhUX1VSTCIsImhhc2giLCJleGlzdGluZ1NlYXJjaCIsInNlYXJjaCIsInJhd1F1ZXJ5Iiwic3RhcnRzV2l0aCIsInNsaWNlIiwicGFpcnMiLCJzcGxpdCIsImZpbHRlciIsInBhaXIiLCJORVhUX1JTQ19VTklPTl9RVUVSWSIsImxlbmd0aCIsInB1c2giLCJqb2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/router-reducer/should-hard-navigate.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/client/components/router-reducer/should-hard-navigate.js ***!
\*****************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"shouldHardNavigate\", ({\n enumerable: true,\n get: function() {\n return shouldHardNavigate;\n }\n}));\nconst _flightdatahelpers = __webpack_require__(/*! ../../flight-data-helpers */ \"(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\");\nconst _matchsegments = __webpack_require__(/*! ../match-segments */ \"(ssr)/./node_modules/next/dist/client/components/match-segments.js\");\nfunction shouldHardNavigate(flightSegmentPath, flightRouterState) {\n const [segment, parallelRoutes] = flightRouterState;\n // TODO-APP: Check if `as` can be replaced.\n const [currentSegment, parallelRouteKey] = flightSegmentPath;\n // Check if current segment matches the existing segment.\n if (!(0, _matchsegments.matchSegment)(currentSegment, segment)) {\n // If dynamic parameter in tree doesn't match up with segment path a hard navigation is triggered.\n if (Array.isArray(currentSegment)) {\n return true;\n }\n // If the existing segment did not match soft navigation is triggered.\n return false;\n }\n const lastSegment = flightSegmentPath.length <= 2;\n if (lastSegment) {\n return false;\n }\n return shouldHardNavigate((0, _flightdatahelpers.getNextFlightSegmentPath)(flightSegmentPath), parallelRoutes[parallelRouteKey]);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=should-hard-navigate.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JvdXRlci1yZWR1Y2VyL3Nob3VsZC1oYXJkLW5hdmlnYXRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBU2dCQTs7O2VBQUFBOzs7K0NBSnlCOzJDQUNaO0FBR3RCLFNBQVNBLG1CQUNkQyxpQkFBaUMsRUFDakNDLGlCQUFvQztJQUVwQyxNQUFNLENBQUNDLFNBQVNDLGVBQWUsR0FBR0Y7SUFDbEMsMkNBQTJDO0lBQzNDLE1BQU0sQ0FBQ0csZ0JBQWdCQyxpQkFBaUIsR0FBR0w7SUFLM0MseURBQXlEO0lBQ3pELElBQUksQ0FBQ00sQ0FBQUEsR0FBQUEsZUFBQUEsWUFBQUEsRUFBYUYsZ0JBQWdCRixVQUFVO1FBQzFDLGtHQUFrRztRQUNsRyxJQUFJSyxNQUFNQyxPQUFPLENBQUNKLGlCQUFpQjtZQUNqQyxPQUFPO1FBQ1Q7UUFFQSxzRUFBc0U7UUFDdEUsT0FBTztJQUNUO0lBQ0EsTUFBTUssY0FBY1Qsa0JBQWtCVSxNQUFNLElBQUk7SUFFaEQsSUFBSUQsYUFBYTtRQUNmLE9BQU87SUFDVDtJQUVBLE9BQU9WLG1CQUNMWSxDQUFBQSxHQUFBQSxtQkFBQUEsd0JBQUFBLEVBQXlCWCxvQkFDekJHLGNBQWMsQ0FBQ0UsaUJBQWlCO0FBRXBDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvc2hvdWxkLWhhcmQtbmF2aWdhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgRmxpZ2h0RGF0YVBhdGgsXG4gIFNlZ21lbnQsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoIH0gZnJvbSAnLi4vLi4vZmxpZ2h0LWRhdGEtaGVscGVycydcbmltcG9ydCB7IG1hdGNoU2VnbWVudCB9IGZyb20gJy4uL21hdGNoLXNlZ21lbnRzJ1xuXG4vLyBUT0RPLUFQUDogZmxpZ2h0U2VnbWVudFBhdGggd2lsbCBiZSBlbXB0eSBpbiBjYXNlIG9mIHN0YXRpYyByZXNwb25zZSwgbmVlZHMgdG8gYmUgaGFuZGxlZC5cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRIYXJkTmF2aWdhdGUoXG4gIGZsaWdodFNlZ21lbnRQYXRoOiBGbGlnaHREYXRhUGF0aCxcbiAgZmxpZ2h0Um91dGVyU3RhdGU6IEZsaWdodFJvdXRlclN0YXRlXG4pOiBib29sZWFuIHtcbiAgY29uc3QgW3NlZ21lbnQsIHBhcmFsbGVsUm91dGVzXSA9IGZsaWdodFJvdXRlclN0YXRlXG4gIC8vIFRPRE8tQVBQOiBDaGVjayBpZiBgYXNgIGNhbiBiZSByZXBsYWNlZC5cbiAgY29uc3QgW2N1cnJlbnRTZWdtZW50LCBwYXJhbGxlbFJvdXRlS2V5XSA9IGZsaWdodFNlZ21lbnRQYXRoIGFzIFtcbiAgICBTZWdtZW50LFxuICAgIHN0cmluZyxcbiAgXVxuXG4gIC8vIENoZWNrIGlmIGN1cnJlbnQgc2VnbWVudCBtYXRjaGVzIHRoZSBleGlzdGluZyBzZWdtZW50LlxuICBpZiAoIW1hdGNoU2VnbWVudChjdXJyZW50U2VnbWVudCwgc2VnbWVudCkpIHtcbiAgICAvLyBJZiBkeW5hbWljIHBhcmFtZXRlciBpbiB0cmVlIGRvZXNuJ3QgbWF0Y2ggdXAgd2l0aCBzZWdtZW50IHBhdGggYSBoYXJkIG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkLlxuICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnRTZWdtZW50KSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgZXhpc3Rpbmcgc2VnbWVudCBkaWQgbm90IG1hdGNoIHNvZnQgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWQuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgbGFzdFNlZ21lbnQgPSBmbGlnaHRTZWdtZW50UGF0aC5sZW5ndGggPD0gMlxuXG4gIGlmIChsYXN0U2VnbWVudCkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHNob3VsZEhhcmROYXZpZ2F0ZShcbiAgICBnZXROZXh0RmxpZ2h0U2VnbWVudFBhdGgoZmxpZ2h0U2VnbWVudFBhdGgpLFxuICAgIHBhcmFsbGVsUm91dGVzW3BhcmFsbGVsUm91dGVLZXldXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJzaG91bGRIYXJkTmF2aWdhdGUiLCJmbGlnaHRTZWdtZW50UGF0aCIsImZsaWdodFJvdXRlclN0YXRlIiwic2VnbWVudCIsInBhcmFsbGVsUm91dGVzIiwiY3VycmVudFNlZ21lbnQiLCJwYXJhbGxlbFJvdXRlS2V5IiwibWF0Y2hTZWdtZW50IiwiQXJyYXkiLCJpc0FycmF5IiwibGFzdFNlZ21lbnQiLCJsZW5ndGgiLCJnZXROZXh0RmxpZ2h0U2VnbWVudFBhdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/router-reducer/should-hard-navigate.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/segment-cache.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/client/components/segment-cache.js ***!
\*******************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("/**\n * Entry point to the Segment Cache implementation.\n *\n * All code related to the Segment Cache lives `segment-cache-impl` directory.\n * Callers access it through this indirection.\n *\n * This is to ensure the code is dead code eliminated from the bundle if the\n * flag is disabled.\n *\n * TODO: This is super tedious. Since experimental flags are an essential part\n * of our workflow, we should establish a better pattern for dead code\n * elimination. Ideally it would be done at the bundler level, like how React's\n * build process works. In the React repo, you don't even need to add any extra\n * configuration per experiment — if the code is not reachable, it gets stripped\n * from the build automatically by Rollup. Or, shorter term, we could stub out\n * experimental modules at build time by updating the build config, i.e. a more\n * automated version of what I'm doing manually in this file.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NavigationResultTag: function() {\n return NavigationResultTag;\n },\n PrefetchPriority: function() {\n return PrefetchPriority;\n },\n cancelPrefetchTask: function() {\n return cancelPrefetchTask;\n },\n createCacheKey: function() {\n return createCacheKey;\n },\n getCurrentCacheVersion: function() {\n return getCurrentCacheVersion;\n },\n isPrefetchTaskDirty: function() {\n return isPrefetchTaskDirty;\n },\n navigate: function() {\n return navigate;\n },\n prefetch: function() {\n return prefetch;\n },\n reschedulePrefetchTask: function() {\n return reschedulePrefetchTask;\n },\n revalidateEntireCache: function() {\n return revalidateEntireCache;\n },\n schedulePrefetchTask: function() {\n return schedulePrefetchTask;\n }\n});\nconst notEnabled = ()=>{\n throw Object.defineProperty(new Error('Segment Cache experiment is not enabled. This is a bug in Next.js.'), \"__NEXT_ERROR_CODE\", {\n value: \"E654\",\n enumerable: false,\n configurable: true\n });\n};\nconst prefetch = false ? 0 : notEnabled;\nconst navigate = false ? 0 : notEnabled;\nconst revalidateEntireCache = false ? 0 : notEnabled;\nconst getCurrentCacheVersion = false ? 0 : notEnabled;\nconst schedulePrefetchTask = false ? 0 : notEnabled;\nconst cancelPrefetchTask = false ? 0 : notEnabled;\nconst reschedulePrefetchTask = false ? 0 : notEnabled;\nconst isPrefetchTaskDirty = false ? 0 : notEnabled;\nconst createCacheKey = false ? 0 : notEnabled;\nvar NavigationResultTag = /*#__PURE__*/ function(NavigationResultTag) {\n NavigationResultTag[NavigationResultTag[\"MPA\"] = 0] = \"MPA\";\n NavigationResultTag[NavigationResultTag[\"Success\"] = 1] = \"Success\";\n NavigationResultTag[NavigationResultTag[\"NoOp\"] = 2] = \"NoOp\";\n NavigationResultTag[NavigationResultTag[\"Async\"] = 3] = \"Async\";\n return NavigationResultTag;\n}({});\nvar PrefetchPriority = /*#__PURE__*/ function(PrefetchPriority) {\n /**\n * Assigned to the most recently hovered/touched link. Special network\n * bandwidth is reserved for this task only. There's only ever one Intent-\n * priority task at a time; when a new Intent task is scheduled, the previous\n * one is bumped down to Default.\n */ PrefetchPriority[PrefetchPriority[\"Intent\"] = 2] = \"Intent\";\n /**\n * The default priority for prefetch tasks.\n */ PrefetchPriority[PrefetchPriority[\"Default\"] = 1] = \"Default\";\n /**\n * Assigned to tasks when they spawn non-blocking background work, like\n * revalidating a partially cached entry to see if more data is available.\n */ PrefetchPriority[PrefetchPriority[\"Background\"] = 0] = \"Background\";\n return PrefetchPriority;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=segment-cache.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3NlZ21lbnQtY2FjaGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJDOzs7Ozs7Ozs7Ozs7SUFpR2lCQSxtQkFBbUI7ZUFBbkJBOztJQVVBQyxnQkFBZ0I7ZUFBaEJBOztJQW5ETEMsa0JBQWtCO2VBQWxCQTs7SUEyQkFDLGNBQWM7ZUFBZEE7O0lBN0NBQyxzQkFBc0I7ZUFBdEJBOztJQW9DQUMsbUJBQW1CO2VBQW5CQTs7SUF0REFDLFFBQVE7ZUFBUkE7O0lBVEFDLFFBQVE7ZUFBUkE7O0lBc0RBQyxzQkFBc0I7ZUFBdEJBOztJQXBDQUMscUJBQXFCO2VBQXJCQTs7SUFrQkFDLG9CQUFvQjtlQUFwQkE7OztBQTFDYixNQUFNQyxhQUFrQjtJQUN0QixNQUFNLHFCQUVMLENBRkssSUFBSUMsTUFDUix1RUFESTtlQUFBO29CQUFBO3NCQUFBO0lBRU47QUFDRjtBQUVPLE1BQU1MLFdBQ1hNLE1BQXVDLEdBQ25DLENBSUMsR0FDREY7QUFFQyxNQUFNTCxXQUNYTyxNQUF1QyxHQUNuQyxDQUlDLEdBQ0RGO0FBRUMsTUFBTUYsd0JBQ1hJLE1BQXVDLEdBQ25DLENBSUMsR0FDREY7QUFFQyxNQUFNUCx5QkFDWFMsTUFBdUMsR0FDbkMsQ0FJQyxHQUNERjtBQUVDLE1BQU1ELHVCQUNYRyxNQUF1QyxHQUNuQyxDQUlDLEdBQ0RGO0FBRUMsTUFBTVQscUJBQ1hXLE1BQXVDLEdBQ25DLENBSUMsR0FDREY7QUFFQyxNQUFNSCx5QkFDWEssTUFBdUMsR0FDbkMsQ0FJQyxHQUNERjtBQUVDLE1BQU1OLHNCQUNYUSxNQUF1QyxHQUNuQyxDQUlDLEdBQ0RGO0FBRUMsTUFBTVIsaUJBQ1hVLE1BQXVDLEdBQ25DLENBSUMsR0FDREY7QUFPQyxJQUFXWCxzQkFBQUEsV0FBQUEsR0FBQUEsU0FBQUEsbUJBQUFBOzs7OztXQUFBQTs7QUFVWCxJQUFXQyxtQkFBQUEsV0FBQUEsR0FBQUEsU0FBQUEsZ0JBQUFBO0lBQ2hCOzs7OztHQUtDO0lBRUQ7O0dBRUM7SUFFRDs7O0dBR0M7V0FmZUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy9zZWdtZW50LWNhY2hlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRW50cnkgcG9pbnQgdG8gdGhlIFNlZ21lbnQgQ2FjaGUgaW1wbGVtZW50YXRpb24uXG4gKlxuICogQWxsIGNvZGUgcmVsYXRlZCB0byB0aGUgU2VnbWVudCBDYWNoZSBsaXZlcyBgc2VnbWVudC1jYWNoZS1pbXBsYCBkaXJlY3RvcnkuXG4gKiBDYWxsZXJzIGFjY2VzcyBpdCB0aHJvdWdoIHRoaXMgaW5kaXJlY3Rpb24uXG4gKlxuICogVGhpcyBpcyB0byBlbnN1cmUgdGhlIGNvZGUgaXMgZGVhZCBjb2RlIGVsaW1pbmF0ZWQgZnJvbSB0aGUgYnVuZGxlIGlmIHRoZVxuICogZmxhZyBpcyBkaXNhYmxlZC5cbiAqXG4gKiBUT0RPOiBUaGlzIGlzIHN1cGVyIHRlZGlvdXMuIFNpbmNlIGV4cGVyaW1lbnRhbCBmbGFncyBhcmUgYW4gZXNzZW50aWFsIHBhcnRcbiAqIG9mIG91ciB3b3JrZmxvdywgd2Ugc2hvdWxkIGVzdGFibGlzaCBhIGJldHRlciBwYXR0ZXJuIGZvciBkZWFkIGNvZGVcbiAqIGVsaW1pbmF0aW9uLiBJZGVhbGx5IGl0IHdvdWxkIGJlIGRvbmUgYXQgdGhlIGJ1bmRsZXIgbGV2ZWwsIGxpa2UgaG93IFJlYWN0J3NcbiAqIGJ1aWxkIHByb2Nlc3Mgd29ya3MuIEluIHRoZSBSZWFjdCByZXBvLCB5b3UgZG9uJ3QgZXZlbiBuZWVkIHRvIGFkZCBhbnkgZXh0cmFcbiAqIGNvbmZpZ3VyYXRpb24gcGVyIGV4cGVyaW1lbnQg4oCUIGlmIHRoZSBjb2RlIGlzIG5vdCByZWFjaGFibGUsIGl0IGdldHMgc3RyaXBwZWRcbiAqIGZyb20gdGhlIGJ1aWxkIGF1dG9tYXRpY2FsbHkgYnkgUm9sbHVwLiBPciwgc2hvcnRlciB0ZXJtLCB3ZSBjb3VsZCBzdHViIG91dFxuICogZXhwZXJpbWVudGFsIG1vZHVsZXMgYXQgYnVpbGQgdGltZSBieSB1cGRhdGluZyB0aGUgYnVpbGQgY29uZmlnLCBpLmUuIGEgbW9yZVxuICogYXV0b21hdGVkIHZlcnNpb24gb2Ygd2hhdCBJJ20gZG9pbmcgbWFudWFsbHkgaW4gdGhpcyBmaWxlLlxuICovXG5cbmV4cG9ydCB0eXBlIHsgTmF2aWdhdGlvblJlc3VsdCB9IGZyb20gJy4vc2VnbWVudC1jYWNoZS1pbXBsL25hdmlnYXRpb24nXG5leHBvcnQgdHlwZSB7IFByZWZldGNoVGFzayB9IGZyb20gJy4vc2VnbWVudC1jYWNoZS1pbXBsL3NjaGVkdWxlcidcblxuY29uc3Qgbm90RW5hYmxlZDogYW55ID0gKCkgPT4ge1xuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ1NlZ21lbnQgQ2FjaGUgZXhwZXJpbWVudCBpcyBub3QgZW5hYmxlZC4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzLidcbiAgKVxufVxuXG5leHBvcnQgY29uc3QgcHJlZmV0Y2g6IHR5cGVvZiBpbXBvcnQoJy4vc2VnbWVudC1jYWNoZS1pbXBsL3ByZWZldGNoJykucHJlZmV0Y2ggPVxuICBwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEVcbiAgICA/IGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgcmVxdWlyZSgnLi9zZWdtZW50LWNhY2hlLWltcGwvcHJlZmV0Y2gnKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9wcmVmZXRjaCcpXG4gICAgICAgICkucHJlZmV0Y2goLi4uYXJncylcbiAgICAgIH1cbiAgICA6IG5vdEVuYWJsZWRcblxuZXhwb3J0IGNvbnN0IG5hdmlnYXRlOiB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9uYXZpZ2F0aW9uJykubmF2aWdhdGUgPVxuICBwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEVcbiAgICA/IGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgcmVxdWlyZSgnLi9zZWdtZW50LWNhY2hlLWltcGwvbmF2aWdhdGlvbicpIGFzIHR5cGVvZiBpbXBvcnQoJy4vc2VnbWVudC1jYWNoZS1pbXBsL25hdmlnYXRpb24nKVxuICAgICAgICApLm5hdmlnYXRlKC4uLmFyZ3MpXG4gICAgICB9XG4gICAgOiBub3RFbmFibGVkXG5cbmV4cG9ydCBjb25zdCByZXZhbGlkYXRlRW50aXJlQ2FjaGU6IHR5cGVvZiBpbXBvcnQoJy4vc2VnbWVudC1jYWNoZS1pbXBsL2NhY2hlJykucmV2YWxpZGF0ZUVudGlyZUNhY2hlID1cbiAgcHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFXG4gICAgPyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHJlcXVpcmUoJy4vc2VnbWVudC1jYWNoZS1pbXBsL2NhY2hlJykgYXMgdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvY2FjaGUnKVxuICAgICAgICApLnJldmFsaWRhdGVFbnRpcmVDYWNoZSguLi5hcmdzKVxuICAgICAgfVxuICAgIDogbm90RW5hYmxlZFxuXG5leHBvcnQgY29uc3QgZ2V0Q3VycmVudENhY2hlVmVyc2lvbjogdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvY2FjaGUnKS5nZXRDdXJyZW50Q2FjaGVWZXJzaW9uID1cbiAgcHJvY2Vzcy5lbnYuX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFXG4gICAgPyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHJlcXVpcmUoJy4vc2VnbWVudC1jYWNoZS1pbXBsL2NhY2hlJykgYXMgdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvY2FjaGUnKVxuICAgICAgICApLmdldEN1cnJlbnRDYWNoZVZlcnNpb24oLi4uYXJncylcbiAgICAgIH1cbiAgICA6IG5vdEVuYWJsZWRcblxuZXhwb3J0IGNvbnN0IHNjaGVkdWxlUHJlZmV0Y2hUYXNrOiB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9zY2hlZHVsZXInKS5zY2hlZHVsZVByZWZldGNoVGFzayA9XG4gIHByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRVxuICAgID8gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICByZXF1aXJlKCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9zY2hlZHVsZXInKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9zY2hlZHVsZXInKVxuICAgICAgICApLnNjaGVkdWxlUHJlZmV0Y2hUYXNrKC4uLmFyZ3MpXG4gICAgICB9XG4gICAgOiBub3RFbmFibGVkXG5cbmV4cG9ydCBjb25zdCBjYW5jZWxQcmVmZXRjaFRhc2s6IHR5cGVvZiBpbXBvcnQoJy4vc2VnbWVudC1jYWNoZS1pbXBsL3NjaGVkdWxlcicpLmNhbmNlbFByZWZldGNoVGFzayA9XG4gIHByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRVxuICAgID8gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICByZXF1aXJlKCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9zY2hlZHVsZXInKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9zY2hlZHVsZXInKVxuICAgICAgICApLmNhbmNlbFByZWZldGNoVGFzayguLi5hcmdzKVxuICAgICAgfVxuICAgIDogbm90RW5hYmxlZFxuXG5leHBvcnQgY29uc3QgcmVzY2hlZHVsZVByZWZldGNoVGFzazogdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvc2NoZWR1bGVyJykucmVzY2hlZHVsZVByZWZldGNoVGFzayA9XG4gIHByb2Nlc3MuZW52Ll9fTkVYVF9DTElFTlRfU0VHTUVOVF9DQUNIRVxuICAgID8gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICByZXF1aXJlKCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9zY2hlZHVsZXInKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3NlZ21lbnQtY2FjaGUtaW1wbC9zY2hlZHVsZXInKVxuICAgICAgICApLnJlc2NoZWR1bGVQcmVmZXRjaFRhc2soLi4uYXJncylcbiAgICAgIH1cbiAgICA6IG5vdEVuYWJsZWRcblxuZXhwb3J0IGNvbnN0IGlzUHJlZmV0Y2hUYXNrRGlydHk6IHR5cGVvZiBpbXBvcnQoJy4vc2VnbWVudC1jYWNoZS1pbXBsL3NjaGVkdWxlcicpLmlzUHJlZmV0Y2hUYXNrRGlydHkgPVxuICBwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEVcbiAgICA/IGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgcmVxdWlyZSgnLi9zZWdtZW50LWNhY2hlLWltcGwvc2NoZWR1bGVyJykgYXMgdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvc2NoZWR1bGVyJylcbiAgICAgICAgKS5pc1ByZWZldGNoVGFza0RpcnR5KC4uLmFyZ3MpXG4gICAgICB9XG4gICAgOiBub3RFbmFibGVkXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDYWNoZUtleTogdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvY2FjaGUta2V5JykuY3JlYXRlQ2FjaGVLZXkgPVxuICBwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1NFR01FTlRfQ0FDSEVcbiAgICA/IGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgcmVxdWlyZSgnLi9zZWdtZW50LWNhY2hlLWltcGwvY2FjaGUta2V5JykgYXMgdHlwZW9mIGltcG9ydCgnLi9zZWdtZW50LWNhY2hlLWltcGwvY2FjaGUta2V5JylcbiAgICAgICAgKS5jcmVhdGVDYWNoZUtleSguLi5hcmdzKVxuICAgICAgfVxuICAgIDogbm90RW5hYmxlZFxuXG4vKipcbiAqIEJlbG93IGFyZSBwdWJsaWMgY29uc3RhbnRzLiBUaGV5J3JlIHNtYWxsIGVub3VnaCB0aGF0IHdlIGRvbid0IG5lZWQgdG9cbiAqIERDRSB0aGVtLlxuICovXG5cbmV4cG9ydCBjb25zdCBlbnVtIE5hdmlnYXRpb25SZXN1bHRUYWcge1xuICBNUEEsXG4gIFN1Y2Nlc3MsXG4gIE5vT3AsXG4gIEFzeW5jLFxufVxuXG4vKipcbiAqIFRoZSBwcmlvcml0eSBvZiB0aGUgcHJlZmV0Y2ggdGFzay4gSGlnaGVyIG51bWJlcnMgYXJlIGhpZ2hlciBwcmlvcml0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gUHJlZmV0Y2hQcmlvcml0eSB7XG4gIC8qKlxuICAgKiBBc3NpZ25lZCB0byB0aGUgbW9zdCByZWNlbnRseSBob3ZlcmVkL3RvdWNoZWQgbGluay4gU3BlY2lhbCBuZXR3b3JrXG4gICAqIGJhbmR3aWR0aCBpcyByZXNlcnZlZCBmb3IgdGhpcyB0YXNrIG9ubHkuIFRoZXJlJ3Mgb25seSBldmVyIG9uZSBJbnRlbnQtXG4gICAqIHByaW9yaXR5IHRhc2sgYXQgYSB0aW1lOyB3aGVuIGEgbmV3IEludGVudCB0YXNrIGlzIHNjaGVkdWxlZCwgdGhlIHByZXZpb3VzXG4gICAqIG9uZSBpcyBidW1wZWQgZG93biB0byBEZWZhdWx0LlxuICAgKi9cbiAgSW50ZW50ID0gMixcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IHByaW9yaXR5IGZvciBwcmVmZXRjaCB0YXNrcy5cbiAgICovXG4gIERlZmF1bHQgPSAxLFxuICAvKipcbiAgICogQXNzaWduZWQgdG8gdGFza3Mgd2hlbiB0aGV5IHNwYXduIG5vbi1ibG9ja2luZyBiYWNrZ3JvdW5kIHdvcmssIGxpa2VcbiAgICogcmV2YWxpZGF0aW5nIGEgcGFydGlhbGx5IGNhY2hlZCBlbnRyeSB0byBzZWUgaWYgbW9yZSBkYXRhIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIEJhY2tncm91bmQgPSAwLFxufVxuIl0sIm5hbWVzIjpbIk5hdmlnYXRpb25SZXN1bHRUYWciLCJQcmVmZXRjaFByaW9yaXR5IiwiY2FuY2VsUHJlZmV0Y2hUYXNrIiwiY3JlYXRlQ2FjaGVLZXkiLCJnZXRDdXJyZW50Q2FjaGVWZXJzaW9uIiwiaXNQcmVmZXRjaFRhc2tEaXJ0eSIsIm5hdmlnYXRlIiwicHJlZmV0Y2giLCJyZXNjaGVkdWxlUHJlZmV0Y2hUYXNrIiwicmV2YWxpZGF0ZUVudGlyZUNhY2hlIiwic2NoZWR1bGVQcmVmZXRjaFRhc2siLCJub3RFbmFibGVkIiwiRXJyb3IiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0NMSUVOVF9TRUdNRU5UX0NBQ0hFIiwiYXJncyIsInJlcXVpcmUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/segment-cache.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js":
/*!*******************************************************************************!*\
!*** ./node_modules/next/dist/client/components/static-generation-bailout.js ***!
\*******************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n StaticGenBailoutError: function() {\n return StaticGenBailoutError;\n },\n isStaticGenBailoutError: function() {\n return isStaticGenBailoutError;\n }\n});\nconst NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT';\nclass StaticGenBailoutError extends Error {\n constructor(...args){\n super(...args), this.code = NEXT_STATIC_GEN_BAILOUT;\n }\n}\nfunction isStaticGenBailoutError(error) {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false;\n }\n return error.code === NEXT_STATIC_GEN_BAILOUT;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=static-generation-bailout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWFBLHFCQUFxQjtlQUFyQkE7O0lBSUdDLHVCQUF1QjtlQUF2QkE7OztBQU5oQixNQUFNQywwQkFBMEI7QUFFekIsTUFBTUYsOEJBQThCRzs7UUFBcEMscUJBQ1dDLElBQUFBLEdBQU9GOztBQUN6QjtBQUVPLFNBQVNELHdCQUNkSSxLQUFjO0lBRWQsSUFBSSxPQUFPQSxVQUFVLFlBQVlBLFVBQVUsUUFBUSxDQUFFLFdBQVVBLEtBQUFBLENBQUksRUFBSTtRQUNyRSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQSxNQUFNRCxJQUFJLEtBQUtGO0FBQ3hCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCA9ICdORVhUX1NUQVRJQ19HRU5fQkFJTE9VVCdcblxuZXhwb3J0IGNsYXNzIFN0YXRpY0dlbkJhaWxvdXRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGNvZGUgPSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gIGVycm9yOiB1bmtub3duXG4pOiBlcnJvciBpcyBTdGF0aWNHZW5CYWlsb3V0RXJyb3Ige1xuICBpZiAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fCBlcnJvciA9PT0gbnVsbCB8fCAhKCdjb2RlJyBpbiBlcnJvcikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnJvci5jb2RlID09PSBORVhUX1NUQVRJQ19HRU5fQkFJTE9VVFxufVxuIl0sIm5hbWVzIjpbIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsImlzU3RhdGljR2VuQmFpbG91dEVycm9yIiwiTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQiLCJFcnJvciIsImNvZGUiLCJlcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/unauthorized.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/client/components/unauthorized.js ***!
\******************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unauthorized\", ({\n enumerable: true,\n get: function() {\n return unauthorized;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\n// TODO: Add `unauthorized` docs\n/**\n * @experimental\n * This function allows you to render the [unauthorized.js file](https://nextjs.org/docs/app/api-reference/file-conventions/unauthorized)\n * within a route segment as well as inject a tag.\n *\n * `unauthorized()` can be used in\n * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),\n * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and\n * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).\n *\n *\n * Read more: [Next.js Docs: `unauthorized`](https://nextjs.org/docs/app/api-reference/functions/unauthorized)\n */ const DIGEST = \"\" + _httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE + \";401\";\nfunction unauthorized() {\n if (true) {\n throw Object.defineProperty(new Error(\"`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E411\",\n enumerable: false,\n configurable: true\n });\n }\n // eslint-disable-next-line no-throw-literal\n const error = Object.defineProperty(new Error(DIGEST), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = DIGEST;\n throw error;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unauthorized.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC5qcyIsIm1hcHBpbmdzIjoiOzs7O2dEQXNCZ0JBOzs7ZUFBQUE7OztnREFuQlQ7QUFFUCxnQ0FBZ0M7QUFDaEM7Ozs7Ozs7Ozs7OztDQVlDLEdBRUQsTUFBTUMsU0FBVSxLQUFFQyxvQkFBQUEsOEJBQThCLEdBQUM7QUFFMUMsU0FBU0Y7SUFDZCxJQUFJLElBQWdELEVBQUU7UUFDcEQsTUFBTSxxQkFFTCxDQUZLLElBQUlNLE1BQ1AsZ0hBREc7bUJBQUE7d0JBQUE7MEJBQUE7UUFFTjtJQUNGO0lBRUEsNENBQTRDO0lBQzVDLE1BQU1DLFFBQVEscUJBQWlCLENBQWpCLElBQUlELE1BQU1MLFNBQVY7ZUFBQTtvQkFBQTtzQkFBQTtJQUFnQjtJQUM1Qk0sTUFBa0NDLE1BQU0sR0FBR1A7SUFDN0MsTUFBTU07QUFDUiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUsXG4gIHR5cGUgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IsXG59IGZyb20gJy4vaHR0cC1hY2Nlc3MtZmFsbGJhY2svaHR0cC1hY2Nlc3MtZmFsbGJhY2snXG5cbi8vIFRPRE86IEFkZCBgdW5hdXRob3JpemVkYCBkb2NzXG4vKipcbiAqIEBleHBlcmltZW50YWxcbiAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byByZW5kZXIgdGhlIFt1bmF1dGhvcml6ZWQuanMgZmlsZV0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZmlsZS1jb252ZW50aW9ucy91bmF1dGhvcml6ZWQpXG4gKiB3aXRoaW4gYSByb3V0ZSBzZWdtZW50IGFzIHdlbGwgYXMgaW5qZWN0IGEgdGFnLlxuICpcbiAqIGB1bmF1dGhvcml6ZWQoKWAgY2FuIGJlIHVzZWQgaW5cbiAqIFtTZXJ2ZXIgQ29tcG9uZW50c10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzKSxcbiAqIFtSb3V0ZSBIYW5kbGVyc10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcm91dGluZy9yb3V0ZS1oYW5kbGVycyksIGFuZFxuICogW1NlcnZlciBBY3Rpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL3NlcnZlci1hY3Rpb25zLWFuZC1tdXRhdGlvbnMpLlxuICpcbiAqXG4gKiBSZWFkIG1vcmU6IFtOZXh0LmpzIERvY3M6IGB1bmF1dGhvcml6ZWRgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdW5hdXRob3JpemVkKVxuICovXG5cbmNvbnN0IERJR0VTVCA9IGAke0hUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERX07NDAxYFxuXG5leHBvcnQgZnVuY3Rpb24gdW5hdXRob3JpemVkKCk6IG5ldmVyIHtcbiAgaWYgKCFwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX0FVVEhfSU5URVJSVVBUUykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBcXGB1bmF1dGhvcml6ZWQoKVxcYCBpcyBleHBlcmltZW50YWwgYW5kIG9ubHkgYWxsb3dlZCB0byBiZSB1c2VkIHdoZW4gXFxgZXhwZXJpbWVudGFsLmF1dGhJbnRlcnJ1cHRzXFxgIGlzIGVuYWJsZWQuYFxuICAgIClcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10aHJvdy1saXRlcmFsXG4gIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKERJR0VTVCkgYXMgSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3JcbiAgOyhlcnJvciBhcyBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcikuZGlnZXN0ID0gRElHRVNUXG4gIHRocm93IGVycm9yXG59XG4iXSwibmFtZXMiOlsidW5hdXRob3JpemVkIiwiRElHRVNUIiwiSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9FWFBFUklNRU5UQUxfQVVUSF9JTlRFUlJVUFRTIiwiRXJyb3IiLCJlcnJvciIsImRpZ2VzdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unauthorized.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/unresolved-thenable.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/client/components/unresolved-thenable.js ***!
\*************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("/**\n * Create a \"Thenable\" that does not resolve. This is used to suspend indefinitely when data is not available yet.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unresolvedThenable\", ({\n enumerable: true,\n get: function() {\n return unresolvedThenable;\n }\n}));\nconst unresolvedThenable = {\n then: ()=>{}\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unresolved-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VucmVzb2x2ZWQtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7O0NBRUM7Ozs7c0RBQ1lBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHFCQUFxQjtJQUNoQ0MsTUFBTSxLQUFPO0FBQ2YiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvY29tcG9uZW50cy91bnJlc29sdmVkLXRoZW5hYmxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlIGEgXCJUaGVuYWJsZVwiIHRoYXQgZG9lcyBub3QgcmVzb2x2ZS4gVGhpcyBpcyB1c2VkIHRvIHN1c3BlbmQgaW5kZWZpbml0ZWx5IHdoZW4gZGF0YSBpcyBub3QgYXZhaWxhYmxlIHlldC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVucmVzb2x2ZWRUaGVuYWJsZSA9IHtcbiAgdGhlbjogKCkgPT4ge30sXG59IGFzIFByb21pc2VMaWtlPHZvaWQ+XG4iXSwibmFtZXMiOlsidW5yZXNvbHZlZFRoZW5hYmxlIiwidGhlbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unresolved-thenable.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/client/components/unstable-rethrow.js ***!
\**********************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/**\n * This function should be used to rethrow internal Next.js errors so that they can be handled by the framework.\n * When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling.\n * This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing.\n *\n * Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow)\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unstable_rethrow\", ({\n enumerable: true,\n get: function() {\n return unstable_rethrow;\n }\n}));\nconst unstable_rethrow = true ? (__webpack_require__(/*! ./unstable-rethrow.server */ \"(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.server.js\").unstable_rethrow) : 0;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unstable-rethrow.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3Vuc3RhYmxlLXJldGhyb3cuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztDQU1DOzs7O29EQUNZQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxtQkFDWCxLQUE2QixHQUV2QkUsc0pBQ2dCLEdBRWhCQSxDQUNnQiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9jb21wb25lbnRzL3Vuc3RhYmxlLXJldGhyb3cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIHRvIHJldGhyb3cgaW50ZXJuYWwgTmV4dC5qcyBlcnJvcnMgc28gdGhhdCB0aGV5IGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBmcmFtZXdvcmsuXG4gKiBXaGVuIHdyYXBwaW5nIGFuIEFQSSB0aGF0IHVzZXMgZXJyb3JzIHRvIGludGVycnVwdCBjb250cm9sIGZsb3csIHlvdSBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24gYmVmb3JlIHlvdSBkbyBhbnkgZXJyb3IgaGFuZGxpbmcuXG4gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0aHJvdyB0aGUgZXJyb3IgaWYgaXQgaXMgYSBOZXh0LmpzIGVycm9yIHNvIGl0IGNhbiBiZSBoYW5kbGVkLCBvdGhlcndpc2UgaXQgd2lsbCBkbyBub3RoaW5nLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYHVuc3RhYmxlX3JldGhyb3dgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdW5zdGFibGVfcmV0aHJvdylcbiAqL1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX3JldGhyb3cgPVxuICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJ1xuICAgID8gKFxuICAgICAgICByZXF1aXJlKCcuL3Vuc3RhYmxlLXJldGhyb3cuc2VydmVyJykgYXMgdHlwZW9mIGltcG9ydCgnLi91bnN0YWJsZS1yZXRocm93LnNlcnZlcicpXG4gICAgICApLnVuc3RhYmxlX3JldGhyb3dcbiAgICA6IChcbiAgICAgICAgcmVxdWlyZSgnLi91bnN0YWJsZS1yZXRocm93LmJyb3dzZXInKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3Vuc3RhYmxlLXJldGhyb3cuYnJvd3NlcicpXG4gICAgICApLnVuc3RhYmxlX3JldGhyb3dcbiJdLCJuYW1lcyI6WyJ1bnN0YWJsZV9yZXRocm93Iiwid2luZG93IiwicmVxdWlyZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.server.js":
/*!*****************************************************************************!*\
!*** ./node_modules/next/dist/client/components/unstable-rethrow.server.js ***!
\*****************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unstable_rethrow\", ({\n enumerable: true,\n get: function() {\n return unstable_rethrow;\n }\n}));\nconst _dynamicrenderingutils = __webpack_require__(/*! ../../server/dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _ispostpone = __webpack_require__(/*! ../../server/lib/router-utils/is-postpone */ \"(ssr)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _isnextroutererror = __webpack_require__(/*! ./is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../../server/app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _hooksservercontext = __webpack_require__(/*! ./hooks-server-context */ \"(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nfunction unstable_rethrow(error) {\n if ((0, _isnextroutererror.isNextRouterError)(error) || (0, _bailouttocsr.isBailoutToCSRError)(error) || (0, _hooksservercontext.isDynamicServerError)(error) || (0, _dynamicrendering.isDynamicPostpone)(error) || (0, _ispostpone.isPostpone)(error) || (0, _dynamicrenderingutils.isHangingPromiseRejectionError)(error)) {\n throw error;\n }\n if (error instanceof Error && 'cause' in error) {\n unstable_rethrow(error.cause);\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=unstable-rethrow.server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3Vuc3RhYmxlLXJldGhyb3cuc2VydmVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7b0RBT2dCQTs7O2VBQUFBOzs7bURBUCtCO3dDQUNwQjswQ0FDUzsrQ0FDRjs4Q0FDQTtnREFDRztBQUU5QixTQUFTQSxpQkFBaUJDLEtBQWM7SUFDN0MsSUFDRUMsQ0FBQUEsR0FBQUEsbUJBQUFBLGlCQUFBQSxFQUFrQkQsVUFDbEJFLENBQUFBLEdBQUFBLGNBQUFBLG1CQUFBQSxFQUFvQkYsVUFDcEJHLENBQUFBLEdBQUFBLG9CQUFBQSxvQkFBQUEsRUFBcUJILFVBQ3JCSSxDQUFBQSxHQUFBQSxrQkFBQUEsaUJBQUFBLEVBQWtCSixVQUNsQkssQ0FBQUEsR0FBQUEsWUFBQUEsVUFBQUEsRUFBV0wsVUFDWE0sQ0FBQUEsR0FBQUEsdUJBQUFBLDhCQUFBQSxFQUErQk4sUUFDL0I7UUFDQSxNQUFNQTtJQUNSO0lBRUEsSUFBSUEsaUJBQWlCTyxTQUFTLFdBQVdQLE9BQU87UUFDOUNELGlCQUFpQkMsTUFBTVEsS0FBSztJQUM5QjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvdW5zdGFibGUtcmV0aHJvdy5zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vc2VydmVyL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzJ1xuaW1wb3J0IHsgaXNQb3N0cG9uZSB9IGZyb20gJy4uLy4uL3NlcnZlci9saWIvcm91dGVyLXV0aWxzL2lzLXBvc3Rwb25lJ1xuaW1wb3J0IHsgaXNCYWlsb3V0VG9DU1JFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyJ1xuaW1wb3J0IHsgaXNOZXh0Um91dGVyRXJyb3IgfSBmcm9tICcuL2lzLW5leHQtcm91dGVyLWVycm9yJ1xuaW1wb3J0IHsgaXNEeW5hbWljUG9zdHBvbmUgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci9keW5hbWljLXJlbmRlcmluZydcbmltcG9ydCB7IGlzRHluYW1pY1NlcnZlckVycm9yIH0gZnJvbSAnLi9ob29rcy1zZXJ2ZXItY29udGV4dCdcblxuZXhwb3J0IGZ1bmN0aW9uIHVuc3RhYmxlX3JldGhyb3coZXJyb3I6IHVua25vd24pOiB2b2lkIHtcbiAgaWYgKFxuICAgIGlzTmV4dFJvdXRlckVycm9yKGVycm9yKSB8fFxuICAgIGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyb3IpIHx8XG4gICAgaXNEeW5hbWljU2VydmVyRXJyb3IoZXJyb3IpIHx8XG4gICAgaXNEeW5hbWljUG9zdHBvbmUoZXJyb3IpIHx8XG4gICAgaXNQb3N0cG9uZShlcnJvcikgfHxcbiAgICBpc0hhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3IoZXJyb3IpXG4gICkge1xuICAgIHRocm93IGVycm9yXG4gIH1cblxuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiAnY2F1c2UnIGluIGVycm9yKSB7XG4gICAgdW5zdGFibGVfcmV0aHJvdyhlcnJvci5jYXVzZSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbInVuc3RhYmxlX3JldGhyb3ciLCJlcnJvciIsImlzTmV4dFJvdXRlckVycm9yIiwiaXNCYWlsb3V0VG9DU1JFcnJvciIsImlzRHluYW1pY1NlcnZlckVycm9yIiwiaXNEeW5hbWljUG9zdHBvbmUiLCJpc1Bvc3Rwb25lIiwiaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yIiwiRXJyb3IiLCJjYXVzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/unstable-rethrow.server.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/components/use-action-queue.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/client/components/use-action-queue.js ***!
\**********************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n dispatchAppRouterAction: function() {\n return dispatchAppRouterAction;\n },\n useActionQueue: function() {\n return useActionQueue;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _isthenable = __webpack_require__(/*! ../../shared/lib/is-thenable */ \"(ssr)/./node_modules/next/dist/shared/lib/is-thenable.js\");\n// The app router state lives outside of React, so we can import the dispatch\n// method directly wherever we need it, rather than passing it around via props\n// or context.\nlet dispatch = null;\nfunction dispatchAppRouterAction(action) {\n if (dispatch === null) {\n throw Object.defineProperty(new Error('Internal Next.js error: Router action dispatched before initialization.'), \"__NEXT_ERROR_CODE\", {\n value: \"E668\",\n enumerable: false,\n configurable: true\n });\n }\n dispatch(action);\n}\nfunction useActionQueue(actionQueue) {\n const [state, setState] = _react.default.useState(actionQueue.state);\n // Because of a known issue that requires to decode Flight streams inside the\n // render phase, we have to be a bit clever and assign the dispatch method to\n // a module-level variable upon initialization. The useState hook in this\n // module only exists to synchronize state that lives outside of React.\n // Ideally, what we'd do instead is pass the state as a prop to root.render;\n // this is conceptually how we're modeling the app router state, despite the\n // weird implementation details.\n if (true) {\n const { useAppDevRenderingIndicator } = __webpack_require__(/*! ../../next-devtools/userspace/use-app-dev-rendering-indicator */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js\");\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const appDevRenderingIndicator = useAppDevRenderingIndicator();\n dispatch = (action)=>{\n appDevRenderingIndicator(()=>{\n actionQueue.dispatch(action, setState);\n });\n };\n } else {}\n return (0, _isthenable.isThenable)(state) ? (0, _react.use)(state) : state;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-action-queue.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VzZS1hY3Rpb24tcXVldWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBZWdCQSx1QkFBdUI7ZUFBdkJBOztJQVNBQyxjQUFjO2VBQWRBOzs7OzZFQXZCVzt3Q0FDQTtBQVEzQiw2RUFBNkU7QUFDN0UsK0VBQStFO0FBQy9FLGNBQWM7QUFDZCxJQUFJQyxXQUE0QztBQUV6QyxTQUFTRix3QkFBd0JHLE1BQXNCO0lBQzVELElBQUlELGFBQWEsTUFBTTtRQUNyQixNQUFNLHFCQUVMLENBRkssSUFBSUUsTUFDUiw0RUFESTttQkFBQTt3QkFBQTswQkFBQTtRQUVOO0lBQ0Y7SUFDQUYsU0FBU0M7QUFDWDtBQUVPLFNBQVNGLGVBQ2RJLFdBQWlDO0lBRWpDLE1BQU0sQ0FBQ0MsT0FBT0MsU0FBUyxHQUFHQyxPQUFBQSxPQUFLLENBQUNDLFFBQVEsQ0FBZUosWUFBWUMsS0FBSztJQUV4RSw2RUFBNkU7SUFDN0UsNkVBQTZFO0lBQzdFLHlFQUF5RTtJQUN6RSx1RUFBdUU7SUFDdkUsNEVBQTRFO0lBQzVFLDRFQUE0RTtJQUM1RSxnQ0FBZ0M7SUFDaEMsSUFBSUksSUFBb0IsRUFBbUI7UUFDekMsTUFBTSxFQUFFRywyQkFBMkIsRUFBRSxHQUNuQ0MsbUJBQU9BLENBQUMsZ0tBQStEO1FBQ3pFLHNEQUFzRDtRQUN0RCxNQUFNQywyQkFBMkJGO1FBRWpDWCxXQUFXLENBQUNDO1lBQ1ZZLHlCQUF5QjtnQkFDdkJWLFlBQVlILFFBQVEsQ0FBQ0MsUUFBUUk7WUFDL0I7UUFDRjtJQUNGLE9BQU8sRUFHTjtJQUVELE9BQU9TLENBQUFBLEdBQUFBLFlBQUFBLFVBQUFBLEVBQVdWLFNBQVNXLENBQUFBLEdBQUFBLE9BQUFBLEdBQUFBLEVBQUlYLFNBQVNBO0FBQzFDIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2NvbXBvbmVudHMvdXNlLWFjdGlvbi1xdWV1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc3BhdGNoIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3QsIHsgdXNlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBpc1RoZW5hYmxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9pcy10aGVuYWJsZSdcbmltcG9ydCB0eXBlIHsgQXBwUm91dGVyQWN0aW9uUXVldWUgfSBmcm9tICcuL2FwcC1yb3V0ZXItaW5zdGFuY2UnXG5pbXBvcnQgdHlwZSB7XG4gIEFwcFJvdXRlclN0YXRlLFxuICBSZWR1Y2VyQWN0aW9ucyxcbiAgUmVkdWNlclN0YXRlLFxufSBmcm9tICcuL3JvdXRlci1yZWR1Y2VyL3JvdXRlci1yZWR1Y2VyLXR5cGVzJ1xuXG4vLyBUaGUgYXBwIHJvdXRlciBzdGF0ZSBsaXZlcyBvdXRzaWRlIG9mIFJlYWN0LCBzbyB3ZSBjYW4gaW1wb3J0IHRoZSBkaXNwYXRjaFxuLy8gbWV0aG9kIGRpcmVjdGx5IHdoZXJldmVyIHdlIG5lZWQgaXQsIHJhdGhlciB0aGFuIHBhc3NpbmcgaXQgYXJvdW5kIHZpYSBwcm9wc1xuLy8gb3IgY29udGV4dC5cbmxldCBkaXNwYXRjaDogRGlzcGF0Y2g8UmVkdWNlckFjdGlvbnM+IHwgbnVsbCA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKGFjdGlvbjogUmVkdWNlckFjdGlvbnMpIHtcbiAgaWYgKGRpc3BhdGNoID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0ludGVybmFsIE5leHQuanMgZXJyb3I6IFJvdXRlciBhY3Rpb24gZGlzcGF0Y2hlZCBiZWZvcmUgaW5pdGlhbGl6YXRpb24uJ1xuICAgIClcbiAgfVxuICBkaXNwYXRjaChhY3Rpb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VBY3Rpb25RdWV1ZShcbiAgYWN0aW9uUXVldWU6IEFwcFJvdXRlckFjdGlvblF1ZXVlXG4pOiBBcHBSb3V0ZXJTdGF0ZSB7XG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVdID0gUmVhY3QudXNlU3RhdGU8UmVkdWNlclN0YXRlPihhY3Rpb25RdWV1ZS5zdGF0ZSlcblxuICAvLyBCZWNhdXNlIG9mIGEga25vd24gaXNzdWUgdGhhdCByZXF1aXJlcyB0byBkZWNvZGUgRmxpZ2h0IHN0cmVhbXMgaW5zaWRlIHRoZVxuICAvLyByZW5kZXIgcGhhc2UsIHdlIGhhdmUgdG8gYmUgYSBiaXQgY2xldmVyIGFuZCBhc3NpZ24gdGhlIGRpc3BhdGNoIG1ldGhvZCB0b1xuICAvLyBhIG1vZHVsZS1sZXZlbCB2YXJpYWJsZSB1cG9uIGluaXRpYWxpemF0aW9uLiBUaGUgdXNlU3RhdGUgaG9vayBpbiB0aGlzXG4gIC8vIG1vZHVsZSBvbmx5IGV4aXN0cyB0byBzeW5jaHJvbml6ZSBzdGF0ZSB0aGF0IGxpdmVzIG91dHNpZGUgb2YgUmVhY3QuXG4gIC8vIElkZWFsbHksIHdoYXQgd2UnZCBkbyBpbnN0ZWFkIGlzIHBhc3MgdGhlIHN0YXRlIGFzIGEgcHJvcCB0byByb290LnJlbmRlcjtcbiAgLy8gdGhpcyBpcyBjb25jZXB0dWFsbHkgaG93IHdlJ3JlIG1vZGVsaW5nIHRoZSBhcHAgcm91dGVyIHN0YXRlLCBkZXNwaXRlIHRoZVxuICAvLyB3ZWlyZCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLlxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNvbnN0IHsgdXNlQXBwRGV2UmVuZGVyaW5nSW5kaWNhdG9yIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvdXNlLWFwcC1kZXYtcmVuZGVyaW5nLWluZGljYXRvcicpIGFzIHR5cGVvZiBpbXBvcnQoJy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL3VzZS1hcHAtZGV2LXJlbmRlcmluZy1pbmRpY2F0b3InKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgIGNvbnN0IGFwcERldlJlbmRlcmluZ0luZGljYXRvciA9IHVzZUFwcERldlJlbmRlcmluZ0luZGljYXRvcigpXG5cbiAgICBkaXNwYXRjaCA9IChhY3Rpb246IFJlZHVjZXJBY3Rpb25zKSA9PiB7XG4gICAgICBhcHBEZXZSZW5kZXJpbmdJbmRpY2F0b3IoKCkgPT4ge1xuICAgICAgICBhY3Rpb25RdWV1ZS5kaXNwYXRjaChhY3Rpb24sIHNldFN0YXRlKVxuICAgICAgfSlcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZGlzcGF0Y2ggPSAoYWN0aW9uOiBSZWR1Y2VyQWN0aW9ucykgPT5cbiAgICAgIGFjdGlvblF1ZXVlLmRpc3BhdGNoKGFjdGlvbiwgc2V0U3RhdGUpXG4gIH1cblxuICByZXR1cm4gaXNUaGVuYWJsZShzdGF0ZSkgPyB1c2Uoc3RhdGUpIDogc3RhdGVcbn1cbiJdLCJuYW1lcyI6WyJkaXNwYXRjaEFwcFJvdXRlckFjdGlvbiIsInVzZUFjdGlvblF1ZXVlIiwiZGlzcGF0Y2giLCJhY3Rpb24iLCJFcnJvciIsImFjdGlvblF1ZXVlIiwic3RhdGUiLCJzZXRTdGF0ZSIsIlJlYWN0IiwidXNlU3RhdGUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJ1c2VBcHBEZXZSZW5kZXJpbmdJbmRpY2F0b3IiLCJyZXF1aXJlIiwiYXBwRGV2UmVuZGVyaW5nSW5kaWNhdG9yIiwiaXNUaGVuYWJsZSIsInVzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/components/use-action-queue.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js":
/*!********************************************************************************!*\
!*** ./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js ***!
\********************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* module decorator */ module = __webpack_require__.nmd(module);\n/// <reference types=\"webpack/module.d.ts\" />\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return HotReload;\n },\n waitForWebpackRuntimeHotUpdate: function() {\n return waitForWebpackRuntimeHotUpdate;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\"));\nconst _formatwebpackmessages = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../shared/lib/format-webpack-messages */ \"(ssr)/./node_modules/next/dist/shared/lib/format-webpack-messages.js\"));\nconst _navigation = __webpack_require__(/*! ../../../components/navigation */ \"(ssr)/./node_modules/next/dist/client/components/navigation.js\");\nconst _shared = __webpack_require__(/*! ../shared */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/shared.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst _replayssronlyerrors = __webpack_require__(/*! ../../../../next-devtools/userspace/app/errors/replay-ssr-only-errors */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js\");\nconst _appdevoverlayerrorboundary = __webpack_require__(/*! ../../../../next-devtools/userspace/app/app-dev-overlay-error-boundary */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js\");\nconst _useerrorhandler = __webpack_require__(/*! ../../../../next-devtools/userspace/app/errors/use-error-handler */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ../../runtime-error-handler */ \"(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js\");\nconst _usewebsocket = __webpack_require__(/*! ./use-websocket */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js\");\nconst _hotreloadertypes = __webpack_require__(/*! ../../../../server/dev/hot-reloader-types */ \"(ssr)/./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nconst _navigationuntracked = __webpack_require__(/*! ../../../components/navigation-untracked */ \"(ssr)/./node_modules/next/dist/client/components/navigation-untracked.js\");\nconst _reporthmrlatency = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../report-hmr-latency */ \"(ssr)/./node_modules/next/dist/client/dev/report-hmr-latency.js\"));\nconst _turbopackhotreloadercommon = __webpack_require__(/*! ../turbopack-hot-reloader-common */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js\");\nconst _approuterheaders = __webpack_require__(/*! ../../../components/app-router-headers */ \"(ssr)/./node_modules/next/dist/client/components/app-router-headers.js\");\nconst _useforwardconsolelog = __webpack_require__(/*! ../../../../next-devtools/userspace/app/errors/use-forward-console-log */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js\");\nlet mostRecentCompilationHash = null;\nlet __nextDevClientId = Math.round(Math.random() * 100 + Date.now());\nlet reloading = false;\nlet webpackStartMsSinceEpoch = null;\nconst turbopackHmr = false ? 0 : null;\nlet pendingHotUpdateWebpack = Promise.resolve();\nlet resolvePendingHotUpdateWebpack = ()=>{};\nfunction setPendingHotUpdateWebpack() {\n pendingHotUpdateWebpack = new Promise((resolve)=>{\n resolvePendingHotUpdateWebpack = ()=>{\n resolve();\n };\n });\n}\nfunction waitForWebpackRuntimeHotUpdate() {\n return pendingHotUpdateWebpack;\n}\n// There is a newer version of the code available.\nfunction handleAvailableHash(hash) {\n // Update last known compilation hash.\n mostRecentCompilationHash = hash;\n}\n/**\n * Is there a newer version of this code available?\n * For webpack: Check if the hash changed compared to __webpack_hash__\n * For Turbopack: Always true because it doesn't have __webpack_hash__\n */ function isUpdateAvailable() {\n if (false) {}\n /* globals __webpack_hash__ */ // __webpack_hash__ is the hash of the current compilation.\n // It's a global variable injected by Webpack.\n return mostRecentCompilationHash !== __webpack_require__.h();\n}\n// Webpack disallows updates in other states.\nfunction canApplyUpdates() {\n return module.hot.status() === 'idle';\n}\nfunction afterApplyUpdates(fn) {\n if (canApplyUpdates()) {\n fn();\n } else {\n function handler(status) {\n if (status === 'idle') {\n module.hot.removeStatusHandler(handler);\n fn();\n }\n }\n module.hot.addStatusHandler(handler);\n }\n}\nfunction performFullReload(err, sendMessage) {\n const stackTrace = err && (err.stack && err.stack.split('\\n').slice(0, 5).join('\\n') || err.message || err + '');\n sendMessage(JSON.stringify({\n event: 'client-full-reload',\n stackTrace,\n hadRuntimeError: !!_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError,\n dependencyChain: err ? err.dependencyChain : undefined\n }));\n if (reloading) return;\n reloading = true;\n window.location.reload();\n}\n// Attempt to update code on the fly, fall back to a hard reload.\nfunction tryApplyUpdatesWebpack(sendMessage) {\n if (!isUpdateAvailable() || !canApplyUpdates()) {\n resolvePendingHotUpdateWebpack();\n _nextdevtools.dispatcher.onBuildOk();\n (0, _reporthmrlatency.default)(sendMessage, [], webpackStartMsSinceEpoch, Date.now());\n return;\n }\n function handleApplyUpdates(err, updatedModules) {\n if (err || _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError || updatedModules == null) {\n if (err) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD);\n } else if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n }\n performFullReload(err, sendMessage);\n return;\n }\n _nextdevtools.dispatcher.onBuildOk();\n if (isUpdateAvailable()) {\n // While we were updating, there was a new update! Do it again.\n tryApplyUpdatesWebpack(sendMessage);\n return;\n }\n _nextdevtools.dispatcher.onRefresh();\n resolvePendingHotUpdateWebpack();\n (0, _reporthmrlatency.default)(sendMessage, updatedModules, webpackStartMsSinceEpoch, Date.now());\n if (false) {}\n }\n // https://webpack.js.org/api/hot-module-replacement/#check\n module.hot.check(/* autoApply */ false).then((updatedModules)=>{\n if (updatedModules == null) {\n return null;\n }\n // We should always handle an update, even if updatedModules is empty (but\n // non-null) for any reason. That's what webpack would normally do:\n // https://github.com/webpack/webpack/blob/3aa6b6bc3a64/lib/hmr/HotModuleReplacement.runtime.js#L296-L298\n _nextdevtools.dispatcher.onBeforeRefresh();\n // https://webpack.js.org/api/hot-module-replacement/#apply\n return module.hot.apply();\n }).then((updatedModules)=>{\n handleApplyUpdates(null, updatedModules);\n }, (err)=>{\n handleApplyUpdates(err, null);\n });\n}\n/** Handles messages from the server for the App Router. */ function processMessage(obj, sendMessage, processTurbopackMessage, router, appIsrManifestRef, pathnameRef) {\n if (!('action' in obj)) {\n return;\n }\n function handleErrors(errors) {\n // \"Massage\" webpack messages.\n const formatted = (0, _formatwebpackmessages.default)({\n errors: errors,\n warnings: []\n });\n // Only show the first error.\n _nextdevtools.dispatcher.onBuildError(formatted.errors[0]);\n // Also log them to the console.\n for(let i = 0; i < formatted.errors.length; i++){\n console.error((0, _stripansi.default)(formatted.errors[i]));\n }\n // Do not attempt to reload now.\n // We will reload on next success instead.\n if (false) {}\n }\n function handleHotUpdate() {\n if (false) {} else {\n tryApplyUpdatesWebpack(sendMessage);\n }\n }\n switch(obj.action){\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.ISR_MANIFEST:\n {\n if (true) {\n if (appIsrManifestRef) {\n appIsrManifestRef.current = obj.data;\n // handle initial status on receiving manifest\n // navigation is handled in useEffect for pathname changes\n // as we'll receive the updated manifest before usePathname\n // triggers for new value\n if (pathnameRef.current in obj.data) {\n _nextdevtools.dispatcher.onStaticIndicator(true);\n } else {\n _nextdevtools.dispatcher.onStaticIndicator(false);\n }\n }\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILDING:\n {\n _nextdevtools.dispatcher.buildingIndicatorShow();\n if (false) {} else {\n webpackStartMsSinceEpoch = Date.now();\n setPendingHotUpdateWebpack();\n console.log('[Fast Refresh] rebuilding');\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILT:\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SYNC:\n {\n _nextdevtools.dispatcher.buildingIndicatorHide();\n if (obj.hash) {\n handleAvailableHash(obj.hash);\n }\n const { errors, warnings } = obj;\n // Is undefined when it's a 'built' event\n if ('versionInfo' in obj) _nextdevtools.dispatcher.onVersionInfo(obj.versionInfo);\n if ('debug' in obj && obj.debug) _nextdevtools.dispatcher.onDebugInfo(obj.debug);\n if ('devIndicator' in obj) _nextdevtools.dispatcher.onDevIndicator(obj.devIndicator);\n const hasErrors = Boolean(errors && errors.length);\n // Compilation with errors (e.g. syntax error or missing modules).\n if (hasErrors) {\n sendMessage(JSON.stringify({\n event: 'client-error',\n errorCount: errors.length,\n clientId: __nextDevClientId\n }));\n handleErrors(errors);\n return;\n }\n const hasWarnings = Boolean(warnings && warnings.length);\n if (hasWarnings) {\n sendMessage(JSON.stringify({\n event: 'client-warning',\n warningCount: warnings.length,\n clientId: __nextDevClientId\n }));\n // Print warnings to the console.\n const formattedMessages = (0, _formatwebpackmessages.default)({\n warnings: warnings,\n errors: []\n });\n for(let i = 0; i < formattedMessages.warnings.length; i++){\n if (i === 5) {\n console.warn('There were more warnings in other files.\\n' + 'You can find a complete log in the terminal.');\n break;\n }\n console.warn((0, _stripansi.default)(formattedMessages.warnings[i]));\n }\n // No early return here as we need to apply modules in the same way between warnings only and compiles without warnings\n }\n sendMessage(JSON.stringify({\n event: 'client-success',\n clientId: __nextDevClientId\n }));\n if (obj.action === _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILT) {\n handleHotUpdate();\n }\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED:\n {\n processTurbopackMessage({\n type: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED,\n data: {\n sessionId: obj.data.sessionId\n }\n });\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE:\n {\n turbopackHmr.onTurbopackMessage(obj);\n _nextdevtools.dispatcher.onBeforeRefresh();\n processTurbopackMessage({\n type: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE,\n data: obj.data\n });\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n performFullReload(null, sendMessage);\n }\n _nextdevtools.dispatcher.onRefresh();\n break;\n }\n // TODO-APP: make server component change more granular\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES:\n {\n turbopackHmr == null ? void 0 : turbopackHmr.onServerComponentChanges();\n sendMessage(JSON.stringify({\n event: 'server-component-reload-page',\n clientId: __nextDevClientId,\n hash: obj.hash\n }));\n // Store the latest hash in a session cookie so that it's sent back to the\n // server with any subsequent requests.\n document.cookie = _approuterheaders.NEXT_HMR_REFRESH_HASH_COOKIE + \"=\" + obj.hash;\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n if (reloading) return;\n reloading = true;\n return window.location.reload();\n }\n (0, _react.startTransition)(()=>{\n router.hmrRefresh();\n _nextdevtools.dispatcher.onRefresh();\n });\n if (false) {}\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE:\n {\n turbopackHmr == null ? void 0 : turbopackHmr.onReloadPage();\n sendMessage(JSON.stringify({\n event: 'client-reload-page',\n clientId: __nextDevClientId\n }));\n if (reloading) return;\n reloading = true;\n return window.location.reload();\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.ADDED_PAGE:\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.REMOVED_PAGE:\n {\n turbopackHmr == null ? void 0 : turbopackHmr.onPageAddRemove();\n // TODO-APP: potentially only refresh if the currently viewed page was added/removed.\n return router.hmrRefresh();\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ERROR:\n {\n const { errorJSON } = obj;\n if (errorJSON) {\n const { message, stack } = JSON.parse(errorJSON);\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = stack;\n handleErrors([\n error\n ]);\n }\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE:\n {\n return;\n }\n default:\n {}\n }\n}\nfunction HotReload(param) {\n let { assetPrefix, children, globalError } = param;\n (0, _useerrorhandler.useErrorHandler)(_nextdevtools.dispatcher.onUnhandledError, _nextdevtools.dispatcher.onUnhandledRejection);\n const webSocketRef = (0, _usewebsocket.useWebsocket)(assetPrefix);\n (0, _usewebsocket.useWebsocketPing)(webSocketRef);\n const sendMessage = (0, _usewebsocket.useSendMessage)(webSocketRef);\n (0, _useforwardconsolelog.useForwardConsoleLog)(webSocketRef);\n const processTurbopackMessage = (0, _usewebsocket.useTurbopack)(sendMessage, (err)=>performFullReload(err, sendMessage));\n const router = (0, _navigation.useRouter)();\n // We don't want access of the pathname for the dev tools to trigger a dynamic\n // access (as the dev overlay will never be present in production).\n const pathname = (0, _navigationuntracked.useUntrackedPathname)();\n const appIsrManifestRef = (0, _react.useRef)({});\n const pathnameRef = (0, _react.useRef)(pathname);\n if (true) {\n // this conditional is only for dead-code elimination which\n // isn't a runtime conditional only build-time so ignore hooks rule\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, _react.useEffect)(()=>{\n pathnameRef.current = pathname;\n const appIsrManifest = appIsrManifestRef.current;\n if (appIsrManifest) {\n if (pathname && pathname in appIsrManifest) {\n try {\n _nextdevtools.dispatcher.onStaticIndicator(true);\n } catch (reason) {\n let message = '';\n if (reason instanceof DOMException) {\n var _reason_stack;\n // Most likely a SecurityError, because of an unavailable localStorage\n message = (_reason_stack = reason.stack) != null ? _reason_stack : reason.message;\n } else if (reason instanceof Error) {\n var _reason_stack1;\n message = 'Error: ' + reason.message + '\\n' + ((_reason_stack1 = reason.stack) != null ? _reason_stack1 : '');\n } else {\n message = 'Unexpected Exception: ' + reason;\n }\n console.warn('[HMR] ' + message);\n }\n } else {\n _nextdevtools.dispatcher.onStaticIndicator(false);\n }\n }\n }, [\n pathname\n ]);\n }\n (0, _react.useEffect)(()=>{\n const websocket = webSocketRef.current;\n if (!websocket) return;\n const handler = (event)=>{\n try {\n const obj = JSON.parse(event.data);\n processMessage(obj, sendMessage, processTurbopackMessage, router, appIsrManifestRef, pathnameRef);\n } catch (err) {\n (0, _shared.reportInvalidHmrMessage)(event, err);\n }\n };\n websocket.addEventListener('message', handler);\n return ()=>websocket.removeEventListener('message', handler);\n }, [\n sendMessage,\n router,\n webSocketRef,\n processTurbopackMessage,\n appIsrManifestRef\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_appdevoverlayerrorboundary.AppDevOverlayErrorBoundary, {\n globalError: globalError,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_replayssronlyerrors.ReplaySsrOnlyErrors, {\n onBlockingError: _nextdevtools.dispatcher.openErrorOverlay\n }),\n children\n ]\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hot-reloader-app.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL2FwcC9ob3QtcmVsb2FkZXItYXBwLmpzIiwibWFwcGluZ3MiOiI7QUFBQSw2Q0FBNkM7Ozs7Ozs7Ozs7Ozs7SUErYjdDLE9BaUdDO2VBakd1QkE7O0lBMVlSQyw4QkFBOEI7ZUFBOUJBOzs7OzttQ0FsRG1DO2dGQUM3Qjs0RkFDWTt3Q0FDUjtvQ0FLbkI7MENBQ29CO2lEQUNTO3dEQUNPOzZDQUNYO2lEQUNJOzBDQU03Qjs4Q0FDcUM7aURBS1A7dUZBQ1I7d0RBQ0E7OENBQ2dCO2tEQUVSO0FBRXJDLElBQUlDLDRCQUFpQztBQUNyQyxJQUFJQyxvQkFBb0JDLEtBQUtDLEtBQUssQ0FBQ0QsS0FBS0UsTUFBTSxLQUFLLE1BQU1DLEtBQUtDLEdBQUc7QUFDakUsSUFBSUMsWUFBWTtBQUNoQixJQUFJQywyQkFBMEM7QUFDOUMsTUFBTUMsZUFBb0NDLE1BQXFCLEdBQzNELENBQWtCLEdBQ2xCO0FBRUosSUFBSUksMEJBQTBCQyxRQUFRQyxPQUFPO0FBQzdDLElBQUlDLGlDQUE2QyxLQUFPO0FBQ3hELFNBQVNDO0lBQ1BKLDBCQUEwQixJQUFJQyxRQUFRLENBQUNDO1FBQ3JDQyxpQ0FBaUM7WUFDL0JEO1FBQ0Y7SUFDRjtBQUNGO0FBRU8sU0FBU2pCO0lBQ2QsT0FBT2U7QUFDVDtBQUVBLGtEQUFrRDtBQUNsRCxTQUFTSyxvQkFBb0JDLElBQVk7SUFDdkMsc0NBQXNDO0lBQ3RDcEIsNEJBQTRCb0I7QUFDOUI7QUFFQTs7OztDQUlDLEdBQ0QsU0FBU0M7SUFDUCxJQUFJWCxLQUFxQixFQUFFLEVBRTFCO0lBRUQsNEJBQTRCLEdBQzVCLDJEQUEyRDtJQUMzRCw4Q0FBOEM7SUFDOUMsT0FBT1YsOEJBQThCc0IsdUJBQWdCQTtBQUN2RDtBQUVBLDZDQUE2QztBQUM3QyxTQUFTQztJQUNQLE9BQU9DLE9BQU9DLEdBQUcsQ0FBQ0MsTUFBTSxPQUFPO0FBQ2pDO0FBQ0EsU0FBU0Ms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QUM7d0JBQ2xFLE9BQU87NEJBQ0x0SCxVQUFVLDJCQUEyQnNIO3dCQUN2Qzt3QkFFQXJHLFFBQVFDLElBQUksQ0FBQyxXQUFXbEI7b0JBQzFCO2dCQUNGLE9BQU87b0JBQ0xZLGNBQUFBLFVBQVUsQ0FBQzZDLGlCQUFpQixDQUFDO2dCQUMvQjtZQUNGO1FBQ0YsR0FBRztZQUFDd0Q7U0FBUztJQUNmO0lBRUFHLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixNQUFNSSxZQUFZZCxhQUFhbkQsT0FBTztRQUN0QyxJQUFJLENBQUNpRSxXQUFXO1FBRWhCLE1BQU1uSSxVQUFVLENBQUNjO1lBQ2YsSUFBSTtnQkFDRixNQUFNMkIsTUFBTTdCLEtBQUtnRyxLQUFLLENBQUM5RixNQUFNcUQsSUFBSTtnQkFDakMzQixlQUNFQyxLQUNBcEMsYUFDQXFDLHlCQUNBQyxRQUNBQyxtQkFDQUM7WUFFSixFQUFFLE9BQU96QyxLQUFjO2dCQUNyQmdJLENBQUFBLEdBQUFBLFFBQUFBLHVCQUFBQSxFQUF3QnRILE9BQU9WO1lBQ2pDO1FBQ0Y7UUFFQStILFVBQVVFLGdCQUFnQixDQUFDLFdBQVdySTtRQUN0QyxPQUFPLElBQU1tSSxVQUFVRyxtQkFBbUIsQ0FBQyxXQUFXdEk7SUFDeEQsR0FBRztRQUNESztRQUNBc0M7UUFDQTBFO1FBQ0EzRTtRQUNBRTtLQUNEO0lBQ0QsT0FDRSxXQURGLEdBQ0Usc0JBQUMyRiw0QkFBQUEsMEJBQTBCO1FBQUN0QixhQUFhQTs7MEJBQ3ZDLHFCQUFDdUIscUJBQUFBLG1CQUFtQjtnQkFBQ0MsaUJBQWlCbEgsY0FBQUEsVUFBVSxDQUFDbUgsZ0JBQWdCOztZQUNoRTFCOzs7QUFHUCIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvZGV2L2hvdC1yZWxvYWRlci9hcHAvaG90LXJlbG9hZGVyLWFwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ3ZWJwYWNrL21vZHVsZS5kLnRzXCIgLz5cblxuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUVmZmVjdCwgc3RhcnRUcmFuc2l0aW9uLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBzdHJpcEFuc2kgZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2knXG5pbXBvcnQgZm9ybWF0V2VicGFja01lc3NhZ2VzIGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXMnXG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL25hdmlnYXRpb24nXG5pbXBvcnQge1xuICBSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FELFxuICBSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IsXG4gIHJlcG9ydEludmFsaWRIbXJNZXNzYWdlLFxufSBmcm9tICcuLi9zaGFyZWQnXG5pbXBvcnQgeyBkaXNwYXRjaGVyIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtZGV2dG9vbHMnXG5pbXBvcnQgeyBSZXBsYXlTc3JPbmx5RXJyb3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2Vycm9ycy9yZXBsYXktc3NyLW9ubHktZXJyb3JzJ1xuaW1wb3J0IHsgQXBwRGV2T3ZlcmxheUVycm9yQm91bmRhcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvYXBwLWRldi1vdmVybGF5LWVycm9yLWJvdW5kYXJ5J1xuaW1wb3J0IHsgdXNlRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2Vycm9ycy91c2UtZXJyb3ItaGFuZGxlcidcbmltcG9ydCB7IFJ1bnRpbWVFcnJvckhhbmRsZXIgfSBmcm9tICcuLi8uLi9ydW50aW1lLWVycm9yLWhhbmRsZXInXG5pbXBvcnQge1xuICB1c2VTZW5kTWVzc2FnZSxcbiAgdXNlVHVyYm9wYWNrLFxuICB1c2VXZWJzb2NrZXQsXG4gIHVzZVdlYnNvY2tldFBpbmcsXG59IGZyb20gJy4vdXNlLXdlYnNvY2tldCdcbmltcG9ydCB7IEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUiB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBITVJfQUNUSU9OX1RZUEVTLFxuICBUdXJib3BhY2tNc2dUb0Jyb3dzZXIsXG59IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzJ1xuaW1wb3J0IHsgdXNlVW50cmFja2VkUGF0aG5hbWUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL25hdmlnYXRpb24tdW50cmFja2VkJ1xuaW1wb3J0IHJlcG9ydEhtckxhdGVuY3kgZnJvbSAnLi4vLi4vcmVwb3J0LWhtci1sYXRlbmN5J1xuaW1wb3J0IHsgVHVyYm9wYWNrSG1yIH0gZnJvbSAnLi4vdHVyYm9wYWNrLWhvdC1yZWxvYWRlci1jb21tb24nXG5pbXBvcnQgeyBORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnMnXG5pbXBvcnQgdHlwZSB7IEdsb2JhbEVycm9yU3RhdGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2FwcC1yb3V0ZXItaW5zdGFuY2UnXG5pbXBvcnQgeyB1c2VGb3J3YXJkQ29uc29sZUxvZyB9IGZyb20gJy4uLy4uLy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvdXNlLWZvcndhcmQtY29uc29sZS1sb2cnXG5cbmxldCBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoOiBhbnkgPSBudWxsXG5sZXQgX19uZXh0RGV2Q2xpZW50SWQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAgKyBEYXRlLm5vdygpKVxubGV0IHJlbG9hZGluZyA9IGZhbHNlXG5sZXQgd2VicGFja1N0YXJ0TXNTaW5jZUVwb2NoOiBudW1iZXIgfCBudWxsID0gbnVsbFxuY29uc3QgdHVyYm9wYWNrSG1yOiBUdXJib3BhY2tIbXIgfCBudWxsID0gcHJvY2Vzcy5lbnYuVFVSQk9QQUNLXG4gID8gbmV3IFR1cmJvcGFja0htcigpXG4gIDogbnVsbFxuXG5sZXQgcGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2sgPSBQcm9taXNlLnJlc29sdmUoKVxubGV0IHJlc29sdmVQZW5kaW5nSG90VXBkYXRlV2VicGFjazogKCkgPT4gdm9pZCA9ICgpID0+IHt9XG5mdW5jdGlvbiBzZXRQZW5kaW5nSG90VXBkYXRlV2VicGFjaygpIHtcbiAgcGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2sgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIHJlc29sdmVQZW5kaW5nSG90VXBkYXRlV2VicGFjayA9ICgpID0+IHtcbiAgICAgIHJlc29sdmUoKVxuICAgIH1cbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdhaXRGb3JXZWJwYWNrUnVudGltZUhvdFVwZGF0ZSgpIHtcbiAgcmV0dXJuIHBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrXG59XG5cbi8vIFRoZXJlIGlzIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGUgY29kZSBhdmFpbGFibGUuXG5mdW5jdGlvbiBoYW5kbGVBdmFpbGFibGVIYXNoKGhhc2g6IHN0cmluZykge1xuICAvLyBVcGRhdGUgbGFzdCBrbm93biBjb21waWxhdGlvbiBoYXNoLlxuICBtb3N0UmVjZW50Q29tcGlsYXRpb25IYXNoID0gaGFzaFxufVxuXG4vKipcbiAqIElzIHRoZXJlIGEgbmV3ZXIgdmVyc2lvbiBvZiB0aGlzIGNvZGUgYXZhaWxhYmxlP1xuICogRm9yIHdlYnBhY2s6IENoZWNrIGlmIHRoZSBoYXNoIGNoYW5nZWQgY29tcGFyZWQgdG8gX193ZWJwYWNrX2hhc2hfX1xuICogRm9yIFR1cmJvcGFjazogQWx3YXlzIHRydWUgYmVjYXVzZSBpdCBkb2Vzbid0IGhhdmUgX193ZWJwYWNrX2hhc2hfX1xuICovXG5mdW5jdGlvbiBpc1VwZGF0ZUF2YWlsYWJsZSgpIHtcbiAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKiBnbG9iYWxzIF9fd2VicGFja19oYXNoX18gKi9cbiAgLy8gX193ZWJwYWNrX2hhc2hfXyBpcyB0aGUgaGFzaCBvZiB0aGUgY3VycmVudCBjb21waWxhdGlvbi5cbiAgLy8gSXQncyBhIGdsb2JhbCB2YXJpYWJsZSBpbmplY3RlZCBieSBXZWJwYWNrLlxuICByZXR1cm4gbW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCAhPT0gX193ZWJwYWNrX2hhc2hfX1xufVxuXG4vLyBXZWJwYWNrIGRpc2FsbG93cyB1cGRhdGVzIGluIG90aGVyIHN0YXRlcy5cbmZ1bmN0aW9uIGNhbkFwcGx5VXBkYXRlcygpIHtcbiAgcmV0dXJuIG1vZHVsZS5ob3Quc3RhdHVzKCkgPT09ICdpZGxlJ1xufVxuZnVuY3Rpb24gYWZ0ZXJBcHBseVVwZGF0ZXMoZm46IGFueSkge1xuICBpZiAoY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICBmbigpXG4gIH0gZWxzZSB7XG4gICAgZnVuY3Rpb24gaGFuZGxlcihzdGF0dXM6IGFueSkge1xuICAgICAgaWYgKHN0YXR1cyA9PT0gJ2lkbGUnKSB7XG4gICAgICAgIG1vZHVsZS5ob3QucmVtb3ZlU3RhdHVzSGFuZGxlcihoYW5kbGVyKVxuICAgICAgICBmbigpXG4gICAgICB9XG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWRkU3RhdHVzSGFuZGxlcihoYW5kbGVyKVxuICB9XG59XG5cbmZ1bmN0aW9uIHBlcmZvcm1GdWxsUmVsb2FkKGVycjogYW55LCBzZW5kTWVzc2FnZTogYW55KSB7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPVxuICAgIGVyciAmJlxuICAgICgoZXJyLnN0YWNrICYmIGVyci5zdGFjay5zcGxpdCgnXFxuJykuc2xpY2UoMCwgNSkuam9pbignXFxuJykpIHx8XG4gICAgICBlcnIubWVzc2FnZSB8fFxuICAgICAgZXJyICsgJycpXG5cbiAgc2VuZE1lc3NhZ2UoXG4gICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZXZlbnQ6ICdjbGllbnQtZnVsbC1yZWxvYWQnLFxuICAgICAgc3RhY2tUcmFjZSxcbiAgICAgIGhhZFJ1bnRpbWVFcnJvcjogISFSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcixcbiAgICAgIGRlcGVuZGVuY3lDaGFpbjogZXJyID8gZXJyLmRlcGVuZGVuY3lDaGFpbiA6IHVuZGVmaW5lZCxcbiAgICB9KVxuICApXG5cbiAgaWYgKHJlbG9hZGluZykgcmV0dXJuXG4gIHJlbG9hZGluZyA9IHRydWVcbiAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG59XG5cbi8vIEF0dGVtcHQgdG8gdXBkYXRlIGNvZGUgb24gdGhlIGZseSwgZmFsbCBiYWNrIHRvIGEgaGFyZCByZWxvYWQuXG5mdW5jdGlvbiB0cnlBcHBseVVwZGF0ZXNXZWJwYWNrKHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkKSB7XG4gIGlmICghaXNVcGRhdGVBdmFpbGFibGUoKSB8fCAhY2FuQXBwbHlVcGRhdGVzKCkpIHtcbiAgICByZXNvbHZlUGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2soKVxuICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcbiAgICByZXBvcnRIbXJMYXRlbmN5KHNlbmRNZXNzYWdlLCBbXSwgd2VicGFja1N0YXJ0TXNTaW5jZUVwb2NoISwgRGF0ZS5ub3coKSlcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUFwcGx5VXBkYXRlcyhcbiAgICBlcnI6IGFueSxcbiAgICB1cGRhdGVkTW9kdWxlczogKHN0cmluZyB8IG51bWJlcilbXSB8IG51bGxcbiAgKSB7XG4gICAgaWYgKGVyciB8fCBSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvciB8fCB1cGRhdGVkTW9kdWxlcyA9PSBudWxsKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEKVxuICAgICAgfSBlbHNlIGlmIChSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SKVxuICAgICAgfVxuICAgICAgcGVyZm9ybUZ1bGxSZWxvYWQoZXJyLCBzZW5kTWVzc2FnZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcblxuICAgIGlmIChpc1VwZGF0ZUF2YWlsYWJsZSgpKSB7XG4gICAgICAvLyBXaGlsZSB3ZSB3ZXJlIHVwZGF0aW5nLCB0aGVyZSB3YXMgYSBuZXcgdXBkYXRlISBEbyBpdCBhZ2Fpbi5cbiAgICAgIHRyeUFwcGx5VXBkYXRlc1dlYnBhY2soc2VuZE1lc3NhZ2UpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBkaXNwYXRjaGVyLm9uUmVmcmVzaCgpXG4gICAgcmVzb2x2ZVBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrKClcbiAgICByZXBvcnRIbXJMYXRlbmN5KFxuICAgICAgc2VuZE1lc3NhZ2UsXG4gICAgICB1cGRhdGVkTW9kdWxlcyxcbiAgICAgIHdlYnBhY2tTdGFydE1zU2luY2VFcG9jaCEsXG4gICAgICBEYXRlLm5vdygpXG4gICAgKVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAgIGFmdGVyQXBwbHlVcGRhdGVzKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQigpXG4gICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCID0gbnVsbFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8vIGh0dHBzOi8vd2VicGFjay5qcy5vcmcvYXBpL2hvdC1tb2R1bGUtcmVwbGFjZW1lbnQvI2NoZWNrXG4gIG1vZHVsZS5ob3RcbiAgICAuY2hlY2soLyogYXV0b0FwcGx5ICovIGZhbHNlKVxuICAgIC50aGVuKCh1cGRhdGVkTW9kdWxlczogKHN0cmluZyB8IG51bWJlcilbXSB8IG51bGwpID0+IHtcbiAgICAgIGlmICh1cGRhdGVkTW9kdWxlcyA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIHNob3VsZCBhbHdheXMgaGFuZGxlIGFuIHVwZGF0ZSwgZXZlbiBpZiB1cGRhdGVkTW9kdWxlcyBpcyBlbXB0eSAoYnV0XG4gICAgICAvLyBub24tbnVsbCkgZm9yIGFueSByZWFzb24uIFRoYXQncyB3aGF0IHdlYnBhY2sgd291bGQgbm9ybWFsbHkgZG86XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2IvM2FhNmI2YmMzYTY0L2xpYi9obXIvSG90TW9kdWxlUmVwbGFjZW1lbnQucnVudGltZS5qcyNMMjk2LUwyOThcbiAgICAgIGRpc3BhdGNoZXIub25CZWZvcmVSZWZyZXNoKClcbiAgICAgIC8vIGh0dHBzOi8vd2VicGFjay5qcy5vcmcvYXBpL2hvdC1tb2R1bGUtcmVwbGFjZW1lbnQvI2FwcGx5XG4gICAgICByZXR1cm4gbW9kdWxlLmhvdC5hcHBseSgpXG4gICAgfSlcbiAgICAudGhlbihcbiAgICAgICh1cGRhdGVkTW9kdWxlczogKHN0cmluZyB8IG51bWJlcilbXSB8IG51bGwpID0+IHtcbiAgICAgICAgaGFuZGxlQXBwbHlVcGRhdGVzKG51bGwsIHVwZGF0ZWRNb2R1bGVzKVxuICAgICAgfSxcbiAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICBoYW5kbGVBcHBseVVwZGF0ZXMoZXJyLCBudWxsKVxuICAgICAgfVxuICAgIClcbn1cblxuLyoqIEhhbmRsZXMgbWVzc2FnZXMgZnJvbSB0aGUgc2VydmVyIGZvciB0aGUgQXBwIFJvdXRlci4gKi9cbmZ1bmN0aW9uIHByb2Nlc3NNZXNzYWdlKFxuICBvYmo6IEhNUl9BQ1RJT05fVFlQRVMsXG4gIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkLFxuICBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZTogKG1zZzogVHVyYm9wYWNrTXNnVG9Ccm93c2VyKSA9PiB2b2lkLFxuICByb3V0ZXI6IFJldHVyblR5cGU8dHlwZW9mIHVzZVJvdXRlcj4sXG4gIGFwcElzck1hbmlmZXN0UmVmOiBSZXR1cm5UeXBlPHR5cGVvZiB1c2VSZWY+LFxuICBwYXRobmFtZVJlZjogUmV0dXJuVHlwZTx0eXBlb2YgdXNlUmVmPlxuKSB7XG4gIGlmICghKCdhY3Rpb24nIGluIG9iaikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9ycyhlcnJvcnM6IFJlYWRvbmx5QXJyYXk8dW5rbm93bj4pIHtcbiAgICAvLyBcIk1hc3NhZ2VcIiB3ZWJwYWNrIG1lc3NhZ2VzLlxuICAgIGNvbnN0IGZvcm1hdHRlZCA9IGZvcm1hdFdlYnBhY2tNZXNzYWdlcyh7XG4gICAgICBlcnJvcnM6IGVycm9ycyxcbiAgICAgIHdhcm5pbmdzOiBbXSxcbiAgICB9KVxuXG4gICAgLy8gT25seSBzaG93IHRoZSBmaXJzdCBlcnJvci5cbiAgICBkaXNwYXRjaGVyLm9uQnVpbGRFcnJvcihmb3JtYXR0ZWQuZXJyb3JzWzBdKVxuXG4gICAgLy8gQWxzbyBsb2cgdGhlbSB0byB0aGUgY29uc29sZS5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1hdHRlZC5lcnJvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnNvbGUuZXJyb3Ioc3RyaXBBbnNpKGZvcm1hdHRlZC5lcnJvcnNbaV0pKVxuICAgIH1cblxuICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIHJlbG9hZCBub3cuXG4gICAgLy8gV2Ugd2lsbCByZWxvYWQgb24gbmV4dCBzdWNjZXNzIGluc3RlYWQuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAgIGlmIChzZWxmLl9fTkVYVF9ITVJfQ0IpIHtcbiAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKGZvcm1hdHRlZC5lcnJvcnNbMF0pXG4gICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQiA9IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVIb3RVcGRhdGUoKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgY29uc3QgaG1yVXBkYXRlID0gdHVyYm9wYWNrSG1yIS5vbkJ1aWx0KClcbiAgICAgIGlmIChobXJVcGRhdGUgIT0gbnVsbCkge1xuICAgICAgICByZXBvcnRIbXJMYXRlbmN5KFxuICAgICAgICAgIHNlbmRNZXNzYWdlLFxuICAgICAgICAgIFsuLi5obXJVcGRhdGUudXBkYXRlZE1vZHVsZXNdLFxuICAgICAgICAgIGhtclVwZGF0ZS5zdGFydE1zU2luY2VFcG9jaCxcbiAgICAgICAgICBobXJVcGRhdGUuZW5kTXNTaW5jZUVwb2NoLFxuICAgICAgICAgIC8vIHN1cHByZXNzIHRoZSBgY2xpZW50LWhtci1sYXRlbmN5YCBldmVudCBpZiB0aGUgdXBkYXRlIHdhcyBhIG5vLW9wOlxuICAgICAgICAgIGhtclVwZGF0ZS5oYXNVcGRhdGVzXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGRpc3BhdGNoZXIub25CdWlsZE9rKClcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5QXBwbHlVcGRhdGVzV2VicGFjayhzZW5kTWVzc2FnZSlcbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKG9iai5hY3Rpb24pIHtcbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5JU1JfTUFOSUZFU1Q6IHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfREVWX0lORElDQVRPUikge1xuICAgICAgICBpZiAoYXBwSXNyTWFuaWZlc3RSZWYpIHtcbiAgICAgICAgICBhcHBJc3JNYW5pZmVzdFJlZi5jdXJyZW50ID0gb2JqLmRhdGFcblxuICAgICAgICAgIC8vIGhhbmRsZSBpbml0aWFsIHN0YXR1cyBvbiByZWNlaXZpbmcgbWFuaWZlc3RcbiAgICAgICAgICAvLyBuYXZpZ2F0aW9uIGlzIGhhbmRsZWQgaW4gdXNlRWZmZWN0IGZvciBwYXRobmFtZSBjaGFuZ2VzXG4gICAgICAgICAgLy8gYXMgd2UnbGwgcmVjZWl2ZSB0aGUgdXBkYXRlZCBtYW5pZmVzdCBiZWZvcmUgdXNlUGF0aG5hbWVcbiAgICAgICAgICAvLyB0cmlnZ2VycyBmb3IgbmV3IHZhbHVlXG4gICAgICAgICAgaWYgKChwYXRobmFtZVJlZi5jdXJyZW50IGFzIHN0cmluZykgaW4gb2JqLmRhdGEpIHtcbiAgICAgICAgICAgIGRpc3BhdGNoZXIub25TdGF0aWNJbmRpY2F0b3IodHJ1ZSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGlzcGF0Y2hlci5vblN0YXRpY0luZGljYXRvcihmYWxzZSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxESU5HOiB7XG4gICAgICBkaXNwYXRjaGVyLmJ1aWxkaW5nSW5kaWNhdG9yU2hvdygpXG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgdHVyYm9wYWNrSG1yIS5vbkJ1aWxkaW5nKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdlYnBhY2tTdGFydE1zU2luY2VFcG9jaCA9IERhdGUubm93KClcbiAgICAgICAgc2V0UGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2soKVxuICAgICAgICBjb25zb2xlLmxvZygnW0Zhc3QgUmVmcmVzaF0gcmVidWlsZGluZycpXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5CVUlMVDpcbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TWU5DOiB7XG4gICAgICBkaXNwYXRjaGVyLmJ1aWxkaW5nSW5kaWNhdG9ySGlkZSgpXG5cbiAgICAgIGlmIChvYmouaGFzaCkge1xuICAgICAgICBoYW5kbGVBdmFpbGFibGVIYXNoKG9iai5oYXNoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGVycm9ycywgd2FybmluZ3MgfSA9IG9ialxuXG4gICAgICAvLyBJcyB1bmRlZmluZWQgd2hlbiBpdCdzIGEgJ2J1aWx0JyBldmVudFxuICAgICAgaWYgKCd2ZXJzaW9uSW5mbycgaW4gb2JqKSBkaXNwYXRjaGVyLm9uVmVyc2lvbkluZm8ob2JqLnZlcnNpb25JbmZvKVxuICAgICAgaWYgKCdkZWJ1ZycgaW4gb2JqICYmIG9iai5kZWJ1ZykgZGlzcGF0Y2hlci5vbkRlYnVnSW5mbyhvYmouZGVidWcpXG4gICAgICBpZiAoJ2RldkluZGljYXRvcicgaW4gb2JqKSBkaXNwYXRjaGVyLm9uRGV2SW5kaWNhdG9yKG9iai5kZXZJbmRpY2F0b3IpXG5cbiAgICAgIGNvbnN0IGhhc0Vycm9ycyA9IEJvb2xlYW4oZXJyb3JzICYmIGVycm9ycy5sZW5ndGgpXG4gICAgICAvLyBDb21waWxhdGlvbiB3aXRoIGVycm9ycyAoZS5nLiBzeW50YXggZXJyb3Igb3IgbWlzc2luZyBtb2R1bGVzKS5cbiAgICAgIGlmIChoYXNFcnJvcnMpIHtcbiAgICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtZXJyb3InLFxuICAgICAgICAgICAgZXJyb3JDb3VudDogZXJyb3JzLmxlbmd0aCxcbiAgICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICB9KVxuICAgICAgICApXG5cbiAgICAgICAgaGFuZGxlRXJyb3JzKGVycm9ycylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhc1dhcm5pbmdzID0gQm9vbGVhbih3YXJuaW5ncyAmJiB3YXJuaW5ncy5sZW5ndGgpXG4gICAgICBpZiAoaGFzV2FybmluZ3MpIHtcbiAgICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtd2FybmluZycsXG4gICAgICAgICAgICB3YXJuaW5nQ291bnQ6IHdhcm5pbmdzLmxlbmd0aCxcbiAgICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICB9KVxuICAgICAgICApXG5cbiAgICAgICAgLy8gUHJpbnQgd2FybmluZ3MgdG8gdGhlIGNvbnNvbGUuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE1lc3NhZ2VzID0gZm9ybWF0V2VicGFja01lc3NhZ2VzKHtcbiAgICAgICAgICB3YXJuaW5nczogd2FybmluZ3MsXG4gICAgICAgICAgZXJyb3JzOiBbXSxcbiAgICAgICAgfSlcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1hdHRlZE1lc3NhZ2VzLndhcm5pbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGkgPT09IDUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgJ1RoZXJlIHdlcmUgbW9yZSB3YXJuaW5ncyBpbiBvdGhlciBmaWxlcy5cXG4nICtcbiAgICAgICAgICAgICAgICAnWW91IGNhbiBmaW5kIGEgY29tcGxldGUgbG9nIGluIHRoZSB0ZXJtaW5hbC4nXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zb2xlLndhcm4oc3RyaXBBbnNpKGZvcm1hdHRlZE1lc3NhZ2VzLndhcm5pbmdzW2ldKSlcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vIGVhcmx5IHJldHVybiBoZXJlIGFzIHdlIG5lZWQgdG8gYXBwbHkgbW9kdWxlcyBpbiB0aGUgc2FtZSB3YXkgYmV0d2VlbiB3YXJuaW5ncyBvbmx5IGFuZCBjb21waWxlcyB3aXRob3V0IHdhcm5pbmdzXG4gICAgICB9XG5cbiAgICAgIHNlbmRNZXNzYWdlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgZXZlbnQ6ICdjbGllbnQtc3VjY2VzcycsXG4gICAgICAgICAgY2xpZW50SWQ6IF9fbmV4dERldkNsaWVudElkLFxuICAgICAgICB9KVxuICAgICAgKVxuXG4gICAgICBpZiAob2JqLmFjdGlvbiA9PT0gSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxUKSB7XG4gICAgICAgIGhhbmRsZUhvdFVwZGF0ZSgpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX0NPTk5FQ1RFRDoge1xuICAgICAgcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2Uoe1xuICAgICAgICB0eXBlOiBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX0NPTk5FQ1RFRCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHNlc3Npb25JZDogb2JqLmRhdGEuc2Vzc2lvbklkLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlRVUkJPUEFDS19NRVNTQUdFOiB7XG4gICAgICB0dXJib3BhY2tIbXIhLm9uVHVyYm9wYWNrTWVzc2FnZShvYmopXG4gICAgICBkaXNwYXRjaGVyLm9uQmVmb3JlUmVmcmVzaCgpXG4gICAgICBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSh7XG4gICAgICAgIHR5cGU6IEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5UVVJCT1BBQ0tfTUVTU0FHRSxcbiAgICAgICAgZGF0YTogb2JqLmRhdGEsXG4gICAgICB9KVxuICAgICAgaWYgKFJ1bnRpbWVFcnJvckhhbmRsZXIuaGFkUnVudGltZUVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IpXG4gICAgICAgIHBlcmZvcm1GdWxsUmVsb2FkKG51bGwsIHNlbmRNZXNzYWdlKVxuICAgICAgfVxuICAgICAgZGlzcGF0Y2hlci5vblJlZnJlc2goKVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgLy8gVE9ETy1BUFA6IG1ha2Ugc2VydmVyIGNvbXBvbmVudCBjaGFuZ2UgbW9yZSBncmFudWxhclxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNFUlZFUl9DT01QT05FTlRfQ0hBTkdFUzoge1xuICAgICAgdHVyYm9wYWNrSG1yPy5vblNlcnZlckNvbXBvbmVudENoYW5nZXMoKVxuICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBldmVudDogJ3NlcnZlci1jb21wb25lbnQtcmVsb2FkLXBhZ2UnLFxuICAgICAgICAgIGNsaWVudElkOiBfX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICBoYXNoOiBvYmouaGFzaCxcbiAgICAgICAgfSlcbiAgICAgIClcblxuICAgICAgLy8gU3RvcmUgdGhlIGxhdGVzdCBoYXNoIGluIGEgc2Vzc2lvbiBjb29raWUgc28gdGhhdCBpdCdzIHNlbnQgYmFjayB0byB0aGVcbiAgICAgIC8vIHNlcnZlciB3aXRoIGFueSBzdWJzZXF1ZW50IHJlcXVlc3RzLlxuICAgICAgZG9jdW1lbnQuY29va2llID0gYCR7TkVYVF9ITVJfUkVGUkVTSF9IQVNIX0NPT0tJRX09JHtvYmouaGFzaH1gXG5cbiAgICAgIGlmIChSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICBpZiAocmVsb2FkaW5nKSByZXR1cm5cbiAgICAgICAgcmVsb2FkaW5nID0gdHJ1ZVxuICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICB9XG5cbiAgICAgIHN0YXJ0VHJhbnNpdGlvbigoKSA9PiB7XG4gICAgICAgIHJvdXRlci5obXJSZWZyZXNoKClcbiAgICAgICAgZGlzcGF0Y2hlci5vblJlZnJlc2goKVxuICAgICAgfSlcblxuICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQigpXG4gICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCID0gbnVsbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5SRUxPQURfUEFHRToge1xuICAgICAgdHVyYm9wYWNrSG1yPy5vblJlbG9hZFBhZ2UoKVxuICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBldmVudDogJ2NsaWVudC1yZWxvYWQtcGFnZScsXG4gICAgICAgICAgY2xpZW50SWQ6IF9fbmV4dERldkNsaWVudElkLFxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgaWYgKHJlbG9hZGluZykgcmV0dXJuXG4gICAgICByZWxvYWRpbmcgPSB0cnVlXG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkFEREVEX1BBR0U6XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuUkVNT1ZFRF9QQUdFOiB7XG4gICAgICB0dXJib3BhY2tIbXI/Lm9uUGFnZUFkZFJlbW92ZSgpXG4gICAgICAvLyBUT0RPLUFQUDogcG90ZW50aWFsbHkgb25seSByZWZyZXNoIGlmIHRoZSBjdXJyZW50bHkgdmlld2VkIHBhZ2Ugd2FzIGFkZGVkL3JlbW92ZWQuXG4gICAgICByZXR1cm4gcm91dGVyLmhtclJlZnJlc2goKVxuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TRVJWRVJfRVJST1I6IHtcbiAgICAgIGNvbnN0IHsgZXJyb3JKU09OIH0gPSBvYmpcbiAgICAgIGlmIChlcnJvckpTT04pIHtcbiAgICAgICAgY29uc3QgeyBtZXNzYWdlLCBzdGFjayB9ID0gSlNPTi5wYXJzZShlcnJvckpTT04pXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpXG4gICAgICAgIGVycm9yLnN0YWNrID0gc3RhY2tcbiAgICAgICAgaGFuZGxlRXJyb3JzKFtlcnJvcl0pXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuREVWX1BBR0VTX01BTklGRVNUX1VQREFURToge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSG90UmVsb2FkKHtcbiAgYXNzZXRQcmVmaXgsXG4gIGNoaWxkcmVuLFxuICBnbG9iYWxFcnJvcixcbn06IHtcbiAgYXNzZXRQcmVmaXg6IHN0cmluZ1xuICBjaGlsZHJlbjogUmVhY3ROb2RlXG4gIGdsb2JhbEVycm9yOiBHbG9iYWxFcnJvclN0YXRlXG59KSB7XG4gIHVzZUVycm9ySGFuZGxlcihkaXNwYXRjaGVyLm9uVW5oYW5kbGVkRXJyb3IsIGRpc3BhdGNoZXIub25VbmhhbmRsZWRSZWplY3Rpb24pXG5cbiAgY29uc3Qgd2ViU29ja2V0UmVmID0gdXNlV2Vic29ja2V0KGFzc2V0UHJlZml4KVxuXG4gIHVzZVdlYnNvY2tldFBpbmcod2ViU29ja2V0UmVmKVxuICBjb25zdCBzZW5kTWVzc2FnZSA9IHVzZVNlbmRNZXNzYWdlKHdlYlNvY2tldFJlZilcbiAgdXNlRm9yd2FyZENvbnNvbGVMb2cod2ViU29ja2V0UmVmKVxuICBjb25zdCBwcm9jZXNzVHVyYm9wYWNrTWVzc2FnZSA9IHVzZVR1cmJvcGFjayhzZW5kTWVzc2FnZSwgKGVycikgPT5cbiAgICBwZXJmb3JtRnVsbFJlbG9hZChlcnIsIHNlbmRNZXNzYWdlKVxuICApXG5cbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKClcblxuICAvLyBXZSBkb24ndCB3YW50IGFjY2VzcyBvZiB0aGUgcGF0aG5hbWUgZm9yIHRoZSBkZXYgdG9vbHMgdG8gdHJpZ2dlciBhIGR5bmFtaWNcbiAgLy8gYWNjZXNzIChhcyB0aGUgZGV2IG92ZXJsYXkgd2lsbCBuZXZlciBiZSBwcmVzZW50IGluIHByb2R1Y3Rpb24pLlxuICBjb25zdCBwYXRobmFtZSA9IHVzZVVudHJhY2tlZFBhdGhuYW1lKClcbiAgY29uc3QgYXBwSXNyTWFuaWZlc3RSZWYgPSB1c2VSZWY8UmVjb3JkPHN0cmluZywgZmFsc2UgfCBudW1iZXI+Pih7fSlcbiAgY29uc3QgcGF0aG5hbWVSZWYgPSB1c2VSZWYocGF0aG5hbWUpXG5cbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9ERVZfSU5ESUNBVE9SKSB7XG4gICAgLy8gdGhpcyBjb25kaXRpb25hbCBpcyBvbmx5IGZvciBkZWFkLWNvZGUgZWxpbWluYXRpb24gd2hpY2hcbiAgICAvLyBpc24ndCBhIHJ1bnRpbWUgY29uZGl0aW9uYWwgb25seSBidWlsZC10aW1lIHNvIGlnbm9yZSBob29rcyBydWxlXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL3J1bGVzLW9mLWhvb2tzXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIHBhdGhuYW1lUmVmLmN1cnJlbnQgPSBwYXRobmFtZVxuXG4gICAgICBjb25zdCBhcHBJc3JNYW5pZmVzdCA9IGFwcElzck1hbmlmZXN0UmVmLmN1cnJlbnRcblxuICAgICAgaWYgKGFwcElzck1hbmlmZXN0KSB7XG4gICAgICAgIGlmIChwYXRobmFtZSAmJiBwYXRobmFtZSBpbiBhcHBJc3JNYW5pZmVzdCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkaXNwYXRjaGVyLm9uU3RhdGljSW5kaWNhdG9yKHRydWUpXG4gICAgICAgICAgfSBjYXRjaCAocmVhc29uKSB7XG4gICAgICAgICAgICBsZXQgbWVzc2FnZSA9ICcnXG5cbiAgICAgICAgICAgIGlmIChyZWFzb24gaW5zdGFuY2VvZiBET01FeGNlcHRpb24pIHtcbiAgICAgICAgICAgICAgLy8gTW9zdCBsaWtlbHkgYSBTZWN1cml0eUVycm9yLCBiZWNhdXNlIG9mIGFuIHVuYXZhaWxhYmxlIGxvY2FsU3RvcmFnZVxuICAgICAgICAgICAgICBtZXNzYWdlID0gcmVhc29uLnN0YWNrID8/IHJlYXNvbi5tZXNzYWdlXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlYXNvbiBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSAnRXJyb3I6ICcgKyByZWFzb24ubWVzc2FnZSArICdcXG4nICsgKHJlYXNvbi5zdGFjayA/PyAnJylcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSAnVW5leHBlY3RlZCBFeGNlcHRpb246ICcgKyByZWFzb25cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdbSE1SXSAnICsgbWVzc2FnZSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGlzcGF0Y2hlci5vblN0YXRpY0luZGljYXRvcihmYWxzZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIFtwYXRobmFtZV0pXG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHdlYnNvY2tldCA9IHdlYlNvY2tldFJlZi5jdXJyZW50XG4gICAgaWYgKCF3ZWJzb2NrZXQpIHJldHVyblxuXG4gICAgY29uc3QgaGFuZGxlciA9IChldmVudDogTWVzc2FnZUV2ZW50PGFueT4pID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoZXZlbnQuZGF0YSlcbiAgICAgICAgcHJvY2Vzc01lc3NhZ2UoXG4gICAgICAgICAgb2JqLFxuICAgICAgICAgIHNlbmRNZXNzYWdlLFxuICAgICAgICAgIHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlLFxuICAgICAgICAgIHJvdXRlcixcbiAgICAgICAgICBhcHBJc3JNYW5pZmVzdFJlZixcbiAgICAgICAgICBwYXRobmFtZVJlZlxuICAgICAgICApXG4gICAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgICAgcmVwb3J0SW52YWxpZEhtck1lc3NhZ2UoZXZlbnQsIGVycilcbiAgICAgIH1cbiAgICB9XG5cbiAgICB3ZWJzb2NrZXQuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGhhbmRsZXIpXG4gICAgcmV0dXJuICgpID0+IHdlYnNvY2tldC5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgaGFuZGxlcilcbiAgfSwgW1xuICAgIHNlbmRNZXNzYWdlLFxuICAgIHJvdXRlcixcbiAgICB3ZWJTb2NrZXRSZWYsXG4gICAgcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UsXG4gICAgYXBwSXNyTWFuaWZlc3RSZWYsXG4gIF0pXG4gIHJldHVybiAoXG4gICAgPEFwcERldk92ZXJsYXlFcnJvckJvdW5kYXJ5IGdsb2JhbEVycm9yPXtnbG9iYWxFcnJvcn0+XG4gICAgICA8UmVwbGF5U3NyT25seUVycm9ycyBvbkJsb2NraW5nRXJyb3I9e2Rpc3BhdGNoZXIub3BlbkVycm9yT3ZlcmxheX0gLz5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0FwcERldk92ZXJsYXlFcnJvckJvdW5kYXJ5PlxuICApXG59XG4iXSwibmFtZXMiOlsiSG90UmVsb2FkIiwid2FpdEZvcldlYnBhY2tSdW50aW1lSG90VXBkYXRlIiwibW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCIsIl9fbmV4dERldkNsaWVudElkIiwiTWF0aCIsInJvdW5kIiwicmFuZG9tIiwiRGF0ZSIsIm5vdyIsInJlbG9hZGluZyIsIndlYnBhY2tTdGFydE1zU2luY2VFcG9jaCIsInR1cmJvcGFja0htciIsInByb2Nlc3MiLCJlbnYiLCJUVVJCT1BBQ0siLCJUdXJib3BhY2tIbXIiLCJwZW5kaW5nSG90VXBkYXRlV2VicGFjayIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVzb2x2ZVBlbmRpbmdIb3RVcGRhdGVXZWJwYWNrIiwic2V0UGVuZGluZ0hvdFVwZGF0ZVdlYnBhY2siLCJoYW5kbGVBdmFpbGFibGVIYXNoIiwiaGFzaCIsImlzVXBkYXRlQXZhaWxhYmxlIiwiX193ZWJwYWNrX2hhc2hfXyIsImNhbkFwcGx5VXBkYXRlcyIsIm1vZHVsZSIsImhvdCIsInN0YXR1cyIsImFmdGVyQXBwbHlVcGRhdGVzIiwiZm4iLCJoYW5kbGVyIiwicmVtb3ZlU3RhdHVzSGFuZGxlciIsImFkZFN0YXR1c0hhbmRsZXIiLCJwZXJmb3JtRnVsbFJlbG9hZCIsImVyciIsInNlbmRNZXNzYWdlIiwic3RhY2tUcmFjZSIsInN0YWNrIiwic3BsaXQiLCJzbGljZSIsImpvaW4iLCJtZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwiaGFkUnVudGltZUVycm9yIiwiUnVudGltZUVycm9ySGFuZGxlciIsImRlcGVuZGVuY3lDaGFpbiIsInVuZGVmaW5lZCIsIndpbmRvdyIsImxvY2F0aW9uIiwicmVsb2FkIiwidHJ5QXBwbHlVcGRhdGVzV2VicGFjayIsImRpc3BhdGNoZXIiLCJvbkJ1aWxkT2siLCJyZXBvcnRIbXJMYXRlbmN5IiwiaGFuZGxlQXBwbHlVcGRhdGVzIiwidXBkYXRlZE1vZHVsZXMiLCJjb25zb2xlIiwid2FybiIsIlJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQUQiLCJSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IiLCJvblJlZnJlc2giLCJfX05FWFRfVEVTVF9NT0RFIiwic2VsZiIsIl9fTkVYVF9ITVJfQ0IiLCJjaGVjayIsInRoZW4iLCJvbkJlZm9yZVJlZnJlc2giLCJhcHBseSIsInByb2Nlc3NNZXNzYWdlIiwib2JqIiwicHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UiLCJyb3V0ZXIiLCJhcHBJc3JNYW5pZmVzdFJlZiIsInBhdGhuYW1lUmVmIiwiaGFuZGxlRXJyb3JzIiwiZXJyb3JzIiwiZm9ybWF0dGVkIiwiZm9ybWF0V2VicGFja01lc3NhZ2VzIiwid2FybmluZ3MiLCJvbkJ1aWxkRXJyb3IiLCJpIiwibGVuZ3RoIiwiZXJyb3IiLCJzdHJpcEFuc2kiLCJoYW5kbGVIb3RVcGRhdGUiLCJobXJVcGRhdGUiLCJvbkJ1aWx0Iiwic3RhcnRNc1NpbmNlRXBvY2giLCJlbmRNc1NpbmNlRXBvY2giLCJoYXNVcGRhdGVzIiwiYWN0aW9uIiwiSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSIiwiSVNSX01BTklGRVNUIiwiX19ORVhUX0RFVl9JTkRJQ0FUT1IiLCJjdXJyZW50IiwiZGF0YSIsIm9uU3RhdGljSW5kaWNhdG9yIiwiQlVJTERJTkciLCJidWlsZGluZ0luZGljYXRvclNob3ciLCJvbkJ1aWxkaW5nIiwibG9nIiwiQlVJTFQiLCJTWU5DIiwiYnVpbGRpbmdJbmRpY2F0b3JIaWRlIiwib25WZXJzaW9uSW5mbyIsInZlcnNpb25JbmZvIiwiZGVidWciLCJvbkRlYnVnSW5mbyIsIm9uRGV2SW5kaWNhdG9yIiwiZGV2SW5kaWNhdG9yIiwiaGFzRXJyb3JzIiwiQm9vbGVhbiIsImVycm9yQ291bnQiLCJjbGllbnRJZCIsImhhc1dhcm5pbmdzIiwid2FybmluZ0NvdW50IiwiZm9ybWF0dGVkTWVzc2FnZXMiLCJUVVJCT1BBQ0tfQ09OTkVDVEVEIiwidHlwZSIsInNlc3Npb25JZCIsIlRVUkJPUEFDS19NRVNTQUdFIiwib25UdXJib3BhY2tNZXNzYWdlIiwiU0VSVkVSX0NPTVBPTkVOVF9DSEFOR0VTIiwib25TZXJ2ZXJDb21wb25lbnRDaGFuZ2VzIiwiZG9jdW1lbnQiLCJjb29raWUiLCJORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFIiwic3RhcnRUcmFuc2l0aW9uIiwiaG1yUmVmcmVzaCIsIlJFTE9BRF9QQUdFIiwib25SZWxvYWRQYWdlIiwiQURERURfUEFHRSIsIlJFTU9WRURfUEFHRSIsIm9uUGFnZUFkZFJlbW92ZSIsIlNFUlZFUl9FUlJPUiIsImVycm9ySlNPTiIsInBhcnNlIiwiRXJyb3IiLCJERVZfUEFHRVNfTUFOSUZFU1RfVVBEQVRFIiwiYXNzZXRQcmVmaXgiLCJjaGlsZHJlbiIsImdsb2JhbEVycm9yIiwidXNlRXJyb3JIYW5kbGVyIiwib25VbmhhbmRsZWRFcnJvciIsIm9uVW5oYW5kbGVkUmVqZWN0aW9uIiwid2ViU29ja2V0UmVmIiwidXNlV2Vic29ja2V0IiwidXNlV2Vic29ja2V0UGluZyIsInVzZVNlbmRNZXNzYWdlIiwidXNlRm9yd2FyZENvbnNvbGVMb2ciLCJ1c2VUdXJib3BhY2siLCJ1c2VSb3V0ZXIiLCJwYXRobmFtZSIsInVzZVVudHJhY2tlZFBhdGhuYW1lIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiYXBwSXNyTWFuaWZlc3QiLCJyZWFzb24iLCJET01FeGNlcHRpb24iLCJ3ZWJzb2NrZXQiLCJyZXBvcnRJbnZhbGlkSG1yTWVzc2FnZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiQXBwRGV2T3ZlcmxheUVycm9yQm91bmRhcnkiLCJSZXBsYXlTc3JPbmx5RXJyb3JzIiwib25CbG9ja2luZ0Vycm9yIiwib3BlbkVycm9yT3ZlcmxheSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/hot-reloader-app.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js":
/*!*****************************************************************************!*\
!*** ./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js ***!
\*****************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n useSendMessage: function() {\n return useSendMessage;\n },\n useTurbopack: function() {\n return useTurbopack;\n },\n useWebsocket: function() {\n return useWebsocket;\n },\n useWebsocketPing: function() {\n return useWebsocketPing;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../../../../shared/lib/app-router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\");\nconst _getsocketurl = __webpack_require__(/*! ../get-socket-url */ \"(ssr)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js\");\nfunction useWebsocket(assetPrefix) {\n const webSocketRef = (0, _react.useRef)(undefined);\n (0, _react.useEffect)(()=>{\n if (webSocketRef.current) {\n return;\n }\n const url = (0, _getsocketurl.getSocketUrl)(assetPrefix);\n webSocketRef.current = new window.WebSocket(\"\" + url + \"/_next/webpack-hmr\");\n }, [\n assetPrefix\n ]);\n return webSocketRef;\n}\nfunction useSendMessage(webSocketRef) {\n const sendMessage = (0, _react.useCallback)((data)=>{\n const socket = webSocketRef.current;\n if (!socket || socket.readyState !== socket.OPEN) {\n return;\n }\n return socket.send(data);\n }, [\n webSocketRef\n ]);\n return sendMessage;\n}\nfunction useTurbopack(sendMessage, onUpdateError) {\n const turbopackState = (0, _react.useRef)({\n init: false,\n // Until the dynamic import resolves, queue any turbopack messages which will be replayed.\n queue: [],\n callback: undefined\n });\n const processTurbopackMessage = (0, _react.useCallback)((msg)=>{\n const { callback, queue } = turbopackState.current;\n if (callback) {\n callback(msg);\n } else {\n queue.push(msg);\n }\n }, []);\n (0, _react.useEffect)(()=>{\n const { current: initCurrent } = turbopackState;\n // TODO(WEB-1589): only install if `process.turbopack` set.\n if (initCurrent.init) {\n return;\n }\n initCurrent.init = true;\n Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! @vercel/turbopack-ecmascript-runtime/browser/dev/hmr-client/hmr-client.ts */ \"(ssr)/./node_modules/next/dist/client/dev/noop-turbopack-hmr.js\"))).then((param)=>{\n let { connect } = param;\n const { current } = turbopackState;\n connect({\n addMessageListener (cb) {\n current.callback = cb;\n // Replay all Turbopack messages before we were able to establish the HMR client.\n for (const msg of current.queue){\n cb(msg);\n }\n current.queue = undefined;\n },\n sendMessage,\n onUpdateError\n });\n });\n }, [\n sendMessage,\n onUpdateError\n ]);\n return processTurbopackMessage;\n}\nfunction useWebsocketPing(websocketRef) {\n const sendMessage = useSendMessage(websocketRef);\n const { tree } = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n (0, _react.useEffect)(()=>{\n // Never send pings when using Turbopack as it's not used.\n // Pings were originally used to keep track of active routes in on-demand-entries with webpack.\n if (false) {}\n // Taken from on-demand-entries-client.js\n const interval = setInterval(()=>{\n sendMessage(JSON.stringify({\n event: 'ping',\n tree,\n appDirRoute: true\n }));\n }, 2500);\n return ()=>clearInterval(interval);\n }, [\n tree,\n sendMessage\n ]);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-websocket.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL2FwcC91c2Utd2Vic29ja2V0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7SUFxQmdCQSxjQUFjO2VBQWRBOztJQWNBQyxZQUFZO2VBQVpBOztJQTlCQUMsWUFBWTtlQUFaQTs7SUFzRkFDLGdCQUFnQjtlQUFoQkE7OzttQ0EzRjJDOzJEQUNqQjswQ0FDYjtBQUd0QixTQUFTRCxhQUFhRSxXQUFtQjtJQUM5QyxNQUFNQyxlQUFlQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFNLEVBQVlDO0lBRXZDQyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1IsSUFBSUgsYUFBYUksT0FBTyxFQUFFO1lBQ3hCO1FBQ0Y7UUFFQSxNQUFNQyxNQUFNQyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhUDtRQUV6QkMsYUFBYUksT0FBTyxHQUFHLElBQUlHLE9BQU9DLFNBQVMsQ0FBRSxLQUFFSCxNQUFJO0lBQ3JELEdBQUc7UUFBQ047S0FBWTtJQUVoQixPQUFPQztBQUNUO0FBRU8sU0FBU0wsZUFBZUssWUFBNkM7SUFDMUUsTUFBTVMsY0FBY0MsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBQUEsRUFDbEIsQ0FBQ0M7UUFDQyxNQUFNQyxTQUFTWixhQUFhSSxPQUFPO1FBQ25DLElBQUksQ0FBQ1EsVUFBVUEsT0FBT0MsVUFBVSxLQUFLRCxPQUFPRSxJQUFJLEVBQUU7WUFDaEQ7UUFDRjtRQUNBLE9BQU9GLE9BQU9HLElBQUksQ0FBQ0o7SUFDckIsR0FDQTtRQUFDWDtLQUFhO0lBRWhCLE9BQU9TO0FBQ1Q7QUFFTyxTQUFTYixhQUNkYSxXQUE4QyxFQUM5Q08sYUFBcUM7SUFFckMsTUFBTUMsaUJBQWlCaEIsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFJcEI7UUFDRGlCLE1BQU07UUFDTiwwRkFBMEY7UUFDMUZDLE9BQU8sRUFBRTtRQUNUQyxVQUFVbEI7SUFDWjtJQUVBLE1BQU1tQiwwQkFBMEJYLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQVksQ0FBQ1k7UUFDM0MsTUFBTSxFQUFFRixRQUFRLEVBQUVELEtBQUssRUFBRSxHQUFHRixlQUFlYixPQUFPO1FBQ2xELElBQUlnQixVQUFVO1lBQ1pBLFNBQVNFO1FBQ1gsT0FBTztZQUNMSCxNQUFPSSxJQUFJLENBQUNEO1FBQ2Q7SUFDRixHQUFHLEVBQUU7SUFFTG5CLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixNQUFNLEVBQUVDLFNBQVNvQixXQUFXLEVBQUUsR0FBR1A7UUFDakMsMkRBQTJEO1FBQzNELElBQUlPLFlBQVlOLElBQUksRUFBRTtZQUNwQjtRQUNGO1FBQ0FNLFlBQVlOLElBQUksR0FBRzs2RUFFbkIsbUJBQ0UsQ0FDQSxzSkFDQU8sSUFBSSxDQUFDO2dCQUFDLEVBQUVDLE9BQU8sRUFBRTtZQUNqQixNQUFNLEVBQUV0QixPQUFPLEVBQUUsR0FBR2E7WUFDcEJTLFFBQVE7Z0JBQ05DLG9CQUFtQkMsRUFBd0M7b0JBQ3pEeEIsUUFBUWdCLFFBQVEsR0FBR1E7b0JBRW5CLGlGQUFpRjtvQkFDakYsS0FBSyxNQUFNTixPQUFPbEIsUUFBUWUsS0FBSyxDQUFHO3dCQUNoQ1MsR0FBR047b0JBQ0w7b0JBQ0FsQixRQUFRZSxLQUFLLEdBQUdqQjtnQkFDbEI7Z0JBQ0FPO2dCQUNBTztZQUNGO1FBQ0Y7SUFDRixHQUFHO1FBQUNQO1FBQWFPO0tBQWM7SUFFL0IsT0FBT0s7QUFDVDtBQUVPLFNBQVN2QixpQkFDZCtCLFlBQTZDO0lBRTdDLE1BQU1wQixjQUFjZCxlQUFla0M7SUFDbkMsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MsK0JBQUFBLHlCQUF5QjtJQUVyRDdCLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUiwwREFBMEQ7UUFDMUQsK0ZBQStGO1FBQy9GLElBQUk4QixLQUFxQixFQUFFLEVBRTFCO1FBRUQseUNBQXlDO1FBQ3pDLE1BQU1HLFdBQVdDLFlBQVk7WUFDM0I1QixZQUNFNkIsS0FBS0MsU0FBUyxDQUFDO2dCQUNiQyxPQUFPO2dCQUNQVjtnQkFDQVcsYUFBYTtZQUNmO1FBRUosR0FBRztRQUNILE9BQU8sSUFBTUMsY0FBY047SUFDN0IsR0FBRztRQUFDTjtRQUFNckI7S0FBWTtBQUN4QiIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvZGV2L2hvdC1yZWxvYWRlci9hcHAvdXNlLXdlYnNvY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEdsb2JhbExheW91dFJvdXRlckNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGdldFNvY2tldFVybCB9IGZyb20gJy4uL2dldC1zb2NrZXQtdXJsJ1xuaW1wb3J0IHR5cGUgeyBUdXJib3BhY2tNc2dUb0Jyb3dzZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvZGV2L2hvdC1yZWxvYWRlci10eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVdlYnNvY2tldChhc3NldFByZWZpeDogc3RyaW5nKSB7XG4gIGNvbnN0IHdlYlNvY2tldFJlZiA9IHVzZVJlZjxXZWJTb2NrZXQ+KHVuZGVmaW5lZClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3ZWJTb2NrZXRSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdXJsID0gZ2V0U29ja2V0VXJsKGFzc2V0UHJlZml4KVxuXG4gICAgd2ViU29ja2V0UmVmLmN1cnJlbnQgPSBuZXcgd2luZG93LldlYlNvY2tldChgJHt1cmx9L19uZXh0L3dlYnBhY2staG1yYClcbiAgfSwgW2Fzc2V0UHJlZml4XSlcblxuICByZXR1cm4gd2ViU29ja2V0UmVmXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTZW5kTWVzc2FnZSh3ZWJTb2NrZXRSZWY6IFJldHVyblR5cGU8dHlwZW9mIHVzZVdlYnNvY2tldD4pIHtcbiAgY29uc3Qgc2VuZE1lc3NhZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZGF0YTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBzb2NrZXQgPSB3ZWJTb2NrZXRSZWYuY3VycmVudFxuICAgICAgaWYgKCFzb2NrZXQgfHwgc29ja2V0LnJlYWR5U3RhdGUgIT09IHNvY2tldC5PUEVOKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgcmV0dXJuIHNvY2tldC5zZW5kKGRhdGEpXG4gICAgfSxcbiAgICBbd2ViU29ja2V0UmVmXVxuICApXG4gIHJldHVybiBzZW5kTWVzc2FnZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlVHVyYm9wYWNrKFxuICBzZW5kTWVzc2FnZTogUmV0dXJuVHlwZTx0eXBlb2YgdXNlU2VuZE1lc3NhZ2U+LFxuICBvblVwZGF0ZUVycm9yOiAoZXJyOiB1bmtub3duKSA9PiB2b2lkXG4pIHtcbiAgY29uc3QgdHVyYm9wYWNrU3RhdGUgPSB1c2VSZWY8e1xuICAgIGluaXQ6IGJvb2xlYW5cbiAgICBxdWV1ZTogQXJyYXk8VHVyYm9wYWNrTXNnVG9Ccm93c2VyPiB8IHVuZGVmaW5lZFxuICAgIGNhbGxiYWNrOiAoKG1zZzogVHVyYm9wYWNrTXNnVG9Ccm93c2VyKSA9PiB2b2lkKSB8IHVuZGVmaW5lZFxuICB9Pih7XG4gICAgaW5pdDogZmFsc2UsXG4gICAgLy8gVW50aWwgdGhlIGR5bmFtaWMgaW1wb3J0IHJlc29sdmVzLCBxdWV1ZSBhbnkgdHVyYm9wYWNrIG1lc3NhZ2VzIHdoaWNoIHdpbGwgYmUgcmVwbGF5ZWQuXG4gICAgcXVldWU6IFtdLFxuICAgIGNhbGxiYWNrOiB1bmRlZmluZWQsXG4gIH0pXG5cbiAgY29uc3QgcHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UgPSB1c2VDYWxsYmFjaygobXNnOiBUdXJib3BhY2tNc2dUb0Jyb3dzZXIpID0+IHtcbiAgICBjb25zdCB7IGNhbGxiYWNrLCBxdWV1ZSB9ID0gdHVyYm9wYWNrU3RhdGUuY3VycmVudFxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sobXNnKVxuICAgIH0gZWxzZSB7XG4gICAgICBxdWV1ZSEucHVzaChtc2cpXG4gICAgfVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHsgY3VycmVudDogaW5pdEN1cnJlbnQgfSA9IHR1cmJvcGFja1N0YXRlXG4gICAgLy8gVE9ETyhXRUItMTU4OSk6IG9ubHkgaW5zdGFsbCBpZiBgcHJvY2Vzcy50dXJib3BhY2tgIHNldC5cbiAgICBpZiAoaW5pdEN1cnJlbnQuaW5pdCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGluaXRDdXJyZW50LmluaXQgPSB0cnVlXG5cbiAgICBpbXBvcnQoXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHJlcXVpcmVzIFwibW9kdWxlUmVzb2x1dGlvblwiOiBcIm5vZGUxNlwiIGluIHRzY29uZmlnLmpzb24gYW5kIG5vdCAudHMgZXh0ZW5zaW9uXG4gICAgICAnQHZlcmNlbC90dXJib3BhY2stZWNtYXNjcmlwdC1ydW50aW1lL2Jyb3dzZXIvZGV2L2htci1jbGllbnQvaG1yLWNsaWVudC50cydcbiAgICApLnRoZW4oKHsgY29ubmVjdCB9KSA9PiB7XG4gICAgICBjb25zdCB7IGN1cnJlbnQgfSA9IHR1cmJvcGFja1N0YXRlXG4gICAgICBjb25uZWN0KHtcbiAgICAgICAgYWRkTWVzc2FnZUxpc3RlbmVyKGNiOiAobXNnOiBUdXJib3BhY2tNc2dUb0Jyb3dzZXIpID0+IHZvaWQpIHtcbiAgICAgICAgICBjdXJyZW50LmNhbGxiYWNrID0gY2JcblxuICAgICAgICAgIC8vIFJlcGxheSBhbGwgVHVyYm9wYWNrIG1lc3NhZ2VzIGJlZm9yZSB3ZSB3ZXJlIGFibGUgdG8gZXN0YWJsaXNoIHRoZSBITVIgY2xpZW50LlxuICAgICAgICAgIGZvciAoY29uc3QgbXNnIG9mIGN1cnJlbnQucXVldWUhKSB7XG4gICAgICAgICAgICBjYihtc2cpXG4gICAgICAgICAgfVxuICAgICAgICAgIGN1cnJlbnQucXVldWUgPSB1bmRlZmluZWRcbiAgICAgICAgfSxcbiAgICAgICAgc2VuZE1lc3NhZ2UsXG4gICAgICAgIG9uVXBkYXRlRXJyb3IsXG4gICAgICB9KVxuICAgIH0pXG4gIH0sIFtzZW5kTWVzc2FnZSwgb25VcGRhdGVFcnJvcl0pXG5cbiAgcmV0dXJuIHByb2Nlc3NUdXJib3BhY2tNZXNzYWdlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VXZWJzb2NrZXRQaW5nKFxuICB3ZWJzb2NrZXRSZWY6IFJldHVyblR5cGU8dHlwZW9mIHVzZVdlYnNvY2tldD5cbikge1xuICBjb25zdCBzZW5kTWVzc2FnZSA9IHVzZVNlbmRNZXNzYWdlKHdlYnNvY2tldFJlZilcbiAgY29uc3QgeyB0cmVlIH0gPSB1c2VDb250ZXh0KEdsb2JhbExheW91dFJvdXRlckNvbnRleHQpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBOZXZlciBzZW5kIHBpbmdzIHdoZW4gdXNpbmcgVHVyYm9wYWNrIGFzIGl0J3Mgbm90IHVzZWQuXG4gICAgLy8gUGluZ3Mgd2VyZSBvcmlnaW5hbGx5IHVzZWQgdG8ga2VlcCB0cmFjayBvZiBhY3RpdmUgcm91dGVzIGluIG9uLWRlbWFuZC1lbnRyaWVzIHdpdGggd2VicGFjay5cbiAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBUYWtlbiBmcm9tIG9uLWRlbWFuZC1lbnRyaWVzLWNsaWVudC5qc1xuICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBldmVudDogJ3BpbmcnLFxuICAgICAgICAgIHRyZWUsXG4gICAgICAgICAgYXBwRGlyUm91dGU6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSwgMjUwMClcbiAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbChpbnRlcnZhbClcbiAgfSwgW3RyZWUsIHNlbmRNZXNzYWdlXSlcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTZW5kTWVzc2FnZSIsInVzZVR1cmJvcGFjayIsInVzZVdlYnNvY2tldCIsInVzZVdlYnNvY2tldFBpbmciLCJhc3NldFByZWZpeCIsIndlYlNvY2tldFJlZiIsInVzZVJlZiIsInVuZGVmaW5lZCIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJ1cmwiLCJnZXRTb2NrZXRVcmwiLCJ3aW5kb3ciLCJXZWJTb2NrZXQiLCJzZW5kTWVzc2FnZSIsInVzZUNhbGxiYWNrIiwiZGF0YSIsInNvY2tldCIsInJlYWR5U3RhdGUiLCJPUEVOIiwic2VuZCIsIm9uVXBkYXRlRXJyb3IiLCJ0dXJib3BhY2tTdGF0ZSIsImluaXQiLCJxdWV1ZSIsImNhbGxiYWNrIiwicHJvY2Vzc1R1cmJvcGFja01lc3NhZ2UiLCJtc2ciLCJwdXNoIiwiaW5pdEN1cnJlbnQiLCJ0aGVuIiwiY29ubmVjdCIsImFkZE1lc3NhZ2VMaXN0ZW5lciIsImNiIiwid2Vic29ja2V0UmVmIiwidHJlZSIsInVzZUNvbnRleHQiLCJHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0IiwicHJvY2VzcyIsImVudiIsIlRVUkJPUEFDSyIsImludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJKU09OIiwic3RyaW5naWZ5IiwiZXZlbnQiLCJhcHBEaXJSb3V0ZSIsImNsZWFySW50ZXJ2YWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/app/use-websocket.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js ***!
\**************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSocketUrl\", ({\n enumerable: true,\n get: function() {\n return getSocketUrl;\n }\n}));\nconst _normalizedassetprefix = __webpack_require__(/*! ../../../shared/lib/normalized-asset-prefix */ \"(ssr)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js\");\nfunction getSocketProtocol(assetPrefix) {\n let protocol = window.location.protocol;\n try {\n // assetPrefix is a url\n protocol = new URL(assetPrefix).protocol;\n } catch (e) {}\n return protocol === 'http:' ? 'ws:' : 'wss:';\n}\nfunction getSocketUrl(assetPrefix) {\n const prefix = (0, _normalizedassetprefix.normalizedAssetPrefix)(assetPrefix);\n const protocol = getSocketProtocol(assetPrefix || '');\n if (URL.canParse(prefix)) {\n // since normalized asset prefix is ensured to be a URL format,\n // we can safely replace the protocol\n return prefix.replace(/^http/, 'ws');\n }\n const { hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? \":\" + port : '') + prefix;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-socket-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL2dldC1zb2NrZXQtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBYWdCQTs7O2VBQUFBOzs7bURBYnNCO0FBRXRDLFNBQVNDLGtCQUFrQkMsV0FBbUI7SUFDNUMsSUFBSUMsV0FBV0MsT0FBT0MsUUFBUSxDQUFDRixRQUFRO0lBRXZDLElBQUk7UUFDRix1QkFBdUI7UUFDdkJBLFdBQVcsSUFBSUcsSUFBSUosYUFBYUMsUUFBUTtJQUMxQyxFQUFFLFVBQU0sQ0FBQztJQUVULE9BQU9BLGFBQWEsVUFBVSxRQUFRO0FBQ3hDO0FBRU8sU0FBU0gsYUFBYUUsV0FBK0I7SUFDMUQsTUFBTUssU0FBU0MsQ0FBQUEsR0FBQUEsdUJBQUFBLHFCQUFBQSxFQUFzQk47SUFDckMsTUFBTUMsV0FBV0Ysa0JBQWtCQyxlQUFlO0lBRWxELElBQUlJLElBQUlHLFFBQVEsQ0FBQ0YsU0FBUztRQUN4QiwrREFBK0Q7UUFDL0QscUNBQXFDO1FBQ3JDLE9BQU9BLE9BQU9HLE9BQU8sQ0FBQyxTQUFTO0lBQ2pDO0lBRUEsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRSxHQUFHUixPQUFPQyxRQUFRO0lBQzFDLE9BQVVGLFdBQVMsT0FBSVEsV0FBV0MsQ0FBQUEsT0FBUSxNQUFHQSxPQUFTLEdBQUMsR0FBSUw7QUFDN0QiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvZGV2L2hvdC1yZWxvYWRlci9nZXQtc29ja2V0LXVybC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemVkQXNzZXRQcmVmaXggfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbGliL25vcm1hbGl6ZWQtYXNzZXQtcHJlZml4J1xuXG5mdW5jdGlvbiBnZXRTb2NrZXRQcm90b2NvbChhc3NldFByZWZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHByb3RvY29sID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sXG5cbiAgdHJ5IHtcbiAgICAvLyBhc3NldFByZWZpeCBpcyBhIHVybFxuICAgIHByb3RvY29sID0gbmV3IFVSTChhc3NldFByZWZpeCkucHJvdG9jb2xcbiAgfSBjYXRjaCB7fVxuXG4gIHJldHVybiBwcm90b2NvbCA9PT0gJ2h0dHA6JyA/ICd3czonIDogJ3dzczonXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTb2NrZXRVcmwoYXNzZXRQcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIGNvbnN0IHByZWZpeCA9IG5vcm1hbGl6ZWRBc3NldFByZWZpeChhc3NldFByZWZpeClcbiAgY29uc3QgcHJvdG9jb2wgPSBnZXRTb2NrZXRQcm90b2NvbChhc3NldFByZWZpeCB8fCAnJylcblxuICBpZiAoVVJMLmNhblBhcnNlKHByZWZpeCkpIHtcbiAgICAvLyBzaW5jZSBub3JtYWxpemVkIGFzc2V0IHByZWZpeCBpcyBlbnN1cmVkIHRvIGJlIGEgVVJMIGZvcm1hdCxcbiAgICAvLyB3ZSBjYW4gc2FmZWx5IHJlcGxhY2UgdGhlIHByb3RvY29sXG4gICAgcmV0dXJuIHByZWZpeC5yZXBsYWNlKC9eaHR0cC8sICd3cycpXG4gIH1cblxuICBjb25zdCB7IGhvc3RuYW1lLCBwb3J0IH0gPSB3aW5kb3cubG9jYXRpb25cbiAgcmV0dXJuIGAke3Byb3RvY29sfS8vJHtob3N0bmFtZX0ke3BvcnQgPyBgOiR7cG9ydH1gIDogJyd9JHtwcmVmaXh9YFxufVxuIl0sIm5hbWVzIjpbImdldFNvY2tldFVybCIsImdldFNvY2tldFByb3RvY29sIiwiYXNzZXRQcmVmaXgiLCJwcm90b2NvbCIsIndpbmRvdyIsImxvY2F0aW9uIiwiVVJMIiwicHJlZml4Iiwibm9ybWFsaXplZEFzc2V0UHJlZml4IiwiY2FuUGFyc2UiLCJyZXBsYWNlIiwiaG9zdG5hbWUiLCJwb3J0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/shared.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/client/dev/hot-reloader/shared.js ***!
\******************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n REACT_REFRESH_FULL_RELOAD: function() {\n return REACT_REFRESH_FULL_RELOAD;\n },\n REACT_REFRESH_FULL_RELOAD_FROM_ERROR: function() {\n return REACT_REFRESH_FULL_RELOAD_FROM_ERROR;\n },\n reportInvalidHmrMessage: function() {\n return reportInvalidHmrMessage;\n }\n});\nconst REACT_REFRESH_FULL_RELOAD = '[Fast Refresh] performing full reload\\n\\n' + \"Fast Refresh will perform a full reload when you edit a file that's imported by modules outside of the React rendering tree.\\n\" + 'You might have a file which exports a React component but also exports a value that is imported by a non-React component file.\\n' + 'Consider migrating the non-React component export to a separate file and importing it into both files.\\n\\n' + 'It is also possible the parent component of the component you edited is a class component, which disables Fast Refresh.\\n' + 'Fast Refresh requires at least one parent function component in your React tree.';\nconst REACT_REFRESH_FULL_RELOAD_FROM_ERROR = '[Fast Refresh] performing full reload because your application had an unrecoverable error';\nfunction reportInvalidHmrMessage(message, err) {\n console.warn('[HMR] Invalid message: ' + JSON.stringify(message) + '\\n' + (err instanceof Error && (err == null ? void 0 : err.stack) || ''));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=shared.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL3NoYXJlZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFFYUEseUJBQXlCO2VBQXpCQTs7SUFRQUMsb0NBQW9DO2VBQXBDQTs7SUFHR0MsdUJBQXVCO2VBQXZCQTs7O0FBWFQsTUFBTUYsNEJBQ1gsOENBQ0EsbUlBQ0EscUlBQ0EsK0dBQ0EsOEhBQ0E7QUFFSyxNQUFNQyx1Q0FDWDtBQUVLLFNBQVNDLHdCQUNkQyxPQUFpRCxFQUNqREMsR0FBWTtJQUVaQyxRQUFRQyxJQUFJLENBQ1YsNEJBQ0VDLEtBQUtDLFNBQVMsQ0FBQ0wsV0FDZixPQUNDLENBQUNDLGVBQWVLLFVBQVNMLE9BQUFBLE9BQUFBLEtBQUFBLElBQUFBLElBQUtNLEtBQUFBLEtBQVUsR0FBQztBQUVoRCIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL3NoYXJlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhNUl9BQ1RJT05fVFlQRVMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvZGV2L2hvdC1yZWxvYWRlci10eXBlcydcblxuZXhwb3J0IGNvbnN0IFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQUQgPVxuICAnW0Zhc3QgUmVmcmVzaF0gcGVyZm9ybWluZyBmdWxsIHJlbG9hZFxcblxcbicgK1xuICBcIkZhc3QgUmVmcmVzaCB3aWxsIHBlcmZvcm0gYSBmdWxsIHJlbG9hZCB3aGVuIHlvdSBlZGl0IGEgZmlsZSB0aGF0J3MgaW1wb3J0ZWQgYnkgbW9kdWxlcyBvdXRzaWRlIG9mIHRoZSBSZWFjdCByZW5kZXJpbmcgdHJlZS5cXG5cIiArXG4gICdZb3UgbWlnaHQgaGF2ZSBhIGZpbGUgd2hpY2ggZXhwb3J0cyBhIFJlYWN0IGNvbXBvbmVudCBidXQgYWxzbyBleHBvcnRzIGEgdmFsdWUgdGhhdCBpcyBpbXBvcnRlZCBieSBhIG5vbi1SZWFjdCBjb21wb25lbnQgZmlsZS5cXG4nICtcbiAgJ0NvbnNpZGVyIG1pZ3JhdGluZyB0aGUgbm9uLVJlYWN0IGNvbXBvbmVudCBleHBvcnQgdG8gYSBzZXBhcmF0ZSBmaWxlIGFuZCBpbXBvcnRpbmcgaXQgaW50byBib3RoIGZpbGVzLlxcblxcbicgK1xuICAnSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGUgcGFyZW50IGNvbXBvbmVudCBvZiB0aGUgY29tcG9uZW50IHlvdSBlZGl0ZWQgaXMgYSBjbGFzcyBjb21wb25lbnQsIHdoaWNoIGRpc2FibGVzIEZhc3QgUmVmcmVzaC5cXG4nICtcbiAgJ0Zhc3QgUmVmcmVzaCByZXF1aXJlcyBhdCBsZWFzdCBvbmUgcGFyZW50IGZ1bmN0aW9uIGNvbXBvbmVudCBpbiB5b3VyIFJlYWN0IHRyZWUuJ1xuXG5leHBvcnQgY29uc3QgUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SID1cbiAgJ1tGYXN0IFJlZnJlc2hdIHBlcmZvcm1pbmcgZnVsbCByZWxvYWQgYmVjYXVzZSB5b3VyIGFwcGxpY2F0aW9uIGhhZCBhbiB1bnJlY292ZXJhYmxlIGVycm9yJ1xuXG5leHBvcnQgZnVuY3Rpb24gcmVwb3J0SW52YWxpZEhtck1lc3NhZ2UoXG4gIG1lc3NhZ2U6IEhNUl9BQ1RJT05fVFlQRVMgfCBNZXNzYWdlRXZlbnQ8dW5rbm93bj4sXG4gIGVycjogdW5rbm93blxuKSB7XG4gIGNvbnNvbGUud2FybihcbiAgICAnW0hNUl0gSW52YWxpZCBtZXNzYWdlOiAnICtcbiAgICAgIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpICtcbiAgICAgICdcXG4nICtcbiAgICAgICgoZXJyIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyPy5zdGFjaykgfHwgJycpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEIiwiUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SIiwicmVwb3J0SW52YWxpZEhtck1lc3NhZ2UiLCJtZXNzYWdlIiwiZXJyIiwiY29uc29sZSIsIndhcm4iLCJKU09OIiwic3RyaW5naWZ5IiwiRXJyb3IiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/shared.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js ***!
\*****************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"TurbopackHmr\", ({\n enumerable: true,\n get: function() {\n return TurbopackHmr;\n }\n}));\nconst _class_private_field_loose_base = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_base */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_base.js\");\nconst _class_private_field_loose_key = __webpack_require__(/*! @swc/helpers/_/_class_private_field_loose_key */ \"(ssr)/./node_modules/@swc/helpers/esm/_class_private_field_loose_key.js\");\n// How long to wait before reporting the HMR start, used to suppress irrelevant\n// `BUILDING` events. Does not impact reported latency.\nconst TURBOPACK_HMR_START_DELAY_MS = 100;\nvar _updatedModules = /*#__PURE__*/ _class_private_field_loose_key._(\"_updatedModules\"), _startMsSinceEpoch = /*#__PURE__*/ _class_private_field_loose_key._(\"_startMsSinceEpoch\"), _lastUpdateMsSinceEpoch = /*#__PURE__*/ _class_private_field_loose_key._(\"_lastUpdateMsSinceEpoch\"), _deferredReportHmrStartId = /*#__PURE__*/ _class_private_field_loose_key._(\"_deferredReportHmrStartId\"), // as it reports *any* compilation, including fully no-op/cached compilations\n// and those unrelated to HMR. Fixing this would require significant\n// architectural changes.\n//\n// Work around this by deferring any \"rebuilding\" message by 100ms. If we get\n// a BUILT event within that threshold and nothing has changed, just suppress\n// the message entirely.\n_runDeferredReportHmrStart = /*#__PURE__*/ _class_private_field_loose_key._(\"_runDeferredReportHmrStart\"), _cancelDeferredReportHmrStart = /*#__PURE__*/ _class_private_field_loose_key._(\"_cancelDeferredReportHmrStart\"), /** Helper for other `onEvent` methods. */ _onUpdate = /*#__PURE__*/ _class_private_field_loose_key._(\"_onUpdate\");\nclass TurbopackHmr {\n onBuilding() {\n _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] = undefined;\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch] = Date.now();\n // report the HMR start after a short delay\n _class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] = setTimeout(()=>_class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart](), self.__NEXT_HMR_TURBOPACK_REPORT_NOISY_NOOP_EVENTS ? 0 : TURBOPACK_HMR_START_DELAY_MS);\n }\n onTurbopackMessage(msg) {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n const updatedModules = extractModulesFromTurbopackMessage(msg.data);\n for (const module1 of updatedModules){\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules].add(module1);\n }\n }\n onServerComponentChanges() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n onReloadPage() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n onPageAddRemove() {\n _class_private_field_loose_base._(this, _onUpdate)[_onUpdate]();\n }\n /**\n * @returns `null` if the caller should ignore the update entirely. Returns an\n * object with `hasUpdates: false` if the caller should report the end of\n * the HMR in the browser console, but the HMR was a no-op.\n */ onBuilt() {\n // Check that we got *any* `TurbopackMessageAction`, even if\n // `updatedModules` is empty (not everything gets recorded there).\n //\n // There's also a case where `onBuilt` gets called before `onBuilding`,\n // which can happen during initial page load. Ignore that too!\n const hasUpdates = _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] != null && _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch] != null;\n if (!hasUpdates && _class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] != null) {\n // suppress the update entirely\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n return null;\n }\n _class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart]();\n var _class_private_field_loose_base__lastUpdateMsSinceEpoch;\n const result = {\n hasUpdates,\n updatedModules: _class_private_field_loose_base._(this, _updatedModules)[_updatedModules],\n startMsSinceEpoch: _class_private_field_loose_base._(this, _startMsSinceEpoch)[_startMsSinceEpoch],\n endMsSinceEpoch: (_class_private_field_loose_base__lastUpdateMsSinceEpoch = _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch]) != null ? _class_private_field_loose_base__lastUpdateMsSinceEpoch : Date.now()\n };\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules] = new Set();\n return result;\n }\n constructor(){\n Object.defineProperty(this, _runDeferredReportHmrStart, {\n value: runDeferredReportHmrStart\n });\n Object.defineProperty(this, _cancelDeferredReportHmrStart, {\n value: cancelDeferredReportHmrStart\n });\n Object.defineProperty(this, _onUpdate, {\n value: onUpdate\n });\n Object.defineProperty(this, _updatedModules, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _startMsSinceEpoch, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _lastUpdateMsSinceEpoch, {\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, _deferredReportHmrStartId, {\n writable: true,\n value: void 0\n });\n _class_private_field_loose_base._(this, _updatedModules)[_updatedModules] = new Set();\n }\n}\nfunction runDeferredReportHmrStart() {\n if (_class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] != null) {\n console.log('[Fast Refresh] rebuilding');\n _class_private_field_loose_base._(this, _cancelDeferredReportHmrStart)[_cancelDeferredReportHmrStart]();\n }\n}\nfunction cancelDeferredReportHmrStart() {\n clearTimeout(_class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId]);\n _class_private_field_loose_base._(this, _deferredReportHmrStartId)[_deferredReportHmrStartId] = undefined;\n}\nfunction onUpdate() {\n _class_private_field_loose_base._(this, _runDeferredReportHmrStart)[_runDeferredReportHmrStart]();\n _class_private_field_loose_base._(this, _lastUpdateMsSinceEpoch)[_lastUpdateMsSinceEpoch] = Date.now();\n}\nfunction extractModulesFromTurbopackMessage(data) {\n const updatedModules = new Set();\n const updates = Array.isArray(data) ? data : [\n data\n ];\n for (const update of updates){\n // TODO this won't capture changes to CSS since they don't result in a \"merged\" update\n if (update.type !== 'partial' || update.instruction.type !== 'ChunkListUpdate' || update.instruction.merged === undefined) {\n continue;\n }\n for (const mergedUpdate of update.instruction.merged){\n for (const name of Object.keys(mergedUpdate.entries)){\n const res = /(.*)\\s+\\[.*/.exec(name);\n if (res === null) {\n console.error('[Turbopack HMR] Expected module to match pattern: ' + name);\n continue;\n }\n updatedModules.add(res[1]);\n }\n }\n }\n return updatedModules;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=turbopack-hot-reloader-common.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LXJlbG9hZGVyL3R1cmJvcGFjay1ob3QtcmVsb2FkZXItY29tbW9uLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBb0JhQTs7O2VBQUFBOzs7OztBQVhiLCtFQUErRTtBQUMvRSx1REFBdUQ7QUFDdkQsTUFBTUMsK0JBQStCO0lBVW5DLHFGQUNBLDJGQUNBLHFHQUNBLHlHQU1BLDRFQUE0RSxDQUNDO0FBQzdFLG9FQUFvRTtBQUNwRSx5QkFBeUI7QUFDekIsRUFBRTtBQUNGLDZFQUE2RTtBQUM3RSw2RUFBNkU7QUFDN0Usd0JBQXdCO0FBQ3hCLDJHQU9BLGlIQW9CQSx3Q0FBd0MsR0FDeEM7QUE5Q0ssTUFBTUQ7SUE4QlhFLGFBQWE7UUFDWCxzQ0FBSSxFQUFDLG9EQUEwQkM7UUFDL0Isc0NBQUksRUFBQztRQUNMLHNDQUFJLEVBQUMsMENBQXFCQyxLQUFLQyxHQUFHO1FBRWxDLDJDQUEyQztRQUMzQyxzQ0FBSSxFQUFDLHdEQUE0QkMsV0FDL0IsSUFBTSxzQ0FBSSxFQUFDLDJEQUNYLEtBQ0tFLDZDQUE2QyxHQUM5QyxJQUNBUCxpQkFIc0U7SUFLOUU7SUFRQVEsbUJBQW1CQyxHQUEyQixFQUFFO1FBQzlDLHNDQUFJLEVBQUM7UUFDTCxNQUFNQyxpQkFBaUJDLG1DQUFtQ0YsSUFBSUcsSUFBSTtRQUNsRSxLQUFLLE1BQU1DLFdBQVVILGVBQWdCO1lBQ25DLHNDQUFJLEVBQUMsa0NBQWdCSSxHQUFHLENBQUNEO1FBQzNCO0lBQ0Y7SUFFQUUsMkJBQTJCO1FBQ3pCLHNDQUFJLEVBQUM7SUFDUDtJQUVBQyxlQUFlO1FBQ2Isc0NBQUksRUFBQztJQUNQO0lBRUFDLGtCQUFrQjtRQUNoQixzQ0FBSSxFQUFDO0lBQ1A7SUFFQTs7OztHQUlDLEdBQ0RDLFVBQTRCO1FBQzFCLDREQUE0RDtRQUM1RCxrRUFBa0U7UUFDbEUsRUFBRTtRQUNGLHVFQUF1RTtRQUN2RSw4REFBOEQ7UUFDOUQsTUFBTUMsYUFDSixzQ0FBSSxFQUFDLHFEQUEyQixRQUFRLHNDQUFJLEVBQUMsMkNBQXNCO1FBQ3JFLElBQUksQ0FBQ0EsY0FBYyxzQ0FBSSxFQUFDLHlEQUE2QixNQUFNO1lBQ3pELCtCQUErQjtZQUMvQixzQ0FBSSxFQUFDO1lBQ0wsT0FBTztRQUNUO1FBQ0Esc0NBQUksRUFBQzs7UUFFTCxNQUFNQyxTQUFTO1lBQ2JEO1lBQ0FULGNBQWMsRUFBRSxzQ0FBSSxFQUFDO1lBQ3JCVyxpQkFBaUIsRUFBRSxzQ0FBSSxFQUFDO1lBQ3hCQyxpQkFBaUIsaUdBQUksRUFBQyx1SEFBMkJuQixLQUFLQyxHQUFHO1FBQzNEO1FBQ0Esc0NBQUksRUFBQyxvQ0FBa0IsSUFBSW1CO1FBQzNCLE9BQU9IO0lBQ1Q7SUE3RkFJLGFBQWM7UUFZZDttQkFBQTs7UUFPQTttQkFBQTs7UUFxQkE7bUJBQUE7O1FBN0NBOzttQkFBQTs7UUFDQTs7bUJBQUE7O1FBQ0E7O21CQUFBOztRQUNBOzttQkFBQTs7UUFHRSxzQ0FBSSxFQUFDLG9DQUFrQixJQUFJRDtJQUM3QjtBQTRGRjtBQWxGRTtJQUNFLElBQUksc0NBQUksRUFBQyx5REFBNkIsTUFBTTtRQUMxQ0UsUUFBUUMsR0FBRyxDQUFDO1FBQ1osc0NBQUksRUFBQztJQUNQO0FBQ0Y7QUFFQTtJQUNFQyxhQUFhLHNDQUFJLEVBQUM7SUFDbEIsc0NBQUksRUFBQyx3REFBNEJ6QjtBQUNuQztBQWtCQTtJQUNFLHNDQUFJLEVBQUM7SUFDTCxzQ0FBSSxFQUFDLG9EQUEwQkMsS0FBS0MsR0FBRztBQUN6QztBQXFERixTQUFTTyxtQ0FDUEMsSUFBeUM7SUFFekMsTUFBTUYsaUJBQThCLElBQUlhO0lBRXhDLE1BQU1LLFVBQVVDLE1BQU1DLE9BQU8sQ0FBQ2xCLFFBQVFBLE9BQU87UUFBQ0E7S0FBSztJQUNuRCxLQUFLLE1BQU1tQixVQUFVSCxRQUFTO1FBQzVCLHNGQUFzRjtRQUN0RixJQUNFRyxPQUFPQyxJQUFJLEtBQUssYUFDaEJELE9BQU9FLFdBQVcsQ0FBQ0QsSUFBSSxLQUFLLHFCQUM1QkQsT0FBT0UsV0FBVyxDQUFDQyxNQUFNLEtBQUtoQyxXQUM5QjtZQUNBO1FBQ0Y7UUFFQSxLQUFLLE1BQU1pQyxnQkFBZ0JKLE9BQU9FLFdBQVcsQ0FBQ0MsTUFBTSxDQUFFO1lBQ3BELEtBQUssTUFBTUUsUUFBUUMsT0FBT0MsSUFBSSxDQUFDSCxhQUFhSSxPQUFPLEVBQUc7Z0JBQ3BELE1BQU1DLE1BQU0sY0FBY0MsSUFBSSxDQUFDTDtnQkFDL0IsSUFBSUksUUFBUSxNQUFNO29CQUNoQmYsUUFBUWlCLEtBQUssQ0FDWCx1REFBdUROO29CQUV6RDtnQkFDRjtnQkFFQTFCLGVBQWVJLEdBQUcsQ0FBQzBCLEdBQUcsQ0FBQyxFQUFFO1lBQzNCO1FBQ0Y7SUFDRjtJQUVBLE9BQU85QjtBQUNUIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2Rldi9ob3QtcmVsb2FkZXIvdHVyYm9wYWNrLWhvdC1yZWxvYWRlci1jb21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUdXJib3BhY2tNZXNzYWdlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFVwZGF0ZSBhcyBUdXJib3BhY2tVcGRhdGUgfSBmcm9tICcuLi8uLi8uLi9idWlsZC9zd2MvdHlwZXMnXG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgX19ORVhUX0hNUl9UVVJCT1BBQ0tfUkVQT1JUX05PSVNZX05PT1BfRVZFTlRTOiBib29sZWFuIHwgdW5kZWZpbmVkXG4gIH1cbn1cblxuLy8gSG93IGxvbmcgdG8gd2FpdCBiZWZvcmUgcmVwb3J0aW5nIHRoZSBITVIgc3RhcnQsIHVzZWQgdG8gc3VwcHJlc3MgaXJyZWxldmFudFxuLy8gYEJVSUxESU5HYCBldmVudHMuIERvZXMgbm90IGltcGFjdCByZXBvcnRlZCBsYXRlbmN5LlxuY29uc3QgVFVSQk9QQUNLX0hNUl9TVEFSVF9ERUxBWV9NUyA9IDEwMFxuXG5pbnRlcmZhY2UgSG1yVXBkYXRlIHtcbiAgaGFzVXBkYXRlczogYm9vbGVhblxuICB1cGRhdGVkTW9kdWxlczogU2V0PHN0cmluZz5cbiAgc3RhcnRNc1NpbmNlRXBvY2g6IG51bWJlclxuICBlbmRNc1NpbmNlRXBvY2g6IG51bWJlclxufVxuXG5leHBvcnQgY2xhc3MgVHVyYm9wYWNrSG1yIHtcbiAgI3VwZGF0ZWRNb2R1bGVzOiBTZXQ8c3RyaW5nPlxuICAjc3RhcnRNc1NpbmNlRXBvY2g6IG51bWJlciB8IHVuZGVmaW5lZFxuICAjbGFzdFVwZGF0ZU1zU2luY2VFcG9jaDogbnVtYmVyIHwgdW5kZWZpbmVkXG4gICNkZWZlcnJlZFJlcG9ydEhtclN0YXJ0SWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jdXBkYXRlZE1vZHVsZXMgPSBuZXcgU2V0KClcbiAgfVxuXG4gIC8vIEhBQ0s6IFR1cmJvcGFjayB0ZW5kcyB0byBnZW5lcmF0ZSBhIGxvdCBvZiBpcnJlbGV2YW50IFwiQlVJTERJTkdcIiBhY3Rpb25zLFxuICAvLyBhcyBpdCByZXBvcnRzICphbnkqIGNvbXBpbGF0aW9uLCBpbmNsdWRpbmcgZnVsbHkgbm8tb3AvY2FjaGVkIGNvbXBpbGF0aW9uc1xuICAvLyBhbmQgdGhvc2UgdW5yZWxhdGVkIHRvIEhNUi4gRml4aW5nIHRoaXMgd291bGQgcmVxdWlyZSBzaWduaWZpY2FudFxuICAvLyBhcmNoaXRlY3R1cmFsIGNoYW5nZXMuXG4gIC8vXG4gIC8vIFdvcmsgYXJvdW5kIHRoaXMgYnkgZGVmZXJyaW5nIGFueSBcInJlYnVpbGRpbmdcIiBtZXNzYWdlIGJ5IDEwMG1zLiBJZiB3ZSBnZXRcbiAgLy8gYSBCVUlMVCBldmVudCB3aXRoaW4gdGhhdCB0aHJlc2hvbGQgYW5kIG5vdGhpbmcgaGFzIGNoYW5nZWQsIGp1c3Qgc3VwcHJlc3NcbiAgLy8gdGhlIG1lc3NhZ2UgZW50aXJlbHkuXG4gICNydW5EZWZlcnJlZFJlcG9ydEhtclN0YXJ0KCkge1xuICAgIGlmICh0aGlzLiNkZWZlcnJlZFJlcG9ydEhtclN0YXJ0SWQgIT0gbnVsbCkge1xuICAgICAgY29uc29sZS5sb2coJ1tGYXN0IFJlZnJlc2hdIHJlYnVpbGRpbmcnKVxuICAgICAgdGhpcy4jY2FuY2VsRGVmZXJyZWRSZXBvcnRIbXJTdGFydCgpXG4gICAgfVxuICB9XG5cbiAgI2NhbmNlbERlZmVycmVkUmVwb3J0SG1yU3RhcnQoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuI2RlZmVycmVkUmVwb3J0SG1yU3RhcnRJZClcbiAgICB0aGlzLiNkZWZlcnJlZFJlcG9ydEhtclN0YXJ0SWQgPSB1bmRlZmluZWRcbiAgfVxuXG4gIG9uQnVpbGRpbmcoKSB7XG4gICAgdGhpcy4jbGFzdFVwZGF0ZU1zU2luY2VFcG9jaCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuI2NhbmNlbERlZmVycmVkUmVwb3J0SG1yU3RhcnQoKVxuICAgIHRoaXMuI3N0YXJ0TXNTaW5jZUVwb2NoID0gRGF0ZS5ub3coKVxuXG4gICAgLy8gcmVwb3J0IHRoZSBITVIgc3RhcnQgYWZ0ZXIgYSBzaG9ydCBkZWxheVxuICAgIHRoaXMuI2RlZmVycmVkUmVwb3J0SG1yU3RhcnRJZCA9IHNldFRpbWVvdXQoXG4gICAgICAoKSA9PiB0aGlzLiNydW5EZWZlcnJlZFJlcG9ydEhtclN0YXJ0KCksXG4gICAgICAvLyBkZWJ1Z2dpbmcgZmVhdHVyZTogZG9uJ3QgZGVmZXIvc3VwcHJlc3Mgbm9pc3kgbm8tb3AgSE1SIHVwZGF0ZSBtZXNzYWdlc1xuICAgICAgc2VsZi5fX05FWFRfSE1SX1RVUkJPUEFDS19SRVBPUlRfTk9JU1lfTk9PUF9FVkVOVFNcbiAgICAgICAgPyAwXG4gICAgICAgIDogVFVSQk9QQUNLX0hNUl9TVEFSVF9ERUxBWV9NU1xuICAgIClcbiAgfVxuXG4gIC8qKiBIZWxwZXIgZm9yIG90aGVyIGBvbkV2ZW50YCBtZXRob2RzLiAqL1xuICAjb25VcGRhdGUoKSB7XG4gICAgdGhpcy4jcnVuRGVmZXJyZWRSZXBvcnRIbXJTdGFydCgpXG4gICAgdGhpcy4jbGFzdFVwZGF0ZU1zU2luY2VFcG9jaCA9IERhdGUubm93KClcbiAgfVxuXG4gIG9uVHVyYm9wYWNrTWVzc2FnZShtc2c6IFR1cmJvcGFja01lc3NhZ2VBY3Rpb24pIHtcbiAgICB0aGlzLiNvblVwZGF0ZSgpXG4gICAgY29uc3QgdXBkYXRlZE1vZHVsZXMgPSBleHRyYWN0TW9kdWxlc0Zyb21UdXJib3BhY2tNZXNzYWdlKG1zZy5kYXRhKVxuICAgIGZvciAoY29uc3QgbW9kdWxlIG9mIHVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICB0aGlzLiN1cGRhdGVkTW9kdWxlcy5hZGQobW9kdWxlKVxuICAgIH1cbiAgfVxuXG4gIG9uU2VydmVyQ29tcG9uZW50Q2hhbmdlcygpIHtcbiAgICB0aGlzLiNvblVwZGF0ZSgpXG4gIH1cblxuICBvblJlbG9hZFBhZ2UoKSB7XG4gICAgdGhpcy4jb25VcGRhdGUoKVxuICB9XG5cbiAgb25QYWdlQWRkUmVtb3ZlKCkge1xuICAgIHRoaXMuI29uVXBkYXRlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBgbnVsbGAgaWYgdGhlIGNhbGxlciBzaG91bGQgaWdub3JlIHRoZSB1cGRhdGUgZW50aXJlbHkuIFJldHVybnMgYW5cbiAgICogICBvYmplY3Qgd2l0aCBgaGFzVXBkYXRlczogZmFsc2VgIGlmIHRoZSBjYWxsZXIgc2hvdWxkIHJlcG9ydCB0aGUgZW5kIG9mXG4gICAqICAgdGhlIEhNUiBpbiB0aGUgYnJvd3NlciBjb25zb2xlLCBidXQgdGhlIEhNUiB3YXMgYSBuby1vcC5cbiAgICovXG4gIG9uQnVpbHQoKTogSG1yVXBkYXRlIHwgbnVsbCB7XG4gICAgLy8gQ2hlY2sgdGhhdCB3ZSBnb3QgKmFueSogYFR1cmJvcGFja01lc3NhZ2VBY3Rpb25gLCBldmVuIGlmXG4gICAgLy8gYHVwZGF0ZWRNb2R1bGVzYCBpcyBlbXB0eSAobm90IGV2ZXJ5dGhpbmcgZ2V0cyByZWNvcmRlZCB0aGVyZSkuXG4gICAgLy9cbiAgICAvLyBUaGVyZSdzIGFsc28gYSBjYXNlIHdoZXJlIGBvbkJ1aWx0YCBnZXRzIGNhbGxlZCBiZWZvcmUgYG9uQnVpbGRpbmdgLFxuICAgIC8vIHdoaWNoIGNhbiBoYXBwZW4gZHVyaW5nIGluaXRpYWwgcGFnZSBsb2FkLiBJZ25vcmUgdGhhdCB0b28hXG4gICAgY29uc3QgaGFzVXBkYXRlcyA9XG4gICAgICB0aGlzLiNsYXN0VXBkYXRlTXNTaW5jZUVwb2NoICE9IG51bGwgJiYgdGhpcy4jc3RhcnRNc1NpbmNlRXBvY2ggIT0gbnVsbFxuICAgIGlmICghaGFzVXBkYXRlcyAmJiB0aGlzLiNkZWZlcnJlZFJlcG9ydEhtclN0YXJ0SWQgIT0gbnVsbCkge1xuICAgICAgLy8gc3VwcHJlc3MgdGhlIHVwZGF0ZSBlbnRpcmVseVxuICAgICAgdGhpcy4jY2FuY2VsRGVmZXJyZWRSZXBvcnRIbXJTdGFydCgpXG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICB0aGlzLiNydW5EZWZlcnJlZFJlcG9ydEhtclN0YXJ0KClcblxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIGhhc1VwZGF0ZXMsXG4gICAgICB1cGRhdGVkTW9kdWxlczogdGhpcy4jdXBkYXRlZE1vZHVsZXMsXG4gICAgICBzdGFydE1zU2luY2VFcG9jaDogdGhpcy4jc3RhcnRNc1NpbmNlRXBvY2ghLFxuICAgICAgZW5kTXNTaW5jZUVwb2NoOiB0aGlzLiNsYXN0VXBkYXRlTXNTaW5jZUVwb2NoID8/IERhdGUubm93KCksXG4gICAgfVxuICAgIHRoaXMuI3VwZGF0ZWRNb2R1bGVzID0gbmV3IFNldCgpXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RNb2R1bGVzRnJvbVR1cmJvcGFja01lc3NhZ2UoXG4gIGRhdGE6IFR1cmJvcGFja1VwZGF0ZSB8IFR1cmJvcGFja1VwZGF0ZVtdXG4pOiBTZXQ8c3RyaW5nPiB7XG4gIGNvbnN0IHVwZGF0ZWRNb2R1bGVzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKVxuXG4gIGNvbnN0IHVwZGF0ZXMgPSBBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXVxuICBmb3IgKGNvbnN0IHVwZGF0ZSBvZiB1cGRhdGVzKSB7XG4gICAgLy8gVE9ETyB0aGlzIHdvbid0IGNhcHR1cmUgY2hhbmdlcyB0byBDU1Mgc2luY2UgdGhleSBkb24ndCByZXN1bHQgaW4gYSBcIm1lcmdlZFwiIHVwZGF0ZVxuICAgIGlmIChcbiAgICAgIHVwZGF0ZS50eXBlICE9PSAncGFydGlhbCcgfHxcbiAgICAgIHVwZGF0ZS5pbnN0cnVjdGlvbi50eXBlICE9PSAnQ2h1bmtMaXN0VXBkYXRlJyB8fFxuICAgICAgdXBkYXRlLmluc3RydWN0aW9uLm1lcmdlZCA9PT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgbWVyZ2VkVXBkYXRlIG9mIHVwZGF0ZS5pbnN0cnVjdGlvbi5tZXJnZWQpIHtcbiAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBPYmplY3Qua2V5cyhtZXJnZWRVcGRhdGUuZW50cmllcykpIHtcbiAgICAgICAgY29uc3QgcmVzID0gLyguKilcXHMrXFxbLiovLmV4ZWMobmFtZSlcbiAgICAgICAgaWYgKHJlcyA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAnW1R1cmJvcGFjayBITVJdIEV4cGVjdGVkIG1vZHVsZSB0byBtYXRjaCBwYXR0ZXJuOiAnICsgbmFtZVxuICAgICAgICAgIClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG5cbiAgICAgICAgdXBkYXRlZE1vZHVsZXMuYWRkKHJlc1sxXSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdXBkYXRlZE1vZHVsZXNcbn1cbiJdLCJuYW1lcyI6WyJUdXJib3BhY2tIbXIiLCJUVVJCT1BBQ0tfSE1SX1NUQVJUX0RFTEFZX01TIiwib25CdWlsZGluZyIsInVuZGVmaW5lZCIsIkRhdGUiLCJub3ciLCJzZXRUaW1lb3V0Iiwic2VsZiIsIl9fTkVYVF9ITVJfVFVSQk9QQUNLX1JFUE9SVF9OT0lTWV9OT09QX0VWRU5UUyIsIm9uVHVyYm9wYWNrTWVzc2FnZSIsIm1zZyIsInVwZGF0ZWRNb2R1bGVzIiwiZXh0cmFjdE1vZHVsZXNGcm9tVHVyYm9wYWNrTWVzc2FnZSIsImRhdGEiLCJtb2R1bGUiLCJhZGQiLCJvblNlcnZlckNvbXBvbmVudENoYW5nZXMiLCJvblJlbG9hZFBhZ2UiLCJvblBhZ2VBZGRSZW1vdmUiLCJvbkJ1aWx0IiwiaGFzVXBkYXRlcyIsInJlc3VsdCIsInN0YXJ0TXNTaW5jZUVwb2NoIiwiZW5kTXNTaW5jZUVwb2NoIiwiU2V0IiwiY29uc3RydWN0b3IiLCJjb25zb2xlIiwibG9nIiwiY2xlYXJUaW1lb3V0IiwidXBkYXRlcyIsIkFycmF5IiwiaXNBcnJheSIsInVwZGF0ZSIsInR5cGUiLCJpbnN0cnVjdGlvbiIsIm1lcmdlZCIsIm1lcmdlZFVwZGF0ZSIsIm5hbWUiLCJPYmplY3QiLCJrZXlzIiwiZW50cmllcyIsInJlcyIsImV4ZWMiLCJlcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/dev/noop-turbopack-hmr.js":
/*!*****************************************************************!*\
!*** ./node_modules/next/dist/client/dev/noop-turbopack-hmr.js ***!
\*****************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("// The Turbopack HMR client can't be properly omitted at the moment (WEB-1589),\n// so instead we remap its import to this file in webpack builds.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"connect\", ({\n enumerable: true,\n get: function() {\n return connect;\n }\n}));\nfunction connect() {}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=noop-turbopack-hmr.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvbm9vcC10dXJib3BhY2staG1yLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtFQUErRTtBQUMvRSxpRUFBaUU7Ozs7OzJDQUNqREE7OztlQUFBQTs7O0FBQVQsU0FBU0EsV0FBVyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL2NsaWVudC9kZXYvbm9vcC10dXJib3BhY2staG1yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBUdXJib3BhY2sgSE1SIGNsaWVudCBjYW4ndCBiZSBwcm9wZXJseSBvbWl0dGVkIGF0IHRoZSBtb21lbnQgKFdFQi0xNTg5KSxcbi8vIHNvIGluc3RlYWQgd2UgcmVtYXAgaXRzIGltcG9ydCB0byB0aGlzIGZpbGUgaW4gd2VicGFjayBidWlsZHMuXG5leHBvcnQgZnVuY3Rpb24gY29ubmVjdCgpIHt9XG4iXSwibmFtZXMiOlsiY29ubmVjdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/noop-turbopack-hmr.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/dev/report-hmr-latency.js":
/*!*****************************************************************!*\
!*** ./node_modules/next/dist/client/dev/report-hmr-latency.js ***!
\*****************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return reportHmrLatency;\n }\n}));\nfunction reportHmrLatency(sendMessage, updatedModules, startMsSinceEpoch, endMsSinceEpoch, hasUpdate) {\n if (hasUpdate === void 0) hasUpdate = true;\n const latencyMs = endMsSinceEpoch - startMsSinceEpoch;\n console.log(\"[Fast Refresh] done in \" + latencyMs + \"ms\");\n if (!hasUpdate) {\n return;\n }\n sendMessage(JSON.stringify({\n event: 'client-hmr-latency',\n id: window.__nextDevClientId,\n startTime: startMsSinceEpoch,\n endTime: endMsSinceEpoch,\n page: window.location.pathname,\n updatedModules,\n // Whether the page (tab) was hidden at the time the event occurred.\n // This can impact the accuracy of the event's timing.\n isPageHidden: document.visibilityState === 'hidden'\n }));\n if (self.__NEXT_HMR_LATENCY_CB) {\n self.__NEXT_HMR_LATENCY_CB(latencyMs);\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=report-hmr-latency.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvcmVwb3J0LWhtci1sYXRlbmN5LmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBaUJBOzs7ZUFBd0JBOzs7QUFBVCxTQUFTQSxpQkFDdEJDLFdBQXNDLEVBQ3RDQyxjQUE4QyxFQUM5Q0MsaUJBQXlCLEVBQ3pCQyxlQUF1QixFQUN2QkMsU0FBeUI7SUFBekJBLElBQUFBLGNBQUFBLEtBQUFBLEdBQUFBLFlBQXFCO0lBRXJCLE1BQU1DLFlBQVlGLGtCQUFrQkQ7SUFDcENJLFFBQVFDLEdBQUcsQ0FBRSw0QkFBeUJGLFlBQVU7SUFDaEQsSUFBSSxDQUFDRCxXQUFXO1FBQ2Q7SUFDRjtJQUNBSixZQUNFUSxLQUFLQyxTQUFTLENBQUM7UUFDYkMsT0FBTztRQUNQQyxJQUFJQyxPQUFPQyxpQkFBaUI7UUFDNUJDLFdBQVdaO1FBQ1hhLFNBQVNaO1FBQ1RhLE1BQU1KLE9BQU9LLFFBQVEsQ0FBQ0MsUUFBUTtRQUM5QmpCO1FBQ0Esb0VBQW9FO1FBQ3BFLHNEQUFzRDtRQUN0RGtCLGNBQWNDLFNBQVNDLGVBQWUsS0FBSztJQUM3QztJQUVGLElBQUlDLEtBQUtDLHFCQUFxQixFQUFFO1FBQzlCRCxLQUFLQyxxQkFBcUIsQ0FBQ2xCO0lBQzdCO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvZGV2L3JlcG9ydC1obXItbGF0ZW5jeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJkZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIF9fTkVYVF9ITVJfTEFURU5DWV9DQjogKChsYXRlbmN5TXM6IG51bWJlcikgPT4gdm9pZCkgfCB1bmRlZmluZWRcbiAgfVxufVxuXG4vKipcbiAqIExvZ3MgaW5mb3JtYXRpb24gYWJvdXQgYSBjb21wbGV0ZWQgSE1SIHRvIHRoZSBjb25zb2xlLCB0aGUgc2VydmVyICh2aWEgYVxuICogYGNsaWVudC1obXItbGF0ZW5jeWAgZXZlbnQpLCBhbmQgdG8gYHNlbGYuX19ORVhUX0hNUl9MQVRFTkNZX0NCYCAoYSBkZWJ1Z2dpbmdcbiAqIGhvb2spLlxuICpcbiAqIEBwYXJhbSBoYXNVcGRhdGUgU2V0IHRoaXMgdG8gYGZhbHNlYCB0byBhdm9pZCByZXBvcnRpbmcgdGhlIEhNUiBldmVudCB2aWEgYVxuICogICBgY2xpZW50LWhtci1sYXRlbmN5YCBldmVudCBvciB0byBgc2VsZi5fX05FWFRfSE1SX0xBVEVOQ1lfQ0JgLiBVc2VkIGJ5XG4gKiAgIHR1cmJvcGFjayB3aGVuIHdlIG11c3QgcmVwb3J0IGEgbWVzc2FnZSB0byB0aGUgYnJvd3NlciBjb25zb2xlIChiZWNhdXNlIHdlXG4gKiAgIGFscmVhZHkgbG9nZ2VkIGEgXCJyZWJ1aWxkaW5nXCIgbWVzc2FnZSksIGJ1dCBpdCdzIG5vdCBhIHJlYWwgSE1SLCBzbyB3ZVxuICogICBkb24ndCB3YW50IHRvIGltcGFjdCBvdXIgdGVsZW1ldHJ5LlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXBvcnRIbXJMYXRlbmN5KFxuICBzZW5kTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZCxcbiAgdXBkYXRlZE1vZHVsZXM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgc3RhcnRNc1NpbmNlRXBvY2g6IG51bWJlcixcbiAgZW5kTXNTaW5jZUVwb2NoOiBudW1iZXIsXG4gIGhhc1VwZGF0ZTogYm9vbGVhbiA9IHRydWVcbikge1xuICBjb25zdCBsYXRlbmN5TXMgPSBlbmRNc1NpbmNlRXBvY2ggLSBzdGFydE1zU2luY2VFcG9jaFxuICBjb25zb2xlLmxvZyhgW0Zhc3QgUmVmcmVzaF0gZG9uZSBpbiAke2xhdGVuY3lNc31tc2ApXG4gIGlmICghaGFzVXBkYXRlKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgc2VuZE1lc3NhZ2UoXG4gICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZXZlbnQ6ICdjbGllbnQtaG1yLWxhdGVuY3knLFxuICAgICAgaWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgIHN0YXJ0VGltZTogc3RhcnRNc1NpbmNlRXBvY2gsXG4gICAgICBlbmRUaW1lOiBlbmRNc1NpbmNlRXBvY2gsXG4gICAgICBwYWdlOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICB1cGRhdGVkTW9kdWxlcyxcbiAgICAgIC8vIFdoZXRoZXIgdGhlIHBhZ2UgKHRhYikgd2FzIGhpZGRlbiBhdCB0aGUgdGltZSB0aGUgZXZlbnQgb2NjdXJyZWQuXG4gICAgICAvLyBUaGlzIGNhbiBpbXBhY3QgdGhlIGFjY3VyYWN5IG9mIHRoZSBldmVudCdzIHRpbWluZy5cbiAgICAgIGlzUGFnZUhpZGRlbjogZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJyxcbiAgICB9KVxuICApXG4gIGlmIChzZWxmLl9fTkVYVF9ITVJfTEFURU5DWV9DQikge1xuICAgIHNlbGYuX19ORVhUX0hNUl9MQVRFTkNZX0NCKGxhdGVuY3lNcylcbiAgfVxufVxuIl0sIm5hbWVzIjpbInJlcG9ydEhtckxhdGVuY3kiLCJzZW5kTWVzc2FnZSIsInVwZGF0ZWRNb2R1bGVzIiwic3RhcnRNc1NpbmNlRXBvY2giLCJlbmRNc1NpbmNlRXBvY2giLCJoYXNVcGRhdGUiLCJsYXRlbmN5TXMiLCJjb25zb2xlIiwibG9nIiwiSlNPTiIsInN0cmluZ2lmeSIsImV2ZW50IiwiaWQiLCJ3aW5kb3ciLCJfX25leHREZXZDbGllbnRJZCIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJwYWdlIiwibG9jYXRpb24iLCJwYXRobmFtZSIsImlzUGFnZUhpZGRlbiIsImRvY3VtZW50IiwidmlzaWJpbGl0eVN0YXRlIiwic2VsZiIsIl9fTkVYVF9ITVJfTEFURU5DWV9DQiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/report-hmr-latency.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js":
/*!********************************************************************!*\
!*** ./node_modules/next/dist/client/dev/runtime-error-handler.js ***!
\********************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RuntimeErrorHandler\", ({\n enumerable: true,\n get: function() {\n return RuntimeErrorHandler;\n }\n}));\nconst RuntimeErrorHandler = {\n hadRuntimeError: false\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=runtime-error-handler.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvcnVudGltZS1lcnJvci1oYW5kbGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHNCQUFzQjtJQUNqQ0MsaUJBQWlCO0FBQ25CIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvY2xpZW50L2Rldi9ydW50aW1lLWVycm9yLWhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFJ1bnRpbWVFcnJvckhhbmRsZXIgPSB7XG4gIGhhZFJ1bnRpbWVFcnJvcjogZmFsc2UsXG59XG4iXSwibmFtZXMiOlsiUnVudGltZUVycm9ySGFuZGxlciIsImhhZFJ1bnRpbWVFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/flight-data-helpers.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/client/flight-data-helpers.js ***!
\**************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getFlightDataPartsFromPath: function() {\n return getFlightDataPartsFromPath;\n },\n getNextFlightSegmentPath: function() {\n return getNextFlightSegmentPath;\n },\n normalizeFlightData: function() {\n return normalizeFlightData;\n },\n prepareFlightRouterStateForRequest: function() {\n return prepareFlightRouterStateForRequest;\n }\n});\nconst _segment = __webpack_require__(/*! ../shared/lib/segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction getFlightDataPartsFromPath(flightDataPath) {\n // Pick the last 4 items from the `FlightDataPath` to get the [tree, seedData, viewport, isHeadPartial].\n const flightDataPathLength = 4;\n // tree, seedData, and head are *always* the last three items in the `FlightDataPath`.\n const [tree, seedData, head, isHeadPartial] = flightDataPath.slice(-flightDataPathLength);\n // The `FlightSegmentPath` is everything except the last three items. For a root render, it won't be present.\n const segmentPath = flightDataPath.slice(0, -flightDataPathLength);\n var _segmentPath_;\n return {\n // TODO: Unify these two segment path helpers. We are inconsistently pushing an empty segment (\"\")\n // to the start of the segment path in some places which makes it hard to use solely the segment path.\n // Look for \"// TODO-APP: remove ''\" in the codebase.\n pathToSegment: segmentPath.slice(0, -1),\n segmentPath,\n // if the `FlightDataPath` corresponds with the root, there'll be no segment path,\n // in which case we default to ''.\n segment: (_segmentPath_ = segmentPath[segmentPath.length - 1]) != null ? _segmentPath_ : '',\n tree,\n seedData,\n head,\n isHeadPartial,\n isRootRender: flightDataPath.length === flightDataPathLength\n };\n}\nfunction getNextFlightSegmentPath(flightSegmentPath) {\n // Since `FlightSegmentPath` is a repeated tuple of `Segment` and `ParallelRouteKey`, we slice off two items\n // to get the next segment path.\n return flightSegmentPath.slice(2);\n}\nfunction normalizeFlightData(flightData) {\n // FlightData can be a string when the server didn't respond with a proper flight response,\n // or when a redirect happens, to signal to the client that it needs to perform an MPA navigation.\n if (typeof flightData === 'string') {\n return flightData;\n }\n return flightData.map(getFlightDataPartsFromPath);\n}\nfunction prepareFlightRouterStateForRequest(flightRouterState, isHmrRefresh) {\n // HMR requests need the complete, unmodified state for proper functionality\n if (isHmrRefresh) {\n return encodeURIComponent(JSON.stringify(flightRouterState));\n }\n return encodeURIComponent(JSON.stringify(stripClientOnlyDataFromFlightRouterState(flightRouterState)));\n}\n/**\n * Recursively strips client-only data from FlightRouterState while preserving\n * server-needed information for proper rendering decisions.\n */ function stripClientOnlyDataFromFlightRouterState(flightRouterState) {\n const [segment, parallelRoutes, _url, refreshMarker, isRootLayout, hasLoadingBoundary] = flightRouterState;\n // __PAGE__ segments are always fetched from the server, so there's\n // no need to send them up\n const cleanedSegment = stripSearchParamsFromPageSegment(segment);\n // Recursively process parallel routes\n const cleanedParallelRoutes = {};\n for (const [key, childState] of Object.entries(parallelRoutes)){\n cleanedParallelRoutes[key] = stripClientOnlyDataFromFlightRouterState(childState);\n }\n const result = [\n cleanedSegment,\n cleanedParallelRoutes,\n null,\n shouldPreserveRefreshMarker(refreshMarker) ? refreshMarker : null\n ];\n // Append optional fields if present\n if (isRootLayout !== undefined) {\n result[4] = isRootLayout;\n }\n if (hasLoadingBoundary !== undefined) {\n result[5] = hasLoadingBoundary;\n }\n return result;\n}\n/**\n * Strips search parameters from __PAGE__ segments to prevent sensitive\n * client-side data from being sent to the server.\n */ function stripSearchParamsFromPageSegment(segment) {\n if (typeof segment === 'string' && segment.startsWith(_segment.PAGE_SEGMENT_KEY + '?')) {\n return _segment.PAGE_SEGMENT_KEY;\n }\n return segment;\n}\n/**\n * Determines whether the refresh marker should be sent to the server\n * Client-only markers like 'refresh' are stripped, while server-needed markers\n * like 'refetch' and 'inside-shared-layout' are preserved.\n */ function shouldPreserveRefreshMarker(refreshMarker) {\n return Boolean(refreshMarker && refreshMarker !== 'refresh');\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=flight-data-helpers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9mbGlnaHQtZGF0YS1oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdDZ0JBLDBCQUEwQjtlQUExQkE7O0lBNEJBQyx3QkFBd0I7ZUFBeEJBOztJQVFBQyxtQkFBbUI7ZUFBbkJBOztJQW9CQUMsa0NBQWtDO2VBQWxDQTs7O3FDQS9FaUI7QUF1QjFCLFNBQVNILDJCQUNkSSxjQUE4QjtJQUU5Qix3R0FBd0c7SUFDeEcsTUFBTUMsdUJBQXVCO0lBQzdCLHNGQUFzRjtJQUN0RixNQUFNLENBQUNDLE1BQU1DLFVBQVVDLE1BQU1DLGNBQWMsR0FDekNMLGVBQWVNLEtBQUssQ0FBQyxDQUFDTDtJQUN4Qiw2R0FBNkc7SUFDN0csTUFBTU0sY0FBY1AsZUFBZU0sS0FBSyxDQUFDLEdBQUcsQ0FBQ0w7UUFVbENNO0lBUlgsT0FBTztRQUNMLGtHQUFrRztRQUNsRyxzR0FBc0c7UUFDdEcscURBQXFEO1FBQ3JEQyxlQUFlRCxZQUFZRCxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3JDQztRQUNBLGtGQUFrRjtRQUNsRixrQ0FBa0M7UUFDbENFLFNBQVNGLENBQUFBLGdCQUFBQSxXQUFXLENBQUNBLFlBQVlHLE1BQU0sR0FBRyxPQUFFLE9BQW5DSCxnQkFBdUM7UUFDaERMO1FBQ0FDO1FBQ0FDO1FBQ0FDO1FBQ0FNLGNBQWNYLGVBQWVVLE1BQU0sS0FBS1Q7SUFDMUM7QUFDRjtBQUVPLFNBQVNKLHlCQUNkZSxpQkFBb0M7SUFFcEMsNEdBQTRHO0lBQzVHLGdDQUFnQztJQUNoQyxPQUFPQSxrQkFBa0JOLEtBQUssQ0FBQztBQUNqQztBQUVPLFNBQVNSLG9CQUNkZSxVQUFzQjtJQUV0QiwyRkFBMkY7SUFDM0Ysa0dBQWtHO0lBQ2xHLElBQUksT0FBT0EsZUFBZSxVQUFVO1FBQ2xDLE9BQU9BO0lBQ1Q7SUFFQSxPQUFPQSxXQUFXQyxHQUFHLENBQUNsQjtBQUN4QjtBQVVPLFNBQVNHLG1DQUNkZ0IsaUJBQW9DLEVBQ3BDQyxZQUFzQjtJQUV0Qiw0RUFBNEU7SUFDNUUsSUFBSUEsY0FBYztRQUNoQixPQUFPQyxtQkFBbUJDLEtBQUtDLFNBQVMsQ0FBQ0o7SUFDM0M7SUFFQSxPQUFPRSxtQkFDTEMsS0FBS0MsU0FBUyxDQUFDQyx5Q0FBeUNMO0FBRTVEO0FBRUE7OztDQUdDLEdBQ0QsU0FBU0sseUNBQ1BMLGlCQUFvQztJQUVwQyxNQUFNLENBQ0pOLFNBQ0FZLGdCQUNBQyxNQUNBQyxlQUNBQyxjQUNBQyxtQkFDRCxHQUFHVjtJQUVKLG1FQUFtRTtJQUNuRSwwQkFBMEI7SUFDMUIsTUFBTVcsaUJBQWlCQyxpQ0FBaUNsQjtJQUV4RCxzQ0FBc0M7SUFDdEMsTUFBTW1CLHdCQUE4RCxDQUFDO0lBQ3JFLEtBQUssTUFBTSxDQUFDQyxLQUFLQyxXQUFXLElBQUlDLE9BQU9DLE9BQU8sQ0FBQ1gsZ0JBQWlCO1FBQzlETyxxQkFBcUIsQ0FBQ0MsSUFBSSxHQUN4QlQseUNBQXlDVTtJQUM3QztJQUVBLE1BQU1HLFNBQTRCO1FBQ2hDUDtRQUNBRTtRQUNBO1FBQ0FNLDRCQUE0QlgsaUJBQWlCQSxnQkFBZ0I7S0FDOUQ7SUFFRCxvQ0FBb0M7SUFDcEMsSUFBSUMsaUJBQWlCVyxXQUFXO1FBQzlCRixNQUFNLENBQUMsRUFBRSxHQUFHVDtJQUNkO0lBQ0EsSUFBSUMsdUJBQXVCVSxXQUFXO1FBQ3BDRixNQUFNLENBQUMsRUFBRSxHQUFHUjtJQUNkO0lBRUEsT0FBT1E7QUFDVDtBQUVBOzs7Q0FHQyxHQUNELFNBQVNOLGlDQUFpQ2xCLE9BQWdCO0lBQ3hELElBQ0UsT0FBT0EsWUFBWSxZQUNuQkEsUUFBUTJCLFVBQVUsQ0FBQ0MsU0FBQUEsZ0JBQWdCLEdBQUcsTUFDdEM7UUFDQSxPQUFPQSxTQUFBQSxnQkFBZ0I7SUFDekI7SUFDQSxPQUFPNUI7QUFDVDtBQUVBOzs7O0NBSUMsR0FDRCxTQUFTeUIsNEJBQ1BYLGFBQW1DO0lBRW5DLE9BQU9lLFFBQVFmLGlCQUFpQkEsa0JBQWtCO0FBQ3BEIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvc3JjL2NsaWVudC9mbGlnaHQtZGF0YS1oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQ2FjaGVOb2RlU2VlZERhdGEsXG4gIEZsaWdodERhdGEsXG4gIEZsaWdodERhdGFQYXRoLFxuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgRmxpZ2h0U2VnbWVudFBhdGgsXG4gIFNlZ21lbnQsXG59IGZyb20gJy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBIZWFkRGF0YSB9IGZyb20gJy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgUEFHRV9TRUdNRU5UX0tFWSB9IGZyb20gJy4uL3NoYXJlZC9saWIvc2VnbWVudCdcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplZEZsaWdodERhdGEgPSB7XG4gIC8qKlxuICAgKiBUaGUgZnVsbCBgRmxpZ2h0U2VnbWVudFBhdGhgIGluY2x1c2l2ZSBvZiB0aGUgZmluYWwgYFNlZ21lbnRgXG4gICAqL1xuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbiAgLyoqXG4gICAqIFRoZSBgRmxpZ2h0U2VnbWVudFBhdGhgIGV4Y2x1c2l2ZSBvZiB0aGUgZmluYWwgYFNlZ21lbnRgXG4gICAqL1xuICBwYXRoVG9TZWdtZW50OiBGbGlnaHRTZWdtZW50UGF0aFxuICBzZWdtZW50OiBTZWdtZW50XG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIHNlZWREYXRhOiBDYWNoZU5vZGVTZWVkRGF0YSB8IG51bGxcbiAgaGVhZDogSGVhZERhdGFcbiAgaXNIZWFkUGFydGlhbDogYm9vbGVhblxuICBpc1Jvb3RSZW5kZXI6IGJvb2xlYW5cbn1cblxuLy8gVE9ETzogV2Ugc2hvdWxkIG9ubHkgaGF2ZSB0byBleHBvcnQgYG5vcm1hbGl6ZUZsaWdodERhdGFgLCBob3dldmVyIGJlY2F1c2UgdGhlIGluaXRpYWwgZmxpZ2h0IGRhdGFcbi8vIHRoYXQgZ2V0cyBwYXNzZWQgdG8gYGNyZWF0ZUluaXRpYWxSb3V0ZXJTdGF0ZWAgZG9lc24ndCBjb25mb3JtIHRvIHRoZSBgRmxpZ2h0RGF0YVBhdGhgIHR5cGUgKGl0J3MgbWlzc2luZyB0aGUgcm9vdCBzZWdtZW50KVxuLy8gd2UncmUgY3VycmVudGx5IGV4cG9ydGluZyBpdCBzbyB3ZSBjYW4gdXNlIGl0IGRpcmVjdGx5LiBUaGlzIHNob3VsZCBiZSBmaXhlZCBhcyBwYXJ0IG9mIHRoZSB1bmlmaWNhdGlvbiBvZlxuLy8gdGhlIGRpZmZlcmVudCB3YXlzIHdlIGV4cHJlc3MgYEZsaWdodFNlZ21lbnRQYXRoYC5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGbGlnaHREYXRhUGFydHNGcm9tUGF0aChcbiAgZmxpZ2h0RGF0YVBhdGg6IEZsaWdodERhdGFQYXRoXG4pOiBOb3JtYWxpemVkRmxpZ2h0RGF0YSB7XG4gIC8vIFBpY2sgdGhlIGxhc3QgNCBpdGVtcyBmcm9tIHRoZSBgRmxpZ2h0RGF0YVBhdGhgIHRvIGdldCB0aGUgW3RyZWUsIHNlZWREYXRhLCB2aWV3cG9ydCwgaXNIZWFkUGFydGlhbF0uXG4gIGNvbnN0IGZsaWdodERhdGFQYXRoTGVuZ3RoID0gNFxuICAvLyB0cmVlLCBzZWVkRGF0YSwgYW5kIGhlYWQgYXJlICphbHdheXMqIHRoZSBsYXN0IHRocmVlIGl0ZW1zIGluIHRoZSBgRmxpZ2h0RGF0YVBhdGhgLlxuICBjb25zdCBbdHJlZSwgc2VlZERhdGEsIGhlYWQsIGlzSGVhZFBhcnRpYWxdID1cbiAgICBmbGlnaHREYXRhUGF0aC5zbGljZSgtZmxpZ2h0RGF0YVBhdGhMZW5ndGgpXG4gIC8vIFRoZSBgRmxpZ2h0U2VnbWVudFBhdGhgIGlzIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBsYXN0IHRocmVlIGl0ZW1zLiBGb3IgYSByb290IHJlbmRlciwgaXQgd29uJ3QgYmUgcHJlc2VudC5cbiAgY29uc3Qgc2VnbWVudFBhdGggPSBmbGlnaHREYXRhUGF0aC5zbGljZSgwLCAtZmxpZ2h0RGF0YVBhdGhMZW5ndGgpXG5cbiAgcmV0dXJuIHtcbiAgICAvLyBUT0RPOiBVbmlmeSB0aGVzZSB0d28gc2VnbWVudCBwYXRoIGhlbHBlcnMuIFdlIGFyZSBpbmNvbnNpc3RlbnRseSBwdXNoaW5nIGFuIGVtcHR5IHNlZ21lbnQgKFwiXCIpXG4gICAgLy8gdG8gdGhlIHN0YXJ0IG9mIHRoZSBzZWdtZW50IHBhdGggaW4gc29tZSBwbGFjZXMgd2hpY2ggbWFrZXMgaXQgaGFyZCB0byB1c2Ugc29sZWx5IHRoZSBzZWdtZW50IHBhdGguXG4gICAgLy8gTG9vayBmb3IgXCIvLyBUT0RPLUFQUDogcmVtb3ZlICcnXCIgaW4gdGhlIGNvZGViYXNlLlxuICAgIHBhdGhUb1NlZ21lbnQ6IHNlZ21lbnRQYXRoLnNsaWNlKDAsIC0xKSxcbiAgICBzZWdtZW50UGF0aCxcbiAgICAvLyBpZiB0aGUgYEZsaWdodERhdGFQYXRoYCBjb3JyZXNwb25kcyB3aXRoIHRoZSByb290LCB0aGVyZSdsbCBiZSBubyBzZWdtZW50IHBhdGgsXG4gICAgLy8gaW4gd2hpY2ggY2FzZSB3ZSBkZWZhdWx0IHRvICcnLlxuICAgIHNlZ21lbnQ6IHNlZ21lbnRQYXRoW3NlZ21lbnRQYXRoLmxlbmd0aCAtIDFdID8/ICcnLFxuICAgIHRyZWUsXG4gICAgc2VlZERhdGEsXG4gICAgaGVhZCxcbiAgICBpc0hlYWRQYXJ0aWFsLFxuICAgIGlzUm9vdFJlbmRlcjogZmxpZ2h0RGF0YVBhdGgubGVuZ3RoID09PSBmbGlnaHREYXRhUGF0aExlbmd0aCxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoKFxuICBmbGlnaHRTZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbik6IEZsaWdodFNlZ21lbnRQYXRoIHtcbiAgLy8gU2luY2UgYEZsaWdodFNlZ21lbnRQYXRoYCBpcyBhIHJlcGVhdGVkIHR1cGxlIG9mIGBTZWdtZW50YCBhbmQgYFBhcmFsbGVsUm91dGVLZXlgLCB3ZSBzbGljZSBvZmYgdHdvIGl0ZW1zXG4gIC8vIHRvIGdldCB0aGUgbmV4dCBzZWdtZW50IHBhdGguXG4gIHJldHVybiBmbGlnaHRTZWdtZW50UGF0aC5zbGljZSgyKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRmxpZ2h0RGF0YShcbiAgZmxpZ2h0RGF0YTogRmxpZ2h0RGF0YVxuKTogTm9ybWFsaXplZEZsaWdodERhdGFbXSB8IHN0cmluZyB7XG4gIC8vIEZsaWdodERhdGEgY2FuIGJlIGEgc3RyaW5nIHdoZW4gdGhlIHNlcnZlciBkaWRuJ3QgcmVzcG9uZCB3aXRoIGEgcHJvcGVyIGZsaWdodCByZXNwb25zZSxcbiAgLy8gb3Igd2hlbiBhIHJlZGlyZWN0IGhhcHBlbnMsIHRvIHNpZ25hbCB0byB0aGUgY2xpZW50IHRoYXQgaXQgbmVlZHMgdG8gcGVyZm9ybSBhbiBNUEEgbmF2aWdhdGlvbi5cbiAgaWYgKHR5cGVvZiBmbGlnaHREYXRhID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmbGlnaHREYXRhXG4gIH1cblxuICByZXR1cm4gZmxpZ2h0RGF0YS5tYXAoZ2V0RmxpZ2h0RGF0YVBhcnRzRnJvbVBhdGgpXG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHByZXBhcmUgdGhlIGZsaWdodCByb3V0ZXIgc3RhdGUgZm9yIHRoZSByZXF1ZXN0LlxuICogSXQgcmVtb3ZlcyBtYXJrZXJzIHRoYXQgYXJlIG5vdCBuZWVkZWQgYnkgdGhlIHNlcnZlciwgYW5kIGFyZSBwdXJlbHkgdXNlZFxuICogZm9yIHN0YXNoaW5nIHN0YXRlIG9uIHRoZSBjbGllbnQuXG4gKiBAcGFyYW0gZmxpZ2h0Um91dGVyU3RhdGUgLSBUaGUgZmxpZ2h0IHJvdXRlciBzdGF0ZSB0byBwcmVwYXJlLlxuICogQHBhcmFtIGlzSG1yUmVmcmVzaCAtIFdoZXRoZXIgdGhpcyBpcyBhbiBITVIgcmVmcmVzaCByZXF1ZXN0LlxuICogQHJldHVybnMgVGhlIHByZXBhcmVkIGZsaWdodCByb3V0ZXIgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlRmxpZ2h0Um91dGVyU3RhdGVGb3JSZXF1ZXN0KFxuICBmbGlnaHRSb3V0ZXJTdGF0ZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIGlzSG1yUmVmcmVzaD86IGJvb2xlYW5cbik6IHN0cmluZyB7XG4gIC8vIEhNUiByZXF1ZXN0cyBuZWVkIHRoZSBjb21wbGV0ZSwgdW5tb2RpZmllZCBzdGF0ZSBmb3IgcHJvcGVyIGZ1bmN0aW9uYWxpdHlcbiAgaWYgKGlzSG1yUmVmcmVzaCkge1xuICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZmxpZ2h0Um91dGVyU3RhdGUpKVxuICB9XG5cbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChcbiAgICBKU09OLnN0cmluZ2lmeShzdHJpcENsaWVudE9ubHlEYXRhRnJvbUZsaWdodFJvdXRlclN0YXRlKGZsaWdodFJvdXRlclN0YXRlKSlcbiAgKVxufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IHN0cmlwcyBjbGllbnQtb25seSBkYXRhIGZyb20gRmxpZ2h0Um91dGVyU3RhdGUgd2hpbGUgcHJlc2VydmluZ1xuICogc2VydmVyLW5lZWRlZCBpbmZvcm1hdGlvbiBmb3IgcHJvcGVyIHJlbmRlcmluZyBkZWNpc2lvbnMuXG4gKi9cbmZ1bmN0aW9uIHN0cmlwQ2xpZW50T25seURhdGFGcm9tRmxpZ2h0Um91dGVyU3RhdGUoXG4gIGZsaWdodFJvdXRlclN0YXRlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuKTogRmxpZ2h0Um91dGVyU3RhdGUge1xuICBjb25zdCBbXG4gICAgc2VnbWVudCxcbiAgICBwYXJhbGxlbFJvdXRlcyxcbiAgICBfdXJsLCAvLyBJbnRlbnRpb25hbGx5IHVudXNlZCAtIFVSTHMgYXJlIGNsaWVudC1vbmx5XG4gICAgcmVmcmVzaE1hcmtlcixcbiAgICBpc1Jvb3RMYXlvdXQsXG4gICAgaGFzTG9hZGluZ0JvdW5kYXJ5LFxuICBdID0gZmxpZ2h0Um91dGVyU3RhdGVcblxuICAvLyBfX1BBR0VfXyBzZWdtZW50cyBhcmUgYWx3YXlzIGZldGNoZWQgZnJvbSB0aGUgc2VydmVyLCBzbyB0aGVyZSdzXG4gIC8vIG5vIG5lZWQgdG8gc2VuZCB0aGVtIHVwXG4gIGNvbnN0IGNsZWFuZWRTZWdtZW50ID0gc3RyaXBTZWFyY2hQYXJhbXNGcm9tUGFnZVNlZ21lbnQoc2VnbWVudClcblxuICAvLyBSZWN1cnNpdmVseSBwcm9jZXNzIHBhcmFsbGVsIHJvdXRlc1xuICBjb25zdCBjbGVhbmVkUGFyYWxsZWxSb3V0ZXM6IHsgW2tleTogc3RyaW5nXTogRmxpZ2h0Um91dGVyU3RhdGUgfSA9IHt9XG4gIGZvciAoY29uc3QgW2tleSwgY2hpbGRTdGF0ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYWxsZWxSb3V0ZXMpKSB7XG4gICAgY2xlYW5lZFBhcmFsbGVsUm91dGVzW2tleV0gPVxuICAgICAgc3RyaXBDbGllbnRPbmx5RGF0YUZyb21GbGlnaHRSb3V0ZXJTdGF0ZShjaGlsZFN0YXRlKVxuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBGbGlnaHRSb3V0ZXJTdGF0ZSA9IFtcbiAgICBjbGVhbmVkU2VnbWVudCxcbiAgICBjbGVhbmVkUGFyYWxsZWxSb3V0ZXMsXG4gICAgbnVsbCwgLy8gVVJMcyBvbWl0dGVkIC0gc2VydmVyIHJlY29uc3RydWN0cyBwYXRocyBmcm9tIHNlZ21lbnRzXG4gICAgc2hvdWxkUHJlc2VydmVSZWZyZXNoTWFya2VyKHJlZnJlc2hNYXJrZXIpID8gcmVmcmVzaE1hcmtlciA6IG51bGwsXG4gIF1cblxuICAvLyBBcHBlbmQgb3B0aW9uYWwgZmllbGRzIGlmIHByZXNlbnRcbiAgaWYgKGlzUm9vdExheW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmVzdWx0WzRdID0gaXNSb290TGF5b3V0XG4gIH1cbiAgaWYgKGhhc0xvYWRpbmdCb3VuZGFyeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmVzdWx0WzVdID0gaGFzTG9hZGluZ0JvdW5kYXJ5XG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbi8qKlxuICogU3RyaXBzIHNlYXJjaCBwYXJhbWV0ZXJzIGZyb20gX19QQUdFX18gc2VnbWVudHMgdG8gcHJldmVudCBzZW5zaXRpdmVcbiAqIGNsaWVudC1zaWRlIGRhdGEgZnJvbSBiZWluZyBzZW50IHRvIHRoZSBzZXJ2ZXIuXG4gKi9cbmZ1bmN0aW9uIHN0cmlwU2VhcmNoUGFyYW1zRnJvbVBhZ2VTZWdtZW50KHNlZ21lbnQ6IFNlZ21lbnQpOiBTZWdtZW50IHtcbiAgaWYgKFxuICAgIHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJyAmJlxuICAgIHNlZ21lbnQuc3RhcnRzV2l0aChQQUdFX1NFR01FTlRfS0VZICsgJz8nKVxuICApIHtcbiAgICByZXR1cm4gUEFHRV9TRUdNRU5UX0tFWVxuICB9XG4gIHJldHVybiBzZWdtZW50XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSByZWZyZXNoIG1hcmtlciBzaG91bGQgYmUgc2VudCB0byB0aGUgc2VydmVyXG4gKiBDbGllbnQtb25seSBtYXJrZXJzIGxpa2UgJ3JlZnJlc2gnIGFyZSBzdHJpcHBlZCwgd2hpbGUgc2VydmVyLW5lZWRlZCBtYXJrZXJzXG4gKiBsaWtlICdyZWZldGNoJyBhbmQgJ2luc2lkZS1zaGFyZWQtbGF5b3V0JyBhcmUgcHJlc2VydmVkLlxuICovXG5mdW5jdGlvbiBzaG91bGRQcmVzZXJ2ZVJlZnJlc2hNYXJrZXIoXG4gIHJlZnJlc2hNYXJrZXI6IEZsaWdodFJvdXRlclN0YXRlWzNdXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW4ocmVmcmVzaE1hcmtlciAmJiByZWZyZXNoTWFya2VyICE9PSAncmVmcmVzaCcpXG59XG4iXSwibmFtZXMiOlsiZ2V0RmxpZ2h0RGF0YVBhcnRzRnJvbVBhdGgiLCJnZXROZXh0RmxpZ2h0U2VnbWVudFBhdGgiLCJub3JtYWxpemVGbGlnaHREYXRhIiwicHJlcGFyZUZsaWdodFJvdXRlclN0YXRlRm9yUmVxdWVzdCIsImZsaWdodERhdGFQYXRoIiwiZmxpZ2h0RGF0YVBhdGhMZW5ndGgiLCJ0cmVlIiwic2VlZERhdGEiLCJoZWFkIiwiaXNIZWFkUGFydGlhbCIsInNsaWNlIiwic2VnbWVudFBhdGgiLCJwYXRoVG9TZWdtZW50Iiwic2VnbWVudCIsImxlbmd0aCIsImlzUm9vdFJlbmRlciIsImZsaWdodFNlZ21lbnRQYXRoIiwiZmxpZ2h0RGF0YSIsIm1hcCIsImZsaWdodFJvdXRlclN0YXRlIiwiaXNIbXJSZWZyZXNoIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiSlNPTiIsInN0cmluZ2lmeSIsInN0cmlwQ2xpZW50T25seURhdGFGcm9tRmxpZ2h0Um91dGVyU3RhdGUiLCJwYXJhbGxlbFJvdXRlcyIsIl91cmwiLCJyZWZyZXNoTWFya2VyIiwiaXNSb290TGF5b3V0IiwiaGFzTG9hZGluZ0JvdW5kYXJ5IiwiY2xlYW5lZFNlZ21lbnQiLCJzdHJpcFNlYXJjaFBhcmFtc0Zyb21QYWdlU2VnbWVudCIsImNsZWFuZWRQYXJhbGxlbFJvdXRlcyIsImtleSIsImNoaWxkU3RhdGUiLCJPYmplY3QiLCJlbnRyaWVzIiwicmVzdWx0Iiwic2hvdWxkUHJlc2VydmVSZWZyZXNoTWFya2VyIiwidW5kZWZpbmVkIiwic3RhcnRzV2l0aCIsIlBBR0VfU0VHTUVOVF9LRVkiLCJCb29sZWFuIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/flight-data-helpers.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/has-base-path.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/client/has-base-path.js ***!
\********************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hasBasePath\", ({\n enumerable: true,\n get: function() {\n return hasBasePath;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ../shared/lib/router/utils/path-has-prefix */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nconst basePath = false || '';\nfunction hasBasePath(path) {\n return (0, _pathhasprefix.pathHasPrefix)(path, basePath);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=has-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9oYXMtYmFzZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBSWdCQTs7O2VBQUFBOzs7MkNBSmM7QUFFOUIsTUFBTUMsV0FBWUMsTUFBa0MsSUFBZTtBQUU1RCxTQUFTRixZQUFZSyxJQUFZO0lBQ3RDLE9BQU9DLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNELE1BQU1KO0FBQzdCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvc3JjL2NsaWVudC9oYXMtYmFzZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXRoLWhhcy1wcmVmaXgnXG5cbmNvbnN0IGJhc2VQYXRoID0gKHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggYXMgc3RyaW5nKSB8fCAnJ1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzQmFzZVBhdGgocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBwYXRoSGFzUHJlZml4KHBhdGgsIGJhc2VQYXRoKVxufVxuIl0sIm5hbWVzIjpbImhhc0Jhc2VQYXRoIiwiYmFzZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1JPVVRFUl9CQVNFUEFUSCIsInBhdGgiLCJwYXRoSGFzUHJlZml4Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/has-base-path.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/image-component.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/client/image-component.js ***!
\**********************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Image\", ({\n enumerable: true,\n get: function() {\n return Image;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"(ssr)/./node_modules/next/dist/shared/lib/head.js\"));\nconst _getimgprops = __webpack_require__(/*! ../shared/lib/get-img-props */ \"(ssr)/./node_modules/next/dist/shared/lib/get-img-props.js\");\nconst _imageconfig = __webpack_require__(/*! ../shared/lib/image-config */ \"(ssr)/./node_modules/next/dist/shared/lib/image-config.js\");\nconst _imageconfigcontextsharedruntime = __webpack_require__(/*! ../shared/lib/image-config-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js\");\nconst _warnonce = __webpack_require__(/*! ../shared/lib/utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js\");\nconst _imageloader = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/shared/lib/image-loader */ \"(ssr)/./node_modules/next/dist/shared/lib/image-loader.js\"));\nconst _usemergedref = __webpack_require__(/*! ./use-merged-ref */ \"(ssr)/./node_modules/next/dist/client/use-merged-ref.js\");\n// This is replaced by webpack define plugin\nconst configEnv = {\"deviceSizes\":[640,750,828,1080,1200,1920,2048,3840],\"imageSizes\":[16,32,48,64,96,128,256,384],\"path\":\"/_next/image\",\"loader\":\"default\",\"dangerouslyAllowSVG\":false,\"unoptimized\":false,\"domains\":[],\"remotePatterns\":[{\"protocol\":\"https\",\"hostname\":\"nextcloud.biohazardvfx.com\"},{\"protocol\":\"https\",\"hostname\":\"f.io\"},{\"protocol\":\"https\",\"hostname\":\"utfs.io\"},{\"protocol\":\"https\",\"hostname\":\"placehold.co\"},{\"protocol\":\"https\",\"hostname\":\"placeholder.com\"},{\"protocol\":\"https\",\"hostname\":\"picsum.photos\"}]};\nif (true) {\n ;\n globalThis.__NEXT_IMAGE_IMPORTED = true;\n}\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput) {\n const src = img == null ? void 0 : img.src;\n if (!img || img['data-loaded-src'] === src) {\n return;\n }\n img['data-loaded-src'] = src;\n const p = 'decode' in img ? img.decode() : Promise.resolve();\n p.catch(()=>{}).then(()=>{\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return;\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true);\n }\n if (onLoadRef == null ? void 0 : onLoadRef.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load');\n Object.defineProperty(event, 'target', {\n writable: false,\n value: img\n });\n let prevented = false;\n let stopped = false;\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: ()=>prevented,\n isPropagationStopped: ()=>stopped,\n persist: ()=>{},\n preventDefault: ()=>{\n prevented = true;\n event.preventDefault();\n },\n stopPropagation: ()=>{\n stopped = true;\n event.stopPropagation();\n }\n });\n }\n if (onLoadingCompleteRef == null ? void 0 : onLoadingCompleteRef.current) {\n onLoadingCompleteRef.current(img);\n }\n if (true) {\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src;\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio = img.getBoundingClientRect().width / window.innerWidth;\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes');\n } else {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes');\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement);\n const valid = [\n 'absolute',\n 'fixed',\n 'relative'\n ];\n if (!valid.includes(position)) {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" and parent element with invalid \"position\". Provided \"' + position + '\" should be one of ' + valid.map(String).join(',') + \".\");\n }\n }\n if (img.height === 0) {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.');\n }\n }\n const heightModified = img.height.toString() !== img.getAttribute('height');\n const widthModified = img.width.toString() !== img.getAttribute('width');\n if (heightModified && !widthModified || !heightModified && widthModified) {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles \\'width: \"auto\"\\' or \\'height: \"auto\"\\' to maintain the aspect ratio.');\n }\n }\n });\n}\nfunction getDynamicProps(fetchPriority) {\n if (Boolean(_react.use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return {\n fetchPriority\n };\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return {\n fetchpriority: fetchPriority\n };\n}\nconst ImageElement = /*#__PURE__*/ (0, _react.forwardRef)((param, forwardedRef)=>{\n let { src, srcSet, sizes, height, width, decoding, className, style, fetchPriority, placeholder, loading, unoptimized, fill, onLoadRef, onLoadingCompleteRef, setBlurComplete, setShowAltText, sizesInput, onLoad, onError, ...rest } = param;\n const ownRef = (0, _react.useCallback)((img)=>{\n if (!img) {\n return;\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src;\n }\n if (true) {\n if (!src) {\n console.error('Image is missing required \"src\" property:', img);\n }\n if (img.getAttribute('alt') === null) {\n console.error('Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.');\n }\n }\n if (img.complete) {\n handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput);\n }\n }, [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n sizesInput\n ]);\n const ref = (0, _usemergedref.useMergedRef)(forwardedRef, ownRef);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"img\", {\n ...rest,\n ...getDynamicProps(fetchPriority),\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading: loading,\n width: width,\n height: height,\n decoding: decoding,\n \"data-nimg\": fill ? 'fill' : '1',\n className: className,\n style: style,\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes: sizes,\n srcSet: srcSet,\n src: src,\n ref: ref,\n onLoad: (event)=>{\n const img = event.currentTarget;\n handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput);\n },\n onError: (event)=>{\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true);\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true);\n }\n if (onError) {\n onError(event);\n }\n }\n });\n});\nfunction ImagePreload(param) {\n let { isAppRouter, imgAttributes } = param;\n const opts = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority)\n };\n if (isAppRouter && _reactdom.default.preload) {\n _reactdom.default.preload(imgAttributes.src, opts);\n return null;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href: imgAttributes.srcSet ? undefined : imgAttributes.src,\n ...opts\n }, '__nimg-' + imgAttributes.src + imgAttributes.srcSet + imgAttributes.sizes)\n });\n}\nconst Image = /*#__PURE__*/ (0, _react.forwardRef)((props, forwardedRef)=>{\n const pagesRouter = (0, _react.useContext)(_routercontextsharedruntime.RouterContext);\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter;\n const configContext = (0, _react.useContext)(_imageconfigcontextsharedruntime.ImageConfigContext);\n const config = (0, _react.useMemo)(()=>{\n var _c_qualities;\n const c = configEnv || configContext || _imageconfig.imageConfigDefault;\n const allSizes = [\n ...c.deviceSizes,\n ...c.imageSizes\n ].sort((a, b)=>a - b);\n const deviceSizes = c.deviceSizes.sort((a, b)=>a - b);\n const qualities = (_c_qualities = c.qualities) == null ? void 0 : _c_qualities.sort((a, b)=>a - b);\n return {\n ...c,\n allSizes,\n deviceSizes,\n qualities\n };\n }, [\n configContext\n ]);\n const { onLoad, onLoadingComplete } = props;\n const onLoadRef = (0, _react.useRef)(onLoad);\n (0, _react.useEffect)(()=>{\n onLoadRef.current = onLoad;\n }, [\n onLoad\n ]);\n const onLoadingCompleteRef = (0, _react.useRef)(onLoadingComplete);\n (0, _react.useEffect)(()=>{\n onLoadingCompleteRef.current = onLoadingComplete;\n }, [\n onLoadingComplete\n ]);\n const [blurComplete, setBlurComplete] = (0, _react.useState)(false);\n const [showAltText, setShowAltText] = (0, _react.useState)(false);\n const { props: imgAttributes, meta: imgMeta } = (0, _getimgprops.getImgProps)(props, {\n defaultLoader: _imageloader.default,\n imgConf: config,\n blurComplete,\n showAltText\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(ImageElement, {\n ...imgAttributes,\n unoptimized: imgMeta.unoptimized,\n placeholder: imgMeta.placeholder,\n fill: imgMeta.fill,\n onLoadRef: onLoadRef,\n onLoadingCompleteRef: onLoadingCompleteRef,\n setBlurComplete: setBlurComplete,\n setShowAltText: setShowAltText,\n sizesInput: props.sizes,\n ref: forwardedRef\n }),\n imgMeta.priority ? /*#__PURE__*/ (0, _jsxruntime.jsx)(ImagePreload, {\n isAppRouter: isAppRouter,\n imgAttributes: imgAttributes\n }) : null\n ]\n });\n});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=image-component.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9pbWFnZS1jb21wb25lbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozt5Q0FxV2FBOzs7ZUFBQUE7Ozs7Ozs2RUExVk47K0VBQ2M7MkVBQ0o7eUNBQ1c7eUNBWU87NkRBQ0E7c0NBQ1Y7d0RBQ0s7a0ZBR0o7MENBQ0c7QUFFN0IsNENBQTRDO0FBQzVDLE1BQU1DLFlBQVlDLHdmQUE2QjtBQUUvQyxJQUFJLElBQTZCLEVBQUU7O0lBQy9CSSxXQUFtQkMscUJBQXFCLEdBQUc7QUFDL0M7QUFtQkEsMEVBQTBFO0FBQzFFLGlEQUFpRDtBQUNqRCxTQUFTQyxjQUNQQyxHQUEyQixFQUMzQkMsV0FBNkIsRUFDN0JDLFNBQXFELEVBQ3JEQyxvQkFBMkUsRUFDM0VDLGVBQXFDLEVBQ3JDQyxXQUFvQixFQUNwQkMsVUFBOEI7SUFFOUIsTUFBTUMsTUFBTVAsT0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsSUFBS08sR0FBRztJQUNwQixJQUFJLENBQUNQLE9BQU9BLEdBQUcsQ0FBQyxrQkFBa0IsS0FBS08sS0FBSztRQUMxQztJQUNGO0lBQ0FQLEdBQUcsQ0FBQyxrQkFBa0IsR0FBR087SUFDekIsTUFBTUMsSUFBSSxZQUFZUixNQUFNQSxJQUFJUyxNQUFNLEtBQUtDLFFBQVFDLE9BQU87SUFDMURILEVBQUVJLEtBQUssQ0FBQyxLQUFPLEdBQUdDLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUNiLElBQUljLGFBQWEsSUFBSSxDQUFDZCxJQUFJZSxXQUFXLEVBQUU7WUFDMUMsd0NBQXdDO1lBQ3hDLHVCQUF1QjtZQUN2QixzQ0FBc0M7WUFDdEMsc0JBQXNCO1lBQ3RCLHVCQUF1QjtZQUN2QjtRQUNGO1FBQ0EsSUFBSWQsZ0JBQWdCLFNBQVM7WUFDM0JHLGdCQUFnQjtRQUNsQjtRQUNBLElBQUlGLGFBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFVBQVdjLE9BQU8sRUFBRTtZQUN0QiwrQ0FBK0M7WUFDL0MsMENBQTBDO1lBQzFD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QUNDQyxhQUFhQTtnQkFDYkMsZUFBZUE7aUJBRWY7OztBQUdWIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvc3JjL2NsaWVudC9pbWFnZS1jb21wb25lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlUmVmLFxuICB1c2VFZmZlY3QsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbiAgZm9yd2FyZFJlZixcbiAgdXNlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgSGVhZCBmcm9tICcuLi9zaGFyZWQvbGliL2hlYWQnXG5pbXBvcnQgeyBnZXRJbWdQcm9wcyB9IGZyb20gJy4uL3NoYXJlZC9saWIvZ2V0LWltZy1wcm9wcydcbmltcG9ydCB0eXBlIHtcbiAgSW1hZ2VQcm9wcyxcbiAgSW1nUHJvcHMsXG4gIE9uTG9hZCxcbiAgT25Mb2FkaW5nQ29tcGxldGUsXG4gIFBsYWNlaG9sZGVyVmFsdWUsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvZ2V0LWltZy1wcm9wcydcbmltcG9ydCB0eXBlIHtcbiAgSW1hZ2VDb25maWdDb21wbGV0ZSxcbiAgSW1hZ2VMb2FkZXJQcm9wcyxcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi9pbWFnZS1jb25maWcnXG5pbXBvcnQgeyBpbWFnZUNvbmZpZ0RlZmF1bHQgfSBmcm9tICcuLi9zaGFyZWQvbGliL2ltYWdlLWNvbmZpZydcbmltcG9ydCB7IEltYWdlQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlJ1xuaW1wb3J0IHsgUm91dGVyQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5cbi8vIFRoaXMgaXMgcmVwbGFjZWQgYnkgd2VicGFjayBhbGlhc1xuaW1wb3J0IGRlZmF1bHRMb2FkZXIgZnJvbSAnbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtbG9hZGVyJ1xuaW1wb3J0IHsgdXNlTWVyZ2VkUmVmIH0gZnJvbSAnLi91c2UtbWVyZ2VkLXJlZidcblxuLy8gVGhpcyBpcyByZXBsYWNlZCBieSB3ZWJwYWNrIGRlZmluZSBwbHVnaW5cbmNvbnN0IGNvbmZpZ0VudiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9JTUFHRV9PUFRTIGFzIGFueSBhcyBJbWFnZUNvbmZpZ0NvbXBsZXRlXG5cbmlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICA7KGdsb2JhbFRoaXMgYXMgYW55KS5fX05FWFRfSU1BR0VfSU1QT1JURUQgPSB0cnVlXG59XG5cbmV4cG9ydCB0eXBlIHsgSW1hZ2VMb2FkZXJQcm9wcyB9XG5leHBvcnQgdHlwZSBJbWFnZUxvYWRlciA9IChwOiBJbWFnZUxvYWRlclByb3BzKSA9PiBzdHJpbmdcblxudHlwZSBJbWdFbGVtZW50V2l0aERhdGFQcm9wID0gSFRNTEltYWdlRWxlbWVudCAmIHtcbiAgJ2RhdGEtbG9hZGVkLXNyYyc6IHN0cmluZyB8IHVuZGVmaW5lZFxufVxuXG50eXBlIEltYWdlRWxlbWVudFByb3BzID0gSW1nUHJvcHMgJiB7XG4gIHVub3B0aW1pemVkOiBib29sZWFuXG4gIHBsYWNlaG9sZGVyOiBQbGFjZWhvbGRlclZhbHVlXG4gIG9uTG9hZFJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxPbkxvYWQgfCB1bmRlZmluZWQ+XG4gIG9uTG9hZGluZ0NvbXBsZXRlUmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PE9uTG9hZGluZ0NvbXBsZXRlIHwgdW5kZWZpbmVkPlxuICBzZXRCbHVyQ29tcGxldGU6IChiOiBib29sZWFuKSA9PiB2b2lkXG4gIHNldFNob3dBbHRUZXh0OiAoYjogYm9vbGVhbikgPT4gdm9pZFxuICBzaXplc0lucHV0OiBzdHJpbmcgfCB1bmRlZmluZWRcbn1cblxuLy8gU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8zOTc3NzgzMy8yNjY1MzUgZm9yIHdoeSB3ZSB1c2UgdGhpcyByZWZcbi8vIGhhbmRsZXIgaW5zdGVhZCBvZiB0aGUgaW1nJ3Mgb25Mb2FkIGF0dHJpYnV0ZS5cbmZ1bmN0aW9uIGhhbmRsZUxvYWRpbmcoXG4gIGltZzogSW1nRWxlbWVudFdpdGhEYXRhUHJvcCxcbiAgcGxhY2Vob2xkZXI6IFBsYWNlaG9sZGVyVmFsdWUsXG4gIG9uTG9hZFJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxPbkxvYWQgfCB1bmRlZmluZWQ+LFxuICBvbkxvYWRpbmdDb21wbGV0ZVJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxPbkxvYWRpbmdDb21wbGV0ZSB8IHVuZGVmaW5lZD4sXG4gIHNldEJsdXJDb21wbGV0ZTogKGI6IGJvb2xlYW4pID0+IHZvaWQsXG4gIHVub3B0aW1pemVkOiBib29sZWFuLFxuICBzaXplc0lucHV0OiBzdHJpbmcgfCB1bmRlZmluZWRcbikge1xuICBjb25zdCBzcmMgPSBpbWc/LnNyY1xuICBpZiAoIWltZyB8fCBpbWdbJ2RhdGEtbG9hZGVkLXNyYyddID09PSBzcmMpIHtcbiAgICByZXR1cm5cbiAgfVxuICBpbWdbJ2RhdGEtbG9hZGVkLXNyYyddID0gc3JjXG4gIGNvbnN0IHAgPSAnZGVjb2RlJyBpbiBpbWcgPyBpbWcuZGVjb2RlKCkgOiBQcm9taXNlLnJlc29sdmUoKVxuICBwLmNhdGNoKCgpID0+IHt9KS50aGVuKCgpID0+IHtcbiAgICBpZiAoIWltZy5wYXJlbnRFbGVtZW50IHx8ICFpbWcuaXNDb25uZWN0ZWQpIHtcbiAgICAgIC8vIEV4aXQgZWFybHkgaW4gY2FzZSBvZiByYWNlIGNvbmRpdGlvbjpcbiAgICAgIC8vIC0gb25sb2FkKCkgaXMgY2FsbGVkXG4gICAgICAvLyAtIGRlY29kZSgpIGlzIGNhbGxlZCBidXQgaW5jb21wbGV0ZVxuICAgICAgLy8gLSB1bm1vdW50IGlzIGNhbGxlZFxuICAgICAgLy8gLSBkZWNvZGUoKSBjb21wbGV0ZXNcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAocGxhY2Vob2xkZXIgIT09ICdlbXB0eScpIHtcbiAgICAgIHNldEJsdXJDb21wbGV0ZSh0cnVlKVxuICAgIH1cbiAgICBpZiAob25Mb2FkUmVmPy5jdXJyZW50KSB7XG4gICAgICAvLyBTaW5jZSB3ZSBkb24ndCBoYXZlIHRoZSBTeW50aGV0aWNFdmVudCBoZXJlLFxuICAgICAgLy8gd2UgbXVzdCBjcmVhdGUgb25lIHdpdGggdGhlIHNhbWUgc2hhcGUuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2V2ZW50cy5odG1sXG4gICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudCgnbG9hZCcpXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsICd0YXJnZXQnLCB7IHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IGltZyB9KVxuICAgICAgbGV0IHByZXZlbnRlZCA9IGZhbHNlXG4gICAgICBsZXQgc3RvcHBlZCA9IGZhbHNlXG4gICAgICBvbkxvYWRSZWYuY3VycmVudCh7XG4gICAgICAgIC4uLmV2ZW50LFxuICAgICAgICBuYXRpdmVFdmVudDogZXZlbnQsXG4gICAgICAgIGN1cnJlbnRUYXJnZXQ6IGltZyxcbiAgICAgICAgdGFyZ2V0OiBpbWcsXG4gICAgICAgIGlzRGVmYXVsdFByZXZlbnRlZDogKCkgPT4gcHJldmVudGVkLFxuICAgICAgICBpc1Byb3BhZ2F0aW9uU3RvcHBlZDogKCkgPT4gc3RvcHBlZCxcbiAgICAgICAgcGVyc2lzdDogKCkgPT4ge30sXG4gICAgICAgIHByZXZlbnREZWZhdWx0OiAoKSA9PiB7XG4gICAgICAgICAgcHJldmVudGVkID0gdHJ1ZVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfSxcbiAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgc3RvcHBlZCA9IHRydWVcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKG9uTG9hZGluZ0NvbXBsZXRlUmVmPy5jdXJyZW50KSB7XG4gICAgICBvbkxvYWRpbmdDb21wbGV0ZVJlZi5jdXJyZW50KGltZylcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnN0IG9yaWdTcmMgPSBuZXcgVVJMKHNyYywgJ2h0dHA6Ly9uJykuc2VhcmNoUGFyYW1zLmdldCgndXJsJykgfHwgc3JjXG4gICAgICBpZiAoaW1nLmdldEF0dHJpYnV0ZSgnZGF0YS1uaW1nJykgPT09ICdmaWxsJykge1xuICAgICAgICBpZiAoIXVub3B0aW1pemVkICYmICghc2l6ZXNJbnB1dCB8fCBzaXplc0lucHV0ID09PSAnMTAwdncnKSkge1xuICAgICAgICAgIGxldCB3aWR0aFZpZXdwb3J0UmF0aW8gPVxuICAgICAgICAgICAgaW1nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC8gd2luZG93LmlubmVyV2lkdGhcbiAgICAgICAgICBpZiAod2lkdGhWaWV3cG9ydFJhdGlvIDwgMC42KSB7XG4gICAgICAgICAgICBpZiAoc2l6ZXNJbnB1dCA9PT0gJzEwMHZ3Jykge1xuICAgICAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke29yaWdTcmN9XCIgaGFzIFwiZmlsbFwiIHByb3AgYW5kIFwic2l6ZXNcIiBwcm9wIG9mIFwiMTAwdndcIiwgYnV0IGltYWdlIGlzIG5vdCByZW5kZXJlZCBhdCBmdWxsIHZpZXdwb3J0IHdpZHRoLiBQbGVhc2UgYWRqdXN0IFwic2l6ZXNcIiB0byBpbXByb3ZlIHBhZ2UgcGVyZm9ybWFuY2UuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2ltYWdlI3NpemVzYFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke29yaWdTcmN9XCIgaGFzIFwiZmlsbFwiIGJ1dCBpcyBtaXNzaW5nIFwic2l6ZXNcIiBwcm9wLiBQbGVhc2UgYWRkIGl0IHRvIGltcHJvdmUgcGFnZSBwZXJmb3JtYW5jZS4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2Ujc2l6ZXNgXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGltZy5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgY29uc3QgeyBwb3NpdGlvbiB9ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoaW1nLnBhcmVudEVsZW1lbnQpXG4gICAgICAgICAgY29uc3QgdmFsaWQgPSBbJ2Fic29sdXRlJywgJ2ZpeGVkJywgJ3JlbGF0aXZlJ11cbiAgICAgICAgICBpZiAoIXZhbGlkLmluY2x1ZGVzKHBvc2l0aW9uKSkge1xuICAgICAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7b3JpZ1NyY31cIiBoYXMgXCJmaWxsXCIgYW5kIHBhcmVudCBlbGVtZW50IHdpdGggaW52YWxpZCBcInBvc2l0aW9uXCIuIFByb3ZpZGVkIFwiJHtwb3NpdGlvbn1cIiBzaG91bGQgYmUgb25lIG9mICR7dmFsaWRcbiAgICAgICAgICAgICAgICAubWFwKFN0cmluZylcbiAgICAgICAgICAgICAgICAuam9pbignLCcpfS5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbWcuaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke29yaWdTcmN9XCIgaGFzIFwiZmlsbFwiIGFuZCBhIGhlaWdodCB2YWx1ZSBvZiAwLiBUaGlzIGlzIGxpa2VseSBiZWNhdXNlIHRoZSBwYXJlbnQgZWxlbWVudCBvZiB0aGUgaW1hZ2UgaGFzIG5vdCBiZWVuIHN0eWxlZCB0byBoYXZlIGEgc2V0IGhlaWdodC5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhlaWdodE1vZGlmaWVkID1cbiAgICAgICAgaW1nLmhlaWdodC50b1N0cmluZygpICE9PSBpbWcuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKVxuICAgICAgY29uc3Qgd2lkdGhNb2RpZmllZCA9IGltZy53aWR0aC50b1N0cmluZygpICE9PSBpbWcuZ2V0QXR0cmlidXRlKCd3aWR0aCcpXG4gICAgICBpZiAoXG4gICAgICAgIChoZWlnaHRNb2RpZmllZCAmJiAhd2lkdGhNb2RpZmllZCkgfHxcbiAgICAgICAgKCFoZWlnaHRNb2RpZmllZCAmJiB3aWR0aE1vZGlmaWVkKVxuICAgICAgKSB7XG4gICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7b3JpZ1NyY31cIiBoYXMgZWl0aGVyIHdpZHRoIG9yIGhlaWdodCBtb2RpZmllZCwgYnV0IG5vdCB0aGUgb3RoZXIuIElmIHlvdSB1c2UgQ1NTIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB5b3VyIGltYWdlLCBhbHNvIGluY2x1ZGUgdGhlIHN0eWxlcyAnd2lkdGg6IFwiYXV0b1wiJyBvciAnaGVpZ2h0OiBcImF1dG9cIicgdG8gbWFpbnRhaW4gdGhlIGFzcGVjdCByYXRpby5gXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG5cbmZ1bmN0aW9uIGdldER5bmFtaWNQcm9wcyhcbiAgZmV0Y2hQcmlvcml0eT86IHN0cmluZ1xuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGlmIChCb29sZWFuKHVzZSkpIHtcbiAgICAvLyBJbiBSZWFjdCAxOS4wLjAgb3IgbmV3ZXIsIHdlIG11c3QgdXNlIGNhbWVsQ2FzZVxuICAgIC8vIHByb3AgdG8gYXZvaWQgXCJXYXJuaW5nOiBJbnZhbGlkIERPTSBwcm9wZXJ0eVwiLlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yNTkyN1xuICAgIHJldHVybiB7IGZldGNoUHJpb3JpdHkgfVxuICB9XG4gIC8vIEluIFJlYWN0IDE4LjIuMCBvciBvbGRlciwgd2UgbXVzdCB1c2UgbG93ZXJjYXNlIHByb3BcbiAgLy8gdG8gYXZvaWQgXCJXYXJuaW5nOiBJbnZhbGlkIERPTSBwcm9wZXJ0eVwiLlxuICByZXR1cm4geyBmZXRjaHByaW9yaXR5OiBmZXRjaFByaW9yaXR5IH1cbn1cblxuY29uc3QgSW1hZ2VFbGVtZW50ID0gZm9yd2FyZFJlZjxIVE1MSW1hZ2VFbGVtZW50IHwgbnVsbCwgSW1hZ2VFbGVtZW50UHJvcHM+KFxuICAoXG4gICAge1xuICAgICAgc3JjLFxuICAgICAgc3JjU2V0LFxuICAgICAgc2l6ZXMsXG4gICAgICBoZWlnaHQsXG4gICAgICB3aWR0aCxcbiAgICAgIGRlY29kaW5nLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgc3R5bGUsXG4gICAgICBmZXRjaFByaW9yaXR5LFxuICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICBsb2FkaW5nLFxuICAgICAgdW5vcHRpbWl6ZWQsXG4gICAgICBmaWxsLFxuICAgICAgb25Mb2FkUmVmLFxuICAgICAgb25Mb2FkaW5nQ29tcGxldGVSZWYsXG4gICAgICBzZXRCbHVyQ29tcGxldGUsXG4gICAgICBzZXRTaG93QWx0VGV4dCxcbiAgICAgIHNpemVzSW5wdXQsXG4gICAgICBvbkxvYWQsXG4gICAgICBvbkVycm9yLFxuICAgICAgLi4ucmVzdFxuICAgIH0sXG4gICAgZm9yd2FyZGVkUmVmXG4gICkgPT4ge1xuICAgIGNvbnN0IG93blJlZiA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGltZzogSW1nRWxlbWVudFdpdGhEYXRhUHJvcCB8IG51bGwpID0+IHtcbiAgICAgICAgaWYgKCFpbWcpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBpZiAob25FcnJvcikge1xuICAgICAgICAgIC8vIElmIHRoZSBpbWFnZSBoYXMgYW4gZXJyb3IgYmVmb3JlIHJlYWN0IGh5ZHJhdGVzLCB0aGVuIHRoZSBlcnJvciBpcyBsb3N0LlxuICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIHRvIHdhaXQgdW50aWwgdGhlIGltYWdlIGlzIG1vdW50ZWQgd2hpY2ggaXMgYWZ0ZXIgaHlkcmF0aW9uLFxuICAgICAgICAgIC8vIHRoZW4gd2Ugc2V0IHRoZSBzcmMgYWdhaW4gdG8gdHJpZ2dlciB0aGUgZXJyb3IgaGFuZGxlciAoaWYgdGhlcmUgd2FzIGFuIGVycm9yKS5cbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1hc3NpZ25cbiAgICAgICAgICBpbWcuc3JjID0gaW1nLnNyY1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgaWYgKCFzcmMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEltYWdlIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJzcmNcIiBwcm9wZXJ0eTpgLCBpbWcpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbWcuZ2V0QXR0cmlidXRlKCdhbHQnKSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgYEltYWdlIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJhbHRcIiBwcm9wZXJ0eS4gUGxlYXNlIGFkZCBBbHRlcm5hdGl2ZSBUZXh0IHRvIGRlc2NyaWJlIHRoZSBpbWFnZSBmb3Igc2NyZWVuIHJlYWRlcnMgYW5kIHNlYXJjaCBlbmdpbmVzLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGltZy5jb21wbGV0ZSkge1xuICAgICAgICAgIGhhbmRsZUxvYWRpbmcoXG4gICAgICAgICAgICBpbWcsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcixcbiAgICAgICAgICAgIG9uTG9hZFJlZixcbiAgICAgICAgICAgIG9uTG9hZGluZ0NvbXBsZXRlUmVmLFxuICAgICAgICAgICAgc2V0Qmx1ckNvbXBsZXRlLFxuICAgICAgICAgICAgdW5vcHRpbWl6ZWQsXG4gICAgICAgICAgICBzaXplc0lucHV0XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICBzcmMsXG4gICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICBvbkxvYWRSZWYsXG4gICAgICAgIG9uTG9hZGluZ0NvbXBsZXRlUmVmLFxuICAgICAgICBzZXRCbHVyQ29tcGxldGUsXG4gICAgICAgIG9uRXJyb3IsXG4gICAgICAgIHVub3B0aW1pemVkLFxuICAgICAgICBzaXplc0lucHV0LFxuICAgICAgXVxuICAgIClcblxuICAgIGNvbnN0IHJlZiA9IHVzZU1lcmdlZFJlZihmb3J3YXJkZWRSZWYsIG93blJlZilcblxuICAgIHJldHVybiAoXG4gICAgICA8aW1nXG4gICAgICAgIHsuLi5yZXN0fVxuICAgICAgICB7Li4uZ2V0RHluYW1pY1Byb3BzKGZldGNoUHJpb3JpdHkpfVxuICAgICAgICAvLyBJdCdzIGludGVuZGVkIHRvIGtlZXAgYGxvYWRpbmdgIGJlZm9yZSBgc3JjYCBiZWNhdXNlIFJlYWN0IHVwZGF0ZXNcbiAgICAgICAgLy8gcHJvcHMgaW4gb3JkZXIgd2hpY2ggY2F1c2VzIFNhZmFyaS9GaXJlZm94IHRvIG5vdCBsYXp5IGxvYWQgcHJvcGVybHkuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzI1ODgzXG4gICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICAgIGRlY29kaW5nPXtkZWNvZGluZ31cbiAgICAgICAgZGF0YS1uaW1nPXtmaWxsID8gJ2ZpbGwnIDogJzEnfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAvLyBJdCdzIGludGVuZGVkIHRvIGtlZXAgYHNyY2AgdGhlIGxhc3QgYXR0cmlidXRlIGJlY2F1c2UgUmVhY3QgdXBkYXRlc1xuICAgICAgICAvLyBhdHRyaWJ1dGVzIGluIG9yZGVyLiBJZiB3ZSBrZWVwIGBzcmNgIHRoZSBmaXJzdCBvbmUsIFNhZmFyaSB3aWxsXG4gICAgICAgIC8vIGltbWVkaWF0ZWx5IHN0YXJ0IHRvIGZldGNoIGBzcmNgLCBiZWZvcmUgYHNpemVzYCBhbmQgYHNyY1NldGAgYXJlIGV2ZW5cbiAgICAgICAgLy8gdXBkYXRlZCBieSBSZWFjdC4gVGhhdCBjYXVzZXMgbXVsdGlwbGUgdW5uZWNlc3NhcnkgcmVxdWVzdHMgaWYgYHNyY1NldGBcbiAgICAgICAgLy8gYW5kIGBzaXplc2AgYXJlIGRlZmluZWQuXG4gICAgICAgIC8vIFRoaXMgYnVnIGNhbm5vdCBiZSByZXByb2R1Y2VkIGluIENocm9tZSBvciBGaXJlZm94LlxuICAgICAgICBzaXplcz17c2l6ZXN9XG4gICAgICAgIHNyY1NldD17c3JjU2V0fVxuICAgICAgICBzcmM9e3NyY31cbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIG9uTG9hZD17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgaW1nID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBJbWdFbGVtZW50V2l0aERhdGFQcm9wXG4gICAgICAgICAgaGFuZGxlTG9hZGluZyhcbiAgICAgICAgICAgIGltZyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgb25Mb2FkUmVmLFxuICAgICAgICAgICAgb25Mb2FkaW5nQ29tcGxldGVSZWYsXG4gICAgICAgICAgICBzZXRCbHVyQ29tcGxldGUsXG4gICAgICAgICAgICB1bm9wdGltaXplZCxcbiAgICAgICAgICAgIHNpemVzSW5wdXRcbiAgICAgICAgICApXG4gICAgICAgIH19XG4gICAgICAgIG9uRXJyb3I9eyhldmVudCkgPT4ge1xuICAgICAgICAgIC8vIGlmIHRoZSByZWFsIGltYWdlIGZhaWxzIHRvIGxvYWQsIHRoaXMgd2lsbCBlbnN1cmUgXCJhbHRcIiBpcyB2aXNpYmxlXG4gICAgICAgICAgc2V0U2hvd0FsdFRleHQodHJ1ZSlcbiAgICAgICAgICBpZiAocGxhY2Vob2xkZXIgIT09ICdlbXB0eScpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSByZWFsIGltYWdlIGZhaWxzIHRvIGxvYWQsIHRoaXMgd2lsbCBzdGlsbCByZW1vdmUgdGhlIHBsYWNlaG9sZGVyLlxuICAgICAgICAgICAgc2V0Qmx1ckNvbXBsZXRlKHRydWUpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChvbkVycm9yKSB7XG4gICAgICAgICAgICBvbkVycm9yKGV2ZW50KVxuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgKVxuICB9XG4pXG5cbmZ1bmN0aW9uIEltYWdlUHJlbG9hZCh7XG4gIGlzQXBwUm91dGVyLFxuICBpbWdBdHRyaWJ1dGVzLFxufToge1xuICBpc0FwcFJvdXRlcjogYm9vbGVhblxuICBpbWdBdHRyaWJ1dGVzOiBJbWdQcm9wc1xufSkge1xuICBjb25zdCBvcHRzOiBSZWFjdERPTS5QcmVsb2FkT3B0aW9ucyA9IHtcbiAgICBhczogJ2ltYWdlJyxcbiAgICBpbWFnZVNyY1NldDogaW1nQXR0cmlidXRlcy5zcmNTZXQsXG4gICAgaW1hZ2VTaXplczogaW1nQXR0cmlidXRlcy5zaXplcyxcbiAgICBjcm9zc09yaWdpbjogaW1nQXR0cmlidXRlcy5jcm9zc09yaWdpbixcbiAgICByZWZlcnJlclBvbGljeTogaW1nQXR0cmlidXRlcy5yZWZlcnJlclBvbGljeSxcbiAgICAuLi5nZXREeW5hbWljUHJvcHMoaW1nQXR0cmlidXRlcy5mZXRjaFByaW9yaXR5KSxcbiAgfVxuXG4gIGlmIChpc0FwcFJvdXRlciAmJiBSZWFjdERPTS5wcmVsb2FkKSB7XG4gICAgUmVhY3RET00ucHJlbG9hZChpbWdBdHRyaWJ1dGVzLnNyYywgb3B0cylcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SGVhZD5cbiAgICAgIDxsaW5rXG4gICAgICAgIGtleT17XG4gICAgICAgICAgJ19fbmltZy0nICtcbiAgICAgICAgICBpbWdBdHRyaWJ1dGVzLnNyYyArXG4gICAgICAgICAgaW1nQXR0cmlidXRlcy5zcmNTZXQgK1xuICAgICAgICAgIGltZ0F0dHJpYnV0ZXMuc2l6ZXNcbiAgICAgICAgfVxuICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgLy8gTm90ZSBob3cgd2Ugb21pdCB0aGUgYGhyZWZgIGF0dHJpYnV0ZSwgYXMgaXQgd291bGQgb25seSBiZSByZWxldmFudFxuICAgICAgICAvLyBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBgaW1hZ2VzcmNzZXRgLCBhbmQgaW4gdGhvc2UgY2FzZXNcbiAgICAgICAgLy8gaXQgd291bGQgY2F1c2UgdGhlIGluY29ycmVjdCBpbWFnZSB0byBiZSBwcmVsb2FkZWQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NlbWFudGljcy5odG1sI2F0dHItbGluay1pbWFnZXNyY3NldFxuICAgICAgICBocmVmPXtpbWdBdHRyaWJ1dGVzLnNyY1NldCA/IHVuZGVmaW5lZCA6IGltZ0F0dHJpYnV0ZXMuc3JjfVxuICAgICAgICB7Li4ub3B0c31cbiAgICAgIC8+XG4gICAgPC9IZWFkPlxuICApXG59XG5cbi8qKlxuICogVGhlIGBJbWFnZWAgY29tcG9uZW50IGlzIHVzZWQgdG8gb3B0aW1pemUgaW1hZ2VzLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgZG9jczogYEltYWdlYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvY29tcG9uZW50cy9pbWFnZSlcbiAqL1xuZXhwb3J0IGNvbnN0IEltYWdlID0gZm9yd2FyZFJlZjxIVE1MSW1hZ2VFbGVtZW50IHwgbnVsbCwgSW1hZ2VQcm9wcz4oXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgcGFnZXNSb3V0ZXIgPSB1c2VDb250ZXh0KFJvdXRlckNvbnRleHQpXG4gICAgLy8gV2UncmUgaW4gdGhlIGFwcCBkaXJlY3RvcnkgaWYgdGhlcmUgaXMgbm8gcGFnZXMgcm91dGVyLlxuICAgIGNvbnN0IGlzQXBwUm91dGVyID0gIXBhZ2VzUm91dGVyXG5cbiAgICBjb25zdCBjb25maWdDb250ZXh0ID0gdXNlQ29udGV4dChJbWFnZUNvbmZpZ0NvbnRleHQpXG4gICAgY29uc3QgY29uZmlnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBjID0gY29uZmlnRW52IHx8IGNvbmZpZ0NvbnRleHQgfHwgaW1hZ2VDb25maWdEZWZhdWx0XG4gICAgICBjb25zdCBhbGxTaXplcyA9IFsuLi5jLmRldmljZVNpemVzLCAuLi5jLmltYWdlU2l6ZXNdLnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuICAgICAgY29uc3QgZGV2aWNlU2l6ZXMgPSBjLmRldmljZVNpemVzLnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuICAgICAgY29uc3QgcXVhbGl0aWVzID0gYy5xdWFsaXRpZXM/LnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuICAgICAgcmV0dXJuIHsgLi4uYywgYWxsU2l6ZXMsIGRldmljZVNpemVzLCBxdWFsaXRpZXMgfVxuICAgIH0sIFtjb25maWdDb250ZXh0XSlcblxuICAgIGNvbnN0IHsgb25Mb2FkLCBvbkxvYWRpbmdDb21wbGV0ZSB9ID0gcHJvcHNcbiAgICBjb25zdCBvbkxvYWRSZWYgPSB1c2VSZWYob25Mb2FkKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIG9uTG9hZFJlZi5jdXJyZW50ID0gb25Mb2FkXG4gICAgfSwgW29uTG9hZF0pXG5cbiAgICBjb25zdCBvbkxvYWRpbmdDb21wbGV0ZVJlZiA9IHVzZVJlZihvbkxvYWRpbmdDb21wbGV0ZSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBvbkxvYWRpbmdDb21wbGV0ZVJlZi5jdXJyZW50ID0gb25Mb2FkaW5nQ29tcGxldGVcbiAgICB9LCBbb25Mb2FkaW5nQ29tcGxldGVdKVxuXG4gICAgY29uc3QgW2JsdXJDb21wbGV0ZSwgc2V0Qmx1ckNvbXBsZXRlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtzaG93QWx0VGV4dCwgc2V0U2hvd0FsdFRleHRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgICBjb25zdCB7IHByb3BzOiBpbWdBdHRyaWJ1dGVzLCBtZXRhOiBpbWdNZXRhIH0gPSBnZXRJbWdQcm9wcyhwcm9wcywge1xuICAgICAgZGVmYXVsdExvYWRlcixcbiAgICAgIGltZ0NvbmY6IGNvbmZpZyxcbiAgICAgIGJsdXJDb21wbGV0ZSxcbiAgICAgIHNob3dBbHRUZXh0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge1xuICAgICAgICAgIDxJbWFnZUVsZW1lbnRcbiAgICAgICAgICAgIHsuLi5pbWdBdHRyaWJ1dGVzfVxuICAgICAgICAgICAgdW5vcHRpbWl6ZWQ9e2ltZ01ldGEudW5vcHRpbWl6ZWR9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17aW1nTWV0YS5wbGFjZWhvbGRlcn1cbiAgICAgICAgICAgIGZpbGw9e2ltZ01ldGEuZmlsbH1cbiAgICAgICAgICAgIG9uTG9hZFJlZj17b25Mb2FkUmVmfVxuICAgICAgICAgICAgb25Mb2FkaW5nQ29tcGxldGVSZWY9e29uTG9hZGluZ0NvbXBsZXRlUmVmfVxuICAgICAgICAgICAgc2V0Qmx1ckNvbXBsZXRlPXtzZXRCbHVyQ29tcGxldGV9XG4gICAgICAgICAgICBzZXRTaG93QWx0VGV4dD17c2V0U2hvd0FsdFRleHR9XG4gICAgICAgICAgICBzaXplc0lucHV0PXtwcm9wcy5zaXplc31cbiAgICAgICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge2ltZ01ldGEucHJpb3JpdHkgPyAoXG4gICAgICAgICAgPEltYWdlUHJlbG9hZFxuICAgICAgICAgICAgaXNBcHBSb3V0ZXI9e2lzQXBwUm91dGVyfVxuICAgICAgICAgICAgaW1nQXR0cmlidXRlcz17aW1nQXR0cmlidXRlc31cbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuKVxuIl0sIm5hbWVzIjpbIkltYWdlIiwiY29uZmlnRW52IiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JTUFHRV9PUFRTIiwid2luZG93IiwiZ2xvYmFsVGhpcyIsIl9fTkVYVF9JTUFHRV9JTVBPUlRFRCIsImhhbmRsZUxvYWRpbmciLCJpbWciLCJwbGFjZWhvbGRlciIsIm9uTG9hZFJlZiIsIm9uTG9hZGluZ0NvbXBsZXRlUmVmIiwic2V0Qmx1ckNvbXBsZXRlIiwidW5vcHRpbWl6ZWQiLCJzaXplc0lucHV0Iiwic3JjIiwicCIsImRlY29kZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2F0Y2giLCJ0aGVuIiwicGFyZW50RWxlbWVudCIsImlzQ29ubmVjdGVkIiwiY3VycmVudCIsImV2ZW50IiwiRXZlbnQiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwidmFsdWUiLCJwcmV2ZW50ZWQiLCJzdG9wcGVkIiwibmF0aXZlRXZlbnQiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwiaXNEZWZhdWx0UHJldmVudGVkIiwiaXNQcm9wYWdhdGlvblN0b3BwZWQiLCJwZXJzaXN0IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJOT0RFX0VOViIsIm9yaWdTcmMiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJnZXQiLCJnZXRBdHRyaWJ1dGUiLCJ3aWR0aFZpZXdwb3J0UmF0aW8iLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ3aWR0aCIsImlubmVyV2lkdGgiLCJ3YXJuT25jZSIsInBvc2l0aW9uIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsInZhbGlkIiwiaW5jbHVkZXMiLCJtYXAiLCJTdHJpbmciLCJqb2luIiwiaGVpZ2h0IiwiaGVpZ2h0TW9kaWZpZWQiLCJ0b1N0cmluZyIsIndpZHRoTW9kaWZpZWQiLCJnZXREeW5hbWljUHJvcHMiLCJmZXRjaFByaW9yaXR5IiwiQm9vbGVhbiIsInVzZSIsImZldGNocHJpb3JpdHkiLCJJbWFnZUVsZW1lbnQiLCJmb3J3YXJkUmVmIiwiZm9yd2FyZGVkUmVmIiwic3JjU2V0Iiwic2l6ZXMiLCJkZWNvZGluZyIsImNsYXNzTmFtZSIsInN0eWxlIiwibG9hZGluZyIsImZpbGwiLCJzZXRTaG93QWx0VGV4dCIsIm9uTG9hZCIsIm9uRXJyb3IiLCJyZXN0Iiwib3duUmVmIiwidXNlQ2FsbGJhY2siLCJjb25zb2xlIiwiZXJyb3IiLCJjb21wbGV0ZSIsInJlZiIsInVzZU1lcmdlZFJlZiIsImRhdGEtbmltZyIsIkltYWdlUHJlbG9hZCIsImlzQXBwUm91dGVyIiwiaW1nQXR0cmlidXRlcyIsIm9wdHMiLCJhcyIsImltYWdlU3JjU2V0IiwiaW1hZ2VTaXplcyIsImNyb3NzT3JpZ2luIiwicmVmZXJyZXJQb2xpY3kiLCJSZWFjdERPTSIsInByZWxvYWQiLCJIZWFkIiwibGluayIsInJlbCIsImhyZWYiLCJ1bmRlZmluZWQiLCJwcm9wcyIsInBhZ2VzUm91dGVyIiwidXNlQ29udGV4dCIsIlJvdXRlckNvbnRleHQiLCJjb25maWdDb250ZXh0IiwiSW1hZ2VDb25maWdDb250ZXh0IiwiY29uZmlnIiwidXNlTWVtbyIsImMiLCJpbWFnZUNvbmZpZ0RlZmF1bHQiLCJhbGxTaXplcyIsImRldmljZVNpemVzIiwic29ydCIsImEiLCJiIiwicXVhbGl0aWVzIiwib25Mb2FkaW5nQ29tcGxldGUiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJibHVyQ29tcGxldGUiLCJ1c2VTdGF0ZSIsInNob3dBbHRUZXh0IiwibWV0YSIsImltZ01ldGEiLCJnZXRJbWdQcm9wcyIsImRlZmF1bHRMb2FkZXIiLCJpbWdDb25mIiwicHJpb3JpdHkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/image-component.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/lib/console.js":
/*!******************************************************!*\
!*** ./node_modules/next/dist/client/lib/console.js ***!
\******************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatConsoleArgs: function() {\n return formatConsoleArgs;\n },\n parseConsoleArgs: function() {\n return parseConsoleArgs;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../lib/is-error */ \"(ssr)/./node_modules/next/dist/lib/is-error.js\"));\nfunction formatObject(arg, depth) {\n switch(typeof arg){\n case 'object':\n if (arg === null) {\n return 'null';\n } else if (Array.isArray(arg)) {\n let result = '[';\n if (depth < 1) {\n for(let i = 0; i < arg.length; i++){\n if (result !== '[') {\n result += ',';\n }\n if (Object.prototype.hasOwnProperty.call(arg, i)) {\n result += formatObject(arg[i], depth + 1);\n }\n }\n } else {\n result += arg.length > 0 ? '...' : '';\n }\n result += ']';\n return result;\n } else if (arg instanceof Error) {\n return arg + '';\n } else {\n const keys = Object.keys(arg);\n let result = '{';\n if (depth < 1) {\n for(let i = 0; i < keys.length; i++){\n const key = keys[i];\n const desc = Object.getOwnPropertyDescriptor(arg, 'key');\n if (desc && !desc.get && !desc.set) {\n const jsonKey = JSON.stringify(key);\n if (jsonKey !== '\"' + key + '\"') {\n result += jsonKey + ': ';\n } else {\n result += key + ': ';\n }\n result += formatObject(desc.value, depth + 1);\n }\n }\n } else {\n result += keys.length > 0 ? '...' : '';\n }\n result += '}';\n return result;\n }\n case 'string':\n return JSON.stringify(arg);\n default:\n return String(arg);\n }\n}\nfunction formatConsoleArgs(args) {\n let message;\n let idx;\n if (typeof args[0] === 'string') {\n message = args[0];\n idx = 1;\n } else {\n message = '';\n idx = 0;\n }\n let result = '';\n let startQuote = false;\n for(let i = 0; i < message.length; ++i){\n const char = message[i];\n if (char !== '%' || i === message.length - 1 || idx >= args.length) {\n result += char;\n continue;\n }\n const code = message[++i];\n switch(code){\n case 'c':\n {\n // TODO: We should colorize with HTML instead of turning into a string.\n // Ignore for now.\n result = startQuote ? \"\" + result + \"]\" : \"[\" + result;\n startQuote = !startQuote;\n idx++;\n break;\n }\n case 'O':\n case 'o':\n {\n result += formatObject(args[idx++], 0);\n break;\n }\n case 'd':\n case 'i':\n {\n result += parseInt(args[idx++], 10);\n break;\n }\n case 'f':\n {\n result += parseFloat(args[idx++]);\n break;\n }\n case 's':\n {\n result += String(args[idx++]);\n break;\n }\n default:\n result += '%' + code;\n }\n }\n for(; idx < args.length; idx++){\n result += (idx > 0 ? ' ' : '') + formatObject(args[idx], 0);\n }\n return result;\n}\nfunction parseConsoleArgs(args) {\n // See\n // https://github.com/facebook/react/blob/65a56d0e99261481c721334a3ec4561d173594cd/packages/react-devtools-shared/src/backend/flight/renderer.js#L88-L93\n //\n // Logs replayed from the server look like this:\n // [\n // \"%c%s%c %o\\n\\n%s\\n\\n%s\\n\",\n // \"background: #e6e6e6; ...\",\n // \" Server \", // can also be e.g. \" Prerender \"\n // \"\",\n // Error,\n // \"The above error occurred in the <Page> component.\",\n // ...\n // ]\n if (args.length > 3 && typeof args[0] === 'string' && args[0].startsWith('%c%s%c ') && typeof args[1] === 'string' && typeof args[2] === 'string' && typeof args[3] === 'string') {\n const environmentName = args[2];\n const maybeError = args[4];\n return {\n environmentName: environmentName.trim(),\n error: (0, _iserror.default)(maybeError) ? maybeError : null\n };\n }\n return {\n environmentName: null,\n error: null\n };\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=console.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saWIvY29uc29sZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUF1RGdCQSxpQkFBaUI7ZUFBakJBOztJQTJEQUMsZ0JBQWdCO2VBQWhCQTs7Ozs4RUFsSEk7QUFFcEIsU0FBU0MsYUFBYUMsR0FBWSxFQUFFQyxLQUFhO0lBQy9DLE9BQVEsT0FBT0Q7UUFDYixLQUFLO1lBQ0gsSUFBSUEsUUFBUSxNQUFNO2dCQUNoQixPQUFPO1lBQ1QsT0FBTyxJQUFJRSxNQUFNQyxPQUFPLENBQUNILE1BQU07Z0JBQzdCLElBQUlJLFNBQVM7Z0JBQ2IsSUFBSUgsUUFBUSxHQUFHO29CQUNiLElBQUssSUFBSUksSUFBSSxHQUFHQSxJQUFJTCxJQUFJTSxNQUFNLEVBQUVELElBQUs7d0JBQ25DLElBQUlELFdBQVcsS0FBSzs0QkFDbEJBLFVBQVU7d0JBQ1o7d0JBQ0EsSUFBSUcsT0FBT0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1YsS0FBS0ssSUFBSTs0QkFDaERELFVBQVVMLGFBQWFDLEdBQUcsQ0FBQ0ssRUFBRSxFQUFFSixRQUFRO3dCQUN6QztvQkFDRjtnQkFDRixPQUFPO29CQUNMRyxVQUFVSixJQUFJTSxNQUFNLEdBQUcsSUFBSSxRQUFRO2dCQUNyQztnQkFDQUYsVUFBVTtnQkFDVixPQUFPQTtZQUNULE9BQU8sSUFBSUosZUFBZVcsT0FBTztnQkFDL0IsT0FBT1gsTUFBTTtZQUNmLE9BQU87Z0JBQ0wsTUFBTVksT0FBT0wsT0FBT0ssSUFBSSxDQUFDWjtnQkFDekIsSUFBSUksU0FBUztnQkFDYixJQUFJSCxRQUFRLEdBQUc7b0JBQ2IsSUFBSyxJQUFJSSxJQUFJLEdBQUdBLElBQUlPLEtBQUtOLE1BQU0sRUFBRUQsSUFBSzt3QkFDcEMsTUFBTVEsTUFBTUQsSUFBSSxDQUFDUCxFQUFFO3dCQUNuQixNQUFNUyxPQUFPUCxPQUFPUSx3QkFBd0IsQ0FBQ2YsS0FBSzt3QkFDbEQsSUFB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QUMsRUFBRSxLQUFLLFVBQ25CO1FBQ0EsTUFBTVMsa0JBQWtCVCxJQUFJLENBQUMsRUFBRTtRQUMvQixNQUFNVSxhQUFhVixJQUFJLENBQUMsRUFBRTtRQUUxQixPQUFPO1lBQ0xTLGlCQUFpQkEsZ0JBQWdCRSxJQUFJO1lBQ3JDQyxPQUFPQyxDQUFBQSxHQUFBQSxTQUFBQSxPQUFBQSxFQUFRSCxjQUFjQSxhQUFhO1FBQzVDO0lBQ0Y7SUFFQSxPQUFPO1FBQ0xELGlCQUFpQjtRQUNqQkcsT0FBTztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9jbGllbnQvbGliL2NvbnNvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzRXJyb3IgZnJvbSAnLi4vLi4vbGliL2lzLWVycm9yJ1xuXG5mdW5jdGlvbiBmb3JtYXRPYmplY3QoYXJnOiB1bmtub3duLCBkZXB0aDogbnVtYmVyKSB7XG4gIHN3aXRjaCAodHlwZW9mIGFyZykge1xuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICBpZiAoYXJnID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiAnbnVsbCdcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhcmcpKSB7XG4gICAgICAgIGxldCByZXN1bHQgPSAnWydcbiAgICAgICAgaWYgKGRlcHRoIDwgMSkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSAnWycpIHtcbiAgICAgICAgICAgICAgcmVzdWx0ICs9ICcsJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmcsIGkpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdCArPSBmb3JtYXRPYmplY3QoYXJnW2ldLCBkZXB0aCArIDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCArPSBhcmcubGVuZ3RoID4gMCA/ICcuLi4nIDogJydcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgKz0gJ10nXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH0gZWxzZSBpZiAoYXJnIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGFyZyArICcnXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoYXJnKVxuICAgICAgICBsZXQgcmVzdWx0ID0gJ3snXG4gICAgICAgIGlmIChkZXB0aCA8IDEpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNbaV1cbiAgICAgICAgICAgIGNvbnN0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFyZywgJ2tleScpXG4gICAgICAgICAgICBpZiAoZGVzYyAmJiAhZGVzYy5nZXQgJiYgIWRlc2Muc2V0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGpzb25LZXkgPSBKU09OLnN0cmluZ2lmeShrZXkpXG4gICAgICAgICAgICAgIGlmIChqc29uS2V5ICE9PSAnXCInICsga2V5ICsgJ1wiJykge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBqc29uS2V5ICsgJzogJ1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBrZXkgKyAnOiAnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmVzdWx0ICs9IGZvcm1hdE9iamVjdChkZXNjLnZhbHVlLCBkZXB0aCArIDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCArPSBrZXlzLmxlbmd0aCA+IDAgPyAnLi4uJyA6ICcnXG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ICs9ICd9J1xuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcmcpXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBTdHJpbmcoYXJnKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDb25zb2xlQXJncyhhcmdzOiB1bmtub3duW10pOiBzdHJpbmcge1xuICBsZXQgbWVzc2FnZTogc3RyaW5nXG4gIGxldCBpZHg6IG51bWJlclxuICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgbWVzc2FnZSA9IGFyZ3NbMF1cbiAgICBpZHggPSAxXG4gIH0gZWxzZSB7XG4gICAgbWVzc2FnZSA9ICcnXG4gICAgaWR4ID0gMFxuICB9XG4gIGxldCByZXN1bHQgPSAnJ1xuICBsZXQgc3RhcnRRdW90ZSA9IGZhbHNlXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbWVzc2FnZS5sZW5ndGg7ICsraSkge1xuICAgIGNvbnN0IGNoYXIgPSBtZXNzYWdlW2ldXG4gICAgaWYgKGNoYXIgIT09ICclJyB8fCBpID09PSBtZXNzYWdlLmxlbmd0aCAtIDEgfHwgaWR4ID49IGFyZ3MubGVuZ3RoKSB7XG4gICAgICByZXN1bHQgKz0gY2hhclxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBjb2RlID0gbWVzc2FnZVsrK2ldXG4gICAgc3dpdGNoIChjb2RlKSB7XG4gICAgICBjYXNlICdjJzoge1xuICAgICAgICAvLyBUT0RPOiBXZSBzaG91bGQgY29sb3JpemUgd2l0aCBIVE1MIGluc3RlYWQgb2YgdHVybmluZyBpbnRvIGEgc3RyaW5nLlxuICAgICAgICAvLyBJZ25vcmUgZm9yIG5vdy5cbiAgICAgICAgcmVzdWx0ID0gc3RhcnRRdW90ZSA/IGAke3Jlc3VsdH1dYCA6IGBbJHtyZXN1bHR9YFxuICAgICAgICBzdGFydFF1b3RlID0gIXN0YXJ0UXVvdGVcbiAgICAgICAgaWR4KytcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ08nOlxuICAgICAgY2FzZSAnbyc6IHtcbiAgICAgICAgcmVzdWx0ICs9IGZvcm1hdE9iamVjdChhcmdzW2lkeCsrXSwgMClcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2QnOlxuICAgICAgY2FzZSAnaSc6IHtcbiAgICAgICAgcmVzdWx0ICs9IHBhcnNlSW50KGFyZ3NbaWR4KytdIGFzIGFueSwgMTApXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdmJzoge1xuICAgICAgICByZXN1bHQgKz0gcGFyc2VGbG9hdChhcmdzW2lkeCsrXSBhcyBhbnkpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdzJzoge1xuICAgICAgICByZXN1bHQgKz0gU3RyaW5nKGFyZ3NbaWR4KytdKVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmVzdWx0ICs9ICclJyArIGNvZGVcbiAgICB9XG4gIH1cblxuICBmb3IgKDsgaWR4IDwgYXJncy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgcmVzdWx0ICs9IChpZHggPiAwID8gJyAnIDogJycpICsgZm9ybWF0T2JqZWN0KGFyZ3NbaWR4XSwgMClcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29uc29sZUFyZ3MoYXJnczogdW5rbm93bltdKToge1xuICBlbnZpcm9ubWVudE5hbWU6IHN0cmluZyB8IG51bGxcbiAgZXJyb3I6IEVycm9yIHwgbnVsbFxufSB7XG4gIC8vIFNlZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi82NWE1NmQwZTk5MjYxNDgxYzcyMTMzNGEzZWM0NTYxZDE3MzU5NGNkL3BhY2thZ2VzL3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9mbGlnaHQvcmVuZGVyZXIuanMjTDg4LUw5M1xuICAvL1xuICAvLyBMb2dzIHJlcGxheWVkIGZyb20gdGhlIHNlcnZlciBsb29rIGxpa2UgdGhpczpcbiAgLy8gW1xuICAvLyAgIFwiJWMlcyVjICVvXFxuXFxuJXNcXG5cXG4lc1xcblwiLFxuICAvLyAgIFwiYmFja2dyb3VuZDogI2U2ZTZlNjsgLi4uXCIsXG4gIC8vICAgXCIgU2VydmVyIFwiLCAvLyBjYW4gYWxzbyBiZSBlLmcuIFwiIFByZXJlbmRlciBcIlxuICAvLyAgIFwiXCIsXG4gIC8vICAgRXJyb3IsXG4gIC8vICAgXCJUaGUgYWJvdmUgZXJyb3Igb2NjdXJyZWQgaW4gdGhlIDxQYWdlPiBjb21wb25lbnQuXCIsXG4gIC8vICAgLi4uXG4gIC8vIF1cbiAgaWYgKFxuICAgIGFyZ3MubGVuZ3RoID4gMyAmJlxuICAgIHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJyAmJlxuICAgIGFyZ3NbMF0uc3RhcnRzV2l0aCgnJWMlcyVjICcpICYmXG4gICAgdHlwZW9mIGFyZ3NbMV0gPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIGFyZ3NbMl0gPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIGFyZ3NbM10gPT09ICdzdHJpbmcnXG4gICkge1xuICAgIGNvbnN0IGVudmlyb25tZW50TmFtZSA9IGFyZ3NbMl1cbiAgICBjb25zdCBtYXliZUVycm9yID0gYXJnc1s0XVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVudmlyb25tZW50TmFtZTogZW52aXJvbm1lbnROYW1lLnRyaW0oKSxcbiAgICAgIGVycm9yOiBpc0Vycm9yKG1heWJlRXJyb3IpID8gbWF5YmVFcnJvciA6IG51bGwsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlbnZpcm9ubWVudE5hbWU6IG51bGwsXG4gICAgZXJyb3I6IG51bGwsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXRDb25zb2xlQXJncyIsInBhcnNlQ29uc29sZUFyZ3MiLCJmb3JtYXRPYmplY3QiLCJhcmciLCJkZXB0aCIsIkFycmF5IiwiaXNBcnJheSIsInJlc3VsdCIsImkiLCJsZW5ndGgiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJFcnJvciIsImtleXMiLCJrZXkiLCJkZXNjIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0Iiwic2V0IiwianNvbktleSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ2YWx1ZSIsIlN0cmluZyIsImFyZ3MiLCJtZXNzYWdlIiwiaWR4Iiwic3RhcnRRdW90ZSIsImNoYXIiLCJjb2RlIiwicGFyc2VJbnQiLCJwYXJzZUZsb2F0Iiwic3RhcnRzV2l0aCIsImVudmlyb25tZW50TmFtZSIsIm1heWJlRXJyb3IiLCJ0cmltIiwiZXJyb3IiLCJpc0Vycm9yIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/lib/console.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/normalize-trailing-slash.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***!
\*******************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return normalizePathTrailingSlash;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _parsepath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nconst normalizePathTrailingSlash = (path)=>{\n if (!path.startsWith('/') || undefined) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n if (false) {}\n return \"\" + (0, _removetrailingslash.removeTrailingSlash)(pathname) + query + hash;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=normalize-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs4REFPYUE7OztlQUFBQTs7O2lEQVB1Qjt1Q0FDVjtBQU1uQixNQUFNQSw2QkFBNkIsQ0FBQ0M7SUFDekMsSUFBSSxDQUFDQSxLQUFLQyxVQUFVLENBQUMsUUFBUUMsU0FBd0MsRUFBRTtRQUNyRSxPQUFPRjtJQUNUO0lBRUEsTUFBTSxFQUFFSyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVSO0lBQzVDLElBQUlFLEtBQWlDLEVBQUUsRUFRdEM7SUFFRCxPQUFRLEtBQUVTLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JOLFlBQVlDLFFBQVFDO0FBQ3BEIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvc3JjL2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVtb3ZlVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaCdcbmltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogTm9ybWFsaXplcyB0aGUgdHJhaWxpbmcgc2xhc2ggb2YgYSBwYXRoIGFjY29yZGluZyB0byB0aGUgYHRyYWlsaW5nU2xhc2hgIG9wdGlvblxuICogaW4gYG5leHQuY29uZmlnLmpzYC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoID0gKHBhdGg6IHN0cmluZykgPT4ge1xuICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8IHByb2Nlc3MuZW52Ll9fTkVYVF9NQU5VQUxfVFJBSUxJTkdfU0xBU0gpIHtcbiAgICByZXR1cm4gcGF0aFxuICB9XG5cbiAgY29uc3QgeyBwYXRobmFtZSwgcXVlcnksIGhhc2ggfSA9IHBhcnNlUGF0aChwYXRoKVxuICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RSQUlMSU5HX1NMQVNIKSB7XG4gICAgaWYgKC9cXC5bXi9dK1xcLz8kLy50ZXN0KHBhdGhuYW1lKSkge1xuICAgICAgcmV0dXJuIGAke3JlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpfSR7cXVlcnl9JHtoYXNofWBcbiAgICB9IGVsc2UgaWYgKHBhdGhuYW1lLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIHJldHVybiBgJHtwYXRobmFtZX0ke3F1ZXJ5fSR7aGFzaH1gXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgJHtwYXRobmFtZX0vJHtxdWVyeX0ke2hhc2h9YFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBgJHtyZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKX0ke3F1ZXJ5fSR7aGFzaH1gXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJwYXRoIiwic3RhcnRzV2l0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfTUFOVUFMX1RSQUlMSU5HX1NMQVNIIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giLCJwYXJzZVBhdGgiLCJfX05FWFRfVFJBSUxJTkdfU0xBU0giLCJ0ZXN0IiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImVuZHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/normalize-trailing-slash.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/remove-base-path.js":
/*!***********************************************************!*\
!*** ./node_modules/next/dist/client/remove-base-path.js ***!
\***********************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeBasePath\", ({\n enumerable: true,\n get: function() {\n return removeBasePath;\n }\n}));\nconst _hasbasepath = __webpack_require__(/*! ./has-base-path */ \"(ssr)/./node_modules/next/dist/client/has-base-path.js\");\nconst basePath = false || '';\nfunction removeBasePath(path) {\n if (false) {}\n // Can't trim the basePath if it has zero length!\n if (basePath.length === 0) return path;\n path = path.slice(basePath.length);\n if (!path.startsWith('/')) path = \"/\" + path;\n return path;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=remove-base-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZW1vdmUtYmFzZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBSWdCQTs7O2VBQUFBOzs7eUNBSlk7QUFFNUIsTUFBTUMsV0FBWUMsTUFBa0MsSUFBZTtBQUU1RCxTQUFTRixlQUFlSyxJQUFZO0lBQ3pDLElBQUlILEtBQTBDLEVBQUUsRUFJL0M7SUFFRCxpREFBaUQ7SUFDakQsSUFBSUQsU0FBU08sTUFBTSxLQUFLLEdBQUcsT0FBT0g7SUFFbENBLE9BQU9BLEtBQUtJLEtBQUssQ0FBQ1IsU0FBU08sTUFBTTtJQUNqQyxJQUFJLENBQUNILEtBQUtLLFVBQVUsQ0FBQyxNQUFNTCxPQUFRLE1BQUdBO0lBQ3RDLE9BQU9BO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9zcmMvY2xpZW50L3JlbW92ZS1iYXNlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFzQmFzZVBhdGggfSBmcm9tICcuL2hhcy1iYXNlLXBhdGgnXG5cbmNvbnN0IGJhc2VQYXRoID0gKHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggYXMgc3RyaW5nKSB8fCAnJ1xuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlQmFzZVBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCkge1xuICAgIGlmICghaGFzQmFzZVBhdGgocGF0aCkpIHtcbiAgICAgIHJldHVybiBwYXRoXG4gICAgfVxuICB9XG5cbiAgLy8gQ2FuJ3QgdHJpbSB0aGUgYmFzZVBhdGggaWYgaXQgaGFzIHplcm8gbGVuZ3RoIVxuICBpZiAoYmFzZVBhdGgubGVuZ3RoID09PSAwKSByZXR1cm4gcGF0aFxuXG4gIHBhdGggPSBwYXRoLnNsaWNlKGJhc2VQYXRoLmxlbmd0aClcbiAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSkgcGF0aCA9IGAvJHtwYXRofWBcbiAgcmV0dXJuIHBhdGhcbn1cbiJdLCJuYW1lcyI6WyJyZW1vdmVCYXNlUGF0aCIsImJhc2VQYXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJwYXRoIiwiX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIIiwiaGFzQmFzZVBhdGgiLCJsZW5ndGgiLCJzbGljZSIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/remove-base-path.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/client/use-merged-ref.js":
/*!*********************************************************!*\
!*** ./node_modules/next/dist/client/use-merged-ref.js ***!
\*********************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useMergedRef\", ({\n enumerable: true,\n get: function() {\n return useMergedRef;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nfunction useMergedRef(refA, refB) {\n const cleanupA = (0, _react.useRef)(null);\n const cleanupB = (0, _react.useRef)(null);\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return (0, _react.useCallback)((current)=>{\n if (current === null) {\n const cleanupFnA = cleanupA.current;\n if (cleanupFnA) {\n cleanupA.current = null;\n cleanupFnA();\n }\n const cleanupFnB = cleanupB.current;\n if (cleanupFnB) {\n cleanupB.current = null;\n cleanupFnB();\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current);\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current);\n }\n }\n }, [\n refA,\n refB\n ]);\n}\nfunction applyRef(refA, current) {\n if (typeof refA === 'function') {\n const cleanup = refA(current);\n if (typeof cleanup === 'function') {\n return cleanup;\n } else {\n return ()=>refA(null);\n }\n } else {\n refA.current = current;\n return ()=>{\n refA.current = null;\n };\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-merged-ref.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC91c2UtbWVyZ2VkLXJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7O2dEQVNnQkE7OztlQUFBQTs7O21DQVQ4QjtBQVN2QyxTQUFTQSxhQUNkQyxJQUFtQixFQUNuQkMsSUFBbUI7SUFFbkIsTUFBTUMsV0FBV0MsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFBNEI7SUFDN0MsTUFBTUMsV0FBV0QsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFBNEI7SUFFN0MsbUZBQW1GO0lBQ25GLHlFQUF5RTtJQUN6RSxpR0FBaUc7SUFDakcsOEZBQThGO0lBQzlGLGdEQUFnRDtJQUNoRCxtR0FBbUc7SUFDbkcsd0ZBQXdGO0lBQ3hGLE9BQU9FLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQ0wsQ0FBQ0M7UUFDQyxJQUFJQSxZQUFZLE1BQU07WUFDcEIsTUFBTUMsYUFBYUwsU0FBU0ksT0FBTztZQUNuQyxJQUFJQyxZQUFZO2dCQUNkTCxTQUFTSSxPQUFPLEdBQUc7Z0JBQ25CQztZQUNGO1lBQ0EsTUFBTUMsYUFBYUosU0FBU0UsT0FBTztZQUNuQyxJQUFJRSxZQUFZO2dCQUNkSixTQUFTRSxPQUFPLEdBQUc7Z0JBQ25CRTtZQUNGO1FBQ0YsT0FBTztZQUNMLElBQUlSLE1BQU07Z0JBQ1JFLFNBQVNJLE9BQU8sR0FBR0csU0FBU1QsTUFBTU07WUFDcEM7WUFDQSxJQUFJTCxNQUFNO2dCQUNSRyxTQUFTRSxPQUFPLEdBQUdHLFNBQVNSLE1BQU1LO1lBQ3BDO1FBQ0Y7SUFDRixHQUNBO1FBQUNOO1FBQU1DO0tBQUs7QUFFaEI7QUFFQSxTQUFTUSxTQUNQVCxJQUFnQyxFQUNoQ00sT0FBaUI7SUFFakIsSUFBSSxPQUFPTixTQUFTLFlBQVk7UUFDOUIsTUFBTVUsVUFBVVYsS0FBS007UUFDckIsSUFBSSxPQUFPSSxZQUFZLFlBQVk7WUFDakMsT0FBT0E7UUFDVCxPQUFPO1lBQ0wsT0FBTyxJQUFNVixLQUFLO1FBQ3BCO0lBQ0YsT0FBTztRQUNMQSxLQUFLTSxPQUFPLEdBQUdBO1FBQ2YsT0FBTztZQUNMTixLQUFLTSxPQUFPLEdBQUc7UUFDakI7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvc3JjL2NsaWVudC91c2UtbWVyZ2VkLXJlZi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlUmVmLCB0eXBlIFJlZiB9IGZyb20gJ3JlYWN0J1xuXG4vLyBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBob29rIHRvIHN1cHBvcnQgUmVhY3QgMTggYW5kIDE5IHJlZnMuXG4vLyBJbiAxOSwgYSBjbGVhbnVwIGZ1bmN0aW9uIGZyb20gcmVmcyBtYXkgYmUgcmV0dXJuZWQuXG4vLyBJbiAxOCwgcmV0dXJuaW5nIGEgY2xlYW51cCBmdW5jdGlvbiBjcmVhdGVzIGEgd2FybmluZy5cbi8vIFNpbmNlIHdlIHRha2UgdXNlcnNwYWNlIHJlZnMsIHdlIGRvbid0IGtub3cgYWhlYWQgb2YgdGltZSBpZiBhIGNsZWFudXAgZnVuY3Rpb24gd2lsbCBiZSByZXR1cm5lZC5cbi8vIFRoaXMgaW1wbGVtZW50cyBjbGVhbnVwIGZ1bmN0aW9ucyB3aXRoIHRoZSBvbGQgYmVoYXZpb3IgaW4gMTguXG4vLyBXZSBrbm93IHJlZnMgYXJlIGFsd2F5cyBjYWxsZWQgYWx0ZXJuYXRpbmcgd2l0aCBgbnVsbGAgYW5kIHRoZW4gYFRgLlxuLy8gU28gYSBjYWxsIHdpdGggYG51bGxgIG1lYW5zIHdlIG5lZWQgdG8gY2FsbCB0aGUgcHJldmlvdXMgY2xlYW51cCBmdW5jdGlvbnMuXG5leHBvcnQgZnVuY3Rpb24gdXNlTWVyZ2VkUmVmPFRFbGVtZW50PihcbiAgcmVmQTogUmVmPFRFbGVtZW50PixcbiAgcmVmQjogUmVmPFRFbGVtZW50PlxuKTogUmVmPFRFbGVtZW50PiB7XG4gIGNvbnN0IGNsZWFudXBBID0gdXNlUmVmPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGNsZWFudXBCID0gdXNlUmVmPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG5cbiAgLy8gTk9URTogSW4gdGhlb3J5LCB3ZSBjb3VsZCBza2lwIHRoZSB3cmFwcGluZyBpZiBvbmx5IG9uZSBvZiB0aGUgcmVmcyBpcyBub24tbnVsbC5cbiAgLy8gKHRoaXMgaGFwcGVucyBvZnRlbiBpZiB0aGUgdXNlciBkb2Vzbid0IHBhc3MgYSByZWYgdG8gTGluay9Gb3JtL0ltYWdlKVxuICAvLyBCdXQgdGhpcyBjYW4gY2F1c2UgdXMgdG8gbGVhayBhIGNsZWFudXAtcmVmIGludG8gdXNlciBjb2RlIChlLmcuIHZpYSBgPExpbmsgbGVnYWN5QmVoYXZpb3I+YCksXG4gIC8vIGFuZCB0aGUgdXNlciBtaWdodCBwYXNzIHRoYXQgcmVmIGludG8gcmVmLW1lcmdpbmcgbGlicmFyeSB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBjbGVhbnVwIHJlZnNcbiAgLy8gKGJlY2F1c2UgaXQgaGFzbid0IGJlZW4gdXBkYXRlZCBmb3IgUmVhY3QgMTkpXG4gIC8vIHdoaWNoIGNhbiB0aGVuIGNhdXNlIHRoaW5ncyB0byBibG93IHVwLCBiZWNhdXNlIGEgY2xlYW51cC1yZXR1cm5pbmcgcmVmIGdldHMgY2FsbGVkIHdpdGggYG51bGxgLlxuICAvLyBTbyBpbiBwcmFjdGljZSwgaXQncyBzYWZlciB0byBiZSBkZWZlbnNpdmUgYW5kIGFsd2F5cyB3cmFwIHRoZSByZWYsIGV2ZW4gb24gUmVhY3QgMTkuXG4gIHJldHVybiB1c2VDYWxsYmFjayhcbiAgICAoY3VycmVudDogVEVsZW1lbnQgfCBudWxsKTogdm9pZCA9PiB7XG4gICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBjb25zdCBjbGVhbnVwRm5BID0gY2xlYW51cEEuY3VycmVudFxuICAgICAgICBpZiAoY2xlYW51cEZuQSkge1xuICAgICAgICAgIGNsZWFudXBBLmN1cnJlbnQgPSBudWxsXG4gICAgICAgICAgY2xlYW51cEZuQSgpXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2xlYW51cEZuQiA9IGNsZWFudXBCLmN1cnJlbnRcbiAgICAgICAgaWYgKGNsZWFudXBGbkIpIHtcbiAgICAgICAgICBjbGVhbnVwQi5jdXJyZW50ID0gbnVsbFxuICAgICAgICAgIGNsZWFudXBGbkIoKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocmVmQSkge1xuICAgICAgICAgIGNsZWFudXBBLmN1cnJlbnQgPSBhcHBseVJlZihyZWZBLCBjdXJyZW50KVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZWZCKSB7XG4gICAgICAgICAgY2xlYW51cEIuY3VycmVudCA9IGFwcGx5UmVmKHJlZkIsIGN1cnJlbnQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtyZWZBLCByZWZCXVxuICApXG59XG5cbmZ1bmN0aW9uIGFwcGx5UmVmPFRFbGVtZW50PihcbiAgcmVmQTogTm9uTnVsbGFibGU8UmVmPFRFbGVtZW50Pj4sXG4gIGN1cnJlbnQ6IFRFbGVtZW50XG4pIHtcbiAgaWYgKHR5cGVvZiByZWZBID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc3QgY2xlYW51cCA9IHJlZkEoY3VycmVudClcbiAgICBpZiAodHlwZW9mIGNsZWFudXAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBjbGVhbnVwXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAoKSA9PiByZWZBKG51bGwpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJlZkEuY3VycmVudCA9IGN1cnJlbnRcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcmVmQS5jdXJyZW50ID0gbnVsbFxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInVzZU1lcmdlZFJlZiIsInJlZkEiLCJyZWZCIiwiY2xlYW51cEEiLCJ1c2VSZWYiLCJjbGVhbnVwQiIsInVzZUNhbGxiYWNrIiwiY3VycmVudCIsImNsZWFudXBGbkEiLCJjbGVhbnVwRm5CIiwiYXBwbHlSZWYiLCJjbGVhbnVwIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/use-merged-ref.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js":
/*!****************************************************************!*\
!*** ./node_modules/next/dist/compiled/next-devtools/index.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, exports) => {
eval("var __webpack_modules__={\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/components/tooltip.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`.tooltip-wrapper {\n position: relative;\n display: inline-block;\n line-height: 1;\n}\n\n.tooltip {\n position: relative;\n padding: 6px 12px;\n border-radius: 8px;\n font-size: 14px;\n line-height: 1.4;\n pointer-events: none;\n}\n\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: var(--arrow-size, 6px);\n border-color: transparent;\n}\n\n.tooltip-arrow--top {\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px) 0\n var(--arrow-size, 6px);\n border-top-color: var(--tooltip-bg-color);\n bottom: 0;\n transform: translateY(100%);\n}\n\n.tooltip-arrow--bottom {\n border-width: 0 var(--arrow-size, 6px) var(--arrow-size, 6px)\n var(--arrow-size, 6px);\n border-bottom-color: var(--tooltip-bg-color);\n top: 0;\n transform: translateY(-100%);\n}\n\n.tooltip-arrow--left {\n border-width: var(--arrow-size, 6px) 0 var(--arrow-size, 6px)\n var(--arrow-size, 6px);\n border-left-color: var(--tooltip-bg-color);\n right: 0;\n transform: translateX(100%);\n}\n\n.tooltip-arrow--right {\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px)\n var(--arrow-size, 6px) 0;\n border-right-color: var(--tooltip-bg-color);\n left: 0;\n transform: translateX(-100%);\n}\n\n.tooltip-positioner {\n z-index: var(--top-z-index);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/components/tooltip.css\"],names:[],mappings:\"AAAA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,iBAAiB;EACjB,kBAAkB;EAClB,eAAe;EACf,gBAAgB;EAChB,oBAAoB;AACtB;;AAEA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,mBAAmB;EACnB,oCAAoC;EACpC,yBAAyB;AAC3B;;AAEA;EACE;0BACwB;EACxB,yCAAyC;EACzC,SAAS;EACT,2BAA2B;AAC7B;;AAEA;EACE;0BACwB;EACxB,4CAA4C;EAC5C,MAAM;EACN,4BAA4B;AAC9B;;AAEA;EACE;0BACwB;EACxB,0CAA0C;EAC1C,QAAQ;EACR,2BAA2B;AAC7B;;AAEA;EACE;4BAC0B;EAC1B,2CAA2C;EAC3C,OAAO;EACP,4BAA4B;AAC9B;;AAEA;EACE,2BAA2B;AAC7B\",sourcesContent:[\".tooltip-wrapper {\\n position: relative;\\n display: inline-block;\\n line-height: 1;\\n}\\n\\n.tooltip {\\n position: relative;\\n padding: 6px 12px;\\n border-radius: 8px;\\n font-size: 14px;\\n line-height: 1.4;\\n pointer-events: none;\\n}\\n\\n.tooltip-arrow {\\n position: absolute;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: var(--arrow-size, 6px);\\n border-color: transparent;\\n}\\n\\n.tooltip-arrow--top {\\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px) 0\\n var(--arrow-size, 6px);\\n border-top-color: var(--tooltip-bg-color);\\n bottom: 0;\\n transform: translateY(100%);\\n}\\n\\n.tooltip-arrow--bottom {\\n border-width: 0 var(--arrow-size, 6px) var(--arrow-size, 6px)\\n var(--arrow-size, 6px);\\n border-bottom-color: var(--tooltip-bg-color);\\n top: 0;\\n transform: translateY(-100%);\\n}\\n\\n.tooltip-arrow--left {\\n border-width: var(--arrow-size, 6px) 0 var(--arrow-size, 6px)\\n var(--arrow-size, 6px);\\n border-left-color: var(--tooltip-bg-color);\\n right: 0;\\n transform: translateX(100%);\\n}\\n\\n.tooltip-arrow--right {\\n border-width: var(--arrow-size, 6px) var(--arrow-size, 6px)\\n var(--arrow-size, 6px) 0;\\n border-right-color: var(--tooltip-bg-color);\\n left: 0;\\n transform: translateX(-100%);\\n}\\n\\n.tooltip-positioner {\\n z-index: var(--top-z-index);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`.resize-container {\n position: absolute;\n /* todo: better z index */\n z-index: 10;\n /* todo: is this needed */\n background: transparent;\n}\n\n.resize-line {\n position: absolute;\n /* todo smarter z index */\n z-index: -1;\n pointer-events: none;\n /* a normal exit animation curve- at this point the exit animation is */\n /* immediately responsive so we don't need a bespoke curve */\n transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);\n /* todo: better var? */\n border: 1px solid var(--color-gray-100);\n}\n\n/* start really fast because we start super hidden initially behind the panel, otherwise feels like an unintended animation delay */\n.resize-container:hover ~ .resize-line {\n transition: transform 0.2s cubic-bezier(0.05, 0.9, 0.2, 1); /* Fast start for animate in */\n}\n\n.resize-container.right,\n.resize-container.left {\n top: 0;\n height: 100%;\n width: 25px;\n cursor: ew-resize;\n}\n\n/* todo: don't hard code all these values/use vars */\n\n.resize-container.bottom,\n.resize-container.top {\n left: 0;\n width: 100%;\n height: 25px;\n cursor: ns-resize;\n}\n\n.resize-container.top {\n top: -12px;\n}\n.resize-container.bottom {\n bottom: -12px;\n}\n.resize-container.left {\n left: -12px;\n}\n.resize-container.right {\n right: -12px;\n}\n\n.resize-container.top-left,\n.resize-container.top-right,\n.resize-container.bottom-left,\n.resize-container.bottom-right {\n width: 32px;\n height: 32px;\n z-index: 15;\n}\n\n.resize-container.top-left {\n top: -16px;\n left: -16px;\n cursor: nwse-resize;\n}\n.resize-container.top-right {\n top: -16px;\n right: -16px;\n cursor: nesw-resize;\n}\n.resize-container.bottom-left {\n bottom: -16px;\n left: -16px;\n cursor: nesw-resize;\n}\n.resize-container.bottom-right {\n bottom: -16px;\n right: -16px;\n cursor: nwse-resize;\n}\n\n.resize-line.top,\n.resize-line.bottom {\n height: 28px;\n width: 100%;\n background-color: var(--color-background-100);\n}\n\n.resize-line.left,\n.resize-line.right {\n width: 28px;\n height: 100%;\n background-color: var(--color-background-100);\n}\n\n.resize-line.top {\n top: -12px;\n left: calc(-1 * var(--border-left, 2px));\n width: calc(100% + var(--border-horizontal, 4px));\n border-radius: var(--rounded-md) var(--rounded-md) 0 0;\n transform: translateY(28px);\n}\n\n.resize-line.bottom {\n bottom: -12px;\n left: calc(-1 * var(--border-left, 2px));\n width: calc(100% + var(--border-horizontal, 4px));\n border-radius: 0 0 var(--rounded-md) var(--rounded-md);\n transform: translateY(-28px);\n}\n\n.resize-line.left {\n top: calc(-1 * var(--border-top, 2px));\n left: -12px;\n height: calc(100% + var(--border-vertical, 4px));\n border-radius: var(--rounded-md) 0 0 var(--rounded-md);\n transform: translateX(28px);\n}\n\n.resize-line.right {\n top: calc(-1 * var(--border-top, 2px));\n right: -12px;\n height: calc(100% + var(--border-vertical, 4px));\n border-radius: 0 var(--rounded-md) var(--rounded-md) 0;\n transform: translateX(-28px);\n}\n\n.resize-container.right:hover ~ .resize-line.right,\n.resize-container.left:hover ~ .resize-line.left,\n.resize-line.right.dragging,\n.resize-line.left.dragging {\n transform: translateX(0);\n}\n\n.resize-container.bottom:hover ~ .resize-line.bottom,\n.resize-container.top:hover ~ .resize-line.top,\n.resize-line.bottom.dragging,\n.resize-line.top.dragging {\n transform: translateY(0);\n}\n\n/* make sure that we don't show multiple handles at once\n * we should only ever show the currently resizing handle\n * regardless of hover state \n */\n.resize-container.no-hover.right:hover ~ .resize-line.right {\n transform: translateX(-28px);\n}\n.resize-container.no-hover.left:hover ~ .resize-line.left {\n transform: translateX(28px);\n}\n.resize-container.no-hover.bottom:hover ~ .resize-line.bottom {\n transform: translateY(-28px);\n}\n.resize-container.no-hover.top:hover ~ .resize-line.top {\n transform: translateY(28px);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\"],names:[],mappings:\"AAAA;EACE,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;EACX,yBAAyB;EACzB,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;EACX,oBAAoB;EACpB,uEAAuE;EACvE,4DAA4D;EAC5D,uDAAuD;EACvD,sBAAsB;EACtB,uCAAuC;AACzC;;AAEA,mIAAmI;AACnI;EACE,0DAA0D,EAAE,8BAA8B;AAC5F;;AAEA;;EAEE,MAAM;EACN,YAAY;EACZ,WAAW;EACX,iBAAiB;AACnB;;AAEA,oDAAoD;;AAEpD;;EAEE,OAAO;EACP,WAAW;EACX,YAAY;EACZ,iBAAiB;AACnB;;AAEA;EACE,UAAU;AACZ;AACA;EACE,aAAa;AACf;AACA;EACE,WAAW;AACb;AACA;EACE,YAAY;AACd;;AAEA;;;;EAIE,WAAW;EACX,YAAY;EACZ,WAAW;AACb;;AAEA;EACE,UAAU;EACV,WAAW;EACX,mBAAmB;AACrB;AACA;EACE,UAAU;EACV,YAAY;EACZ,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,WAAW;EACX,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,YAAY;EACZ,mBAAmB;AACrB;;AAEA;;EAEE,YAAY;EACZ,WAAW;EACX,6CAA6C;AAC/C;;AAEA;;EAEE,WAAW;EACX,YAAY;EACZ,6CAA6C;AAC/C;;AAEA;EACE,UAAU;EACV,wCAAwC;EACxC,iDAAiD;EACjD,sDAAsD;EACtD,2BAA2B;AAC7B;;AAEA;EACE,aAAa;EACb,wCAAwC;EACxC,iDAAiD;EACjD,sDAAsD;EACtD,4BAA4B;AAC9B;;AAEA;EACE,sCAAsC;EACtC,WAAW;EACX,gDAAgD;EAChD,sDAAsD;EACtD,2BAA2B;AAC7B;;AAEA;EACE,sCAAsC;EACtC,YAAY;EACZ,gDAAgD;EAChD,sDAAsD;EACtD,4BAA4B;AAC9B;;AAEA;;;;EAIE,wBAAwB;AAC1B;;AAEA;;;;EAIE,wBAAwB;AAC1B;;AAEA;;;EAGE;AACF;EACE,4BAA4B;AAC9B;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,2BAA2B;AAC7B\",sourcesContent:[\".resize-container {\\n position: absolute;\\n /* todo: better z index */\\n z-index: 10;\\n /* todo: is this needed */\\n background: transparent;\\n}\\n\\n.resize-line {\\n position: absolute;\\n /* todo smarter z index */\\n z-index: -1;\\n pointer-events: none;\\n /* a normal exit animation curve- at this point the exit animation is */\\n /* immediately responsive so we don't need a bespoke curve */\\n transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);\\n /* todo: better var? */\\n border: 1px solid var(--color-gray-100);\\n}\\n\\n/* start really fast because we start super hidden initially behind the panel, otherwise feels like an unintended animation delay */\\n.resize-container:hover ~ .resize-line {\\n transition: transform 0.2s cubic-bezier(0.05, 0.9, 0.2, 1); /* Fast start for animate in */\\n}\\n\\n.resize-container.right,\\n.resize-container.left {\\n top: 0;\\n height: 100%;\\n width: 25px;\\n cursor: ew-resize;\\n}\\n\\n/* todo: don't hard code all these values/use vars */\\n\\n.resize-container.bottom,\\n.resize-container.top {\\n left: 0;\\n width: 100%;\\n height: 25px;\\n cursor: ns-resize;\\n}\\n\\n.resize-container.top {\\n top: -12px;\\n}\\n.resize-container.bottom {\\n bottom: -12px;\\n}\\n.resize-container.left {\\n left: -12px;\\n}\\n.resize-container.right {\\n right: -12px;\\n}\\n\\n.resize-container.top-left,\\n.resize-container.top-right,\\n.resize-container.bottom-left,\\n.resize-container.bottom-right {\\n width: 32px;\\n height: 32px;\\n z-index: 15;\\n}\\n\\n.resize-container.top-left {\\n top: -16px;\\n left: -16px;\\n cursor: nwse-resize;\\n}\\n.resize-container.top-right {\\n top: -16px;\\n right: -16px;\\n cursor: nesw-resize;\\n}\\n.resize-container.bottom-left {\\n bottom: -16px;\\n left: -16px;\\n cursor: nesw-resize;\\n}\\n.resize-container.bottom-right {\\n bottom: -16px;\\n right: -16px;\\n cursor: nwse-resize;\\n}\\n\\n.resize-line.top,\\n.resize-line.bottom {\\n height: 28px;\\n width: 100%;\\n background-color: var(--color-background-100);\\n}\\n\\n.resize-line.left,\\n.resize-line.right {\\n width: 28px;\\n height: 100%;\\n background-color: var(--color-background-100);\\n}\\n\\n.resize-line.top {\\n top: -12px;\\n left: calc(-1 * var(--border-left, 2px));\\n width: calc(100% + var(--border-horizontal, 4px));\\n border-radius: var(--rounded-md) var(--rounded-md) 0 0;\\n transform: translateY(28px);\\n}\\n\\n.resize-line.bottom {\\n bottom: -12px;\\n left: calc(-1 * var(--border-left, 2px));\\n width: calc(100% + var(--border-horizontal, 4px));\\n border-radius: 0 0 var(--rounded-md) var(--rounded-md);\\n transform: translateY(-28px);\\n}\\n\\n.resize-line.left {\\n top: calc(-1 * var(--border-top, 2px));\\n left: -12px;\\n height: calc(100% + var(--border-vertical, 4px));\\n border-radius: var(--rounded-md) 0 0 var(--rounded-md);\\n transform: translateX(28px);\\n}\\n\\n.resize-line.right {\\n top: calc(-1 * var(--border-top, 2px));\\n right: -12px;\\n height: calc(100% + var(--border-vertical, 4px));\\n border-radius: 0 var(--rounded-md) var(--rounded-md) 0;\\n transform: translateX(-28px);\\n}\\n\\n.resize-container.right:hover ~ .resize-line.right,\\n.resize-container.left:hover ~ .resize-line.left,\\n.resize-line.right.dragging,\\n.resize-line.left.dragging {\\n transform: translateX(0);\\n}\\n\\n.resize-container.bottom:hover ~ .resize-line.bottom,\\n.resize-container.top:hover ~ .resize-line.top,\\n.resize-line.bottom.dragging,\\n.resize-line.top.dragging {\\n transform: translateY(0);\\n}\\n\\n/* make sure that we don't show multiple handles at once\\n * we should only ever show the currently resizing handle\\n * regardless of hover state \\n */\\n.resize-container.no-hover.right:hover ~ .resize-line.right {\\n transform: translateX(-28px);\\n}\\n.resize-container.no-hover.left:hover ~ .resize-line.left {\\n transform: translateX(28px);\\n}\\n.resize-container.no-hover.bottom:hover ~ .resize-line.bottom {\\n transform: translateY(-28px);\\n}\\n.resize-container.no-hover.top:hover ~ .resize-line.top {\\n transform: translateY(28px);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`.segment-boundary-trigger {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 6px;\n line-height: 16px;\n font-weight: 500;\n color: var(--color-gray-1000);\n border-radius: 999px;\n border: none;\n font-size: var(--size-12);\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.segment-boundary-trigger-text {\n font-size: var(--size-12);\n font-weight: 500;\n user-select: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.segment-boundary-trigger-text .plus-icon {\n transition: transform 0.25s ease;\n}\n\n.segment-boundary-trigger-text:hover .plus-icon {\n color: var(--color-gray-800);\n}\n\n.segment-boundary-trigger svg {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n vertical-align: middle;\n}\n\n.segment-boundary-trigger:hover svg {\n color: var(--color-gray-700);\n}\n\n.segment-boundary-trigger[disabled] svg,\n.segment-boundary-trigger[disabled]:hover svg {\n color: var(--color-gray-400);\n cursor: not-allowed;\n}\n\n.segment-boundary-dropdown {\n padding: 8px;\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-400);\n border-radius: 16px;\n min-width: 120px;\n user-select: none;\n cursor: default;\n box-shadow: 0px 4px 8px -4px color-mix(in srgb, var(--color-gray-900) 4%, transparent);\n}\n\n.segment-boundary-dropdown-positioner {\n z-index: var(--top-z-index);\n}\n\n.segment-boundary-dropdown-item {\n display: flex;\n align-items: center;\n padding: 8px;\n line-height: 20px;\n font-size: 14px;\n border-radius: 6px;\n color: var(--color-gray-1000);\n cursor: pointer;\n min-width: 220px;\n border: none;\n background: none;\n width: 100%;\n}\n\n.segment-boundary-dropdown-item[data-disabled] {\n color: var(--color-gray-400);\n cursor: not-allowed;\n}\n\n.segment-boundary-dropdown-item svg {\n margin-right: 12px;\n color: currentColor;\n}\n\n.segment-boundary-dropdown-item:hover {\n background: var(--color-gray-200);\n}\n\n.segment-boundary-dropdown-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n\n.segment-boundary-dropdown-item:last-child {\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n\n.segment-boundary-group-label {\n padding: 8px;\n font-size: 13px;\n line-height: 16px;\n font-weight: 400;\n color: var(--color-gray-900);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\"],names:[],mappings:\"AAAA;EACE,aAAa;EACb,mBAAmB;EACnB,QAAQ;EACR,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;EAChB,6BAA6B;EAC7B,oBAAoB;EACpB,YAAY;EACZ,yBAAyB;EACzB,eAAe;EACf,uCAAuC;AACzC;;AAEA;EACE,yBAAyB;EACzB,gBAAgB;EAChB,iBAAiB;EACjB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;EACd,sBAAsB;AACxB;;AAEA;EACE,4BAA4B;AAC9B;;AAEA;;EAEE,4BAA4B;EAC5B,mBAAmB;AACrB;;AAEA;EACE,YAAY;EACZ,uCAAuC;EACvC,uCAAuC;EACvC,mBAAmB;EACnB,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,sFAAsF;AACxF;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,iBAAiB;EACjB,eAAe;EACf,kBAAkB;EAClB,6BAA6B;EAC7B,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB,WAAW;AACb;;AAEA;EACE,4BAA4B;EAC5B,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;EAClB,mBAAmB;AACrB;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA;EACE,8BAA8B;EAC9B,+BAA+B;AACjC;;AAEA;EACE,YAAY;EACZ,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,4BAA4B;AAC9B\",sourcesContent:[\".segment-boundary-trigger {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n padding: 4px 6px;\\n line-height: 16px;\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n border-radius: 999px;\\n border: none;\\n font-size: var(--size-12);\\n cursor: pointer;\\n transition: background-color 0.15s ease;\\n}\\n\\n.segment-boundary-trigger-text {\\n font-size: var(--size-12);\\n font-weight: 500;\\n user-select: none;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.segment-boundary-trigger-text .plus-icon {\\n transition: transform 0.25s ease;\\n}\\n\\n.segment-boundary-trigger-text:hover .plus-icon {\\n color: var(--color-gray-800);\\n}\\n\\n.segment-boundary-trigger svg {\\n width: 14px;\\n height: 14px;\\n flex-shrink: 0;\\n vertical-align: middle;\\n}\\n\\n.segment-boundary-trigger:hover svg {\\n color: var(--color-gray-700);\\n}\\n\\n.segment-boundary-trigger[disabled] svg,\\n.segment-boundary-trigger[disabled]:hover svg {\\n color: var(--color-gray-400);\\n cursor: not-allowed;\\n}\\n\\n.segment-boundary-dropdown {\\n padding: 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: 16px;\\n min-width: 120px;\\n user-select: none;\\n cursor: default;\\n box-shadow: 0px 4px 8px -4px color-mix(in srgb, var(--color-gray-900) 4%, transparent);\\n}\\n\\n.segment-boundary-dropdown-positioner {\\n z-index: var(--top-z-index);\\n}\\n\\n.segment-boundary-dropdown-item {\\n display: flex;\\n align-items: center;\\n padding: 8px;\\n line-height: 20px;\\n font-size: 14px;\\n border-radius: 6px;\\n color: var(--color-gray-1000);\\n cursor: pointer;\\n min-width: 220px;\\n border: none;\\n background: none;\\n width: 100%;\\n}\\n\\n.segment-boundary-dropdown-item[data-disabled] {\\n color: var(--color-gray-400);\\n cursor: not-allowed;\\n}\\n\\n.segment-boundary-dropdown-item svg {\\n margin-right: 12px;\\n color: currentColor;\\n}\\n\\n.segment-boundary-dropdown-item:hover {\\n background: var(--color-gray-200);\\n}\\n\\n.segment-boundary-dropdown-item:first-child {\\n border-top-left-radius: 4px;\\n border-top-right-radius: 4px;\\n}\\n\\n.segment-boundary-dropdown-item:last-child {\\n border-bottom-left-radius: 4px;\\n border-bottom-right-radius: 4px;\\n}\\n\\n.segment-boundary-group-label {\\n padding: 8px;\\n font-size: 13px;\\n line-height: 16px;\\n font-weight: 400;\\n color: var(--color-gray-900);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`.segment-explorer-content {\n font-size: var(--size-14);\n padding: 0 8px;\n width: 700px;\n height: 400px;\n max-width: calc(100vw - 40px);\n max-height: calc(100vh - 240px);\n}\n\n.segment-explorer-page-route-bar {\n display: flex;\n align-items: center;\n padding: 14px 16px;\n background-color: var(--color-background-200);\n gap: 12px;\n}\n\n.segment-explorer-page-route-bar-path {\n font-size: var(--size-14);\n font-weight: 500;\n color: var(--color-gray-1000);\n font-family: var(--font-mono);\n white-space: nowrap;\n line-height: 20px;\n}\n\n.segment-explorer-item {\n margin: 4px 0;\n border-radius: 6px;\n}\n\n.segment-explorer-item:nth-child(even) {\n background-color: var(--color-background-200);\n}\n\n.segment-explorer-item-row {\n display: flex;\n align-items: center;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-right: 4px;\n white-space: pre;\n cursor: default;\n color: var(--color-gray-1000);\n}\n\n.segment-explorer-children--intended {\n padding-left: 16px;\n}\n\n.segment-explorer-filename {\n display: inline-flex;\n width: 100%;\n align-items: center;\n}\n\n.segment-explorer-filename select {\n margin-left: auto;\n}\n\n.segment-explorer-filename--path {\n margin-right: auto;\n}\n.segment-explorer-filename--path small {\n display: inline-block;\n width: 0;\n opacity: 0;\n}\n.segment-explorer-filename--name {\n color: var(--color-gray-800);\n}\n\n.segment-explorer-files {\n display: inline-flex;\n gap: 8px;\n margin-left: auto;\n}\n\n.segment-explorer-files + .segment-boundary-trigger {\n margin-left: 8px;\n}\n\n.segment-explorer-file-label {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 4px 6px;\n border-radius: 16px;\n line-height: 16px;\n font-size: var(--size-12);\n font-weight: 500;\n user-select: none;\n cursor: pointer;\n background-color: var(--color-gray-300);\n color: var(--color-gray-1000);\n}\n\n.segment-explorer-file-label--overridden {\n background-color: var(--color-amber-300);\n color: var(--color-amber-900);\n}\n\n.segment-explorer-file-label .code-icon {\n opacity: 0;\n margin-left: 0;\n width: 0;\n transition: all 0.15s ease-in-out;\n}\n.segment-explorer-file-label:hover .code-icon {\n opacity: 1;\n width: 12px;\n margin-left: 4px;\n}\n\n.segment-explorer-file-label:hover {\n filter: brightness(0.95);\n}\n\n.segment-explorer-file-label--builtin {\n background-color: transparent;\n color: var(--color-gray-900);\n border: 1px dashed var(--color-gray-500);\n height: 24px;\n cursor: default;\n}\n.segment-explorer-file-label--builtin svg {\n margin-left: 4px;\n margin-right: -4px;\n}\n\n/* Footer styles */\n.segment-explorer-footer {\n padding: 8px;\n border-top: 1px solid var(--color-gray-400);\n background-color: var(--color-background-100);\n user-select: none;\n}\n\n.segment-explorer-footer-button {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n width: 100%;\n padding: 6px;\n background: var(--color-background-100);\n border: 1px solid var(--color-gray-400);\n border-radius: 6px;\n color: var(--color-gray-1000);\n font-size: var(--size-14);\n font-weight: 500;\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.segment-explorer-footer-button:hover:not(:disabled) {\n background: var(--color-gray-200);\n}\n\n.segment-explorer-footer-button--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.segment-explorer-footer-text {\n text-align: center;\n}\n\n.segment-explorer-footer-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: var(--color-amber-300);\n color: var(--color-amber-900);\n border-radius: 10px;\n font-size: var(--size-12);\n font-weight: 600;\n line-height: 1;\n}\n\n.segment-explorer-file-label-tooltip--sm {\n white-space: nowrap;\n}\n\n.segment-explorer-file-label-tooltip--lg {\n min-width: 200px;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\"],names:[],mappings:\"AAAA;EACE,yBAAyB;EACzB,cAAc;EACd,YAAY;EACZ,aAAa;EACb,6BAA6B;EAC7B,+BAA+B;AACjC;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,6CAA6C;EAC7C,SAAS;AACX;;AAEA;EACE,yBAAyB;EACzB,gBAAgB;EAChB,6BAA6B;EAC7B,6BAA6B;EAC7B,mBAAmB;EACnB,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,kBAAkB;AACpB;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,oBAAoB;EACpB,kBAAkB;EAClB,gBAAgB;EAChB,eAAe;EACf,6BAA6B;AAC/B;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,oBAAoB;EACpB,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;AACpB;AACA;EACE,qBAAqB;EACrB,QAAQ;EACR,UAAU;AACZ;AACA;EACE,4BAA4B;AAC9B;;AAEA;EACE,oBAAoB;EACpB,QAAQ;EACR,iBAAiB;AACnB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;EACnB,iBAAiB;EACjB,yBAAyB;EACzB,gBAAgB;EAChB,iBAAiB;EACjB,eAAe;EACf,uCAAuC;EACvC,6BAA6B;AAC/B;;AAEA;EACE,wCAAwC;EACxC,6BAA6B;AAC/B;;AAEA;EACE,UAAU;EACV,cAAc;EACd,QAAQ;EACR,iCAAiC;AACnC;AACA;EACE,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB;;AAEA;EACE,wBAAwB;AAC1B;;AAEA;EACE,6BAA6B;EAC7B,4BAA4B;EAC5B,wCAAwC;EACxC,YAAY;EACZ,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,kBAAkB;AACpB;;AAEA,kBAAkB;AAClB;EACE,YAAY;EACZ,2CAA2C;EAC3C,6CAA6C;EAC7C,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,QAAQ;EACR,WAAW;EACX,YAAY;EACZ,uCAAuC;EACvC,uCAAuC;EACvC,kBAAkB;EAClB,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;EACf,uCAAuC;AACzC;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;EACf,YAAY;EACZ,cAAc;EACd,kCAAkC;EAClC,6BAA6B;EAC7B,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;EAChB,cAAc;AAChB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;AAClB\",sourcesContent:[\".segment-explorer-content {\\n font-size: var(--size-14);\\n padding: 0 8px;\\n width: 700px;\\n height: 400px;\\n max-width: calc(100vw - 40px);\\n max-height: calc(100vh - 240px);\\n}\\n\\n.segment-explorer-page-route-bar {\\n display: flex;\\n align-items: center;\\n padding: 14px 16px;\\n background-color: var(--color-background-200);\\n gap: 12px;\\n}\\n\\n.segment-explorer-page-route-bar-path {\\n font-size: var(--size-14);\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n font-family: var(--font-mono);\\n white-space: nowrap;\\n line-height: 20px;\\n}\\n\\n.segment-explorer-item {\\n margin: 4px 0;\\n border-radius: 6px;\\n}\\n\\n.segment-explorer-item:nth-child(even) {\\n background-color: var(--color-background-200);\\n}\\n\\n.segment-explorer-item-row {\\n display: flex;\\n align-items: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n padding-right: 4px;\\n white-space: pre;\\n cursor: default;\\n color: var(--color-gray-1000);\\n}\\n\\n.segment-explorer-children--intended {\\n padding-left: 16px;\\n}\\n\\n.segment-explorer-filename {\\n display: inline-flex;\\n width: 100%;\\n align-items: center;\\n}\\n\\n.segment-explorer-filename select {\\n margin-left: auto;\\n}\\n\\n.segment-explorer-filename--path {\\n margin-right: auto;\\n}\\n.segment-explorer-filename--path small {\\n display: inline-block;\\n width: 0;\\n opacity: 0;\\n}\\n.segment-explorer-filename--name {\\n color: var(--color-gray-800);\\n}\\n\\n.segment-explorer-files {\\n display: inline-flex;\\n gap: 8px;\\n margin-left: auto;\\n}\\n\\n.segment-explorer-files + .segment-boundary-trigger {\\n margin-left: 8px;\\n}\\n\\n.segment-explorer-file-label {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n padding: 4px 6px;\\n border-radius: 16px;\\n line-height: 16px;\\n font-size: var(--size-12);\\n font-weight: 500;\\n user-select: none;\\n cursor: pointer;\\n background-color: var(--color-gray-300);\\n color: var(--color-gray-1000);\\n}\\n\\n.segment-explorer-file-label--overridden {\\n background-color: var(--color-amber-300);\\n color: var(--color-amber-900);\\n}\\n\\n.segment-explorer-file-label .code-icon {\\n opacity: 0;\\n margin-left: 0;\\n width: 0;\\n transition: all 0.15s ease-in-out;\\n}\\n.segment-explorer-file-label:hover .code-icon {\\n opacity: 1;\\n width: 12px;\\n margin-left: 4px;\\n}\\n\\n.segment-explorer-file-label:hover {\\n filter: brightness(0.95);\\n}\\n\\n.segment-explorer-file-label--builtin {\\n background-color: transparent;\\n color: var(--color-gray-900);\\n border: 1px dashed var(--color-gray-500);\\n height: 24px;\\n cursor: default;\\n}\\n.segment-explorer-file-label--builtin svg {\\n margin-left: 4px;\\n margin-right: -4px;\\n}\\n\\n/* Footer styles */\\n.segment-explorer-footer {\\n padding: 8px;\\n border-top: 1px solid var(--color-gray-400);\\n background-color: var(--color-background-100);\\n user-select: none;\\n}\\n\\n.segment-explorer-footer-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n width: 100%;\\n padding: 6px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: 6px;\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n cursor: pointer;\\n transition: background-color 0.15s ease;\\n}\\n\\n.segment-explorer-footer-button:hover:not(:disabled) {\\n background: var(--color-gray-200);\\n}\\n\\n.segment-explorer-footer-button--disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n}\\n\\n.segment-explorer-footer-text {\\n text-align: center;\\n}\\n\\n.segment-explorer-footer-badge {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n min-width: 20px;\\n height: 20px;\\n padding: 0 6px;\\n background: var(--color-amber-300);\\n color: var(--color-amber-900);\\n border-radius: 10px;\\n font-size: var(--size-12);\\n font-weight: 600;\\n line-height: 1;\\n}\\n\\n.segment-explorer-file-label-tooltip--sm {\\n white-space: nowrap;\\n}\\n\\n.segment-explorer-file-label-tooltip--lg {\\n min-width: 200px;\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/toast/style.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`.nextjs-toast {\n position: fixed;\n z-index: var(--top-z-index);\n max-width: 420px;\n box-shadow: 0px 16px 32px rgba(0, 0, 0, 0.25);\n}\n\n.nextjs-toast-errors-parent {\n padding: 16px;\n border-radius: var(--rounded-4xl);\n font-weight: 500;\n color: var(--color-ansi-bright-white);\n background-color: var(--color-ansi-red);\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/dev-overlay/components/toast/style.css\"],names:[],mappings:\"AAAA;EACE,eAAe;EACf,2BAA2B;EAC3B,gBAAgB;EAChB,6CAA6C;AAC/C;;AAEA;EACE,aAAa;EACb,iCAAiC;EACjC,gBAAgB;EAChB,qCAAqC;EACrC,uCAAuC;AACzC\",sourcesContent:[\".nextjs-toast {\\n position: fixed;\\n z-index: var(--top-z-index);\\n max-width: 420px;\\n box-shadow: 0px 16px 32px rgba(0, 0, 0, 0.25);\\n}\\n\\n.nextjs-toast-errors-parent {\\n padding: 16px;\\n border-radius: var(--rounded-4xl);\\n font-weight: 500;\\n color: var(--color-ansi-bright-white);\\n background-color: var(--color-ansi-red);\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/global.css\":function(e,n,t){\"use strict\";t.d(n,{Z:()=>l});var r=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\"),o=t.n(r),a=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\"),i=t.n(a)()(o());i.push([e.id,`/* devtool global css variables */\n:host {\n --top-z-index: 2147483647;\n}\n`,\"\",{version:3,sources:[\"webpack://./src/next-devtools/global.css\"],names:[],mappings:\"AAAA,iCAAiC;AACjC;EACE,yBAAyB;AAC3B\",sourcesContent:[\"/* devtool global css variables */\\n:host {\\n --top-z-index: 2147483647;\\n}\\n\"],sourceRoot:\"\"}]);let l=i},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/api.js\":function(e){\"use strict\";e.exports=function(e){var n=[];return n.toString=function(){return this.map(function(n){var t=\"\",r=void 0!==n[5];return n[4]&&(t+=\"@supports (\".concat(n[4],\") {\")),n[2]&&(t+=\"@media \".concat(n[2],\" {\")),r&&(t+=\"@layer\".concat(n[5].length>0?\" \".concat(n[5]):\"\",\" {\")),t+=e(n),r&&(t+=\"}\"),n[2]&&(t+=\"}\"),n[4]&&(t+=\"}\"),t}).join(\"\")},n.i=function(e,t,r,o,a){\"string\"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var l=0;l<this.length;l++){var s=this[l][0];null!=s&&(i[s]=!0)}for(var c=0;c<e.length;c++){var u=[].concat(e[c]);r&&i[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]=\"@layer\".concat(u[5].length>0?\" \".concat(u[5]):\"\",\" {\").concat(u[1],\"}\")),u[5]=a),t&&(u[2]&&(u[1]=\"@media \".concat(u[2],\" {\").concat(u[1],\"}\")),u[2]=t),o&&(u[4]?(u[1]=\"@supports (\".concat(u[4],\") {\").concat(u[1],\"}\"),u[4]=o):u[4]=\"\".concat(o)),n.push(u))}},n}},\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/runtime/sourceMaps.js\":function(e){\"use strict\";e.exports=function(e){var n=e[1],t=e[3];if(!t)return n;if(\"function\"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(t))));return[n].concat([\"/*# \".concat(\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(r),\" */\")]).join(\"\\n\")}return[n].join(\"\\n\")}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\":function(e){\"use strict\";var n=[];function t(e){for(var t=-1,r=0;r<n.length;r++)if(n[r].identifier===e){t=r;break}return t}function r(e,r){for(var o={},a=[],i=0;i<e.length;i++){var l=e[i],s=r.base?l[0]+r.base:l[0],c=o[s]||0,u=\"\".concat(s,\" \").concat(c);o[s]=c+1;var d=t(u),f={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==d)n[d].references++,n[d].updater(f);else{var p=function(e,n){var t=n.domAPI(n);return t.update(e),function(n){n?(n.css!==e.css||n.media!==e.media||n.sourceMap!==e.sourceMap||n.supports!==e.supports||n.layer!==e.layer)&&t.update(e=n):t.remove()}}(f,r);r.byIndex=i,n.splice(i,0,{identifier:u,updater:p,references:1})}a.push(u)}return a}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var i=0;i<a.length;i++){var l=t(a[i]);n[l].references--}for(var s=r(e,o),c=0;c<a.length;c++){var u=t(a[c]);0===n[u].references&&(n[u].updater(),n.splice(u,1))}a=s}}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/insertStyleElement.js\":function(e){\"use strict\";e.exports=function(e){var n=document.createElement(\"style\");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\":function(e,n,t){\"use strict\";e.exports=function(e){var n=t.nc;n&&e.setAttribute(\"nonce\",n)}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleDomAPI.js\":function(e){\"use strict\";e.exports=function(e){if(\"undefined\"==typeof document)return{update:function(){},remove:function(){}};var n=e.insertStyleElement(e);return{update:function(t){var r,o,a;r=\"\",t.supports&&(r+=\"@supports (\".concat(t.supports,\") {\")),t.media&&(r+=\"@media \".concat(t.media,\" {\")),(o=void 0!==t.layer)&&(r+=\"@layer\".concat(t.layer.length>0?\" \".concat(t.layer):\"\",\" {\")),r+=t.css,o&&(r+=\"}\"),t.media&&(r+=\"}\"),t.supports&&(r+=\"}\"),(a=t.sourceMap)&&\"undefined\"!=typeof btoa&&(r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a)))),\" */\")),e.styleTagTransform(r,n,e.options)},remove:function(){!function(e){if(null!==e.parentNode)e.parentNode.removeChild(e)}(n)}}}},\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleTagTransform.js\":function(e){\"use strict\";e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}},\"./dist/compiled/anser/index.js\":function(e){(()=>{\"use strict\";var n={211:e=>{var n=function(){function e(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(n,t,r){return t&&e(n.prototype,t),r&&e(n,r),n}}(),t=[[{color:\"0, 0, 0\",class:\"ansi-black\"},{color:\"187, 0, 0\",class:\"ansi-red\"},{color:\"0, 187, 0\",class:\"ansi-green\"},{color:\"187, 187, 0\",class:\"ansi-yellow\"},{color:\"0, 0, 187\",class:\"ansi-blue\"},{color:\"187, 0, 187\",class:\"ansi-magenta\"},{color:\"0, 187, 187\",class:\"ansi-cyan\"},{color:\"255,255,255\",class:\"ansi-white\"}],[{color:\"85, 85, 85\",class:\"ansi-bright-black\"},{color:\"255, 85, 85\",class:\"ansi-bright-red\"},{color:\"0, 255, 0\",class:\"ansi-bright-green\"},{color:\"255, 255, 85\",class:\"ansi-bright-yellow\"},{color:\"85, 85, 255\",class:\"ansi-bright-blue\"},{color:\"255, 85, 255\",class:\"ansi-bright-magenta\"},{color:\"85, 255, 255\",class:\"ansi-bright-cyan\"},{color:\"255, 255, 255\",class:\"ansi-bright-white\"}]];e.exports=function(){function e(){if(!(this instanceof e))throw TypeError(\"Cannot call a class as a function\");this.fg=this.bg=this.fg_truecolor=this.bg_truecolor=null,this.bright=0}return n(e,null,[{key:\"escapeForHtml\",value:function(n){return(new e).escapeForHtml(n)}},{key:\"linkify\",value:function(n){return(new e).linkify(n)}},{key:\"ansiToHtml\",value:function(n,t){return(new e).ansiToHtml(n,t)}},{key:\"ansiToJson\",value:function(n,t){return(new e).ansiToJson(n,t)}},{key:\"ansiToText\",value:function(n){return(new e).ansiToText(n)}}]),n(e,[{key:\"setupPalette\",value:function(){this.PALETTE_COLORS=[];for(var e=0;e<2;++e)for(var n=0;n<8;++n)this.PALETTE_COLORS.push(t[e][n].color);for(var r=[0,95,135,175,215,255],o=function(e,n,t){return r[e]+\", \"+r[n]+\", \"+r[t]},a=0;a<6;++a)for(var i=0;i<6;++i)for(var l=0;l<6;++l)this.PALETTE_COLORS.push(o(a,i,l));for(var s=8,c=0;c<24;++c,s+=10)this.PALETTE_COLORS.push(o(s,s,s))}},{key:\"escapeForHtml\",value:function(e){return e.replace(/[&<>]/gm,function(e){return\"&\"==e?\"&amp;\":\"<\"==e?\"&lt;\":\">\"==e?\"&gt;\":\"\"})}},{key:\"linkify\",value:function(e){return e.replace(/(https?:\\/\\/[^\\s]+)/gm,function(e){return'<a href=\"'+e+'\">'+e+\"</a>\"})}},{key:\"ansiToHtml\",value:function(e,n){return this.process(e,n,!0)}},{key:\"ansiToJson\",value:function(e,n){return(n=n||{}).json=!0,n.clearLine=!1,this.process(e,n,!0)}},{key:\"ansiToText\",value:function(e){return this.process(e,{},!1)}},{key:\"process\",value:function(e,n,t){var r=this,o=e.split(/\\033\\[/),a=o.shift();null==n&&(n={}),n.clearLine=/\\r/.test(e);var i=o.map(function(e){return r.processChunk(e,n,t)});if(n&&n.json){var l=this.processChunkJson(\"\");return l.content=a,l.clearLine=n.clearLine,i.unshift(l),n.remove_empty&&(i=i.filter(function(e){return!e.isEmpty()})),i}return i.unshift(a),i.join(\"\")}},{key:\"processChunkJson\",value:function(e,n,r){var o=(n=void 0===n?{}:n).use_classes=void 0!==n.use_classes&&n.use_classes,a=n.key=o?\"class\":\"color\",i={content:e,fg:null,bg:null,fg_truecolor:null,bg_truecolor:null,clearLine:n.clearLine,decoration:null,was_processed:!1,isEmpty:function(){return!i.content}},l=e.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);if(!l)return i;i.content=l[4];var s=l[2].split(\";\");if(\"\"!==l[1]||\"m\"!==l[3]||!r)return i;for(this.decoration=null;s.length>0;){var c=parseInt(s.shift());if(isNaN(c)||0===c)this.fg=this.bg=this.decoration=null;else if(1===c)this.decoration=\"bold\";else if(2===c)this.decoration=\"dim\";else if(3==c)this.decoration=\"italic\";else if(4==c)this.decoration=\"underline\";else if(5==c)this.decoration=\"blink\";else if(7===c)this.decoration=\"reverse\";else if(8===c)this.decoration=\"hidden\";else if(9===c)this.decoration=\"strikethrough\";else if(39==c)this.fg=null;else if(49==c)this.bg=null;else if(c>=30&&c<38)this.fg=t[0][c%10][a];else if(c>=90&&c<98)this.fg=t[1][c%10][a];else if(c>=40&&c<48)this.bg=t[0][c%10][a];else if(c>=100&&c<108)this.bg=t[1][c%10][a];else if(38===c||48===c){var u=38===c;if(s.length>=1){var d=s.shift();if(\"5\"===d&&s.length>=1){var f=parseInt(s.shift());if(f>=0&&f<=255)if(o){var p=f>=16?\"ansi-palette-\"+f:t[+(f>7)][f%8].class;u?this.fg=p:this.bg=p}else this.PALETTE_COLORS||this.setupPalette(),u?this.fg=this.PALETTE_COLORS[f]:this.bg=this.PALETTE_COLORS[f]}else if(\"2\"===d&&s.length>=3){var h=parseInt(s.shift()),g=parseInt(s.shift()),m=parseInt(s.shift());if(h>=0&&h<=255&&g>=0&&g<=255&&m>=0&&m<=255){var v=h+\", \"+g+\", \"+m;o?u?(this.fg=\"ansi-truecolor\",this.fg_truecolor=v):(this.bg=\"ansi-truecolor\",this.bg_truecolor=v):u?this.fg=v:this.bg=v}}}}}return null===this.fg&&null===this.bg&&null===this.decoration||(i.fg=this.fg,i.bg=this.bg,i.fg_truecolor=this.fg_truecolor,i.bg_truecolor=this.bg_truecolor,i.decoration=this.decoration,i.was_processed=!0),i}},{key:\"processChunk\",value:function(e,n,t){var r=this;n=n||{};var o=this.processChunkJson(e,n,t);if(n.json)return o;if(o.isEmpty())return\"\";if(!o.was_processed)return o.content;var a=n.use_classes,i=[],l=[],s={},c=function(e){var n=[],t=void 0;for(t in e)e.hasOwnProperty(t)&&n.push(\"data-\"+t+'=\"'+r.escapeForHtml(e[t])+'\"');return n.length>0?\" \"+n.join(\" \"):\"\"};return(o.fg&&(a?(l.push(o.fg+\"-fg\"),null!==o.fg_truecolor&&(s[\"ansi-truecolor-fg\"]=o.fg_truecolor,o.fg_truecolor=null)):i.push(\"color:rgb(\"+o.fg+\")\")),o.bg&&(a?(l.push(o.bg+\"-bg\"),null!==o.bg_truecolor&&(s[\"ansi-truecolor-bg\"]=o.bg_truecolor,o.bg_truecolor=null)):i.push(\"background-color:rgb(\"+o.bg+\")\")),o.decoration&&(a?l.push(\"ansi-\"+o.decoration):\"bold\"===o.decoration?i.push(\"font-weight:bold\"):\"dim\"===o.decoration?i.push(\"opacity:0.5\"):\"italic\"===o.decoration?i.push(\"font-style:italic\"):\"reverse\"===o.decoration?i.push(\"filter:invert(100%)\"):\"hidden\"===o.decoration?i.push(\"visibility:hidden\"):\"strikethrough\"===o.decoration?i.push(\"text-decoration:line-through\"):i.push(\"text-decoration:\"+o.decoration)),a)?'<span class=\"'+l.join(\" \")+'\"'+c(s)+\">\"+o.content+\"</span>\":'<span style=\"'+i.join(\";\")+'\"'+c(s)+\">\"+o.content+\"</span>\"}}]),e}()}},t={};function r(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{n[e](a,a.exports,r),i=!1}finally{i&&delete t[e]}return a.exports}r.ab=\"//\",e.exports=r(211)})()},\"./dist/compiled/react-dom/cjs/react-dom-client.production.js\":function(e,n,t){\"use strict\";var r,o=t(\"./dist/compiled/scheduler/index.js\"),a=t(\"./dist/compiled/react/index.js\"),i=t(\"./dist/compiled/react-dom/index.js\");function l(e){var n=\"https://react.dev/errors/\"+e;if(1<arguments.length){n+=\"?args[]=\"+encodeURIComponent(arguments[1]);for(var t=2;t<arguments.length;t++)n+=\"&args[]=\"+encodeURIComponent(arguments[t])}return\"Minified React error #\"+e+\"; visit \"+n+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}function s(e){var n=e,t=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do 0!=(4098&(n=e).flags)&&(t=n.return),e=n.return;while(e)}return 3===n.tag?t:null}function c(e){if(13===e.tag){var n=e.memoizedState;if(null===n&&null!==(e=e.alternate)&&(n=e.memoizedState),null!==n)return n.dehydrated}return null}function u(e){if(31===e.tag){var n=e.memoizedState;if(null===n&&null!==(e=e.alternate)&&(n=e.memoizedState),null!==n)return n.dehydrated}return null}function d(e){if(s(e)!==e)throw Error(l(188))}var f=Object.assign,p=Symbol.for(\"react.element\"),h=Symbol.for(\"react.transitional.element\"),g=Symbol.for(\"react.portal\"),m=Symbol.for(\"react.fragment\"),v=Symbol.for(\"react.strict_mode\"),b=Symbol.for(\"react.profiler\"),y=Symbol.for(\"react.consumer\"),x=Symbol.for(\"react.context\"),w=Symbol.for(\"react.forward_ref\"),j=Symbol.for(\"react.suspense\"),k=Symbol.for(\"react.suspense_list\"),A=Symbol.for(\"react.memo\"),O=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");var C=Symbol.for(\"react.activity\");Symbol.for(\"react.legacy_hidden\"),Symbol.for(\"react.tracing_marker\");var S=Symbol.for(\"react.memo_cache_sentinel\");Symbol.for(\"react.view_transition\");var E=Symbol.iterator;function _(e){return null===e||\"object\"!=typeof e?null:\"function\"==typeof(e=E&&e[E]||e[\"@@iterator\"])?e:null}var P=Symbol.for(\"react.client.reference\"),z=Array.isArray,L=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,R={pending:!1,data:null,method:null,action:null},N=[],D=-1;function B(e){return{current:e}}function M(e){0>D||(e.current=N[D],N[D]=null,D--)}function I(e,n){N[++D]=e.current,e.current=n}var H=B(null),F=B(null),U=B(null),V=B(null);function q(e,n){switch(I(U,n),I(F,e),I(H,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?cp(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)e=ch(n=cp(n),e);else switch(e){case\"svg\":e=1;break;case\"math\":e=2;break;default:e=0}}M(H),I(H,e)}function W(){M(H),M(F),M(U)}function $(e){null!==e.memoizedState&&I(V,e);var n=H.current,t=ch(n,e.type);n!==t&&(I(F,e),I(H,t))}function Z(e){F.current===e&&(M(H),M(F)),V.current===e&&(M(V),c6._currentValue=R)}function Y(e){if(void 0===nD)try{throw Error()}catch(e){var n=e.stack.trim().match(/\\n( *(at )?)/);nD=n&&n[1]||\"\",nB=-1<e.stack.indexOf(\"\\n at\")?\" (<anonymous>)\":-1<e.stack.indexOf(\"@\")?\"@unknown:0:0\":\"\"}return\"\\n\"+nD+e+nB}var X=!1;function K(e,n){if(!e||X)return\"\";X=!0;var t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(n){var t=function(){throw Error()};if(Object.defineProperty(t.prototype,\"props\",{set:function(){throw Error()}}),\"object\"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}}else{try{throw Error()}catch(e){r=e}(t=e())&&\"function\"==typeof t.catch&&t.catch(function(){})}}catch(e){if(e&&r&&\"string\"==typeof e.stack)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=\"DetermineComponentFrameRoot\";var o=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,\"name\");o&&o.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,\"name\",{value:\"DetermineComponentFrameRoot\"});var a=r.DetermineComponentFrameRoot(),i=a[0],l=a[1];if(i&&l){var s=i.split(\"\\n\"),c=l.split(\"\\n\");for(o=r=0;r<s.length&&!s[r].includes(\"DetermineComponentFrameRoot\");)r++;for(;o<c.length&&!c[o].includes(\"DetermineComponentFrameRoot\");)o++;if(r===s.length||o===c.length)for(r=s.length-1,o=c.length-1;1<=r&&0<=o&&s[r]!==c[o];)o--;for(;1<=r&&0<=o;r--,o--)if(s[r]!==c[o]){if(1!==r||1!==o)do if(r--,o--,0>o||s[r]!==c[o]){var u=\"\\n\"+s[r].replace(\" at new \",\" at \");return e.displayName&&u.includes(\"<anonymous>\")&&(u=u.replace(\"<anonymous>\",e.displayName)),u}while(1<=r&&0<=o);break}}}finally{X=!1,Error.prepareStackTrace=t}return(t=e?e.displayName||e.name:\"\")?Y(t):\"\"}function Q(e){try{var n=\"\",t=null;do n+=function(e,n){switch(e.tag){case 26:case 27:case 5:return Y(e.type);case 16:return Y(\"Lazy\");case 13:return e.child!==n&&null!==n?Y(\"Suspense Fallback\"):Y(\"Suspense\");case 19:return Y(\"SuspenseList\");case 0:case 15:return K(e.type,!1);case 11:return K(e.type.render,!1);case 1:return K(e.type,!0);case 31:return Y(\"Activity\");default:return\"\"}}(e,t),t=e,e=e.return;while(e);return n}catch(e){return\"\\nError generating stack: \"+e.message+\"\\n\"+e.stack}}var G=Object.prototype.hasOwnProperty,J=o.unstable_scheduleCallback,ee=o.unstable_cancelCallback,en=o.unstable_shouldYield,et=o.unstable_requestPaint,er=o.unstable_now,eo=o.unstable_getCurrentPriorityLevel,ea=o.unstable_ImmediatePriority,ei=o.unstable_UserBlockingPriority,el=o.unstable_NormalPriority,es=o.unstable_LowPriority,ec=o.unstable_IdlePriority,eu=o.log,ed=o.unstable_setDisableYieldValue,ef=null,ep=null;function eh(e){if(\"function\"==typeof eu&&ed(e),ep&&\"function\"==typeof ep.setStrictMode)try{ep.setStrictMode(ef,e)}catch(e){}}var eg=Math.clz32?Math.clz32:function(e){return 0==(e>>>=0)?32:31-(em(e)/ev|0)|0},em=Math.log,ev=Math.LN2,eb=256,ey=4194304;function ex(e){var n=42&e;if(0!==n)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194048&e;case 4194304:case 8388608:case 0x1000000:case 0x2000000:return 0x3c00000&e;case 0x4000000:return 0x4000000;case 0x8000000:return 0x8000000;case 0x10000000:return 0x10000000;case 0x20000000:return 0x20000000;case 0x40000000:return 0;default:return e}}function ew(e,n,t){var r=e.pendingLanes;if(0===r)return 0;var o=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var l=0x7ffffff&r;return 0!==l?0!=(r=l&~a)?o=ex(r):0!=(i&=l)?o=ex(i):t||0!=(t=l&~e)&&(o=ex(t)):0!=(l=r&~a)?o=ex(l):0!==i?o=ex(i):t||0!=(t=r&~e)&&(o=ex(t)),0===o?0:0!==n&&n!==o&&0==(n&a)&&((a=o&-o)>=(t=n&-n)||32===a&&0!=(4194048&t))?n:o}function ej(e,n){return 0==(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)}function ek(){var e=eb;return 0==(4194048&(eb<<=1))&&(eb=256),e}function eA(){var e=ey;return 0==(0x3c00000&(ey<<=1))&&(ey=4194304),e}function eO(e){for(var n=[],t=0;31>t;t++)n.push(e);return n}function eC(e,n){e.pendingLanes|=n,0x10000000!==n&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function eS(e,n,t){e.pendingLanes|=n,e.suspendedLanes&=~n;var r=31-eg(n);e.entangledLanes|=n,e.entanglements[r]=0x40000000|e.entanglements[r]|4194090&t}function eE(e,n){var t=e.entangledLanes|=n;for(e=e.entanglements;t;){var r=31-eg(t),o=1<<r;o&n|e[r]&n&&(e[r]|=n),t&=~o}}function e_(e,n){var t=n&-n;return 0!=((t=0!=(42&t)?1:eP(t))&(e.suspendedLanes|n))?0:t}function eP(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 0x1000000:case 0x2000000:e=128;break;case 0x10000000:e=0x8000000;break;default:e=0}return e}function ez(e){return 2<(e&=-e)?8<e?0!=(0x7ffffff&e)?32:0x10000000:8:2}function eL(){var e=T.p;return 0!==e?e:void 0===(e=window.event)?32:uu(e.type)}function eT(e,n){var t=T.p;try{return T.p=e,n()}finally{T.p=t}}var eR=Math.random().toString(36).slice(2),eN=\"__reactFiber$\"+eR,eD=\"__reactProps$\"+eR,eB=\"__reactContainer$\"+eR,eM=\"__reactEvents$\"+eR,eI=\"__reactListeners$\"+eR,eH=\"__reactHandles$\"+eR,eF=\"__reactResources$\"+eR,eU=\"__reactMarker$\"+eR;function eV(e){delete e[eN],delete e[eD],delete e[eM],delete e[eI],delete e[eH]}function eq(e){var n=e[eN];if(n)return n;for(var t=e.parentNode;t;){if(n=t[eB]||t[eN]){if(t=n.alternate,null!==n.child||null!==t&&null!==t.child)for(e=cL(e);null!==e;){if(t=e[eN])return t;e=cL(e)}return n}t=(e=t).parentNode}return null}function eW(e){if(e=e[eN]||e[eB]){var n=e.tag;if(5===n||6===n||13===n||31===n||26===n||27===n||3===n)return e}return null}function e$(e){var n=e.tag;if(5===n||26===n||27===n||6===n)return e.stateNode;throw Error(l(33))}function eZ(e){var n=e[eF];return n||(n=e[eF]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function eY(e){e[eU]=!0}var eX=new Set,eK={};function eQ(e,n){eG(e,n),eG(e+\"Capture\",n)}function eG(e,n){for(eK[e]=n,e=0;e<n.length;e++)eX.add(n[e])}var eJ=RegExp(\"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"),e0={},e1={};function e2(e,n,t){if(G.call(e1,n)||!G.call(e0,n)&&(eJ.test(n)?e1[n]=!0:(e0[n]=!0,!1)))if(null===t)e.removeAttribute(n);else{switch(typeof t){case\"undefined\":case\"function\":case\"symbol\":e.removeAttribute(n);return;case\"boolean\":var r=n.toLowerCase().slice(0,5);if(\"data-\"!==r&&\"aria-\"!==r)return void e.removeAttribute(n)}e.setAttribute(n,\"\"+t)}}function e4(e,n,t){if(null===t)e.removeAttribute(n);else{switch(typeof t){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":e.removeAttribute(n);return}e.setAttribute(n,\"\"+t)}}function e5(e,n,t,r){if(null===r)e.removeAttribute(t);else{switch(typeof r){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":e.removeAttribute(t);return}e.setAttributeNS(n,t,\"\"+r)}}function e3(e){switch(typeof e){case\"bigint\":case\"boolean\":case\"number\":case\"string\":case\"undefined\":case\"object\":return e;default:return\"\"}}function e6(e){var n=e.type;return(e=e.nodeName)&&\"input\"===e.toLowerCase()&&(\"checkbox\"===n||\"radio\"===n)}function e9(e){if(!e._valueTracker){var n=e6(e)?\"checked\":\"value\";e._valueTracker=function(e,n,t){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,n);if(!e.hasOwnProperty(n)&&void 0!==r&&\"function\"==typeof r.get&&\"function\"==typeof r.set){var o=r.get,a=r.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return o.call(this)},set:function(e){t=\"\"+e,a.call(this,e)}}),Object.defineProperty(e,n,{enumerable:r.enumerable}),{getValue:function(){return t},setValue:function(e){t=\"\"+e},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}(e,n,\"\"+e[n])}}function e8(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r=\"\";return e&&(r=e6(e)?e.checked?\"true\":\"false\":e.value),(e=r)!==t&&(n.setValue(e),!0)}function e7(e){if(void 0===(e=e||(\"undefined\"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(n){return e.body}}var ne=/[\\n\"\\\\]/g;function nn(e){return e.replace(ne,function(e){return\"\\\\\"+e.charCodeAt(0).toString(16)+\" \"})}function nt(e,n,t,r,o,a,i,l){e.name=\"\",null!=i&&\"function\"!=typeof i&&\"symbol\"!=typeof i&&\"boolean\"!=typeof i?e.type=i:e.removeAttribute(\"type\"),null!=n?\"number\"===i?(0===n&&\"\"===e.value||e.value!=n)&&(e.value=\"\"+e3(n)):e.value!==\"\"+e3(n)&&(e.value=\"\"+e3(n)):\"submit\"!==i&&\"reset\"!==i||e.removeAttribute(\"value\"),null!=n?no(e,i,e3(n)):null!=t?no(e,i,e3(t)):null!=r&&e.removeAttribute(\"value\"),null==o&&null!=a&&(e.defaultChecked=!!a),null!=o&&(e.checked=o&&\"function\"!=typeof o&&\"symbol\"!=typeof o),null!=l&&\"function\"!=typeof l&&\"symbol\"!=typeof l&&\"boolean\"!=typeof l?e.name=\"\"+e3(l):e.removeAttribute(\"name\")}function nr(e,n,t,r,o,a,i,l){if(null!=a&&\"function\"!=typeof a&&\"symbol\"!=typeof a&&\"boolean\"!=typeof a&&(e.type=a),null!=n||null!=t){if((\"submit\"===a||\"reset\"===a)&&null==n)return void e9(e);t=null!=t?\"\"+e3(t):\"\",n=null!=n?\"\"+e3(n):t,l||n===e.value||(e.value=n),e.defaultValue=n}r=\"function\"!=typeof(r=null!=r?r:o)&&\"symbol\"!=typeof r&&!!r,e.checked=l?e.checked:!!r,e.defaultChecked=!!r,null!=i&&\"function\"!=typeof i&&\"symbol\"!=typeof i&&\"boolean\"!=typeof i&&(e.name=i),e9(e)}function no(e,n,t){\"number\"===n&&e7(e.ownerDocument)===e||e.defaultValue===\"\"+t||(e.defaultValue=\"\"+t)}function na(e,n,t,r){if(e=e.options,n){n={};for(var o=0;o<t.length;o++)n[\"$\"+t[o]]=!0;for(t=0;t<e.length;t++)o=n.hasOwnProperty(\"$\"+e[t].value),e[t].selected!==o&&(e[t].selected=o),o&&r&&(e[t].defaultSelected=!0)}else{for(o=0,t=\"\"+e3(t),n=null;o<e.length;o++){if(e[o].value===t){e[o].selected=!0,r&&(e[o].defaultSelected=!0);return}null!==n||e[o].disabled||(n=e[o])}null!==n&&(n.selected=!0)}}function ni(e,n,t){if(null!=n&&((n=\"\"+e3(n))!==e.value&&(e.value=n),null==t)){e.defaultValue!==n&&(e.defaultValue=n);return}e.defaultValue=null!=t?\"\"+e3(t):\"\"}function nl(e,n,t,r){if(null==n){if(null!=r){if(null!=t)throw Error(l(92));if(z(r)){if(1<r.length)throw Error(l(93));r=r[0]}t=r}null==t&&(t=\"\"),n=t}e.defaultValue=t=e3(n),(r=e.textContent)===t&&\"\"!==r&&null!==r&&(e.value=r),e9(e)}function ns(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&3===t.nodeType){t.nodeValue=n;return}}e.textContent=n}var nc=new Set(\"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\" \"));function nu(e,n,t){var r=0===n.indexOf(\"--\");null==t||\"boolean\"==typeof t||\"\"===t?r?e.setProperty(n,\"\"):\"float\"===n?e.cssFloat=\"\":e[n]=\"\":r?e.setProperty(n,t):\"number\"!=typeof t||0===t||nc.has(n)?\"float\"===n?e.cssFloat=t:e[n]=(\"\"+t).trim():e[n]=t+\"px\"}function nd(e,n,t){if(null!=n&&\"object\"!=typeof n)throw Error(l(62));if(e=e.style,null!=t){for(var r in t)!t.hasOwnProperty(r)||null!=n&&n.hasOwnProperty(r)||(0===r.indexOf(\"--\")?e.setProperty(r,\"\"):\"float\"===r?e.cssFloat=\"\":e[r]=\"\");for(var o in n)r=n[o],n.hasOwnProperty(o)&&t[o]!==r&&nu(e,o,r)}else for(var a in n)n.hasOwnProperty(a)&&nu(e,a,n[a])}function nf(e){if(-1===e.indexOf(\"-\"))return!1;switch(e){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}var np=new Map([[\"acceptCharset\",\"accept-charset\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"],[\"crossOrigin\",\"crossorigin\"],[\"accentHeight\",\"accent-height\"],[\"alignmentBaseline\",\"alignment-baseline\"],[\"arabicForm\",\"arabic-form\"],[\"baselineShift\",\"baseline-shift\"],[\"capHeight\",\"cap-height\"],[\"clipPath\",\"clip-path\"],[\"clipRule\",\"clip-rule\"],[\"colorInterpolation\",\"color-interpolation\"],[\"colorInterpolationFilters\",\"color-interpolation-filters\"],[\"colorProfile\",\"color-profile\"],[\"colorRendering\",\"color-rendering\"],[\"dominantBaseline\",\"dominant-baseline\"],[\"enableBackground\",\"enable-background\"],[\"fillOpacity\",\"fill-opacity\"],[\"fillRule\",\"fill-rule\"],[\"floodColor\",\"flood-color\"],[\"floodOpacity\",\"flood-opacity\"],[\"fontFamily\",\"font-family\"],[\"fontSize\",\"font-size\"],[\"fontSizeAdjust\",\"font-size-adjust\"],[\"fontStretch\",\"font-stretch\"],[\"fontStyle\",\"font-style\"],[\"fontVariant\",\"font-variant\"],[\"fontWeight\",\"font-weight\"],[\"glyphName\",\"glyph-name\"],[\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\"],[\"glyphOrientationVertical\",\"glyph-orientation-vertical\"],[\"horizAdvX\",\"horiz-adv-x\"],[\"horizOriginX\",\"horiz-origin-x\"],[\"imageRendering\",\"image-rendering\"],[\"letterSpacing\",\"letter-spacing\"],[\"lightingColor\",\"lighting-color\"],[\"markerEnd\",\"marker-end\"],[\"markerMid\",\"marker-mid\"],[\"markerStart\",\"marker-start\"],[\"overlinePosition\",\"overline-position\"],[\"overlineThickness\",\"overline-thickness\"],[\"paintOrder\",\"paint-order\"],[\"panose-1\",\"panose-1\"],[\"pointerEvents\",\"pointer-events\"],[\"renderingIntent\",\"rendering-intent\"],[\"shapeRendering\",\"shape-rendering\"],[\"stopColor\",\"stop-color\"],[\"stopOpacity\",\"stop-opacity\"],[\"strikethroughPosition\",\"strikethrough-position\"],[\"strikethroughThickness\",\"strikethrough-thickness\"],[\"strokeDasharray\",\"stroke-dasharray\"],[\"strokeDashoffset\",\"stroke-dashoffset\"],[\"strokeLinecap\",\"stroke-linecap\"],[\"strokeLinejoin\",\"stroke-linejoin\"],[\"strokeMiterlimit\",\"stroke-miterlimit\"],[\"strokeOpacity\",\"stroke-opacity\"],[\"strokeWidth\",\"stroke-width\"],[\"textAnchor\",\"text-anchor\"],[\"textDecoration\",\"text-decoration\"],[\"textRendering\",\"text-rendering\"],[\"transformOrigin\",\"transform-origin\"],[\"underlinePosition\",\"underline-position\"],[\"underlineThickness\",\"underline-thickness\"],[\"unicodeBidi\",\"unicode-bidi\"],[\"unicodeRange\",\"unicode-range\"],[\"unitsPerEm\",\"units-per-em\"],[\"vAlphabetic\",\"v-alphabetic\"],[\"vHanging\",\"v-hanging\"],[\"vIdeographic\",\"v-ideographic\"],[\"vMathematical\",\"v-mathematical\"],[\"vectorEffect\",\"vector-effect\"],[\"vertAdvY\",\"vert-adv-y\"],[\"vertOriginX\",\"vert-origin-x\"],[\"vertOriginY\",\"vert-origin-y\"],[\"wordSpacing\",\"word-spacing\"],[\"writingMode\",\"writing-mode\"],[\"xmlnsXlink\",\"xmlns:xlink\"],[\"xHeight\",\"x-height\"]]),nh=/^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;function ng(e){return nh.test(\"\"+e)?\"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\":e}function nm(){}var nv=null;function nb(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var ny=null,nx=null;function nw(e){var n=eW(e);if(n&&(e=n.stateNode)){var t=e[eD]||null;switch(e=n.stateNode,n.type){case\"input\":if(nt(e,t.value,t.defaultValue,t.defaultValue,t.checked,t.defaultChecked,t.type,t.name),n=t.name,\"radio\"===t.type&&null!=n){for(t=e;t.parentNode;)t=t.parentNode;for(t=t.querySelectorAll('input[name=\"'+nn(\"\"+n)+'\"][type=\"radio\"]'),n=0;n<t.length;n++){var r=t[n];if(r!==e&&r.form===e.form){var o=r[eD]||null;if(!o)throw Error(l(90));nt(r,o.value,o.defaultValue,o.defaultValue,o.checked,o.defaultChecked,o.type,o.name)}}for(n=0;n<t.length;n++)(r=t[n]).form===e.form&&e8(r)}break;case\"textarea\":ni(e,t.value,t.defaultValue);break;case\"select\":null!=(n=t.value)&&na(e,!!t.multiple,n,!1)}}}var nj=!1;function nk(e,n,t){if(nj)return e(n,t);nj=!0;try{return e(n)}finally{if(nj=!1,(null!==ny||null!==nx)&&(ss(),ny&&(n=ny,e=nx,nx=ny=null,nw(n),e)))for(n=0;n<e.length;n++)nw(e[n])}}function nA(e,n){var t=e.stateNode;if(null===t)return null;var r=t[eD]||null;if(null===r)return null;switch(t=r[n],n){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":(r=!r.disabled)||(r=\"button\"!==(e=e.type)&&\"input\"!==e&&\"select\"!==e&&\"textarea\"!==e),e=!r;break;default:e=!1}if(e)return null;if(t&&\"function\"!=typeof t)throw Error(l(231,n,typeof t));return t}var nO=\"undefined\"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,nC=!1;if(nO)try{var nS={};Object.defineProperty(nS,\"passive\",{get:function(){nC=!0}}),window.addEventListener(\"test\",nS,nS),window.removeEventListener(\"test\",nS,nS)}catch(e){nC=!1}var nE=null,n_=null,nP=null;function nz(){if(nP)return nP;var e,n,t=n_,r=t.length,o=\"value\"in nE?nE.value:nE.textContent,a=o.length;for(e=0;e<r&&t[e]===o[e];e++);var i=r-e;for(n=1;n<=i&&t[r-n]===o[a-n];n++);return nP=o.slice(e,1<n?1-n:void 0)}function nL(e){var n=e.keyCode;return\"charCode\"in e?0===(e=e.charCode)&&13===n&&(e=13):e=n,10===e&&(e=13),32<=e||13===e?e:0}function nT(){return!0}function nR(){return!1}function nN(e){function n(n,t,r,o,a){for(var i in this._reactName=n,this._targetInst=r,this.type=t,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(n=e[i],this[i]=n?n(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?nT:nR,this.isPropagationStopped=nR,this}return f(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():\"unknown\"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nT)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():\"unknown\"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nT)},persist:function(){},isPersistent:nT}),n}var nD,nB,nM,nI,nH,nF={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},nU=nN(nF),nV=f({},nF,{view:0,detail:0}),nq=nN(nV),nW=f({},nV,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:n2,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return\"movementX\"in e?e.movementX:(e!==nH&&(nH&&\"mousemove\"===e.type?(nM=e.screenX-nH.screenX,nI=e.screenY-nH.screenY):nI=nM=0,nH=e),nM)},movementY:function(e){return\"movementY\"in e?e.movementY:nI}}),n$=nN(nW),nZ=nN(f({},nW,{dataTransfer:0})),nY=nN(f({},nV,{relatedTarget:0})),nX=nN(f({},nF,{animationName:0,elapsedTime:0,pseudoElement:0})),nK=nN(f({},nF,{clipboardData:function(e){return\"clipboardData\"in e?e.clipboardData:window.clipboardData}})),nQ=nN(f({},nF,{data:0})),nG={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},nJ={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},n0={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function n1(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):!!(e=n0[e])&&!!n[e]}function n2(){return n1}var n4=nN(f({},nV,{key:function(e){if(e.key){var n=nG[e.key]||e.key;if(\"Unidentified\"!==n)return n}return\"keypress\"===e.type?13===(e=nL(e))?\"Enter\":String.fromCharCode(e):\"keydown\"===e.type||\"keyup\"===e.type?nJ[e.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:n2,charCode:function(e){return\"keypress\"===e.type?nL(e):0},keyCode:function(e){return\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0},which:function(e){return\"keypress\"===e.type?nL(e):\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0}})),n5=nN(f({},nW,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),n3=nN(f({},nV,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:n2})),n6=nN(f({},nF,{propertyName:0,elapsedTime:0,pseudoElement:0})),n9=nN(f({},nW,{deltaX:function(e){return\"deltaX\"in e?e.deltaX:\"wheelDeltaX\"in e?-e.wheelDeltaX:0},deltaY:function(e){return\"deltaY\"in e?e.deltaY:\"wheelDeltaY\"in e?-e.wheelDeltaY:\"wheelDelta\"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),n8=nN(f({},nF,{newState:0,oldState:0})),n7=[9,13,27,32],te=nO&&\"CompositionEvent\"in window,tn=null;nO&&\"documentMode\"in document&&(tn=document.documentMode);var tt=nO&&\"TextEvent\"in window&&!tn,tr=nO&&(!te||tn&&8<tn&&11>=tn),to=!1;function ta(e,n){switch(e){case\"keyup\":return -1!==n7.indexOf(n.keyCode);case\"keydown\":return 229!==n.keyCode;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function ti(e){return\"object\"==typeof(e=e.detail)&&\"data\"in e?e.data:null}var tl=!1,ts={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function tc(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return\"input\"===n?!!ts[e.type]:\"textarea\"===n}function tu(e,n,t,r){ny?nx?nx.push(r):nx=[r]:ny=r,0<(n=ce(n,\"onChange\")).length&&(t=new nU(\"onChange\",\"change\",null,t,r),e.push({event:t,listeners:n}))}var td=null,tf=null;function tp(e){s2(e,0)}function th(e){if(e8(e$(e)))return e}function tg(e,n){if(\"change\"===e)return n}var tm=!1;if(nO){if(nO){var tv=\"oninput\"in document;if(!tv){var tb=document.createElement(\"div\");tb.setAttribute(\"oninput\",\"return;\"),tv=\"function\"==typeof tb.oninput}r=tv}else r=!1;tm=r&&(!document.documentMode||9<document.documentMode)}function ty(){td&&(td.detachEvent(\"onpropertychange\",tx),tf=td=null)}function tx(e){if(\"value\"===e.propertyName&&th(tf)){var n=[];tu(n,tf,e,nb(e)),nk(tp,n)}}function tw(e,n,t){\"focusin\"===e?(ty(),td=n,tf=t,td.attachEvent(\"onpropertychange\",tx)):\"focusout\"===e&&ty()}function tj(e){if(\"selectionchange\"===e||\"keyup\"===e||\"keydown\"===e)return th(tf)}function tk(e,n){if(\"click\"===e)return th(n)}function tA(e,n){if(\"input\"===e||\"change\"===e)return th(n)}var tO=\"function\"==typeof Object.is?Object.is:function(e,n){return e===n&&(0!==e||1/e==1/n)||e!=e&&n!=n};function tC(e,n){if(tO(e,n))return!0;if(\"object\"!=typeof e||null===e||\"object\"!=typeof n||null===n)return!1;var t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(r=0;r<t.length;r++){var o=t[r];if(!G.call(n,o)||!tO(e[o],n[o]))return!1}return!0}function tS(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function tE(e,n){var t,r=tS(e);for(e=0;r;){if(3===r.nodeType){if(t=e+r.textContent.length,e<=n&&t>=n)return{node:r,offset:n-e};e=t}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=tS(r)}}function t_(e){e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window;for(var n=e7(e.document);n instanceof e.HTMLIFrameElement;){try{var t=\"string\"==typeof n.contentWindow.location.href}catch(e){t=!1}if(t)e=n.contentWindow;else break;n=e7(e.document)}return n}function tP(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(\"input\"===n&&(\"text\"===e.type||\"search\"===e.type||\"tel\"===e.type||\"url\"===e.type||\"password\"===e.type)||\"textarea\"===n||\"true\"===e.contentEditable)}var tz=nO&&\"documentMode\"in document&&11>=document.documentMode,tL=null,tT=null,tR=null,tN=!1;function tD(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;tN||null==tL||tL!==e7(r)||(r=\"selectionStart\"in(r=tL)&&tP(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},tR&&tC(tR,r)||(tR=r,0<(r=ce(tT,\"onSelect\")).length&&(n=new nU(\"onSelect\",\"select\",null,n,t),e.push({event:n,listeners:r}),n.target=tL)))}function tB(e,n){var t={};return t[e.toLowerCase()]=n.toLowerCase(),t[\"Webkit\"+e]=\"webkit\"+n,t[\"Moz\"+e]=\"moz\"+n,t}var tM={animationend:tB(\"Animation\",\"AnimationEnd\"),animationiteration:tB(\"Animation\",\"AnimationIteration\"),animationstart:tB(\"Animation\",\"AnimationStart\"),transitionrun:tB(\"Transition\",\"TransitionRun\"),transitionstart:tB(\"Transition\",\"TransitionStart\"),transitioncancel:tB(\"Transition\",\"TransitionCancel\"),transitionend:tB(\"Transition\",\"TransitionEnd\")},tI={},tH={};function tF(e){if(tI[e])return tI[e];if(!tM[e])return e;var n,t=tM[e];for(n in t)if(t.hasOwnProperty(n)&&n in tH)return tI[e]=t[n];return e}nO&&(tH=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete tM.animationend.animation,delete tM.animationiteration.animation,delete tM.animationstart.animation),\"TransitionEvent\"in window||delete tM.transitionend.transition);var tU=tF(\"animationend\"),tV=tF(\"animationiteration\"),tq=tF(\"animationstart\"),tW=tF(\"transitionrun\"),t$=tF(\"transitionstart\"),tZ=tF(\"transitioncancel\"),tY=tF(\"transitionend\"),tX=new Map,tK=\"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");function tQ(e,n){tX.set(e,n),eQ(n,[e])}tK.push(\"scrollEnd\");var tG=\"function\"==typeof reportError?reportError:function(e){if(\"object\"==typeof window&&\"function\"==typeof window.ErrorEvent){var n=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:\"object\"==typeof e&&null!==e&&\"string\"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if(\"object\"==typeof process&&\"function\"==typeof process.emit)return void process.emit(\"uncaughtException\",e);console.error(e)},tJ=[],t0=0,t1=0;function t2(){for(var e=t0,n=t1=t0=0;n<e;){var t=tJ[n];tJ[n++]=null;var r=tJ[n];tJ[n++]=null;var o=tJ[n];tJ[n++]=null;var a=tJ[n];if(tJ[n++]=null,null!==r&&null!==o){var i=r.pending;null===i?o.next=o:(o.next=i.next,i.next=o),r.pending=o}0!==a&&t6(t,o,a)}}function t4(e,n,t,r){tJ[t0++]=e,tJ[t0++]=n,tJ[t0++]=t,tJ[t0++]=r,t1|=r,e.lanes|=r,null!==(e=e.alternate)&&(e.lanes|=r)}function t5(e,n,t,r){return t4(e,n,t,r),t9(e)}function t3(e,n){return t4(e,null,null,n),t9(e)}function t6(e,n,t){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t);for(var o=!1,a=e.return;null!==a;)a.childLanes|=t,null!==(r=a.alternate)&&(r.childLanes|=t),22===a.tag&&(null===(e=a.stateNode)||1&e._visibility||(o=!0)),e=a,a=a.return;return 3===e.tag?(a=e.stateNode,o&&null!==n&&(o=31-eg(t),null===(r=(e=a.hiddenUpdates)[o])?e[o]=[n]:r.push(n),n.lane=0x20000000|t),a):null}function t9(e){if(50<se)throw se=0,sn=null,Error(l(185));for(var n=e.return;null!==n;)n=(e=n).return;return 3===e.tag?e.stateNode:null}var t8={};function t7(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function re(e,n,t,r){return new t7(e,n,t,r)}function rn(e){return!(!(e=e.prototype)||!e.isReactComponent)}function rt(e,n){var t=e.alternate;return null===t?((t=re(e.tag,n,e.key,e.mode)).elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=0x3e00000&e.flags,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t.refCleanup=e.refCleanup,t}function rr(e,n){e.flags&=0x3e00002;var t=e.alternate;return null===t?(e.childLanes=0,e.lanes=n,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=t.childLanes,e.lanes=t.lanes,e.child=t.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=t.memoizedProps,e.memoizedState=t.memoizedState,e.updateQueue=t.updateQueue,e.type=t.type,e.dependencies=null===(n=t.dependencies)?null:{lanes:n.lanes,firstContext:n.firstContext}),e}function ro(e,n,t,r,o,a){var i=0;if(r=e,\"function\"==typeof e)rn(e)&&(i=1);else if(\"string\"==typeof e)i=!function(e,n,t){if(1===t||null!=n.itemProp)return!1;switch(e){case\"meta\":case\"title\":return!0;case\"style\":if(\"string\"!=typeof n.precedence||\"string\"!=typeof n.href||\"\"===n.href)break;return!0;case\"link\":if(\"string\"!=typeof n.rel||\"string\"!=typeof n.href||\"\"===n.href||n.onLoad||n.onError)break;if(\"stylesheet\"===n.rel)return e=n.disabled,\"string\"==typeof n.precedence&&null==e;return!0;case\"script\":if(n.async&&\"function\"!=typeof n.async&&\"symbol\"!=typeof n.async&&!n.onLoad&&!n.onError&&n.src&&\"string\"==typeof n.src)return!0}return!1}(e,t,H.current)?\"html\"===e||\"head\"===e||\"body\"===e?27:5:26;else e:switch(e){case C:return(e=re(31,t,n,o)).elementType=C,e.lanes=a,e;case m:return ra(t.children,o,a,n);case v:i=8,o|=24;break;case b:return(e=re(12,t,n,2|o)).elementType=b,e.lanes=a,e;case j:return(e=re(13,t,n,o)).elementType=j,e.lanes=a,e;case k:return(e=re(19,t,n,o)).elementType=k,e.lanes=a,e;default:if(\"object\"==typeof e&&null!==e)switch(e.$$typeof){case x:i=10;break e;case y:i=9;break e;case w:i=11;break e;case A:i=14;break e;case O:i=16,r=null;break e}i=29,t=Error(l(130,null===e?\"null\":typeof e,\"\")),r=null}return(n=re(i,t,n,o)).elementType=e,n.type=r,n.lanes=a,n}function ra(e,n,t,r){return(e=re(7,e,r,n)).lanes=t,e}function ri(e,n,t){return(e=re(6,e,null,n)).lanes=t,e}function rl(e){var n=re(18,null,null,0);return n.stateNode=e,n}function rs(e,n,t){return(n=re(4,null!==e.children?e.children:[],e.key,n)).lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}var rc=new WeakMap;function ru(e,n){if(\"object\"==typeof e&&null!==e){var t=rc.get(e);return void 0!==t?t:(n={value:e,source:n,stack:Q(n)},rc.set(e,n),n)}return{value:e,source:n,stack:Q(n)}}var rd=[],rf=0,rp=null,rh=0,rg=[],rm=0,rv=null,rb=1,ry=\"\";function rx(e,n){rd[rf++]=rh,rd[rf++]=rp,rp=e,rh=n}function rw(e,n,t){rg[rm++]=rb,rg[rm++]=ry,rg[rm++]=rv,rv=e;var r=rb;e=ry;var o=32-eg(r)-1;r&=~(1<<o),t+=1;var a=32-eg(n)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,rb=1<<32-eg(n)+o|t<<o|r,ry=a+e}else rb=1<<a|t<<o|r,ry=e}function rj(e){null!==e.return&&(rx(e,1),rw(e,1,0))}function rk(e){for(;e===rp;)rp=rd[--rf],rd[rf]=null,rh=rd[--rf],rd[rf]=null;for(;e===rv;)rv=rg[--rm],rg[rm]=null,ry=rg[--rm],rg[rm]=null,rb=rg[--rm],rg[rm]=null}function rA(e,n){rg[rm++]=rb,rg[rm++]=ry,rg[rm++]=rv,rb=n.id,ry=n.overflow,rv=e}var rO=null,rC=null,rS=!1,rE=null,r_=!1,rP=Error(l(519));function rz(e){var n=Error(l(418,1<arguments.length&&void 0!==arguments[1]&&arguments[1]?\"text\":\"HTML\",\"\"));throw rB(ru(n,e)),rP}function rL(e){var n=e.stateNode,t=e.type,r=e.memoizedProps;switch(n[eN]=e,n[eD]=r,t){case\"dialog\":s4(\"cancel\",n),s4(\"close\",n);break;case\"iframe\":case\"object\":case\"embed\":s4(\"load\",n);break;case\"video\":case\"audio\":for(t=0;t<s0.length;t++)s4(s0[t],n);break;case\"source\":s4(\"error\",n);break;case\"img\":case\"image\":case\"link\":s4(\"error\",n),s4(\"load\",n);break;case\"details\":s4(\"toggle\",n);break;case\"input\":s4(\"invalid\",n),nr(n,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case\"select\":s4(\"invalid\",n);break;case\"textarea\":s4(\"invalid\",n),nl(n,r.value,r.defaultValue,r.children)}\"string\"!=typeof(t=r.children)&&\"number\"!=typeof t&&\"bigint\"!=typeof t||n.textContent===\"\"+t||!0===r.suppressHydrationWarning||ci(n.textContent,t)?(null!=r.popover&&(s4(\"beforetoggle\",n),s4(\"toggle\",n)),null!=r.onScroll&&s4(\"scroll\",n),null!=r.onScrollEnd&&s4(\"scrollend\",n),null!=r.onClick&&(n.onclick=nm),n=!0):n=!1,n||rz(e,!0)}function rT(e){for(rO=e.return;rO;)switch(rO.tag){case 5:case 31:case 13:r_=!1;return;case 27:case 3:r_=!0;return;default:rO=rO.return}}function rR(e){if(e!==rO)return!1;if(!rS)return rT(e),rS=!0,!1;var n,t=e.tag;if((n=3!==t&&27!==t)&&((n=5===t)&&(n=\"form\"===(n=e.type)||\"button\"===n||cg(e.type,e.memoizedProps)),n=!n),n&&rC&&rz(e),rT(e),13===t){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rC=cz(e)}else if(31===t){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));rC=cz(e)}else 27===t?(t=rC,cj(e.type)?(e=cP,cP=null,rC=e):rC=t):rC=rO?c_(e.stateNode.nextSibling):null;return!0}function rN(){rC=rO=null,rS=!1}function rD(){var e=rE;return null!==e&&(null===lQ?lQ=e:lQ.push.apply(lQ,e),rE=null),e}function rB(e){null===rE?rE=[e]:rE.push(e)}var rM=B(null),rI=null,rH=null;function rF(e,n,t){I(rM,n._currentValue),n._currentValue=t}function rU(e){e._currentValue=rM.current,M(rM)}function rV(e,n,t){for(;null!==e;){var r=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,null!==r&&(r.childLanes|=n)):null!==r&&(r.childLanes&n)!==n&&(r.childLanes|=n),e===t)break;e=e.return}}function rq(e,n,t,r){var o=e.child;for(null!==o&&(o.return=e);null!==o;){var a=o.dependencies;if(null!==a){var i=o.child;a=a.firstContext;e:for(;null!==a;){var s=a;a=o;for(var c=0;c<n.length;c++)if(s.context===n[c]){a.lanes|=t,null!==(s=a.alternate)&&(s.lanes|=t),rV(a.return,t,e),r||(i=null);break e}a=s.next}}else if(18===o.tag){if(null===(i=o.return))throw Error(l(341));i.lanes|=t,null!==(a=i.alternate)&&(a.lanes|=t),rV(i,t,e),i=null}else i=o.child;if(null!==i)i.return=o;else for(i=o;null!==i;){if(i===e){i=null;break}if(null!==(o=i.sibling)){o.return=i.return,i=o;break}i=i.return}o=i}}function rW(e,n,t,r){e=null;for(var o=n,a=!1;null!==o;){if(!a){if(0!=(524288&o.flags))a=!0;else if(0!=(262144&o.flags))break}if(10===o.tag){var i=o.alternate;if(null===i)throw Error(l(387));if(null!==(i=i.memoizedProps)){var s=o.type;tO(o.pendingProps.value,i.value)||(null!==e?e.push(s):e=[s])}}else if(o===V.current){if(null===(i=o.alternate))throw Error(l(387));i.memoizedState.memoizedState!==o.memoizedState.memoizedState&&(null!==e?e.push(c6):e=[c6])}o=o.return}null!==e&&rq(n,e,t,r),n.flags|=262144}function r$(e){for(e=e.firstContext;null!==e;){if(!tO(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function rZ(e){rI=e,rH=null,null!==(e=e.dependencies)&&(e.firstContext=null)}function rY(e){return rK(rI,e)}function rX(e,n){return null===rI&&rZ(e),rK(e,n)}function rK(e,n){var t=n._currentValue;if(n={context:n,memoizedValue:t,next:null},null===rH){if(null===e)throw Error(l(308));rH=n,e.dependencies={lanes:0,firstContext:n},e.flags|=524288}else rH=rH.next=n;return t}var rQ=\"undefined\"!=typeof AbortController?AbortController:function(){var e=[],n=this.signal={aborted:!1,addEventListener:function(n,t){e.push(t)}};this.abort=function(){n.aborted=!0,e.forEach(function(e){return e()})}},rG=o.unstable_scheduleCallback,rJ=o.unstable_NormalPriority,r0={$$typeof:x,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function r1(){return{controller:new rQ,data:new Map,refCount:0}}function r2(e){e.refCount--,0===e.refCount&&rG(rJ,function(){e.controller.abort()})}var r4=null,r5=0,r3=0,r6=null;function r9(){if(0==--r5&&null!==r4){null!==r6&&(r6.status=\"fulfilled\");var e=r4;r4=null,r3=0,r6=null;for(var n=0;n<e.length;n++)(0,e[n])()}}var r8=L.S;L.S=function(e,n){\"object\"==typeof n&&null!==n&&\"function\"==typeof n.then&&function(e,n){if(null===r4){var t=r4=[];r5=0,r3=sX(),r6={status:\"pending\",value:void 0,then:function(e){t.push(e)}}}r5++,n.then(r9,r9)}(0,n),null!==r8&&r8(e,n)};var r7=B(null);function oe(){var e=r7.current;return null!==e?e:lN.pooledCache}function on(e,n){null===n?I(r7,r7.current):I(r7,n.pool)}function ot(){var e=oe();return null===e?null:{parent:r0._currentValue,pool:e}}var or=Error(l(460)),oo=Error(l(474)),oa=Error(l(542)),oi={then:function(){}};function ol(e){return\"fulfilled\"===(e=e.status)||\"rejected\"===e}function os(e,n,t){switch(void 0===(t=e[t])?e.push(n):t!==n&&(n.then(nm,nm),n=t),n.status){case\"fulfilled\":return n.value;case\"rejected\":throw od(e=n.reason),e;default:if(\"string\"==typeof n.status)n.then(nm,nm);else{if(null!==(e=lN)&&100<e.shellSuspendCounter)throw Error(l(482));(e=n).status=\"pending\",e.then(function(e){if(\"pending\"===n.status){var t=n;t.status=\"fulfilled\",t.value=e}},function(e){if(\"pending\"===n.status){var t=n;t.status=\"rejected\",t.reason=e}})}switch(n.status){case\"fulfilled\":return n.value;case\"rejected\":throw od(e=n.reason),e}throw oc=n,or}}var oc=null;function ou(){if(null===oc)throw Error(l(459));var e=oc;return oc=null,e}function od(e){if(e===or||e===oa)throw Error(l(483))}var of=null,op=0;function oh(e){var n=op;return op+=1,null===of&&(of=[]),os(of,e,n)}function og(e,n){e.ref=void 0!==(n=n.props.ref)?n:null}function om(e,n){if(n.$$typeof===p)throw Error(l(525));throw Error(l(31,\"[object Object]\"===(e=Object.prototype.toString.call(n))?\"object with keys {\"+Object.keys(n).join(\", \")+\"}\":e))}function ov(e){return(0,e._init)(e._payload)}function ob(e){function n(n,t){if(e){var r=n.deletions;null===r?(n.deletions=[t],n.flags|=16):r.push(t)}}function t(t,r){if(!e)return null;for(;null!==r;)n(t,r),r=r.sibling;return null}function r(e){for(var n=new Map;null!==e;)null!==e.key?n.set(e.key,e):n.set(e.index,e),e=e.sibling;return n}function o(e,n){return(e=rt(e,n)).index=0,e.sibling=null,e}function a(n,t,r){return(n.index=r,e)?null!==(r=n.alternate)?(r=r.index)<t?(n.flags|=0x4000002,t):r:(n.flags|=0x4000002,t):(n.flags|=1048576,t)}function i(n){return e&&null===n.alternate&&(n.flags|=0x4000002),n}function s(e,n,t,r){return null===n||6!==n.tag?(n=ri(t,e.mode,r)).return=e:(n=o(n,t)).return=e,n}function c(e,n,t,r){var a=t.type;return a===m?d(e,n,t.props.children,r,t.key):(null!==n&&(n.elementType===a||\"object\"==typeof a&&null!==a&&a.$$typeof===O&&ov(a)===n.type)?og(n=o(n,t.props),t):og(n=ro(t.type,t.key,t.props,null,e.mode,r),t),n.return=e,n)}function u(e,n,t,r){return null===n||4!==n.tag||n.stateNode.containerInfo!==t.containerInfo||n.stateNode.implementation!==t.implementation?(n=rs(t,e.mode,r)).return=e:(n=o(n,t.children||[])).return=e,n}function d(e,n,t,r,a){return null===n||7!==n.tag?(n=ra(t,e.mode,r,a)).return=e:(n=o(n,t)).return=e,n}function f(e,n,t){if(\"string\"==typeof n&&\"\"!==n||\"number\"==typeof n||\"bigint\"==typeof n)return(n=ri(\"\"+n,e.mode,t)).return=e,n;if(\"object\"==typeof n&&null!==n){switch(n.$$typeof){case h:return og(t=ro(n.type,n.key,n.props,null,e.mode,t),n),t.return=e,t;case g:return(n=rs(n,e.mode,t)).return=e,n;case O:return f(e,n=(0,n._init)(n._payload),t)}if(z(n)||_(n))return(n=ra(n,e.mode,t,null)).return=e,n;if(\"function\"==typeof n.then)return f(e,oh(n),t);if(n.$$typeof===x)return f(e,rX(e,n),t);om(e,n)}return null}function p(e,n,t,r){var o=null!==n?n.key:null;if(\"string\"==typeof t&&\"\"!==t||\"number\"==typeof t||\"bigint\"==typeof t)return null!==o?null:s(e,n,\"\"+t,r);if(\"object\"==typeof t&&null!==t){switch(t.$$typeof){case h:return t.key===o?c(e,n,t,r):null;case g:return t.key===o?u(e,n,t,r):null;case O:return p(e,n,t=(o=t._init)(t._payload),r)}if(z(t)||_(t))return null!==o?null:d(e,n,t,r,null);if(\"function\"==typeof t.then)return p(e,n,oh(t),r);if(t.$$typeof===x)return p(e,n,rX(e,t),r);om(e,t)}return null}function v(e,n,t,r,o){if(\"string\"==typeof r&&\"\"!==r||\"number\"==typeof r||\"bigint\"==typeof r)return s(n,e=e.get(t)||null,\"\"+r,o);if(\"object\"==typeof r&&null!==r){switch(r.$$typeof){case h:return c(n,e=e.get(null===r.key?t:r.key)||null,r,o);case g:return u(n,e=e.get(null===r.key?t:r.key)||null,r,o);case O:return v(e,n,t,r=(0,r._init)(r._payload),o)}if(z(r)||_(r))return d(n,e=e.get(t)||null,r,o,null);if(\"function\"==typeof r.then)return v(e,n,t,oh(r),o);if(r.$$typeof===x)return v(e,n,t,rX(n,r),o);om(n,r)}return null}return function(s,c,u,d){try{op=0;var b=function s(c,u,d,b){if(\"object\"==typeof d&&null!==d&&d.type===m&&null===d.key&&(d=d.props.children),\"object\"==typeof d&&null!==d){switch(d.$$typeof){case h:e:{for(var y=d.key;null!==u;){if(u.key===y){if((y=d.type)===m){if(7===u.tag){t(c,u.sibling),(b=o(u,d.props.children)).return=c,c=b;break e}}else if(u.elementType===y||\"object\"==typeof y&&null!==y&&y.$$typeof===O&&ov(y)===u.type){t(c,u.sibling),og(b=o(u,d.props),d),b.return=c,c=b;break e}t(c,u);break}n(c,u),u=u.sibling}d.type===m?(b=ra(d.props.children,c.mode,b,d.key)).return=c:(og(b=ro(d.type,d.key,d.props,null,c.mode,b),d),b.return=c),c=b}return i(c);case g:e:{for(y=d.key;null!==u;){if(u.key===y)if(4===u.tag&&u.stateNode.containerInfo===d.containerInfo&&u.stateNode.implementation===d.implementation){t(c,u.sibling),(b=o(u,d.children||[])).return=c,c=b;break e}else{t(c,u);break}n(c,u),u=u.sibling}(b=rs(d,c.mode,b)).return=c,c=b}return i(c);case O:return s(c,u,d=(y=d._init)(d._payload),b)}if(z(d))return function(o,i,l,s){for(var c=null,u=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var m=p(o,d,l[h],s);if(null===m){null===d&&(d=g);break}e&&d&&null===m.alternate&&n(o,d),i=a(m,i,h),null===u?c=m:u.sibling=m,u=m,d=g}if(h===l.length)return t(o,d),rS&&rx(o,h),c;if(null===d){for(;h<l.length;h++)null!==(d=f(o,l[h],s))&&(i=a(d,i,h),null===u?c=d:u.sibling=d,u=d);return rS&&rx(o,h),c}for(d=r(d);h<l.length;h++)null!==(g=v(d,o,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=a(g,i,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return n(o,e)}),rS&&rx(o,h),c}(c,u,d,b);if(_(d)){if(\"function\"!=typeof(y=_(d)))throw Error(l(150));return function(o,i,s,c){if(null==s)throw Error(l(151));for(var u=null,d=null,h=i,g=i=0,m=null,b=s.next();null!==h&&!b.done;g++,b=s.next()){h.index>g?(m=h,h=null):m=h.sibling;var y=p(o,h,b.value,c);if(null===y){null===h&&(h=m);break}e&&h&&null===y.alternate&&n(o,h),i=a(y,i,g),null===d?u=y:d.sibling=y,d=y,h=m}if(b.done)return t(o,h),rS&&rx(o,g),u;if(null===h){for(;!b.done;g++,b=s.next())null!==(b=f(o,b.value,c))&&(i=a(b,i,g),null===d?u=b:d.sibling=b,d=b);return rS&&rx(o,g),u}for(h=r(h);!b.done;g++,b=s.next())null!==(b=v(h,o,g,b.value,c))&&(e&&null!==b.alternate&&h.delete(null===b.key?g:b.key),i=a(b,i,g),null===d?u=b:d.sibling=b,d=b);return e&&h.forEach(function(e){return n(o,e)}),rS&&rx(o,g),u}(c,u,d=y.call(d),b)}if(\"function\"==typeof d.then)return s(c,u,oh(d),b);if(d.$$typeof===x)return s(c,u,rX(c,d),b);om(c,d)}return\"string\"==typeof d&&\"\"!==d||\"number\"==typeof d||\"bigint\"==typeof d?(d=\"\"+d,null!==u&&6===u.tag?(t(c,u.sibling),(b=o(u,d)).return=c):(t(c,u),(b=ri(d,c.mode,b)).return=c),i(c=b)):t(c,u)}(s,c,u,d);return of=null,b}catch(e){if(e===or||e===oa)throw e;var y=re(29,e,null,s.mode);return y.lanes=d,y.return=s,y}finally{}}}var oy=ob(!0),ox=ob(!1),ow=!1;function oj(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ok(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function oA(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function oO(e,n,t){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&lR)){var o=r.pending;return null===o?n.next=n:(n.next=o.next,o.next=n),r.pending=n,n=t9(e),t6(e,null,t),n}return t4(e,r,n,t),t9(e)}function oC(e,n,t){if(null!==(n=n.updateQueue)&&(n=n.shared,0!=(4194048&t))){var r=n.lanes;r&=e.pendingLanes,t|=r,n.lanes=t,eE(e,t)}}function oS(e,n){var t=e.updateQueue,r=e.alternate;if(null!==r&&t===(r=r.updateQueue)){var o=null,a=null;if(null!==(t=t.firstBaseUpdate)){do{var i={lane:t.lane,tag:t.tag,payload:t.payload,callback:null,next:null};null===a?o=a=i:a=a.next=i,t=t.next}while(null!==t);null===a?o=a=n:a=a.next=n}else o=a=n;t={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=t;return}null===(e=t.lastBaseUpdate)?t.firstBaseUpdate=n:e.next=n,t.lastBaseUpdate=n}var oE=!1;function o_(){if(oE){var e=r6;if(null!==e)throw e}}function oP(e,n,t,r){oE=!1;var o=e.updateQueue;ow=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,l=o.shared.pending;if(null!==l){o.shared.pending=null;var s=l,c=s.next;s.next=null,null===i?a=c:i.next=c,i=s;var u=e.alternate;null!==u&&(l=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===l?u.firstBaseUpdate=c:l.next=c,u.lastBaseUpdate=s)}if(null!==a){var d=o.baseState;for(i=0,u=c=s=null,l=a;;){var p=-0x20000001&l.lane,h=p!==l.lane;if(h?(lB&p)===p:(r&p)===p){0!==p&&p===r3&&(oE=!0),null!==u&&(u=u.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var g=e,m=l;switch(p=n,m.tag){case 1:if(\"function\"==typeof(g=m.payload)){d=g.call(t,d,p);break e}d=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null==(p=\"function\"==typeof(g=m.payload)?g.call(t,d,p):g))break e;d=f({},d,p);break e;case 2:ow=!0}}null!==(p=l.callback)&&(e.flags|=64,h&&(e.flags|=8192),null===(h=o.callbacks)?o.callbacks=[p]:h.push(p))}else h={lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===u?(c=u=h,s=d):u=u.next=h,i|=p;if(null===(l=l.next))if(null===(l=o.shared.pending))break;else l=(h=l).next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}null===u&&(s=d),o.baseState=s,o.firstBaseUpdate=c,o.lastBaseUpdate=u,null===a&&(o.shared.lanes=0),lW|=i,e.lanes=i,e.memoizedState=d}}function oz(e,n){if(\"function\"!=typeof e)throw Error(l(191,e));e.call(n)}function oL(e,n){var t=e.callbacks;if(null!==t)for(e.callbacks=null,e=0;e<t.length;e++)oz(t[e],n)}var oT=B(null),oR=B(0);function oN(e,n){I(oR,e=lV),I(oT,n),lV=e|n.baseLanes}function oD(){I(oR,lV),I(oT,oT.current)}function oB(){lV=oR.current,M(oT),M(oR)}var oM=B(null),oI=null;function oH(e){var n=e.alternate;I(oW,1&oW.current),I(oM,e),null===oI&&(null===n||null!==oT.current?oI=e:null!==n.memoizedState&&(oI=e))}function oF(e){I(oW,oW.current),I(oM,e),null===oI&&(oI=e)}function oU(e){22===e.tag?(I(oW,oW.current),I(oM,e),null===oI&&(oI=e)):oV(e)}function oV(){I(oW,oW.current),I(oM,oM.current)}function oq(e){M(oM),oI===e&&(oI=null),M(oW)}var oW=B(0);function o$(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(null===(t=t.dehydrated)||cS(t)||cE(t)))return n}else if(19===n.tag&&(\"forwards\"===n.memoizedProps.revealOrder||\"backwards\"===n.memoizedProps.revealOrder||\"unstable_legacy-backwards\"===n.memoizedProps.revealOrder||\"together\"===n.memoizedProps.revealOrder)){if(0!=(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var oZ=0,oY=null,oX=null,oK=null,oQ=!1,oG=!1,oJ=!1,o0=0,o1=0,o2=null,o4=0;function o5(){throw Error(l(321))}function o3(e,n){if(null===n)return!1;for(var t=0;t<n.length&&t<e.length;t++)if(!tO(e[t],n[t]))return!1;return!0}function o6(e,n,t,r,o,a){return oZ=a,oY=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,L.H=null===e||null===e.memoizedState?it:ir,oJ=!1,a=t(r,o),oJ=!1,oG&&(a=o8(n,t,r,o)),o9(e),a}function o9(e){L.H=ie;var n=null!==oX&&null!==oX.next;if(oZ=0,oK=oX=oY=null,oQ=!1,o1=0,o2=null,n)throw Error(l(300));null===e||ix||null!==(e=e.dependencies)&&r$(e)&&(ix=!0)}function o8(e,n,t,r){oY=e;var o=0;do{if(oG&&(o2=null),o1=0,oG=!1,25<=o)throw Error(l(301));if(o+=1,oK=oX=null,null!=e.updateQueue){var a=e.updateQueue;a.lastEffect=null,a.events=null,a.stores=null,null!=a.memoCache&&(a.memoCache.index=0)}L.H=io,a=n(t,r)}while(oG);return a}function o7(){var e=L.H,n=e.useState()[0];return n=\"function\"==typeof n.then?ai(n):n,e=e.useState()[0],(null!==oX?oX.memoizedState:null)!==e&&(oY.flags|=1024),n}function ae(){var e=0!==o0;return o0=0,e}function an(e,n,t){n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~t}function at(e){if(oQ){for(e=e.memoizedState;null!==e;){var n=e.queue;null!==n&&(n.pending=null),e=e.next}oQ=!1}oZ=0,oK=oX=oY=null,oG=!1,o1=o0=0,o2=null}function ar(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===oK?oY.memoizedState=oK=e:oK=oK.next=e,oK}function ao(){if(null===oX){var e=oY.alternate;e=null!==e?e.memoizedState:null}else e=oX.next;var n=null===oK?oY.memoizedState:oK.next;if(null!==n)oK=n,oX=e;else{if(null===e){if(null===oY.alternate)throw Error(l(467));throw Error(l(310))}e={memoizedState:(oX=e).memoizedState,baseState:oX.baseState,baseQueue:oX.baseQueue,queue:oX.queue,next:null},null===oK?oY.memoizedState=oK=e:oK=oK.next=e}return oK}function aa(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function ai(e){var n=o1;return o1+=1,null===o2&&(o2=[]),e=os(o2,e,n),n=oY,null===(null===oK?n.memoizedState:oK.next)&&(L.H=null===(n=n.alternate)||null===n.memoizedState?it:ir),e}function al(e){if(null!==e&&\"object\"==typeof e){if(\"function\"==typeof e.then)return ai(e);if(e.$$typeof===x)return rY(e)}throw Error(l(438,String(e)))}function as(e){var n=null,t=oY.updateQueue;if(null!==t&&(n=t.memoCache),null==n){var r=oY.alternate;null!==r&&null!==(r=r.updateQueue)&&null!=(r=r.memoCache)&&(n={data:r.data.map(function(e){return e.slice()}),index:0})}if(null==n&&(n={data:[],index:0}),null===t&&(t=aa(),oY.updateQueue=t),t.memoCache=n,void 0===(t=n.data[n.index]))for(t=n.data[n.index]=Array(e),r=0;r<e;r++)t[r]=S;return n.index++,t}function ac(e,n){return\"function\"==typeof n?n(e):n}function au(e){return ad(ao(),oX,e)}function ad(e,n,t){var r=e.queue;if(null===r)throw Error(l(311));r.lastRenderedReducer=t;var o=e.baseQueue,a=r.pending;if(null!==a){if(null!==o){var i=o.next;o.next=a.next,a.next=i}n.baseQueue=o=a,r.pending=null}if(a=e.baseState,null===o)e.memoizedState=a;else{n=o.next;var s=i=null,c=null,u=n,d=!1;do{var f=-0x20000001&u.lane;if(f!==u.lane?(lB&f)===f:(oZ&f)===f){var p=u.revertLane;if(0===p)null!==c&&(c=c.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===r3&&(d=!0);else if((oZ&p)===p){u=u.next,p===r3&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=f,i=a):c=c.next=f,oY.lanes|=p,lW|=p;f=u.action,oJ&&t(a,f),a=u.hasEagerState?u.eagerState:t(a,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},null===c?(s=c=p,i=a):c=c.next=p,oY.lanes|=f,lW|=f;u=u.next}while(null!==u&&u!==n);if(null===c?i=a:c.next=s,!tO(a,e.memoizedState)&&(ix=!0,d&&null!==(t=r6)))throw t;e.memoizedState=a,e.baseState=i,e.baseQueue=c,r.lastRenderedState=a}return null===o&&(r.lanes=0),[e.memoizedState,r.dispatch]}function af(e){var n=ao(),t=n.queue;if(null===t)throw Error(l(311));t.lastRenderedReducer=e;var r=t.dispatch,o=t.pending,a=n.memoizedState;if(null!==o){t.pending=null;var i=o=o.next;do a=e(a,i.action),i=i.next;while(i!==o);tO(a,n.memoizedState)||(ix=!0),n.memoizedState=a,null===n.baseQueue&&(n.baseState=a),t.lastRenderedState=a}return[a,r]}function ap(e,n,t){var r=oY,o=ao(),a=rS;if(a){if(void 0===t)throw Error(l(407));t=t()}else t=n();var i=!tO((oX||o).memoizedState,t);if(i&&(o.memoizedState=t,ix=!0),o=o.queue,aM(am.bind(null,r,o,e),[e]),o.getSnapshot!==n||i||null!==oK&&1&oK.memoizedState.tag){if(r.flags|=2048,aT(9,{destroy:void 0},ag.bind(null,r,o,t,n),null),null===lN)throw Error(l(349));a||0!=(124&oZ)||ah(r,n,t)}return t}function ah(e,n,t){e.flags|=16384,e={getSnapshot:n,value:t},null===(n=oY.updateQueue)?(n=aa(),oY.updateQueue=n,n.stores=[e]):null===(t=n.stores)?n.stores=[e]:t.push(e)}function ag(e,n,t,r){n.value=t,n.getSnapshot=r,av(n)&&ab(e)}function am(e,n,t){return t(function(){av(n)&&ab(e)})}function av(e){var n=e.getSnapshot;e=e.value;try{var t=n();return!tO(e,t)}catch(e){return!0}}function ab(e){var n=t3(e,2);null!==n&&so(n,e,2)}function ay(e){var n=ar();if(\"function\"==typeof e){var t=e;if(e=t(),oJ){eh(!0);try{t()}finally{eh(!1)}}}return n.memoizedState=n.baseState=e,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:e},n}function ax(e,n,t,r){return e.baseState=t,ad(e,oX,\"function\"==typeof r?r:ac)}function aw(e,n,t,r,o){if(a9(e))throw Error(l(485));if(null!==(e=n.action)){var a={payload:o,action:e,next:null,isTransition:!0,status:\"pending\",value:null,reason:null,listeners:[],then:function(e){a.listeners.push(e)}};null!==L.T?t(!0):a.isTransition=!1,r(a),null===(t=n.pending)?(a.next=n.pending=a,aj(n,a)):(a.next=t.next,n.pending=t.next=a)}}function aj(e,n){var t=n.action,r=n.payload,o=e.state;if(n.isTransition){var a=L.T,i={};L.T=i;try{var l=t(o,r),s=L.S;null!==s&&s(i,l),ak(e,n,l)}catch(t){aO(e,n,t)}finally{null!==a&&null!==i.types&&(a.types=i.types),L.T=a}}else try{a=t(o,r),ak(e,n,a)}catch(t){aO(e,n,t)}}function ak(e,n,t){null!==t&&\"object\"==typeof t&&\"function\"==typeof t.then?t.then(function(t){aA(e,n,t)},function(t){return aO(e,n,t)}):aA(e,n,t)}function aA(e,n,t){n.status=\"fulfilled\",n.value=t,aC(n),e.state=t,null!==(n=e.pending)&&((t=n.next)===n?e.pending=null:(t=t.next,n.next=t,aj(e,t)))}function aO(e,n,t){var r=e.pending;if(e.pending=null,null!==r){r=r.next;do n.status=\"rejected\",n.reason=t,aC(n),n=n.next;while(n!==r)}e.action=null}function aC(e){e=e.listeners;for(var n=0;n<e.length;n++)(0,e[n])()}function aS(e,n){return n}function aE(e,n){if(rS){var t=lN.formState;if(null!==t){e:{var r=oY;if(rS){if(rC){n:{for(var o=rC,a=r_;8!==o.nodeType;)if(!a||null===(o=c_(o.nextSibling))){o=null;break n}o=\"F!\"===(a=o.data)||\"F\"===a?o:null}if(o){rC=c_(o.nextSibling),r=\"F!\"===o.data;break e}}rz(r)}r=!1}r&&(n=t[0])}}return(t=ar()).memoizedState=t.baseState=n,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:aS,lastRenderedState:n},t.queue=r,t=a5.bind(null,oY,r),r.dispatch=t,r=ay(!1),a=a6.bind(null,oY,!1,r.queue),r=ar(),o={state:n,dispatch:null,action:e,pending:null},r.queue=o,t=aw.bind(null,oY,o,a,t),o.dispatch=t,r.memoizedState=e,[n,t,!1]}function a_(e){return aP(ao(),oX,e)}function aP(e,n,t){if(n=ad(e,n,aS)[0],e=au(ac)[0],\"object\"==typeof n&&null!==n&&\"function\"==typeof n.then)try{var r=ai(n)}catch(e){if(e===or)throw oa;throw e}else r=n;var o=(n=ao()).queue,a=o.dispatch;return t!==n.memoizedState&&(oY.flags|=2048,aT(9,{destroy:void 0},az.bind(null,o,t),null)),[r,a,e]}function az(e,n){e.action=n}function aL(e){var n=ao(),t=oX;if(null!==t)return aP(n,t,e);ao(),n=n.memoizedState;var r=(t=ao()).queue.dispatch;return t.memoizedState=e,[n,r,!1]}function aT(e,n,t,r){return e={tag:e,create:t,deps:r,inst:n,next:null},null===(n=oY.updateQueue)&&(n=aa(),oY.updateQueue=n),null===(t=n.lastEffect)?n.lastEffect=e.next=e:(r=t.next,t.next=e,e.next=r,n.lastEffect=e),e}function aR(){return ao().memoizedState}function aN(e,n,t,r){var o=ar();oY.flags|=e,o.memoizedState=aT(1|n,{destroy:void 0},t,void 0===r?null:r)}function aD(e,n,t,r){var o=ao();r=void 0===r?null:r;var a=o.memoizedState.inst;null!==oX&&null!==r&&o3(r,oX.memoizedState.deps)?o.memoizedState=aT(n,a,t,r):(oY.flags|=e,o.memoizedState=aT(1|n,a,t,r))}function aB(e,n){aN(8390656,8,e,n)}function aM(e,n){aD(2048,8,e,n)}function aI(e,n){return aD(4,2,e,n)}function aH(e,n){return aD(4,4,e,n)}function aF(e,n){if(\"function\"==typeof n){var t=n(e=e());return function(){\"function\"==typeof t?t():n(null)}}if(null!=n)return n.current=e=e(),function(){n.current=null}}function aU(e,n,t){t=null!=t?t.concat([e]):null,aD(4,4,aF.bind(null,n,e),t)}function aV(){}function aq(e,n){var t=ao();n=void 0===n?null:n;var r=t.memoizedState;return null!==n&&o3(n,r[1])?r[0]:(t.memoizedState=[e,n],e)}function aW(e,n){var t=ao();n=void 0===n?null:n;var r=t.memoizedState;if(null!==n&&o3(n,r[1]))return r[0];if(r=e(),oJ){eh(!0);try{e()}finally{eh(!1)}}return t.memoizedState=[r,n],r}function a$(e,n,t){return void 0===t||0!=(0x40000000&oZ)?e.memoizedState=n:(e.memoizedState=t,e=sr(),oY.lanes|=e,lW|=e,t)}function aZ(e,n,t,r){return tO(t,n)?t:null!==oT.current?(tO(e=a$(e,t,r),n)||(ix=!0),e):0==(42&oZ)||0!=(0x40000000&oZ)?(ix=!0,e.memoizedState=t):(e=sr(),oY.lanes|=e,lW|=e,n)}function aY(e,n,t,r,o){var a=T.p;T.p=0!==a&&8>a?a:8;var i=L.T,l={};L.T=l,a6(e,!1,n,t);try{var s=o(),c=L.S;if(null!==c&&c(l,s),null!==s&&\"object\"==typeof s&&\"function\"==typeof s.then){var u,d,f=(u=[],d={status:\"pending\",value:null,reason:null,then:function(e){u.push(e)}},s.then(function(){d.status=\"fulfilled\",d.value=r;for(var e=0;e<u.length;e++)(0,u[e])(r)},function(e){for(d.status=\"rejected\",d.reason=e,e=0;e<u.length;e++)(0,u[e])(void 0)}),d);a3(e,n,f,st(e))}else a3(e,n,r,st(e))}catch(t){a3(e,n,{then:function(){},status:\"rejected\",reason:t},st())}finally{T.p=a,null!==i&&null!==l.types&&(i.types=l.types),L.T=i}}function aX(){}function aK(e,n,t,r){if(5!==e.tag)throw Error(l(476));var o=aQ(e).queue;aY(e,o,n,R,null===t?aX:function(){return aG(e),t(r)})}function aQ(e){var n=e.memoizedState;if(null!==n)return n;var t={};return(n={memoizedState:R,baseState:R,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:R},next:null}).next={memoizedState:t,baseState:t,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ac,lastRenderedState:t},next:null},e.memoizedState=n,null!==(e=e.alternate)&&(e.memoizedState=n),n}function aG(e){var n=aQ(e);null===n.next&&(n=e.alternate.memoizedState),a3(e,n.next.queue,{},st())}function aJ(){return rY(c6)}function a0(){return ao().memoizedState}function a1(){return ao().memoizedState}function a2(e){for(var n=e.return;null!==n;){switch(n.tag){case 24:case 3:var t=st(),r=oO(n,e=oA(t),t);null!==r&&(so(r,n,t),oC(r,n,t)),n={cache:r1()},e.payload=n;return}n=n.return}}function a4(e,n,t){var r=st();t={lane:r,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null},a9(e)?a8(n,t):null!==(t=t5(e,n,t,r))&&(so(t,e,r),a7(t,n,r))}function a5(e,n,t){a3(e,n,t,st())}function a3(e,n,t,r){var o={lane:r,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null};if(a9(e))a8(n,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=n.lastRenderedReducer))try{var i=n.lastRenderedState,l=a(i,t);if(o.hasEagerState=!0,o.eagerState=l,tO(l,i))return t4(e,n,o,0),null===lN&&t2(),!1}catch(e){}finally{}if(null!==(t=t5(e,n,o,r)))return so(t,e,r),a7(t,n,r),!0}return!1}function a6(e,n,t,r){if(r={lane:2,revertLane:sX(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},a9(e)){if(n)throw Error(l(479))}else null!==(n=t5(e,t,r,2))&&so(n,e,2)}function a9(e){var n=e.alternate;return e===oY||null!==n&&n===oY}function a8(e,n){oG=oQ=!0;var t=e.pending;null===t?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function a7(e,n,t){if(0!=(4194048&t)){var r=n.lanes;r&=e.pendingLanes,n.lanes=t|=r,eE(e,t)}}var ie={readContext:rY,use:al,useCallback:o5,useContext:o5,useEffect:o5,useImperativeHandle:o5,useLayoutEffect:o5,useInsertionEffect:o5,useMemo:o5,useReducer:o5,useRef:o5,useState:o5,useDebugValue:o5,useDeferredValue:o5,useTransition:o5,useSyncExternalStore:o5,useId:o5,useHostTransitionStatus:o5,useFormState:o5,useActionState:o5,useOptimistic:o5,useMemoCache:o5,useCacheRefresh:o5},it={readContext:rY,use:al,useCallback:function(e,n){return ar().memoizedState=[e,void 0===n?null:n],e},useContext:rY,useEffect:aB,useImperativeHandle:function(e,n,t){t=null!=t?t.concat([e]):null,aN(4194308,4,aF.bind(null,n,e),t)},useLayoutEffect:function(e,n){return aN(4194308,4,e,n)},useInsertionEffect:function(e,n){aN(4,2,e,n)},useMemo:function(e,n){var t=ar();n=void 0===n?null:n;var r=e();if(oJ){eh(!0);try{e()}finally{eh(!1)}}return t.memoizedState=[r,n],r},useReducer:function(e,n,t){var r=ar();if(void 0!==t){var o=t(n);if(oJ){eh(!0);try{t(n)}finally{eh(!1)}}}else o=n;return r.memoizedState=r.baseState=o,r.queue=e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:o},e=e.dispatch=a4.bind(null,oY,e),[r.memoizedState,e]},useRef:function(e){return ar().memoizedState=e={current:e}},useState:function(e){var n=(e=ay(e)).queue,t=a5.bind(null,oY,n);return n.dispatch=t,[e.memoizedState,t]},useDebugValue:aV,useDeferredValue:function(e,n){return a$(ar(),e,n)},useTransition:function(){var e=ay(!1);return e=aY.bind(null,oY,e.queue,!0,!1),ar().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,t){var r=oY,o=ar();if(rS){if(void 0===t)throw Error(l(407));t=t()}else{if(t=n(),null===lN)throw Error(l(349));0!=(124&lB)||ah(r,n,t)}o.memoizedState=t;var a={value:t,getSnapshot:n};return o.queue=a,aB(am.bind(null,r,a,e),[e]),r.flags|=2048,aT(9,{destroy:void 0},ag.bind(null,r,a,t,n),null),t},useId:function(){var e=ar(),n=lN.identifierPrefix;if(rS){var t=ry,r=rb;n=\"_\"+n+\"R_\"+(t=(r&~(1<<32-eg(r)-1)).toString(32)+t),0<(t=o0++)&&(n+=\"H\"+t.toString(32)),n+=\"_\"}else n=\"_\"+n+\"r_\"+(t=o4++).toString(32)+\"_\";return e.memoizedState=n},useHostTransitionStatus:aJ,useFormState:aE,useActionState:aE,useOptimistic:function(e){var n=ar();n.memoizedState=n.baseState=e;var t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return n.queue=t,n=a6.bind(null,oY,!0,t),t.dispatch=n,[e,n]},useMemoCache:as,useCacheRefresh:function(){return ar().memoizedState=a2.bind(null,oY)}},ir={readContext:rY,use:al,useCallback:aq,useContext:rY,useEffect:aM,useImperativeHandle:aU,useInsertionEffect:aI,useLayoutEffect:aH,useMemo:aW,useReducer:au,useRef:aR,useState:function(){return au(ac)},useDebugValue:aV,useDeferredValue:function(e,n){return aZ(ao(),oX.memoizedState,e,n)},useTransition:function(){var e=au(ac)[0],n=ao().memoizedState;return[\"boolean\"==typeof e?e:ai(e),n]},useSyncExternalStore:ap,useId:a0,useHostTransitionStatus:aJ,useFormState:a_,useActionState:a_,useOptimistic:function(e,n){return ax(ao(),oX,e,n)},useMemoCache:as,useCacheRefresh:a1},io={readContext:rY,use:al,useCallback:aq,useContext:rY,useEffect:aM,useImperativeHandle:aU,useInsertionEffect:aI,useLayoutEffect:aH,useMemo:aW,useReducer:af,useRef:aR,useState:function(){return af(ac)},useDebugValue:aV,useDeferredValue:function(e,n){var t=ao();return null===oX?a$(t,e,n):aZ(t,oX.memoizedState,e,n)},useTransition:function(){var e=af(ac)[0],n=ao().memoizedState;return[\"boolean\"==typeof e?e:ai(e),n]},useSyncExternalStore:ap,useId:a0,useHostTransitionStatus:aJ,useFormState:aL,useActionState:aL,useOptimistic:function(e,n){var t=ao();return null!==oX?ax(t,oX,e,n):(t.baseState=e,[e,t.queue.dispatch])},useMemoCache:as,useCacheRefresh:a1};function ia(e,n,t,r){t=null==(t=t(r,n=e.memoizedState))?n:f({},n,t),e.memoizedState=t,0===e.lanes&&(e.updateQueue.baseState=t)}var ii={enqueueSetState:function(e,n,t){e=e._reactInternals;var r=st(),o=oA(r);o.payload=n,null!=t&&(o.callback=t),null!==(n=oO(e,o,r))&&(so(n,e,r),oC(n,e,r))},enqueueReplaceState:function(e,n,t){e=e._reactInternals;var r=st(),o=oA(r);o.tag=1,o.payload=n,null!=t&&(o.callback=t),null!==(n=oO(e,o,r))&&(so(n,e,r),oC(n,e,r))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var t=st(),r=oA(t);r.tag=2,null!=n&&(r.callback=n),null!==(n=oO(e,r,t))&&(so(n,e,t),oC(n,e,t))}};function il(e,n,t,r,o,a,i){return\"function\"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!n.prototype||!n.prototype.isPureReactComponent||!tC(t,r)||!tC(o,a)}function is(e,n,t,r){e=n.state,\"function\"==typeof n.componentWillReceiveProps&&n.componentWillReceiveProps(t,r),\"function\"==typeof n.UNSAFE_componentWillReceiveProps&&n.UNSAFE_componentWillReceiveProps(t,r),n.state!==e&&ii.enqueueReplaceState(n,n.state,null)}function ic(e,n){var t=n;if(\"ref\"in n)for(var r in t={},n)\"ref\"!==r&&(t[r]=n[r]);if(e=e.defaultProps)for(var o in t===n&&(t=f({},t)),e)void 0===t[o]&&(t[o]=e[o]);return t}function iu(e){tG(e)}function id(e){console.error(e)}function ip(e){tG(e)}function ih(e,n){try{(0,e.onUncaughtError)(n.value,{componentStack:n.stack})}catch(e){setTimeout(function(){throw e})}}function ig(e,n,t){try{(0,e.onCaughtError)(t.value,{componentStack:t.stack,errorBoundary:1===n.tag?n.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function im(e,n,t){return(t=oA(t)).tag=3,t.payload={element:null},t.callback=function(){ih(e,n)},t}function iv(e){return(e=oA(e)).tag=3,e}function ib(e,n,t,r){var o=t.type.getDerivedStateFromError;if(\"function\"==typeof o){var a=r.value;e.payload=function(){return o(a)},e.callback=function(){ig(n,t,r)}}var i=t.stateNode;null!==i&&\"function\"==typeof i.componentDidCatch&&(e.callback=function(){ig(n,t,r),\"function\"!=typeof o&&(null===l2?l2=new Set([this]):l2.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:\"\"})})}var iy=Error(l(461)),ix=!1;function iw(e,n,t,r){n.child=null===e?ox(n,null,t,r):oy(n,e.child,t,r)}function ij(e,n,t,r,o){t=t.render;var a=n.ref;if(\"ref\"in r){var i={};for(var l in r)\"ref\"!==l&&(i[l]=r[l])}else i=r;return(rZ(n),r=o6(e,n,t,i,a,o),l=ae(),null===e||ix)?(rS&&l&&rj(n),n.flags|=1,iw(e,n,r,o),n.child):(an(e,n,o),iq(e,n,o))}function ik(e,n,t,r,o){if(null===e){var a=t.type;return\"function\"!=typeof a||rn(a)||void 0!==a.defaultProps||null!==t.compare?((e=ro(t.type,null,r,n,n.mode,o)).ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,iA(e,n,a,r,o))}if(a=e.child,!iW(e,o)){var i=a.memoizedProps;if((t=null!==(t=t.compare)?t:tC)(i,r)&&e.ref===n.ref)return iq(e,n,o)}return n.flags|=1,(e=rt(a,r)).ref=n.ref,e.return=n,n.child=e}function iA(e,n,t,r,o){if(null!==e){var a=e.memoizedProps;if(tC(a,r)&&e.ref===n.ref)if(ix=!1,n.pendingProps=r=a,!iW(e,o))return n.lanes=e.lanes,iq(e,n,o);else 0!=(131072&e.flags)&&(ix=!0)}return iP(e,n,t,r,o)}function iO(e,n,t,r){var o=r.children,a=null!==e?e.memoizedState:null;if(\"hidden\"===r.mode){if(0!=(128&n.flags)){if(r=null!==a?a.baseLanes|t:t,null!==e){for(a=0,o=n.child=e.child;null!==o;)a=a|o.lanes|o.childLanes,o=o.sibling;n.childLanes=a&~r}else n.childLanes=0,n.child=null;return iC(e,n,r,t)}if(0==(0x20000000&t))return n.lanes=n.childLanes=0x20000000,iC(e,n,null!==a?a.baseLanes|t:t,t);n.memoizedState={baseLanes:0,cachePool:null},null!==e&&on(n,null!==a?a.cachePool:null),null!==a?oN(n,a):oD(),oU(n)}else null!==a?(on(n,a.cachePool),oN(n,a),oV(n),n.memoizedState=null):(null!==e&&on(n,null),oD(),oV(n));return iw(e,n,o,t),n.child}function iC(e,n,t,r){var o=oe();return n.memoizedState={baseLanes:t,cachePool:o=null===o?null:{parent:r0._currentValue,pool:o}},null!==e&&on(n,null),oD(),oU(n),null!==e&&rW(e,n,r,!0),null}function iS(e,n){return(n=iI({mode:n.mode,children:n.children},e.mode)).ref=e.ref,e.child=n,n.return=e,n}function iE(e,n,t){return oy(n,e.child,null,t),e=iS(n,n.pendingProps),e.flags|=2,oq(n),n.memoizedState=null,e}function i_(e,n){var t=n.ref;if(null===t)null!==e&&null!==e.ref&&(n.flags|=4194816);else{if(\"function\"!=typeof t&&\"object\"!=typeof t)throw Error(l(284));(null===e||e.ref!==t)&&(n.flags|=4194816)}}function iP(e,n,t,r,o){return(rZ(n),t=o6(e,n,t,r,void 0,o),r=ae(),null===e||ix)?(rS&&r&&rj(n),n.flags|=1,iw(e,n,t,o),n.child):(an(e,n,o),iq(e,n,o))}function iz(e,n,t,r,o,a){return(rZ(n),n.updateQueue=null,t=o8(n,r,t,o),o9(e),r=ae(),null===e||ix)?(rS&&r&&rj(n),n.flags|=1,iw(e,n,t,a),n.child):(an(e,n,a),iq(e,n,a))}function iL(e,n,t,r,o){if(rZ(n),null===n.stateNode){var a=t8,i=t.contextType;\"object\"==typeof i&&null!==i&&(a=rY(i)),n.memoizedState=null!==(a=new t(r,a)).state&&void 0!==a.state?a.state:null,a.updater=ii,n.stateNode=a,a._reactInternals=n,(a=n.stateNode).props=r,a.state=n.memoizedState,a.refs={},oj(n),i=t.contextType,a.context=\"object\"==typeof i&&null!==i?rY(i):t8,a.state=n.memoizedState,\"function\"==typeof(i=t.getDerivedStateFromProps)&&(ia(n,t,i,r),a.state=n.memoizedState),\"function\"==typeof t.getDerivedStateFromProps||\"function\"==typeof a.getSnapshotBeforeUpdate||\"function\"!=typeof a.UNSAFE_componentWillMount&&\"function\"!=typeof a.componentWillMount||(i=a.state,\"function\"==typeof a.componentWillMount&&a.componentWillMount(),\"function\"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),i!==a.state&&ii.enqueueReplaceState(a,a.state,null),oP(n,r,a,o),o_(),a.state=n.memoizedState),\"function\"==typeof a.componentDidMount&&(n.flags|=4194308),r=!0}else if(null===e){a=n.stateNode;var l=n.memoizedProps,s=ic(t,l);a.props=s;var c=a.context,u=t.contextType;i=t8,\"object\"==typeof u&&null!==u&&(i=rY(u));var d=t.getDerivedStateFromProps;u=\"function\"==typeof d||\"function\"==typeof a.getSnapshotBeforeUpdate,l=n.pendingProps!==l,u||\"function\"!=typeof a.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof a.componentWillReceiveProps||(l||c!==i)&&is(n,a,r,i),ow=!1;var f=n.memoizedState;a.state=f,oP(n,r,a,o),o_(),c=n.memoizedState,l||f!==c||ow?(\"function\"==typeof d&&(ia(n,t,d,r),c=n.memoizedState),(s=ow||il(n,t,s,r,f,c,i))?(u||\"function\"!=typeof a.UNSAFE_componentWillMount&&\"function\"!=typeof a.componentWillMount||(\"function\"==typeof a.componentWillMount&&a.componentWillMount(),\"function\"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),\"function\"==typeof a.componentDidMount&&(n.flags|=4194308)):(\"function\"==typeof a.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=c),a.props=r,a.state=c,a.context=i,r=s):(\"function\"==typeof a.componentDidMount&&(n.flags|=4194308),r=!1)}else{a=n.stateNode,ok(e,n),u=ic(t,i=n.memoizedProps),a.props=u,d=n.pendingProps,f=a.context,c=t.contextType,s=t8,\"object\"==typeof c&&null!==c&&(s=rY(c)),(c=\"function\"==typeof(l=t.getDerivedStateFromProps)||\"function\"==typeof a.getSnapshotBeforeUpdate)||\"function\"!=typeof a.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof a.componentWillReceiveProps||(i!==d||f!==s)&&is(n,a,r,s),ow=!1,f=n.memoizedState,a.state=f,oP(n,r,a,o),o_();var p=n.memoizedState;i!==d||f!==p||ow||null!==e&&null!==e.dependencies&&r$(e.dependencies)?(\"function\"==typeof l&&(ia(n,t,l,r),p=n.memoizedState),(u=ow||il(n,t,u,r,f,p,s)||null!==e&&null!==e.dependencies&&r$(e.dependencies))?(c||\"function\"!=typeof a.UNSAFE_componentWillUpdate&&\"function\"!=typeof a.componentWillUpdate||(\"function\"==typeof a.componentWillUpdate&&a.componentWillUpdate(r,p,s),\"function\"==typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,p,s)),\"function\"==typeof a.componentDidUpdate&&(n.flags|=4),\"function\"==typeof a.getSnapshotBeforeUpdate&&(n.flags|=1024)):(\"function\"!=typeof a.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(n.flags|=4),\"function\"!=typeof a.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=p),a.props=r,a.state=p,a.context=s,r=u):(\"function\"!=typeof a.componentDidUpdate||i===e.memoizedProps&&f===e.memoizedState||(n.flags|=4),\"function\"!=typeof a.getSnapshotBeforeUpdate||i===e.memoizedProps&&f===e.memoizedState||(n.flags|=1024),r=!1)}return a=r,i_(e,n),r=0!=(128&n.flags),a||r?(a=n.stateNode,t=r&&\"function\"!=typeof t.getDerivedStateFromError?null:a.render(),n.flags|=1,null!==e&&r?(n.child=oy(n,e.child,null,o),n.child=oy(n,null,t,o)):iw(e,n,t,o),n.memoizedState=a.state,e=n.child):e=iq(e,n,o),e}function iT(e,n,t,r){return rN(),n.flags|=256,iw(e,n,t,r),n.child}var iR={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function iN(e){return{baseLanes:e,cachePool:ot()}}function iD(e,n,t){return e=null!==e?e.childLanes&~t:0,n&&(e|=lY),e}function iB(e,n,t){var r,o=n.pendingProps,a=!1,i=0!=(128&n.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!=(2&oW.current)),r&&(a=!0,n.flags&=-129),r=0!=(32&n.flags),n.flags&=-33,null===e){if(rS){if(a?oH(n):oV(n),(e=rC)?null!==(e=null!==(e=cC(e,r_))&&\"&\"!==e.data?e:null)&&(n.memoizedState={dehydrated:e,treeContext:null!==rv?{id:rb,overflow:ry}:null,retryLane:0x20000000,hydrationErrors:null},(t=rl(e)).return=n,n.child=t,rO=n,rC=null):e=null,null===e)throw rz(n);return cE(e)?n.lanes=32:n.lanes=0x20000000,null}var s=o.children;return(o=o.fallback,a)?(oV(n),s=iI({mode:\"hidden\",children:s},a=n.mode),o=ra(o,a,t,null),s.return=n,o.return=n,s.sibling=o,n.child=s,(s=n.child).memoizedState=iN(t),s.childLanes=iD(e,r,t),n.memoizedState=iR,o):(oH(n),iM(n,s))}var c=e.memoizedState;if(null!==c&&null!==(s=c.dehydrated)){if(i)256&n.flags?(oH(n),n.flags&=-257,n=iH(e,n,t)):null!==n.memoizedState?(oV(n),n.child=e.child,n.flags|=128,n=null):(oV(n),s=o.fallback,a=n.mode,o=iI({mode:\"visible\",children:o.children},a),s=ra(s,a,t,null),s.flags|=2,o.return=n,s.return=n,o.sibling=s,n.child=o,oy(n,e.child,null,t),(o=n.child).memoizedState=iN(t),o.childLanes=iD(e,r,t),n.memoizedState=iR,n=s);else if(oH(n),cE(s)){if(r=s.nextSibling&&s.nextSibling.dataset)var u=r.dgst;r=u,(o=Error(l(419))).stack=\"\",o.digest=r,rB({value:o,source:null,stack:null}),n=iH(e,n,t)}else if(ix||rW(e,n,t,!1),r=0!=(t&e.childLanes),ix||r){if(null!==(r=lN)&&0!==(o=e_(r,t))&&o!==c.retryLane)throw c.retryLane=o,t3(e,o),so(r,e,o),iy;cS(s)||sg(),n=iH(e,n,t)}else cS(s)?(n.flags|=192,n.child=e.child,n=null):(e=c.treeContext,rC=c_(s.nextSibling),rO=n,rS=!0,rE=null,r_=!1,null!==e&&rA(n,e),n=iM(n,o.children),n.flags|=4096);return n}return a?(oV(n),s=o.fallback,a=n.mode,u=(c=e.child).sibling,(o=rt(c,{mode:\"hidden\",children:o.children})).subtreeFlags=0x3e00000&c.subtreeFlags,null!==u?s=rt(u,s):(s=ra(s,a,t,null),s.flags|=2),s.return=n,o.return=n,o.sibling=s,n.child=o,o=s,s=n.child,null===(a=e.child.memoizedState)?a=iN(t):(null!==(c=a.cachePool)?(u=r0._currentValue,c=c.parent!==u?{parent:u,pool:u}:c):c=ot(),a={baseLanes:a.baseLanes|t,cachePool:c}),s.memoizedState=a,s.childLanes=iD(e,r,t),n.memoizedState=iR,o):(oH(n),e=(t=e.child).sibling,(t=rt(t,{mode:\"visible\",children:o.children})).return=n,t.sibling=null,null!==e&&(null===(r=n.deletions)?(n.deletions=[e],n.flags|=16):r.push(e)),n.child=t,n.memoizedState=null,t)}function iM(e,n){return(n=iI({mode:\"visible\",children:n},e.mode)).return=e,e.child=n}function iI(e,n){return(e=re(22,e,null,n)).lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function iH(e,n,t){return oy(n,e.child,null,t),e=iM(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function iF(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),rV(e.return,n,t)}function iU(e,n,t,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:o,treeForkCount:a}:(i.isBackwards=n,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=t,i.tailMode=o,i.treeForkCount=a)}function iV(e,n,t){var r=n.pendingProps,o=r.revealOrder,a=r.tail;r=r.children;var i=oW.current,l=0!=(2&i);if(l?(i=1&i|2,n.flags|=128):i&=1,I(oW,i),iw(e,n,r,t),r=rS?rh:0,!l&&null!==e&&0!=(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&iF(e,t,n);else if(19===e.tag)iF(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(o){case\"forwards\":for(o=null,t=n.child;null!==t;)null!==(e=t.alternate)&&null===o$(e)&&(o=t),t=t.sibling;null===(t=o)?(o=n.child,n.child=null):(o=t.sibling,t.sibling=null),iU(n,!1,o,t,a,r);break;case\"backwards\":case\"unstable_legacy-backwards\":for(t=null,o=n.child,n.child=null;null!==o;){if(null!==(e=o.alternate)&&null===o$(e)){n.child=o;break}e=o.sibling,o.sibling=t,t=o,o=e}iU(n,!0,t,null,a,r);break;case\"together\":iU(n,!1,null,null,void 0,r);break;default:n.memoizedState=null}return n.child}function iq(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),lW|=n.lanes,0==(t&n.childLanes)){if(null===e)return null;else if(rW(e,n,t,!1),0==(t&n.childLanes))return null}if(null!==e&&n.child!==e.child)throw Error(l(153));if(null!==n.child){for(t=rt(e=n.child,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,(t=t.sibling=rt(e,e.pendingProps)).return=n;t.sibling=null}return n.child}function iW(e,n){return 0!=(e.lanes&n)||!!(null!==(e=e.dependencies)&&r$(e))}function i$(e,n,t){if(null!==e)if(e.memoizedProps!==n.pendingProps)ix=!0;else{if(!iW(e,t)&&0==(128&n.flags))return ix=!1,function(e,n,t){switch(n.tag){case 3:q(n,n.stateNode.containerInfo),rF(n,r0,e.memoizedState.cache),rN();break;case 27:case 5:$(n);break;case 4:q(n,n.stateNode.containerInfo);break;case 10:rF(n,n.type,n.memoizedProps.value);break;case 31:if(null!==n.memoizedState)return n.flags|=128,oF(n),null;break;case 13:var r=n.memoizedState;if(null!==r){if(null!==r.dehydrated)return oH(n),n.flags|=128,null;if(0!=(t&n.child.childLanes))return iB(e,n,t);return oH(n),null!==(e=iq(e,n,t))?e.sibling:null}oH(n);break;case 19:var o=0!=(128&e.flags);if((r=0!=(t&n.childLanes))||(rW(e,n,t,!1),r=0!=(t&n.childLanes)),o){if(r)return iV(e,n,t);n.flags|=128}if(null!==(o=n.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),I(oW,oW.current),!r)return null;break;case 22:return n.lanes=0,iO(e,n,t,n.pendingProps);case 24:rF(n,r0,e.memoizedState.cache)}return iq(e,n,t)}(e,n,t);ix=0!=(131072&e.flags)}else ix=!1,rS&&0!=(1048576&n.flags)&&rw(n,rh,n.index);switch(n.lanes=0,n.tag){case 16:e:{e=n.pendingProps;var r=n.elementType,o=r._init;if(r=o(r._payload),n.type=r,\"function\"==typeof r)rn(r)?(e=ic(r,e),n.tag=1,n=iL(null,n,r,e,t)):(n.tag=0,n=iP(null,n,r,e,t));else{if(null!=r){if((o=r.$$typeof)===w){n.tag=11,n=ij(null,n,r,e,t);break e}else if(o===A){n.tag=14,n=ik(null,n,r,e,t);break e}}throw Error(l(306,n=function e(n){if(null==n)return null;if(\"function\"==typeof n)return n.$$typeof===P?null:n.displayName||n.name||null;if(\"string\"==typeof n)return n;switch(n){case m:return\"Fragment\";case b:return\"Profiler\";case v:return\"StrictMode\";case j:return\"Suspense\";case k:return\"SuspenseList\";case C:return\"Activity\"}if(\"object\"==typeof n)switch(n.$$typeof){case g:return\"Portal\";case x:return n.displayName||\"Context\";case y:return(n._context.displayName||\"Context\")+\".Consumer\";case w:var t=n.render;return(n=n.displayName)||(n=\"\"!==(n=t.displayName||t.name||\"\")?\"ForwardRef(\"+n+\")\":\"ForwardRef\"),n;case A:return null!==(t=n.displayName||null)?t:e(n.type)||\"Memo\";case O:t=n._payload,n=n._init;try{return e(n(t))}catch(e){}}return null}(r)||r,\"\"))}}return n;case 0:return iP(e,n,n.type,n.pendingProps,t);case 1:return o=ic(r=n.type,n.pendingProps),iL(e,n,r,o,t);case 3:e:{if(q(n,n.stateNode.containerInfo),null===e)throw Error(l(387));r=n.pendingProps;var a=n.memoizedState;o=a.element,ok(e,n),oP(n,r,null,t);var i=n.memoizedState;if(rF(n,r0,r=i.cache),r!==a.cache&&rq(n,[r0],t,!0),o_(),r=i.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:i.cache},n.updateQueue.baseState=a,n.memoizedState=a,256&n.flags){n=iT(e,n,r,t);break e}else if(r!==o){rB(o=ru(Error(l(424)),n)),n=iT(e,n,r,t);break e}else for(rC=c_((e=9===(e=n.stateNode.containerInfo).nodeType?e.body:\"HTML\"===e.nodeName?e.ownerDocument.body:e).firstChild),rO=n,rS=!0,rE=null,r_=!0,t=ox(n,null,r,t),n.child=t;t;)t.flags=-3&t.flags|4096,t=t.sibling;else{if(rN(),r===o){n=iq(e,n,t);break e}iw(e,n,r,t)}n=n.child}return n;case 26:return i_(e,n),null===e?(t=cF(n.type,null,n.pendingProps,null))?n.memoizedState=t:rS||(t=n.type,e=n.pendingProps,(r=cf(U.current).createElement(t))[eN]=n,r[eD]=e,cc(r,t,e),eY(r),n.stateNode=r):n.memoizedState=cF(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return $(n),null===e&&rS&&(r=n.stateNode=cT(n.type,n.pendingProps,U.current),rO=n,r_=!0,o=rC,cj(n.type)?(cP=o,rC=c_(r.firstChild)):rC=o),iw(e,n,n.pendingProps.children,t),i_(e,n),null===e&&(n.flags|=4194304),n.child;case 5:return null===e&&rS&&((o=r=rC)&&(null!==(r=function(e,n,t,r){for(;1===e.nodeType;){if(e.nodeName.toLowerCase()!==n.toLowerCase()){if(!r&&(\"INPUT\"!==e.nodeName||\"hidden\"!==e.type))break}else if(r){if(!e[eU])switch(n){case\"meta\":if(!e.hasAttribute(\"itemprop\"))break;return e;case\"link\":if(\"stylesheet\"===(o=e.getAttribute(\"rel\"))&&e.hasAttribute(\"data-precedence\")||o!==t.rel||e.getAttribute(\"href\")!==(null==t.href||\"\"===t.href?null:t.href)||e.getAttribute(\"crossorigin\")!==(null==t.crossOrigin?null:t.crossOrigin)||e.getAttribute(\"title\")!==(null==t.title?null:t.title))break;return e;case\"style\":if(e.hasAttribute(\"data-precedence\"))break;return e;case\"script\":if(((o=e.getAttribute(\"src\"))!==(null==t.src?null:t.src)||e.getAttribute(\"type\")!==(null==t.type?null:t.type)||e.getAttribute(\"crossorigin\")!==(null==t.crossOrigin?null:t.crossOrigin))&&o&&e.hasAttribute(\"async\")&&!e.hasAttribute(\"itemprop\"))break;return e;default:return e}}else{if(\"input\"!==n||\"hidden\"!==e.type)return e;var o=null==t.name?null:\"\"+t.name;if(\"hidden\"===t.type&&e.getAttribute(\"name\")===o)return e}if(null===(e=c_(e.nextSibling)))break}return null}(r,n.type,n.pendingProps,r_))?(n.stateNode=r,rO=n,rC=c_(r.firstChild),r_=!1,o=!0):o=!1),o||rz(n)),$(n),o=n.type,a=n.pendingProps,i=null!==e?e.memoizedProps:null,r=a.children,cg(o,a)?r=null:null!==i&&cg(o,i)&&(n.flags|=32),null!==n.memoizedState&&(c6._currentValue=o=o6(e,n,o7,null,null,t)),i_(e,n),iw(e,n,r,t),n.child;case 6:return null===e&&rS&&((e=t=rC)&&(null!==(t=function(e,n,t){if(\"\"===n)return null;for(;3!==e.nodeType;)if((1!==e.nodeType||\"INPUT\"!==e.nodeName||\"hidden\"!==e.type)&&!t||null===(e=c_(e.nextSibling)))return null;return e}(t,n.pendingProps,r_))?(n.stateNode=t,rO=n,rC=null,e=!0):e=!1),e||rz(n)),null;case 13:return iB(e,n,t);case 4:return q(n,n.stateNode.containerInfo),r=n.pendingProps,null===e?n.child=oy(n,null,r,t):iw(e,n,r,t),n.child;case 11:return ij(e,n,n.type,n.pendingProps,t);case 7:return iw(e,n,n.pendingProps,t),n.child;case 8:case 12:return iw(e,n,n.pendingProps.children,t),n.child;case 10:return r=n.pendingProps,rF(n,n.type,r.value),iw(e,n,r.children,t),n.child;case 9:return o=n.type._context,r=n.pendingProps.children,rZ(n),r=r(o=rY(o)),n.flags|=1,iw(e,n,r,t),n.child;case 14:return ik(e,n,n.type,n.pendingProps,t);case 15:return iA(e,n,n.type,n.pendingProps,t);case 19:return iV(e,n,t);case 31:if(o=n.pendingProps,i=0!=(128&n.flags),n.flags&=-129,null===e)if(rS){if(\"hidden\"===o.mode)iS(n,o);else if(oF(n),(t=rC)?null!==(t=null!==(t=cC(t,r_))&&\"&\"===t.data?t:null)&&(n.memoizedState={dehydrated:t,treeContext:null!==rv?{id:rb,overflow:ry}:null,retryLane:0x20000000,hydrationErrors:null},(e=rl(t)).return=n,n.child=e,rO=n,rC=null):t=null,null===t)throw rz(n);n.lanes=0x20000000,n=null}else n=iS(n,o);else if(null!==(r=e.memoizedState))if(a=r.dehydrated,oF(n),i)if(256&n.flags)n.flags&=-257,n=iE(e,n,t);else if(null!==n.memoizedState)n.child=e.child,n.flags|=128,n=null;else throw Error(l(558));else if(ix||rW(e,n,t,!1),i=0!=(t&e.childLanes),ix||i){if(null!==(o=lN)&&0!==(a=e_(o,t))&&a!==r.retryLane)throw r.retryLane=a,t3(e,a),so(o,e,a),iy;sg(),n=iE(e,n,t)}else t=r.treeContext,rC=c_(a.nextSibling),rO=n,rS=!0,rE=null,r_=!1,null!==t&&rA(n,t),n=iS(n,o),n.flags|=4096;else(t=rt(e.child,{mode:o.mode,children:o.children})).ref=n.ref,n.child=t,t.return=n,n=t;return n;case 22:return iO(e,n,t,n.pendingProps);case 24:return rZ(n),r=rY(r0),null===e?(null===(o=oe())&&(o=lN,a=r1(),o.pooledCache=a,a.refCount++,null!==a&&(o.pooledCacheLanes|=t),o=a),n.memoizedState={parent:r,cache:o},oj(n),rF(n,r0,o)):(0!=(e.lanes&t)&&(ok(e,n),oP(n,null,null,t),o_()),o=e.memoizedState,a=n.memoizedState,o.parent!==r?(o={parent:r,cache:r},n.memoizedState=o,0===n.lanes&&(n.memoizedState=n.updateQueue.baseState=o),rF(n,r0,r)):(rF(n,r0,r=a.cache),r!==o.cache&&rq(n,[r0],t,!0))),iw(e,n,n.pendingProps.children,t),n.child;case 29:throw n.pendingProps}throw Error(l(156,n.tag))}function iZ(e){e.flags|=4}function iY(e,n,t,r,o){if((n=0!=(32&e.mode))&&(n=!1),n){if(e.flags|=0x1000000,(0x13ffff40&o)===o)if(e.stateNode.complete)e.flags|=8192;else if(sf())e.flags|=8192;else throw oc=oi,oo}else e.flags&=-0x1000001}function iX(e,n){if(\"stylesheet\"!==n.type||0!=(4&n.state.loading))e.flags&=-0x1000001;else if(e.flags|=0x1000000,!c0(n))if(sf())e.flags|=8192;else throw oc=oi,oo}function iK(e,n){null!==n&&(e.flags|=4),16384&e.flags&&(n=22!==e.tag?eA():0x20000000,e.lanes|=n,lX|=n)}function iQ(e,n){if(!rS)switch(e.tailMode){case\"hidden\":n=e.tail;for(var t=null;null!==n;)null!==n.alternate&&(t=n),n=n.sibling;null===t?e.tail=null:t.sibling=null;break;case\"collapsed\":t=e.tail;for(var r=null;null!==t;)null!==t.alternate&&(r=t),t=t.sibling;null===r?n||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function iG(e){var n=null!==e.alternate&&e.alternate.child===e.child,t=0,r=0;if(n)for(var o=e.child;null!==o;)t|=o.lanes|o.childLanes,r|=0x3e00000&o.subtreeFlags,r|=0x3e00000&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)t|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=t,n}function iJ(e,n){switch(rk(n),n.tag){case 3:rU(r0),W();break;case 26:case 27:case 5:Z(n);break;case 4:W();break;case 31:null!==n.memoizedState&&oq(n);break;case 13:oq(n);break;case 19:M(oW);break;case 10:rU(n.type);break;case 22:case 23:oq(n),oB(),null!==e&&M(r7);break;case 24:rU(r0)}}function i0(e,n){try{var t=n.updateQueue,r=null!==t?t.lastEffect:null;if(null!==r){var o=r.next;t=o;do{if((t.tag&e)===e){r=void 0;var a=t.create;t.inst.destroy=r=a()}t=t.next}while(t!==o)}}catch(e){sP(n,n.return,e)}}function i1(e,n,t){try{var r=n.updateQueue,o=null!==r?r.lastEffect:null;if(null!==o){var a=o.next;r=a;do{if((r.tag&e)===e){var i=r.inst,l=i.destroy;if(void 0!==l){i.destroy=void 0,o=n;try{l()}catch(e){sP(o,t,e)}}}r=r.next}while(r!==a)}}catch(e){sP(n,n.return,e)}}function i2(e){var n=e.updateQueue;if(null!==n){var t=e.stateNode;try{oL(n,t)}catch(n){sP(e,e.return,n)}}}function i4(e,n,t){t.props=ic(e.type,e.memoizedProps),t.state=e.memoizedState;try{t.componentWillUnmount()}catch(t){sP(e,n,t)}}function i5(e,n){try{var t=e.ref;if(null!==t){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}\"function\"==typeof t?e.refCleanup=t(r):t.current=r}}catch(t){sP(e,n,t)}}function i3(e,n){var t=e.ref,r=e.refCleanup;if(null!==t)if(\"function\"==typeof r)try{r()}catch(t){sP(e,n,t)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if(\"function\"==typeof t)try{t(null)}catch(t){sP(e,n,t)}else t.current=null}function i6(e){var n=e.type,t=e.memoizedProps,r=e.stateNode;try{switch(n){case\"button\":case\"input\":case\"select\":case\"textarea\":t.autoFocus&&r.focus();break;case\"img\":t.src?r.src=t.src:t.srcSet&&(r.srcset=t.srcSet)}}catch(n){sP(e,e.return,n)}}function i9(e,n,t){try{var r=e.stateNode;(function(e,n,t,r){switch(n){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"input\":var o=null,a=null,i=null,s=null,c=null,u=null,d=null;for(h in t){var f=t[h];if(t.hasOwnProperty(h)&&null!=f)switch(h){case\"checked\":case\"value\":break;case\"defaultValue\":c=f;default:r.hasOwnProperty(h)||cl(e,n,h,null,r,f)}}for(var p in r){var h=r[p];if(f=t[p],r.hasOwnProperty(p)&&(null!=h||null!=f))switch(p){case\"type\":a=h;break;case\"name\":o=h;break;case\"checked\":u=h;break;case\"defaultChecked\":d=h;break;case\"value\":i=h;break;case\"defaultValue\":s=h;break;case\"children\":case\"dangerouslySetInnerHTML\":if(null!=h)throw Error(l(137,n));break;default:h!==f&&cl(e,n,p,h,r,f)}}nt(e,i,s,c,u,d,a,o);return;case\"select\":for(a in h=i=s=p=null,t)if(c=t[a],t.hasOwnProperty(a)&&null!=c)switch(a){case\"value\":break;case\"multiple\":h=c;default:r.hasOwnProperty(a)||cl(e,n,a,null,r,c)}for(o in r)if(a=r[o],c=t[o],r.hasOwnProperty(o)&&(null!=a||null!=c))switch(o){case\"value\":p=a;break;case\"defaultValue\":s=a;break;case\"multiple\":i=a;default:a!==c&&cl(e,n,o,a,r,c)}n=s,t=i,r=h,null!=p?na(e,!!t,p,!1):!!r!=!!t&&(null!=n?na(e,!!t,n,!0):na(e,!!t,t?[]:\"\",!1));return;case\"textarea\":for(s in h=p=null,t)if(o=t[s],t.hasOwnProperty(s)&&null!=o&&!r.hasOwnProperty(s))switch(s){case\"value\":case\"children\":break;default:cl(e,n,s,null,r,o)}for(i in r)if(o=r[i],a=t[i],r.hasOwnProperty(i)&&(null!=o||null!=a))switch(i){case\"value\":p=o;break;case\"defaultValue\":h=o;break;case\"children\":break;case\"dangerouslySetInnerHTML\":if(null!=o)throw Error(l(91));break;default:o!==a&&cl(e,n,i,o,r,a)}ni(e,p,h);return;case\"option\":for(var g in t)p=t[g],t.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&(\"selected\"===g?e.selected=!1:cl(e,n,g,null,r,p));for(c in r)p=r[c],h=t[c],r.hasOwnProperty(c)&&p!==h&&(null!=p||null!=h)&&(\"selected\"===c?e.selected=p&&\"function\"!=typeof p&&\"symbol\"!=typeof p:cl(e,n,c,p,r,h));return;case\"img\":case\"link\":case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":case\"menuitem\":for(var m in t)p=t[m],t.hasOwnProperty(m)&&null!=p&&!r.hasOwnProperty(m)&&cl(e,n,m,null,r,p);for(u in r)if(p=r[u],h=t[u],r.hasOwnProperty(u)&&p!==h&&(null!=p||null!=h))switch(u){case\"children\":case\"dangerouslySetInnerHTML\":if(null!=p)throw Error(l(137,n));break;default:cl(e,n,u,p,r,h)}return;default:if(nf(n)){for(var v in t)p=t[v],t.hasOwnProperty(v)&&void 0!==p&&!r.hasOwnProperty(v)&&cs(e,n,v,void 0,r,p);for(d in r)p=r[d],h=t[d],r.hasOwnProperty(d)&&p!==h&&(void 0!==p||void 0!==h)&&cs(e,n,d,p,r,h);return}}for(var b in t)p=t[b],t.hasOwnProperty(b)&&null!=p&&!r.hasOwnProperty(b)&&cl(e,n,b,null,r,p);for(f in r)p=r[f],h=t[f],r.hasOwnProperty(f)&&p!==h&&(null!=p||null!=h)&&cl(e,n,f,p,r,h)})(r,e.type,t,n),r[eD]=n}catch(n){sP(e,e.return,n)}}function i8(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&cj(e.type)||4===e.tag}function i7(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||i8(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&cj(e.type)||2&e.flags||null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function le(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(4!==r&&(27===r&&cj(e.type)&&(t=e.stateNode),null!==(e=e.child)))for(le(e,n,t),e=e.sibling;null!==e;)le(e,n,t),e=e.sibling}function ln(e){var n=e.stateNode,t=e.memoizedProps;try{for(var r=e.type,o=n.attributes;o.length;)n.removeAttributeNode(o[0]);cc(n,r,t),n[eN]=e,n[eD]=t}catch(n){sP(e,e.return,n)}}var lt=!1,lr=!1,lo=!1,la=\"function\"==typeof WeakSet?WeakSet:Set,li=null;function ll(e,n,t){var r=t.flags;switch(t.tag){case 0:case 11:case 15:ly(e,t),4&r&&i0(5,t);break;case 1:if(ly(e,t),4&r)if(e=t.stateNode,null===n)try{e.componentDidMount()}catch(e){sP(t,t.return,e)}else{var o=ic(t.type,n.memoizedProps);n=n.memoizedState;try{e.componentDidUpdate(o,n,e.__reactInternalSnapshotBeforeUpdate)}catch(e){sP(t,t.return,e)}}64&r&&i2(t),512&r&&i5(t,t.return);break;case 3:if(ly(e,t),64&r&&null!==(e=t.updateQueue)){if(n=null,null!==t.child)switch(t.child.tag){case 27:case 5:case 1:n=t.child.stateNode}try{oL(e,n)}catch(e){sP(t,t.return,e)}}break;case 27:null===n&&4&r&&ln(t);case 26:case 5:ly(e,t),null===n&&4&r&&i6(t),512&r&&i5(t,t.return);break;case 12:default:ly(e,t);break;case 31:ly(e,t),4&r&&lf(e,t);break;case 13:ly(e,t),4&r&&lp(e,t),64&r&&null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)&&function(e,n){var t=e.ownerDocument;if(\"$~\"===e.data)e._reactRetry=n;else if(\"$?\"!==e.data||\"loading\"!==t.readyState)n();else{var r=function(){n(),t.removeEventListener(\"DOMContentLoaded\",r)};t.addEventListener(\"DOMContentLoaded\",r),e._reactRetry=r}}(e,t=sR.bind(null,t));break;case 22:if(!(r=null!==t.memoizedState||lt)){n=null!==n&&null!==n.memoizedState||lr,o=lt;var a=lr;lt=r,(lr=n)&&!a?function e(n,t,r){for(r=r&&0!=(8772&t.subtreeFlags),t=t.child;null!==t;){var o=t.alternate,a=n,i=t,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(a,i,r),i0(4,i);break;case 1:if(e(a,i,r),\"function\"==typeof(a=(o=i).stateNode).componentDidMount)try{a.componentDidMount()}catch(e){sP(o,o.return,e)}if(null!==(a=(o=i).updateQueue)){var s=o.stateNode;try{var c=a.shared.hiddenCallbacks;if(null!==c)for(a.shared.hiddenCallbacks=null,a=0;a<c.length;a++)oz(c[a],s)}catch(e){sP(o,o.return,e)}}r&&64&l&&i2(i),i5(i,i.return);break;case 27:ln(i);case 26:case 5:e(a,i,r),r&&null===o&&4&l&&i6(i),i5(i,i.return);break;case 12:default:e(a,i,r);break;case 31:e(a,i,r),r&&4&l&&lf(a,i);break;case 13:e(a,i,r),r&&4&l&&lp(a,i);break;case 22:null===i.memoizedState&&e(a,i,r),i5(i,i.return);case 30:}t=t.sibling}}(e,t,0!=(8772&t.subtreeFlags)):ly(e,t),lt=o,lr=a}case 30:}}var ls=null,lc=!1;function lu(e,n,t){for(t=t.child;null!==t;)ld(e,n,t),t=t.sibling}function ld(e,n,t){if(ep&&\"function\"==typeof ep.onCommitFiberUnmount)try{ep.onCommitFiberUnmount(ef,t)}catch(e){}switch(t.tag){case 26:lr||i3(t,n),lu(e,n,t),t.memoizedState?t.memoizedState.count--:t.stateNode&&(t=t.stateNode).parentNode.removeChild(t);break;case 27:lr||i3(t,n);var r=ls,o=lc;cj(t.type)&&(ls=t.stateNode,lc=!1),lu(e,n,t),cR(t.stateNode),ls=r,lc=o;break;case 5:lr||i3(t,n);case 6:if(r=ls,o=lc,ls=null,lu(e,n,t),ls=r,lc=o,null!==ls)if(lc)try{(9===ls.nodeType?ls.body:\"HTML\"===ls.nodeName?ls.ownerDocument.body:ls).removeChild(t.stateNode)}catch(e){sP(t,n,e)}else try{ls.removeChild(t.stateNode)}catch(e){sP(t,n,e)}break;case 18:null!==ls&&(lc?(ck(9===(e=ls).nodeType?e.body:\"HTML\"===e.nodeName?e.ownerDocument.body:e,t.stateNode),uE(e)):ck(ls,t.stateNode));break;case 4:r=ls,o=lc,ls=t.stateNode.containerInfo,lc=!0,lu(e,n,t),ls=r,lc=o;break;case 0:case 11:case 14:case 15:lr||i1(2,t,n),lr||i1(4,t,n),lu(e,n,t);break;case 1:lr||(i3(t,n),\"function\"==typeof(r=t.stateNode).componentWillUnmount&&i4(t,n,r)),lu(e,n,t);break;case 21:default:lu(e,n,t);break;case 22:lr=(r=lr)||null!==t.memoizedState,lu(e,n,t),lr=r}}function lf(e,n){if(null===n.memoizedState&&null!==(e=n.alternate)&&null!==(e=e.memoizedState)){e=e.dehydrated;try{uE(e)}catch(e){sP(n,n.return,e)}}}function lp(e,n){if(null===n.memoizedState&&null!==(e=n.alternate)&&null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))try{uE(e)}catch(e){sP(n,n.return,e)}}function lh(e,n){var t=function(e){switch(e.tag){case 31:case 13:case 19:var n=e.stateNode;return null===n&&(n=e.stateNode=new la),n;case 22:return null===(n=(e=e.stateNode)._retryCache)&&(n=e._retryCache=new la),n;default:throw Error(l(435,e.tag))}}(e);n.forEach(function(n){var r=sN.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))})}function lg(e,n){var t=n.deletions;if(null!==t)for(var r=0;r<t.length;r++){var o=t[r],a=e,i=n,s=i;e:for(;null!==s;){switch(s.tag){case 27:if(cj(s.type)){ls=s.stateNode,lc=!1;break e}break;case 5:ls=s.stateNode,lc=!1;break e;case 3:case 4:ls=s.stateNode.containerInfo,lc=!0;break e}s=s.return}if(null===ls)throw Error(l(160));ld(a,i,o),ls=null,lc=!1,null!==(a=o.alternate)&&(a.return=null),o.return=null}if(13878&n.subtreeFlags)for(n=n.child;null!==n;)lv(n,e),n=n.sibling}var lm=null;function lv(e,n){var t=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:lg(n,e),lb(e),4&r&&(i1(3,e,e.return),i0(3,e),i1(5,e,e.return));break;case 1:lg(n,e),lb(e),512&r&&(lr||null===t||i3(t,t.return)),64&r&&lt&&null!==(e=e.updateQueue)&&null!==(r=e.callbacks)&&(t=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=null===t?r:t.concat(r));break;case 26:var o=lm;if(lg(n,e),lb(e),512&r&&(lr||null===t||i3(t,t.return)),4&r){var a=null!==t?t.memoizedState:null;if(r=e.memoizedState,null===t)if(null===r)if(null===e.stateNode){e:{r=e.type,t=e.memoizedProps,o=o.ownerDocument||o;n:switch(r){case\"title\":(!(a=o.getElementsByTagName(\"title\")[0])||a[eU]||a[eN]||\"http://www.w3.org/2000/svg\"===a.namespaceURI||a.hasAttribute(\"itemprop\"))&&(a=o.createElement(r),o.head.insertBefore(a,o.querySelector(\"head > title\"))),cc(a,r,t),a[eN]=e,eY(a),r=a;break e;case\"link\":var i=cG(\"link\",\"href\",o).get(r+(t.href||\"\"));if(i){for(var s=0;s<i.length;s++)if((a=i[s]).getAttribute(\"href\")===(null==t.href||\"\"===t.href?null:t.href)&&a.getAttribute(\"rel\")===(null==t.rel?null:t.rel)&&a.getAttribute(\"title\")===(null==t.title?null:t.title)&&a.getAttribute(\"crossorigin\")===(null==t.crossOrigin?null:t.crossOrigin)){i.splice(s,1);break n}}cc(a=o.createElement(r),r,t),o.head.appendChild(a);break;case\"meta\":if(i=cG(\"meta\",\"content\",o).get(r+(t.content||\"\"))){for(s=0;s<i.length;s++)if((a=i[s]).getAttribute(\"content\")===(null==t.content?null:\"\"+t.content)&&a.getAttribute(\"name\")===(null==t.name?null:t.name)&&a.getAttribute(\"property\")===(null==t.property?null:t.property)&&a.getAttribute(\"http-equiv\")===(null==t.httpEquiv?null:t.httpEquiv)&&a.getAttribute(\"charset\")===(null==t.charSet?null:t.charSet)){i.splice(s,1);break n}}cc(a=o.createElement(r),r,t),o.head.appendChild(a);break;default:throw Error(l(468,r))}a[eN]=e,eY(a),r=a}e.stateNode=r}else cJ(o,e.type,e.stateNode);else e.stateNode=cZ(o,r,e.memoizedProps);else a!==r?(null===a?null!==t.stateNode&&(t=t.stateNode).parentNode.removeChild(t):a.count--,null===r?cJ(o,e.type,e.stateNode):cZ(o,r,e.memoizedProps)):null===r&&null!==e.stateNode&&i9(e,e.memoizedProps,t.memoizedProps)}break;case 27:lg(n,e),lb(e),512&r&&(lr||null===t||i3(t,t.return)),null!==t&&4&r&&i9(e,e.memoizedProps,t.memoizedProps);break;case 5:if(lg(n,e),lb(e),512&r&&(lr||null===t||i3(t,t.return)),32&e.flags){o=e.stateNode;try{ns(o,\"\")}catch(n){sP(e,e.return,n)}}4&r&&null!=e.stateNode&&(o=e.memoizedProps,i9(e,o,null!==t?t.memoizedProps:o)),1024&r&&(lo=!0);break;case 6:if(lg(n,e),lb(e),4&r){if(null===e.stateNode)throw Error(l(162));r=e.memoizedProps,t=e.stateNode;try{t.nodeValue=r}catch(n){sP(e,e.return,n)}}break;case 3:if(cQ=null,o=lm,lm=cB(n.containerInfo),lg(n,e),lm=o,lb(e),4&r&&null!==t&&t.memoizedState.isDehydrated)try{uE(n.containerInfo)}catch(n){sP(e,e.return,n)}lo&&(lo=!1,function e(n){if(1024&n.subtreeFlags)for(n=n.child;null!==n;){var t=n;e(t),5===t.tag&&1024&t.flags&&t.stateNode.reset(),n=n.sibling}}(e));break;case 4:r=lm,lm=cB(e.stateNode.containerInfo),lg(n,e),lb(e),lm=r;break;case 12:default:lg(n,e),lb(e);break;case 31:case 19:lg(n,e),lb(e),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,lh(e,r));break;case 13:lg(n,e),lb(e),8192&e.child.flags&&null!==e.memoizedState!=(null!==t&&null!==t.memoizedState)&&(lJ=er()),4&r&&null!==(r=e.updateQueue)&&(e.updateQueue=null,lh(e,r));break;case 22:o=null!==e.memoizedState;var c=null!==t&&null!==t.memoizedState,u=lt,d=lr;if(lt=u||o,lr=d||c,lg(n,e),lr=d,lt=u,lb(e),8192&r)e:for((n=e.stateNode)._visibility=o?-2&n._visibility:1|n._visibility,o&&(null===t||c||lt||lr||function e(n){for(n=n.child;null!==n;){var t=n;switch(t.tag){case 0:case 11:case 14:case 15:i1(4,t,t.return),e(t);break;case 1:i3(t,t.return);var r=t.stateNode;\"function\"==typeof r.componentWillUnmount&&i4(t,t.return,r),e(t);break;case 27:cR(t.stateNode);case 26:case 5:i3(t,t.return),e(t);break;case 22:null===t.memoizedState&&e(t);break;default:e(t)}n=n.sibling}}(e)),t=null,n=e;;){if(5===n.tag||26===n.tag){if(null===t){c=t=n;try{if(a=c.stateNode,o)i=a.style,\"function\"==typeof i.setProperty?i.setProperty(\"display\",\"none\",\"important\"):i.display=\"none\";else{s=c.stateNode;var f=c.memoizedProps.style,p=null!=f&&f.hasOwnProperty(\"display\")?f.display:null;s.style.display=null==p||\"boolean\"==typeof p?\"\":(\"\"+p).trim()}}catch(e){sP(c,c.return,e)}}}else if(6===n.tag){if(null===t){c=n;try{c.stateNode.nodeValue=o?\"\":c.memoizedProps}catch(e){sP(c,c.return,e)}}}else if(18===n.tag){if(null===t){c=n;try{var h=c.stateNode;o?cA(h,!0):cA(c.stateNode,!1)}catch(e){sP(c,c.return,e)}}}else if((22!==n.tag&&23!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)break e;t===n&&(t=null),n=n.return}t===n&&(t=null),n.sibling.return=n.return,n=n.sibling}4&r&&null!==(r=e.updateQueue)&&null!==(t=r.retryQueue)&&(r.retryQueue=null,lh(e,t));case 30:case 21:}}function lb(e){var n=e.flags;if(2&n){try{for(var t,r=e.return;null!==r;){if(i8(r)){t=r;break}r=r.return}if(null==t)throw Error(l(160));switch(t.tag){case 27:var o=t.stateNode,a=i7(e);le(e,a,o);break;case 5:var i=t.stateNode;32&t.flags&&(ns(i,\"\"),t.flags&=-33);var s=i7(e);le(e,s,i);break;case 3:case 4:var c=t.stateNode.containerInfo,u=i7(e);!function e(n,t,r){var o=n.tag;if(5===o||6===o)n=n.stateNode,t?(9===r.nodeType?r.body:\"HTML\"===r.nodeName?r.ownerDocument.body:r).insertBefore(n,t):((t=9===r.nodeType?r.body:\"HTML\"===r.nodeName?r.ownerDocument.body:r).appendChild(n),null!=(r=r._reactRootContainer)||null!==t.onclick||(t.onclick=nm));else if(4!==o&&(27===o&&cj(n.type)&&(r=n.stateNode,t=null),null!==(n=n.child)))for(e(n,t,r),n=n.sibling;null!==n;)e(n,t,r),n=n.sibling}(e,u,c);break;default:throw Error(l(161))}}catch(n){sP(e,e.return,n)}e.flags&=-3}4096&n&&(e.flags&=-4097)}function ly(e,n){if(8772&n.subtreeFlags)for(n=n.child;null!==n;)ll(e,n.alternate,n),n=n.sibling}function lx(e,n){var t=null;null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(t=e.memoizedState.cachePool.pool),e=null,null!==n.memoizedState&&null!==n.memoizedState.cachePool&&(e=n.memoizedState.cachePool.pool),e!==t&&(null!=e&&e.refCount++,null!=t&&r2(t))}function lw(e,n){e=null,null!==n.alternate&&(e=n.alternate.memoizedState.cache),(n=n.memoizedState.cache)!==e&&(n.refCount++,null!=e&&r2(e))}function lj(e,n,t,r){if(10256&n.subtreeFlags)for(n=n.child;null!==n;)lk(e,n,t,r),n=n.sibling}function lk(e,n,t,r){var o=n.flags;switch(n.tag){case 0:case 11:case 15:lj(e,n,t,r),2048&o&&i0(9,n);break;case 1:case 31:case 13:default:lj(e,n,t,r);break;case 3:lj(e,n,t,r),2048&o&&(e=null,null!==n.alternate&&(e=n.alternate.memoizedState.cache),(n=n.memoizedState.cache)!==e&&(n.refCount++,null!=e&&r2(e)));break;case 12:if(2048&o){lj(e,n,t,r),e=n.stateNode;try{var a=n.memoizedProps,i=a.id,l=a.onPostCommit;\"function\"==typeof l&&l(i,null===n.alternate?\"mount\":\"update\",e.passiveEffectDuration,-0)}catch(e){sP(n,n.return,e)}}else lj(e,n,t,r);break;case 23:break;case 22:a=n.stateNode,i=n.alternate,null!==n.memoizedState?2&a._visibility?lj(e,n,t,r):lA(e,n):2&a._visibility?lj(e,n,t,r):(a._visibility|=2,function e(n,t,r,o,a){for(a=a&&0!=(10256&t.subtreeFlags),t=t.child;null!==t;){var i=t,l=i.flags;switch(i.tag){case 0:case 11:case 15:e(n,i,r,o,a),i0(8,i);break;case 23:break;case 22:var s=i.stateNode;null!==i.memoizedState?2&s._visibility?e(n,i,r,o,a):lA(n,i):(s._visibility|=2,e(n,i,r,o,a)),a&&2048&l&&lx(i.alternate,i);break;case 24:e(n,i,r,o,a),a&&2048&l&&lw(i.alternate,i);break;default:e(n,i,r,o,a)}t=t.sibling}}(e,n,t,r,0!=(10256&n.subtreeFlags))),2048&o&&lx(i,n);break;case 24:lj(e,n,t,r),2048&o&&lw(n.alternate,n)}}function lA(e,n){if(10256&n.subtreeFlags)for(n=n.child;null!==n;){var t=n,r=t.flags;switch(t.tag){case 22:lA(e,t),2048&r&&lx(t.alternate,t);break;case 24:lA(e,t),2048&r&&lw(t.alternate,t);break;default:lA(e,t)}n=n.sibling}}var lO=8192;function lC(e){if(e.subtreeFlags&lO)for(e=e.child;null!==e;)lS(e),e=e.sibling}function lS(e){switch(e.tag){case 26:lC(e),e.flags&lO&&null!==e.memoizedState&&function(e,n,t){if(null===c1)throw Error(l(475));var r=c1;if(\"stylesheet\"===n.type&&(\"string\"!=typeof t.media||!1!==matchMedia(t.media).matches)&&0==(4&n.state.loading)){if(null===n.instance){var o=cU(t.href),a=e.querySelector(cV(o));if(a){null!==(e=a._p)&&\"object\"==typeof e&&\"function\"==typeof e.then&&(r.count++,r=c2.bind(r),e.then(r,r)),n.state.loading|=4,n.instance=a,eY(a);return}a=e.ownerDocument||e,t=cq(t),(o=cN.get(o))&&cX(t,o),eY(a=a.createElement(\"link\"));var i=a;i._p=new Promise(function(e,n){i.onload=e,i.onerror=n}),cc(a,\"link\",t),n.instance=a}null===r.stylesheets&&(r.stylesheets=new Map),r.stylesheets.set(n,e),(e=n.state.preload)&&0==(3&n.state.loading)&&(r.count++,n=c2.bind(r),e.addEventListener(\"load\",n),e.addEventListener(\"error\",n))}}(lm,e.memoizedState,e.memoizedProps);break;case 5:default:lC(e);break;case 3:case 4:var n=lm;lm=cB(e.stateNode.containerInfo),lC(e),lm=n;break;case 22:null===e.memoizedState&&(null!==(n=e.alternate)&&null!==n.memoizedState?(n=lO,lO=0x1000000,lC(e),lO=n):lC(e))}}function lE(e){var n=e.alternate;if(null!==n&&null!==(e=n.child)){n.child=null;do n=e.sibling,e.sibling=null,e=n;while(null!==e)}}function l_(e){var n=e.deletions;if(0!=(16&e.flags)){if(null!==n)for(var t=0;t<n.length;t++){var r=n[t];li=r,lz(r,e)}lE(e)}if(10256&e.subtreeFlags)for(e=e.child;null!==e;)lP(e),e=e.sibling}function lP(e){switch(e.tag){case 0:case 11:case 15:l_(e),2048&e.flags&&i1(9,e,e.return);break;case 3:case 12:default:l_(e);break;case 22:var n=e.stateNode;null!==e.memoizedState&&2&n._visibility&&(null===e.return||13!==e.return.tag)?(n._visibility&=-3,function e(n){var t=n.deletions;if(0!=(16&n.flags)){if(null!==t)for(var r=0;r<t.length;r++){var o=t[r];li=o,lz(o,n)}lE(n)}for(n=n.child;null!==n;){switch((t=n).tag){case 0:case 11:case 15:i1(8,t,t.return),e(t);break;case 22:2&(r=t.stateNode)._visibility&&(r._visibility&=-3,e(t));break;default:e(t)}n=n.sibling}}(e)):l_(e)}}function lz(e,n){for(;null!==li;){var t=li;switch(t.tag){case 0:case 11:case 15:i1(8,t,n);break;case 23:case 22:if(null!==t.memoizedState&&null!==t.memoizedState.cachePool){var r=t.memoizedState.cachePool.pool;null!=r&&r.refCount++}break;case 24:r2(t.memoizedState.cache)}if(null!==(r=t.child))r.return=t,li=r;else for(t=e;null!==li;){var o=(r=li).sibling,a=r.return;if(!function e(n){var t=n.alternate;null!==t&&(n.alternate=null,e(t)),n.child=null,n.deletions=null,n.sibling=null,5===n.tag&&null!==(t=n.stateNode)&&eV(t),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}(r),r===t){li=null;break}if(null!==o){o.return=a,li=o;break}li=a}}}var lL={getCacheForType:function(e){var n=rY(r0),t=n.data.get(e);return void 0===t&&(t=e(),n.data.set(e,t)),t},cacheSignal:function(){return rY(r0).controller.signal}},lT=\"function\"==typeof WeakMap?WeakMap:Map,lR=0,lN=null,lD=null,lB=0,lM=0,lI=null,lH=!1,lF=!1,lU=!1,lV=0,lq=0,lW=0,l$=0,lZ=0,lY=0,lX=0,lK=null,lQ=null,lG=!1,lJ=0,l0=1/0,l1=null,l2=null,l4=0,l5=null,l3=null,l6=0,l9=0,l8=null,l7=null,se=0,sn=null;function st(){return 0!=(2&lR)&&0!==lB?lB&-lB:null!==L.T?sX():eL()}function sr(){0===lY&&(lY=0==(0x20000000&lB)||rS?ek():0x20000000);var e=oM.current;return null!==e&&(e.flags|=32),lY}function so(e,n,t){(e===lN&&(2===lM||9===lM)||null!==e.cancelPendingCommit)&&(su(e,0),sl(e,lB,lY,!1)),eC(e,t),(0==(2&lR)||e!==lN)&&(e===lN&&(0==(2&lR)&&(l$|=t),4===lq&&sl(e,lB,lY,!1)),sU(e))}function sa(e,n,t){if(0!=(6&lR))throw Error(l(327));for(var r=!t&&0==(124&n)&&0==(n&e.expiredLanes)||ej(e,n),o=r?function(e,n){var t=lR;lR|=2;var r=sp(),o=sh();lN!==e||lB!==n?(l1=null,l0=er()+500,su(e,n)):lF=ej(e,n);e:for(;;)try{if(0!==lM&&null!==lD){n=lD;var a=lI;n:switch(lM){case 1:lM=0,lI=null,sy(e,n,a,1);break;case 2:case 9:if(ol(a)){lM=0,lI=null,sb(n);break}n=function(){2!==lM&&9!==lM||lN!==e||(lM=7),sU(e)},a.then(n,n);break e;case 3:lM=7;break e;case 4:lM=5;break e;case 7:ol(a)?(lM=0,lI=null,sb(n)):(lM=0,lI=null,sy(e,n,a,7));break;case 5:var i=null;switch(lD.tag){case 26:i=lD.memoizedState;case 5:case 27:var s=lD;if(i?c0(i):s.stateNode.complete){lM=0,lI=null;var c=s.sibling;if(null!==c)lD=c;else{var u=s.return;null!==u?(lD=u,sx(u)):lD=null}break n}}lM=0,lI=null,sy(e,n,a,5);break;case 6:lM=0,lI=null,sy(e,n,a,6);break;case 8:sc(),lq=6;break e;default:throw Error(l(462))}}for(;null!==lD&&!en();)sv(lD);break}catch(n){sd(e,n)}return(rH=rI=null,L.H=r,L.A=o,lR=t,null!==lD)?0:(lN=null,lB=0,t2(),lq)}(e,n):sm(e,n,!0),a=r;;){if(0===o)lF&&!r&&sl(e,n,0,!1);else{if(t=e.current.alternate,a&&!function(e){for(var n=e;;){var t=n.tag;if((0===t||11===t||15===t)&&16384&n.flags&&null!==(t=n.updateQueue)&&null!==(t=t.stores))for(var r=0;r<t.length;r++){var o=t[r],a=o.getSnapshot;o=o.value;try{if(!tO(a(),o))return!1}catch(e){return!1}}if(t=n.child,16384&n.subtreeFlags&&null!==t)t.return=n,n=t;else{if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}(t)){o=sm(e,n,!1),a=!1;continue}if(2===o){if(a=n,e.errorRecoveryDisabledLanes&a)var i=0;else i=0!=(i=-0x20000001&e.pendingLanes)?i:0x20000000&i?0x20000000:0;if(0!==i){n=i;e:{o=lK;var s=e.current.memoizedState.isDehydrated;if(s&&(su(e,i).flags|=256),2!==(i=sm(e,i,!1))){if(lU&&!s){e.errorRecoveryDisabledLanes|=a,l$|=a,o=4;break e}a=lQ,lQ=o,null!==a&&(null===lQ?lQ=a:lQ.push.apply(lQ,a))}o=i}if(a=!1,2!==o)continue}}if(1===o){su(e,0),sl(e,n,0,!0);break}e:{switch(r=e,a=o){case 0:case 1:throw Error(l(345));case 4:if((4194048&n)!==n)break;case 6:sl(r,n,lY,!lH);break e;case 2:lQ=null;break;case 3:case 5:break;default:throw Error(l(329))}if((0x3c00000&n)===n&&10<(o=lJ+300-er())){if(sl(r,n,lY,!lH),0!==ew(r,0,!0))break e;r.timeoutHandle=cv(si.bind(null,r,t,lQ,l1,lG,n,lY,l$,lX,lH,a,2,-0,0),o);break e}si(r,t,lQ,l1,lG,n,lY,l$,lX,lH,a,0,-0,0)}}break}sU(e)}function si(e,n,t,r,o,a,i,s,c,u,d,f,p,h){if(e.timeoutHandle=-1,(8192&(f=n.subtreeFlags)||0x1002000==(0x1002000&f))&&(c1={stylesheets:null,count:0,unsuspend:nm},lS(n),null!==(f=function(){if(null===c1)throw Error(l(475));var e=c1;return e.stylesheets&&0===e.count&&c5(e,e.stylesheets),0<e.count?function(n){var t=setTimeout(function(){if(e.stylesheets&&c5(e,e.stylesheets),e.unsuspend){var n=e.unsuspend;e.unsuspend=null,n()}},6e4);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(t)}}:null}()))){e.cancelPendingCommit=f(sj.bind(null,e,n,a,t,r,o,i,s,c,d,1,p,h)),sl(e,a,i,!u);return}sj(e,n,a,t,r,o,i,s,c)}function sl(e,n,t,r){n&=~lZ,n&=~l$,e.suspendedLanes|=n,e.pingedLanes&=~n,r&&(e.warmLanes|=n),r=e.expirationTimes;for(var o=n;0<o;){var a=31-eg(o),i=1<<a;r[a]=-1,o&=~i}0!==t&&eS(e,t,n)}function ss(){return 0!=(6&lR)||(sV(0,!1),!1)}function sc(){if(null!==lD){if(0===lM)var e=lD.return;else e=lD,rH=rI=null,at(e),of=null,op=0,e=lD;for(;null!==e;)iJ(e.alternate,e),e=e.return;lD=null}}function su(e,n){var t=e.timeoutHandle;-1!==t&&(e.timeoutHandle=-1,cb(t)),null!==(t=e.cancelPendingCommit)&&(e.cancelPendingCommit=null,t()),sc(),lN=e,lD=t=rt(e.current,null),lB=n,lM=0,lI=null,lH=!1,lF=ej(e,n),lU=!1,lX=lY=lZ=l$=lW=lq=0,lQ=lK=null,lG=!1,0!=(8&n)&&(n|=32&n);var r=e.entangledLanes;if(0!==r)for(e=e.entanglements,r&=n;0<r;){var o=31-eg(r),a=1<<o;n|=e[o],r&=~a}return lV=n,t2(),t}function sd(e,n){oY=null,L.H=ie,n===or||n===oa?(n=ou(),lM=3):n===oo?(n=ou(),lM=4):lM=n===iy?8:null!==n&&\"object\"==typeof n&&\"function\"==typeof n.then?6:1,lI=n,null===lD&&(lq=1,ih(e,ru(n,e.current)))}function sf(){var e=oM.current;return null===e||((4194048&lB)===lB?null===oI:((0x3c00000&lB)===lB||0!=(0x20000000&lB))&&e===oI)}function sp(){var e=L.H;return L.H=ie,null===e?ie:e}function sh(){var e=L.A;return L.A=lL,e}function sg(){lq=4,lH||(4194048&lB)!==lB&&null!==oM.current||(lF=!0),0==(0x7ffffff&lW)&&0==(0x7ffffff&l$)||null===lN||sl(lN,lB,lY,!1)}function sm(e,n,t){var r=lR;lR|=2;var o=sp(),a=sh();(lN!==e||lB!==n)&&(l1=null,su(e,n)),n=!1;var i=lq;e:for(;;)try{if(0!==lM&&null!==lD){var l=lD,s=lI;switch(lM){case 8:sc(),i=6;break e;case 3:case 2:case 9:case 6:null===oM.current&&(n=!0);var c=lM;if(lM=0,lI=null,sy(e,l,s,c),t&&lF){i=0;break e}break;default:c=lM,lM=0,lI=null,sy(e,l,s,c)}}(function(){for(;null!==lD;)sv(lD)})(),i=lq;break}catch(n){sd(e,n)}return n&&e.shellSuspendCounter++,rH=rI=null,lR=r,L.H=o,L.A=a,null===lD&&(lN=null,lB=0,t2()),i}function sv(e){var n=i$(e.alternate,e,lV);e.memoizedProps=e.pendingProps,null===n?sx(e):lD=n}function sb(e){var n=e,t=n.alternate;switch(n.tag){case 15:case 0:n=iz(t,n,n.pendingProps,n.type,void 0,lB);break;case 11:n=iz(t,n,n.pendingProps,n.type.render,n.ref,lB);break;case 5:at(n);default:iJ(t,n),n=i$(t,n=lD=rr(n,lV),lV)}e.memoizedProps=e.pendingProps,null===n?sx(e):lD=n}function sy(e,n,t,r){rH=rI=null,at(n),of=null,op=0;var o=n.return;try{if(function(e,n,t,r,o){if(t.flags|=32768,null!==r&&\"object\"==typeof r&&\"function\"==typeof r.then){if(null!==(n=t.alternate)&&rW(n,t,o,!0),null!==(t=oM.current)){switch(t.tag){case 31:case 13:return null===oI?sg():null===t.alternate&&0===lq&&(lq=3),t.flags&=-257,t.flags|=65536,t.lanes=o,r===oi?t.flags|=16384:(null===(n=t.updateQueue)?t.updateQueue=new Set([r]):n.add(r),sz(e,r,o)),!1;case 22:return t.flags|=65536,r===oi?t.flags|=16384:(null===(n=t.updateQueue)?(n={transitions:null,markerInstances:null,retryQueue:new Set([r])},t.updateQueue=n):null===(t=n.retryQueue)?n.retryQueue=new Set([r]):t.add(r),sz(e,r,o)),!1}throw Error(l(435,t.tag))}return sz(e,r,o),sg(),!1}if(rS)return null!==(n=oM.current)?(0==(65536&n.flags)&&(n.flags|=256),n.flags|=65536,n.lanes=o,r!==rP&&rB(ru(e=Error(l(422),{cause:r}),t))):(r!==rP&&rB(ru(n=Error(l(423),{cause:r}),t)),e=e.current.alternate,e.flags|=65536,o&=-o,e.lanes|=o,r=ru(r,t),o=im(e.stateNode,r,o),oS(e,o),4!==lq&&(lq=2)),!1;var a=Error(l(520),{cause:r});if(a=ru(a,t),null===lK?lK=[a]:lK.push(a),4!==lq&&(lq=2),null===n)return!0;r=ru(r,t),t=n;do{switch(t.tag){case 3:return t.flags|=65536,e=o&-o,t.lanes|=e,e=im(t.stateNode,r,e),oS(t,e),!1;case 1:if(n=t.type,a=t.stateNode,0==(128&t.flags)&&(\"function\"==typeof n.getDerivedStateFromError||null!==a&&\"function\"==typeof a.componentDidCatch&&(null===l2||!l2.has(a))))return t.flags|=65536,o&=-o,t.lanes|=o,ib(o=iv(o),e,t,r),oS(t,o),!1}t=t.return}while(null!==t);return!1}(e,o,n,t,lB)){lq=1,ih(e,ru(t,e.current)),lD=null;return}}catch(n){if(null!==o)throw lD=o,n;lq=1,ih(e,ru(t,e.current)),lD=null;return}32768&n.flags?(rS||1===r?e=!0:lF||0!=(0x20000000&lB)?e=!1:(lH=e=!0,(2===r||9===r||3===r||6===r)&&null!==(r=oM.current)&&13===r.tag&&(r.flags|=16384)),sw(n,e)):sx(n)}function sx(e){var n=e;do{if(0!=(32768&n.flags))return void sw(n,lH);e=n.return;var t=function(e,n,t){var r=n.pendingProps;switch(rk(n),n.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return iG(n),null;case 3:return t=n.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),n.memoizedState.cache!==r&&(n.flags|=2048),rU(r0),W(),t.pendingContext&&(t.context=t.pendingContext,t.pendingContext=null),(null===e||null===e.child)&&(rR(n)?iZ(n):null===e||e.memoizedState.isDehydrated&&0==(256&n.flags)||(n.flags|=1024,rD())),iG(n),null;case 26:var o=n.type,a=n.memoizedState;return null===e?(iZ(n),null!==a?(iG(n),iX(n,a)):(iG(n),iY(n,o,null,r,t))):a?a!==e.memoizedState?(iZ(n),iG(n),iX(n,a)):(iG(n),n.flags&=-0x1000001):((e=e.memoizedProps)!==r&&iZ(n),iG(n),iY(n,o,e,r,t)),null;case 27:if(Z(n),t=U.current,o=n.type,null!==e&&null!=n.stateNode)e.memoizedProps!==r&&iZ(n);else{if(!r){if(null===n.stateNode)throw Error(l(166));return iG(n),null}e=H.current,rR(n)?rL(n,e):(n.stateNode=e=cT(o,r,t),iZ(n))}return iG(n),null;case 5:if(Z(n),o=n.type,null!==e&&null!=n.stateNode)e.memoizedProps!==r&&iZ(n);else{if(!r){if(null===n.stateNode)throw Error(l(166));return iG(n),null}if(a=H.current,rR(n))rL(n,a);else{var i=cf(U.current);switch(a){case 1:a=i.createElementNS(\"http://www.w3.org/2000/svg\",o);break;case 2:a=i.createElementNS(\"http://www.w3.org/1998/Math/MathML\",o);break;default:switch(o){case\"svg\":a=i.createElementNS(\"http://www.w3.org/2000/svg\",o);break;case\"math\":a=i.createElementNS(\"http://www.w3.org/1998/Math/MathML\",o);break;case\"script\":(a=i.createElement(\"div\")).innerHTML=\"<script><\\/script>\",a=a.removeChild(a.firstChild);break;case\"select\":a=\"string\"==typeof r.is?i.createElement(\"select\",{is:r.is}):i.createElement(\"select\"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=\"string\"==typeof r.is?i.createElement(o,{is:r.is}):i.createElement(o)}}a[eN]=n,a[eD]=r;e:for(i=n.child;null!==i;){if(5===i.tag||6===i.tag)a.appendChild(i.stateNode);else if(4!==i.tag&&27!==i.tag&&null!==i.child){i.child.return=i,i=i.child;continue}if(i===n)break;for(;null===i.sibling;){if(null===i.return||i.return===n)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}switch(n.stateNode=a,cc(a,o,r),o){case\"button\":case\"input\":case\"select\":case\"textarea\":r=!!r.autoFocus;break;case\"img\":r=!0;break;default:r=!1}r&&iZ(n)}}return iG(n),iY(n,n.type,null===e?null:e.memoizedProps,n.pendingProps,t),null;case 6:if(e&&null!=n.stateNode)e.memoizedProps!==r&&iZ(n);else{if(\"string\"!=typeof r&&null===n.stateNode)throw Error(l(166));if(e=U.current,rR(n)){if(e=n.stateNode,t=n.memoizedProps,r=null,null!==(o=rO))switch(o.tag){case 27:case 5:r=o.memoizedProps}e[eN]=n,(e=!!(e.nodeValue===t||null!==r&&!0===r.suppressHydrationWarning||ci(e.nodeValue,t)))||rz(n,!0)}else(e=cf(e).createTextNode(r))[eN]=n,n.stateNode=e}return iG(n),null;case 31:if(t=n.memoizedState,null===e||null!==e.memoizedState){if(r=rR(n),null!==t){if(null===e){if(!r)throw Error(l(318));if(!(e=null!==(e=n.memoizedState)?e.dehydrated:null))throw Error(l(557));e[eN]=n}else rN(),0==(128&n.flags)&&(n.memoizedState=null),n.flags|=4;iG(n),e=!1}else t=rD(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=t),e=!0;if(!e){if(256&n.flags)return oq(n),n;return oq(n),null}if(0!=(128&n.flags))throw Error(l(558))}return iG(n),null;case 13:if(r=n.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(o=rR(n),null!==r&&null!==r.dehydrated){if(null===e){if(!o)throw Error(l(318));if(!(o=null!==(o=n.memoizedState)?o.dehydrated:null))throw Error(l(317));o[eN]=n}else rN(),0==(128&n.flags)&&(n.memoizedState=null),n.flags|=4;iG(n),o=!1}else o=rD(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=o),o=!0;if(!o){if(256&n.flags)return oq(n),n;return oq(n),null}}if(oq(n),0!=(128&n.flags))return n.lanes=t,n;return t=null!==r,e=null!==e&&null!==e.memoizedState,t&&(r=n.child,o=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(o=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==o&&(r.flags|=2048)),t!==e&&t&&(n.child.flags|=8192),iK(n,n.updateQueue),iG(n),null;case 4:return W(),null===e&&s6(n.stateNode.containerInfo),iG(n),null;case 10:return rU(n.type),iG(n),null;case 19:if(M(oW),null===(r=n.memoizedState))return iG(n),null;if(o=0!=(128&n.flags),null===(a=r.rendering))if(o)iQ(r,!1);else{if(0!==lq||null!==e&&0!=(128&e.flags))for(e=n.child;null!==e;){if(null!==(a=o$(e))){for(n.flags|=128,iQ(r,!1),n.updateQueue=e=a.updateQueue,iK(n,e),n.subtreeFlags=0,e=t,t=n.child;null!==t;)rr(t,e),t=t.sibling;return I(oW,1&oW.current|2),rS&&rx(n,r.treeForkCount),n.child}e=e.sibling}null!==r.tail&&er()>l0&&(n.flags|=128,o=!0,iQ(r,!1),n.lanes=4194304)}else{if(!o)if(null!==(e=o$(a))){if(n.flags|=128,o=!0,n.updateQueue=e=e.updateQueue,iK(n,e),iQ(r,!0),null===r.tail&&\"hidden\"===r.tailMode&&!a.alternate&&!rS)return iG(n),null}else 2*er()-r.renderingStartTime>l0&&0x20000000!==t&&(n.flags|=128,o=!0,iQ(r,!1),n.lanes=4194304);r.isBackwards?(a.sibling=n.child,n.child=a):(null!==(e=r.last)?e.sibling=a:n.child=a,r.last=a)}if(null!==r.tail)return e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=er(),e.sibling=null,t=oW.current,I(oW,o?1&t|2:1&t),rS&&rx(n,r.treeForkCount),e;return iG(n),null;case 22:case 23:return oq(n),oB(),r=null!==n.memoizedState,null!==e?null!==e.memoizedState!==r&&(n.flags|=8192):r&&(n.flags|=8192),r?0!=(0x20000000&t)&&0==(128&n.flags)&&(iG(n),6&n.subtreeFlags&&(n.flags|=8192)):iG(n),null!==(t=n.updateQueue)&&iK(n,t.retryQueue),t=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(t=e.memoizedState.cachePool.pool),r=null,null!==n.memoizedState&&null!==n.memoizedState.cachePool&&(r=n.memoizedState.cachePool.pool),r!==t&&(n.flags|=2048),null!==e&&M(r7),null;case 24:return t=null,null!==e&&(t=e.memoizedState.cache),n.memoizedState.cache!==t&&(n.flags|=2048),rU(r0),iG(n),null;case 25:case 30:return null}throw Error(l(156,n.tag))}(n.alternate,n,lV);if(null!==t){lD=t;return}if(null!==(n=n.sibling)){lD=n;return}lD=n=e}while(null!==n);0===lq&&(lq=5)}function sw(e,n){do{var t=function(e,n){switch(rk(n),n.tag){case 1:return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 3:return rU(r0),W(),0!=(65536&(e=n.flags))&&0==(128&e)?(n.flags=-65537&e|128,n):null;case 26:case 27:case 5:return Z(n),null;case 31:if(null!==n.memoizedState){if(oq(n),null===n.alternate)throw Error(l(340));rN()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 13:if(oq(n),null!==(e=n.memoizedState)&&null!==e.dehydrated){if(null===n.alternate)throw Error(l(340));rN()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 19:return M(oW),null;case 4:return W(),null;case 10:return rU(n.type),null;case 22:case 23:return oq(n),oB(),null!==e&&M(r7),65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 24:return rU(r0),null;default:return null}}(e.alternate,e);if(null!==t){t.flags&=32767,lD=t;return}if(null!==(t=e.return)&&(t.flags|=32768,t.subtreeFlags=0,t.deletions=null),!n&&null!==(e=e.sibling)){lD=e;return}lD=e=t}while(null!==e);lq=6,lD=null}function sj(e,n,t,r,o,a,i,s,c){e.cancelPendingCommit=null;do sS();while(0!==l4);if(0!=(6&lR))throw Error(l(327));if(null!==n){if(n===e.current)throw Error(l(177));if(!function(e,n,t,r,o,a){var i=e.pendingLanes;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=t,e.entangledLanes&=t,e.errorRecoveryDisabledLanes&=t,e.shellSuspendCounter=0;var l=e.entanglements,s=e.expirationTimes,c=e.hiddenUpdates;for(t=i&~t;0<t;){var u=31-eg(t),d=1<<u;l[u]=0,s[u]=-1;var f=c[u];if(null!==f)for(c[u]=null,u=0;u<f.length;u++){var p=f[u];null!==p&&(p.lane&=-0x20000001)}t&=~d}0!==r&&eS(e,r,0),0!==a&&0===o&&0!==e.tag&&(e.suspendedLanes|=a&~(i&~n))}(e,t,a=n.lanes|n.childLanes|t1,i,s,c),e===lN&&(lD=lN=null,lB=0),l3=n,l5=e,l6=t,l9=a,l8=o,l7=r,0!=(10256&n.subtreeFlags)||0!=(10256&n.flags)?(e.callbackNode=null,e.callbackPriority=0,J(el,function(){return sE(!0),null})):(e.callbackNode=null,e.callbackPriority=0),r=0!=(13878&n.flags),0!=(13878&n.subtreeFlags)||r){r=L.T,L.T=null,o=T.p,T.p=2,i=lR,lR|=4;try{!function(e,n){if(e=e.containerInfo,cu=ur,tP(e=t_(e))){if(\"selectionStart\"in e)var t={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(t=(t=e.ownerDocument)&&t.defaultView||window).getSelection&&t.getSelection();if(r&&0!==r.rangeCount){t=r.anchorNode;var o,a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{t.nodeType,i.nodeType}catch(e){t=null;break e}var s=0,c=-1,u=-1,d=0,f=0,p=e,h=null;n:for(;;){for(;p!==t||0!==a&&3!==p.nodeType||(c=s+a),p!==i||0!==r&&3!==p.nodeType||(u=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(o=p.firstChild);)h=p,p=o;for(;;){if(p===e)break n;if(h===t&&++d===a&&(c=s),h===i&&++f===r&&(u=s),null!==(o=p.nextSibling))break;h=(p=h).parentNode}p=o}t=-1===c||-1===u?null:{start:c,end:u}}else t=null}t=t||{start:0,end:0}}else t=null;for(cd={focusedElem:e,selectionRange:t},ur=!1,li=n;null!==li;)if(e=(n=li).child,0!=(1024&n.subtreeFlags)&&null!==e)e.return=n,li=e;else for(;null!==li;){switch(i=(n=li).alternate,e=n.flags,n.tag){case 0:case 11:case 15:case 5:case 26:case 27:case 6:case 4:case 17:break;case 1:if(0!=(1024&e)&&null!==i){e=void 0,t=n,a=i.memoizedProps,i=i.memoizedState,r=t.stateNode;try{var g=ic(t.type,a);e=r.getSnapshotBeforeUpdate(g,i),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){sP(t,t.return,e)}}break;case 3:if(0!=(1024&e)){if(9===(t=(e=n.stateNode.containerInfo).nodeType))cO(e);else if(1===t)switch(e.nodeName){case\"HEAD\":case\"HTML\":case\"BODY\":cO(e);break;default:e.textContent=\"\"}}break;default:if(0!=(1024&e))throw Error(l(163))}if(null!==(e=n.sibling)){e.return=n.return,li=e;break}li=n.return}}(e,n,t)}finally{lR=i,T.p=o,L.T=r}}l4=1,sk(),sA(),sO()}}function sk(){if(1===l4){l4=0;var e=l5,n=l3,t=0!=(13878&n.flags);if(0!=(13878&n.subtreeFlags)||t){t=L.T,L.T=null;var r=T.p;T.p=2;var o=lR;lR|=4;try{lv(n,e);var a=cd,i=t_(e.containerInfo),l=a.focusedElem,s=a.selectionRange;if(i!==l&&l&&l.ownerDocument&&function e(n,t){return!!n&&!!t&&(n===t||(!n||3!==n.nodeType)&&(t&&3===t.nodeType?e(n,t.parentNode):\"contains\"in n?n.contains(t):!!n.compareDocumentPosition&&!!(16&n.compareDocumentPosition(t))))}(l.ownerDocument.documentElement,l)){if(null!==s&&tP(l)){var c=s.start,u=s.end;if(void 0===u&&(u=c),\"selectionStart\"in l)l.selectionStart=c,l.selectionEnd=Math.min(u,l.value.length);else{var d=l.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),h=l.textContent.length,g=Math.min(s.start,h),m=void 0===s.end?g:Math.min(s.end,h);!p.extend&&g>m&&(i=m,m=g,g=i);var v=tE(l,g),b=tE(l,m);if(v&&b&&(1!==p.rangeCount||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==b.node||p.focusOffset!==b.offset)){var y=d.createRange();y.setStart(v.node,v.offset),p.removeAllRanges(),g>m?(p.addRange(y),p.extend(b.node,b.offset)):(y.setEnd(b.node,b.offset),p.addRange(y))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(\"function\"==typeof l.focus&&l.focus(),l=0;l<d.length;l++){var x=d[l];x.element.scrollLeft=x.left,x.element.scrollTop=x.top}}ur=!!cu,cd=cu=null}finally{lR=o,T.p=r,L.T=t}}e.current=n,l4=2}}function sA(){if(2===l4){l4=0;var e=l5,n=l3,t=0!=(8772&n.flags);if(0!=(8772&n.subtreeFlags)||t){t=L.T,L.T=null;var r=T.p;T.p=2;var o=lR;lR|=4;try{ll(e,n.alternate,n)}finally{lR=o,T.p=r,L.T=t}}l4=3}}function sO(){if(4===l4||3===l4){l4=0,et();var e=l5,n=l3,t=l6,r=l7;0!=(10256&n.subtreeFlags)||0!=(10256&n.flags)?l4=5:(l4=0,l3=l5=null,sC(e,e.pendingLanes));var o=e.pendingLanes;if(0===o&&(l2=null),ez(t),n=n.stateNode,ep&&\"function\"==typeof ep.onCommitFiberRoot)try{ep.onCommitFiberRoot(ef,n,void 0,128==(128&n.current.flags))}catch(e){}if(null!==r){n=L.T,o=T.p,T.p=2,L.T=null;try{for(var a=e.onRecoverableError,i=0;i<r.length;i++){var l=r[i];a(l.value,{componentStack:l.stack})}}finally{L.T=n,T.p=o}}0!=(3&l6)&&sS(),sU(e),o=e.pendingLanes,0!=(4194090&t)&&0!=(42&o)?e===sn?se++:(se=0,sn=e):se=0,sV(0,!1)}}function sC(e,n){0==(e.pooledCacheLanes&=n)&&null!=(n=e.pooledCache)&&(e.pooledCache=null,r2(n))}function sS(e){return sk(),sA(),sO(),sE(e)}function sE(){if(5!==l4)return!1;var e=l5,n=l9;l9=0;var t=ez(l6),r=L.T,o=T.p;try{T.p=32>t?32:t,L.T=null,t=l8,l8=null;var a=l5,i=l6;if(l4=0,l3=l5=null,l6=0,0!=(6&lR))throw Error(l(331));var s=lR;if(lR|=4,lP(a.current),lk(a,a.current,i,t),lR=s,sV(0,!1),ep&&\"function\"==typeof ep.onPostCommitFiberRoot)try{ep.onPostCommitFiberRoot(ef,a)}catch(e){}return!0}finally{T.p=o,L.T=r,sC(e,n)}}function s_(e,n,t){n=ru(t,n),n=im(e.stateNode,n,2),null!==(e=oO(e,n,2))&&(eC(e,2),sU(e))}function sP(e,n,t){if(3===e.tag)s_(e,e,t);else for(;null!==n;){if(3===n.tag){s_(n,e,t);break}if(1===n.tag){var r=n.stateNode;if(\"function\"==typeof n.type.getDerivedStateFromError||\"function\"==typeof r.componentDidCatch&&(null===l2||!l2.has(r))){e=ru(t,e),null!==(r=oO(n,t=iv(2),2))&&(ib(t,r,n,e),eC(r,2),sU(r));break}}n=n.return}}function sz(e,n,t){var r=e.pingCache;if(null===r){r=e.pingCache=new lT;var o=new Set;r.set(n,o)}else void 0===(o=r.get(n))&&(o=new Set,r.set(n,o));o.has(t)||(lU=!0,o.add(t),e=sL.bind(null,e,n,t),n.then(e,e))}function sL(e,n,t){var r=e.pingCache;null!==r&&r.delete(n),e.pingedLanes|=e.suspendedLanes&t,e.warmLanes&=~t,lN===e&&(lB&t)===t&&(4===lq||3===lq&&(0x3c00000&lB)===lB&&300>er()-lJ?0==(2&lR)&&su(e,0):lZ|=t,lX===lB&&(lX=0)),sU(e)}function sT(e,n){0===n&&(n=eA()),null!==(e=t3(e,n))&&(eC(e,n),sU(e))}function sR(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),sT(e,t)}function sN(e,n){var t=0;switch(e.tag){case 31:case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(t=o.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(l(314))}null!==r&&r.delete(n),sT(e,t)}var sD=null,sB=null,sM=!1,sI=!1,sH=!1,sF=0;function sU(e){e!==sB&&null===e.next&&(null===sB?sD=sB=e:sB=sB.next=e),sI=!0,sM||(sM=!0,cx(function(){0!=(6&lR)?J(ea,sq):sW()}))}function sV(e,n){if(!sH&&sI){sH=!0;do for(var t=!1,r=sD;null!==r;){if(!n)if(0!==e){var o=r.pendingLanes;if(0===o)var a=0;else{var i=r.suspendedLanes,l=r.pingedLanes;a=0xc000095&(a=(1<<31-eg(42|e)+1)-1&(o&~(i&~l)))?0xc000095&a|1:a?2|a:0}0!==a&&(t=!0,sY(r,a))}else a=lB,0==(3&(a=ew(r,r===lN?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||ej(r,a)||(t=!0,sY(r,a));r=r.next}while(t);sH=!1}}function sq(){sW()}function sW(){sI=sM=!1;var e,n=0;0===sF||((e=window.event)&&\"popstate\"===e.type?e===cm||(cm=e,0):(cm=null,1))||(n=sF);for(var t=er(),r=null,o=sD;null!==o;){var a=o.next,i=s$(o,t);0===i?(o.next=null,null===r?sD=a:r.next=a,null===a&&(sB=r)):(r=o,(0!==n||0!=(3&i))&&(sI=!0)),o=a}0!==l4&&5!==l4||sV(n,!1),0!==sF&&(sF=0)}function s$(e,n){for(var t=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0<a;){var i=31-eg(a),l=1<<i,s=o[i];-1===s?(0==(l&t)||0!=(l&r))&&(o[i]=function(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;default:return -1}}(l,n)):s<=n&&(e.expiredLanes|=l),a&=~l}if(n=lN,t=lB,t=ew(e,e===n?t:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle),r=e.callbackNode,0===t||e===n&&(2===lM||9===lM)||null!==e.cancelPendingCommit)return null!==r&&null!==r&&ee(r),e.callbackNode=null,e.callbackPriority=0;if(0==(3&t)||ej(e,t)){if((n=t&-t)===e.callbackPriority)return n;switch(null!==r&&ee(r),ez(t)){case 2:case 8:t=ei;break;case 32:default:t=el;break;case 0x10000000:t=ec}return t=J(t,r=sZ.bind(null,e)),e.callbackPriority=n,e.callbackNode=t,n}return null!==r&&null!==r&&ee(r),e.callbackPriority=2,e.callbackNode=null,2}function sZ(e,n){if(0!==l4&&5!==l4)return e.callbackNode=null,e.callbackPriority=0,null;var t=e.callbackNode;if(sS(!0)&&e.callbackNode!==t)return null;var r=lB;return 0===(r=ew(e,e===lN?r:0,null!==e.cancelPendingCommit||-1!==e.timeoutHandle))?null:(sa(e,r,n),s$(e,er()),null!=e.callbackNode&&e.callbackNode===t?sZ.bind(null,e):null)}function sY(e,n){if(sS())return null;sa(e,n,!0)}function sX(){if(0===sF){var e=r3;sF=0!==e?e:ek()}return sF}function sK(e){return null==e||\"symbol\"==typeof e||\"boolean\"==typeof e?null:\"function\"==typeof e?e:ng(\"\"+e)}function sQ(e,n){var t=n.ownerDocument.createElement(\"input\");return t.name=n.name,t.value=n.value,e.id&&t.setAttribute(\"form\",e.id),n.parentNode.insertBefore(t,n),e=new FormData(e),t.parentNode.removeChild(t),e}for(var sG=0;sG<tK.length;sG++){var sJ=tK[sG];tQ(sJ.toLowerCase(),\"on\"+(sJ[0].toUpperCase()+sJ.slice(1)))}tQ(tU,\"onAnimationEnd\"),tQ(tV,\"onAnimationIteration\"),tQ(tq,\"onAnimationStart\"),tQ(\"dblclick\",\"onDoubleClick\"),tQ(\"focusin\",\"onFocus\"),tQ(\"focusout\",\"onBlur\"),tQ(tW,\"onTransitionRun\"),tQ(t$,\"onTransitionStart\"),tQ(tZ,\"onTransitionCancel\"),tQ(tY,\"onTransitionEnd\"),eG(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]),eG(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]),eG(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]),eG(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]),eQ(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \")),eQ(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \")),eQ(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]),eQ(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \")),eQ(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")),eQ(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var s0=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),s1=new Set(\"beforetoggle cancel close invalid load scroll scrollend toggle\".split(\" \").concat(s0));function s2(e,n){n=0!=(4&n);for(var t=0;t<e.length;t++){var r=e[t],o=r.event;r=r.listeners;e:{var a=void 0;if(n)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,c=l.currentTarget;if(l=l.listener,s!==a&&o.isPropagationStopped())break e;a=l,o.currentTarget=c;try{a(o)}catch(e){tG(e)}o.currentTarget=null,a=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,c=l.currentTarget,l=l.listener,s!==a&&o.isPropagationStopped())break e;a=l,o.currentTarget=c;try{a(o)}catch(e){tG(e)}o.currentTarget=null,a=s}}}}function s4(e,n){var t=n[eM];void 0===t&&(t=n[eM]=new Set);var r=e+\"__bubble\";t.has(r)||(s9(n,e,2,!1),t.add(r))}function s5(e,n,t){var r=0;n&&(r|=4),s9(t,e,r,n)}var s3=\"_reactListening\"+Math.random().toString(36).slice(2);function s6(e){if(!e[s3]){e[s3]=!0,eX.forEach(function(n){\"selectionchange\"!==n&&(s1.has(n)||s5(n,!1,e),s5(n,!0,e))});var n=9===e.nodeType?e:e.ownerDocument;null===n||n[s3]||(n[s3]=!0,s5(\"selectionchange\",!1,n))}}function s9(e,n,t,r){switch(uu(n)){case 2:var o=uo;break;case 8:o=ua;break;default:o=ui}t=o.bind(null,n,t,e),o=void 0,nC&&(\"touchstart\"===n||\"touchmove\"===n||\"wheel\"===n)&&(o=!0),r?void 0!==o?e.addEventListener(n,t,{capture:!0,passive:o}):e.addEventListener(n,t,!0):void 0!==o?e.addEventListener(n,t,{passive:o}):e.addEventListener(n,t,!1)}function s8(e,n,t,r,o){var a=r;if(0==(1&n)&&0==(2&n)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o)break;if(4===i)for(i=r.return;null!==i;){var c=i.tag;if((3===c||4===c)&&i.stateNode.containerInfo===o)return;i=i.return}for(;null!==l;){if(null===(i=eq(l)))return;if(5===(c=i.tag)||6===c||26===c||27===c){r=a=i;continue e}l=l.parentNode}}r=r.return}nk(function(){var r=a,o=nb(t),i=[];e:{var l=tX.get(e);if(void 0!==l){var c=nU,u=e;switch(e){case\"keypress\":if(0===nL(t))break e;case\"keydown\":case\"keyup\":c=n4;break;case\"focusin\":u=\"focus\",c=nY;break;case\"focusout\":u=\"blur\",c=nY;break;case\"beforeblur\":case\"afterblur\":c=nY;break;case\"click\":if(2===t.button)break e;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":c=n$;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":c=nZ;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":c=n3;break;case tU:case tV:case tq:c=nX;break;case tY:c=n6;break;case\"scroll\":case\"scrollend\":c=nq;break;case\"wheel\":c=n9;break;case\"copy\":case\"cut\":case\"paste\":c=nK;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":c=n5;break;case\"toggle\":case\"beforetoggle\":c=n8}var d=0!=(4&n),f=!d&&(\"scroll\"===e||\"scrollend\"===e),p=d?null!==l?l+\"Capture\":null:l;d=[];for(var h,g=r;null!==g;){var m=g;if(h=m.stateNode,5!==(m=m.tag)&&26!==m&&27!==m||null===h||null===p||null!=(m=nA(g,p))&&d.push(s7(g,m,h)),f)break;g=g.return}0<d.length&&(l=new c(l,u,null,t,o),i.push({event:l,listeners:d}))}}if(0==(7&n)){if((l=\"mouseover\"===e||\"pointerover\"===e,c=\"mouseout\"===e||\"pointerout\"===e,!(l&&t!==nv&&(u=t.relatedTarget||t.fromElement)&&(eq(u)||u[eB])))&&(c||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,c?(u=t.relatedTarget||t.toElement,c=r,null!==(u=u?eq(u):null)&&(f=s(u),d=u.tag,u!==f||5!==d&&27!==d&&6!==d)&&(u=null)):(c=null,u=r),c!==u)){if(d=n$,m=\"onMouseLeave\",p=\"onMouseEnter\",g=\"mouse\",(\"pointerout\"===e||\"pointerover\"===e)&&(d=n5,m=\"onPointerLeave\",p=\"onPointerEnter\",g=\"pointer\"),f=null==c?l:e$(c),h=null==u?l:e$(u),(l=new d(m,g+\"leave\",c,t,o)).target=f,l.relatedTarget=h,m=null,eq(o)===r&&((d=new d(p,g+\"enter\",u,t,o)).target=h,d.relatedTarget=f,m=d),f=m,c&&u)n:{for(d=cn,p=c,g=u,h=0,m=p;m;m=d(m))h++;m=0;for(var v,b=g;b;b=d(b))m++;for(;0<h-m;)p=d(p),h--;for(;0<m-h;)g=d(g),m--;for(;h--;){if(p===g||null!==g&&p===g.alternate){d=p;break n}p=d(p),g=d(g)}d=null}else d=null;null!==c&&ct(i,l,c,d,!1),null!==u&&null!==f&&ct(i,f,u,d,!0)}e:{if(\"select\"===(c=(l=r?e$(r):window).nodeName&&l.nodeName.toLowerCase())||\"input\"===c&&\"file\"===l.type)var y=tg;else if(tc(l))if(tm)y=tA;else{y=tj;var x=tw}else(c=l.nodeName)&&\"input\"===c.toLowerCase()&&(\"checkbox\"===l.type||\"radio\"===l.type)?y=tk:r&&nf(r.elementType)&&(y=tg);if(y&&(y=y(e,r))){tu(i,y,t,o);break e}x&&x(e,l,r),\"focusout\"===e&&r&&\"number\"===l.type&&null!=r.memoizedProps.value&&no(l,\"number\",l.value)}switch(x=r?e$(r):window,e){case\"focusin\":(tc(x)||\"true\"===x.contentEditable)&&(tL=x,tT=r,tR=null);break;case\"focusout\":tR=tT=tL=null;break;case\"mousedown\":tN=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":tN=!1,tD(i,t,o);break;case\"selectionchange\":if(tz)break;case\"keydown\":case\"keyup\":tD(i,t,o)}if(te)n:{switch(e){case\"compositionstart\":var w=\"onCompositionStart\";break n;case\"compositionend\":w=\"onCompositionEnd\";break n;case\"compositionupdate\":w=\"onCompositionUpdate\";break n}w=void 0}else tl?ta(e,t)&&(w=\"onCompositionEnd\"):\"keydown\"===e&&229===t.keyCode&&(w=\"onCompositionStart\");w&&(tr&&\"ko\"!==t.locale&&(tl||\"onCompositionStart\"!==w?\"onCompositionEnd\"===w&&tl&&(v=nz()):(n_=\"value\"in(nE=o)?nE.value:nE.textContent,tl=!0)),0<(x=ce(r,w)).length&&(w=new nQ(w,e,null,t,o),i.push({event:w,listeners:x}),v?w.data=v:null!==(v=ti(t))&&(w.data=v))),(v=tt?function(e,n){switch(e){case\"compositionend\":return ti(n);case\"keypress\":if(32!==n.which)return null;return to=!0,\" \";case\"textInput\":return\" \"===(e=n.data)&&to?null:e;default:return null}}(e,t):function(e,n){if(tl)return\"compositionend\"===e||!te&&ta(e,n)?(e=nz(),nP=n_=nE=null,tl=!1,e):null;switch(e){case\"paste\":default:return null;case\"keypress\":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case\"compositionend\":return tr&&\"ko\"!==n.locale?null:n.data}}(e,t))&&0<(w=ce(r,\"onBeforeInput\")).length&&(x=new nQ(\"onBeforeInput\",\"beforeinput\",null,t,o),i.push({event:x,listeners:w}),x.data=v);var j=e;if(\"submit\"===j&&r&&r.stateNode===o){var k=sK((o[eD]||null).action),A=t.submitter;A&&null!==(j=(j=A[eD]||null)?sK(j.formAction):A.getAttribute(\"formAction\"))&&(k=j,A=null);var O=new nU(\"action\",\"action\",null,t,o);i.push({event:O,listeners:[{instance:null,listener:function(){if(t.defaultPrevented){if(0!==sF){var e=A?sQ(o,A):new FormData(o);aK(r,{pending:!0,data:e,method:o.method,action:k},null,e)}}else\"function\"==typeof k&&(O.preventDefault(),aK(r,{pending:!0,data:e=A?sQ(o,A):new FormData(o),method:o.method,action:k},k,e))},currentTarget:o}]})}}s2(i,n)})}function s7(e,n,t){return{instance:e,listener:n,currentTarget:t}}function ce(e,n){for(var t=n+\"Capture\",r=[];null!==e;){var o=e,a=o.stateNode;if(5!==(o=o.tag)&&26!==o&&27!==o||null===a||(null!=(o=nA(e,t))&&r.unshift(s7(e,o,a)),null!=(o=nA(e,n))&&r.push(s7(e,o,a))),3===e.tag)return r;e=e.return}return[]}function cn(e){if(null===e)return null;do e=e.return;while(e&&5!==e.tag&&27!==e.tag);return e||null}function ct(e,n,t,r,o){for(var a=n._reactName,i=[];null!==t&&t!==r;){var l=t,s=l.alternate,c=l.stateNode;if(l=l.tag,null!==s&&s===r)break;5!==l&&26!==l&&27!==l||null===c||(s=c,o?null!=(c=nA(t,a))&&i.unshift(s7(t,c,s)):o||null!=(c=nA(t,a))&&i.push(s7(t,c,s))),t=t.return}0!==i.length&&e.push({event:n,listeners:i})}var cr=/\\r\\n?/g,co=/\\u0000|\\uFFFD/g;function ca(e){return(\"string\"==typeof e?e:\"\"+e).replace(cr,\"\\n\").replace(co,\"\")}function ci(e,n){return n=ca(n),ca(e)===n}function cl(e,n,t,r,o,a){switch(t){case\"children\":\"string\"==typeof r?\"body\"===n||\"textarea\"===n&&\"\"===r||ns(e,r):(\"number\"==typeof r||\"bigint\"==typeof r)&&\"body\"!==n&&ns(e,\"\"+r);break;case\"className\":e4(e,\"class\",r);break;case\"tabIndex\":e4(e,\"tabindex\",r);break;case\"dir\":case\"role\":case\"viewBox\":case\"width\":case\"height\":e4(e,t,r);break;case\"style\":nd(e,r,a);break;case\"data\":if(\"object\"!==n){e4(e,\"data\",r);break}case\"src\":case\"href\":if(\"\"===r&&(\"a\"!==n||\"href\"!==t)||null==r||\"function\"==typeof r||\"symbol\"==typeof r||\"boolean\"==typeof r){e.removeAttribute(t);break}r=ng(\"\"+r),e.setAttribute(t,r);break;case\"action\":case\"formAction\":if(\"function\"==typeof r){e.setAttribute(t,\"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\");break}if(\"function\"==typeof a&&(\"formAction\"===t?(\"input\"!==n&&cl(e,n,\"name\",o.name,o,null),cl(e,n,\"formEncType\",o.formEncType,o,null),cl(e,n,\"formMethod\",o.formMethod,o,null),cl(e,n,\"formTarget\",o.formTarget,o,null)):(cl(e,n,\"encType\",o.encType,o,null),cl(e,n,\"method\",o.method,o,null),cl(e,n,\"target\",o.target,o,null))),null==r||\"symbol\"==typeof r||\"boolean\"==typeof r){e.removeAttribute(t);break}r=ng(\"\"+r),e.setAttribute(t,r);break;case\"onClick\":null!=r&&(e.onclick=nm);break;case\"onScroll\":null!=r&&s4(\"scroll\",e);break;case\"onScrollEnd\":null!=r&&s4(\"scrollend\",e);break;case\"dangerouslySetInnerHTML\":if(null!=r){if(\"object\"!=typeof r||!(\"__html\"in r))throw Error(l(61));if(null!=(t=r.__html)){if(null!=o.children)throw Error(l(60));e.innerHTML=t}}break;case\"multiple\":e.multiple=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r;break;case\"muted\":e.muted=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r;break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"ref\":case\"autoFocus\":case\"innerText\":case\"textContent\":break;case\"xlinkHref\":if(null==r||\"function\"==typeof r||\"boolean\"==typeof r||\"symbol\"==typeof r){e.removeAttribute(\"xlink:href\");break}t=ng(\"\"+r),e.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",t);break;case\"contentEditable\":case\"spellCheck\":case\"draggable\":case\"value\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(t,\"\"+r):e.removeAttribute(t);break;case\"inert\":case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(t,\"\"):e.removeAttribute(t);break;case\"capture\":case\"download\":!0===r?e.setAttribute(t,\"\"):!1!==r&&null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r?e.setAttribute(t,r):e.removeAttribute(t);break;case\"cols\":case\"rows\":case\"size\":case\"span\":null!=r&&\"function\"!=typeof r&&\"symbol\"!=typeof r&&!isNaN(r)&&1<=r?e.setAttribute(t,r):e.removeAttribute(t);break;case\"rowSpan\":case\"start\":null==r||\"function\"==typeof r||\"symbol\"==typeof r||isNaN(r)?e.removeAttribute(t):e.setAttribute(t,r);break;case\"popover\":s4(\"beforetoggle\",e),s4(\"toggle\",e),e2(e,\"popover\",r);break;case\"xlinkActuate\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:actuate\",r);break;case\"xlinkArcrole\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:arcrole\",r);break;case\"xlinkRole\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:role\",r);break;case\"xlinkShow\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:show\",r);break;case\"xlinkTitle\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:title\",r);break;case\"xlinkType\":e5(e,\"http://www.w3.org/1999/xlink\",\"xlink:type\",r);break;case\"xmlBase\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:base\",r);break;case\"xmlLang\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:lang\",r);break;case\"xmlSpace\":e5(e,\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",r);break;case\"is\":e2(e,\"is\",r);break;default:2<t.length&&(\"o\"===t[0]||\"O\"===t[0])&&(\"n\"===t[1]||\"N\"===t[1])||e2(e,t=np.get(t)||t,r)}}function cs(e,n,t,r,o,a){switch(t){case\"style\":nd(e,r,a);break;case\"dangerouslySetInnerHTML\":if(null!=r){if(\"object\"!=typeof r||!(\"__html\"in r))throw Error(l(61));if(null!=(t=r.__html)){if(null!=o.children)throw Error(l(60));e.innerHTML=t}}break;case\"children\":\"string\"==typeof r?ns(e,r):(\"number\"==typeof r||\"bigint\"==typeof r)&&ns(e,\"\"+r);break;case\"onScroll\":null!=r&&s4(\"scroll\",e);break;case\"onScrollEnd\":null!=r&&s4(\"scrollend\",e);break;case\"onClick\":null!=r&&(e.onclick=nm);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"innerHTML\":case\"ref\":case\"innerText\":case\"textContent\":break;default:if(!eK.hasOwnProperty(t))e:{if(\"o\"===t[0]&&\"n\"===t[1]&&(o=t.endsWith(\"Capture\"),n=t.slice(2,o?t.length-7:void 0),\"function\"==typeof(a=null!=(a=e[eD]||null)?a[t]:null)&&e.removeEventListener(n,a,o),\"function\"==typeof r)){\"function\"!=typeof a&&null!==a&&(t in e?e[t]=null:e.hasAttribute(t)&&e.removeAttribute(t)),e.addEventListener(n,r,o);break e}t in e?e[t]=r:!0===r?e.setAttribute(t,\"\"):e2(e,t,r)}}}function cc(e,n,t){switch(n){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"img\":s4(\"error\",e),s4(\"load\",e);var r,o=!1,a=!1;for(r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)switch(r){case\"src\":o=!0;break;case\"srcSet\":a=!0;break;case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l(137,n));default:cl(e,n,r,i,t,null)}}a&&cl(e,n,\"srcSet\",t.srcSet,t,null),o&&cl(e,n,\"src\",t.src,t,null);return;case\"input\":s4(\"invalid\",e);var s=r=i=a=null,c=null,u=null;for(o in t)if(t.hasOwnProperty(o)){var d=t[o];if(null!=d)switch(o){case\"name\":a=d;break;case\"type\":i=d;break;case\"checked\":c=d;break;case\"defaultChecked\":u=d;break;case\"value\":r=d;break;case\"defaultValue\":s=d;break;case\"children\":case\"dangerouslySetInnerHTML\":if(null!=d)throw Error(l(137,n));break;default:cl(e,n,o,d,t,null)}}nr(e,r,s,c,u,i,a,!1);return;case\"select\":for(a in s4(\"invalid\",e),o=i=r=null,t)if(t.hasOwnProperty(a)&&null!=(s=t[a]))switch(a){case\"value\":r=s;break;case\"defaultValue\":i=s;break;case\"multiple\":o=s;default:cl(e,n,a,s,t,null)}n=r,t=i,e.multiple=!!o,null!=n?na(e,!!o,n,!1):null!=t&&na(e,!!o,t,!0);return;case\"textarea\":for(i in s4(\"invalid\",e),r=a=o=null,t)if(t.hasOwnProperty(i)&&null!=(s=t[i]))switch(i){case\"value\":o=s;break;case\"defaultValue\":a=s;break;case\"children\":r=s;break;case\"dangerouslySetInnerHTML\":if(null!=s)throw Error(l(91));break;default:cl(e,n,i,s,t,null)}nl(e,o,a,r);return;case\"option\":for(c in t)t.hasOwnProperty(c)&&null!=(o=t[c])&&(\"selected\"===c?e.selected=o&&\"function\"!=typeof o&&\"symbol\"!=typeof o:cl(e,n,c,o,t,null));return;case\"dialog\":s4(\"beforetoggle\",e),s4(\"toggle\",e),s4(\"cancel\",e),s4(\"close\",e);break;case\"iframe\":case\"object\":s4(\"load\",e);break;case\"video\":case\"audio\":for(o=0;o<s0.length;o++)s4(s0[o],e);break;case\"image\":s4(\"error\",e),s4(\"load\",e);break;case\"details\":s4(\"toggle\",e);break;case\"embed\":case\"source\":case\"link\":s4(\"error\",e),s4(\"load\",e);case\"area\":case\"base\":case\"br\":case\"col\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"track\":case\"wbr\":case\"menuitem\":for(u in t)if(t.hasOwnProperty(u)&&null!=(o=t[u]))switch(u){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(l(137,n));default:cl(e,n,u,o,t,null)}return;default:if(nf(n)){for(d in t)t.hasOwnProperty(d)&&void 0!==(o=t[d])&&cs(e,n,d,o,t,void 0);return}}for(s in t)t.hasOwnProperty(s)&&null!=(o=t[s])&&cl(e,n,s,o,t,null)}var cu=null,cd=null;function cf(e){return 9===e.nodeType?e:e.ownerDocument}function cp(e){switch(e){case\"http://www.w3.org/2000/svg\":return 1;case\"http://www.w3.org/1998/Math/MathML\":return 2;default:return 0}}function ch(e,n){if(0===e)switch(n){case\"svg\":return 1;case\"math\":return 2;default:return 0}return 1===e&&\"foreignObject\"===n?0:e}function cg(e,n){return\"textarea\"===e||\"noscript\"===e||\"string\"==typeof n.children||\"number\"==typeof n.children||\"bigint\"==typeof n.children||\"object\"==typeof n.dangerouslySetInnerHTML&&null!==n.dangerouslySetInnerHTML&&null!=n.dangerouslySetInnerHTML.__html}var cm=null,cv=\"function\"==typeof setTimeout?setTimeout:void 0,cb=\"function\"==typeof clearTimeout?clearTimeout:void 0,cy=\"function\"==typeof Promise?Promise:void 0,cx=\"function\"==typeof queueMicrotask?queueMicrotask:void 0!==cy?function(e){return cy.resolve(null).then(e).catch(cw)}:cv;function cw(e){setTimeout(function(){throw e})}function cj(e){return\"head\"===e}function ck(e,n){var t=n,r=0;do{var o=t.nextSibling;if(e.removeChild(t),o&&8===o.nodeType)if(\"/$\"===(t=o.data)||\"/&\"===t){if(0===r){e.removeChild(o),uE(n);return}r--}else if(\"$\"===t||\"$?\"===t||\"$~\"===t||\"$!\"===t||\"&\"===t)r++;else if(\"html\"===t)cR(e.ownerDocument.documentElement);else if(\"head\"===t){cR(t=e.ownerDocument.head);for(var a=t.firstChild;a;){var i=a.nextSibling,l=a.nodeName;a[eU]||\"SCRIPT\"===l||\"STYLE\"===l||\"LINK\"===l&&\"stylesheet\"===a.rel.toLowerCase()||t.removeChild(a),a=i}}else\"body\"===t&&cR(e.ownerDocument.body);t=o}while(t);uE(n)}function cA(e,n){var t=e;e=0;do{var r=t.nextSibling;if(1===t.nodeType?n?(t._stashedDisplay=t.style.display,t.style.display=\"none\"):(t.style.display=t._stashedDisplay||\"\",\"\"===t.getAttribute(\"style\")&&t.removeAttribute(\"style\")):3===t.nodeType&&(n?(t._stashedText=t.nodeValue,t.nodeValue=\"\"):t.nodeValue=t._stashedText||\"\"),r&&8===r.nodeType)if(\"/$\"===(t=r.data))if(0===e)break;else e--;else\"$\"!==t&&\"$?\"!==t&&\"$~\"!==t&&\"$!\"!==t||e++;t=r}while(t)}function cO(e){var n=e.firstChild;for(n&&10===n.nodeType&&(n=n.nextSibling);n;){var t=n;switch(n=n.nextSibling,t.nodeName){case\"HTML\":case\"HEAD\":case\"BODY\":cO(t),eV(t);continue;case\"SCRIPT\":case\"STYLE\":continue;case\"LINK\":if(\"stylesheet\"===t.rel.toLowerCase())continue}e.removeChild(t)}}function cC(e,n){for(;8!==e.nodeType;)if(!n||null===(e=c_(e.nextSibling)))return null;return e}function cS(e){return\"$?\"===e.data||\"$~\"===e.data}function cE(e){return\"$!\"===e.data||\"$?\"===e.data&&\"loading\"!==e.ownerDocument.readyState}function c_(e){for(;null!=e;e=e.nextSibling){var n=e.nodeType;if(1===n||3===n)break;if(8===n){if(\"$\"===(n=e.data)||\"$!\"===n||\"$?\"===n||\"$~\"===n||\"&\"===n||\"F!\"===n||\"F\"===n)break;if(\"/$\"===n||\"/&\"===n)return null}}return e}var cP=null;function cz(e){e=e.nextSibling;for(var n=0;e;){if(8===e.nodeType){var t=e.data;if(\"/$\"===t||\"/&\"===t){if(0===n)return c_(e.nextSibling);n--}else\"$\"!==t&&\"$!\"!==t&&\"$?\"!==t&&\"$~\"!==t&&\"&\"!==t||n++}e=e.nextSibling}return null}function cL(e){e=e.previousSibling;for(var n=0;e;){if(8===e.nodeType){var t=e.data;if(\"$\"===t||\"$!\"===t||\"$?\"===t||\"$~\"===t||\"&\"===t){if(0===n)return e;n--}else\"/$\"!==t&&\"/&\"!==t||n++}e=e.previousSibling}return null}function cT(e,n,t){switch(n=cf(t),e){case\"html\":if(!(e=n.documentElement))throw Error(l(452));return e;case\"head\":if(!(e=n.head))throw Error(l(453));return e;case\"body\":if(!(e=n.body))throw Error(l(454));return e;default:throw Error(l(451))}}function cR(e){for(var n=e.attributes;n.length;)e.removeAttributeNode(n[0]);eV(e)}var cN=new Map,cD=new Set;function cB(e){return\"function\"==typeof e.getRootNode?e.getRootNode():9===e.nodeType?e:e.ownerDocument}var cM=T.d;T.d={f:function(){var e=cM.f(),n=ss();return e||n},r:function(e){var n=eW(e);null!==n&&5===n.tag&&\"form\"===n.type?aG(n):cM.r(e)},D:function(e){cM.D(e),cH(\"dns-prefetch\",e,null)},C:function(e,n){cM.C(e,n),cH(\"preconnect\",e,n)},L:function(e,n,t){if(cM.L(e,n,t),cI&&e&&n){var r='link[rel=\"preload\"][as=\"'+nn(n)+'\"]';\"image\"===n&&t&&t.imageSrcSet?(r+='[imagesrcset=\"'+nn(t.imageSrcSet)+'\"]',\"string\"==typeof t.imageSizes&&(r+='[imagesizes=\"'+nn(t.imageSizes)+'\"]')):r+='[href=\"'+nn(e)+'\"]';var o=r;switch(n){case\"style\":o=cU(e);break;case\"script\":o=cW(e)}cN.has(o)||(e=f({rel:\"preload\",href:\"image\"===n&&t&&t.imageSrcSet?void 0:e,as:n},t),cN.set(o,e),null!==cI.querySelector(r)||\"style\"===n&&cI.querySelector(cV(o))||\"script\"===n&&cI.querySelector(c$(o))||(cc(n=cI.createElement(\"link\"),\"link\",e),eY(n),cI.head.appendChild(n)))}},m:function(e,n){if(cM.m(e,n),cI&&e){var t=n&&\"string\"==typeof n.as?n.as:\"script\",r='link[rel=\"modulepreload\"][as=\"'+nn(t)+'\"][href=\"'+nn(e)+'\"]',o=r;switch(t){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":o=cW(e)}if(!cN.has(o)&&(e=f({rel:\"modulepreload\",href:e},n),cN.set(o,e),null===cI.querySelector(r))){switch(t){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":if(cI.querySelector(c$(o)))return}cc(t=cI.createElement(\"link\"),\"link\",e),eY(t),cI.head.appendChild(t)}}},X:function(e,n){if(cM.X(e,n),cI&&e){var t=eZ(cI).hoistableScripts,r=cW(e),o=t.get(r);o||((o=cI.querySelector(c$(r)))||(e=f({src:e,async:!0},n),(n=cN.get(r))&&cK(e,n),eY(o=cI.createElement(\"script\")),cc(o,\"link\",e),cI.head.appendChild(o)),o={type:\"script\",instance:o,count:1,state:null},t.set(r,o))}},S:function(e,n,t){if(cM.S(e,n,t),cI&&e){var r=eZ(cI).hoistableStyles,o=cU(e);n=n||\"default\";var a=r.get(o);if(!a){var i={loading:0,preload:null};if(a=cI.querySelector(cV(o)))i.loading=5;else{e=f({rel:\"stylesheet\",href:e,\"data-precedence\":n},t),(t=cN.get(o))&&cX(e,t);var l=a=cI.createElement(\"link\");eY(l),cc(l,\"link\",e),l._p=new Promise(function(e,n){l.onload=e,l.onerror=n}),l.addEventListener(\"load\",function(){i.loading|=1}),l.addEventListener(\"error\",function(){i.loading|=2}),i.loading|=4,cY(a,n,cI)}a={type:\"stylesheet\",instance:a,count:1,state:i},r.set(o,a)}}},M:function(e,n){if(cM.M(e,n),cI&&e){var t=eZ(cI).hoistableScripts,r=cW(e),o=t.get(r);o||((o=cI.querySelector(c$(r)))||(e=f({src:e,async:!0,type:\"module\"},n),(n=cN.get(r))&&cK(e,n),eY(o=cI.createElement(\"script\")),cc(o,\"link\",e),cI.head.appendChild(o)),o={type:\"script\",instance:o,count:1,state:null},t.set(r,o))}}};var cI=\"undefined\"==typeof document?null:document;function cH(e,n,t){if(cI&&\"string\"==typeof n&&n){var r=nn(n);r='link[rel=\"'+e+'\"][href=\"'+r+'\"]',\"string\"==typeof t&&(r+='[crossorigin=\"'+t+'\"]'),cD.has(r)||(cD.add(r),e={rel:e,crossOrigin:t,href:n},null===cI.querySelector(r)&&(cc(n=cI.createElement(\"link\"),\"link\",e),eY(n),cI.head.appendChild(n)))}}function cF(e,n,t,r){var o=(o=U.current)?cB(o):null;if(!o)throw Error(l(446));switch(e){case\"meta\":case\"title\":return null;case\"style\":return\"string\"==typeof t.precedence&&\"string\"==typeof t.href?(n=cU(t.href),(r=(t=eZ(o).hoistableStyles).get(n))||(r={type:\"style\",instance:null,count:0,state:null},t.set(n,r)),r):{type:\"void\",instance:null,count:0,state:null};case\"link\":if(\"stylesheet\"===t.rel&&\"string\"==typeof t.href&&\"string\"==typeof t.precedence){e=cU(t.href);var a,i,s,c,u=eZ(o).hoistableStyles,d=u.get(e);if(d||(o=o.ownerDocument||o,d={type:\"stylesheet\",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,d),(u=o.querySelector(cV(e)))&&!u._p&&(d.instance=u,d.state.loading=5),cN.has(e)||(t={rel:\"preload\",as:\"style\",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},cN.set(e,t),u||(a=o,i=e,s=t,c=d.state,a.querySelector('link[rel=\"preload\"][as=\"style\"]['+i+\"]\")?c.loading=1:(c.preload=i=a.createElement(\"link\"),i.addEventListener(\"load\",function(){return c.loading|=1}),i.addEventListener(\"error\",function(){return c.loading|=2}),cc(i,\"link\",s),eY(i),a.head.appendChild(i))))),n&&null===r)throw Error(l(528,\"\"));return d}if(n&&null!==r)throw Error(l(529,\"\"));return null;case\"script\":return n=t.async,\"string\"==typeof(t=t.src)&&n&&\"function\"!=typeof n&&\"symbol\"!=typeof n?(n=cW(t),(r=(t=eZ(o).hoistableScripts).get(n))||(r={type:\"script\",instance:null,count:0,state:null},t.set(n,r)),r):{type:\"void\",instance:null,count:0,state:null};default:throw Error(l(444,e))}}function cU(e){return'href=\"'+nn(e)+'\"'}function cV(e){return'link[rel=\"stylesheet\"]['+e+\"]\"}function cq(e){return f({},e,{\"data-precedence\":e.precedence,precedence:null})}function cW(e){return'[src=\"'+nn(e)+'\"]'}function c$(e){return\"script[async]\"+e}function cZ(e,n,t){if(n.count++,null===n.instance)switch(n.type){case\"style\":var r=e.querySelector('style[data-href~=\"'+nn(t.href)+'\"]');if(r)return n.instance=r,eY(r),r;var o=f({},t,{\"data-href\":t.href,\"data-precedence\":t.precedence,href:null,precedence:null});return eY(r=(e.ownerDocument||e).createElement(\"style\")),cc(r,\"style\",o),cY(r,t.precedence,e),n.instance=r;case\"stylesheet\":o=cU(t.href);var a=e.querySelector(cV(o));if(a)return n.state.loading|=4,n.instance=a,eY(a),a;r=cq(t),(o=cN.get(o))&&cX(r,o),eY(a=(e.ownerDocument||e).createElement(\"link\"));var i=a;return i._p=new Promise(function(e,n){i.onload=e,i.onerror=n}),cc(a,\"link\",r),n.state.loading|=4,cY(a,t.precedence,e),n.instance=a;case\"script\":if(a=cW(t.src),o=e.querySelector(c$(a)))return n.instance=o,eY(o),o;return r=t,(o=cN.get(a))&&cK(r=f({},t),o),eY(o=(e=e.ownerDocument||e).createElement(\"script\")),cc(o,\"link\",r),e.head.appendChild(o),n.instance=o;case\"void\":return null;default:throw Error(l(443,n.type))}return\"stylesheet\"===n.type&&0==(4&n.state.loading)&&(r=n.instance,n.state.loading|=4,cY(r,t.precedence,e)),n.instance}function cY(e,n,t){for(var r=t.querySelectorAll('link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'),o=r.length?r[r.length-1]:null,a=o,i=0;i<r.length;i++){var l=r[i];if(l.dataset.precedence===n)a=l;else if(a!==o)break}a?a.parentNode.insertBefore(e,a.nextSibling):(n=9===t.nodeType?t.head:t).insertBefore(e,n.firstChild)}function cX(e,n){null==e.crossOrigin&&(e.crossOrigin=n.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=n.referrerPolicy),null==e.title&&(e.title=n.title)}function cK(e,n){null==e.crossOrigin&&(e.crossOrigin=n.crossOrigin),null==e.referrerPolicy&&(e.referrerPolicy=n.referrerPolicy),null==e.integrity&&(e.integrity=n.integrity)}var cQ=null;function cG(e,n,t){if(null===cQ){var r=new Map,o=cQ=new Map;o.set(t,r)}else(r=(o=cQ).get(t))||(r=new Map,o.set(t,r));if(r.has(e))return r;for(r.set(e,null),t=t.getElementsByTagName(e),o=0;o<t.length;o++){var a=t[o];if(!(a[eU]||a[eN]||\"link\"===e&&\"stylesheet\"===a.getAttribute(\"rel\"))&&\"http://www.w3.org/2000/svg\"!==a.namespaceURI){var i=a.getAttribute(n)||\"\";i=e+i;var l=r.get(i);l?l.push(a):r.set(i,[a])}}return r}function cJ(e,n,t){(e=e.ownerDocument||e).head.insertBefore(t,\"title\"===n?e.querySelector(\"head > title\"):null)}function c0(e){return\"stylesheet\"!==e.type||0!=(3&e.state.loading)}var c1=null;function c2(){if(this.count--,0===this.count){if(this.stylesheets)c5(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var c4=null;function c5(e,n){e.stylesheets=null,null!==e.unsuspend&&(e.count++,c4=new Map,n.forEach(c3,e),c4=null,c2.call(e))}function c3(e,n){if(!(4&n.state.loading)){var t=c4.get(e);if(t)var r=t.get(null);else{t=new Map,c4.set(e,t);for(var o=e.querySelectorAll(\"link[data-precedence],style[data-precedence]\"),a=0;a<o.length;a++){var i=o[a];(\"LINK\"===i.nodeName||\"not all\"!==i.getAttribute(\"media\"))&&(t.set(i.dataset.precedence,i),r=i)}r&&t.set(null,r)}i=(o=n.instance).getAttribute(\"data-precedence\"),(a=t.get(i)||r)===r&&t.set(null,o),t.set(i,o),this.count++,r=c2.bind(this),o.addEventListener(\"load\",r),o.addEventListener(\"error\",r),a?a.parentNode.insertBefore(o,a.nextSibling):(e=9===e.nodeType?e.head:e).insertBefore(o,e.firstChild),n.state.loading|=4}}var c6={$$typeof:x,Provider:null,Consumer:null,_currentValue:R,_currentValue2:R,_threadCount:0};function c9(e,n,t,r,o,a,i,l,s){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=eO(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=eO(0),this.hiddenUpdates=eO(null),this.identifierPrefix=r,this.onUncaughtError=o,this.onCaughtError=a,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=s,this.incompleteTransitions=new Map}function c8(e,n,t,r,o,a){o=o?t8:t8,null===r.context?r.context=o:r.pendingContext=o,(r=oA(n)).payload={element:t},null!==(a=void 0===a?null:a)&&(r.callback=a),null!==(t=oO(e,r,n))&&(so(t,e,n),oC(t,e,n))}function c7(e,n){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var t=e.retryLane;e.retryLane=0!==t&&t<n?t:n}}function ue(e,n){c7(e,n),(e=e.alternate)&&c7(e,n)}function un(e){if(13===e.tag||31===e.tag){var n=t3(e,0x4000000);null!==n&&so(n,e,0x4000000),ue(e,0x4000000)}}function ut(e){if(13===e.tag||31===e.tag){var n=st(),t=t3(e,n=eP(n));null!==t&&so(t,e,n),ue(e,n)}}var ur=!0;function uo(e,n,t,r){var o=L.T;L.T=null;var a=T.p;try{T.p=2,ui(e,n,t,r)}finally{T.p=a,L.T=o}}function ua(e,n,t,r){var o=L.T;L.T=null;var a=T.p;try{T.p=8,ui(e,n,t,r)}finally{T.p=a,L.T=o}}function ui(e,n,t,r){if(ur){var o=ul(r);if(null===o)s8(e,n,r,us,t),uy(e,r);else if(function(e,n,t,r,o){switch(n){case\"focusin\":return uf=ux(uf,e,n,t,r,o),!0;case\"dragenter\":return up=ux(up,e,n,t,r,o),!0;case\"mouseover\":return uh=ux(uh,e,n,t,r,o),!0;case\"pointerover\":var a=o.pointerId;return ug.set(a,ux(ug.get(a)||null,e,n,t,r,o)),!0;case\"gotpointercapture\":return a=o.pointerId,um.set(a,ux(um.get(a)||null,e,n,t,r,o)),!0}return!1}(o,e,n,t,r))r.stopPropagation();else if(uy(e,r),4&n&&-1<ub.indexOf(e)){for(;null!==o;){var a=eW(o);if(null!==a)switch(a.tag){case 3:if((a=a.stateNode).current.memoizedState.isDehydrated){var i=ex(a.pendingLanes);if(0!==i){var l=a;for(l.pendingLanes|=2,l.entangledLanes|=2;i;){var s=1<<31-eg(i);l.entanglements[1]|=s,i&=~s}sU(a),0==(6&lR)&&(l0=er()+500,sV(0,!1))}}break;case 31:case 13:null!==(l=t3(a,2))&&so(l,a,2),ss(),ue(a,2)}if(null===(a=ul(r))&&s8(e,n,r,us,t),a===o)break;o=a}null!==o&&r.stopPropagation()}else s8(e,n,r,null,t)}}function ul(e){return uc(e=nb(e))}var us=null;function uc(e){if(us=null,null!==(e=eq(e))){var n=s(e);if(null===n)e=null;else{var t=n.tag;if(13===t){if(null!==(e=c(n)))return e;e=null}else if(31===t){if(null!==(e=u(n)))return e;e=null}else if(3===t){if(n.stateNode.current.memoizedState.isDehydrated)return 3===n.tag?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null)}}return us=e,null}function uu(e){switch(e){case\"beforetoggle\":case\"cancel\":case\"click\":case\"close\":case\"contextmenu\":case\"copy\":case\"cut\":case\"auxclick\":case\"dblclick\":case\"dragend\":case\"dragstart\":case\"drop\":case\"focusin\":case\"focusout\":case\"input\":case\"invalid\":case\"keydown\":case\"keypress\":case\"keyup\":case\"mousedown\":case\"mouseup\":case\"paste\":case\"pause\":case\"play\":case\"pointercancel\":case\"pointerdown\":case\"pointerup\":case\"ratechange\":case\"reset\":case\"resize\":case\"seeked\":case\"submit\":case\"toggle\":case\"touchcancel\":case\"touchend\":case\"touchstart\":case\"volumechange\":case\"change\":case\"selectionchange\":case\"textInput\":case\"compositionstart\":case\"compositionend\":case\"compositionupdate\":case\"beforeblur\":case\"afterblur\":case\"beforeinput\":case\"blur\":case\"fullscreenchange\":case\"focus\":case\"hashchange\":case\"popstate\":case\"select\":case\"selectstart\":return 2;case\"drag\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"mousemove\":case\"mouseout\":case\"mouseover\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"scroll\":case\"touchmove\":case\"wheel\":case\"mouseenter\":case\"mouseleave\":case\"pointerenter\":case\"pointerleave\":return 8;case\"message\":switch(eo()){case ea:return 2;case ei:return 8;case el:case es:return 32;case ec:return 0x10000000;default:return 32}default:return 32}}var ud=!1,uf=null,up=null,uh=null,ug=new Map,um=new Map,uv=[],ub=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\" \");function uy(e,n){switch(e){case\"focusin\":case\"focusout\":uf=null;break;case\"dragenter\":case\"dragleave\":up=null;break;case\"mouseover\":case\"mouseout\":uh=null;break;case\"pointerover\":case\"pointerout\":ug.delete(n.pointerId);break;case\"gotpointercapture\":case\"lostpointercapture\":um.delete(n.pointerId)}}function ux(e,n,t,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:n,domEventName:t,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==n&&null!==(n=eW(n))&&un(n)):(e.eventSystemFlags|=r,n=e.targetContainers,null!==o&&-1===n.indexOf(o)&&n.push(o)),e}function uw(e){var n=eq(e.target);if(null!==n){var t=s(n);if(null!==t){if(13===(n=t.tag)){if(null!==(n=c(t))){e.blockedOn=n,eT(e.priority,function(){ut(t)});return}}else if(31===n){if(null!==(n=u(t))){e.blockedOn=n,eT(e.priority,function(){ut(t)});return}}else if(3===n&&t.stateNode.current.memoizedState.isDehydrated){e.blockedOn=3===t.tag?t.stateNode.containerInfo:null;return}}}e.blockedOn=null}function uj(e){if(null!==e.blockedOn)return!1;for(var n=e.targetContainers;0<n.length;){var t=ul(e.nativeEvent);if(null!==t)return null!==(n=eW(t))&&un(n),e.blockedOn=t,!1;var r=new(t=e.nativeEvent).constructor(t.type,t);nv=r,t.target.dispatchEvent(r),nv=null,n.shift()}return!0}function uk(e,n,t){uj(e)&&t.delete(n)}function uA(){ud=!1,null!==uf&&uj(uf)&&(uf=null),null!==up&&uj(up)&&(up=null),null!==uh&&uj(uh)&&(uh=null),ug.forEach(uk),um.forEach(uk)}function uO(e,n){e.blockedOn===n&&(e.blockedOn=null,ud||(ud=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,uA)))}var uC=null;function uS(e){uC!==e&&(uC=e,o.unstable_scheduleCallback(o.unstable_NormalPriority,function(){uC===e&&(uC=null);for(var n=0;n<e.length;n+=3){var t=e[n],r=e[n+1],o=e[n+2];if(\"function\"!=typeof r)if(null===uc(r||t))continue;else break;var a=eW(t);null!==a&&(e.splice(n,3),n-=3,aK(a,{pending:!0,data:o,method:t.method,action:r},r,o))}}))}function uE(e){function n(n){return uO(n,e)}null!==uf&&uO(uf,e),null!==up&&uO(up,e),null!==uh&&uO(uh,e),ug.forEach(n),um.forEach(n);for(var t=0;t<uv.length;t++){var r=uv[t];r.blockedOn===e&&(r.blockedOn=null)}for(;0<uv.length&&null===(t=uv[0]).blockedOn;)uw(t),null===t.blockedOn&&uv.shift();if(null!=(t=(e.ownerDocument||e).$$reactFormReplay))for(r=0;r<t.length;r+=3){var o=t[r],a=t[r+1],i=o[eD]||null;if(\"function\"==typeof a)i||uS(t);else if(i){var l=null;if(a&&a.hasAttribute(\"formAction\")){if(o=a,i=a[eD]||null)l=i.formAction;else if(null!==uc(o))continue}else l=i.action;\"function\"==typeof l?t[r+1]=l:(t.splice(r,3),r-=3),uS(t)}}}function u_(){function e(e){e.canIntercept&&\"react-transition\"===e.info&&e.intercept({handler:function(){return new Promise(function(e){return o=e})},focusReset:\"manual\",scroll:\"manual\"})}function n(){null!==o&&(o(),o=null),r||setTimeout(t,20)}function t(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&null!=e.url&&navigation.navigate(e.url,{state:e.getState(),info:\"react-transition\",history:\"replace\"})}}if(\"object\"==typeof navigation){var r=!1,o=null;return navigation.addEventListener(\"navigate\",e),navigation.addEventListener(\"navigatesuccess\",n),navigation.addEventListener(\"navigateerror\",n),setTimeout(t,100),function(){r=!0,navigation.removeEventListener(\"navigate\",e),navigation.removeEventListener(\"navigatesuccess\",n),navigation.removeEventListener(\"navigateerror\",n),null!==o&&(o(),o=null)}}}function uP(e){this._internalRoot=e}function uz(e){this._internalRoot=e}uz.prototype.render=uP.prototype.render=function(e){var n=this._internalRoot;if(null===n)throw Error(l(409));c8(n.current,st(),e,n,null,null)},uz.prototype.unmount=uP.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var n=e.containerInfo;c8(e.current,2,null,e,null,null),ss(),n[eB]=null}},uz.prototype.unstable_scheduleHydration=function(e){if(e){var n=eL();e={blockedOn:null,target:e,priority:n};for(var t=0;t<uv.length&&0!==n&&n<uv[t].priority;t++);uv.splice(t,0,e),0===t&&uw(e)}};var uL=a.version;if(\"19.2.0-canary-97cdd5d3-20250710\"!==uL)throw Error(l(527,uL,\"19.2.0-canary-97cdd5d3-20250710\"));if(T.findDOMNode=function(e){var n=e._reactInternals;if(void 0===n){if(\"function\"==typeof e.render)throw Error(l(188));throw Error(l(268,e=Object.keys(e).join(\",\")))}return e=null===(e=null!==(e=function(e){var n=e.alternate;if(!n){if(null===(n=s(e)))throw Error(l(188));return n!==e?null:e}for(var t=e,r=n;;){var o=t.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){t=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===t)return d(o),e;if(a===r)return d(o),n;a=a.sibling}throw Error(l(188))}if(t.return!==r.return)t=o,r=a;else{for(var i=!1,c=o.child;c;){if(c===t){i=!0,t=o,r=a;break}if(c===r){i=!0,r=o,t=a;break}c=c.sibling}if(!i){for(c=a.child;c;){if(c===t){i=!0,t=a,r=o;break}if(c===r){i=!0,r=a,t=o;break}c=c.sibling}if(!i)throw Error(l(189))}}if(t.alternate!==r)throw Error(l(190))}if(3!==t.tag)throw Error(l(188));return t.stateNode.current===t?e:n}(n))?function e(n){var t=n.tag;if(5===t||26===t||27===t||6===t)return n;for(n=n.child;null!==n;){if(null!==(t=e(n)))return t;n=n.sibling}return null}(e):null)?null:e.stateNode},\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var uT=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!uT.isDisabled&&uT.supportsFiber)try{ef=uT.inject({bundleType:0,version:\"19.2.0-canary-97cdd5d3-20250710\",rendererPackageName:\"react-dom\",currentDispatcherRef:L,reconcilerVersion:\"19.2.0-canary-97cdd5d3-20250710\"}),ep=uT}catch(e){}}n.createRoot=function(e,n){if(!(t=e)||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(l(299));var t,r,o,a,i,s,c,u,d=!1,f=\"\",p=iu,h=id,g=ip;return null!=n&&(!0===n.unstable_strictMode&&(d=!0),void 0!==n.identifierPrefix&&(f=n.identifierPrefix),void 0!==n.onUncaughtError&&(p=n.onUncaughtError),void 0!==n.onCaughtError&&(h=n.onCaughtError),void 0!==n.onRecoverableError&&(g=n.onRecoverableError)),r=e,o=1,a=!1,i=null,s=0,c=d,u=null,r=new c9(r,o,a,f,p,h,g,u_,null),o=1,!0===c&&(o|=24),c=re(3,null,null,o),r.current=c,c.stateNode=r,o=r1(),o.refCount++,r.pooledCache=o,o.refCount++,c.memoizedState={element:null,isDehydrated:a,cache:o},oj(c),n=r,e[eB]=n.current,s6(e),new uP(n)}},\"./dist/compiled/react-dom/cjs/react-dom.production.js\":function(e,n,t){\"use strict\";var r=t(\"./dist/compiled/react/index.js\");function o(e){var n=\"https://react.dev/errors/\"+e;if(1<arguments.length){n+=\"?args[]=\"+encodeURIComponent(arguments[1]);for(var t=2;t<arguments.length;t++)n+=\"&args[]=\"+encodeURIComponent(arguments[t])}return\"Minified React error #\"+e+\"; visit \"+n+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}function a(){}var i={d:{f:a,r:function(){throw Error(o(522))},D:a,C:a,L:a,m:a,X:a,S:a,M:a},p:0,findDOMNode:null},l=Symbol.for(\"react.portal\"),s=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,n){return\"font\"===e?\"\":\"string\"==typeof n?\"use-credentials\"===n?n:\"\":void 0}n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,n.createPortal=function(e,n){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!n||1!==n.nodeType&&9!==n.nodeType&&11!==n.nodeType)throw Error(o(299));return function(e,n,t){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:l,key:null==r?null:\"\"+r,children:e,containerInfo:n,implementation:t}}(e,n,null,t)},n.flushSync=function(e){var n=s.T,t=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=n,i.p=t,i.d.f()}},n.preconnect=function(e,n){\"string\"==typeof e&&(n=n?\"string\"==typeof(n=n.crossOrigin)?\"use-credentials\"===n?n:\"\":void 0:null,i.d.C(e,n))},n.prefetchDNS=function(e){\"string\"==typeof e&&i.d.D(e)},n.preinit=function(e,n){if(\"string\"==typeof e&&n&&\"string\"==typeof n.as){var t=n.as,r=c(t,n.crossOrigin),o=\"string\"==typeof n.integrity?n.integrity:void 0,a=\"string\"==typeof n.fetchPriority?n.fetchPriority:void 0;\"style\"===t?i.d.S(e,\"string\"==typeof n.precedence?n.precedence:void 0,{crossOrigin:r,integrity:o,fetchPriority:a}):\"script\"===t&&i.d.X(e,{crossOrigin:r,integrity:o,fetchPriority:a,nonce:\"string\"==typeof n.nonce?n.nonce:void 0})}},n.preinitModule=function(e,n){if(\"string\"==typeof e)if(\"object\"==typeof n&&null!==n){if(null==n.as||\"script\"===n.as){var t=c(n.as,n.crossOrigin);i.d.M(e,{crossOrigin:t,integrity:\"string\"==typeof n.integrity?n.integrity:void 0,nonce:\"string\"==typeof n.nonce?n.nonce:void 0})}}else null==n&&i.d.M(e)},n.preload=function(e,n){if(\"string\"==typeof e&&\"object\"==typeof n&&null!==n&&\"string\"==typeof n.as){var t=n.as,r=c(t,n.crossOrigin);i.d.L(e,t,{crossOrigin:r,integrity:\"string\"==typeof n.integrity?n.integrity:void 0,nonce:\"string\"==typeof n.nonce?n.nonce:void 0,type:\"string\"==typeof n.type?n.type:void 0,fetchPriority:\"string\"==typeof n.fetchPriority?n.fetchPriority:void 0,referrerPolicy:\"string\"==typeof n.referrerPolicy?n.referrerPolicy:void 0,imageSrcSet:\"string\"==typeof n.imageSrcSet?n.imageSrcSet:void 0,imageSizes:\"string\"==typeof n.imageSizes?n.imageSizes:void 0,media:\"string\"==typeof n.media?n.media:void 0})}},n.preloadModule=function(e,n){if(\"string\"==typeof e)if(n){var t=c(n.as,n.crossOrigin);i.d.m(e,{as:\"string\"==typeof n.as&&\"script\"!==n.as?n.as:void 0,crossOrigin:t,integrity:\"string\"==typeof n.integrity?n.integrity:void 0})}else i.d.m(e)},n.requestFormReset=function(e){i.d.r(e)},n.unstable_batchedUpdates=function(e,n){return e(n)},n.useFormState=function(e,n,t){return s.H.useFormState(e,n,t)},n.useFormStatus=function(){return s.H.useHostTransitionStatus()},n.version=\"19.2.0-canary-97cdd5d3-20250710\"},\"./dist/compiled/react-dom/client.js\":function(e,n,t){\"use strict\";!function e(){if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=t(\"./dist/compiled/react-dom/cjs/react-dom-client.production.js\")},\"./dist/compiled/react-dom/index.js\":function(e,n,t){\"use strict\";!function e(){if(\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&\"function\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=t(\"./dist/compiled/react-dom/cjs/react-dom.production.js\")},\"./dist/compiled/react/cjs/react-jsx-runtime.production.js\":function(e,n){\"use strict\";var t=Symbol.for(\"react.transitional.element\");function r(e,n,r){var o=null;if(void 0!==r&&(o=\"\"+r),void 0!==n.key&&(o=\"\"+n.key),\"key\"in n)for(var a in r={},n)\"key\"!==a&&(r[a]=n[a]);else r=n;return{$$typeof:t,type:e,key:o,ref:void 0!==(n=r.ref)?n:null,props:r}}n.Fragment=Symbol.for(\"react.fragment\"),n.jsx=r,n.jsxs=r},\"./dist/compiled/react/cjs/react.production.js\":function(e,n){\"use strict\";var t=Symbol.for(\"react.transitional.element\"),r=Symbol.for(\"react.portal\"),o=Symbol.for(\"react.fragment\"),a=Symbol.for(\"react.strict_mode\"),i=Symbol.for(\"react.profiler\"),l=Symbol.for(\"react.consumer\"),s=Symbol.for(\"react.context\"),c=Symbol.for(\"react.forward_ref\"),u=Symbol.for(\"react.suspense\"),d=Symbol.for(\"react.memo\"),f=Symbol.for(\"react.lazy\"),p=Symbol.iterator,h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,m={};function v(e,n,t){this.props=e,this.context=n,this.refs=m,this.updater=t||h}function b(){}function y(e,n,t){this.props=e,this.context=n,this.refs=m,this.updater=t||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,n){if(\"object\"!=typeof e&&\"function\"!=typeof e&&null!=e)throw Error(\"takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,n,\"setState\")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")},b.prototype=v.prototype;var x=y.prototype=new b;x.constructor=y,g(x,v.prototype),x.isPureReactComponent=!0;var w=Array.isArray;function j(){}var k={H:null,A:null,T:null,S:null},A=Object.prototype.hasOwnProperty;function O(e,n,r,o,a,i){return{$$typeof:t,type:e,key:n,ref:void 0!==(r=i.ref)?r:null,props:i}}function C(e){return\"object\"==typeof e&&null!==e&&e.$$typeof===t}var S=/\\/+/g;function E(e,n){var t,r;return\"object\"==typeof e&&null!==e&&null!=e.key?(t=\"\"+e.key,r={\"=\":\"=0\",\":\":\"=2\"},\"$\"+t.replace(/[=:]/g,function(e){return r[e]})):n.toString(36)}function _(e,n,o){if(null==e)return e;var a=[],i=0;return!function e(n,o,a,i,l){var s,c,u,d=typeof n;(\"undefined\"===d||\"boolean\"===d)&&(n=null);var h=!1;if(null===n)h=!0;else switch(d){case\"bigint\":case\"string\":case\"number\":h=!0;break;case\"object\":switch(n.$$typeof){case t:case r:h=!0;break;case f:return e((h=n._init)(n._payload),o,a,i,l)}}if(h)return l=l(n),h=\"\"===i?\".\"+E(n,0):i,w(l)?(a=\"\",null!=h&&(a=h.replace(S,\"$&/\")+\"/\"),e(l,o,a,\"\",function(e){return e})):null!=l&&(C(l)&&(s=l,c=a+(null==l.key||n&&n.key===l.key?\"\":(\"\"+l.key).replace(S,\"$&/\")+\"/\")+h,l=O(s.type,c,void 0,void 0,void 0,s.props)),o.push(l)),1;h=0;var g=\"\"===i?\".\":i+\":\";if(w(n))for(var m=0;m<n.length;m++)d=g+E(i=n[m],m),h+=e(i,o,a,d,l);else if(\"function\"==typeof(m=null===(u=n)||\"object\"!=typeof u?null:\"function\"==typeof(u=p&&u[p]||u[\"@@iterator\"])?u:null))for(n=m.call(n),m=0;!(i=n.next()).done;)d=g+E(i=i.value,m++),h+=e(i,o,a,d,l);else if(\"object\"===d){if(\"function\"==typeof n.then)return e(function(e){switch(e.status){case\"fulfilled\":return e.value;case\"rejected\":throw e.reason;default:switch(\"string\"==typeof e.status?e.then(j,j):(e.status=\"pending\",e.then(function(n){\"pending\"===e.status&&(e.status=\"fulfilled\",e.value=n)},function(n){\"pending\"===e.status&&(e.status=\"rejected\",e.reason=n)})),e.status){case\"fulfilled\":return e.value;case\"rejected\":throw e.reason}}throw e}(n),o,a,i,l);throw Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===(o=String(n))?\"object with keys {\"+Object.keys(n).join(\", \")+\"}\":o)+\"). If you meant to render a collection of children, use an array instead.\")}return h}(e,a,\"\",\"\",function(e){return n.call(o,e,i++)}),a}function P(e){if(-1===e._status){var n=e._result;(n=n()).then(function(n){(0===e._status||-1===e._status)&&(e._status=1,e._result=n)},function(n){(0===e._status||-1===e._status)&&(e._status=2,e._result=n)}),-1===e._status&&(e._status=0,e._result=n)}if(1===e._status)return e._result.default;throw e._result}var z=\"function\"==typeof reportError?reportError:function(e){if(\"object\"==typeof window&&\"function\"==typeof window.ErrorEvent){var n=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:\"object\"==typeof e&&null!==e&&\"string\"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if(\"object\"==typeof process&&\"function\"==typeof process.emit)return void process.emit(\"uncaughtException\",e);console.error(e)};n.Children={map:_,forEach:function(e,n,t){_(e,function(){n.apply(this,arguments)},t)},count:function(e){var n=0;return _(e,function(){n++}),n},toArray:function(e){return _(e,function(e){return e})||[]},only:function(e){if(!C(e))throw Error(\"React.Children.only expected to receive a single React element child.\");return e}},n.Component=v,n.Fragment=o,n.Profiler=i,n.PureComponent=y,n.StrictMode=a,n.Suspense=u,n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=k,n.__COMPILER_RUNTIME={__proto__:null,c:function(e){return k.H.useMemoCache(e)}},n.cache=function(e){return function(){return e.apply(null,arguments)}},n.cacheSignal=function(){return null},n.cloneElement=function(e,n,t){if(null==e)throw Error(\"The argument must be a React element, but you passed \"+e+\".\");var r=g({},e.props),o=e.key,a=void 0;if(null!=n)for(i in void 0!==n.ref&&(a=void 0),void 0!==n.key&&(o=\"\"+n.key),n)A.call(n,i)&&\"key\"!==i&&\"__self\"!==i&&\"__source\"!==i&&(\"ref\"!==i||void 0!==n.ref)&&(r[i]=n[i]);var i=arguments.length-2;if(1===i)r.children=t;else if(1<i){for(var l=Array(i),s=0;s<i;s++)l[s]=arguments[s+2];r.children=l}return O(e.type,o,void 0,void 0,a,r)},n.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:l,_context:e},e},n.createElement=function(e,n,t){var r,o={},a=null;if(null!=n)for(r in void 0!==n.key&&(a=\"\"+n.key),n)A.call(n,r)&&\"key\"!==r&&\"__self\"!==r&&\"__source\"!==r&&(o[r]=n[r]);var i=arguments.length-2;if(1===i)o.children=t;else if(1<i){for(var l=Array(i),s=0;s<i;s++)l[s]=arguments[s+2];o.children=l}if(e&&e.defaultProps)for(r in i=e.defaultProps)void 0===o[r]&&(o[r]=i[r]);return O(e,a,void 0,void 0,null,o)},n.createRef=function(){return{current:null}},n.forwardRef=function(e){return{$$typeof:c,render:e}},n.isValidElement=C,n.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:P}},n.memo=function(e,n){return{$$typeof:d,type:e,compare:void 0===n?null:n}},n.startTransition=function(e){var n=k.T,t={};k.T=t;try{var r=e(),o=k.S;null!==o&&o(t,r),\"object\"==typeof r&&null!==r&&\"function\"==typeof r.then&&r.then(j,z)}catch(e){z(e)}finally{null!==n&&null!==t.types&&(n.types=t.types),k.T=n}},n.unstable_useCacheRefresh=function(){return k.H.useCacheRefresh()},n.use=function(e){return k.H.use(e)},n.useActionState=function(e,n,t){return k.H.useActionState(e,n,t)},n.useCallback=function(e,n){return k.H.useCallback(e,n)},n.useContext=function(e){return k.H.useContext(e)},n.useDebugValue=function(){},n.useDeferredValue=function(e,n){return k.H.useDeferredValue(e,n)},n.useEffect=function(e,n){return k.H.useEffect(e,n)},n.useId=function(){return k.H.useId()},n.useImperativeHandle=function(e,n,t){return k.H.useImperativeHandle(e,n,t)},n.useInsertionEffect=function(e,n){return k.H.useInsertionEffect(e,n)},n.useLayoutEffect=function(e,n){return k.H.useLayoutEffect(e,n)},n.useMemo=function(e,n){return k.H.useMemo(e,n)},n.useOptimistic=function(e,n){return k.H.useOptimistic(e,n)},n.useReducer=function(e,n,t){return k.H.useReducer(e,n,t)},n.useRef=function(e){return k.H.useRef(e)},n.useState=function(e){return k.H.useState(e)},n.useSyncExternalStore=function(e,n,t){return k.H.useSyncExternalStore(e,n,t)},n.useTransition=function(){return k.H.useTransition()},n.version=\"19.2.0-canary-97cdd5d3-20250710\"},\"./dist/compiled/react/index.js\":function(e,n,t){\"use strict\";e.exports=t(\"./dist/compiled/react/cjs/react.production.js\")},\"./dist/compiled/react/jsx-runtime.js\":function(e,n,t){\"use strict\";e.exports=t(\"./dist/compiled/react/cjs/react-jsx-runtime.production.js\")},\"./dist/compiled/scheduler/cjs/scheduler.production.js\":function(e,n){\"use strict\";function t(e,n){var t=e.length;for(e.push(n);0<t;){var r=t-1>>>1,o=e[r];if(0<a(o,n))e[r]=n,e[t]=o,t=r;else break}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var n=e[0],t=e.pop();if(t!==n){e[0]=t;for(var r=0,o=e.length,i=o>>>1;r<i;){var l=2*(r+1)-1,s=e[l],c=l+1,u=e[c];if(0>a(s,t))c<o&&0>a(u,s)?(e[r]=u,e[c]=t,r=c):(e[r]=s,e[l]=t,r=l);else if(c<o&&0>a(u,t))e[r]=u,e[c]=t,r=c;else break}}return n}function a(e,n){var t=e.sortIndex-n.sortIndex;return 0!==t?t:e.id-n.id}if(n.unstable_now=void 0,\"object\"==typeof performance&&\"function\"==typeof performance.now){var i,l=performance;n.unstable_now=function(){return l.now()}}else{var s=Date,c=s.now();n.unstable_now=function(){return s.now()-c}}var u=[],d=[],f=1,p=null,h=3,g=!1,m=!1,v=!1,b=!1,y=\"function\"==typeof setTimeout?setTimeout:null,x=\"function\"==typeof clearTimeout?clearTimeout:null,w=\"undefined\"!=typeof setImmediate?setImmediate:null;function j(e){for(var n=r(d);null!==n;){if(null===n.callback)o(d);else if(n.startTime<=e)o(d),n.sortIndex=n.expirationTime,t(u,n);else break;n=r(d)}}function k(e){if(v=!1,j(e),!m)if(null!==r(u))m=!0,A||(A=!0,i());else{var n=r(d);null!==n&&L(k,n.startTime-e)}}var A=!1,O=-1,C=5,S=-1;function E(){return!!b||!(n.unstable_now()-S<C)}function _(){if(b=!1,A){var e=n.unstable_now();S=e;var t=!0;try{e:{m=!1,v&&(v=!1,x(O),O=-1),g=!0;var a=h;try{n:{for(j(e),p=r(u);null!==p&&!(p.expirationTime>e&&E());){var l=p.callback;if(\"function\"==typeof l){p.callback=null,h=p.priorityLevel;var s=l(p.expirationTime<=e);if(e=n.unstable_now(),\"function\"==typeof s){p.callback=s,j(e),t=!0;break n}p===r(u)&&o(u),j(e)}else o(u);p=r(u)}if(null!==p)t=!0;else{var c=r(d);null!==c&&L(k,c.startTime-e),t=!1}}break e}finally{p=null,h=a,g=!1}}}finally{t?i():A=!1}}}if(\"function\"==typeof w)i=function(){w(_)};else if(\"undefined\"!=typeof MessageChannel){var P=new MessageChannel,z=P.port2;P.port1.onmessage=_,i=function(){z.postMessage(null)}}else i=function(){y(_,0)};function L(e,t){O=y(function(){e(n.unstable_now())},t)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(e){e.callback=null},n.unstable_forceFrameRate=function(e){0>e||125<e?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):C=0<e?Math.floor(1e3/e):5},n.unstable_getCurrentPriorityLevel=function(){return h},n.unstable_next=function(e){switch(h){case 1:case 2:case 3:var n=3;break;default:n=h}var t=h;h=n;try{return e()}finally{h=t}},n.unstable_requestPaint=function(){b=!0},n.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var t=h;h=e;try{return n()}finally{h=t}},n.unstable_scheduleCallback=function(e,o,a){var l=n.unstable_now();switch(a=\"object\"==typeof a&&null!==a&&\"number\"==typeof(a=a.delay)&&0<a?l+a:l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=0x3fffffff;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,e={id:f++,callback:o,priorityLevel:e,startTime:a,expirationTime:s,sortIndex:-1},a>l?(e.sortIndex=a,t(d,e),null===r(u)&&e===r(d)&&(v?(x(O),O=-1):v=!0,L(k,a-l))):(e.sortIndex=s,t(u,e),m||g||(m=!0,A||(A=!0,i()))),e},n.unstable_shouldYield=E,n.unstable_wrapCallback=function(e){var n=h;return function(){var t=h;h=n;try{return e.apply(this,arguments)}finally{h=t}}}},\"./dist/compiled/scheduler/index.js\":function(e,n,t){\"use strict\";e.exports=t(\"./dist/compiled/scheduler/cjs/scheduler.production.js\")},\"./dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\":function(e){(()=>{\"use strict\";\"undefined\"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=\"//\");var n,t,r,o,a,i,l,s,c={};Object.defineProperty(c,\"__esModule\",{value:!0}),n=\"<unknown>\",t=/^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|webpack-internal|rsc|turbopack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,r=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/,o=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|webpack-internal|rsc|turbopack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,a=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|webpack-internal|rsc|turbopack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,i=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i,l=/^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i,s=/^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,c.parse=function(e){return e.split(\"\\n\").reduce(function(e,c){var u,d,f,p,h,g,m=function(e){var o=t.exec(e);if(!o)return null;var a=o[2]&&0===o[2].indexOf(\"native\"),i=o[2]&&0===o[2].indexOf(\"eval\"),l=r.exec(o[2]);return i&&null!=l&&(o[2]=l[1],o[3]=l[2],o[4]=l[3]),{file:a?null:o[2],methodName:o[1]||n,arguments:a?[o[2]]:[],lineNumber:o[3]?+o[3]:null,column:o[4]?+o[4]:null}}(c)||(u=c,(d=o.exec(u))?{file:d[2],methodName:d[1]||n,arguments:[],lineNumber:+d[3],column:d[4]?+d[4]:null}:null)||function(e){var t=a.exec(e);if(!t)return null;var r=t[3]&&t[3].indexOf(\" > eval\")>-1,o=i.exec(t[3]);return r&&null!=o&&(t[3]=o[1],t[4]=o[2],t[5]=null),{file:t[3],methodName:t[1]||n,arguments:t[2]?t[2].split(\",\"):[],lineNumber:t[4]?+t[4]:null,column:t[5]?+t[5]:null}}(c)||(f=c,(p=s.exec(f))?{file:p[2],methodName:p[1]||n,arguments:[],lineNumber:+p[3],column:p[4]?+p[4]:null}:null)||(h=c,(g=l.exec(h))?{file:g[3],methodName:g[1]||n,arguments:[],lineNumber:+g[4],column:g[5]?+g[5]:null}:null);return m&&e.push(m),e},[])},e.exports=c})()},\"./dist/compiled/strip-ansi/index.js\":function(e){(()=>{\"use strict\";var n={511:e=>{e.exports=({onlyFirst:e=!1}={})=>RegExp(\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)|(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\",e?void 0:\"g\")},532:(e,n,t)=>{let r=t(511);e.exports=e=>\"string\"==typeof e?e.replace(r(),\"\"):e}},t={};function r(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={exports:{}},i=!0;try{n[e](a,a.exports,r),i=!1}finally{i&&delete t[e]}return a.exports}r.ab=\"//\",e.exports=r(532)})()},\"./src/build/webpack/loaders/devtool/devtool-style-inject.js\":function(e){function n(){let e=window._nextjsDevtoolsStyleCache;if(e.cachedShadowRoot)return e.cachedShadowRoot;let n=document.querySelector(\"nextjs-portal\"),t=n?.shadowRoot||null;return t&&(e.cachedShadowRoot=t),t}function t(e,n){let t=window._nextjsDevtoolsStyleCache;t.lastInsertedElement?t.lastInsertedElement.nextSibling?n.insertBefore(e,t.lastInsertedElement.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),t.lastInsertedElement=e}function r(){let e=window._nextjsDevtoolsStyleCache,r=n();r&&(e.pendingElements.forEach(e=>{t(e,r)}),e.pendingElements=[])}\"undefined\"!=typeof window&&(window._nextjsDevtoolsStyleCache=window._nextjsDevtoolsStyleCache||{pendingElements:[],isObserving:!1,lastInsertedElement:null,cachedShadowRoot:null}),e.exports=function(e){e.setAttribute(\"data-nextjs-dev-tool-style\",\"true\");let o=n();o?t(e,o):(window._nextjsDevtoolsStyleCache.pendingElements.push(e),function(){let e=window._nextjsDevtoolsStyleCache;if(e.isObserving)return;if(e.isObserving=!0,n())return r();let t=new MutationObserver(o=>{if(0===o.length||0===o[0].addedNodes.length)return;let a=o[0].addedNodes[0],i=null;if(\"SCRIPT\"===a.tagName&&a.getAttribute(\"data-nextjs-dev-overlay\")?i=a.firstChild:\"NEXTJS-PORTAL\"===a.tagName&&(i=a),!i)return;let l=()=>{n()?(r(),t.disconnect(),e.isObserving=!1):setTimeout(l,20)};l()});t.observe(document.body,{childList:!0,subtree:!0})}())}},\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/dev-tools-info/dev-tools-info.tsx\":function(e,n,t){\"use strict\";t.d(n,{g:()=>s,x:()=>l});var r=t(\"./dist/compiled/react/jsx-runtime.js\"),o=t(\"./dist/compiled/react/index.js\"),a=t(\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/utils.ts\"),i=t(\"./src/next-devtools/dev-overlay/hooks/use-delayed-render.ts\");function l(e){var n,t,l=e.title,s=e.children,u=e.learnMoreLink,d=e.isOpen,f=e.triggerRef,p=e.close,h=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"title\",\"children\",\"learnMoreLink\",\"isOpen\",\"triggerRef\",\"close\"]),g=(0,o.useRef)(null),m=(0,o.useRef)(null),v=(0,i.N)(d,{enterDelay:0,exitDelay:a.K7}),b=v.mounted,y=v.rendered;return((0,a.P5)(g,f,d,function(){var e;null==(e=m.current)||e.focus()}),(0,a.O8)(g,f,b,p),b)?(0,r.jsx)(\"div\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({tabIndex:-1,role:\"dialog\",ref:g,\"data-info-popover\":!0},h),t=t={\"data-rendered\":y,children:(0,r.jsxs)(\"div\",{className:\"dev-tools-info-container\",children:[(0,r.jsxs)(\"div\",{className:\"dev-tools-info-header\",children:[(0,r.jsx)(\"button\",{ref:m,className:\"dev-tools-info-close-button\",onClick:p,\"aria-label\":\"Close dialog\",children:(0,r.jsx)(c,{})}),(0,r.jsx)(\"h3\",{className:\"dev-tools-info-title\",children:l})]}),(0,r.jsxs)(\"div\",{className:\"dev-tools-info-body\",children:[s,u&&(0,r.jsx)(\"div\",{className:\"dev-tools-info-button-container\",children:(0,r.jsx)(\"a\",{className:\"dev-tools-info-learn-more-button\",href:u,target:\"_blank\",rel:\"noreferrer noopener\",children:\"Learn More\"})})]})]})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n)):null}var s=\"\\n [data-info-popover] {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n background-clip: padding-box;\\n box-shadow: var(--shadow-menu);\\n border-radius: var(--rounded-xl);\\n position: absolute;\\n font-family: var(--font-stack-sans);\\n z-index: 3;\\n overflow: hidden;\\n opacity: 0;\\n outline: 0;\\n min-width: 350px;\\n transition: opacity var(--animate-out-duration-ms)\\n var(--animate-out-timing-function);\\n\\n &[data-rendered='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n button:focus-visible {\\n outline: var(--focus-ring);\\n }\\n }\\n\\n .dev-tools-info-container {\\n width: 100%;\\n }\\n\\n .dev-tools-info-body {\\n padding: 16px;\\n }\\n\\n .dev-tools-info-header {\\n height: 48px;\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n padding: 6px 8px;\\n border-bottom: 1px solid var(--color-gray-alpha-400);\\n }\\n\\n .dev-tools-info-close-button {\\n all: unset;\\n width: 20px;\\n height: 20px; \\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: var(--color-gray-900);\\n transition: color 150ms ease;\\n translate: 0 1px;\\n border-radius: 3px;\\n\\n &:hover {\\n color: var(--color-gray-1000);\\n }\\n }\\n\\n .dev-tools-info-title {\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-20);\\n margin: 0;\\n }\\n\\n .dev-tools-info-section-title {\\n padding: 8px 0px;\\n color: var(--color-gray-1000);\\n font-size: var(--size-16);\\n font-weight: 600;\\n line-height: var(--size-20);\\n margin: 0;\\n }\\n\\n .dev-tools-info-article {\\n padding: 8px 6px;\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n margin: 0;\\n }\\n .dev-tools-info-paragraph {\\n &:last-child {\\n margin-bottom: 0;\\n }\\n }\\n\\n .dev-tools-info-button-container {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n }\\n\\n .dev-tools-info-learn-more-button {\\n align-content: center;\\n padding: 0 8px;\\n height: var(--size-28);\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-20);\\n transition: background var(--duration-short) ease;\\n color: var(--color-background-100);\\n border-radius: var(--rounded-md-2);\\n background: var(--color-gray-1000);\\n margin-left: auto;\\n }\\n\\n .dev-tools-info-learn-more-button:hover {\\n text-decoration: none;\\n color: var(--color-background-100);\\n opacity: 0.9;\\n }\\n\";function c(){return(0,r.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,r.jsx)(\"path\",{d:\"M5.14645 8.70703C4.75595 8.31651 4.75595 7.68349 5.14645 7.29297L10.5 1.93945L11.5605 3L6.56051 8L11.5605 13L10.5 14.0605L5.14645 8.70703Z\",fill:\"currentColor\"})})}},\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/dev-tools-info/segments-explorer.tsx\":function(e,n,t){\"use strict\";t.d(n,{W:()=>i});var r=t(\"./dist/compiled/react/jsx-runtime.js\"),o=t(\"./src/next-devtools/dev-overlay/components/overview/segment-explorer.tsx\"),a=t(\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/dev-tools-info/dev-tools-info.tsx\");function i(e){var n,t,i=e.routerType,l=e.page,s=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"routerType\",\"page\"]);return(0,r.jsx)(a.x,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({title:\"Route Info\"},s),t=t={children:(0,r.jsx)(\"div\",{\"data-nextjs-segments-explorer\":!0,style:{margin:\"-16px\"},children:(0,r.jsx)(o.u,{isAppRouter:\"app\"===i,page:l})})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}},\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/utils.ts\":function(e,n,t){\"use strict\";t.d(n,{K7:()=>s,O8:()=>l,P5:()=>a,uD:()=>c,vY:()=>i});var r=t(\"./dist/compiled/react/index.js\");function o(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function a(e,n,t,a){(0,r.useEffect)(function(){var r=function(e){if(\"Tab\"===e.key&&null!==l){var n,t,r=(t=(n=l.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'))?[n[0],n[n.length-1]]:[],function(e){if(Array.isArray(e))return e}(t)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,2)||function(e,n){if(e){if(\"string\"==typeof e)return o(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o(e,n)}}(t,2)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=r[0],s=r[1],c=i(l);e.shiftKey?c===a&&(null==s||s.focus(),e.preventDefault()):c===s&&(null==a||a.focus(),e.preventDefault())}},l=null,s=setTimeout(function(){if(l=e.current,t)a?a():null==l||l.focus(),null==l||l.addEventListener(\"keydown\",r);else{var o,s=i(l);n&&(null==l?void 0:l.contains(s))&&(null==(o=n.current)||o.focus())}});return function(){clearTimeout(s),null==l||l.removeEventListener(\"keydown\",r)}},[t])}function i(e){var n,t=null==e?void 0:e.getRootNode();return(null!=(n=ShadowRoot)&&\"undefined\"!=typeof Symbol&&n[Symbol.hasInstance]?!!n[Symbol.hasInstance](t):t instanceof n)?null==t?void 0:t.activeElement:null}function l(e,n,t,o,a){(0,r.useEffect)(function(){var r,i=function(t){var r,a,i=t.target;!(e.current&&e.current.contains(i))&&(null!=(r=e.current)&&r.getBoundingClientRect()&&t.clientX>=e.current.getBoundingClientRect().left&&t.clientX<=e.current.getBoundingClientRect().right&&t.clientY>=e.current.getBoundingClientRect().top&&t.clientY<=e.current.getBoundingClientRect().bottom||null!=(a=n.current)&&a.getBoundingClientRect()&&t.clientX>=n.current.getBoundingClientRect().left&&t.clientX<=n.current.getBoundingClientRect().right&&t.clientY>=n.current.getBoundingClientRect().top&&t.clientY<=n.current.getBoundingClientRect().bottom||o())},l=function(e){\"Escape\"===e.key&&o()};if(t){var s=a||(null==(r=e.current)?void 0:r.ownerDocument);return null==s||s.addEventListener(\"mousedown\",i),null==s||s.addEventListener(\"keydown\",l),function(){null==s||s.removeEventListener(\"mousedown\",i),null==s||s.removeEventListener(\"keydown\",l)}}},[t,e,n])}var s=200,c=\"cubic-bezier(0.175, 0.885, 0.32, 1.1)\"},\"./src/next-devtools/dev-overlay/components/overview/segment-explorer.tsx\":function(e,n,t){\"use strict\";t.d(n,{u:()=>at});var r,o,a,i,l=t(\"./dist/compiled/react/jsx-runtime.js\"),s=t(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\"),c=t.n(s),u=t(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleDomAPI.js\"),d=t.n(u),f=t(\"./src/build/webpack/loaders/devtool/devtool-style-inject.js\"),p=t.n(f),h=t(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\"),g=t.n(h),m=t(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/insertStyleElement.js\"),v=t.n(m),b=t(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleTagTransform.js\"),y=t.n(b),x=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-explorer.css\"),w={};w.styleTagTransform=y(),w.setAttributes=g(),w.insert=p(),w.domAPI=d(),w.insertStyleElement=v(),c()(x.Z,w),x.Z&&x.Z.locals&&x.Z.locals;var j=t(\"./src/next-devtools/dev-overlay/segment-explorer-trie.ts\"),k=t(\"./src/next-devtools/dev-overlay/utils/cx.ts\"),A=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/overview/segment-boundary-trigger.css\"),O={};O.styleTagTransform=y(),O.setAttributes=g(),O.insert=p(),O.domAPI=d(),O.insertStyleElement=v(),c()(A.Z,O),A.Z&&A.Z.locals&&A.Z.locals;var C=t(\"./dist/compiled/react/index.js\"),S=t.t(C,2),E=t(\"./dist/compiled/react-dom/index.js\");let _={};function P(e,n){let t=C.useRef(_);return t.current===_&&(t.current=e(n)),t}let z=S[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0,-3)],L=z&&z!==C.useLayoutEffect?z:e=>e();function T(e){let n=P(R).current;return n.next=e,L(n.effect),n.trampoline}function R(){let e={next:void 0,callback:N,trampoline:(...n)=>e.callback?.(...n),effect:()=>{e.callback=e.next}};return e}function N(){}function D(){let e=new Map;return{emit(n,t){e.get(n)?.forEach(e=>e(t))},on(n,t){e.has(n)||e.set(n,new Set),e.get(n).add(t)},off(n,t){e.get(n)?.delete(t)}}}let B={...S},M=0,I=B.useId;function H(e,n){if(void 0!==I){let t=I();return e??(n?`${n}-${t}`:t)}return function(e,n=\"mui\"){let[t,r]=C.useState(e),o=e||t;return C.useEffect(()=>{null==t&&(M+=1,r(`${n}-${M}`))},[t,n]),o}(e,n)}let F=\"undefined\"!=typeof document?C.useLayoutEffect:()=>{},U=C.createContext(null),V=C.createContext(null),q=()=>C.useContext(U)?.id||null,W=()=>C.useContext(V);function $(e){let{children:n,id:t}=e,r=q();return(0,l.jsx)(U.Provider,{value:C.useMemo(()=>({id:t,parentId:r}),[t,r]),children:n})}function Z(e){let{children:n}=e,t=C.useRef([]),r=C.useCallback(e=>{t.current=[...t.current,e]},[]),o=C.useCallback(e=>{t.current=t.current.filter(n=>n!==e)},[]),[a]=C.useState(()=>D());return(0,l.jsx)(V.Provider,{value:C.useMemo(()=>({nodesRef:t,addNode:r,removeNode:o,events:a}),[r,o,a]),children:n})}function Y(e){let{open:n=!1,onOpenChange:t,elements:r}=e,o=H(),a=C.useRef({}),[i]=C.useState(()=>D()),l=null!=q(),[s,c]=C.useState(r.reference),u=T((e,n,r)=>{a.current.openEvent=e?n:void 0,i.emit(\"openchange\",{open:e,event:n,reason:r,nested:l}),t?.(e,n,r)}),d=C.useMemo(()=>({setPositionReference:c}),[]),f=C.useMemo(()=>({reference:s||r.reference||null,floating:r.floating||null,domReference:r.reference}),[s,r.reference,r.floating]);return C.useMemo(()=>({dataRef:a,open:n,onOpenChange:u,elements:f,events:i,floatingId:o,refs:d}),[n,u,f,i,o,d])}function X(){return\"undefined\"!=typeof window}function K(e){return J(e)?(e.nodeName||\"\").toLowerCase():\"#document\"}function Q(e){var n;return(null==e||null==(n=e.ownerDocument)?void 0:n.defaultView)||window}function G(e){var n;return null==(n=(J(e)?e.ownerDocument:e.document)||window.document)?void 0:n.documentElement}function J(e){return!!X()&&(e instanceof Node||e instanceof Q(e).Node)}function ee(e){return!!X()&&(e instanceof Element||e instanceof Q(e).Element)}function en(e){return!!X()&&(e instanceof HTMLElement||e instanceof Q(e).HTMLElement)}function et(e){return!!X()&&\"undefined\"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof Q(e).ShadowRoot)}let er=new Set([\"inline\",\"contents\"]);function eo(e){let{overflow:n,overflowX:t,overflowY:r,display:o}=eg(e);return/auto|scroll|overlay|hidden|clip/.test(n+r+t)&&!er.has(o)}let ea=new Set([\"table\",\"td\",\"th\"]),ei=[\":popover-open\",\":modal\"];function el(e){return ei.some(n=>{try{return e.matches(n)}catch(e){return!1}})}let es=[\"transform\",\"translate\",\"scale\",\"rotate\",\"perspective\"],ec=[\"transform\",\"translate\",\"scale\",\"rotate\",\"perspective\",\"filter\"],eu=[\"paint\",\"layout\",\"strict\",\"content\"];function ed(e){let n=ef(),t=ee(e)?eg(e):e;return es.some(e=>!!t[e]&&\"none\"!==t[e])||!!t.containerType&&\"normal\"!==t.containerType||!n&&!!t.backdropFilter&&\"none\"!==t.backdropFilter||!n&&!!t.filter&&\"none\"!==t.filter||ec.some(e=>(t.willChange||\"\").includes(e))||eu.some(e=>(t.contain||\"\").includes(e))}function ef(){return\"undefined\"!=typeof CSS&&!!CSS.supports&&CSS.supports(\"-webkit-backdrop-filter\",\"none\")}let ep=new Set([\"html\",\"body\",\"#document\"]);function eh(e){return ep.has(K(e))}function eg(e){return Q(e).getComputedStyle(e)}function em(e){return ee(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ev(e){if(\"html\"===K(e))return e;let n=e.assignedSlot||e.parentNode||et(e)&&e.host||G(e);return et(n)?n.host:n}function eb(e,n,t){var r;void 0===n&&(n=[]),void 0===t&&(t=!0);let o=function e(n){let t=ev(n);return eh(t)?n.ownerDocument?n.ownerDocument.body:n.body:en(t)&&eo(t)?t:e(t)}(e),a=o===(null==(r=e.ownerDocument)?void 0:r.body),i=Q(o);if(a){let e=ey(i);return n.concat(i,i.visualViewport||[],eo(o)?o:[],e&&t?eb(e):[])}return n.concat(o,eb(o,[],t))}function ey(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}let ex=[];function ew(e){C.useEffect(e,ex)}class ej{static create(){return new ej}currentId=0;start(e,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=0,n()},e)}isStarted(){return 0!==this.currentId}clear=()=>{0!==this.currentId&&(clearTimeout(this.currentId),this.currentId=0)};disposeEffect=()=>this.clear}function ek(){let e=P(ej.create).current;return ew(e.disposeEffect),e}function eA(e){let n=P(eO,e).current;return n.next=e,F(n.effect),n}function eO(e){let n={current:e,next:e,effect:()=>{n.current=n.next}};return n}let eC=\"undefined\"!=typeof navigator,eS=function(){if(\"undefined\"==typeof navigator)return{platform:\"\",maxTouchPoints:-1};let e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??\"\",maxTouchPoints:navigator.maxTouchPoints??-1}}(),eE=function(){if(!eC)return\"\";let e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??\"\"}(),e_=function(){if(!eC)return\"\";let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:e,version:n})=>`${e}/${n}`).join(\" \"):navigator.userAgent}(),eP=\"undefined\"!=typeof CSS&&!!CSS.supports&&CSS.supports(\"-webkit-backdrop-filter:none\"),ez=\"MacIntel\"===eS.platform&&eS.maxTouchPoints>1||/iP(hone|ad|od)|iOS/.test(eS.platform);eC&&/firefox/i.test(e_);let eL=eC&&/apple/i.test(navigator.vendor),eT=eC&&/android/i.test(eE)||/android/i.test(e_),eR=eC&&eE.toLowerCase().startsWith(\"mac\")&&!navigator.maxTouchPoints,eN=e_.includes(\"jsdom/\");function eD(e){e.preventDefault(),e.stopPropagation()}function eB(e){return 0===e.mozInputSource&&!!e.isTrusted||(eT&&e.pointerType?\"click\"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)}function eM(e){return!eN&&(!eT&&0===e.width&&0===e.height||eT&&1===e.width&&1===e.height&&0===e.pressure&&0===e.detail&&\"mouse\"===e.pointerType||e.width<1&&e.height<1&&0===e.pressure&&0===e.detail&&\"touch\"===e.pointerType)}function eI(e,n){let t=[\"mouse\",\"pen\"];return n||t.push(\"\",void 0),t.includes(e)}let eH=\"data-base-ui-focusable\",eF=\"active\",eU=\"selected\",eV=\"ArrowLeft\",eq=\"ArrowRight\",eW=\"ArrowUp\",e$=\"ArrowDown\";function eZ(e){let n=e.activeElement;for(;n?.shadowRoot?.activeElement!=null;)n=n.shadowRoot.activeElement;return n}function eY(e,n){if(!e||!n)return!1;let t=n.getRootNode?.();if(e.contains(n))return!0;if(t&&et(t)){let t=n;for(;t;){if(e===t)return!0;t=t.parentNode||t.host}}return!1}function eX(e){return\"composedPath\"in e?e.composedPath()[0]:e.target}function eK(e,n){return null!=n&&(\"composedPath\"in e?e.composedPath().includes(n):null!=e.target&&n.contains(e.target))}function eQ(e){return e?.ownerDocument||document}function eG(e){return en(e)&&e.matches(\"input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\")}function eJ(e){return!!e&&\"combobox\"===e.getAttribute(\"role\")&&eG(e)}function e0(e){return e?e.hasAttribute(eH)?e:e.querySelector(`[${eH}]`)||e:null}function e1(e){return`data-base-ui-${e}`}let e2=e1(\"safe-polygon\");function e4(e,n,t){if(t&&!eI(t))return 0;if(\"number\"==typeof e)return e;if(\"function\"==typeof e){let t=e();return\"number\"==typeof t?t:t?.[n]}return e?.[n]}function e5(e){return\"function\"==typeof e?e():e}function e3(e,n={}){let{open:t,onOpenChange:r,dataRef:o,events:a,elements:i}=e,{enabled:l=!0,delay:s=0,handleClose:c=null,mouseOnly:u=!1,restMs:d=0,move:f=!0}=n,p=W(),h=q(),g=eA(c),m=eA(s),v=eA(t),b=eA(d),y=C.useRef(void 0),x=ek(),w=C.useRef(void 0),j=ek(),k=C.useRef(!0),A=C.useRef(!1),O=C.useRef(()=>{}),S=C.useRef(!1),E=T(()=>{let e=o.current.openEvent?.type;return e?.includes(\"mouse\")&&\"mousedown\"!==e});C.useEffect(()=>{if(l)return a.on(\"openchange\",e),()=>{a.off(\"openchange\",e)};function e({open:e}){e||(x.clear(),j.clear(),k.current=!0,S.current=!1)}},[l,a,x,j]),C.useEffect(()=>{if(!l||!g.current||!t)return;function e(e){E()&&r(!1,e,\"hover\")}let n=eQ(i.floating).documentElement;return n.addEventListener(\"mouseleave\",e),()=>{n.removeEventListener(\"mouseleave\",e)}},[i.floating,t,r,l,g,E]);let _=C.useCallback((e,n=!0,t=\"hover\")=>{let o=e4(m.current,\"close\",y.current);o&&!w.current?x.start(o,()=>r(!1,e,t)):n&&(x.clear(),r(!1,e,t))},[m,r,x]),P=T(()=>{O.current(),w.current=void 0}),z=T(()=>{if(A.current){let e=eQ(i.floating).body;e.style.pointerEvents=\"\",e.removeAttribute(e2),A.current=!1}}),L=T(()=>!!o.current.openEvent&&[\"click\",\"mousedown\"].includes(o.current.openEvent.type));C.useEffect(()=>{if(l&&ee(i.domReference)){let r=i.domReference,o=i.floating;return t&&r.addEventListener(\"mouseleave\",a),f&&r.addEventListener(\"mousemove\",e,{once:!0}),r.addEventListener(\"mouseenter\",e),r.addEventListener(\"mouseleave\",n),o&&(o.addEventListener(\"mouseleave\",a),o.addEventListener(\"mouseenter\",s),o.addEventListener(\"mouseleave\",c)),()=>{t&&r.removeEventListener(\"mouseleave\",a),f&&r.removeEventListener(\"mousemove\",e),r.removeEventListener(\"mouseenter\",e),r.removeEventListener(\"mouseleave\",n),o&&(o.removeEventListener(\"mouseleave\",a),o.removeEventListener(\"mouseenter\",s),o.removeEventListener(\"mouseleave\",c))}}function e(e){if(x.clear(),k.current=!1,u&&!eI(y.current)||e5(b.current)>0&&!e4(m.current,\"open\"))return;let n=e4(m.current,\"open\",y.current);n?x.start(n,()=>{v.current||r(!0,e,\"hover\")}):t||r(!0,e,\"hover\")}function n(e){if(L())return void z();O.current();let n=eQ(i.floating);if(j.clear(),S.current=!1,g.current&&o.current.floatingContext){t||x.clear(),w.current=g.current({...o.current.floatingContext,tree:p,x:e.clientX,y:e.clientY,onClose(){z(),P(),L()||_(e,!0,\"safe-polygon\")}});let r=w.current;n.addEventListener(\"mousemove\",r),O.current=()=>{n.removeEventListener(\"mousemove\",r)};return}\"touch\"===y.current&&eY(i.floating,e.relatedTarget)||_(e)}function a(e){!L()&&o.current.floatingContext&&g.current?.({...o.current.floatingContext,tree:p,x:e.clientX,y:e.clientY,onClose(){z(),P(),L()||_(e)}})(e)}function s(){x.clear()}function c(e){L()||_(e,!1)}},[i,l,e,u,f,_,P,z,r,t,v,p,m,g,o,L,b,x,j]),F(()=>{if(l&&t&&g.current?.__options?.blockPointerEvents&&E()){A.current=!0;let e=i.floating;if(ee(i.domReference)&&e){let n=eQ(i.floating).body;n.setAttribute(e2,\"\");let t=i.domReference,r=p?.nodesRef.current.find(e=>e.id===h)?.context?.elements.floating;return r&&(r.style.pointerEvents=\"\"),n.style.pointerEvents=\"none\",t.style.pointerEvents=\"auto\",e.style.pointerEvents=\"auto\",()=>{n.style.pointerEvents=\"\",t.style.pointerEvents=\"\",e.style.pointerEvents=\"\"}}}},[l,t,h,i,p,g,E]),F(()=>{t||(y.current=void 0,S.current=!1,P(),z())},[t,P,z]),C.useEffect(()=>()=>{P(),x.clear(),j.clear(),z()},[l,i.domReference,P,z,x,j]);let R=C.useMemo(()=>{function e(e){y.current=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:n}=e;function o(){k.current||v.current||r(!0,n,\"hover\")}(!u||eI(y.current))&&!t&&0!==e5(b.current)&&(S.current&&e.movementX**2+e.movementY**2<2||(j.clear(),\"touch\"===y.current?o():(S.current=!0,j.start(e5(b.current),o))))}}},[u,r,t,v,b,j]);return C.useMemo(()=>l?{reference:R}:{},[l,R])}function e6(e,n,t=!0){return e.filter(e=>e.parentId===n&&(!t||e.context?.open)).flatMap(n=>[n,...e6(e,n.id,t)])}function e9(e,n){let t=[],r=e.find(e=>e.id===n)?.parentId;for(;r;){let n=e.find(e=>e.id===r);r=n?.parentId,n&&(t=t.concat(n))}return t}function e8(e,n){let[t,r]=e,o=!1,a=n.length;for(let e=0,i=a-1;e<a;i=e++){let[a,l]=n[e]||[0,0],[s,c]=n[i]||[0,0];l>=r!=c>=r&&t<=(s-a)*(r-l)/(c-l)+a&&(o=!o)}return o}function e7(e={}){let{buffer:n=.5,blockPointerEvents:t=!1,requireIntent:r=!0}=e,o=new ej,a=!1,i=null,l=null,s=performance.now(),c=({x:e,y:t,placement:c,elements:u,onClose:d,nodeId:f,tree:p})=>function(h){function g(){o.clear(),d()}if(o.clear(),!u.domReference||!u.floating||null==c||null==e||null==t)return;let{clientX:m,clientY:v}=h,b=[m,v],y=eX(h),x=\"mouseleave\"===h.type,w=eY(u.floating,y),j=eY(u.domReference,y),k=u.domReference.getBoundingClientRect(),A=u.floating.getBoundingClientRect(),O=c.split(\"-\")[0],C=e>A.right-A.width/2,S=t>A.bottom-A.height/2,E=b[0]>=k.x&&b[0]<=k.x+k.width&&b[1]>=k.y&&b[1]<=k.y+k.height,_=A.width>k.width,P=A.height>k.height,z=(_?k:A).left,L=(_?k:A).right,T=(P?k:A).top,R=(P?k:A).bottom;if(w&&(a=!0,!x))return;if(j&&(a=!1),j&&!x){a=!0;return}if(x&&ee(h.relatedTarget)&&eY(u.floating,h.relatedTarget)||p&&e6(p.nodesRef.current,f).some(({context:e})=>e?.open))return;if(\"top\"===O&&t>=k.bottom-1||\"bottom\"===O&&t<=k.top+1||\"left\"===O&&e>=k.right-1||\"right\"===O&&e<=k.left+1)return g();let N=[];switch(O){case\"top\":N=[[z,k.top+1],[z,A.bottom-1],[L,A.bottom-1],[L,k.top+1]];break;case\"bottom\":N=[[z,A.top+1],[z,k.bottom-1],[L,k.bottom-1],[L,A.top+1]];break;case\"left\":N=[[A.right-1,R],[A.right-1,T],[k.left+1,T],[k.left+1,R]];break;case\"right\":N=[[k.right-1,R],[k.right-1,T],[A.left+1,T],[A.left+1,R]]}if(!e8([m,v],N)){if(a&&!E)return g();if(!x&&r){let e=function(e,n){let t=performance.now(),r=t-s;if(null===i||null===l||0===r)return i=e,l=n,s=t,null;let o=e-i,a=n-l,c=Math.sqrt(o*o+a*a);return i=e,l=n,s=t,c/r}(h.clientX,h.clientY);if(null!==e&&e<.1)return g()}e8([m,v],function([e,t]){switch(O){case\"top\":{let r=[[A.left,C||_?A.bottom-n:A.top],[A.right,C?_?A.bottom-n:A.top:A.bottom-n]];return[[_?e+n/2:C?e+4*n:e-4*n,t+n+1],[_?e-n/2:C?e+4*n:e-4*n,t+n+1],...r]}case\"bottom\":{let r=[[A.left,C||_?A.top+n:A.bottom],[A.right,C?_?A.top+n:A.bottom:A.top+n]];return[[_?e+n/2:C?e+4*n:e-4*n,t-n],[_?e-n/2:C?e+4*n:e-4*n,t-n],...r]}case\"left\":return[[S||P?A.right-n:A.left,A.top],[S?P?A.right-n:A.left:A.right-n,A.bottom],[e+n+1,P?t+n/2:S?t+4*n:t-4*n],[e+n+1,P?t-n/2:S?t+4*n:t-4*n]];case\"right\":{let r=[[S||P?A.left+n:A.right,A.top],[S?P?A.left+n:A.right:A.left+n,A.bottom]];return[[e-n,P?t+n/2:S?t+4*n:t-4*n],[e-n,P?t-n/2:S?t+4*n:t-4*n],...r]}default:return[]}}([e,t]))?!a&&r&&o.start(40,g):g()}};return c.__options={blockPointerEvents:t},c}let ne=eR&&eL;function nn(e,n={}){let{open:t,onOpenChange:r,events:o,dataRef:a,elements:i}=e,{enabled:l=!0,visibleOnly:s=!0}=n,c=C.useRef(!1),u=ek(),d=C.useRef(!0);C.useEffect(()=>{if(!l)return;let e=Q(i.domReference);function n(){!t&&en(i.domReference)&&i.domReference===eZ(eQ(i.domReference))&&(c.current=!0)}function r(){d.current=!0}function o(){d.current=!1}return e.addEventListener(\"blur\",n),ne&&(e.addEventListener(\"keydown\",r,!0),e.addEventListener(\"pointerdown\",o,!0)),()=>{e.removeEventListener(\"blur\",n),ne&&(e.removeEventListener(\"keydown\",r,!0),e.removeEventListener(\"pointerdown\",o,!0))}},[i.domReference,t,l]),C.useEffect(()=>{if(l)return o.on(\"openchange\",e),()=>{o.off(\"openchange\",e)};function e({reason:e}){(\"reference-press\"===e||\"escape-key\"===e)&&(c.current=!0)}},[o,l]);let f=C.useMemo(()=>({onMouseLeave(){c.current=!1},onFocus(e){if(c.current)return;let n=eX(e.nativeEvent);if(s&&ee(n)){if(ne&&!e.relatedTarget){if(!d.current&&!eG(n))return}else if(!function(e){if(!e||eN)return!0;try{return e.matches(\":focus-visible\")}catch(e){return!0}}(n))return}r(!0,e.nativeEvent,\"focus\")},onBlur(e){c.current=!1;let n=e.relatedTarget,t=e.nativeEvent,o=ee(n)&&n.hasAttribute(e1(\"focus-guard\"))&&\"outside\"===n.getAttribute(\"data-type\");u.start(0,()=>{let e=eZ(i.domReference?i.domReference.ownerDocument:document);(n||e!==i.domReference)&&(eY(a.current.floatingContext?.refs.floating.current,e)||eY(i.domReference,e)||o||r(!1,t,\"focus\"))})}}),[a,i.domReference,r,s,u]);return C.useMemo(()=>l?{reference:f}:{},[l,f])}let nt={style:{transition:\"none\"}},nr={},no={fallbackAxisSide:\"none\"},na={fallbackAxisSide:\"end\"},ni=new class{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=e=>{this.isScheduled=!1;let n=this.callbacks,t=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,t>0)for(let t=0;t<n.length;t+=1)n[t]?.(e)};request(e){let n=this.nextId;return this.nextId+=1,this.callbacks.push(e),this.callbacksCount+=1,this.isScheduled||(requestAnimationFrame(this.tick),this.isScheduled=!0),n}cancel(e){let n=e-this.startId;n<0||n>=this.callbacks.length||(this.callbacks[n]=null,this.callbacksCount-=1)}};class nl{static create(){return new nl}static request(e){return ni.request(e)}static cancel(e){return ni.cancel(e)}currentId=null;request(e){this.cancel(),this.currentId=ni.request(()=>{this.currentId=null,e()})}cancel=()=>{null!==this.currentId&&(ni.cancel(this.currentId),this.currentId=null)};disposeEffect=()=>this.cancel}function ns(){let e=P(nl.create).current;return ew(e.disposeEffect),e}let nc={pointerdown:\"onPointerDown\",mousedown:\"onMouseDown\",click:\"onClick\"},nu={pointerdown:\"onPointerDownCapture\",mousedown:\"onMouseDownCapture\",click:\"onClickCapture\"},nd=e=>({escapeKey:\"boolean\"==typeof e?e:e?.escapeKey??!1,outsidePress:\"boolean\"==typeof e?e:e?.outsidePress??!0});function nf(e,n={}){let{open:t,onOpenChange:r,elements:o,dataRef:a}=e,{enabled:i=!0,escapeKey:l=!0,outsidePress:s=!0,outsidePressEvent:c=\"pointerdown\",referencePress:u=!1,referencePressEvent:d=\"pointerdown\",ancestorScroll:f=!1,bubbles:p,capture:h}=n,g=W(),m=T(\"function\"==typeof s?s:()=>!1),v=\"function\"==typeof s?m:s,b=C.useRef(!1),{escapeKey:y,outsidePress:x}=nd(p),{escapeKey:w,outsidePress:j}=nd(h),k=C.useRef(!1),A=ek(),O=T(e=>{if(!t||!i||!l||\"Escape\"!==e.key||k.current)return;let n=a.current.floatingContext?.nodeId,o=g?e6(g.nodesRef.current,n):[];if(!y&&(e.stopPropagation(),o.length>0)){let e=!0;if(o.forEach(n=>{n.context?.open&&!n.context.dataRef.current.__escapeKeyBubbles&&(e=!1)}),!e)return}r(!1,\"nativeEvent\"in e?e.nativeEvent:e,\"escape-key\")}),S=T(e=>{let n=()=>{O(e),eX(e)?.removeEventListener(\"keydown\",n)};eX(e)?.addEventListener(\"keydown\",n)}),E=T(e=>{let n=a.current.insideReactTree;a.current.insideReactTree=!1;let t=b.current;if(b.current=!1,\"click\"===c&&t||n||\"function\"==typeof v&&!v(e))return;let i=eX(e),l=`[${e1(\"inert\")}]`,s=eQ(o.floating).querySelectorAll(l),u=ee(i)?i:null;for(;u&&!eh(u);){let e=ev(u);if(eh(e)||!ee(e))break;u=e}if(s.length&&ee(i)&&!i.matches(\"html,body\")&&!eY(i,o.floating)&&Array.from(s).every(e=>!eY(u,e)))return;if(en(i)){let n=eh(i),t=eg(i),r=/auto|scroll/,o=n||r.test(t.overflowX),a=n||r.test(t.overflowY),l=o&&i.clientWidth>0&&i.scrollWidth>i.clientWidth,s=a&&i.clientHeight>0&&i.scrollHeight>i.clientHeight,c=\"rtl\"===t.direction,u=s&&(c?e.offsetX<=i.offsetWidth-i.clientWidth:e.offsetX>i.clientWidth),d=l&&e.offsetY>i.clientHeight;if(u||d)return}let d=a.current.floatingContext?.nodeId,f=g&&e6(g.nodesRef.current,d).some(n=>eK(e,n.context?.elements.floating));if(eK(e,o.floating)||eK(e,o.domReference)||f)return;let p=g?e6(g.nodesRef.current,d):[];if(p.length>0){let e=!0;if(p.forEach(n=>{n.context?.open&&!n.context.dataRef.current.__outsidePressBubbles&&(e=!1)}),!e)return}r(!1,e,\"outside-press\")}),_=T(e=>{let n=()=>{E(e),eX(e)?.removeEventListener(c,n)};eX(e)?.addEventListener(c,n)});C.useEffect(()=>{if(!t||!i)return;a.current.__escapeKeyBubbles=y,a.current.__outsidePressBubbles=x;let e=new ej;function n(e){r(!1,e,\"ancestor-scroll\")}function s(){e.clear(),k.current=!0}function u(){e.start(5*!!ef(),()=>{k.current=!1})}let d=eQ(o.floating);l&&(d.addEventListener(\"keydown\",w?S:O,w),d.addEventListener(\"compositionstart\",s),d.addEventListener(\"compositionend\",u)),v&&d.addEventListener(c,j?_:E,j);let p=[];return f&&(ee(o.domReference)&&(p=eb(o.domReference)),ee(o.floating)&&(p=p.concat(eb(o.floating))),!ee(o.reference)&&o.reference&&o.reference.contextElement&&(p=p.concat(eb(o.reference.contextElement)))),(p=p.filter(e=>e!==d.defaultView?.visualViewport)).forEach(e=>{e.addEventListener(\"scroll\",n,{passive:!0})}),()=>{l&&(d.removeEventListener(\"keydown\",w?S:O,w),d.removeEventListener(\"compositionstart\",s),d.removeEventListener(\"compositionend\",u)),v&&d.removeEventListener(c,j?_:E,j),p.forEach(e=>{e.removeEventListener(\"scroll\",n)}),e.clear()}},[a,o,l,v,c,t,r,f,i,y,x,O,w,S,E,j,_]),C.useEffect(()=>{a.current.insideReactTree=!1},[a,v,c]);let P=C.useMemo(()=>({onKeyDown:O,...u&&{[nc[d]]:e=>{r(!1,e.nativeEvent,\"reference-press\")},...\"click\"!==d&&{onClick(e){r(!1,e.nativeEvent,\"reference-press\")}}}}),[O,r,u,d]),z=C.useMemo(()=>({onKeyDown:O,onMouseDown(){b.current=!0},onMouseUp(){b.current=!0},[nu[c]]:()=>{a.current.insideReactTree=!0},onBlurCapture(){g||(a.current.insideReactTree=!0,A.start(0,()=>{a.current.insideReactTree=!1}))}}),[O,c,a,g,A]);return C.useMemo(()=>i?{reference:P,floating:z}:{},[i,P,z])}let np=new Map([[\"select\",\"listbox\"],[\"combobox\",\"listbox\"],[\"label\",!1]]),nh=[\"top\",\"right\",\"bottom\",\"left\"],ng=Math.min,nm=Math.max,nv=Math.round,nb=Math.floor,ny=e=>({x:e,y:e}),nx={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"},nw={start:\"end\",end:\"start\"};function nj(e,n){return\"function\"==typeof e?e(n):e}function nk(e){return e.split(\"-\")[0]}function nA(e){return e.split(\"-\")[1]}function nO(e){return\"x\"===e?\"y\":\"x\"}function nC(e){return\"y\"===e?\"height\":\"width\"}let nS=new Set([\"top\",\"bottom\"]);function nE(e){return nS.has(nk(e))?\"y\":\"x\"}function n_(e){return e.replace(/start|end/g,e=>nw[e])}let nP=[\"left\",\"right\"],nz=[\"right\",\"left\"],nL=[\"top\",\"bottom\"],nT=[\"bottom\",\"top\"];function nR(e){return e.replace(/left|right|bottom|top/g,e=>nx[e])}function nN(e){return\"number\"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function nD(e){let{x:n,y:t,width:r,height:o}=e;return{width:r,height:o,top:t,left:n,right:n+r,bottom:t+o,x:n,y:t}}function nB(e,n,t){return Math.floor(e/n)!==t}function nM(e,n){return n<0||n>=e.current.length}function nI(e,n){return nF(e,{disabledIndices:n})}function nH(e,n){return nF(e,{decrement:!0,startingIndex:e.current.length,disabledIndices:n})}function nF(e,{startingIndex:n=-1,decrement:t=!1,disabledIndices:r,amount:o=1}={}){let a=n;do a+=t?-o:o;while(a>=0&&a<=e.current.length-1&&nU(e,a,r));return a}function nU(e,n,t){if(\"function\"==typeof t)return t(n);if(t)return t.includes(n);let r=e.current[n];return null==r||r.hasAttribute(\"disabled\")||\"true\"===r.getAttribute(\"aria-disabled\")}let nV=0;function nq(e,n={}){let{preventScroll:t=!1,cancelPrevious:r=!0,sync:o=!1}=n;r&&cancelAnimationFrame(nV);let a=()=>e?.focus({preventScroll:t});o?a():nV=requestAnimationFrame(a)}function nW(e,n,t){switch(e){case\"vertical\":return n;case\"horizontal\":return t;default:return n||t}}function n$(e,n){return nW(n,e===eW||e===e$,e===eV||e===eq)}function nZ(e,n,t){return nW(n,e===e$,t?e===eV:e===eq)||\"Enter\"===e||\" \"===e||\"\"===e}function nY(e,n,t){return nW(n,t?e===eV:e===eq,e===e$)}function nX(e,n,t,r){return\"both\"===n||\"horizontal\"===n&&r&&r>1?\"Escape\"===e:nW(n,t?e===eq:e===eV,e===eW)}function nK(e=[]){let n=e.map(e=>e?.reference),t=e.map(e=>e?.floating),r=e.map(e=>e?.item),o=C.useCallback(n=>nQ(n,e,\"reference\"),n),a=C.useCallback(n=>nQ(n,e,\"floating\"),t),i=C.useCallback(n=>nQ(n,e,\"item\"),r);return C.useMemo(()=>({getReferenceProps:o,getFloatingProps:a,getItemProps:i}),[o,a,i])}function nQ(e,n,t){let r=new Map,o=\"item\"===t,a={};for(let n in\"floating\"===t&&(a.tabIndex=-1,a[eH]=\"\"),e)o&&e&&(n===eF||n===eU)||(a[n]=e[n]);for(let i=0;i<n.length;i+=1){let l,s=n[i]?.[t];(l=\"function\"==typeof s?e?s(e):null:s)&&nG(a,l,o,r)}return nG(a,e,o,r),a}function nG(e,n,t,r){for(let o in n){let a=n[o];t&&(o===eF||o===eU)||(o.startsWith(\"on\")?(r.has(o)||r.set(o,[]),\"function\"==typeof a&&(r.get(o)?.push(a),e[o]=(...e)=>r.get(o)?.map(n=>n(...e)).find(e=>void 0!==e))):e[o]=a)}}let nJ=C.createContext(void 0);function n0(e){let n=C.useContext(nJ);if(void 0===n&&!e)throw Error(\"Base UI: MenuRootContext is missing. Menu parts must be placed within <Menu.Root>.\");return n}let n1=C.createContext(null);function n2(e,n=!1,t=!1){let[r,o]=C.useState(e&&n?\"idle\":void 0),[a,i]=C.useState(e);return e&&!a&&(i(!0),o(\"starting\")),e||!a||\"ending\"===r||t||o(\"ending\"),e||a||\"ending\"!==r||o(void 0),F(()=>{if(!e&&a&&\"ending\"!==r&&t){let e=nl.request(()=>{o(\"ending\")});return()=>{nl.cancel(e)}}},[e,a,r,t]),F(()=>{if(!e||n)return;let t=nl.request(()=>{E.flushSync(()=>{o(void 0)})});return()=>{nl.cancel(t)}},[n,e]),F(()=>{if(!e||!n)return;e&&a&&\"idle\"!==r&&o(\"starting\");let t=nl.request(()=>{o(\"idle\")});return()=>{nl.cancel(t)}},[n,e,a,o,r]),C.useMemo(()=>({mounted:a,setMounted:i,transitionStatus:r}),[a,r])}function n4({controlled:e,default:n,name:t,state:r=\"value\"}){let{current:o}=C.useRef(void 0!==e),[a,i]=C.useState(n),l=C.useCallback(e=>{o||i(e)},[]);return[o?e:a,l]}function n5(e){let{enabled:n=!0,open:t,ref:r,onComplete:o}=e,a=eA(t),i=T(o),l=function(e,n=!1){let t=ns(),r=ek();return T((o,a=null)=>{t.cancel(),r.clear();let i=e.current;i&&(\"function\"!=typeof i.getAnimations||globalThis.BASE_UI_ANIMATIONS_DISABLED?o():t.request(()=>{function e(){i&&Promise.allSettled(i.getAnimations().map(e=>e.finished)).then(()=>{null!=a&&a.aborted||E.flushSync(o)})}n?r.start(0,e):e()}))})}(r,t);C.useEffect(()=>{n&&l(()=>{t===a.current&&i()})},[n,t,i,l,a])}let n3=C.createContext(void 0);function n6(e=!0){let n=C.useContext(n3);if(void 0===n&&!e)throw Error(\"Base UI: DirectionContext is missing.\");return n?.direction??\"ltr\"}let n9=()=>{},n8={},n7={},te=\"\";class tn{lockCount=0;restore=null;timeoutLock=ej.create();timeoutUnlock=ej.create();acquire(e){return this.lockCount+=1,1===this.lockCount&&null===this.restore&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}release=()=>{this.lockCount-=1,0===this.lockCount&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{0===this.lockCount&&this.restore&&(this.restore?.(),this.restore=null)};lock(e){if(0===this.lockCount||null!==this.restore)return;let n=eQ(e).documentElement,t=Q(n).getComputedStyle(n).overflowY;if(\"hidden\"===t||\"clip\"===t){this.restore=n9;return}let r=ez||!function(e){if(\"undefined\"==typeof document)return!1;let n=eQ(e);return Q(n).innerWidth-n.documentElement.clientWidth>0}(e);this.restore=r?function(e){let n=eQ(e).documentElement,t=n.style.overflow;return n.style.overflow=\"hidden\",()=>{n.style.overflow=t}}(e):function(e){let n=eQ(e),t=n.documentElement,r=n.body,o=Q(t),a=0,i=0,l=nl.create();if(eP&&(o.visualViewport?.scale??1)!==1)return()=>{};function s(){let e=o.getComputedStyle(t),n=o.getComputedStyle(r);a=t.scrollTop,i=t.scrollLeft,n8={scrollbarGutter:t.style.scrollbarGutter,overflowY:t.style.overflowY,overflowX:t.style.overflowX},te=t.style.scrollBehavior,n7={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};let l=\"undefined\"!=typeof CSS&&CSS.supports?.(\"scrollbar-gutter\",\"stable\"),s=t.scrollHeight>t.clientHeight,c=t.scrollWidth>t.clientWidth,u=\"scroll\"===e.overflowY||\"scroll\"===n.overflowY,d=\"scroll\"===e.overflowX||\"scroll\"===n.overflowX,f=Math.max(0,o.innerWidth-t.clientWidth),p=Math.max(0,o.innerHeight-t.clientHeight),h=parseFloat(n.marginTop)+parseFloat(n.marginBottom),g=parseFloat(n.marginLeft)+parseFloat(n.marginRight);Object.assign(t.style,{scrollbarGutter:\"stable\",overflowY:!l&&(s||u)?\"scroll\":\"hidden\",overflowX:!l&&(c||d)?\"scroll\":\"hidden\"}),Object.assign(r.style,{position:\"relative\",height:h||p?`calc(100dvh - ${h+p}px)`:\"100dvh\",width:g||f?`calc(100vw - ${g+f}px)`:\"100vw\",boxSizing:\"border-box\",overflow:\"hidden\",scrollBehavior:\"unset\"}),r.scrollTop=a,r.scrollLeft=i,t.setAttribute(\"data-base-ui-scroll-locked\",\"\"),t.style.scrollBehavior=\"unset\"}function c(){Object.assign(t.style,n8),Object.assign(r.style,n7),t.scrollTop=a,t.scrollLeft=i,t.removeAttribute(\"data-base-ui-scroll-locked\"),t.style.scrollBehavior=te}function u(){c(),l.request(s)}return s(),o.addEventListener(\"resize\",u),()=>{l.cancel(),c(),o.removeEventListener(\"resize\",u)}}(e)}}let tt=new tn;function tr(e){if(e)return({\"focus-out\":\"focus-out\",\"escape-key\":\"escape-key\",\"outside-press\":\"outside-press\",\"list-navigation\":\"list-navigation\",click:\"trigger-press\",hover:\"trigger-hover\",focus:\"trigger-focus\",\"reference-press\":\"trigger-press\",\"safe-polygon\":\"trigger-hover\",\"ancestor-scroll\":void 0})[e]}let to=C.createContext(void 0);function ta(e=!0){let n=C.useContext(to);if(void 0===n&&!e)throw Error(\"Base UI: ContextMenuRootContext is missing. ContextMenu parts must be placed within <ContextMenu.Root>.\");return n}let ti=C.createContext(!1);function tl(e,n){return e&&!n?e:!e&&n?n:e||n?{...e,...n}:void 0}let ts={};function tc(e,n,t,r,o){let a={...tf(e,ts)};return n&&(a=tu(a,n)),t&&(a=tu(a,t)),r&&(a=tu(a,r)),o&&(a=tu(a,o)),a}function tu(e,n){return td(n)?n(e):function(e,n){if(!n)return e;for(let t in n){let r=n[t];switch(t){case\"style\":e[t]=tl(e.style,r);break;case\"className\":e[t]=th(e.className,r);break;default:!function(e,n){let t=e.charCodeAt(0),r=e.charCodeAt(1),o=e.charCodeAt(2);return 111===t&&110===r&&o>=65&&o<=90&&(\"function\"==typeof n||void 0===n)}(t,r)?e[t]=r:e[t]=function(e,n){return n?e?t=>{var r;if(null!=(r=t)&&\"object\"==typeof r&&\"nativeEvent\"in r){tp(t);let r=n(t);return t.baseUIHandlerPrevented||e?.(t),r}let o=n(t);return e?.(t),o}:n:e}(e[t],r)}}return e}(e,n)}function td(e){return\"function\"==typeof e}function tf(e,n){return td(e)?e(n):e??ts}function tp(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function th(e,n){return n?e?n+\" \"+e:n:e}let tg=[],tm={current:!1},tv=function(e){let n,t,{children:r,open:o,onOpenChange:a,onOpenChangeComplete:i,defaultOpen:s=!1,disabled:c=!1,modal:u,loop:d=!0,orientation:f=\"vertical\",actionsRef:p,openOnHover:h,delay:g=100,closeDelay:m=0,closeParentOnEsc:v=!0}=e,[b,y]=C.useState(null),[x,w]=C.useState(null),[j,k]=C.useState(),[A,O]=C.useState(!0),[S,_]=C.useState(null),[P,z]=C.useState(null),[L,R]=C.useState(!0),[N,D]=C.useState(!1),B=C.useRef(null),M=C.useRef(null),I=C.useRef(null),U=ek(),V=ta(!0),$=C.useContext(ti);{let e=n0(!0),t=function(e){let n=C.useContext(n1);if(null===n&&!e)throw Error(\"Base UI: MenubarContext is missing. Menubar parts must be placed within <Menubar>.\");return n}(!0);n=$&&e?{type:\"menu\",context:e}:t?{type:\"menubar\",context:t}:V?{type:\"context-menu\",context:V}:{type:void 0}}let X=H();void 0!==n.type&&(X=n.context.rootId);let K=(void 0===n.type||\"context-menu\"===n.type)&&(u??!0),Q=\"menu\"===n.type?n.context.allowMouseEnter:N,G=\"menu\"===n.type?n.context.setAllowMouseEnter:D,J=h??(\"menu\"===n.type||\"menubar\"===n.type&&n.context.hasSubmenuOpen),[ee,et]=n4({controlled:o,default:s,name:\"MenuRoot\",state:\"open\"}),er=C.useRef(\"context-menu\"!==n.type),eo=ek();C.useEffect(()=>{if(ee||(B.current=null),\"context-menu\"===n.type){if(!ee){eo.clear(),er.current=!1;return}eo.start(500,()=>{er.current=!0})}},[eo,ee,n.type]);let ea=C.useCallback(e=>{I.current=e,w(e)},[]),{mounted:ei,setMounted:el,transitionStatus:es}=n2(ee),{enabled:ec=!0,mounted:eu,open:ed,referenceElement:ef=null}={enabled:ee&&K&&\"trigger-hover\"!==P,mounted:ei,open:ee,referenceElement:x};F(()=>{if(eP&&eu&&!ed){let e=eQ(ef),n=e.body.style.userSelect,t=e.body.style.webkitUserSelect;return e.body.style.userSelect=\"none\",e.body.style.webkitUserSelect=\"none\",()=>{e.body.style.userSelect=n,e.body.style.webkitUserSelect=t}}},[eu,ed,ef]),F(()=>{if(ec)return tt.acquire(ef)},[ec,ef]),ee||A||O(!0);let ep=T(()=>{el(!1),R(!0),G(!1),i?.(!1)});n5({enabled:!p,open:ee,ref:M,onComplete(){ee||ep()}});let eh=C.useRef(!0),eg=ek(),em=T((e,t,r)=>{if(ee===e||!1===e&&t?.type===\"click\"&&\"touch\"===t.pointerType&&!eh.current)return;e&&\"trigger-focus\"===r?(eh.current=!1,eg.start(300,()=>{eh.current=!0})):(eh.current=!0,eg.clear());let o=(\"trigger-press\"===r||\"item-press\"===r)&&0===t.detail&&t?.isTrusted,i=!e&&(\"escape-key\"===r||null==r);function l(){a?.(e,t,r),et(e),z(r??null),B.current=t??null}\"trigger-hover\"===r?(R(!0),U.start(500,()=>{R(!1)}),E.flushSync(l)):l(),\"menubar\"===n.type&&(\"trigger-focus\"===r||\"focus-out\"===r||\"trigger-hover\"===r||\"list-navigation\"===r||\"sibling-open\"===r)?k(\"group\"):o||i?k(o?\"click\":\"dismiss\"):k(void 0)});C.useImperativeHandle(p,()=>({unmount:ep}),[ep]),\"context-menu\"===n.type&&(t=n.context),C.useImperativeHandle(t?.positionerRef,()=>x,[x]),C.useImperativeHandle(t?.actionsRef,()=>({setOpen:em}),[em]),C.useEffect(()=>{ee||U.clear()},[U,ee]);let ev=Y({elements:{reference:b,floating:x},open:ee,onOpenChange(e,n,t){em(e,n,tr(t))}}),eb=e3(ev,{enabled:A&&J&&!c&&\"context-menu\"!==n.type&&(\"menubar\"!==n.type||n.context.hasSubmenuOpen&&!ee),handleClose:e7({blockPointerEvents:!0}),mouseOnly:!0,move:\"menu\"===n.type,restMs:void 0===n.type||\"menu\"===n.type&&Q?g:void 0,delay:\"menu\"===n.type?{open:Q?g:1e10,close:m}:{close:m}}),ey=nn(ev,{enabled:!c&&!ee&&\"menubar\"===n.type&&n.context.hasSubmenuOpen&&!V}),ex=function(e,n={}){let{open:t,onOpenChange:r,dataRef:o}=e,{enabled:a=!0,event:i=\"click\",toggle:l=!0,ignoreMouse:s=!1,stickIfOpen:c=!0}=n,u=C.useRef(void 0),d=ns(),f=C.useMemo(()=>({onPointerDown(e){u.current=e.pointerType},onMouseDown(e){let n=u.current,a=e.nativeEvent;if(0!==e.button||\"click\"===i||eI(n,!0)&&s)return;let f=o.current.openEvent,p=f?.type,h=!(t&&l&&(!f||!c||\"click\"===p||\"mousedown\"===p));d.request(()=>{r(h,a,\"click\")})},onClick(e){let n=u.current;if(\"mousedown\"===i&&n){u.current=void 0;return}if(eI(n,!0)&&s)return;let a=o.current.openEvent,d=a?.type;r(!(t&&l&&(!a||!c||\"click\"===d||\"mousedown\"===d||\"keydown\"===d||\"keyup\"===d)),e.nativeEvent,\"click\")},onKeyDown(){u.current=void 0}}),[o,i,s,r,t,c,l,d]);return C.useMemo(()=>a?{reference:f}:nr,[a,f])}(ev,{enabled:!c&&\"context-menu\"!==n.type,event:ee&&\"menubar\"===n.type?\"click\":\"mousedown\",toggle:!J||\"menu\"!==n.type,ignoreMouse:J&&\"menu\"===n.type,stickIfOpen:void 0===n.type&&L}),ew=nf(ev,{enabled:!c,bubbles:v&&\"menu\"===n.type,outsidePressEvent:\"mousedown\",outsidePress:()=>\"context-menu\"!==n.type||B.current?.type===\"contextmenu\"||er.current}),ej=function(e,n={}){let{open:t,elements:r,floatingId:o}=e,{enabled:a=!0,role:i=\"dialog\"}=n,l=H(),s=r.domReference?.id||l,c=C.useMemo(()=>e0(r.floating)?.id||o,[r.floating,o]),u=np.get(i)??i,d=null!=q(),f=C.useMemo(()=>\"tooltip\"===u||\"label\"===i?{[`aria-${\"label\"===i?\"labelledby\":\"describedby\"}`]:t?c:void 0}:{\"aria-expanded\":t?\"true\":\"false\",\"aria-haspopup\":\"alertdialog\"===u?\"dialog\":u,\"aria-controls\":t?c:void 0,...\"listbox\"===u&&{role:\"combobox\"},...\"menu\"===u&&{id:s},...\"menu\"===u&&d&&{role:\"menuitem\"},...\"select\"===i&&{\"aria-autocomplete\":\"none\"},...\"combobox\"===i&&{\"aria-autocomplete\":\"list\"}},[u,c,d,t,s,i]),p=C.useMemo(()=>{let e={id:c,...u&&{role:u}};return\"tooltip\"===u||\"label\"===i?e:{...e,...\"menu\"===u&&{\"aria-labelledby\":s}}},[u,c,s,i]),h=C.useCallback(({active:e,selected:n})=>{let t={role:\"option\",...e&&{id:`${c}-fui-option`}};switch(i){case\"select\":return{...t,\"aria-selected\":e&&n};case\"combobox\":return{...t,\"aria-selected\":n}}return{}},[c,i]);return C.useMemo(()=>a?{reference:f,floating:p,item:h}:{},[a,f,p,h])}(ev,{role:\"menu\"}),eO=C.useRef([]),eC=C.useRef([]),eS=n6(),eE=function(e,n){let{open:t,onOpenChange:r,elements:o,floatingId:a}=e,{listRef:i,activeIndex:l,onNavigate:s=()=>{},enabled:c=!0,selectedIndex:u=null,allowEscape:d=!1,loop:f=!1,nested:p=!1,rtl:h=!1,virtual:g=!1,focusItemOnOpen:m=\"auto\",focusItemOnHover:v=!0,openOnArrowKeyDown:b=!0,disabledIndices:y,orientation:x=\"vertical\",parentOrientation:w,cols:j=1,scrollItemIntoView:k=!0,virtualItemRef:A,itemSizes:O,dense:S=!1}=n,E=eA(e0(o.floating)),_=q(),P=W();F(()=>{e.dataRef.current.orientation=x},[e,x]);let z=eJ(o.domReference),L=C.useRef(m),R=C.useRef(u??-1),N=C.useRef(null),D=C.useRef(!0),B=T(()=>{s(-1===R.current?null:R.current)}),M=C.useRef(B),I=C.useRef(!!o.floating),H=C.useRef(t),U=C.useRef(!1),V=C.useRef(!1),$=eA(y),Z=eA(t),Y=eA(k),X=eA(u),[K,Q]=C.useState(),[G,J]=C.useState(),ee=T(()=>{function e(e){g?(e.id?.endsWith(\"-fui-option\")&&(e.id=`${a}-${Math.random().toString(16).slice(2,10)}`),Q(e.id),P?.events.emit(\"virtualfocus\",e),A&&(A.current=e)):nq(e,{sync:U.current,preventScroll:!0})}let n=i.current[R.current],t=V.current;n&&e(n),(U.current?e=>e():requestAnimationFrame)(()=>{let r=i.current[R.current]||n;if(!r)return;n||e(r);let o=Y.current;o&&er&&(t||!D.current)&&r.scrollIntoView?.(\"boolean\"==typeof o?{block:\"nearest\",inline:\"nearest\"}:o)})});F(()=>{c&&(t&&o.floating?L.current&&null!=u&&(V.current=!0,R.current=u,B()):I.current&&(R.current=-1,M.current()))},[c,t,o.floating,u,B]),F(()=>{if(c&&t&&o.floating)if(null==l){if(U.current=!1,null!=X.current)return;if(I.current&&(R.current=-1,ee()),(!H.current||!I.current)&&L.current&&(null!=N.current||!0===L.current&&null==N.current)){let e=0,n=()=>{null==i.current[0]?(e<2&&(e?requestAnimationFrame:queueMicrotask)(n),e+=1):(R.current=null==N.current||nZ(N.current,x,h)||p?nI(i,$.current):nH(i,$.current),N.current=null,B())};n()}}else nM(i,l)||(R.current=l,ee(),V.current=!1)},[c,t,o.floating,l,X,p,i,x,h,B,ee,$]),F(()=>{if(!c||o.floating||!P||g||!I.current)return;let e=P.nodesRef.current,n=e.find(e=>e.id===_)?.context?.elements.floating,t=eZ(eQ(o.floating)),r=e.some(e=>e.context&&eY(e.context.elements.floating,t));n&&!r&&D.current&&n.focus({preventScroll:!0})},[c,o.floating,P,_,g]),F(()=>{if(c&&P&&g&&!_)return P.events.on(\"virtualfocus\",e),()=>{P.events.off(\"virtualfocus\",e)};function e(e){J(e.id),A&&(A.current=e)}},[c,P,g,_,A]),F(()=>{M.current=B,H.current=t,I.current=!!o.floating}),F(()=>{t||(N.current=null,L.current=m)},[t,m]);let et=null!=l,er=C.useMemo(()=>{function e(e){if(!Z.current)return;let n=i.current.indexOf(e);-1!==n&&R.current!==n&&(R.current=n,B())}return{onFocus({currentTarget:n}){U.current=!0,e(n)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove({currentTarget:n}){U.current=!0,V.current=!1,v&&e(n)},onPointerLeave({pointerType:e}){D.current&&\"touch\"!==e&&(U.current=!0,v&&(R.current=-1,B(),g||E.current?.focus({preventScroll:!0})))}}},[Z,E,v,i,B,g]),eo=C.useCallback(()=>w??P?.nodesRef.current.find(e=>e.id===_)?.context?.dataRef?.current.orientation,[_,P,w]),ea=T(e=>{if(D.current=!1,U.current=!0,229===e.which||!Z.current&&e.currentTarget===E.current)return;if(p&&nX(e.key,x,h,j)){n$(e.key,eo())||eD(e),r(!1,e.nativeEvent,\"list-navigation\"),en(o.domReference)&&(g?P?.events.emit(\"virtualfocus\",o.domReference):o.domReference.focus());return}let n=R.current,a=nI(i,y),l=nH(i,y);if(z||(\"Home\"===e.key&&(eD(e),R.current=a,B()),\"End\"===e.key&&(eD(e),R.current=l,B())),j>1){var s;let n=O||Array.from({length:i.current.length},()=>({width:1,height:1})),t=function(e,n,t){let r=[],o=0;return e.forEach(({width:e,height:a},i)=>{let l=!1;for(t&&(o=0);!l;){let t=[];for(let r=0;r<e;r+=1)for(let e=0;e<a;e+=1)t.push(o+r+e*n);o%n+e<=n&&t.every(e=>null==r[e])?(t.forEach(e=>{r[e]=i}),l=!0):o+=1}}),[...r]}(n,j,S),r=t.findIndex(e=>null!=e&&!nU(i,e,y)),o=t.reduce((e,n,t)=>null==n||nU(i,n,y)?e:t,-1),c=t[function(e,{event:n,orientation:t,loop:r,rtl:o,cols:a,disabledIndices:i,minIndex:l,maxIndex:s,prevIndex:c,stopEvent:u=!1}){let d=c;if(n.key===eW){if(u&&eD(n),-1===c)d=s;else if(d=nF(e,{startingIndex:d,amount:a,decrement:!0,disabledIndices:i}),r&&(c-a<l||d<0)){let e=c%a,n=s%a,t=s-(n-e);d=n===e?s:n>e?t:t-a}nM(e,d)&&(d=c)}if(n.key===e$&&(u&&eD(n),-1===c?d=l:(d=nF(e,{startingIndex:c,amount:a,disabledIndices:i}),r&&c+a>s&&(d=nF(e,{startingIndex:c%a-a,amount:a,disabledIndices:i}))),nM(e,d)&&(d=c)),\"both\"===t){let t=nb(c/a);n.key===(o?eV:eq)&&(u&&eD(n),c%a!=a-1?(d=nF(e,{startingIndex:c,disabledIndices:i}),r&&nB(d,a,t)&&(d=nF(e,{startingIndex:c-c%a-1,disabledIndices:i}))):r&&(d=nF(e,{startingIndex:c-c%a-1,disabledIndices:i})),nB(d,a,t)&&(d=c)),n.key===(o?eq:eV)&&(u&&eD(n),c%a!=0?(d=nF(e,{startingIndex:c,decrement:!0,disabledIndices:i}),r&&nB(d,a,t)&&(d=nF(e,{startingIndex:c+(a-c%a),decrement:!0,disabledIndices:i}))):r&&(d=nF(e,{startingIndex:c+(a-c%a),decrement:!0,disabledIndices:i})),nB(d,a,t)&&(d=c));let l=nb(s/a)===t;nM(e,d)&&(d=r&&l?n.key===(o?eq:eV)?s:nF(e,{startingIndex:c-c%a-1,disabledIndices:i}):c)}return d}({current:t.map(e=>null!=e?i.current[e]:null)},{event:e,orientation:x,loop:f,rtl:h,cols:j,disabledIndices:(s=[...(\"function\"!=typeof y?y:null)||i.current.map((e,n)=>nU(i,n,y)?n:void 0),void 0],t.flatMap((e,n)=>s.includes(e)?[n]:[])),minIndex:r,maxIndex:o,prevIndex:function(e,n,t,r,o){if(-1===e)return -1;let a=t.indexOf(e),i=n[e];switch(o){case\"tl\":return a;case\"tr\":if(!i)return a;return a+i.width-1;case\"bl\":if(!i)return a;return a+(i.height-1)*r;case\"br\":return t.lastIndexOf(e);default:return -1}}(R.current>l?a:R.current,n,t,j,e.key===e$?\"bl\":e.key===(h?eV:eq)?\"tr\":\"tl\"),stopEvent:!0})];if(null!=c&&(R.current=c,B()),\"both\"===x)return}if(n$(e.key,x)){if(eD(e),t&&!g&&eZ(e.currentTarget.ownerDocument)===e.currentTarget){R.current=nZ(e.key,x,h)?a:l,B();return}nZ(e.key,x,h)?f?R.current=n>=l?d&&n!==i.current.length?-1:a:nF(i,{startingIndex:n,disabledIndices:y}):R.current=Math.min(l,nF(i,{startingIndex:n,disabledIndices:y})):f?R.current=n<=a?d&&-1!==n?i.current.length:l:nF(i,{startingIndex:n,decrement:!0,disabledIndices:y}):R.current=Math.max(a,nF(i,{startingIndex:n,decrement:!0,disabledIndices:y})),nM(i,R.current)&&(R.current=-1),B()}}),ei=C.useMemo(()=>g&&t&&et&&{\"aria-activedescendant\":G||K},[g,t,et,G,K]),el=C.useMemo(()=>({\"aria-orientation\":\"both\"===x?void 0:x,...!z?ei:{},onKeyDown:ea,onPointerMove(){D.current=!0}}),[ei,ea,x,z]),es=C.useMemo(()=>{function e(e){\"auto\"===m&&eB(e.nativeEvent)&&(L.current=!0)}function n(e){L.current=m,\"auto\"===m&&eM(e.nativeEvent)&&(L.current=!0)}return{...ei,onKeyDown(e){D.current=!1;let n=e.key.startsWith(\"Arrow\"),o=[\"Home\",\"End\"].includes(e.key),a=nY(e.key,x,h),l=nX(e.key,x,h,j),s=nY(e.key,eo(),h),c=n$(e.key,x),d=(p?s:c)||\"Enter\"===e.key||\"\"===e.key.trim();if(g&&t){var f,m;let t,r,s=P?.nodesRef.current.find(e=>null==e.parentId),u=P&&s?(f=P.nodesRef.current,m=s.id,r=-1,!function e(n,o){o>r&&(t=n,r=o),e6(f,n).forEach(n=>{e(n.id,o+1)})}(m,0),f.find(e=>e.id===t)):null;if((n||o)&&u&&A){let n=new KeyboardEvent(\"keydown\",{key:e.key,bubbles:!0});if(a||l){let t=u.context?.elements.domReference===e.currentTarget,r=l&&!t?u.context?.elements.domReference:a?i.current.find(e=>e?.id===K):null;r&&(eD(e),r.dispatchEvent(n),J(void 0))}if((c||o)&&u.context&&u.context.open&&u.parentId&&e.currentTarget!==u.context.elements.domReference){eD(e),u.context.elements.domReference?.dispatchEvent(n);return}}return ea(e)}if(t||b||!n){if(d){let n=n$(e.key,eo());N.current=p&&n?null:e.key}if(p){s&&(eD(e),t?(R.current=nI(i,$.current),B()):r(!0,e.nativeEvent,\"list-navigation\"));return}c&&(null!=u&&(R.current=u),eD(e),!t&&b?r(!0,e.nativeEvent,\"list-navigation\"):ea(e),t&&B())}},onFocus(){t&&!g&&(R.current=-1,B())},onPointerDown:n,onPointerEnter:n,onMouseDown:e,onClick:e}},[K,ei,j,ea,$,m,i,p,B,r,t,b,x,eo,h,u,P,g,A]);return C.useMemo(()=>c?{reference:es,floating:el,item:er}:{},[c,es,el,er])}(ev,{enabled:!c,listRef:eO,activeIndex:S,nested:void 0!==n.type,loop:d,orientation:f,parentOrientation:\"menubar\"===n.type?n.context.orientation:void 0,rtl:\"rtl\"===eS,disabledIndices:tg,onNavigate:_,openOnArrowKeyDown:\"context-menu\"!==n.type}),e_=C.useRef(!1),ez=function(e,n){let{open:t,dataRef:r}=e,{listRef:o,activeIndex:a,onMatch:i,onTypingChange:l,enabled:s=!0,findMatch:c=null,resetMs:u=750,ignoreKeys:d=[],selectedIndex:f=null}=n,p=ek(),h=C.useRef(\"\"),g=C.useRef(f??a??-1),m=C.useRef(null),v=T(i),b=T(l),y=eA(c),x=eA(d);F(()=>{t&&(p.clear(),m.current=null,h.current=\"\")},[t,p]),F(()=>{t&&\"\"===h.current&&(g.current=f??a??-1)},[t,f,a]);let w=T(e=>{e?r.current.typing||(r.current.typing=e,b(e)):r.current.typing&&(r.current.typing=e,b(e))}),j=T(e=>{function n(e,n,t){let r=y.current?y.current(n,t):n.find(e=>e?.toLocaleLowerCase().indexOf(t.toLocaleLowerCase())===0);return r?e.indexOf(r):-1}let r=o.current;if(h.current.length>0&&\" \"!==h.current[0]&&(-1===n(r,r,h.current)?w(!1):\" \"===e.key&&eD(e)),null==r||x.current.includes(e.key)||1!==e.key.length||e.ctrlKey||e.metaKey||e.altKey)return;t&&\" \"!==e.key&&(eD(e),w(!0)),r.every(e=>!e||e[0]?.toLocaleLowerCase()!==e[1]?.toLocaleLowerCase())&&h.current===e.key&&(h.current=\"\",g.current=m.current),h.current+=e.key,p.start(u,()=>{h.current=\"\",g.current=m.current,w(!1)});let a=g.current,i=n(r,[...r.slice((a||0)+1),...r.slice(0,(a||0)+1)],h.current);-1!==i?(v(i),m.current=i):\" \"!==e.key&&(h.current=\"\",w(!1))}),k=C.useMemo(()=>({onKeyDown:j}),[j]),A=C.useMemo(()=>({onKeyDown:j,onKeyUp(e){\" \"===e.key&&w(!1)}}),[j,w]);return C.useMemo(()=>s?{reference:k,floating:A}:{},[s,k,A])}(ev,{listRef:eC,activeIndex:S,resetMs:500,onMatch:e=>{ee&&e!==S&&_(e)},onTypingChange:C.useCallback(e=>{e_.current=e},[])}),{getReferenceProps:eL,getFloatingProps:eT,getItemProps:eR}=nK([eb,ex,ew,ey,ej,eE,ez]),eN=function(e){let{enabled:n=!0,mouseDownAction:t,open:r}=e,o=C.useRef(!1);return C.useMemo(()=>n?{onMouseDown:e=>{(\"open\"===t&&!r||\"close\"===t&&r)&&(o.current=!0,eQ(e.currentTarget).addEventListener(\"click\",()=>{o.current=!1},{once:!0}))},onClick:e=>{o.current&&(o.current=!1,e.preventBaseUIHandler())}}:nr,[n,t,r])}({open:ee,enabled:\"menubar\"===n.type,mouseDownAction:\"open\"}),eH=C.useMemo(()=>{let e=tc(eL(),{onMouseEnter(){O(!0)},onMouseMove(){G(!0)}},eN);return delete e.role,e},[eL,eN,G]),eF=C.useMemo(()=>eT({onMouseEnter(){J&&\"menu\"!==n.type||O(!1)},onMouseMove(){G(!0)},onClick(){J&&O(!1)}}),[eT,J,n.type,G]),eU=C.useMemo(()=>eR(),[eR]),eX=C.useMemo(()=>({activeIndex:S,setActiveIndex:_,allowMouseUpTriggerRef:n.type?n.context.allowMouseUpTriggerRef:tm,floatingRootContext:ev,itemProps:eU,popupProps:eF,triggerProps:eH,itemDomElements:eO,itemLabels:eC,mounted:ei,open:ee,popupRef:M,positionerRef:I,setOpen:em,setPositionerElement:ea,triggerElement:b,setTriggerElement:y,transitionStatus:es,lastOpenChangeReason:P,instantType:j,onOpenChangeComplete:i,setHoverEnabled:O,typingRef:e_,modal:K,disabled:c,parent:n,rootId:X,allowMouseEnter:Q,setAllowMouseEnter:G}),[S,ev,eU,eF,eH,eO,eC,ei,ee,I,em,es,b,ea,P,j,i,K,c,n,X,Q,G]),eK=(0,l.jsx)(nJ.Provider,{value:eX,children:r});return void 0===n.type||\"context-menu\"===n.type?(0,l.jsx)(Z,{children:eK}):eK};function tb(e,n,t,r){var o,a,i,l,s;let c=P(ty).current;return o=c,a=e,i=n,l=t,s=r,(o.refs[0]!==a||o.refs[1]!==i||o.refs[2]!==l||o.refs[3]!==s)&&tx(c,[e,n,t,r]),c.callback}function ty(){return{callback:null,cleanup:null,refs:[]}}function tx(e,n){if(e.refs=n,n.every(e=>null==e)){e.callback=null;return}e.callback=t=>{if(e.cleanup&&(e.cleanup(),e.cleanup=null),null!=t){let r=Array(n.length).fill(null);for(let e=0;e<n.length;e+=1){let o=n[e];if(null!=o)switch(typeof o){case\"function\":{let n=o(t);\"function\"==typeof n&&(r[e]=n);break}case\"object\":o.current=t}}e.cleanup=()=>{for(let e=0;e<n.length;e+=1){let t=n[e];if(null!=t)switch(typeof t){case\"function\":{let n=r[e];\"function\"==typeof n?n():t(null);break}case\"object\":t.current=null}}}}}}let tw=parseInt(C.version,10);function tj(e,n,t={}){let r=n.render,o=function(e,n={}){let t,{className:r,render:o}=e,{state:a=nr,ref:i,props:l,disableStyleHooks:s,customStyleHookMapping:c,enabled:u=!0}=n,d=u?\"function\"==typeof r?r(a):r:void 0;!0!==s&&(t=C.useMemo(()=>u?function(e,n){let t={};for(let r in e){let o=e[r];if(n?.hasOwnProperty(r)){let e=n[r](o);null!=e&&Object.assign(t,e);continue}!0===o?t[`data-${r.toLowerCase()}`]=\"\":o&&(t[`data-${r.toLowerCase()}`]=o.toString())}return t}(a,c):nr,[a,c,u]));let f=u?tl(t,Array.isArray(l)?function(e){if(0===e.length)return ts;if(1===e.length)return tf(e[0],ts);let n={...tf(e[0],ts)};for(let t=1;t<e.length;t+=1)n=tu(n,e[t]);return n}(l):l)??nr:nr;return(\"undefined\"!=typeof document&&(u?Array.isArray(i)?f.ref=function(e){var n,t;let r=P(ty).current;return n=r,t=e,(n.refs.length!==t.length||n.refs.some((e,n)=>e!==t[n]))&&tx(r,e),r.callback}([f.ref,tk(o),...i]):f.ref=tb(f.ref,tk(o),i):tb(null,null)),u)?(void 0!==d&&(f.className=th(f.className,d)),f):nr}(n,t);return!1===t.enabled?null:function(e,n,t,r){if(n){if(\"function\"==typeof n)return n(t,r);let e=tc(t,n.props);return e.ref=t.ref,C.cloneElement(n,e)}if(e&&\"string\"==typeof e){var o,a;return o=e,a=t,\"button\"===o?(0,l.jsx)(\"button\",{type:\"button\",...a}):\"img\"===o?(0,l.jsx)(\"img\",{alt:\"\",...a}):C.createElement(o,a)}throw Error(\"Base UI: Render element or function are not defined.\")}(e,r,o,t.state??nr)}function tk(e){return e&&\"function\"!=typeof e?tw>=19?e.props.ref:e.ref:null}let tA=C.createContext(void 0);function tO(e=!1){let n=C.useContext(tA);if(void 0===n&&!e)throw Error(\"Base UI: CompositeRootContext is missing. Composite parts must be placed within <Composite.Root>.\");return n}let tC=C.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}}),tS=((r={})[r.None=0]=\"None\",r[r.GuessFromOrder=1]=\"GuessFromOrder\",r);function tE(e={}){let{label:n,metadata:t,textRef:r,indexGuessBehavior:o}=e,{register:a,unregister:i,subscribeMapChange:l,elementsRef:s,labelsRef:c,nextIndexRef:u}=C.useContext(tC),d=C.useRef(-1),[f,p]=C.useState(o===tS.GuessFromOrder?()=>{if(-1===d.current){let e=u.current;u.current+=1,d.current=e}return d.current}:-1),h=C.useRef(null),g=C.useCallback(e=>{if(h.current=e,-1!==f&&null!==e&&(s.current[f]=e,c)){let t=void 0!==n;c.current[f]=t?n:r?.current?.textContent??e.textContent}},[f,s,c,n,r]);return F(()=>{let e=h.current;if(e)return a(e,t),()=>{i(e)}},[a,i,t]),F(()=>l(e=>{let n=h.current?e.get(h.current)?.index:null;null!=n&&p(n)}),[l,p]),C.useMemo(()=>({ref:g,index:f}),[f,g])}function t_(e){let{render:n,className:t,itemRef:r=null,metadata:o,...a}=e,{props:i,ref:l}=function(e={}){let{highlightedIndex:n,onHighlightedIndexChange:t,highlightItemOnHover:r}=tO(),{ref:o,index:a}=tE(e),i=n===a,l=C.useRef(null),s=tb(o,l),c=C.useMemo(()=>({tabIndex:i?0:-1,onFocus(){t(a)},onMouseMove(){let e=l.current;if(!r||!e)return;let n=e.hasAttribute(\"disabled\")||\"true\"===e.ariaDisabled;i||n||e.focus()}}),[a,i,t,r]);return C.useMemo(()=>({props:c,ref:s,index:a}),[c,a,s])}({metadata:o});return tj(\"div\",e,{ref:[r,l],props:[i,a]})}let tP=((o={}).startingStyle=\"data-starting-style\",o.endingStyle=\"data-ending-style\",o),tz={[tP.startingStyle]:\"\"},tL={[tP.endingStyle]:\"\"},tT={transitionStatus:e=>\"starting\"===e?tz:\"ending\"===e?tL:null},tR=((a={}).open=\"data-open\",a.closed=\"data-closed\",a[a.startingStyle=tP.startingStyle]=\"startingStyle\",a[a.endingStyle=tP.endingStyle]=\"endingStyle\",a.anchorHidden=\"data-anchor-hidden\",a),tN=((i={}).popupOpen=\"data-popup-open\",i.pressed=\"data-pressed\",i),tD={[tN.popupOpen]:\"\"},tB={[tN.popupOpen]:\"\",[tN.pressed]:\"\"},tM={[tR.open]:\"\"},tI={[tR.closed]:\"\"},tH={[tR.anchorHidden]:\"\"},tF={open:e=>e?tD:null},tU={open:e=>e?tB:null},tV={open:e=>e?tM:tI,anchorHidden:e=>e?tH:null};function tq(e={}){let{disabled:n=!1,focusableWhenDisabled:t,tabIndex:r=0,native:o=!0}=e,a=C.useRef(null),i=void 0!==tO(!0),l=T(()=>{let e=a.current;return!!(e?.tagName===\"A\"&&e?.href)}),{props:s}=function(e){let{focusableWhenDisabled:n,disabled:t,composite:r=!1,tabIndex:o=0,isNativeButton:a}=e,i=r&&!1!==n,l=r&&!1===n;return{props:C.useMemo(()=>{let e={onKeyDown(e){t&&n&&\"Tab\"!==e.key&&e.preventDefault()}};return r||(e.tabIndex=o,!a&&t&&(e.tabIndex=n?o:-1)),(a&&(n||i)||!a&&t)&&(e[\"aria-disabled\"]=t),a&&(!n||l)&&(e.disabled=t),e},[r,t,n,i,l,a,o])}}({focusableWhenDisabled:t,disabled:n,composite:i,tabIndex:r,isNativeButton:o});return F(()=>{let e=a.current;e instanceof HTMLButtonElement&&i&&n&&void 0===s.disabled&&e.disabled&&(e.disabled=!1)},[n,s.disabled,i]),{getButtonProps:C.useCallback((e={})=>{let{onClick:t,onMouseDown:r,onKeyUp:a,onKeyDown:i,onPointerDown:c,...u}=e;return tc({type:o?\"button\":void 0,onClick(e){if(n)return void e.preventDefault();t?.(e)},onMouseDown(e){n||r?.(e)},onKeyDown(e){n||(tp(e),i?.(e)),!e.baseUIHandlerPrevented&&(e.target!==e.currentTarget||o||l()||\"Enter\"!==e.key||n||(t?.(e),e.preventDefault()))},onKeyUp(e){n||(tp(e),a?.(e)),!e.baseUIHandlerPrevented&&(e.target!==e.currentTarget||o||n||\" \"!==e.key||t?.(e))},onPointerDown(e){if(n)return void e.preventDefault();c?.(e)}},o?void 0:{role:\"button\"},s,u)},[n,s,o,l]),buttonRef:a}}let tW=C.forwardRef(function(e,n){let{render:t,className:r,disabled:o=!1,nativeButton:a=!0,...i}=e,{triggerProps:s,disabled:c,setTriggerElement:u,open:d,allowMouseUpTriggerRef:f,positionerRef:p,parent:h,lastOpenChangeReason:g,rootId:m}=n0(),v=o||c,b=C.useRef(null),y=ek(),{getButtonProps:x,buttonRef:w}=tq({disabled:v,native:a}),j=tb(w,u),{events:k}=W();C.useEffect(()=>{d||void 0!==h.type||(f.current=!1)},[f,d,h.type]);let A=T(e=>{if(!b.current)return;y.clear(),f.current=!1;let n=e.target;if(eY(b.current,n)||eY(p.current,n)||n===b.current||null!=n&&function e(n){return en(n)&&n.hasAttribute(\"data-rootownerid\")?n.getAttribute(\"data-rootownerid\")??void 0:eh(n)?void 0:e(ev(n))}(n)===m)return;let t=function(e){let n=e.getBoundingClientRect(),t=window.getComputedStyle(e,\"::before\"),r=window.getComputedStyle(e,\"::after\");if(\"none\"===t.content&&\"none\"===r.content)return n;let o=parseFloat(t.width)||0,a=parseFloat(t.height)||0,i=parseFloat(r.width)||0,l=parseFloat(r.height)||0,s=Math.max(n.width,o,i),c=Math.max(n.height,a,l),u=s-n.width,d=c-n.height;return{left:n.left-u/2,right:n.right+u/2,top:n.top-d/2,bottom:n.bottom+d/2}}(b.current);e.clientX>=t.left-2&&e.clientX<=t.right+2&&e.clientY>=t.top-2&&e.clientY<=t.bottom+2||k.emit(\"close\",{domEvent:e,reason:\"cancel-open\"})});C.useEffect(()=>{d&&\"trigger-hover\"===g&&eQ(b.current).addEventListener(\"mouseup\",A,{once:!0})},[d,A,g]);let O=C.useCallback(e=>tc({\"aria-haspopup\":\"menu\",ref:j,onMouseDown:e=>{d||(y.start(200,()=>{f.current=!0}),eQ(e.currentTarget).addEventListener(\"mouseup\",A,{once:!0}))}},e,x),[x,j,d,f,y,A]),S=tj(\"button\",e,{state:C.useMemo(()=>({disabled:v,open:d}),[v,d]),customStyleHookMapping:tU,ref:[b,n,w],props:[s,i,O]});return\"menubar\"===h.type?(0,l.jsx)(t_,{render:S}):S}),t$={clip:\"rect(0 0 0 0)\",overflow:\"hidden\",whiteSpace:\"nowrap\",position:\"fixed\",top:0,left:0,border:0,padding:0,width:1,height:1,margin:-1},tZ=C.forwardRef(function(e,n){let[t,r]=C.useState();return F(()=>{eL&&r(\"button\")},[]),(0,l.jsx)(\"span\",{...e,ref:n,tabIndex:0,role:t,\"aria-hidden\":!t||void 0,style:t$,\"data-base-ui-focus-guard\":\"\"})});var tY='input:not([inert]),select:not([inert]),textarea:not([inert]),a[href]:not([inert]),button:not([inert]),[tabindex]:not(slot):not([inert]),audio[controls]:not([inert]),video[controls]:not([inert]),[contenteditable]:not([contenteditable=\"false\"]):not([inert]),details>summary:first-of-type:not([inert]),details:not([inert])',tX=\"undefined\"==typeof Element,tK=tX?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,tQ=!tX&&Element.prototype.getRootNode?function(e){var n;return null==e||null==(n=e.getRootNode)?void 0:n.call(e)}:function(e){return null==e?void 0:e.ownerDocument},tG=function e(n,t){void 0===t&&(t=!0);var r,o=null==n||null==(r=n.getAttribute)?void 0:r.call(n,\"inert\");return\"\"===o||\"true\"===o||t&&n&&e(n.parentNode)},tJ=function(e){var n,t=null==e||null==(n=e.getAttribute)?void 0:n.call(e,\"contenteditable\");return\"\"===t||\"true\"===t},t0=function(e,n,t){if(tG(e))return[];var r=Array.prototype.slice.apply(e.querySelectorAll(tY));return n&&tK.call(e,tY)&&r.unshift(e),r=r.filter(t)},t1=function e(n,t,r){for(var o=[],a=Array.from(n);a.length;){var i=a.shift();if(!tG(i,!1))if(\"SLOT\"===i.tagName){var l=i.assignedElements(),s=e(l.length?l:i.children,!0,r);r.flatten?o.push.apply(o,s):o.push({scopeParent:i,candidates:s})}else{tK.call(i,tY)&&r.filter(i)&&(t||!n.includes(i))&&o.push(i);var c=i.shadowRoot||\"function\"==typeof r.getShadowRoot&&r.getShadowRoot(i),u=!tG(c,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(c&&u){var d=e(!0===c?i.children:c.children,!0,r);r.flatten?o.push.apply(o,d):o.push({scopeParent:i,candidates:d})}else a.unshift.apply(a,i.children)}}return o},t2=function(e){return!isNaN(parseInt(e.getAttribute(\"tabindex\"),10))},t4=function(e){if(!e)throw Error(\"No node provided\");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||tJ(e))&&!t2(e)?0:e.tabIndex},t5=function(e,n){var t=t4(e);return t<0&&n&&!t2(e)?0:t},t3=function(e,n){return e.tabIndex===n.tabIndex?e.documentOrder-n.documentOrder:e.tabIndex-n.tabIndex},t6=function(e){return\"INPUT\"===e.tagName},t9=function(e,n){for(var t=0;t<e.length;t++)if(e[t].checked&&e[t].form===n)return e[t]},t8=function(e){if(!e.name)return!0;var n,t=e.form||tQ(e),r=function(e){return t.querySelectorAll('input[type=\"radio\"][name=\"'+e+'\"]')};if(\"undefined\"!=typeof window&&void 0!==window.CSS&&\"function\"==typeof window.CSS.escape)n=r(window.CSS.escape(e.name));else try{n=r(e.name)}catch(e){return console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\",e.message),!1}var o=t9(n,e.form);return!o||o===e},t7=function(e){return t6(e)&&\"radio\"===e.type&&!t8(e)},re=function(e){var n,t,r,o,a,i,l,s=e&&tQ(e),c=null==(n=s)?void 0:n.host,u=!1;if(s&&s!==e)for(u=!!(null!=(t=c)&&null!=(r=t.ownerDocument)&&r.contains(c)||null!=e&&null!=(o=e.ownerDocument)&&o.contains(e));!u&&c;)u=!!(null!=(i=c=null==(a=s=tQ(c))?void 0:a.host)&&null!=(l=i.ownerDocument)&&l.contains(c));return u},rn=function(e){var n=e.getBoundingClientRect(),t=n.width,r=n.height;return 0===t&&0===r},rt=function(e,n){var t=n.displayCheck,r=n.getShadowRoot;if(\"hidden\"===getComputedStyle(e).visibility)return!0;var o=tK.call(e,\"details>summary:first-of-type\")?e.parentElement:e;if(tK.call(o,\"details:not([open]) *\"))return!0;if(t&&\"full\"!==t&&\"legacy-full\"!==t){if(\"non-zero-area\"===t)return rn(e)}else{if(\"function\"==typeof r){for(var a=e;e;){var i=e.parentElement,l=tQ(e);if(i&&!i.shadowRoot&&!0===r(i))return rn(e);e=e.assignedSlot?e.assignedSlot:i||l===e.ownerDocument?i:l.host}e=a}if(re(e))return!e.getClientRects().length;if(\"legacy-full\"!==t)return!0}return!1},rr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var n=e.parentElement;n;){if(\"FIELDSET\"===n.tagName&&n.disabled){for(var t=0;t<n.children.length;t++){var r=n.children.item(t);if(\"LEGEND\"===r.tagName)return!!tK.call(n,\"fieldset[disabled] *\")||!r.contains(e)}return!0}n=n.parentElement}return!1},ro=function(e,n){return!(n.disabled||tG(n)||t6(n)&&\"hidden\"===n.type||rt(n,e)||\"DETAILS\"===n.tagName&&Array.prototype.slice.apply(n.children).some(function(e){return\"SUMMARY\"===e.tagName})||rr(n))},ra=function(e,n){return!(t7(n)||0>t4(n))&&!!ro(e,n)},ri=function(e){var n=parseInt(e.getAttribute(\"tabindex\"),10);return!!isNaN(n)||!!(n>=0)},rl=function e(n){var t=[],r=[];return n.forEach(function(n,o){var a=!!n.scopeParent,i=a?n.scopeParent:n,l=t5(i,a),s=a?e(n.candidates):i;0===l?a?t.push.apply(t,s):t.push(i):r.push({documentOrder:o,tabIndex:l,item:n,isScope:a,content:s})}),r.sort(t3).reduce(function(e,n){return n.isScope?e.push.apply(e,n.content):e.push(n.content),e},[]).concat(t)},rs=function(e,n){return rl((n=n||{}).getShadowRoot?t1([e],n.includeContainer,{filter:ra.bind(null,n),flatten:!1,getShadowRoot:n.getShadowRoot,shadowRootFilter:ri}):t0(e,n.includeContainer,ra.bind(null,n)))},rc=function(e,n){return(n=n||{}).getShadowRoot?t1([e],n.includeContainer,{filter:ro.bind(null,n),flatten:!0,getShadowRoot:n.getShadowRoot}):t0(e,n.includeContainer,ro.bind(null,n))},ru=function(e,n){if(n=n||{},!e)throw Error(\"No node provided\");return!1!==tK.call(e,tY)&&ra(n,e)};let rd=()=>({getShadowRoot:!0,displayCheck:\"function\"==typeof ResizeObserver&&ResizeObserver.toString().includes(\"[native code]\")?\"full\":\"none\"});function rf(e,n){let t=rs(e,rd()),r=t.length;if(0===r)return;let o=eZ(eQ(e)),a=t.indexOf(o);return t[-1===a?1===n?0:r-1:a+n]}function rp(e){return rf(eQ(e).body,1)||e}function rh(e){return rf(eQ(e).body,-1)||e}function rg(e,n){let t=n||e.currentTarget,r=e.relatedTarget;return!r||!eY(t,r)}function rm(e){e.querySelectorAll(\"[data-tabindex]\").forEach(e=>{let n=e.dataset.tabindex;delete e.dataset.tabindex,n?e.setAttribute(\"tabindex\",n):e.removeAttribute(\"tabindex\")})}let rv=C.createContext(null),rb=()=>C.useContext(rv),ry=e1(\"portal\");function rx(e={}){let{id:n,root:t}=e,r=H(),o=rb(),[a,i]=C.useState(null),l=C.useRef(null);return F(()=>()=>{a?.remove(),queueMicrotask(()=>{l.current=null})},[a]),F(()=>{if(!r||l.current)return;let e=n?document.getElementById(n):null;if(!e)return;let t=document.createElement(\"div\");t.id=r,t.setAttribute(ry,\"\"),e.appendChild(t),l.current=t,i(t)},[n,r]),F(()=>{if(null===t||!r||l.current)return;let e=t||o?.portalNode;e&&!ee(e)&&(e=e.current),e=e||document.body;let a=null;n&&((a=document.createElement(\"div\")).id=n,e.appendChild(a));let s=document.createElement(\"div\");s.id=r,s.setAttribute(ry,\"\"),(e=a||e).appendChild(s),l.current=s,i(s)},[n,t,r,o]),a}function rw(e){let{children:n,id:t,root:r,preserveTabOrder:o=!0}=e,a=rx({id:t,root:r}),[i,s]=C.useState(null),c=C.useRef(null),u=C.useRef(null),d=C.useRef(null),f=C.useRef(null),p=i?.modal,h=i?.open,g=!!i&&!i.modal&&i.open&&o&&!!(r||a);return C.useEffect(()=>{if(a&&o&&!p)return a.addEventListener(\"focusin\",e,!0),a.addEventListener(\"focusout\",e,!0),()=>{a.removeEventListener(\"focusin\",e,!0),a.removeEventListener(\"focusout\",e,!0)};function e(e){a&&rg(e)&&(\"focusin\"===e.type?rm:function(e){rs(e,rd()).forEach(e=>{e.dataset.tabindex=e.getAttribute(\"tabindex\")||\"\",e.setAttribute(\"tabindex\",\"-1\")})})(a)}},[a,o,p]),C.useEffect(()=>{a&&(h||rm(a))},[h,a]),(0,l.jsxs)(rv.Provider,{value:C.useMemo(()=>({preserveTabOrder:o,beforeOutsideRef:c,afterOutsideRef:u,beforeInsideRef:d,afterInsideRef:f,portalNode:a,setFocusManagerState:s}),[o,a]),children:[g&&a&&(0,l.jsx)(tZ,{\"data-type\":\"outside\",ref:c,onFocus:e=>{if(rg(e,a))d.current?.focus();else{let e=rh(i?i.domReference:null);e?.focus()}}}),g&&a&&(0,l.jsx)(\"span\",{\"aria-owns\":a.id,style:t$}),a&&E.createPortal(n,a),g&&a&&(0,l.jsx)(tZ,{\"data-type\":\"outside\",ref:u,onFocus:e=>{if(rg(e,a))f.current?.focus();else{let n=rp(i?i.domReference:null);n?.focus(),i?.closeOnFocusOut&&i?.onOpenChange(!1,e.nativeEvent,\"focus-out\")}}})]})}let rj=C.createContext(void 0);function rk(e){let{children:n,keepMounted:t=!1,container:r}=e,{mounted:o}=n0();return o||t?(0,l.jsx)(rj.Provider,{value:t,children:(0,l.jsx)(rw,{root:r,children:n})}):null}let rA=C.createContext(void 0);function rO(e,n,t){let r,{reference:o,floating:a}=e,i=nE(n),l=nO(nE(n)),s=nC(l),c=nk(n),u=\"y\"===i,d=o.x+o.width/2-a.width/2,f=o.y+o.height/2-a.height/2,p=o[s]/2-a[s]/2;switch(c){case\"top\":r={x:d,y:o.y-a.height};break;case\"bottom\":r={x:d,y:o.y+o.height};break;case\"right\":r={x:o.x+o.width,y:f};break;case\"left\":r={x:o.x-a.width,y:f};break;default:r={x:o.x,y:o.y}}switch(nA(n)){case\"start\":r[l]-=p*(t&&u?-1:1);break;case\"end\":r[l]+=p*(t&&u?-1:1)}return r}let rC=async(e,n,t)=>{let{placement:r=\"bottom\",strategy:o=\"absolute\",middleware:a=[],platform:i}=t,l=a.filter(Boolean),s=await (null==i.isRTL?void 0:i.isRTL(n)),c=await i.getElementRects({reference:e,floating:n,strategy:o}),{x:u,y:d}=rO(c,r,s),f=r,p={},h=0;for(let t=0;t<l.length;t++){let{name:a,fn:g}=l[t],{x:m,y:v,data:b,reset:y}=await g({x:u,y:d,initialPlacement:r,placement:f,strategy:o,middlewareData:p,rects:c,platform:i,elements:{reference:e,floating:n}});u=null!=m?m:u,d=null!=v?v:d,p={...p,[a]:{...p[a],...b}},y&&h<=50&&(h++,\"object\"==typeof y&&(y.placement&&(f=y.placement),y.rects&&(c=!0===y.rects?await i.getElementRects({reference:e,floating:n,strategy:o}):y.rects),{x:u,y:d}=rO(c,f,s)),t=-1)}return{x:u,y:d,placement:f,strategy:o,middlewareData:p}};async function rS(e,n){var t;void 0===n&&(n={});let{x:r,y:o,platform:a,rects:i,elements:l,strategy:s}=e,{boundary:c=\"clippingAncestors\",rootBoundary:u=\"viewport\",elementContext:d=\"floating\",altBoundary:f=!1,padding:p=0}=nj(n,e),h=nN(p),g=l[f?\"floating\"===d?\"reference\":\"floating\":d],m=nD(await a.getClippingRect({element:null==(t=await (null==a.isElement?void 0:a.isElement(g)))||t?g:g.contextElement||await (null==a.getDocumentElement?void 0:a.getDocumentElement(l.floating)),boundary:c,rootBoundary:u,strategy:s})),v=\"floating\"===d?{x:r,y:o,width:i.floating.width,height:i.floating.height}:i.reference,b=await (null==a.getOffsetParent?void 0:a.getOffsetParent(l.floating)),y=await (null==a.isElement?void 0:a.isElement(b))&&await (null==a.getScale?void 0:a.getScale(b))||{x:1,y:1},x=nD(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:v,offsetParent:b,strategy:s}):v);return{top:(m.top-x.top+h.top)/y.y,bottom:(x.bottom-m.bottom+h.bottom)/y.y,left:(m.left-x.left+h.left)/y.x,right:(x.right-m.right+h.right)/y.x}}function rE(e,n){return{top:e.top-n.height,right:e.right-n.width,bottom:e.bottom-n.height,left:e.left-n.width}}function r_(e){return nh.some(n=>e[n]>=0)}let rP=new Set([\"left\",\"top\"]);async function rz(e,n){let{placement:t,platform:r,elements:o}=e,a=await (null==r.isRTL?void 0:r.isRTL(o.floating)),i=nk(t),l=nA(t),s=\"y\"===nE(t),c=rP.has(i)?-1:1,u=a&&s?-1:1,d=nj(n,e),{mainAxis:f,crossAxis:p,alignmentAxis:h}=\"number\"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&\"number\"==typeof h&&(p=\"end\"===l?-1*h:h),s?{x:p*u,y:f*c}:{x:f*c,y:p*u}}function rL(e){let n=eg(e),t=parseFloat(n.width)||0,r=parseFloat(n.height)||0,o=en(e),a=o?e.offsetWidth:t,i=o?e.offsetHeight:r,l=nv(t)!==a||nv(r)!==i;return l&&(t=a,r=i),{width:t,height:r,$:l}}function rT(e){return ee(e)?e:e.contextElement}function rR(e){let n=rT(e);if(!en(n))return ny(1);let t=n.getBoundingClientRect(),{width:r,height:o,$:a}=rL(n),i=(a?nv(t.width):t.width)/r,l=(a?nv(t.height):t.height)/o;return i&&Number.isFinite(i)||(i=1),l&&Number.isFinite(l)||(l=1),{x:i,y:l}}let rN=ny(0);function rD(e){let n=Q(e);return ef()&&n.visualViewport?{x:n.visualViewport.offsetLeft,y:n.visualViewport.offsetTop}:rN}function rB(e,n,t,r){var o;void 0===n&&(n=!1),void 0===t&&(t=!1);let a=e.getBoundingClientRect(),i=rT(e),l=ny(1);n&&(r?ee(r)&&(l=rR(r)):l=rR(e));let s=(void 0===(o=t)&&(o=!1),r&&(!o||r===Q(i))&&o)?rD(i):ny(0),c=(a.left+s.x)/l.x,u=(a.top+s.y)/l.y,d=a.width/l.x,f=a.height/l.y;if(i){let e=Q(i),n=r&&ee(r)?Q(r):r,t=e,o=ey(t);for(;o&&r&&n!==t;){let e=rR(o),n=o.getBoundingClientRect(),r=eg(o),a=n.left+(o.clientLeft+parseFloat(r.paddingLeft))*e.x,i=n.top+(o.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,u*=e.y,d*=e.x,f*=e.y,c+=a,u+=i,o=ey(t=Q(o))}}return nD({width:d,height:f,x:c,y:u})}function rM(e,n){let t=em(e).scrollLeft;return n?n.left+t:rB(G(e)).left+t}function rI(e,n,t){void 0===t&&(t=!1);let r=e.getBoundingClientRect();return{x:r.left+n.scrollLeft-(t?0:rM(e,r)),y:r.top+n.scrollTop}}let rH=new Set([\"absolute\",\"fixed\"]);function rF(e,n,t){let r;if(\"viewport\"===n)r=function(e,n){let t=Q(e),r=G(e),o=t.visualViewport,a=r.clientWidth,i=r.clientHeight,l=0,s=0;if(o){a=o.width,i=o.height;let e=ef();(!e||e&&\"fixed\"===n)&&(l=o.offsetLeft,s=o.offsetTop)}return{width:a,height:i,x:l,y:s}}(e,t);else if(\"document\"===n)r=function(e){let n=G(e),t=em(e),r=e.ownerDocument.body,o=nm(n.scrollWidth,n.clientWidth,r.scrollWidth,r.clientWidth),a=nm(n.scrollHeight,n.clientHeight,r.scrollHeight,r.clientHeight),i=-t.scrollLeft+rM(e),l=-t.scrollTop;return\"rtl\"===eg(r).direction&&(i+=nm(n.clientWidth,r.clientWidth)-o),{width:o,height:a,x:i,y:l}}(G(e));else if(ee(n))r=function(e,n){let t=rB(e,!0,\"fixed\"===n),r=t.top+e.clientTop,o=t.left+e.clientLeft,a=en(e)?rR(e):ny(1),i=e.clientWidth*a.x,l=e.clientHeight*a.y;return{width:i,height:l,x:o*a.x,y:r*a.y}}(n,t);else{let t=rD(e);r={x:n.x-t.x,y:n.y-t.y,width:n.width,height:n.height}}return nD(r)}function rU(e){return\"static\"===eg(e).position}function rV(e,n){if(!en(e)||\"fixed\"===eg(e).position)return null;if(n)return n(e);let t=e.offsetParent;return G(e)===t&&(t=t.ownerDocument.body),t}function rq(e,n){var t;let r=Q(e);if(el(e))return r;if(!en(e)){let n=ev(e);for(;n&&!eh(n);){if(ee(n)&&!rU(n))return n;n=ev(n)}return r}let o=rV(e,n);for(;o&&(t=o,ea.has(K(t)))&&rU(o);)o=rV(o,n);return o&&eh(o)&&rU(o)&&!ed(o)?r:o||function(e){let n=ev(e);for(;en(n)&&!eh(n);){if(ed(n))return n;if(el(n))break;n=ev(n)}return null}(e)||r}let rW=async function(e){let n=this.getOffsetParent||rq,t=this.getDimensions,r=await t(e.floating);return{reference:function(e,n,t){let r=en(n),o=G(n),a=\"fixed\"===t,i=rB(e,!0,a,n),l={scrollLeft:0,scrollTop:0},s=ny(0);if(r||!r&&!a)if((\"body\"!==K(n)||eo(o))&&(l=em(n)),r){let e=rB(n,!0,a,n);s.x=e.x+n.clientLeft,s.y=e.y+n.clientTop}else o&&(s.x=rM(o));a&&!r&&o&&(s.x=rM(o));let c=!o||r||a?ny(0):rI(o,l);return{x:i.left+l.scrollLeft-s.x-c.x,y:i.top+l.scrollTop-s.y-c.y,width:i.width,height:i.height}}(e.reference,await n(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},r$={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:n,rect:t,offsetParent:r,strategy:o}=e,a=\"fixed\"===o,i=G(r),l=!!n&&el(n.floating);if(r===i||l&&a)return t;let s={scrollLeft:0,scrollTop:0},c=ny(1),u=ny(0),d=en(r);if((d||!d&&!a)&&((\"body\"!==K(r)||eo(i))&&(s=em(r)),en(r))){let e=rB(r);c=rR(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=!i||d||a?ny(0):rI(i,s,!0);return{width:t.width*c.x,height:t.height*c.y,x:t.x*c.x-s.scrollLeft*c.x+u.x+f.x,y:t.y*c.y-s.scrollTop*c.y+u.y+f.y}},getDocumentElement:G,getClippingRect:function(e){let{element:n,boundary:t,rootBoundary:r,strategy:o}=e,a=[...\"clippingAncestors\"===t?el(n)?[]:function(e,n){let t=n.get(e);if(t)return t;let r=eb(e,[],!1).filter(e=>ee(e)&&\"body\"!==K(e)),o=null,a=\"fixed\"===eg(e).position,i=a?ev(e):e;for(;ee(i)&&!eh(i);){let n=eg(i),t=ed(i);t||\"fixed\"!==n.position||(o=null),(a?!t&&!o:!t&&\"static\"===n.position&&!!o&&rH.has(o.position)||eo(i)&&!t&&function e(n,t){let r=ev(n);return!(r===t||!ee(r)||eh(r))&&(\"fixed\"===eg(r).position||e(r,t))}(e,i))?r=r.filter(e=>e!==i):o=n,i=ev(i)}return n.set(e,r),r}(n,this._c):[].concat(t),r],i=a[0],l=a.reduce((e,t)=>{let r=rF(n,t,o);return e.top=nm(r.top,e.top),e.right=ng(r.right,e.right),e.bottom=ng(r.bottom,e.bottom),e.left=nm(r.left,e.left),e},rF(n,i,o));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},getOffsetParent:rq,getElementRects:rW,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:n,height:t}=rL(e);return{width:n,height:t}},getScale:rR,isElement:ee,isRTL:function(e){return\"rtl\"===eg(e).direction}};function rZ(e,n){return e.x===n.x&&e.y===n.y&&e.width===n.width&&e.height===n.height}function rY(e,n,t,r){let o;void 0===r&&(r={});let{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:l=\"function\"==typeof ResizeObserver,layoutShift:s=\"function\"==typeof IntersectionObserver,animationFrame:c=!1}=r,u=rT(e),d=a||i?[...u?eb(u):[],...eb(n)]:[];d.forEach(e=>{a&&e.addEventListener(\"scroll\",t,{passive:!0}),i&&e.addEventListener(\"resize\",t)});let f=u&&s?function(e,n){let t,r=null,o=G(e);function a(){var e;clearTimeout(t),null==(e=r)||e.disconnect(),r=null}return!function i(l,s){void 0===l&&(l=!1),void 0===s&&(s=1),a();let c=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=c;if(l||n(),!f||!p)return;let h=nb(d),g=nb(o.clientWidth-(u+f)),m={rootMargin:-h+\"px \"+-g+\"px \"+-nb(o.clientHeight-(d+p))+\"px \"+-nb(u)+\"px\",threshold:nm(0,ng(1,s))||1},v=!0;function b(n){let r=n[0].intersectionRatio;if(r!==s){if(!v)return i();r?i(!1,r):t=setTimeout(()=>{i(!1,1e-7)},1e3)}1!==r||rZ(c,e.getBoundingClientRect())||i(),v=!1}try{r=new IntersectionObserver(b,{...m,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(b,m)}r.observe(e)}(!0),a}(u,t):null,p=-1,h=null;l&&(h=new ResizeObserver(e=>{let[r]=e;r&&r.target===u&&h&&(h.unobserve(n),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var e;null==(e=h)||e.observe(n)})),t()}),u&&!c&&h.observe(u),h.observe(n));let g=c?rB(e):null;return c&&function n(){let r=rB(e);g&&!rZ(g,r)&&t(),g=r,o=requestAnimationFrame(n)}(),t(),()=>{var e;d.forEach(e=>{a&&e.removeEventListener(\"scroll\",t),i&&e.removeEventListener(\"resize\",t)}),null==f||f(),null==(e=h)||e.disconnect(),h=null,c&&cancelAnimationFrame(o)}}let rX=e=>({name:\"arrow\",options:e,async fn(n){let{x:t,y:r,placement:o,rects:a,platform:i,elements:l,middlewareData:s}=n,{element:c,padding:u=0}=nj(e,n)||{};if(null==c)return{};let d=nN(u),f={x:t,y:r},p=nO(nE(o)),h=nC(p),g=await i.getDimensions(c),m=\"y\"===p,v=m?\"clientHeight\":\"clientWidth\",b=a.reference[h]+a.reference[p]-f[p]-a.floating[h],y=f[p]-a.reference[p],x=await (null==i.getOffsetParent?void 0:i.getOffsetParent(c)),w=x?x[v]:0;w&&await (null==i.isElement?void 0:i.isElement(x))||(w=l.floating[v]||a.floating[h]);let j=w/2-g[h]/2-1,k=ng(d[m?\"top\":\"left\"],j),A=ng(d[m?\"bottom\":\"right\"],j),O=w-g[h]-A,C=w/2-g[h]/2+(b/2-y/2),S=nm(k,ng(C,O)),E=!s.arrow&&null!=nA(o)&&C!==S&&a.reference[h]/2-(C<k?k:A)-g[h]/2<0,_=E?C<k?C-k:C-O:0;return{[p]:f[p]+_,data:{[p]:S,centerOffset:C-S-_,...E&&{alignmentOffset:_}},reset:E}}});var rK=\"undefined\"!=typeof document?C.useLayoutEffect:function(){};function rQ(e,n){let t,r,o;if(e===n)return!0;if(typeof e!=typeof n)return!1;if(\"function\"==typeof e&&e.toString()===n.toString())return!0;if(e&&n&&\"object\"==typeof e){if(Array.isArray(e)){if((t=e.length)!==n.length)return!1;for(r=t;0!=r--;)if(!rQ(e[r],n[r]))return!1;return!0}if((t=(o=Object.keys(e)).length)!==Object.keys(n).length)return!1;for(r=t;0!=r--;)if(!({}).hasOwnProperty.call(n,o[r]))return!1;for(r=t;0!=r--;){let t=o[r];if((\"_owner\"!==t||!e.$$typeof)&&!rQ(e[t],n[t]))return!1}return!0}return e!=e&&n!=n}function rG(e){return\"undefined\"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function rJ(e,n){let t=rG(e);return Math.round(n*t)/t}function r0(e){let n=C.useRef(e);return rK(()=>{n.current=e}),n}function r1(e,n,t){let r=\"inline-start\"===e||\"inline-end\"===e;return({top:\"top\",right:r?t?\"inline-start\":\"inline-end\":\"right\",bottom:\"bottom\",left:r?t?\"inline-end\":\"inline-start\":\"left\"})[n]}function r2(e,n,t){let{rects:r,placement:o}=e;return{side:r1(n,nk(o),t),align:nA(o)||\"center\",anchor:{width:r.reference.width,height:r.reference.height},positioner:{width:r.floating.width,height:r.floating.height}}}function r4(e){var n,t,r,o,a,i,l,s,c,u,d,f,p,h,g,m,v;let{anchor:b,positionMethod:y=\"absolute\",side:x=\"bottom\",sideOffset:w=0,align:j=\"center\",alignOffset:k=0,collisionBoundary:A,collisionPadding:O=5,sticky:S=!1,arrowPadding:_=5,trackAnchor:P=!0,keepMounted:z=!1,floatingRootContext:L,mounted:R,collisionAvoidance:N,shiftCrossAxis:D=!1,nodeId:B,adaptiveOrigin:M}=e,I=N.side||\"flip\",H=N.align||\"flip\",U=N.fallbackAxisSide||\"end\",V=\"function\"==typeof b?b:void 0,q=T(V),$=V?q:b,Z=eA(b),X=\"rtl\"===n6(),K={top:\"top\",right:\"right\",bottom:\"bottom\",left:\"left\",\"inline-end\":X?\"left\":\"right\",\"inline-start\":X?\"right\":\"left\"}[x],Q=\"center\"===j?K:`${K}-${j}`,G={boundary:\"clipping-ancestors\"===A?\"clippingAncestors\":A,padding:O},J=C.useRef(null),en=eA(w),et=eA(k),er=\"function\"!=typeof w?w:0,eo=[(n=e=>{let n=r2(e,x,X),t=\"function\"==typeof en.current?en.current(n):en.current,r=\"function\"==typeof et.current?et.current(n):et.current;return{mainAxis:t,crossAxis:r,alignmentAxis:r}},t=[er,\"function\"!=typeof k?k:0,X,x],{...(void 0===(r=n)&&(r=0),{name:\"offset\",options:r,async fn(e){var n,t;let{x:o,y:a,placement:i,middlewareData:l}=e,s=await rz(e,r);return i===(null==(n=l.offset)?void 0:n.placement)&&null!=(t=l.arrow)&&t.alignmentOffset?{}:{x:o+s.x,y:a+s.y,data:{...s,placement:i}}}}),options:[n,t]})],ea=\"none\"===H&&\"shift\"!==I,ei=!ea&&(S||D||\"shift\"===I),el=\"none\"===I?null:{...{name:\"flip\",options:i=o={...G,mainAxis:!D&&\"flip\"===I,crossAxis:\"flip\"===H&&\"alignment\",fallbackAxisSideDirection:U},async fn(e){var n,t,r,o,a;let{placement:l,middlewareData:s,rects:c,initialPlacement:u,platform:d,elements:f}=e,{mainAxis:p=!0,crossAxis:h=!0,fallbackPlacements:g,fallbackStrategy:m=\"bestFit\",fallbackAxisSideDirection:v=\"none\",flipAlignment:b=!0,...y}=nj(i,e);if(null!=(n=s.arrow)&&n.alignmentOffset)return{};let x=nk(l),w=nE(u),j=nk(u)===u,k=await (null==d.isRTL?void 0:d.isRTL(f.floating)),A=g||(j||!b?[nR(u)]:function(e){let n=nR(e);return[n_(e),n,n_(n)]}(u)),O=\"none\"!==v;!g&&O&&A.push(...function(e,n,t,r){let o=nA(e),a=function(e,n,t){switch(e){case\"top\":case\"bottom\":if(t)return n?nz:nP;return n?nP:nz;case\"left\":case\"right\":return n?nL:nT;default:return[]}}(nk(e),\"start\"===t,r);return o&&(a=a.map(e=>e+\"-\"+o),n&&(a=a.concat(a.map(n_)))),a}(u,b,v,k));let C=[u,...A],S=await rS(e,y),E=[],_=(null==(t=s.flip)?void 0:t.overflows)||[];if(p&&E.push(S[x]),h){let e=function(e,n,t){void 0===t&&(t=!1);let r=nA(e),o=nO(nE(e)),a=nC(o),i=\"x\"===o?r===(t?\"end\":\"start\")?\"right\":\"left\":\"start\"===r?\"bottom\":\"top\";return n.reference[a]>n.floating[a]&&(i=nR(i)),[i,nR(i)]}(l,c,k);E.push(S[e[0]],S[e[1]])}if(_=[..._,{placement:l,overflows:E}],!E.every(e=>e<=0)){let e=((null==(r=s.flip)?void 0:r.index)||0)+1,n=C[e];if(n&&(\"alignment\"!==h||w===nE(n)||_.every(e=>e.overflows[0]>0&&nE(e.placement)===w)))return{data:{index:e,overflows:_},reset:{placement:n}};let t=null==(o=_.filter(e=>e.overflows[0]<=0).sort((e,n)=>e.overflows[1]-n.overflows[1])[0])?void 0:o.placement;if(!t)switch(m){case\"bestFit\":{let e=null==(a=_.filter(e=>{if(O){let n=nE(e.placement);return n===w||\"y\"===n}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,n)=>e+n,0)]).sort((e,n)=>e[1]-n[1])[0])?void 0:a[0];e&&(t=e);break}case\"initialPlacement\":t=u}if(l!==t)return{reset:{placement:t}}}return{}}},options:[o,a]},es=ea?null:(l=e=>{var n,t,r;let o=eQ(e.elements.floating).documentElement;return{...G,rootBoundary:D?{x:0,y:0,width:o.clientWidth,height:o.clientHeight}:void 0,mainAxis:\"none\"!==H,crossAxis:ei,limiter:S||D?void 0:{...(void 0===(r=n=()=>{if(!J.current)return{};let{height:e}=J.current.getBoundingClientRect();return{offset:e/2+(\"number\"==typeof O?O:0)}})&&(r={}),{options:r,fn(e){let{x:n,y:t,placement:o,rects:a,middlewareData:i}=e,{offset:l=0,mainAxis:s=!0,crossAxis:c=!0}=nj(r,e),u={x:n,y:t},d=nE(o),f=nO(d),p=u[f],h=u[d],g=nj(l,e),m=\"number\"==typeof g?{mainAxis:g,crossAxis:0}:{mainAxis:0,crossAxis:0,...g};if(s){let e=\"y\"===f?\"height\":\"width\",n=a.reference[f]-a.floating[e]+m.mainAxis,t=a.reference[f]+a.reference[e]-m.mainAxis;p<n?p=n:p>t&&(p=t)}if(c){var v,b;let e=\"y\"===f?\"width\":\"height\",n=rP.has(nk(o)),t=a.reference[d]-a.floating[e]+(n&&(null==(v=i.offset)?void 0:v[d])||0)+(n?0:m.crossAxis),r=a.reference[d]+a.reference[e]+(n?0:(null==(b=i.offset)?void 0:b[d])||0)-(n?m.crossAxis:0);h<t?h=t:h>r&&(h=r)}return{[f]:p,[d]:h}}}),options:[n,t]}}},s=[G,S,D,O,H],{...(void 0===(c=l)&&(c={}),{name:\"shift\",options:c,async fn(e){let{x:n,y:t,placement:r}=e,{mainAxis:o=!0,crossAxis:a=!1,limiter:i={fn:e=>{let{x:n,y:t}=e;return{x:n,y:t}}},...l}=nj(c,e),s={x:n,y:t},u=await rS(e,l),d=nE(nk(r)),f=nO(d),p=s[f],h=s[d];if(o){let e=\"y\"===f?\"top\":\"left\",n=\"y\"===f?\"bottom\":\"right\",t=p+u[e],r=p-u[n];p=nm(t,ng(p,r))}if(a){let e=\"y\"===d?\"top\":\"left\",n=\"y\"===d?\"bottom\":\"right\",t=h+u[e],r=h-u[n];h=nm(t,ng(h,r))}let g=i.fn({...e,[f]:p,[d]:h});return{...g,data:{x:g.x-n,y:g.y-t,enabled:{[f]:o,[d]:a}}}}}),options:[l,s]});\"shift\"===I||\"shift\"===H||\"center\"===j?eo.push(es,el):eo.push(el,es),eo.push({...{name:\"size\",options:f=u={...G,apply({elements:{floating:e},rects:{reference:n},availableWidth:t,availableHeight:r}){Object.entries({\"--available-width\":`${t}px`,\"--available-height\":`${r}px`,\"--anchor-width\":`${n.width}px`,\"--anchor-height\":`${n.height}px`}).forEach(([n,t])=>{e.style.setProperty(n,t)})}},async fn(e){var n,t;let r,o,{placement:a,rects:i,platform:l,elements:s}=e,{apply:c=()=>{},...u}=nj(f,e),d=await rS(e,u),p=nk(a),h=nA(a),g=\"y\"===nE(a),{width:m,height:v}=i.floating;\"top\"===p||\"bottom\"===p?(r=p,o=h===(await (null==l.isRTL?void 0:l.isRTL(s.floating))?\"start\":\"end\")?\"left\":\"right\"):(o=p,r=\"end\"===h?\"top\":\"bottom\");let b=v-d.top-d.bottom,y=m-d.left-d.right,x=ng(v-d[r],b),w=ng(m-d[o],y),j=!e.middlewareData.shift,k=x,A=w;if(null!=(n=e.middlewareData.shift)&&n.enabled.x&&(A=y),null!=(t=e.middlewareData.shift)&&t.enabled.y&&(k=b),j&&!h){let e=nm(d.left,0),n=nm(d.right,0),t=nm(d.top,0),r=nm(d.bottom,0);g?A=m-2*(0!==e||0!==n?e+n:nm(d.left,d.right)):k=v-2*(0!==t||0!==r?t+r:nm(d.top,d.bottom))}await c({...e,availableWidth:A,availableHeight:k});let O=await l.getDimensions(s.floating);return m!==O.width||v!==O.height?{reset:{rects:!0}}:{}}},options:[u,d]},(p=()=>({element:J.current||document.createElement(\"div\"),padding:_}),h=[_],{name:\"arrow\",options:p,fn(e){let{element:n,padding:t}=p(e);return n&&({}).hasOwnProperty.call(n,\"current\")?null!=n.current?rX({element:n.current,padding:t}).fn(e):{}:n?rX({element:n,padding:t}).fn(e):{}},options:[p,h]}),{...(void 0===(v=g)&&(v={}),{name:\"hide\",options:v,async fn(e){let{rects:n}=e,{strategy:t=\"referenceHidden\",...r}=nj(v,e);switch(t){case\"referenceHidden\":{let t=rE(await rS(e,{...r,elementContext:\"reference\"}),n.reference);return{data:{referenceHiddenOffsets:t,referenceHidden:r_(t)}}}case\"escaped\":{let t=rE(await rS(e,{...r,altBoundary:!0}),n.floating);return{data:{escapedOffsets:t,escaped:r_(t)}}}default:return{}}}}),options:[g,m]},{name:\"transformOrigin\",fn(e){let{elements:n,middlewareData:t,placement:r,rects:o,y:a}=e,i=nk(r),l=nE(i),s=J.current,c=t.arrow?.x||0,u=t.arrow?.y||0,d=s?.clientWidth||0,f=s?.clientHeight||0,p=c+d/2,h=u+f/2,g=Math.abs(t.shift?.y||0),m=o.reference.height/2,v=g>(\"function\"==typeof w?w(r2(e,x,X)):w),b={top:`${p}px calc(100% + ${w}px)`,bottom:`${p}px ${-w}px`,left:`calc(100% + ${w}px) ${h}px`,right:`${-w}px ${h}px`}[i],y=`${p}px ${o.reference.y+m-a}px`;return n.floating.style.setProperty(\"--transform-origin\",ei&&\"y\"===l&&v?y:b),{}}},M);let ec=L;!R&&L&&(ec={...L,elements:{reference:null,floating:null,domReference:null}});let eu=C.useMemo(()=>({elementResize:P&&\"undefined\"!=typeof ResizeObserver,layoutShift:P&&\"undefined\"!=typeof IntersectionObserver}),[P]),{refs:ed,elements:ef,x:ep,y:eh,middlewareData:eg,update:em,placement:ev,context:eb,isPositioned:ey,floatingStyles:ex}=function(e={}){let{nodeId:n}=e,t=Y({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||t,o=r.elements,[a,i]=C.useState(null),[l,s]=C.useState(null),c=o?.domReference||a,u=C.useRef(null),d=W();F(()=>{c&&(u.current=c)},[c]);let f=function(e){void 0===e&&(e={});let{placement:n=\"bottom\",strategy:t=\"absolute\",middleware:r=[],platform:o,elements:{reference:a,floating:i}={},transform:l=!0,whileElementsMounted:s,open:c}=e,[u,d]=C.useState({x:0,y:0,strategy:t,placement:n,middlewareData:{},isPositioned:!1}),[f,p]=C.useState(r);rQ(f,r)||p(r);let[h,g]=C.useState(null),[m,v]=C.useState(null),b=C.useCallback(e=>{e!==j.current&&(j.current=e,g(e))},[]),y=C.useCallback(e=>{e!==k.current&&(k.current=e,v(e))},[]),x=a||h,w=i||m,j=C.useRef(null),k=C.useRef(null),A=C.useRef(u),O=null!=s,S=r0(s),_=r0(o),P=r0(c),z=C.useCallback(()=>{if(!j.current||!k.current)return;let e={placement:n,strategy:t,middleware:f};_.current&&(e.platform=_.current),((e,n,t)=>{let r=new Map,o={platform:r$,...t},a={...o.platform,_c:r};return rC(e,n,{...o,platform:a})})(j.current,k.current,e).then(e=>{let n={...e,isPositioned:!1!==P.current};L.current&&!rQ(A.current,n)&&(A.current=n,E.flushSync(()=>{d(n)}))})},[f,n,t,_,P]);rK(()=>{!1===c&&A.current.isPositioned&&(A.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[c]);let L=C.useRef(!1);rK(()=>(L.current=!0,()=>{L.current=!1}),[]),rK(()=>{if(x&&(j.current=x),w&&(k.current=w),x&&w){if(S.current)return S.current(x,w,z);z()}},[x,w,z,S,O]);let T=C.useMemo(()=>({reference:j,floating:k,setReference:b,setFloating:y}),[b,y]),R=C.useMemo(()=>({reference:x,floating:w}),[x,w]),N=C.useMemo(()=>{let e={position:t,left:0,top:0};if(!R.floating)return e;let n=rJ(R.floating,u.x),r=rJ(R.floating,u.y);return l?{...e,transform:\"translate(\"+n+\"px, \"+r+\"px)\",...rG(R.floating)>=1.5&&{willChange:\"transform\"}}:{position:t,left:n,top:r}},[t,l,R.floating,u.x,u.y]);return C.useMemo(()=>({...u,update:z,refs:T,elements:R,floatingStyles:N}),[u,z,T,R,N])}({...e,elements:{...o,...l&&{reference:l}}}),p=C.useCallback(e=>{let n=ee(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),getClientRects:()=>e.getClientRects(),contextElement:e}:e;s(n),f.refs.setReference(n)},[f.refs]),h=C.useCallback(e=>{(ee(e)||null===e)&&(u.current=e,i(e)),(ee(f.refs.reference.current)||null===f.refs.reference.current||null!==e&&!ee(e))&&f.refs.setReference(e)},[f.refs]),g=C.useMemo(()=>({...f.refs,setReference:h,setPositionReference:p,domReference:u}),[f.refs,h,p]),m=C.useMemo(()=>({...f.elements,domReference:c}),[f.elements,c]),v=C.useMemo(()=>({...f,...r,refs:g,elements:m,nodeId:n}),[f,g,m,n,r]);return F(()=>{r.dataRef.current.floatingContext=v;let e=d?.nodesRef.current.find(e=>e.id===n);e&&(e.context=v)}),C.useMemo(()=>({...f,context:v,refs:g,elements:m}),[f,g,m,v])}({rootContext:ec,placement:Q,middleware:eo,strategy:y,whileElementsMounted:z?void 0:(...e)=>rY(...e,eu),nodeId:B}),{sideX:ew,sideY:ej}=eg.adaptiveOrigin||{},ek=C.useMemo(()=>M?{position:y,[ew]:`${ep}px`,[ej]:`${eh}px`}:ex,[M,ew,ej,y,ep,eh,ex]),eO=C.useRef(null);F(()=>{if(!R)return;let e=Z.current,n=\"function\"==typeof e?e():e,t=(r5(n)?n.current:n)||null;t!==eO.current&&(ed.setPositionReference(t),eO.current=t)},[R,ed,$,Z]),C.useEffect(()=>{if(!R)return;let e=Z.current;\"function\"!=typeof e&&r5(e)&&e.current!==eO.current&&(ed.setPositionReference(e.current),eO.current=e.current)},[R,ed,$,Z]),C.useEffect(()=>{if(z&&R&&ef.domReference&&ef.floating)return rY(ef.domReference,ef.floating,em,eu)},[z,R,ef,em,eu]);let eC=r1(x,nk(ev),X),eS=nA(ev)||\"center\",eE=!!eg.hide?.referenceHidden,e_=C.useMemo(()=>({position:\"absolute\",top:eg.arrow?.y,left:eg.arrow?.x}),[eg.arrow]),eP=eg.arrow?.centerOffset!==0;return C.useMemo(()=>({positionerStyles:ek,arrowStyles:e_,arrowRef:J,arrowUncentered:eP,side:eC,align:eS,anchorHidden:eE,refs:ed,context:eb,isPositioned:ey,update:em}),[ek,e_,J,eP,eC,eS,eE,ed,eb,ey,em])}function r5(e){return null!=e&&\"current\"in e}function r3(e){let{children:n,elementsRef:t,labelsRef:r,onMapChange:o}=e,a=C.useRef(0),i=P(r9).current,s=P(r6).current,[c,u]=C.useState(0),d=C.useRef(c),f=T((e,n)=>{s.set(e,n??null),d.current+=1,u(d.current)}),p=T(e=>{s.delete(e),d.current+=1,u(d.current)}),h=C.useMemo(()=>{let e=new Map;return Array.from(s.keys()).sort(r8).forEach((n,t)=>{let r=s.get(n)??{};e.set(n,{...r,index:t})}),e},[s,c]);F(()=>{d.current===c&&(t.current.length!==h.size&&(t.current.length=h.size),r&&r.current.length!==h.size&&(r.current.length=h.size)),o?.(h)},[o,h,t,r,c,d]);let g=T(e=>(i.add(e),()=>{i.delete(e)}));F(()=>{i.forEach(e=>e(h))},[i,h]);let m=C.useMemo(()=>({register:f,unregister:p,subscribeMapChange:g,elementsRef:t,labelsRef:r,nextIndexRef:a}),[f,p,g,t,r,a]);return(0,l.jsx)(tC.Provider,{value:m,children:n})}function r6(){return new Map}function r9(){return new Set}function r8(e,n){let t=e.compareDocumentPosition(n);return t&Node.DOCUMENT_POSITION_FOLLOWING||t&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:t&Node.DOCUMENT_POSITION_PRECEDING||t&Node.DOCUMENT_POSITION_CONTAINS?1:0}let r7=C.forwardRef(function(e,n){let t,{cutout:r,...o}=e;if(r){let e=r?.getBoundingClientRect();t=`polygon(\n 0% 0%,\n 100% 0%,\n 100% 100%,\n 0% 100%,\n 0% 0%,\n ${e.left}px ${e.top}px,\n ${e.left}px ${e.bottom}px,\n ${e.right}px ${e.bottom}px,\n ${e.right}px ${e.top}px,\n ${e.left}px ${e.top}px\n )`}return(0,l.jsx)(\"div\",{ref:n,role:\"presentation\",\"data-base-ui-inert\":\"\",...o,style:{position:\"fixed\",inset:0,userSelect:\"none\",WebkitUserSelect:\"none\",clipPath:t}})}),oe=C.forwardRef(function(e,n){var t;let{anchor:r,positionMethod:o=\"absolute\",className:a,render:i,side:s,align:c,sideOffset:u=0,alignOffset:d=0,collisionBoundary:f=\"clipping-ancestors\",collisionPadding:p=5,arrowPadding:h=5,sticky:g=!1,trackAnchor:m=!0,collisionAvoidance:v=no,...b}=e,{open:y,setOpen:x,floatingRootContext:w,setPositionerElement:j,itemDomElements:k,itemLabels:A,mounted:O,modal:S,lastOpenChangeReason:E,parent:_,setHoverEnabled:P,triggerElement:z}=n0(),L=function(){let e=C.useContext(rj);if(void 0===e)throw Error(\"Base UI: <Menu.Portal> is missing.\");return e}(),T=function(e){let n=H(),t=W(),r=q();return F(()=>{if(!n)return;let e={id:n,parentId:r};return t?.addNode(e),()=>{t?.removeNode(e)}},[t,n,r]),n}(),R=q(),N=ta(!0),D=r,B=u,M=d,I=c;\"context-menu\"===_.type&&(D=_.context?.anchor??r,I=e.align??\"start\",M=e.alignOffset??2,B=e.sideOffset??-5);let U=s,V=I;\"menu\"===_.type?(U=U??\"inline-end\",V=V??\"start\"):\"menubar\"===_.type&&(U=U??\"bottom\",V=V??\"start\");let Z=\"context-menu\"===_.type,Y=r4({anchor:D,floatingRootContext:w,positionMethod:N?\"fixed\":o,mounted:O,side:U,sideOffset:B,align:V,alignOffset:M,arrowPadding:Z?0:h,collisionBoundary:f,collisionPadding:p,sticky:g,nodeId:T,keepMounted:L,trackAnchor:m,collisionAvoidance:v,shiftCrossAxis:Z}),{events:X}=W(),K=C.useMemo(()=>{let e={};return y||(e.pointerEvents=\"none\"),{role:\"presentation\",hidden:!O,style:{...Y.positionerStyles,...e}}},[y,O,Y.positionerStyles]);C.useEffect(()=>{function e(e){e.open?(e.parentNodeId===T&&P(!1),e.nodeId!==T&&e.parentNodeId===R&&x(!1,void 0,\"sibling-open\")):e.parentNodeId===T&&P(!0)}return X.on(\"openchange\",e),()=>{X.off(\"openchange\",e)}},[X,T,R,x,P]),C.useEffect(()=>{X.emit(\"openchange\",{open:y,nodeId:T,parentNodeId:R})},[X,y,T,R]);let Q=C.useMemo(()=>({open:y,side:Y.side,align:Y.align,anchorHidden:Y.anchorHidden,nested:\"menu\"===_.type}),[y,Y.side,Y.align,Y.anchorHidden,_.type]),G=C.useMemo(()=>({side:Y.side,align:Y.align,arrowRef:Y.arrowRef,arrowUncentered:Y.arrowUncentered,arrowStyles:Y.arrowStyles,floatingContext:Y.context}),[Y.side,Y.align,Y.arrowRef,Y.arrowUncentered,Y.arrowStyles,Y.context]),J=tj(\"div\",e,{state:Q,customStyleHookMapping:tV,ref:[n,j],props:{...K,...b}}),ee=O&&\"menu\"!==_.type&&(\"menubar\"!==_.type&&S&&\"trigger-hover\"!==E||\"menubar\"===_.type&&_.context.modal),en=null;return\"menubar\"===_.type?en=_.context.contentElement:void 0===_.type&&(en=z),(0,l.jsxs)(rA.Provider,{value:G,children:[ee&&(0,l.jsx)(r7,{ref:\"context-menu\"===_.type||\"nested-context-menu\"===_.type?_.context.internalBackdropRef:null,inert:(t=!y,tw>=19?t:t?\"true\":void 0),cutout:en}),(0,l.jsx)($,{id:T,children:(0,l.jsx)(r3,{elementsRef:k,labelsRef:A,children:J})})]})}),on={inert:new WeakMap,\"aria-hidden\":new WeakMap,none:new WeakMap};function ot(e){return\"inert\"===e?on.inert:\"aria-hidden\"===e?on[\"aria-hidden\"]:on.none}let or=new WeakSet,oo={},oa=0,oi=e=>e&&(e.host||oi(e.parentNode));function ol(e,n=!1,t=!1){let r=eQ(e[0]).body;return function(e,n,t,r){let o=\"data-base-ui-inert\",a=r?\"inert\":t?\"aria-hidden\":null,i=e.map(e=>{if(n.contains(e))return e;let t=oi(e);return n.contains(t)?t:null}).filter(e=>null!=e),l=new Set,s=new Set(i),c=[];oo[o]||(oo[o]=new WeakMap);let u=oo[o];return i.forEach(function e(n){!(!n||l.has(n))&&(l.add(n),n.parentNode&&e(n.parentNode))}),function e(n){!n||s.has(n)||[].forEach.call(n.children,n=>{if(\"script\"!==K(n))if(l.has(n))e(n);else{let e=a?n.getAttribute(a):null,t=null!==e&&\"false\"!==e,r=ot(a),i=(r.get(n)||0)+1,l=(u.get(n)||0)+1;r.set(n,i),u.set(n,l),c.push(n),1===i&&t&&or.add(n),1===l&&n.setAttribute(o,\"\"),!t&&a&&n.setAttribute(a,\"inert\"===a?\"\":\"true\")}})}(n),l.clear(),oa+=1,()=>{c.forEach(e=>{let n=ot(a),t=(n.get(e)||0)-1,r=(u.get(e)||0)-1;n.set(e,t),u.set(e,r),t||(!or.has(e)&&a&&e.removeAttribute(a),or.delete(e)),r||e.removeAttribute(o)}),(oa-=1)||(on.inert=new WeakMap,on[\"aria-hidden\"]=new WeakMap,on.none=new WeakMap,or=new WeakSet,oo={})}}(e.concat(Array.from(r.querySelectorAll(\"[aria-live]\"))),r,n,t)}let os=[];function oc(){return os.slice().reverse().find(e=>e.isConnected)}function ou(e,n){if(!n.current.includes(\"floating\")&&!e.getAttribute(\"role\")?.includes(\"dialog\"))return;let t=rd(),r=rc(e,t).filter(e=>{let n=e.getAttribute(\"data-tabindex\")||\"\";return ru(e,t)||e.hasAttribute(\"data-tabindex\")&&!n.startsWith(\"-\")}),o=e.getAttribute(\"tabindex\");n.current.includes(\"floating\")||0===r.length?\"0\"!==o&&e.setAttribute(\"tabindex\",\"0\"):(\"-1\"!==o||e.hasAttribute(\"data-tabindex\")&&\"-1\"!==e.getAttribute(\"data-tabindex\"))&&(e.setAttribute(\"tabindex\",\"-1\"),e.setAttribute(\"data-tabindex\",\"-1\"))}let od=C.forwardRef(function(e,n){return(0,l.jsx)(\"button\",{...e,type:\"button\",ref:n,tabIndex:-1,style:t$})});function of(e){let{context:n,children:t,disabled:r=!1,order:o=[\"content\"],guards:a=!0,initialFocus:i=0,returnFocus:s=!0,restoreFocus:c=!1,modal:u=!0,visuallyHiddenDismiss:d=!1,closeOnFocusOut:f=!0,outsideElementsInert:p=!1,getInsideElements:h=()=>[]}=e,{open:g,onOpenChange:m,events:v,dataRef:b,elements:{domReference:y,floating:x}}=n,w=T(()=>b.current.floatingContext?.nodeId),j=T(h),k=\"number\"==typeof i&&i<0,A=eJ(y)&&k,O=\"undefined\"!=typeof HTMLElement&&\"inert\"in HTMLElement.prototype,S=!O||a,E=!S||O&&p,_=eA(o),P=eA(i),z=eA(s),L=W(),R=rb(),N=C.useRef(null),D=C.useRef(null),B=C.useRef(!1),M=C.useRef(!1),I=C.useRef(-1),H=null!=R,U=e0(x),V=T((e=U)=>e?rs(e,rd()):[]),q=T(e=>{let n=V(e);return _.current.map(e=>y&&\"reference\"===e?y:U&&\"floating\"===e?U:n).filter(Boolean).flat()});C.useEffect(()=>{if(r||!u)return;function e(e){if(\"Tab\"===e.key){eY(U,eZ(eQ(U)))&&0===V().length&&!A&&eD(e);let n=q(),t=eX(e);\"reference\"===_.current[0]&&t===y&&(eD(e),e.shiftKey?nq(n[n.length-1]):nq(n[1])),\"floating\"===_.current[1]&&t===U&&e.shiftKey&&(eD(e),nq(n[0]))}}let n=eQ(U);return n.addEventListener(\"keydown\",e),()=>{n.removeEventListener(\"keydown\",e)}},[r,y,U,u,_,A,V,q]),C.useEffect(()=>{if(!r&&x)return x.addEventListener(\"focusin\",e),()=>{x.removeEventListener(\"focusin\",e)};function e(e){let n=eX(e),t=V().indexOf(n);-1!==t&&(I.current=t)}},[r,x,V]),C.useEffect(()=>{if(!r&&f&&x&&en(y))return y.addEventListener(\"focusout\",n),y.addEventListener(\"pointerdown\",e),x.addEventListener(\"focusout\",n),()=>{y.removeEventListener(\"focusout\",n),y.removeEventListener(\"pointerdown\",e),x.removeEventListener(\"focusout\",n)};function e(){M.current=!0,setTimeout(()=>{M.current=!1})}function n(e){let n=e.relatedTarget,t=e.currentTarget,r=eX(e);queueMicrotask(()=>{let o=w(),a=!(eY(y,n)||eY(x,n)||eY(n,x)||eY(R?.portalNode,n)||n?.hasAttribute(e1(\"focus-guard\"))||L&&(e6(L.nodesRef.current,o).find(e=>eY(e.context?.elements.floating,n)||eY(e.context?.elements.domReference,n))||e9(L.nodesRef.current,o).find(e=>[e.context?.elements.floating,e0(e.context?.elements.floating)].includes(n)||e.context?.elements.domReference===n)));if(t===y&&U&&ou(U,_),c&&t!==y&&!r?.isConnected&&eZ(eQ(U))===eQ(U).body){en(U)&&U.focus();let e=I.current,n=V(),t=n[e]||n[n.length-1]||U;en(t)&&t.focus()}if(b.current.insideReactTree){b.current.insideReactTree=!1;return}(A||!u)&&n&&a&&!M.current&&n!==oc()&&(B.current=!0,m(!1,e,\"focus-out\"))})}},[r,y,x,U,u,L,R,m,f,c,V,A,w,_,b]);let $=C.useRef(null),Z=C.useRef(null),Y=tb($,R?.beforeInsideRef),X=tb(Z,R?.afterInsideRef);function Q(e){return!r&&d&&u?(0,l.jsx)(od,{ref:\"start\"===e?N:D,onClick:e=>m(!1,e.nativeEvent),children:\"string\"==typeof d?d:\"Dismiss\"}):null}C.useEffect(()=>{if(r||!x)return;let e=Array.from(R?.portalNode?.querySelectorAll(`[${e1(\"portal\")}]`)||[]),n=L?e9(L.nodesRef.current,w()):[],t=L&&!u?n.map(e=>e.context?.elements.floating):[],o=[x,n.find(e=>eJ(e.context?.elements.domReference||null))?.context?.elements.domReference,...e,...t,...j(),N.current,D.current,$.current,Z.current,R?.beforeOutsideRef.current,R?.afterOutsideRef.current,_.current.includes(\"reference\")||A?y:null].filter(e=>null!=e),a=u||A?ol(o,!E,E):ol(o);return()=>{a()}},[r,y,x,u,_,R,A,S,E,L,w,j]),F(()=>{if(r||!en(U))return;let e=eZ(eQ(U));queueMicrotask(()=>{let n=q(U),t=P.current,r=(\"number\"==typeof t?n[t]:t.current)||U,o=eY(U,e);k||o||!g||nq(r,{preventScroll:r===U})})},[r,g,U,k,q,P]),F(()=>{var e;if(r||!U)return;let n=eQ(U);function t({reason:e,event:n,nested:t}){if([\"hover\",\"safe-polygon\"].includes(e)&&\"mouseleave\"===n.type&&(B.current=!0),\"outside-press\"===e)if(t)B.current=!1;else if(eB(n)||eM(n))B.current=!1;else{let e=!1;document.createElement(\"div\").focus({get preventScroll(){return e=!0,!1}}),e?B.current=!1:B.current=!0}}e=eZ(n),os=os.filter(e=>e.isConnected),e&&\"body\"!==K(e)&&(os.push(e),os.length>20&&(os=os.slice(-20))),v.on(\"openchange\",t);let o=n.createElement(\"span\");return o.setAttribute(\"tabindex\",\"-1\"),o.setAttribute(\"aria-hidden\",\"true\"),Object.assign(o.style,t$),H&&y&&y.insertAdjacentElement(\"afterend\",o),()=>{v.off(\"openchange\",t);let e=eZ(n),r=eY(x,e)||L&&e6(L.nodesRef.current,w(),!1).some(n=>eY(n.context?.elements.floating,e)),a=function(){if(\"boolean\"==typeof z.current){let e=y||oc();return e&&e.isConnected?e:o}return z.current.current||o}();queueMicrotask(()=>{let t=function(e){let n=rd();return ru(e,n)?e:rs(e,n)[0]||e}(a);z.current&&!B.current&&en(t)&&(t===e||e===n.body||r)&&t.focus({preventScroll:!0}),o.remove()})}},[r,x,U,z,b,v,L,H,y,w]),C.useEffect(()=>{queueMicrotask(()=>{B.current=!1})},[r]),F(()=>{if(!r&&R)return R.setFocusManagerState({modal:u,closeOnFocusOut:f,open:g,onOpenChange:m,domReference:y}),()=>{R.setFocusManagerState(null)}},[r,R,u,g,m,f,y]),F(()=>{!r&&U&&ou(U,_)},[r,U,_]);let G=!r&&S&&(!u||!A)&&(H||u);return(0,l.jsxs)(C.Fragment,{children:[G&&(0,l.jsx)(tZ,{\"data-type\":\"inside\",ref:Y,onFocus:e=>{if(u){let e=q();nq(\"reference\"===o[0]?e[0]:e[e.length-1])}else if(R?.preserveTabOrder&&R.portalNode)if(B.current=!1,rg(e,R.portalNode)){let e=rp(y);e?.focus()}else R.beforeOutsideRef.current?.focus()}}),!A&&Q(\"start\"),t,Q(\"end\"),G&&(0,l.jsx)(tZ,{\"data-type\":\"inside\",ref:X,onFocus:e=>{if(u)nq(q()[0]);else if(R?.preserveTabOrder&&R.portalNode)if(f&&(B.current=!0),rg(e,R.portalNode)){let e=rh(y);e?.focus()}else R.afterOutsideRef.current?.focus()}})]})}let op={...tV,...tT},oh=C.forwardRef(function(e,n){let{render:t,className:r,finalFocus:o,...a}=e,{open:i,setOpen:s,popupRef:c,transitionStatus:u,popupProps:d,mounted:f,instantType:p,onOpenChangeComplete:h,parent:g,lastOpenChangeReason:m,rootId:v}=n0(),{side:b,align:y,floatingContext:x}=function(){let e=C.useContext(rA);if(void 0===e)throw Error(\"Base UI: MenuPositionerContext is missing. MenuPositioner parts must be placed within <Menu.Positioner>.\");return e}();n5({open:i,ref:c,onComplete(){i&&h?.(!0)}});let{events:w}=W();C.useEffect(()=>{function e(e){s(!1,e.domEvent,e.reason)}return w.on(\"close\",e),()=>{w.off(\"close\",e)}},[w,s]);let j=tj(\"div\",e,{state:C.useMemo(()=>({transitionStatus:u,side:b,align:y,open:i,nested:\"menu\"===g.type,instant:p}),[u,b,y,i,g.type,p]),ref:[n,c],customStyleHookMapping:op,props:[d,\"starting\"===u?nt:nr,a,{\"data-rootownerid\":v}]}),k=void 0===g.type||\"context-menu\"===g.type;return\"menubar\"===g.type&&\"outside-press\"!==m&&(k=!0),(0,l.jsx)(of,{context:x,modal:!1,disabled:!f,returnFocus:o||k,initialFocus:\"menu\"===g.type?-1:0,restoreFocus:!0,children:j})}),og=C.createContext(void 0),om=C.forwardRef(function(e,n){let{render:t,className:r,...o}=e,[a,i]=C.useState(void 0),s=C.useMemo(()=>({setLabelId:i}),[i]),c=tj(\"div\",e,{ref:n,props:{role:\"group\",\"aria-labelledby\":a,...o}});return(0,l.jsx)(og.Provider,{value:s,children:c})});function ov(e){return H(e,\"base-ui\")}let ob=C.forwardRef(function(e,n){let{className:t,render:r,id:o,...a}=e,i=ov(o),{setLabelId:l}=function(){let e=C.useContext(og);if(void 0===e)throw Error(\"Base UI: MenuGroupRootContext is missing. Menu group parts must be used within <Menu.Group>.\");return e}();return F(()=>(l(i),()=>{l(void 0)}),[l,i]),tj(\"div\",e,{ref:n,props:{id:i,role:\"presentation\",...a}})}),oy={type:\"regular-item\"},ox=C.memo(C.forwardRef(function(e,n){let{className:t,closeOnClick:r=!0,disabled:o=!1,highlighted:a,id:i,menuEvents:l,itemProps:s,render:c,allowMouseUpTriggerRef:u,typingRef:d,nativeButton:f,...p}=e,{getItemProps:h,itemRef:g}=function(e){let{closeOnClick:n,disabled:t=!1,highlighted:r,id:o,menuEvents:a,allowMouseUpTriggerRef:i,typingRef:l,nativeButton:s,itemMetadata:c}=e,u=C.useRef(null),{getButtonProps:d,buttonRef:f}=tq({disabled:t,focusableWhenDisabled:!0,native:s}),p=C.useCallback(e=>tc({id:o,role:\"menuitem\",tabIndex:r?0:-1,onMouseEnter(){\"submenu-trigger\"===c.type&&c.setActive()},onKeyUp:e=>{\" \"===e.key&&l.current&&e.preventBaseUIHandler()},onClick:e=>{n&&a.emit(\"close\",{domEvent:e,reason:\"item-press\"})},onMouseUp:()=>{u.current&&i.current&&\"regular-item\"===c.type&&u.current.click()}},e,d),[o,r,d,l,n,a,i,c]),h=tb(u,f);return C.useMemo(()=>({getItemProps:p,itemRef:h}),[p,h])}({closeOnClick:r,disabled:o,highlighted:a,id:i,menuEvents:l,allowMouseUpTriggerRef:u,typingRef:d,nativeButton:f,itemMetadata:oy});return tj(\"div\",e,{state:C.useMemo(()=>({disabled:o,highlighted:a}),[o,a]),ref:[g,n],props:[s,p,h]})})),ow=C.forwardRef(function(e,n){let{id:t,label:r,nativeButton:o=!1,...a}=e,i=C.useRef(null),s=tE({label:r}),c=tb(n,s.ref,i),{itemProps:u,activeIndex:d,allowMouseUpTriggerRef:f,typingRef:p}=n0(),h=ov(t),g=s.index===d,{events:m}=W();return(0,l.jsx)(ox,{...a,id:h,ref:c,highlighted:g,menuEvents:m,itemProps:u,allowMouseUpTriggerRef:f,typingRef:p,nativeButton:o})});var oj=\"__next_builtin__\";function ok(e){return e.replace(new RegExp(\"^\".concat(oj)),\"\").replace(new RegExp(\"\".concat(\"@boundary\",\"$\")),\"\")}var oA=\"boundary:\";function oO(e){return e.startsWith(oA)}var oC=t(\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/utils.ts\");function oS(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function oE(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function o_(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function oP(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return oS(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return oS(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var oz=function(){for(var e=arguments.length,n=Array(e),t=0;t<e;t++)n[t]=arguments[t];return function(e){n.forEach(function(n){\"function\"==typeof n?n(e):n&&(n.current=e)})}};function oL(e){var n,t,r=e.nodeState,o=e.boundaries,a=r.pagePath,i=r.boundaryType,s=r.setBoundaryType,c=oP((0,C.useState)(!1),2),u=c[0],d=c[1],f=oP((0,C.useState)(function(){return document.querySelector(\"nextjs-portal\").shadowRoot}),1)[0],p=(0,C.useRef)(f),h=(0,C.useRef)(null),g=(0,C.useRef)(null);(0,oC.O8)(g,h,u,function(){d(!1)},null==(n=h.current)?void 0:n.ownerDocument);var m=Object.values(o).find(function(e){return null!==e}),v=m?null==(t=m.split(\".\"))?void 0:t.pop():\"js\",b=(0,C.useMemo)(function(){return Object.fromEntries(Object.entries(o).map(function(e){var n=oP(e,2),t=n[0],r=ok((n[1]||\"\").split(\"/\").pop()||\"\".concat(t,\".\").concat(v));return[t,r]}))},[o,v]),y=(a||\"\").split(\"/\").pop()||\"\",x=ok(i?\"page.\".concat(v):y||\"page.\".concat(v)),w=[{label:b.loading,value:\"loading\",icon:(0,l.jsx)(oT,{}),disabled:!o.loading},{label:b.error,value:\"error\",icon:(0,l.jsx)(oR,{}),disabled:!o.error},{label:b[\"not-found\"],value:\"not-found\",icon:(0,l.jsx)(oN,{}),disabled:!o[\"not-found\"]}],j={label:i?\"Reset\":x,value:\"reset\",icon:(0,l.jsx)(oD,{}),disabled:null===i},k=(0,C.useCallback)(function(e){var n=new URLSearchParams({file:e.filePath,isAppRelativePath:\"1\"});fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(n.toString())).catch(console.warn)},[]),A=(0,C.useCallback)(function(e){switch(e){case\"not-found\":case\"loading\":case\"error\":s(e);break;case\"reset\":s(null);break;case\"open-editor\":a&&k({filePath:a})}},[s,a,k]),O=(0,C.useMemo)(function(){return\"layout\"!==r.type&&\"template\"!==r.type&&Object.values(o).some(function(e){return null!==e})},[r.type,o]);return(0,l.jsxs)(tv,{delay:0,modal:!1,open:u,onOpenChange:d,children:[(0,l.jsx)(tW,{className:\"segment-boundary-trigger\",\"data-nextjs-dev-overlay-segment-boundary-trigger-button\":!0,render:function(e){var n=oz(e.ref,h);return(0,l.jsx)(oM,o_(oE({},e),{ref:n}))},disabled:!O}),(0,l.jsx)(rk,{container:p,children:(0,l.jsx)(oe,{className:\"segment-boundary-dropdown-positioner\",side:\"bottom\",align:\"center\",sideOffset:6,arrowPadding:8,ref:g,children:(0,l.jsxs)(oh,{className:\"segment-boundary-dropdown\",children:[(0,l.jsxs)(om,{children:[(0,l.jsx)(ob,{className:\"segment-boundary-group-label\",children:\"Toggle Overrides\"}),w.map(function(e){return(0,l.jsxs)(ow,{className:\"segment-boundary-dropdown-item\",onClick:function(){return A(e.value)},disabled:e.disabled,children:[e.icon,e.label]},e.value)})]}),(0,l.jsx)(om,{children:(0,l.jsxs)(ow,{className:\"segment-boundary-dropdown-item\",onClick:function(){return A(j.value)},disabled:j.disabled,children:[j.icon,j.label]},j.value)})]})})})]})}function oT(){return(0,l.jsxs)(\"svg\",{width:\"20px\",height:\"20px\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,l.jsx)(\"g\",{clipPath:\"url(#clip0_2759_1866)\",children:(0,l.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M10 3.5C13.5899 3.5 16.5 6.41015 16.5 10C16.5 13.5899 13.5899 16.5 10 16.5C6.41015 16.5 3.5 13.5899 3.5 10C3.5 6.41015 6.41015 3.5 10 3.5ZM2 10C2 14.4183 5.58172 18 10 18C14.4183 18 18 14.4183 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10ZM10.75 9.62402V6H9.25V9.875C9.25 10.1898 9.39858 10.486 9.65039 10.6748L11.5498 12.0996L12.1504 12.5498L13.0498 11.3496L12.4502 10.9004L10.75 9.62402Z\",fill:\"currentColor\"})}),(0,l.jsx)(\"defs\",{children:(0,l.jsx)(\"clipPath\",{id:\"clip0_2759_1866\",children:(0,l.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\",transform:\"translate(2 2)\"})})})]})}function oR(){return(0,l.jsxs)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,l.jsx)(\"g\",{clipPath:\"url(#clip0_2759_1881)\",children:(0,l.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.5 7.30762V12.6924L7.30762 16.5H12.6924L16.5 12.6924V7.30762L12.6924 3.5H7.30762L3.5 7.30762ZM18 12.8994L17.9951 12.998C17.9724 13.2271 17.8712 13.4423 17.707 13.6064L13.6064 17.707L13.5332 17.7734C13.3806 17.8985 13.1944 17.9757 12.998 17.9951L12.8994 18H7.10059L7.00195 17.9951C6.80562 17.9757 6.6194 17.8985 6.4668 17.7734L6.39355 17.707L2.29297 13.6064C2.12883 13.4423 2.02756 13.2271 2.00488 12.998L2 12.8994V7.10059C2 6.83539 2.10546 6.58109 2.29297 6.39355L6.39355 2.29297C6.55771 2.12883 6.77294 2.02756 7.00195 2.00488L7.10059 2H12.8994L12.998 2.00488C13.2271 2.02756 13.4423 2.12883 13.6064 2.29297L17.707 6.39355C17.8945 6.58109 18 6.83539 18 7.10059V12.8994ZM9.25 5.75H10.75L10.75 10.75H9.25L9.25 5.75ZM10 14C10.5523 14 11 13.5523 11 13C11 12.4477 10.5523 12 10 12C9.44772 12 9 12.4477 9 13C9 13.5523 9.44772 14 10 14Z\",fill:\"currentColor\"})}),(0,l.jsx)(\"defs\",{children:(0,l.jsx)(\"clipPath\",{id:\"clip0_2759_1881\",children:(0,l.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\",transform:\"translate(2 2)\"})})})]})}function oN(){return(0,l.jsx)(\"svg\",{width:\"20px\",height:\"20px\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,l.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M10.5586 2.5C11.1341 2.50004 11.6588 2.8294 11.9091 3.34766L17.8076 15.5654C18.1278 16.2292 17.6442 16.9997 16.9072 17H3.09274C2.35574 16.9997 1.8721 16.2292 2.19235 15.5654L8.09079 3.34766C8.34109 2.8294 8.86583 2.50004 9.44137 2.5H10.5586ZM3.89059 15.5H16.1093L10.5586 4H9.44137L3.89059 15.5ZM9.24997 6.75H10.75L10.75 10.75H9.24997L9.24997 6.75ZM9.99997 14C10.5523 14 11 13.5523 11 13C11 12.4477 10.5523 12 9.99997 12C9.44768 12 8.99997 12.4477 8.99997 13C8.99997 13.5523 9.44768 14 9.99997 14Z\",fill:\"currentColor\"})})}function oD(){return(0,l.jsx)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,l.jsx)(\"path\",{d:\"M9.96484 3C13.8463 3.00018 17 6.13012 17 10C17 13.8699 13.8463 16.9998 9.96484 17C7.62404 17 5.54877 15.8617 4.27051 14.1123L3.82812 13.5068L5.03906 12.6221L5.48145 13.2275C6.48815 14.6053 8.12092 15.5 9.96484 15.5C13.0259 15.4998 15.5 13.0335 15.5 10C15.5 6.96654 13.0259 4.50018 9.96484 4.5C7.42905 4.5 5.29544 6.19429 4.63867 8.5H8V10H2.75C2.33579 10 2 9.66421 2 9.25V4H3.5V7.2373C4.57781 4.74376 7.06749 3 9.96484 3Z\",fill:\"currentColor\"})})}function oB(e){return(0,l.jsx)(\"svg\",o_(oE({strokeLinejoin:\"round\",viewBox:\"0 0 16 16\"},e),{children:(0,l.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.7071 2.39644C8.31658 2.00592 7.68341 2.00592 7.29289 2.39644L4.46966 5.21966L3.93933 5.74999L4.99999 6.81065L5.53032 6.28032L7.99999 3.81065L10.4697 6.28032L11 6.81065L12.0607 5.74999L11.5303 5.21966L8.7071 2.39644ZM5.53032 9.71966L4.99999 9.18933L3.93933 10.25L4.46966 10.7803L7.29289 13.6035C7.68341 13.9941 8.31658 13.9941 8.7071 13.6035L11.5303 10.7803L12.0607 10.25L11 9.18933L10.4697 9.71966L7.99999 12.1893L5.53032 9.71966Z\",fill:\"currentColor\"})}))}function oM(e){return(0,l.jsx)(\"button\",o_(oE({},e),{children:(0,l.jsx)(\"span\",{className:\"segment-boundary-trigger-text\",children:(0,l.jsx)(oB,{className:\"plus-icon\"})})}))}let oI=C.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new ej,currentIdRef:{current:null},currentContextRef:{current:null}});function oH(e){let{children:n,delay:t,timeoutMs:r=0}=e,o=C.useRef(t),a=C.useRef(t),i=C.useRef(null),s=C.useRef(null),c=ek();return(0,l.jsx)(oI.Provider,{value:C.useMemo(()=>({hasProvider:!0,delayRef:o,initialDelayRef:a,currentIdRef:i,timeoutMs:r,currentContextRef:s,timeout:c}),[r,c]),children:n})}let oF=C.createContext(void 0),oU=function(e){let{delay:n,closeDelay:t,timeout:r=400}=e,o=C.useMemo(()=>({delay:n,closeDelay:t}),[n,t]);return(0,l.jsx)(oF.Provider,{value:o,children:(0,l.jsx)(oH,{delay:{open:n,close:t},timeoutMs:r,children:e.children})})},oV=C.createContext(void 0);function oq(){let e=C.useContext(oV);if(void 0===e)throw Error(\"Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>.\");return e}function oW(e){return null!=e&&null!=e.clientX}function o$(e){let{disabled:n=!1,defaultOpen:t=!1,onOpenChange:r,open:o,delay:a,closeDelay:i,hoverable:s=!0,trackCursorAxis:c=\"none\",actionsRef:u,onOpenChangeComplete:d}=e,f=a??600,p=i??0,[h,g]=C.useState(null),[m,v]=C.useState(null),[b,y]=C.useState(),x=C.useRef(null),[w,j]=n4({controlled:o,default:t,name:\"Tooltip\",state:\"open\"}),k=T(r),A=T((e,n,t)=>{let r=\"trigger-hover\"===t,o=e&&\"trigger-focus\"===t,a=!e&&(\"trigger-press\"===t||\"escape-key\"===t);function i(){k(e,n,t),j(e)}r?E.flushSync(i):i(),o||a?y(o?\"focus\":\"dismiss\"):\"trigger-hover\"===t&&y(void 0)});w&&n&&A(!1,void 0,\"disabled\");let{mounted:O,setMounted:S,transitionStatus:_}=n2(w),P=T(()=>{S(!1),d?.(!1)});n5({enabled:!u,open:w,ref:x,onComplete(){w||P()}}),C.useImperativeHandle(u,()=>({unmount:P}),[P]);let z=Y({elements:{reference:h,floating:m},open:w,onOpenChange(e,n,t){A(e,n,tr(t))}}),L=C.useContext(oF),{delayRef:R,isInstantPhase:N,hasProvider:D}=function(e,n={}){let{open:t,onOpenChange:r,floatingId:o}=e,{enabled:a=!0}=n,{currentIdRef:i,delayRef:l,timeoutMs:s,initialDelayRef:c,currentContextRef:u,hasProvider:d,timeout:f}=C.useContext(oI),[p,h]=C.useState(!1);return F(()=>{function e(){h(!1),u.current?.setIsInstantPhase(!1),i.current=null,u.current=null,l.current=c.current}if(a&&i.current&&!t&&i.current===o){if(h(!1),s)return f.start(s,e),()=>{f.clear()};e()}},[a,t,o,i,l,s,c,u,f]),F(()=>{if(!a||!t)return;let e=u.current,n=i.current;u.current={onOpenChange:r,setIsInstantPhase:h},i.current=o,l.current={open:0,close:e4(c.current,\"close\")},null!==n&&n!==o?(f.clear(),h(!0),e?.setIsInstantPhase(!0),e?.onOpenChange(!1)):(h(!1),e?.setIsInstantPhase(!1))},[a,t,o,r,i,l,s,c,u,f]),F(()=>()=>{u.current=null},[u]),C.useMemo(()=>({hasProvider:d,delayRef:l,isInstantPhase:p}),[d,l,p])}(z),B=N?\"delay\":b,M=e3(z,{enabled:!n,mouseOnly:!0,move:!1,handleClose:s&&\"both\"!==c?e7():null,restMs(){let e=L?.delay,n=\"object\"==typeof R.current?R.current.open:void 0,t=f;return D&&(t=0!==n?a??e??f:0),t},delay(){let e=\"object\"==typeof R.current?R.current.close:void 0,n=p;return null==i&&D&&(n=e),{close:n}}}),I=nn(z,{enabled:!n}),{getReferenceProps:H,getFloatingProps:U}=nK([M,I,nf(z,{enabled:!n,referencePress:!0}),function(e,n={}){let{open:t,dataRef:r,elements:{floating:o,domReference:a},refs:i}=e,{enabled:l=!0,axis:s=\"both\",x:c=null,y:u=null}=n,d=C.useRef(!1),f=C.useRef(null),[p,h]=C.useState(),[g,m]=C.useState([]),v=T((e,n)=>{if(!d.current&&(!r.current.openEvent||oW(r.current.openEvent))){var t;let o,l,c;i.setPositionReference((t={x:e,y:n,axis:s,dataRef:r,pointerType:p},o=null,l=null,c=!1,{contextElement:a||void 0,getBoundingClientRect(){let e=a?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},n=\"x\"===t.axis||\"both\"===t.axis,r=\"y\"===t.axis||\"both\"===t.axis,i=[\"mouseenter\",\"mousemove\"].includes(t.dataRef.current.openEvent?.type||\"\")&&\"touch\"!==t.pointerType,s=e.width,u=e.height,d=e.x,f=e.y;return null==o&&t.x&&n&&(o=e.x-t.x),null==l&&t.y&&r&&(l=e.y-t.y),d-=o||0,f-=l||0,s=0,u=0,!c||i?(s=\"y\"===t.axis?e.width:0,u=\"x\"===t.axis?e.height:0,d=n&&null!=t.x?t.x:d,f=r&&null!=t.y?t.y:f):c&&!i&&(u=\"x\"===t.axis?e.height:u,s=\"y\"===t.axis?e.width:s),c=!0,{width:s,height:u,x:d,y:f,top:f,right:d+s,bottom:f+u,left:d}}}))}}),b=T(e=>{null==c&&null==u&&(t?f.current||m([]):v(e.clientX,e.clientY))}),y=eI(p)?o:t,x=C.useCallback(()=>{if(!y||!l||null!=c||null!=u)return;let e=Q(o);function n(t){eY(o,eX(t))?(e.removeEventListener(\"mousemove\",n),f.current=null):v(t.clientX,t.clientY)}if(!r.current.openEvent||oW(r.current.openEvent)){e.addEventListener(\"mousemove\",n);let t=()=>{e.removeEventListener(\"mousemove\",n),f.current=null};return f.current=t,t}i.setPositionReference(a)},[y,l,c,u,o,r,i,a,v]);C.useEffect(()=>x(),[x,g]),C.useEffect(()=>{l&&!o&&(d.current=!1)},[l,o]),C.useEffect(()=>{!l&&t&&(d.current=!0)},[l,t]),F(()=>{l&&(null!=c||null!=u)&&(d.current=!1,v(c,u))},[l,c,u,v]);let w=C.useMemo(()=>{function e(e){h(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:b,onMouseEnter:b}},[b]);return C.useMemo(()=>l?{reference:w}:{},[l,w])}(z,{enabled:!n&&\"none\"!==c,axis:\"none\"===c?void 0:c})]),V=C.useMemo(()=>({open:w,setOpen:A,mounted:O,setMounted:S,setTriggerElement:g,positionerElement:m,setPositionerElement:v,popupRef:x,triggerProps:H(),popupProps:U(),floatingRootContext:z,instantType:B,transitionStatus:_,onOpenChangeComplete:d}),[w,A,O,S,g,m,v,x,H,U,z,B,_,d]),q=C.useMemo(()=>({...V,delay:f,closeDelay:p,trackCursorAxis:c,hoverable:s}),[V,f,p,c,s]);return(0,l.jsx)(oV.Provider,{value:q,children:e.children})}let oZ=C.forwardRef(function(e,n){let{className:t,render:r,...o}=e,{open:a,setTriggerElement:i,triggerProps:l}=oq();return tj(\"button\",e,{state:C.useMemo(()=>({open:a}),[a]),ref:[n,i],props:[l,o],customStyleHookMapping:tF})}),oY=C.createContext(void 0);function oX(e){let n=rx({root:e.root});return n&&E.createPortal(e.children,n)}function oK(e){let{children:n,keepMounted:t=!1,container:r}=e,{mounted:o}=oq();return o||t?(0,l.jsx)(oY.Provider,{value:t,children:(0,l.jsx)(oX,{root:r,children:n})}):null}let oQ=C.createContext(void 0);function oG(){let e=C.useContext(oQ);if(void 0===e)throw Error(\"Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>.\");return e}let oJ=C.forwardRef(function(e,n){let{render:t,className:r,anchor:o,positionMethod:a=\"absolute\",side:i=\"top\",align:s=\"center\",sideOffset:c=0,alignOffset:u=0,collisionBoundary:d=\"clipping-ancestors\",collisionPadding:f=5,arrowPadding:p=5,sticky:h=!1,trackAnchor:g=!0,collisionAvoidance:m=na,...v}=e,{open:b,setPositionerElement:y,mounted:x,floatingRootContext:w,trackCursorAxis:j,hoverable:k}=oq(),A=r4({anchor:o,positionMethod:a,floatingRootContext:w,mounted:x,side:i,sideOffset:c,align:s,alignOffset:u,collisionBoundary:d,collisionPadding:f,sticky:h,arrowPadding:p,trackAnchor:g,keepMounted:function(){let e=C.useContext(oY);if(void 0===e)throw Error(\"Base UI: <Tooltip.Portal> is missing.\");return e}(),collisionAvoidance:m}),O=C.useMemo(()=>{let e={};return b&&\"both\"!==j&&k||(e.pointerEvents=\"none\"),{role:\"presentation\",hidden:!x,style:{...A.positionerStyles,...e}}},[b,j,k,x,A.positionerStyles]),S=C.useMemo(()=>({props:O,...A}),[O,A]),E=C.useMemo(()=>({open:b,side:S.side,align:S.align,anchorHidden:S.anchorHidden}),[b,S.side,S.align,S.anchorHidden]),_=C.useMemo(()=>({...E,arrowRef:S.arrowRef,arrowStyles:S.arrowStyles,arrowUncentered:S.arrowUncentered}),[E,S.arrowRef,S.arrowStyles,S.arrowUncentered]),P=tj(\"div\",e,{state:E,props:[S.props,v],ref:[n,y],customStyleHookMapping:tV});return(0,l.jsx)(oQ.Provider,{value:_,children:P})}),o0={...tV,...tT},o1=C.forwardRef(function(e,n){let{className:t,render:r,...o}=e,{open:a,instantType:i,transitionStatus:l,popupProps:s,popupRef:c,onOpenChangeComplete:u}=oq(),{side:d,align:f}=oG();return n5({open:a,ref:c,onComplete(){a&&u?.(!0)}}),tj(\"div\",e,{state:C.useMemo(()=>({open:a,side:d,align:f,instant:i,transitionStatus:l}),[a,d,f,i,l]),ref:[n,c],props:[s,\"starting\"===l?nt:nr,o],customStyleHookMapping:o0})}),o2=C.forwardRef(function(e,n){let{className:t,render:r,...o}=e,{open:a,arrowRef:i,side:l,align:s,arrowUncentered:c,arrowStyles:u}=oG();return tj(\"div\",e,{state:C.useMemo(()=>({open:a,side:l,align:s,uncentered:c}),[a,l,s,c]),ref:[n,i],props:[{style:u,\"aria-hidden\":!0},o],customStyleHookMapping:tV})});var o4=t(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/components/tooltip.css\"),o5={};function o3(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}o5.styleTagTransform=y(),o5.setAttributes=g(),o5.insert=p(),o5.domAPI=d(),o5.insertStyleElement=v(),c()(o4.Z,o5),o4.Z&&o4.Z.locals&&o4.Z.locals;var o6=(0,C.forwardRef)(function(e,n){var t,r=e.className,o=e.children,a=e.title,i=e.direction,s=void 0===i?\"top\":i,c=e.arrowSize,u=void 0===c?6:c,d=e.offset,f=e.bgcolor,p=void 0===f?\"#000\":f,h=e.color,g=(t=(0,C.useState)(function(){return document.querySelector(\"nextjs-portal\").shadowRoot}),function(e){if(Array.isArray(e))return e}(t)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(t,1)||function(e,n){if(e){if(\"string\"==typeof e)return o3(e,1);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o3(e,n)}}(t,1)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}())[0],m=(0,C.useRef)(g);return a?(0,l.jsx)(oU,{children:(0,l.jsxs)(o$,{delay:400,children:[(0,l.jsx)(oZ,{ref:n,render:function(e){var n,t;return(0,l.jsx)(\"span\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}({},e),t=t={children:o},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}}),(0,l.jsx)(oK,{container:m,children:(0,l.jsx)(oJ,{side:s,sideOffset:(void 0===d?8:d)+u,className:\"tooltip-positioner\",style:{\"--anchor-width\":\"\".concat(u,\"px\"),\"--anchor-height\":\"\".concat(u,\"px\")},children:(0,l.jsxs)(o1,{className:(0,k.cx)(\"tooltip\",r),style:{backgroundColor:p,color:void 0===h?\"#fff\":h,\"--tooltip-bg-color\":p,\"--arrow-size\":\"\".concat(u,\"px\")},children:[a,(0,l.jsx)(o2,{className:(0,k.cx)(\"tooltip-arrow\",\"tooltip-arrow--\".concat(s)),style:{\"--arrow-size\":\"\".concat(u,\"px\"),\"--tooltip-bg-color\":p}})]})})})]})}):o});function o9(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}function o8(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}var o7=function(e){var n,t;return!!(null==(n=e.value)?void 0:n.type)&&!!(null==(t=e.value)?void 0:t.pagePath)};function ae(e){var n=e.page;return(0,l.jsxs)(\"div\",{className:\"segment-explorer-page-route-bar\",children:[(0,l.jsx)(aa,{}),(0,l.jsx)(\"span\",{className:\"segment-explorer-page-route-bar-path\",children:n})]})}function an(e){var n=e.activeBoundariesCount,t=e.onGlobalReset,r=n>0;return(0,l.jsx)(\"div\",{className:\"segment-explorer-footer\",children:(0,l.jsxs)(\"button\",{className:\"segment-explorer-footer-button \".concat(r?\"\":\"segment-explorer-footer-button--disabled\"),onClick:r?t:void 0,disabled:!r,type:\"button\",children:[(0,l.jsx)(\"span\",{className:\"segment-explorer-footer-text\",children:\"Clear Segment Overrides\"}),r&&(0,l.jsx)(\"span\",{className:\"segment-explorer-footer-badge\",children:n})]})})}function at(e){var n=e.isAppRouter,t=e.page,r=(0,j.i8)(),o=(0,C.useMemo)(function(){return n?function e(n){var t,r=0;return(null==(t=n.value)?void 0:t.setBoundaryType)&&null!==n.value.boundaryType&&!oO(n.value.type)&&r++,Object.values(n.children).forEach(function(n){n&&(r+=e(n))}),r}(r):0},[r,n]),a=(0,C.useCallback)(function(){n&&function e(n){var t;(null==(t=n.value)?void 0:t.setBoundaryType)&&n.value.setBoundaryType(null),Object.values(n.children).forEach(function(n){n&&e(n)})}(r)},[r,n]);return(0,l.jsxs)(\"div\",{\"data-nextjs-devtools-panel-segments-explorer\":!0,children:[n&&(0,l.jsx)(ae,{page:t}),(0,l.jsx)(\"div\",{className:\"segment-explorer-content\",\"data-nextjs-devtool-segment-explorer\":!0,children:n?(0,l.jsx)(ar,{node:r,level:0,segment:\"\"}):(0,l.jsx)(\"p\",{children:\"Route Info currently is only available for the App Router.\"})}),n&&(0,l.jsx)(an,{activeBoundariesCount:o,onGlobalReset:a})]})}function ar(e){var n=e.segment,t=e.node,r=e.level,o=Object.keys(t.children).sort(function(e,n){var r=e.includes(\".\"),o=n.includes(\".\");if(r&&!o)return -1;if(!r&&o)return 1;if(r&&o){var a,i,l,s,c,u,d,f,p=null==(i=t.children[e])||null==(a=i.value)?void 0:a.type,h=null==(s=t.children[n])||null==(l=s.value)?void 0:l.type,g=function(e){return e?\"layout\"===e?1:\"template\"===e?2:\"page\"===e?3:oO(e)?4:5:5},m=g(p),v=g(h);if(m!==v)return m-v;var b=(null==(u=t.children[e])||null==(c=u.value)?void 0:c.pagePath)||\"\",y=(null==(f=t.children[n])||null==(d=f.value)?void 0:d.pagePath)||\"\";return b.localeCompare(y)}return e.localeCompare(n)}),a=0!==r||n?n:\"app\",i=[],s=[],c=!0,u=!1,d=void 0;try{for(var f,p=o[Symbol.iterator]();!(c=(f=p.next()).done);c=!0){var h=f.value,g=t.children[h];if(g){if(o7(g)){s.push(h);continue}i.push(h)}}}catch(e){u=!0,d=e}finally{try{c||null==p.return||p.return()}finally{if(u)throw d}}for(var m=null,v=o.length-1;v>=0;v--){var b=t.children[o[v]];if(b&&b.value){var y=oO(b.value.type);if(!m&&!y){m=b;break}}}var x=null,w=!0,j=!1,A=void 0;try{for(var O,C=o[Symbol.iterator]();!(w=(O=C.next()).done);w=!0){var S=O.value,E=t.children[S];if(E&&E.value&&oO(E.value.type)){x=E;break}}}catch(e){j=!0,A=e}finally{try{w||null==C.return||C.return()}finally{if(j)throw A}}m=m||x;var _=s.length>0,P={\"not-found\":null,loading:null,error:null};return s.forEach(function(e){var n=t.children[e];if(n&&n.value&&oO(n.value.type)){var r=n.value.type.replace(oA,\"\");r in P&&(P[r]=n.value.pagePath||null)}}),(0,l.jsxs)(l.Fragment,{children:[_&&(0,l.jsx)(\"div\",{className:\"segment-explorer-item\",\"data-nextjs-devtool-segment-explorer-segment\":n+\"-\"+r,children:(0,l.jsx)(\"div\",{className:\"segment-explorer-item-row\",style:o9({},{paddingLeft:\"\".concat((r+1)*8,\"px\")}),children:(0,l.jsxs)(\"div\",{className:\"segment-explorer-filename\",children:[a&&(0,l.jsxs)(\"span\",{className:\"segment-explorer-filename--path\",children:[a,(0,l.jsx)(\"small\",{children:\"/\"})]}),s.length>0&&(0,l.jsx)(\"span\",{className:\"segment-explorer-files\",children:s.map(function(e){var n=t.children[e];if(!n||!n.value||oO(n.value.type))return null;var r=n.value.pagePath,o=r.split(\"/\").pop()||\"\",a=r.startsWith(oj),i=ok(o),s=a?\"The default Next.js \".concat(n.value.type,\" is being shown. You can customize this page by adding your own \").concat(i,\" file to the app/ directory.\"):null,c=null!==n.value.boundaryType;return(0,l.jsx)(o6,{className:\"segment-explorer-file-label-tooltip--\"+(a?\"lg\":\"sm\"),direction:a?\"right\":\"top\",title:s,offset:12,bgcolor:\"var(--color-gray-1000)\",color:\"var(--color-gray-100)\",children:(0,l.jsxs)(\"span\",{className:(0,k.cx)(\"segment-explorer-file-label\",\"segment-explorer-file-label--\".concat(n.value.type),a&&\"segment-explorer-file-label--builtin\",c&&\"segment-explorer-file-label--overridden\"),onClick:function(){var e;e=new URLSearchParams({file:{filePath:r}.filePath,isAppRelativePath:\"1\"}),fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(e.toString()))},children:[(0,l.jsx)(\"span\",{className:\"segment-explorer-file-label-text\",children:i}),a?(0,l.jsx)(ao,{}):(0,l.jsx)(ai,{className:\"code-icon\"})]})},e)})}),m&&m.value&&(0,l.jsx)(oL,{nodeState:m.value,boundaries:P})]})})}),i.map(function(e){var o=t.children[e];if(!o)return null;var a=_?e:n+\" / \"+e;return(0,l.jsx)(ar,{segment:a,node:o,level:_?r+1:r},e)})]})}function ao(e){return(0,l.jsxs)(\"svg\",o8(o9({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[(0,l.jsx)(\"path\",{d:\"M14 8C14 11.3137 11.3137 14 8 14C4.68629 14 2 11.3137 2 8C2 4.68629 4.68629 2 8 2C11.3137 2 14 4.68629 14 8Z\",fill:\"var(--color-gray-400)\"}),(0,l.jsx)(\"path\",{d:\"M7.75 7C8.30228 7.00001 8.75 7.44772 8.75 8V11.25H7.25V8.5H6.25V7H7.75ZM8 4C8.55228 4 9 4.44772 9 5C9 5.55228 8.55228 6 8 6C7.44772 6 7 5.55228 7 5C7 4.44772 7.44772 4 8 4Z\",fill:\"var(--color-gray-900)\"})]}))}function aa(){return(0,l.jsx)(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"var(--color-gray-600)\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,l.jsx)(\"path\",{d:\"M4.5 11.25C4.5 11.3881 4.61193 11.5 4.75 11.5H14.4395L11.9395 9L13 7.93945L16.7803 11.7197L16.832 11.7764C17.0723 12.0709 17.0549 12.5057 16.7803 12.7803L13 16.5605L11.9395 15.5L14.4395 13H4.75C3.7835 13 3 12.2165 3 11.25V4.25H4.5V11.25Z\"})})}function ai(e){return(0,l.jsx)(\"svg\",o8(o9({width:\"12\",height:\"12\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",fill:\"currentColor\"},e),{children:(0,l.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M7.22763 14.1819L10.2276 2.18193L10.4095 1.45432L8.95432 1.09052L8.77242 1.81812L5.77242 13.8181L5.59051 14.5457L7.04573 14.9095L7.22763 14.1819ZM3.75002 12.0607L3.21969 11.5304L0.39647 8.70713C0.00594559 8.31661 0.00594559 7.68344 0.39647 7.29292L3.21969 4.46969L3.75002 3.93936L4.81068 5.00002L4.28035 5.53035L1.81068 8.00003L4.28035 10.4697L4.81068 11L3.75002 12.0607ZM12.25 12.0607L12.7804 11.5304L15.6036 8.70713C15.9941 8.31661 15.9941 7.68344 15.6036 7.29292L12.7804 4.46969L12.25 3.93936L11.1894 5.00002L11.7197 5.53035L14.1894 8.00003L11.7197 10.4697L11.1894 11L12.25 12.0607Z\",fill:\"currentColor\"})}))}},\"./src/next-devtools/dev-overlay/hooks/use-delayed-render.ts\":function(e,n,t){\"use strict\";t.d(n,{N:()=>i});var r=t(\"./dist/compiled/react/index.js\");function o(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function a(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return o(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function i(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=a((0,r.useState)(e),2),o=t[0],i=t[1],l=a((0,r.useState)(!1),2),s=l[0],c=l[1],u=n.enterDelay,d=void 0===u?1:u,f=n.exitDelay,p=void 0===f?0:f;return(0,r.useEffect)(function(){var n,t;return e?(i(!0),d<=0?c(!0):n=setTimeout(function(){c(!0)},d)):(c(!1),p<=0?i(!1):t=setTimeout(function(){i(!1)},p)),function(){clearTimeout(n),clearTimeout(t)}},[e,d,p]),{mounted:o,rendered:s}}},\"./src/next-devtools/dev-overlay/segment-explorer-trie.ts\":function(e,n,t){\"use strict\";t.d(n,{_c:()=>d,i8:()=>f,th:()=>u});var r=t(\"./dist/compiled/react/index.js\");function o(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r;r=t[n],n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r})}return e}var a=new Set,i=function(e){return a.add(e),function(){return a.delete(e)}},l=function(){return c.getRoot()},s=function(){return c.getRoot()},c=function(e){var n=e.getCharacters,t=void 0===n?function(e){return[e]}:n,r=e.compare,i=void 0===r?function(e,n){return e===n}:r,l={value:void 0,children:{}};function s(){var e=!0,n=!1,t=void 0;try{for(var r,o=a[Symbol.iterator]();!(e=(r=o.next()).done);e=!0)(0,r.value)()}catch(e){n=!0,t=e}finally{try{e||null==o.return||o.return()}finally{if(n)throw t}}}return{insert:function(e){var n=l,r=t(e),a=!0,i=!1,c=void 0;try{for(var u,d=r[Symbol.iterator]();!(a=(u=d.next()).done);a=!0){var f=u.value;n.children[f]||(n.children[f]={value:void 0,children:{}}),n=n.children[f]}}catch(e){i=!0,c=e}finally{try{a||null==d.return||d.return()}finally{if(i)throw c}}n.value=e,l=o({},l),s()},remove:function(e){var n=l,r=t(e),a=[],c=!0,u=!0,d=!1,f=void 0;try{for(var p,h=r[Symbol.iterator]();!(u=(p=h.next()).done);u=!0){var g=p.value;if(!n.children[g]){c=!1;break}a.push(n),n=n.children[g]}}catch(e){d=!0,f=e}finally{try{u||null==h.return||h.return()}finally{if(d)throw f}}if(c&&i(n.value,e)){n.value=void 0;for(var m=a.length-1;m>=0;m--){var v=a[m],b=r[m];0===Object.keys(v.children[b].children).length&&delete v.children[b]}l=o({},l),s()}},getRoot:function(){return l}}}({compare:function(e,n){return!!e&&!!n&&e.pagePath===n.pagePath&&e.type===n.type&&e.boundaryType===n.boundaryType},getCharacters:function(e){return e.pagePath.split(\"/\")}}),u=c.insert,d=c.remove;function f(){return(0,r.useSyncExternalStore)(i,l,s)}},\"./src/next-devtools/dev-overlay/utils/cx.ts\":function(e,n,t){\"use strict\";function r(){for(var e=arguments.length,n=Array(e),t=0;t<e;t++)n[t]=arguments[t];return n.filter(Boolean).join(\" \")}t.d(n,{cx:()=>r})}},__webpack_module_cache__={};function __nested_webpack_require_381207__(e){var n=__webpack_module_cache__[e];if(void 0!==n)return n.exports;var t=__webpack_module_cache__[e]={id:e,exports:{}};return __webpack_modules__[e](t,t.exports,__nested_webpack_require_381207__),t.exports}__nested_webpack_require_381207__.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return __nested_webpack_require_381207__.d(n,{a:n}),n},(()=>{var e,n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;__nested_webpack_require_381207__.t=function(t,r){if(1&r&&(t=this(t)),8&r||\"object\"==typeof t&&t&&(4&r&&t.__esModule||16&r&&\"function\"==typeof t.then))return t;var o=Object.create(null);__nested_webpack_require_381207__.r(o);var a={};e=e||[null,n({}),n([]),n(n)];for(var i=2&r&&t;\"object\"==typeof i&&!~e.indexOf(i);i=n(i))Object.getOwnPropertyNames(i).forEach(e=>{a[e]=()=>t[e]});return a.default=()=>t,__nested_webpack_require_381207__.d(o,a),o}})(),__nested_webpack_require_381207__.d=(e,n)=>{for(var t in n)__nested_webpack_require_381207__.o(n,t)&&!__nested_webpack_require_381207__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},__nested_webpack_require_381207__.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),__nested_webpack_require_381207__.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},__nested_webpack_require_381207__.nc=void 0;var __nested_webpack_exports__={};for(var __webpack_i__ in(()=>{\"use strict\";__nested_webpack_require_381207__.r(__nested_webpack_exports__),__nested_webpack_require_381207__.d(__nested_webpack_exports__,{dispatcher:()=>aH,renderAppDevOverlay:()=>aW,renderPagesDevOverlay:()=>a$});var e,n,t,r=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\"),o=__nested_webpack_require_381207__.n(r),a=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleDomAPI.js\"),i=__nested_webpack_require_381207__.n(a),l=__nested_webpack_require_381207__(\"./src/build/webpack/loaders/devtool/devtool-style-inject.js\"),s=__nested_webpack_require_381207__.n(l),c=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\"),u=__nested_webpack_require_381207__.n(c),d=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/insertStyleElement.js\"),f=__nested_webpack_require_381207__.n(d),p=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/style-loader@4.0.0_webpack@5.98.0_@swc+core@1.11.24_@swc+helpers@0.5.15__esbuild@0.24.2_/node_modules/style-loader/dist/runtime/styleTagTransform.js\"),h=__nested_webpack_require_381207__.n(p),g=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/global.css\"),m={};m.styleTagTransform=h(),m.setAttributes=u(),m.insert=s(),m.domAPI=i(),m.insertStyleElement=f(),o()(g.Z,m),g.Z&&g.Z.locals&&g.Z.locals;var v=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/toast/style.css\"),b={};b.styleTagTransform=h(),b.setAttributes=u(),b.insert=s(),b.domAPI=i(),b.insertStyleElement=f(),o()(v.Z,b),v.Z&&v.Z.locals&&v.Z.locals;var y=__nested_webpack_require_381207__(\"./dist/compiled/react/jsx-runtime.js\"),x=__nested_webpack_require_381207__(\"./dist/compiled/react/index.js\");function w(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}var j=__nested_webpack_require_381207__(\"./dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\"),k=/\\/_next(\\/static\\/.+)/,A=Symbol.for(\"next.console.error.digest\");function O(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function C(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}var S={Small:16/14,Medium:1,Large:16/18},E=\"static-indicator\",_=\"build-ok\",P=\"build-error\",z=\"before-fast-refresh\",L=\"fast-refresh\",T=\"version-info\",R=\"unhandled-error\",N=\"unhandled-rejection\",D=\"debug-info\",B=\"dev-indicator\",M=\"error-overlay-open\",I=\"error-overlay-close\",H=\"error-overlay-toggle\",F=\"building-indicator-show\",U=\"building-indicator-hide\",V=\"rendering-indicator-show\",q=\"rendering-indicator-hide\",W=\"devtools-panel-open\",$=\"devtools-panel-close\",Z=\"devtools-panel-toggle\",Y=\"devtools-position\",X=\"devtools-scale\",K=\"restart-server-button\",Q=\"__nextjs-dev-tools-theme\",G=\"__nextjs-dev-tools-position\",J=\"__nextjs-dev-tools-scale\",ee=\"segment-explorer-update-route-state\",en=/\\s+(at Object\\.react_stack_bottom_frame.*)|(react_stack_bottom_frame@.*)|(at react-stack-bottom-frame.*)|(react-stack-bottom-frame@.*)/;function et(e){return null==e?void 0:e.split(en)[0]}var er=(null==(e=true)?void 0:e.toString())===\"false\",eo={nextId:1,buildError:null,errors:[],notFound:!1,renderingIndicator:!1,staticIndicator:!1,showIndicator:!1,disableDevIndicator:!1,buildingIndicator:!1,refreshState:{type:\"idle\"},versionInfo:{installed:\"0.0.0\",staleness:\"unknown\"},debugInfo:{devtoolsFrontendUrl:void 0},isDevToolsPanelOpen:!1,showRestartServerButton:!1,devToolsPosition:\"bottom-left\",scale:S.Medium,page:\"\"},ea=__nested_webpack_require_381207__(\"./dist/compiled/react-dom/client.js\");function ei(e){for(var n=arguments.length,t=Array(n>1?n-1:0),r=1;r<n;r++)t[r-1]=arguments[r];var o=e.length-1;return(e.slice(0,o).reduce(function(e,n,r){return e+n+t[r]},\"\")+e[o]).replace(/\\/\\*[\\s\\S]*?\\*\\//g,\"\").replace(/\\s+/g,\" \").replace(/\\s*([:;,{}])\\s*/g,\"$1\").replace(/;+}/g,\"}\").trim()}function el(){var e,n,t=(e=[\"\\n /* latin-ext */\\n @font-face {\\n font-family: '__nextjs-Geist';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-latin-ext.woff2) format('woff2');\\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,\\n U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,\\n U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,\\n U+A720-A7FF;\\n }\\n /* latin-ext */\\n @font-face {\\n font-family: '__nextjs-Geist Mono';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-mono-latin-ext.woff2) format('woff2');\\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,\\n U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,\\n U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,\\n U+A720-A7FF;\\n }\\n /* latin */\\n @font-face {\\n font-family: '__nextjs-Geist';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-latin.woff2) format('woff2');\\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\\n U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,\\n U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\\n }\\n /* latin */\\n @font-face {\\n font-family: '__nextjs-Geist Mono';\\n font-style: normal;\\n font-weight: 400 600;\\n font-display: swap;\\n src: url(/__nextjs_font/geist-mono-latin.woff2) format('woff2');\\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,\\n U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,\\n U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return el=function(){return t},t}var es=function(){return(0,x.useInsertionEffect)(function(){var e=document.createElement(\"style\");return e.textContent=ei(el()),document.head.appendChild(e),function(){document.head.removeChild(e)}},[]),null},ec=__nested_webpack_require_381207__(\"./dist/compiled/react-dom/index.js\");function eu(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function ed(e){var n,t,r=e.children,o=x.useRef(null),a=x.useRef(null),i=(n=x.useState(),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return eu(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return eu(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}())[1];return x.useEffect(function(){if(o.current=document.querySelector(\"nextjs-portal\"),\"undefined\"!=typeof localStorage){var e=localStorage.getItem(Q);\"dark\"===e?(o.current.classList.add(\"dark\"),o.current.classList.remove(\"light\")):\"light\"===e&&(o.current.classList.remove(\"dark\"),o.current.classList.add(\"light\"))}null===o.current.shadowRoot&&(a.current=o.current.attachShadow({mode:\"open\"})),i({})},[]),a.current?(0,ec.createPortal)(r,a.current):null}function ef(){var e,n,t=(e=[\"\\n :host {\\n /* \\n * Although the style applied to the shadow host is isolated,\\n * the element that attached the shadow host (i.e. \\\"nextjs-portal\\\")\\n * is still affected by the parent's style (e.g. \\\"body\\\"). This may\\n * occur style conflicts like \\\"display: flex\\\", with other children\\n * elements therefore give the shadow host an absolute position.\\n */\\n position: absolute;\\n\\n --color-font: #757575;\\n --color-backdrop: rgba(250, 250, 250, 0.8);\\n --color-border-shadow: rgba(0, 0, 0, 0.145);\\n\\n --color-title-color: #1f1f1f;\\n --color-stack-notes: #777;\\n\\n --color-accents-1: #808080;\\n --color-accents-2: #222222;\\n --color-accents-3: #404040;\\n\\n --font-stack-monospace: '__nextjs-Geist Mono', 'Geist Mono',\\n 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier,\\n monospace;\\n --font-stack-sans: '__nextjs-Geist', 'Geist', -apple-system,\\n 'Source Sans Pro', sans-serif;\\n\\n font-family: var(--font-stack-sans);\\n font-variant-ligatures: none;\\n\\n /* TODO: Remove replaced ones. */\\n --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);\\n --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1),\\n 0 1px 2px -1px rgb(0 0 0 / 0.1);\\n --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1),\\n 0 2px 4px -2px rgb(0 0 0 / 0.1);\\n --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1),\\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\\n --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1),\\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\\n --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);\\n --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\\n --shadow-none: 0 0 #0000;\\n\\n --shadow-small: 0px 2px 2px rgba(0, 0, 0, 0.04);\\n --shadow-menu: 0px 1px 1px rgba(0, 0, 0, 0.02),\\n 0px 4px 8px -4px rgba(0, 0, 0, 0.04),\\n 0px 16px 24px -8px rgba(0, 0, 0, 0.06);\\n\\n --focus-color: var(--color-blue-800);\\n --focus-ring: 2px solid var(--focus-color);\\n\\n --timing-swift: cubic-bezier(0.23, 0.88, 0.26, 0.92);\\n --timing-overlay: cubic-bezier(0.175, 0.885, 0.32, 1.1);\\n /* prettier-ignore */\\n --timing-bounce: linear(0 0%, 0.005871 1%, 0.022058 2%, 0.046612 3%, 0.077823 4%, 0.114199 5%, 0.154441 6%, 0.197431 7.000000000000001%, 0.242208 8%, 0.287959 9%, 0.333995 10%, 0.379743 11%, 0.424732 12%, 0.46858 13%, 0.510982 14.000000000000002%, 0.551702 15%, 0.590564 16%, 0.627445 17%, 0.662261 18%, 0.694971 19%, 0.725561 20%, 0.754047 21%, 0.780462 22%, 0.804861 23%, 0.82731 24%, 0.847888 25%, 0.866679 26%, 0.883775 27%, 0.899272 28.000000000000004%, 0.913267 28.999999999999996%, 0.925856 30%, 0.937137 31%, 0.947205 32%, 0.956153 33%, 0.96407 34%, 0.971043 35%, 0.977153 36%, 0.982479 37%, 0.987094 38%, 0.991066 39%, 0.994462 40%, 0.997339 41%, 0.999755 42%, 1.001761 43%, 1.003404 44%, 1.004727 45%, 1.00577 46%, 1.006569 47%, 1.007157 48%, 1.007563 49%, 1.007813 50%, 1.007931 51%, 1.007939 52%, 1.007855 53%, 1.007697 54%, 1.007477 55.00000000000001%, 1.00721 56.00000000000001%, 1.006907 56.99999999999999%, 1.006576 57.99999999999999%, 1.006228 59%, 1.005868 60%, 1.005503 61%, 1.005137 62%, 1.004776 63%, 1.004422 64%, 1.004078 65%, 1.003746 66%, 1.003429 67%, 1.003127 68%, 1.00284 69%, 1.002571 70%, 1.002318 71%, 1.002082 72%, 1.001863 73%, 1.00166 74%, 1.001473 75%, 1.001301 76%, 1.001143 77%, 1.001 78%, 1.000869 79%, 1.000752 80%, 1.000645 81%, 1.00055 82%, 1.000464 83%, 1.000388 84%, 1.000321 85%, 1.000261 86%, 1.000209 87%, 1.000163 88%, 1.000123 89%, 1.000088 90%);\\n\\n --rounded-none: 0px;\\n --rounded-sm: 2px;\\n --rounded-md: 4px;\\n --rounded-md-2: 6px;\\n --rounded-lg: 8px;\\n --rounded-xl: 12px;\\n --rounded-2xl: 16px;\\n --rounded-3xl: 24px;\\n --rounded-4xl: 32px;\\n --rounded-full: 9999px;\\n\\n /* \\n This value gets set from the Dev Tools preferences,\\n and we use the following --size-* variables to \\n scale the relevant elements.\\n\\n The reason why we don't rely on rem values is because\\n if an app sets their root font size to something tiny, \\n it feels unexpected to have the app root size leak \\n into a Next.js surface.\\n\\n https://github.com/vercel/next.js/discussions/76812\\n */\\n --nextjs-dev-tools-scale: \",\";\\n --size-1: calc(1px / var(--nextjs-dev-tools-scale));\\n --size-2: calc(2px / var(--nextjs-dev-tools-scale));\\n --size-3: calc(3px / var(--nextjs-dev-tools-scale));\\n --size-4: calc(4px / var(--nextjs-dev-tools-scale));\\n --size-5: calc(5px / var(--nextjs-dev-tools-scale));\\n --size-6: calc(6px / var(--nextjs-dev-tools-scale));\\n --size-7: calc(7px / var(--nextjs-dev-tools-scale));\\n --size-8: calc(8px / var(--nextjs-dev-tools-scale));\\n --size-9: calc(9px / var(--nextjs-dev-tools-scale));\\n --size-10: calc(10px / var(--nextjs-dev-tools-scale));\\n --size-11: calc(11px / var(--nextjs-dev-tools-scale));\\n --size-12: calc(12px / var(--nextjs-dev-tools-scale));\\n --size-13: calc(13px / var(--nextjs-dev-tools-scale));\\n --size-14: calc(14px / var(--nextjs-dev-tools-scale));\\n --size-15: calc(15px / var(--nextjs-dev-tools-scale));\\n --size-16: calc(16px / var(--nextjs-dev-tools-scale));\\n --size-17: calc(17px / var(--nextjs-dev-tools-scale));\\n --size-18: calc(18px / var(--nextjs-dev-tools-scale));\\n --size-20: calc(20px / var(--nextjs-dev-tools-scale));\\n --size-22: calc(22px / var(--nextjs-dev-tools-scale));\\n --size-24: calc(24px / var(--nextjs-dev-tools-scale));\\n --size-26: calc(26px / var(--nextjs-dev-tools-scale));\\n --size-28: calc(28px / var(--nextjs-dev-tools-scale));\\n --size-30: calc(30px / var(--nextjs-dev-tools-scale));\\n --size-32: calc(32px / var(--nextjs-dev-tools-scale));\\n --size-34: calc(34px / var(--nextjs-dev-tools-scale));\\n --size-36: calc(36px / var(--nextjs-dev-tools-scale));\\n --size-38: calc(38px / var(--nextjs-dev-tools-scale));\\n --size-40: calc(40px / var(--nextjs-dev-tools-scale));\\n --size-42: calc(42px / var(--nextjs-dev-tools-scale));\\n --size-44: calc(44px / var(--nextjs-dev-tools-scale));\\n --size-46: calc(46px / var(--nextjs-dev-tools-scale));\\n --size-48: calc(48px / var(--nextjs-dev-tools-scale));\\n\\n @media print {\\n display: none;\\n }\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-bottom: 8px;\\n font-weight: 500;\\n line-height: 1.5;\\n }\\n\\n a {\\n color: var(--color-blue-900);\\n &:hover {\\n color: var(--color-blue-900);\\n }\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ef=function(){return t},t}function ep(e){var n=e.scale;return(0,y.jsx)(\"style\",{children:ei(ef(),String(void 0===n?1:n))})}function eh(e){if(\"\"===e.trim())throw Error(\"can't decode empty hex\");var n=parseInt(e,16);if(isNaN(n))throw Error(\"invalid hex: `\".concat(e,\"`\"));return String.fromCodePoint(n)}var eg=/^__TURBOPACK__([a-zA-Z0-9_$]+)__$/,em=/https?:\\/\\/[^\\s/$.?#].[^\\s)'\"]*/i,ev=new RegExp(\"(\".concat(/__TURBOPACK__[a-zA-Z0-9_$]+__/g.source,\"|\\\\s+)\")),eb=function(e){var n=e.text,t=e.matcher,r=n.split(ev);return(0,y.jsx)(y.Fragment,{children:r.map(function(e,n){if(em.test(e)){var r=em.exec(e)[0];return\"function\"!=typeof t||t(r)?(0,y.jsx)(x.Fragment,{children:(0,y.jsx)(\"a\",{href:r,target:\"_blank\",rel:\"noreferrer noopener\",children:e})},\"link-\".concat(n)):e}try{var o=function(e){var n=e.match(eg);if(!n)return e;for(var t=n[1],r=\"\",o=0,a=\"\",i=0;i<t.length;i++){var l=t[i];if(0===o)\"_\"===l?o=1:\"$\"===l?o=2:r+=l;else if(1===o)\"_\"===l?(r+=\" \",o=0):\"$\"===l?(r+=\"_\",o=2):(r+=l,o=0);else if(2===o)if(2===a.length&&(r+=eh(a),a=\"\"),\"_\"===l){if(\"\"!==a)throw Error(\"invalid hex: `\".concat(a,\"`\"));o=3}else if(\"$\"===l){if(\"\"!==a)throw Error(\"invalid hex: `\".concat(a,\"`\"));o=0}else a+=l;else if(3===o)if(\"_\"===l)throw Error(\"invalid hex: `\".concat(a+l,\"`\"));else\"$\"===l?(r+=eh(a),a=\"\",o=0):a+=l}return r}(e);if(o!==e)return(0,y.jsxs)(\"i\",{children:[\"{\",o,\"}\"]},\"ident-\".concat(n))}catch(t){return(0,y.jsxs)(\"i\",{children:[\"{\",e,\" (decoding failed: \",\"\"+t,\")\",\"}\"]},\"ident-\".concat(n))}return(0,y.jsx)(x.Fragment,{children:e},\"text-\".concat(n))})})},ey=[/^webpack-internal:\\/\\/\\/(\\([\\w-]+\\)\\/)?/,/^(webpack:\\/\\/\\/|webpack:\\/\\/(_N_E\\/)?)(\\([\\w-]+\\)\\/)?/];function ex(e){var n=!0,t=!1,r=void 0;try{for(var o,a=ey[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var i=o.value;if(i.test(e))return!0;e=e.replace(i,\"\")}}catch(e){t=!0,r=e}finally{try{n||null==a.return||a.return()}finally{if(t)throw r}}return!1}function ew(e){var n=!0,t=!1,r=void 0;try{for(var o,a=ey[Symbol.iterator]();!(n=(o=a.next()).done);n=!0){var i=o.value;e=e.replace(i,\"\")}}catch(e){t=!0,r=e}finally{try{n||null==a.return||a.return()}finally{if(t)throw r}}return e}function ej(e,n,t,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){t(e);return}l.done?n(s):Promise.resolve(s).then(r,o)}function ek(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var a=e.apply(n,t);function i(e){ej(a,r,o,i,l,\"next\",e)}function l(e){ej(a,r,o,i,l,\"throw\",e)}i(void 0)})}}function eA(e,n){var t,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(t)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}function eO(e,n){var t;return\"file://\"===e.file||(null==(t=e.file)?void 0:t.match(/https?:\\/\\//))?Promise.resolve({error:!1,reason:null,external:!0,sourceStackFrame:e,originalStackFrame:null,originalCodeFrame:null,ignored:!0}):ek(function(){var t,r;return eA(this,function(o){if(\"rejected\"===n.status)throw Error(n.reason);return[2,{error:!1,reason:null,external:!1,sourceStackFrame:e,originalStackFrame:(r=n.value).originalStackFrame,originalCodeFrame:r.originalCodeFrame||null,ignored:(null==(t=r.originalStackFrame)?void 0:t.ignored)||!1}]})})().catch(function(n){var t,r;return{error:!0,reason:null!=(r=null!=(t=null==n?void 0:n.message)?t:null==n?void 0:n.toString())?r:\"Unknown Error\",external:!1,sourceStackFrame:e,originalStackFrame:null,originalCodeFrame:null,ignored:!1}})}function eC(e,n,t){return ek(function(){var r,o,a,i;return eA(this,function(l){switch(l.label){case 0:r={frames:e,isServer:\"server\"===n,isEdgeServer:\"edge-server\"===n,isAppDirectory:t},o=void 0,a=void 0,l.label=1;case 1:return l.trys.push([1,3,,4]),[4,fetch(\"/__nextjs_original-stack-frames\",{method:\"POST\",body:JSON.stringify(r)})];case 2:return o=l.sent(),[3,4];case 3:return a=l.sent()+\"\",[3,4];case 4:if(!(o&&o.ok&&204!==o.status))return[3,6];return[4,o.json()];case 5:return i=l.sent(),[2,Promise.all(e.map(function(e,n){return eO(e,i[n])}))];case 6:if(!o)return[3,8];return[4,o.text()];case 7:a=l.sent(),l.label=8;case 8:return[2,Promise.all(e.map(function(e){return eO(e,{status:\"rejected\",reason:\"Failed to fetch the original stack frames \".concat(a?\": \".concat(a):\"\")})}))]}})})()}function eS(e){if(!e.file)return\"\";var n=ex(e.file),t=\"\";if(n)t=ew(e.file);else try{var r,o=new URL(e.file),a=\"\";(null==(r=globalThis.location)?void 0:r.origin)!==o.origin&&(\"null\"===o.origin?a+=o.protocol:a+=o.origin),a+=o.pathname,t=ew(a)}catch(n){t=ew(e.file)}return!ex(e.file)&&null!=e.lineNumber&&t&&\"<anonymous>\"!==e.file&&(null!=e.column?t+=\" (\".concat(e.lineNumber,\":\").concat(e.column,\")\"):t+=\" (\".concat(e.lineNumber,\")\")),t}function eE(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.file,t=e.lineNumber,r=e.column;return(0,x.useCallback)(function(){if(null!=n&&null!=t&&null!=r){var e=new URLSearchParams;e.append(\"file\",n),e.append(\"lineNumber\",String(t)),e.append(\"column\",String(r)),self.fetch(\"\".concat( false||\"\",\"/__nextjs_launch-editor?\").concat(e.toString())).then(function(){},function(e){console.error('Failed to open file \"'.concat(n,\" (\").concat(t,\":\").concat(r,')\" in your editor. Cause:'),e)})}},[n,t,r])}function e_(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function eP(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function ez(e){return(0,y.jsx)(\"svg\",eP(e_({xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\"},e),{children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",fill:\"currentColor\",d:\"M11.5 9.75V11.25C11.5 11.3881 11.3881 11.5 11.25 11.5H4.75C4.61193 11.5 4.5 11.3881 4.5 11.25L4.5 4.75C4.5 4.61193 4.61193 4.5 4.75 4.5H6.25H7V3H6.25H4.75C3.7835 3 3 3.7835 3 4.75V11.25C3 12.2165 3.7835 13 4.75 13H11.25C12.2165 13 13 12.2165 13 11.25V9.75V9H11.5V9.75ZM8.5 3H9.25H12.2495C12.6637 3 12.9995 3.33579 12.9995 3.75V6.75V7.5H11.4995V6.75V5.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L10.4388 4.5H9.25H8.5V3Z\"})}))}function eL(e){return(0,y.jsx)(\"svg\",eP(e_({xmlns:\"http://www.w3.org/2000/svg\",height:\"16\",strokeLinejoin:\"round\",viewBox:\"-4 -4 24 24\",width:\"16\"},e),{children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.55846 2H7.44148L1.88975 13.5H14.1102L8.55846 2ZM9.90929 1.34788C9.65902 0.829456 9.13413 0.5 8.55846 0.5H7.44148C6.86581 0.5 6.34092 0.829454 6.09065 1.34787L0.192608 13.5653C-0.127943 14.2293 0.355835 15 1.09316 15H14.9068C15.6441 15 16.1279 14.2293 15.8073 13.5653L9.90929 1.34788ZM8.74997 4.75V5.5V8V8.75H7.24997V8V5.5V4.75H8.74997ZM7.99997 12C8.55226 12 8.99997 11.5523 8.99997 11C8.99997 10.4477 8.55226 10 7.99997 10C7.44769 10 6.99997 10.4477 6.99997 11C6.99997 11.5523 7.44769 12 7.99997 12Z\",fill:\"currentColor\"})}))}function eT(e){var n=e.lang;if(!n)return(0,y.jsx)(eB,{});switch(n.toLowerCase()){case\"jsx\":case\"tsx\":return(0,y.jsx)(eM,{});case\"ts\":case\"typescript\":return(0,y.jsx)(eD,{});case\"javascript\":case\"js\":case\"mjs\":return(0,y.jsx)(eN,{});case\"json\":return(0,y.jsx)(eR,{});default:return(0,y.jsx)(eB,{})}}function eR(){return(0,y.jsx)(\"svg\",{clipRule:\"evenodd\",fillRule:\"evenodd\",height:\"16\",viewBox:\"0 0 1321.45 1333.33\",width:\"16\",children:(0,y.jsx)(\"path\",{d:\"M221.37 618.44h757.94V405.15H755.14c-23.5 0-56.32-12.74-71.82-28.24-15.5-15.5-25-43.47-25-66.97V82.89H88.39c-1.99 0-3.49 1-4.49 2-1.5 1-2 2.5-2 4.5v1155.04c0 1.5 1 3.5 2 4.5 1 1.49 3 1.99 4.49 1.99H972.8c2 0 1.89-.99 2.89-1.99 1.5-1 3.61-3 3.61-4.5v-121.09H221.36c-44.96 0-82-36.9-82-81.99V700.44c0-45.1 36.9-82 82-82zm126.51 117.47h75.24v146.61c0 30.79-2.44 54.23-7.33 70.31-4.92 16.03-14.8 29.67-29.65 40.85-14.86 11.12-33.91 16.72-57.05 16.72-24.53 0-43.51-3.71-56.94-11.06-13.5-7.36-23.89-18.1-31.23-32.3-7.35-14.14-11.69-31.67-12.99-52.53l71.5-10.81c.11 11.81 1.07 20.61 2.81 26.33 1.76 5.78 4.75 10.37 9 13.95 2.87 2.33 6.94 3.46 12.25 3.46 8.4 0 14.58-3.46 18.53-10.37 3.9-6.92 5.87-18.6 5.87-35V735.92zm112.77 180.67l71.17-4.97c1.54 12.81 4.69 22.62 9.44 29.28 7.74 10.88 18.74 16.34 33.09 16.34 10.68 0 18.93-2.76 24.68-8.36 5.81-5.58 8.7-12.07 8.7-19.41 0-6.97-2.71-13.26-8.2-18.79-5.47-5.53-18.23-10.68-38.28-15.65-32.89-8.17-56.27-19.1-70.26-32.74-14.12-13.57-21.18-30.92-21.18-52.03 0-13.83 3.61-26.89 10.85-39.21 7.22-12.38 18.07-22.06 32.59-29.09 14.52-7.04 34.4-10.56 59.65-10.56 31 0 54.62 6.41 70.88 19.29 16.28 12.81 25.92 33.24 29.04 61.27l-70.5 4.65c-1.87-12.25-5.81-21.17-11.81-26.7-6.05-5.6-14.35-8.36-24.9-8.36-8.71 0-15.31 2.07-19.73 6.16-4.4 4.09-6.59 9.12-6.59 15.02 0 4.27 1.81 8.11 5.37 11.57 3.45 3.59 11.8 6.85 25.02 9.93 32.75 7.86 56.2 15.84 70.31 23.87 14.18 8.05 24.52 17.98 30.96 29.92 6.44 11.88 9.66 25.2 9.66 39.96 0 17.29-4.3 33.24-12.88 47.89-8.63 14.58-20.61 25.7-36.08 33.24-15.41 7.54-34.85 11.31-58.33 11.31-41.24 0-69.81-8.86-85.68-26.52-15.88-17.65-24.85-40.09-26.96-67.3zm248.74-45.5c0-44.05 11.02-78.36 33.09-102.87 22.09-24.57 52.82-36.82 92.24-36.82 40.38 0 71.5 12.07 93.34 36.13 21.86 24.13 32.77 57.94 32.77 101.37 0 31.54-4.75 57.36-14.3 77.54-9.54 20.18-23.37 35.89-41.4 47.13-18.07 11.24-40.55 16.84-67.48 16.84-27.33 0-49.99-4.83-67.94-14.52-17.92-9.74-32.49-25.07-43.62-46.06-11.13-20.92-16.72-47.19-16.72-78.74zm74.89.19c0 27.21 4.57 46.81 13.68 58.68 9.13 11.88 21.57 17.85 37.26 17.85 16.1 0 28.65-5.84 37.45-17.47 8.87-11.68 13.28-32.54 13.28-62.77 0-25.39-4.63-43.92-13.84-55.61-9.26-11.76-21.75-17.6-37.56-17.6-15.13 0-27.34 5.97-36.49 17.85-9.21 11.88-13.78 31.61-13.78 59.07zm209.08-135.36h69.99l90.98 149.05V735.91h70.83v269.96h-70.83l-90.48-148.24v148.24h-70.49V735.91zm67.71-117.47h178.37c45.1 0 82 37.04 82 82v340.91c0 44.96-37.03 81.99-82 81.99h-178.37v147c0 17.5-6.99 32.99-18.5 44.5-11.5 11.49-27 18.5-44.5 18.5H62.97c-17.5 0-32.99-7-44.5-18.5-11.49-11.5-18.5-27-18.5-44.5V63.49c0-17.5 7-33 18.5-44.5S45.97.49 62.97.49H700.1c1.5-.5 3-.5 4.5-.5 7 0 14 3 19 7.49h1c1 .5 1.5 1 2.5 2l325.46 329.47c5.5 5.5 9.5 13 9.5 21.5 0 2.5-.5 4.5-1 7v250.98zM732.61 303.47V96.99l232.48 235.47H761.6c-7.99 0-14.99-3.5-20.5-8.49-4.99-5-8.49-12.5-8.49-20.5z\",fill:\"currentColor\"})})}function eN(){return(0,y.jsx)(\"svg\",{height:\"16\",viewBox:\"0 0 50 50\",width:\"16\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{d:\"M 43.335938 4 L 6.667969 4 C 5.195313 4 4 5.195313 4 6.667969 L 4 43.332031 C 4 44.804688 5.195313 46 6.667969 46 L 43.332031 46 C 44.804688 46 46 44.804688 46 43.335938 L 46 6.667969 C 46 5.195313 44.804688 4 43.335938 4 Z M 27 36.183594 C 27 40.179688 24.65625 42 21.234375 42 C 18.140625 42 15.910156 39.925781 15 38 L 18.144531 36.097656 C 18.75 37.171875 19.671875 38 21 38 C 22.269531 38 23 37.503906 23 35.574219 L 23 23 L 27 23 Z M 35.675781 42 C 32.132813 42 30.121094 40.214844 29 38 L 32 36 C 32.816406 37.335938 33.707031 38.613281 35.589844 38.613281 C 37.171875 38.613281 38 37.824219 38 36.730469 C 38 35.425781 37.140625 34.960938 35.402344 34.199219 L 34.449219 33.789063 C 31.695313 32.617188 29.863281 31.148438 29.863281 28.039063 C 29.863281 25.179688 32.046875 23 35.453125 23 C 37.878906 23 39.621094 23.84375 40.878906 26.054688 L 37.910156 27.964844 C 37.253906 26.789063 36.550781 26.328125 35.453125 26.328125 C 34.335938 26.328125 33.628906 27.039063 33.628906 27.964844 C 33.628906 29.109375 34.335938 29.570313 35.972656 30.28125 L 36.925781 30.691406 C 40.171875 32.078125 42 33.496094 42 36.683594 C 42 40.117188 39.300781 42 35.675781 42 Z\",fill:\"currentColor\"})})}function eD(){return(0,y.jsxs)(\"svg\",{fill:\"none\",height:\"14\",viewBox:\"0 0 512 512\",width:\"14\",xmlns:\"http://www.w3.org/2000/svg\",children:[(0,y.jsx)(\"rect\",{fill:\"currentColor\",height:\"512\",rx:\"50\",width:\"512\"}),(0,y.jsx)(\"rect\",{fill:\"currentColor\",height:\"512\",rx:\"50\",width:\"512\"}),(0,y.jsx)(\"path\",{clipRule:\"evenodd\",d:\"m316.939 407.424v50.061c8.138 4.172 17.763 7.3 28.875 9.386s22.823 3.129 35.135 3.129c11.999 0 23.397-1.147 34.196-3.442 10.799-2.294 20.268-6.075 28.406-11.342 8.138-5.266 14.581-12.15 19.328-20.65s7.121-19.007 7.121-31.522c0-9.074-1.356-17.026-4.069-23.857s-6.625-12.906-11.738-18.225c-5.112-5.319-11.242-10.091-18.389-14.315s-15.207-8.213-24.18-11.967c-6.573-2.712-12.468-5.345-17.685-7.9-5.217-2.556-9.651-5.163-13.303-7.822-3.652-2.66-6.469-5.476-8.451-8.448-1.982-2.973-2.974-6.336-2.974-10.091 0-3.441.887-6.544 2.661-9.308s4.278-5.136 7.512-7.118c3.235-1.981 7.199-3.52 11.894-4.615 4.696-1.095 9.912-1.642 15.651-1.642 4.173 0 8.581.313 13.224.938 4.643.626 9.312 1.591 14.008 2.894 4.695 1.304 9.259 2.947 13.694 4.928 4.434 1.982 8.529 4.276 12.285 6.884v-46.776c-7.616-2.92-15.937-5.084-24.962-6.492s-19.381-2.112-31.066-2.112c-11.895 0-23.163 1.278-33.805 3.833s-20.006 6.544-28.093 11.967c-8.086 5.424-14.476 12.333-19.171 20.729-4.695 8.395-7.043 18.433-7.043 30.114 0 14.914 4.304 27.638 12.912 38.172 8.607 10.533 21.675 19.45 39.204 26.751 6.886 2.816 13.303 5.579 19.25 8.291s11.086 5.528 15.415 8.448c4.33 2.92 7.747 6.101 10.252 9.543 2.504 3.441 3.756 7.352 3.756 11.733 0 3.233-.783 6.231-2.348 8.995s-3.939 5.162-7.121 7.196-7.147 3.624-11.894 4.771c-4.748 1.148-10.303 1.721-16.668 1.721-10.851 0-21.597-1.903-32.24-5.71-10.642-3.806-20.502-9.516-29.579-17.13zm-84.159-123.342h64.22v-41.082h-179v41.082h63.906v182.918h50.874z\",fill:\"var(--color-background-100)\",fillRule:\"evenodd\"})]})}function eB(){return(0,y.jsx)(\"svg\",{width:\"16\",height:\"17\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M14.5 7v7a2.5 2.5 0 0 1-2.5 2.5H4A2.5 2.5 0 0 1 1.5 14V.5h7.586a1 1 0 0 1 .707.293l4.414 4.414a1 1 0 0 1 .293.707V7zM13 7v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2h5v5h5zM9.5 2.621V5.5h2.879L9.5 2.621z\",fill:\"currentColor\"})})}function eM(){return(0,y.jsxs)(\"svg\",{height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:[(0,y.jsx)(\"g\",{clipPath:\"url(#file_react_clip0_872_3183)\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M4.5 1.93782C4.70129 1.82161 4.99472 1.7858 5.41315 1.91053C5.83298 2.03567 6.33139 2.31073 6.87627 2.73948C7.01136 2.84578 7.14803 2.96052 7.28573 3.08331C6.86217 3.53446 6.44239 4.04358 6.03752 4.60092C5.35243 4.67288 4.70164 4.78186 4.09916 4.92309C4.06167 4.74244 4.03064 4.56671 4.00612 4.39656C3.90725 3.71031 3.91825 3.14114 4.01979 2.71499C4.12099 2.29025 4.29871 2.05404 4.5 1.93782ZM7.49466 1.95361C7.66225 2.08548 7.83092 2.22804 7.99999 2.38067C8.16906 2.22804 8.33773 2.08548 8.50532 1.95361C9.10921 1.47842 9.71982 1.12549 10.3012 0.952202C10.8839 0.778496 11.4838 0.7738 12 1.0718C12.5161 1.3698 12.812 1.89169 12.953 2.48322C13.0936 3.07333 13.0932 3.77858 12.9836 4.53917C12.9532 4.75024 12.9141 4.9676 12.8665 5.19034C13.0832 5.26044 13.291 5.33524 13.489 5.41444C14.2025 5.69983 14.8134 6.05217 15.2542 6.46899C15.696 6.8868 16 7.404 16 8C16 8.596 15.696 9.11319 15.2542 9.53101C14.8134 9.94783 14.2025 10.3002 13.489 10.5856C13.291 10.6648 13.0832 10.7396 12.8665 10.8097C12.9141 11.0324 12.9532 11.2498 12.9837 11.4608C13.0932 12.2214 13.0936 12.9267 12.953 13.5168C12.812 14.1083 12.5161 14.6302 12 14.9282C11.4839 15.2262 10.8839 15.2215 10.3012 15.0478C9.71984 14.8745 9.10923 14.5216 8.50534 14.0464C8.33775 13.9145 8.16906 13.7719 7.99999 13.6193C7.83091 13.7719 7.66223 13.9145 7.49464 14.0464C6.89075 14.5216 6.28014 14.8745 5.69879 15.0478C5.11605 15.2215 4.51613 15.2262 3.99998 14.9282C3.48383 14.6302 3.18794 14.1083 3.047 13.5168C2.9064 12.9267 2.90674 12.2214 3.01632 11.4608C3.04673 11.2498 3.08586 11.0324 3.13351 10.8097C2.91679 10.7395 2.709 10.6648 2.511 10.5856C1.79752 10.3002 1.18658 9.94783 0.745833 9.53101C0.304028 9.11319 0 8.596 0 8C0 7.404 0.304028 6.8868 0.745833 6.46899C1.18658 6.05217 1.79752 5.69983 2.511 5.41444C2.709 5.33524 2.9168 5.26044 3.13352 5.19034C3.08587 4.9676 3.04675 4.75024 3.01634 4.53917C2.90676 3.77858 2.90642 3.07332 3.04702 2.48321C3.18796 1.89169 3.48385 1.3698 4 1.0718C4.51615 0.773798 5.11607 0.778495 5.69881 0.952201C6.28016 1.12549 6.89077 1.47841 7.49466 1.95361ZM7.36747 4.51025C7.57735 4.25194 7.78881 4.00927 7.99999 3.78356C8.21117 4.00927 8.42263 4.25194 8.63251 4.51025C8.42369 4.50346 8.21274 4.5 8 4.5C7.78725 4.5 7.5763 4.50345 7.36747 4.51025ZM8.71425 3.08331C9.13781 3.53447 9.55759 4.04358 9.96246 4.60092C10.6475 4.67288 11.2983 4.78186 11.9008 4.92309C11.9383 4.74244 11.9693 4.56671 11.9939 4.39657C12.0927 3.71031 12.0817 3.14114 11.9802 2.71499C11.879 2.29025 11.7013 2.05404 11.5 1.93782C11.2987 1.82161 11.0053 1.7858 10.5868 1.91053C10.167 2.03568 9.66859 2.31073 9.12371 2.73948C8.98862 2.84578 8.85196 2.96052 8.71425 3.08331ZM8 5.5C8.48433 5.5 8.95638 5.51885 9.41188 5.55456C9.67056 5.93118 9.9229 6.33056 10.1651 6.75C10.4072 7.16944 10.6269 7.58766 10.8237 7.99998C10.6269 8.41232 10.4072 8.83055 10.165 9.25C9.92288 9.66944 9.67053 10.0688 9.41185 10.4454C8.95636 10.4812 8.48432 10.5 8 10.5C7.51567 10.5 7.04363 10.4812 6.58813 10.4454C6.32945 10.0688 6.0771 9.66944 5.83494 9.25C5.59277 8.83055 5.37306 8.41232 5.17624 7.99998C5.37306 7.58765 5.59275 7.16944 5.83492 6.75C6.07708 6.33056 6.32942 5.93118 6.5881 5.55456C7.04361 5.51884 7.51566 5.5 8 5.5ZM11.0311 6.25C11.1375 6.43423 11.2399 6.61864 11.3385 6.80287C11.4572 6.49197 11.5616 6.18752 11.6515 5.89178C11.3505 5.82175 11.0346 5.75996 10.706 5.70736C10.8163 5.8848 10.9247 6.06576 11.0311 6.25ZM11.0311 9.75C11.1374 9.56576 11.2399 9.38133 11.3385 9.19709C11.4572 9.50801 11.5617 9.81246 11.6515 10.1082C11.3505 10.1782 11.0346 10.24 10.7059 10.2926C10.8162 10.1152 10.9247 9.93424 11.0311 9.75ZM11.9249 7.99998C12.2051 8.62927 12.4362 9.24738 12.6151 9.83977C12.7903 9.78191 12.958 9.72092 13.1176 9.65708C13.7614 9.39958 14.2488 9.10547 14.5671 8.80446C14.8843 8.50445 15 8.23243 15 8C15 7.76757 14.8843 7.49555 14.5671 7.19554C14.2488 6.89453 13.7614 6.60042 13.1176 6.34292C12.958 6.27907 12.7903 6.21808 12.6151 6.16022C12.4362 6.7526 12.2051 7.37069 11.9249 7.99998ZM9.96244 11.3991C10.6475 11.3271 11.2983 11.2181 11.9008 11.0769C11.9383 11.2576 11.9694 11.4333 11.9939 11.6034C12.0928 12.2897 12.0817 12.8589 11.9802 13.285C11.879 13.7098 11.7013 13.946 11.5 14.0622C11.2987 14.1784 11.0053 14.2142 10.5868 14.0895C10.167 13.9643 9.66861 13.6893 9.12373 13.2605C8.98863 13.1542 8.85196 13.0395 8.71424 12.9167C9.1378 12.4655 9.55758 11.9564 9.96244 11.3991ZM8.63249 11.4898C8.42262 11.7481 8.21116 11.9907 7.99999 12.2164C7.78881 11.9907 7.57737 11.7481 7.36749 11.4897C7.57631 11.4965 7.78726 11.5 8 11.5C8.21273 11.5 8.42367 11.4965 8.63249 11.4898ZM4.96891 9.75C5.07528 9.93424 5.18375 10.1152 5.29404 10.2926C4.9654 10.24 4.64951 10.1782 4.34844 10.1082C4.43833 9.81246 4.54276 9.508 4.66152 9.19708C4.76005 9.38133 4.86254 9.56575 4.96891 9.75ZM6.03754 11.3991C5.35244 11.3271 4.70163 11.2181 4.09914 11.0769C4.06165 11.2576 4.03062 11.4333 4.0061 11.6034C3.90723 12.2897 3.91823 12.8589 4.01977 13.285C4.12097 13.7098 4.29869 13.946 4.49998 14.0622C4.70127 14.1784 4.9947 14.2142 5.41313 14.0895C5.83296 13.9643 6.33137 13.6893 6.87625 13.2605C7.01135 13.1542 7.14802 13.0395 7.28573 12.9167C6.86217 12.4655 6.4424 11.9564 6.03754 11.3991ZM4.07507 7.99998C3.79484 8.62927 3.56381 9.24737 3.38489 9.83977C3.20969 9.78191 3.042 9.72092 2.88239 9.65708C2.23864 9.39958 1.75123 9.10547 1.43294 8.80446C1.11571 8.50445 1 8.23243 1 8C1 7.76757 1.11571 7.49555 1.43294 7.19554C1.75123 6.89453 2.23864 6.60042 2.88239 6.34292C3.042 6.27907 3.2097 6.21808 3.3849 6.16022C3.56383 6.75261 3.79484 7.37069 4.07507 7.99998ZM4.66152 6.80287C4.54277 6.49197 4.43835 6.18752 4.34846 5.89178C4.64952 5.82175 4.96539 5.75996 5.29402 5.70736C5.18373 5.8848 5.07526 6.06576 4.96889 6.25C4.86253 6.43423 4.76005 6.61864 4.66152 6.80287ZM9.25 8C9.25 8.69036 8.69036 9.25 8 9.25C7.30964 9.25 6.75 8.69036 6.75 8C6.75 7.30965 7.30964 6.75 8 6.75C8.69036 6.75 9.25 7.30965 9.25 8Z\",fill:\"currentColor\"})}),(0,y.jsx)(\"defs\",{children:(0,y.jsx)(\"clipPath\",{id:\"file_react_clip0_872_3183\",children:(0,y.jsx)(\"rect\",{width:\"16\",height:\"16\",fill:\"white\"})})})]})}var eI=__nested_webpack_require_381207__(\"./dist/compiled/anser/index.js\"),eH=__nested_webpack_require_381207__.n(eI),eF=__nested_webpack_require_381207__(\"./dist/compiled/strip-ansi/index.js\"),eU=__nested_webpack_require_381207__.n(eF);function eV(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function eq(e){var n,t=e.stackFrame,r=e.codeFrame,o=(0,x.useMemo)(function(){var e,n;return(function(e){var n=eH().ansiToJson(e,{json:!0,use_classes:!0,remove_empty:!0}),t=[],r=[],o=!0,a=!1,i=void 0;try{for(var l,s=n[Symbol.iterator]();!(o=(l=s.next()).done);o=!0){var c=l.value;if(\"string\"==typeof c.content&&c.content.includes(\"\\n\"))for(var u=c.content.split(\"\\n\"),d=0;d<u.length;d++){var f=u[d];f&&r.push(function(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},c),{content:f})),d<u.length-1&&(t.push(r),r=[])}else r.push(c)}}catch(e){a=!0,i=e}finally{try{o||null==s.return||s.return()}finally{if(a)throw i}}return r.length>0&&t.push(r),t})((n=(e=r.split(/\\r?\\n/g)).map(function(e){return null===/^>? +\\d+ +\\| [ ]+/.exec(eU()(e))?null:/^>? +\\d+ +\\| ( *)/.exec(eU()(e))}).filter(Boolean).map(function(e){return e.pop()}).reduce(function(e,n){return isNaN(e)?n.length:Math.min(e,n.length)},NaN))>1?e.map(function(e,t){return~(t=e.indexOf(\"|\"))?e.substring(0,t)+e.substring(t).replace(\"^\\\\ {\".concat(n,\"}\"),\"\"):e}).join(\"\\n\"):e.join(\"\\n\")).map(function(e){var n,r,o,a,i,l,s,c,u;return{line:e,parsedLine:(n=e,r=t,((null==(o=n[0])?void 0:o.content)===\">\"||(null==(a=n[0])?void 0:a.content)===\" \")&&(s=null==(l=n[1])||null==(u=l.content)||null==(c=u.replace(\"|\",\"\"))?void 0:c.trim()),{lineNumber:s,isErroredLine:s===(null==(i=r.lineNumber)?void 0:i.toString())})}})},[r,t]),a=eE({file:t.file,lineNumber:t.lineNumber,column:t.column}),i=null==t||null==(n=t.file)?void 0:n.split(\".\").pop();return(0,y.jsxs)(\"div\",{\"data-nextjs-codeframe\":!0,children:[(0,y.jsx)(\"div\",{className:\"code-frame-header\",children:(0,y.jsxs)(\"p\",{className:\"code-frame-link\",children:[(0,y.jsx)(\"span\",{className:\"code-frame-icon\",children:(0,y.jsx)(eT,{lang:i})}),(0,y.jsxs)(\"span\",{\"data-text\":!0,children:[eS(t),\" @\",\" \",(0,y.jsx)(eb,{text:t.methodName})]}),(0,y.jsx)(\"button\",{\"aria-label\":\"Open in editor\",\"data-with-open-in-editor-link-source-file\":!0,onClick:a,children:(0,y.jsx)(\"span\",{className:\"code-frame-icon\",\"data-icon\":\"right\",children:(0,y.jsx)(ez,{width:16,height:16})})})]})}),(0,y.jsx)(\"pre\",{className:\"code-frame-pre\",children:(0,y.jsx)(\"div\",{className:\"code-frame-lines\",children:o.map(function(e,n){var t,r,o=e.line,a=e.parsedLine,i=a.lineNumber,l=a.isErroredLine,s={};return i&&(s[\"data-nextjs-codeframe-line\"]=i),l&&(s[\"data-nextjs-codeframe-line--errored\"]=!0),(0,y.jsx)(\"div\",(t=eV({},s),r=r={children:o.map(function(e,n){return(0,y.jsx)(\"span\",{style:eV({color:e.fg?\"var(--color-\".concat(e.fg,\")\"):void 0},\"bold\"===e.decoration?{fontWeight:500}:\"italic\"===e.decoration?{fontStyle:\"italic\"}:void 0),children:e.content},\"frame-\".concat(n))})},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t),\"line-\".concat(n))})})})]})}function eW(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}var e$=[\"[data-next-mark]\",\"[data-issues-open]\",\"#nextjs-dev-tools-menu\",\"[data-nextjs-error-overlay-nav]\",\"[data-info-popover]\",\"[data-nextjs-devtools-panel-overlay]\",\"[data-nextjs-devtools-panel-footer]\",\"[data-nextjs-error-overlay-footer]\"],eZ=function(e){var n,t,r,o,a,i,l,s=e.children,c=e.className,u=e.onClose,d=e[\"aria-labelledby\"],f=e[\"aria-describedby\"],p=(e.dialogResizerRef,function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"className\",\"onClose\",\"aria-labelledby\",\"aria-describedby\",\"dialogResizerRef\"])),h=x.useRef(null),g=(n=x.useState(\"undefined\"!=typeof document&&document.hasFocus()?\"dialog\":void 0),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return eW(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return eW(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),m=g[0],v=g[1];return r=h.current,o=e$,a=function(e){return e.preventDefault(),null==u?void 0:u()},x.useEffect(function(){if(null!=r&&null!=a){var e=function(e){!(!r||r.contains(e.target))&&(o.some(function(n){return e.target.closest(n)})||a(e))},n=r.getRootNode();return n.addEventListener(\"mouseup\",e),n.addEventListener(\"touchend\",e,{passive:!1}),function(){n.removeEventListener(\"mouseup\",e),n.removeEventListener(\"touchend\",e)}}},[a,r,o]),x.useEffect(function(){var e=function(){v(document.hasFocus()?\"dialog\":void 0)};if(null!=h.current)return window.addEventListener(\"focus\",e),window.addEventListener(\"blur\",e),function(){window.removeEventListener(\"focus\",e),window.removeEventListener(\"blur\",e)}},[]),x.useEffect(function(){var e,n,t=h.current,r=null==t?void 0:t.getRootNode(),o=(e=r,null!=(n=ShadowRoot)&&\"undefined\"!=typeof Symbol&&n[Symbol.hasInstance]?!!n[Symbol.hasInstance](e):e instanceof n)?null==r?void 0:r.activeElement:null;return null==t||t.focus(),function(){null==t||t.blur(),null==o||o.focus()}},[]),(0,y.jsx)(\"div\",(i=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({ref:h,tabIndex:-1,\"data-nextjs-dialog\":!0,role:m,\"aria-labelledby\":d,\"aria-describedby\":f,\"aria-modal\":\"true\",className:c,onKeyDown:function(e){\"Escape\"===e.key&&(null==u||u())}},p),l=l={children:s},Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(l)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(l)).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(l,e))}),i))},eY=function(e){var n,t,r=e.children,o=e.className,a=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"className\"]);return(0,y.jsx)(\"div\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-body\":!0,className:o},a),t=t={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))},eX=function(e){var n,t,r=e.children,o=e.className,a=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"className\"]);return(0,y.jsx)(\"div\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-content\":!0,className:o},a),t=t={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))};function eK(e){var n,t;return(0,y.jsx)(\"div\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-header\":!0},e),t=t={children:e.children},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function eQ(){var e,n,t=(e=[\"\\n [data-nextjs-dialog-root] {\\n --next-dialog-radius: var(--rounded-xl);\\n --next-dialog-max-width: 960px;\\n --next-dialog-row-padding: 16px;\\n --next-dialog-padding: 12px;\\n --next-dialog-notch-height: 42px;\\n --next-dialog-border-width: 1px;\\n\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n max-height: calc(100% - 56px);\\n max-width: var(--next-dialog-max-width);\\n margin-right: auto;\\n margin-left: auto;\\n scale: 0.97;\\n opacity: 0;\\n transition-property: scale, opacity;\\n transition-duration: var(--transition-duration);\\n transition-timing-function: var(--timing-overlay);\\n\\n &[data-rendered='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n [data-nextjs-scroll-fader][data-side='top'] {\\n left: 1px;\\n top: calc(\\n var(--next-dialog-notch-height) + var(--next-dialog-border-width)\\n );\\n width: calc(100% - var(--next-dialog-padding));\\n opacity: 0;\\n }\\n }\\n\\n [data-nextjs-dialog] {\\n outline: 0;\\n }\\n\\n [data-nextjs-dialog],\\n [data-nextjs-dialog] * {\\n &::-webkit-scrollbar {\\n width: 6px;\\n height: 6px;\\n border-radius: 0 0 1rem 1rem;\\n margin-bottom: 1rem;\\n }\\n\\n &::-webkit-scrollbar-button {\\n display: none;\\n }\\n\\n &::-webkit-scrollbar-track {\\n border-radius: 0 0 1rem 1rem;\\n background-color: var(--color-background-100);\\n }\\n\\n &::-webkit-scrollbar-thumb {\\n border-radius: 1rem;\\n background-color: var(--color-gray-500);\\n }\\n }\\n\\n /* Place overflow: hidden on this so we can break out from [data-nextjs-dialog] */\\n [data-nextjs-dialog-sizer] {\\n overflow: hidden;\\n border-radius: inherit;\\n }\\n\\n [data-nextjs-dialog-backdrop] {\\n opacity: 0;\\n transition: opacity var(--transition-duration) var(--timing-overlay);\\n }\\n\\n [data-nextjs-dialog-overlay] {\\n margin: 8px;\\n }\\n\\n [data-nextjs-dialog-overlay][data-rendered='true']\\n [data-nextjs-dialog-backdrop] {\\n opacity: 1;\\n }\\n\\n [data-nextjs-dialog-content] {\\n border: none;\\n margin: 0;\\n display: flex;\\n flex-direction: column;\\n position: relative;\\n padding: var(--next-dialog-padding);\\n }\\n\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: 8px;\\n }\\n\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\\n position: relative;\\n flex: 1 1 auto;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n max-height: calc(100% - 15px);\\n }\\n }\\n\\n @media (min-width: 576px) {\\n [data-nextjs-dialog-root] {\\n --next-dialog-max-width: 540px;\\n }\\n }\\n\\n @media (min-width: 768px) {\\n [data-nextjs-dialog-root] {\\n --next-dialog-max-width: 720px;\\n }\\n }\\n\\n @media (min-width: 992px) {\\n [data-nextjs-dialog-root] {\\n --next-dialog-max-width: 960px;\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return eQ=function(){return t},t}var eG=ei(eQ()),eJ=__nested_webpack_require_381207__(\"./src/next-devtools/dev-overlay/utils/cx.ts\");function e0(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function e1(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function e2(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function e4(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return e0(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return e0(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var e5=\"function\"==typeof x.useActionState?function(e){var n=e4(x.useActionState(function(n,t){return\"reset\"===t?{state:\"initial\"}:\"copy\"===t?navigator.clipboard?navigator.clipboard.writeText(e).then(function(){return{state:\"success\"}},function(e){return{state:\"error\",error:e}}):{state:\"error\",error:\"Copy to clipboard is not supported in this browser\"}:n},{state:\"initial\"}),3),t=n[0],r=n[1],o=n[2];return[t,function(){x.startTransition(function(){r(\"copy\")})},x.useCallback(function(){r(\"reset\")},[r]),o]}:function(e){var n=e4(x.useReducer(function(e,n){return\"reset\"===n.type?{state:\"initial\"}:\"copied\"===n.type?{state:\"success\"}:\"copying\"===n.type?{state:\"pending\"}:\"error\"===n.type?{state:\"error\",error:n.error}:e},{state:\"initial\"}),2),t=n[0],r=n[1],o=x.useCallback(function(){r({type:\"reset\"})},[]),a=\"pending\"===t.state;return[t,function(){a||(navigator.clipboard?(r({type:\"copying\"}),navigator.clipboard.writeText(e).then(function(){r({type:\"copied\"})},function(e){r({type:\"error\",error:e})})):r({type:\"error\",error:\"Copy to clipboard is not supported in this browser\"}))},o,a]};function e3(e){var n=e.actionLabel,t=e.successLabel,r=e.content,o=e.icon,a=e.disabled,i=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"actionLabel\",\"successLabel\",\"content\",\"icon\",\"disabled\"]),l=e4(e5(r),4),s=l[0],c=l[1],u=l[2],d=l[3],f=\"error\"===s.state?s.error:null;x.useEffect(function(){null!==f&&console.warn(f)},[f]),x.useEffect(function(){if(\"success\"===s.state){var e=setTimeout(function(){u()},2e3);return function(){clearTimeout(e)}}},[d,s.state,u]);var p=!navigator.clipboard||d||a||!!f,h=\"success\"===s.state?t:n,g=\"success\"===s.state?(0,y.jsx)(e9,{}):o||(0,y.jsx)(e6,{width:14,height:14,className:\"error-overlay-toolbar-button-icon\"});return(0,y.jsxs)(\"button\",e2(e1({},i),{type:\"button\",title:h,\"aria-label\":h,\"aria-disabled\":p,disabled:p,\"data-nextjs-copy-button\":!0,className:(0,eJ.cx)(i.className,\"nextjs-data-copy-button\",\"nextjs-data-copy-button--\".concat(s.state)),onClick:function(){p||c()},children:[g,\"error\"===s.state?\" \".concat(s.error):null]}))}function e6(e){return(0,y.jsx)(\"svg\",e2(e1({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M2.406.438c-.845 0-1.531.685-1.531 1.53v6.563c0 .846.686 1.531 1.531 1.531H3.937V8.75H2.406a.219.219 0 0 1-.219-.219V1.97c0-.121.098-.219.22-.219h4.812c.12 0 .218.098.218.219v.656H8.75v-.656c0-.846-.686-1.532-1.531-1.532H2.406zm4.375 3.5c-.845 0-1.531.685-1.531 1.53v6.563c0 .846.686 1.531 1.531 1.531h4.813c.845 0 1.531-.685 1.531-1.53V5.468c0-.846-.686-1.532-1.531-1.532H6.78zm-.218 1.53c0-.12.097-.218.218-.218h4.813c.12 0 .219.098.219.219v6.562c0 .121-.098.219-.22.219H6.782a.219.219 0 0 1-.218-.219V5.47z\",fill:\"currentColor\"})}))}function e9(){return(0,y.jsx)(\"svg\",{height:\"16\",xlinkTitle:\"copied\",viewBox:\"0 0 16 16\",width:\"16\",stroke:\"currentColor\",fill:\"currentColor\",children:(0,y.jsx)(\"path\",{d:\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"})})}function e8(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function e7(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}var ne=function(){if(\"undefined\"==typeof window)return!1;var e=\"chrome\"in window&&window.chrome,n=window.navigator.vendor;return null!=e&&\"Google Inc.\"===n}();function nn(e){return(0,y.jsxs)(\"svg\",e7(e8({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_a\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"0\",width:\"14\",height:\"14\",children:(0,y.jsx)(\"path\",{d:\"M6.67.089 1.205 3.256a.663.663 0 0 0-.33.573v6.339c0 .237.126.455.33.574l5.466 3.17a.66.66 0 0 0 .66 0l5.465-3.17a.664.664 0 0 0 .329-.574V3.829a.663.663 0 0 0-.33-.573L7.33.089a.663.663 0 0 0-.661 0\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_a)\",children:(0,y.jsx)(\"path\",{d:\"M18.648 2.717 3.248-4.86-4.648 11.31l15.4 7.58 7.896-16.174z\",fill:\"url(#nodejs_icon_linear_gradient_b)\"})}),(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_c\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"12\",height:\"14\",children:(0,y.jsx)(\"path\",{d:\"M1.01 10.57a.663.663 0 0 0 .195.17l4.688 2.72.781.45a.66.66 0 0 0 .51.063l5.764-10.597a.653.653 0 0 0-.153-.122L9.216 1.18 7.325.087a.688.688 0 0 0-.171-.07L1.01 10.57z\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_c)\",children:(0,y.jsx)(\"path\",{d:\"M-5.647 4.958 5.226 19.734l14.38-10.667L8.734-5.71-5.647 4.958z\",fill:\"url(#nodejs_icon_linear_gradient_d)\"})}),(0,y.jsxs)(\"g\",{children:[(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_e\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"13\",height:\"14\",children:(0,y.jsx)(\"path\",{d:\"M6.934.004A.665.665 0 0 0 6.67.09L1.22 3.247l5.877 10.746a.655.655 0 0 0 .235-.08l5.465-3.17a.665.665 0 0 0 .319-.453L7.126.015a.684.684 0 0 0-.189-.01\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_e)\",children:(0,y.jsx)(\"path\",{d:\"M1.22.002v13.992h11.894V.002H1.22z\",fill:\"url(#nodejs_icon_linear_gradient_f)\"})})]}),(0,y.jsxs)(\"defs\",{children:[(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_b\",x1:\"10.943\",y1:\"-1.084\",x2:\"2.997\",y2:\"15.062\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".3\",stopColor:\"#3E863D\"}),(0,y.jsx)(\"stop\",{offset:\".5\",stopColor:\"#55934F\"}),(0,y.jsx)(\"stop\",{offset:\".8\",stopColor:\"#5AAD45\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_d\",x1:\"-.145\",y1:\"12.431\",x2:\"14.277\",y2:\"1.818\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".57\",stopColor:\"#3E863D\"}),(0,y.jsx)(\"stop\",{offset:\".72\",stopColor:\"#619857\"}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:\"#76AC64\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_f\",x1:\"1.225\",y1:\"6.998\",x2:\"13.116\",y2:\"6.998\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".16\",stopColor:\"#6BBF47\"}),(0,y.jsx)(\"stop\",{offset:\".38\",stopColor:\"#79B461\"}),(0,y.jsx)(\"stop\",{offset:\".47\",stopColor:\"#75AC64\"}),(0,y.jsx)(\"stop\",{offset:\".7\",stopColor:\"#659E5A\"}),(0,y.jsx)(\"stop\",{offset:\".9\",stopColor:\"#3E863D\"})]})]})]}))}function nt(e){return(0,y.jsxs)(\"svg\",e7(e8({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:[(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_a\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"0\",width:\"14\",height:\"14\",children:(0,y.jsx)(\"path\",{d:\"M6.67.089 1.205 3.256a.663.663 0 0 0-.33.573v6.339c0 .237.126.455.33.574l5.466 3.17a.66.66 0 0 0 .66 0l5.465-3.17a.664.664 0 0 0 .329-.574V3.829a.663.663 0 0 0-.33-.573L7.33.089a.663.663 0 0 0-.661 0\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_a)\",children:(0,y.jsx)(\"path\",{d:\"M18.648 2.717 3.248-4.86-4.646 11.31l15.399 7.58 7.896-16.174z\",fill:\"url(#nodejs_icon_linear_gradient_b)\"})}),(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_c\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"12\",height:\"15\",children:(0,y.jsx)(\"path\",{d:\"M1.01 10.571a.66.66 0 0 0 .195.172l4.688 2.718.781.451a.66.66 0 0 0 .51.063l5.764-10.597a.653.653 0 0 0-.153-.122L9.216 1.181 7.325.09a.688.688 0 0 0-.171-.07L1.01 10.572z\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_c)\",children:(0,y.jsx)(\"path\",{d:\"M-5.647 4.96 5.226 19.736 19.606 9.07 8.734-5.707-5.647 4.96z\",fill:\"url(#nodejs_icon_linear_gradient_d)\"})}),(0,y.jsxs)(\"g\",{children:[(0,y.jsx)(\"mask\",{id:\"nodejs_icon_mask_e\",style:{maskType:\"luminance\"},maskUnits:\"userSpaceOnUse\",x:\"1\",y:\"0\",width:\"13\",height:\"14\",children:(0,y.jsx)(\"path\",{d:\"M6.935.003a.665.665 0 0 0-.264.085l-5.45 3.158 5.877 10.747a.653.653 0 0 0 .235-.082l5.465-3.17a.665.665 0 0 0 .319-.452L7.127.014a.684.684 0 0 0-.189-.01\",fill:\"#fff\"})}),(0,y.jsx)(\"g\",{mask:\"url(#nodejs_icon_mask_e)\",children:(0,y.jsx)(\"path\",{d:\"M1.222.001v13.992h11.893V0H1.222z\",fill:\"url(#nodejs_icon_linear_gradient_f)\"})})]}),(0,y.jsxs)(\"defs\",{children:[(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_b\",x1:\"10.944\",y1:\"-1.084\",x2:\"2.997\",y2:\"15.062\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".3\",stopColor:\"#676767\"}),(0,y.jsx)(\"stop\",{offset:\".5\",stopColor:\"#858585\"}),(0,y.jsx)(\"stop\",{offset:\".8\",stopColor:\"#989A98\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_d\",x1:\"-.145\",y1:\"12.433\",x2:\"14.277\",y2:\"1.819\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".57\",stopColor:\"#747474\"}),(0,y.jsx)(\"stop\",{offset:\".72\",stopColor:\"#707070\"}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:\"#929292\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"nodejs_icon_linear_gradient_f\",x1:\"1.226\",y1:\"6.997\",x2:\"13.117\",y2:\"6.997\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{offset:\".16\",stopColor:\"#878787\"}),(0,y.jsx)(\"stop\",{offset:\".38\",stopColor:\"#A9A9A9\"}),(0,y.jsx)(\"stop\",{offset:\".47\",stopColor:\"#A5A5A5\"}),(0,y.jsx)(\"stop\",{offset:\".7\",stopColor:\"#8F8F8F\"}),(0,y.jsx)(\"stop\",{offset:\".9\",stopColor:\"#626262\"})]})]})]}))}var nr=\"Learn more about enabling Node.js inspector for server code with Chrome DevTools\";function no(e){var n=e.devtoolsFrontendUrl||\"\";return n&&ne?(0,y.jsx)(e3,{\"data-nextjs-data-runtime-error-copy-devtools-url\":!0,className:\"nodejs-inspector-button\",actionLabel:\"Copy Chrome DevTools URL\",successLabel:\"Copied\",content:n,icon:(0,y.jsx)(nn,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})}):(0,y.jsx)(\"a\",{title:nr,\"aria-label\":nr,className:\"nodejs-inspector-button\",href:\"https://nextjs.org/docs/app/building-your-application/configuring/debugging#server-side-code\",target:\"_blank\",rel:\"noopener noreferrer\",children:(0,y.jsx)(nt,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})})}function na(e){var n=e.error;return(0,y.jsx)(e3,{\"data-nextjs-data-runtime-error-copy-stack\":!0,className:\"copy-stack-trace-button\",actionLabel:\"Copy Stack Trace\",successLabel:\"Stack Trace Copied\",content:n.stack||\"\",disabled:!n.stack})}function ni(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function nl(e){if(Array.isArray(e))return e}function ns(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function nc(e,n){return nl(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||nd(e,n)||ns()}function nu(e){return nl(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||nd(e)||ns()}function nd(e,n){if(e){if(\"string\"==typeof e)return ni(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ni(e,n)}}var nf=\"https://react.dev/link/hydration-mismatch\",np=\"https://nextjs.org/docs/messages/react-hydration-error\",nh=[/^In HTML, (.+?) cannot be a child of <(.+?)>\\.(.*)\\nThis will cause a hydration error\\.(.*)/,/^In HTML, (.+?) cannot be a descendant of <(.+?)>\\.\\nThis will cause a hydration error\\.(.*)/,/^In HTML, text nodes cannot be a child of <(.+?)>\\.\\nThis will cause a hydration error\\./,/^In HTML, whitespace text nodes cannot be a child of <(.+?)>\\. Make sure you don't have any extra whitespace between tags on each line of your source code\\.\\nThis will cause a hydration error\\./];function ng(e){return nh.some(function(n){return n.test(e)})}var nm=[\"https://nextjs.org\",\"https://react.dev\"];function nv(e){return nm.some(function(n){return e.startsWith(n)})}function nb(e){var n=function(e){var n,t,r,o=(n=e,t=nv,r=Array.from(n.matchAll(/https?:\\/\\/[^\\s/$.?#].[^\\s)'\"]*/gi),function(e){return e[0]}),t?r.filter(function(e){return t(e)}):r);if(0===o.length)return null;var a=o[0];return a===nf?np:a}(e.errorMessage);return n?(0,y.jsx)(\"a\",{title:\"Go to related documentation\",\"aria-label\":\"Go to related documentation\",className:\"docs-link-button\",href:n,target:\"_blank\",rel:\"noopener noreferrer\",children:(0,y.jsx)(ny,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})}):(0,y.jsx)(\"button\",{title:\"No related documentation found\",\"aria-label\":\"No related documentation found\",className:\"docs-link-button\",disabled:!0,children:(0,y.jsx)(ny,{className:\"error-overlay-toolbar-button-icon\",width:14,height:14})})}function ny(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M0 .875h4.375C5.448.875 6.401 1.39 7 2.187A3.276 3.276 0 0 1 9.625.875H14v11.156H9.4c-.522 0-1.023.208-1.392.577l-.544.543h-.928l-.544-.543c-.369-.37-.87-.577-1.392-.577H0V.875zm6.344 3.281a1.969 1.969 0 0 0-1.969-1.968H1.312v8.53H4.6c.622 0 1.225.177 1.744.502V4.156zm1.312 7.064V4.156c0-1.087.882-1.968 1.969-1.968h3.063v8.53H9.4c-.622 0-1.225.177-1.744.502z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function nx(e){var n=e.error,t=e.debugInfo,r=e.feedbackButton;return(0,y.jsxs)(\"span\",{className:\"error-overlay-toolbar\",children:[r,(0,y.jsx)(na,{error:n}),(0,y.jsx)(nb,{errorMessage:n.message}),(0,y.jsx)(no,{devtoolsFrontendUrl:null==t?void 0:t.devtoolsFrontendUrl})]})}function nw(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"thumbs-up-icon\"},e),t=t={children:(0,y.jsx)(\"g\",{id:\"thumb-up-16\",children:(0,y.jsx)(\"path\",{id:\"Union\",fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M6.89531 2.23959C6.72984 2.1214 6.5 2.23968 6.5 2.44303V5.24989C6.5 6.21639 5.7165 6.99989 4.75 6.99989H2.5V13.4999H12.1884C12.762 13.4999 13.262 13.1095 13.4011 12.5531L14.4011 8.55306C14.5984 7.76412 14.0017 6.99989 13.1884 6.99989H9.25H8.5V6.24989V3.51446C8.5 3.43372 8.46101 3.35795 8.39531 3.31102L6.89531 2.23959ZM5 2.44303C5 1.01963 6.6089 0.191656 7.76717 1.01899L9.26717 2.09042C9.72706 2.41892 10 2.94929 10 3.51446V5.49989H13.1884C14.9775 5.49989 16.2903 7.18121 15.8563 8.91686L14.8563 12.9169C14.5503 14.1411 13.4503 14.9999 12.1884 14.9999H1.75H1V14.2499V6.24989V5.49989H1.75H4.75C4.88807 5.49989 5 5.38796 5 5.24989V2.44303Z\",fill:\"currentColor\"})})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function nj(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"thumbs-down-icon\"},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M5.89531 12.7603C5.72984 12.8785 5.5 12.7602 5.5 12.5569V9.75C5.5 8.7835 4.7165 8 3.75 8H1.5V1.5H11.1884C11.762 1.5 12.262 1.89037 12.4011 2.44683L13.4011 6.44683C13.5984 7.23576 13.0017 8 12.1884 8H8.25H7.5V8.75V11.4854C7.5 11.5662 7.46101 11.6419 7.39531 11.6889L5.89531 12.7603ZM4 12.5569C4 13.9803 5.6089 14.8082 6.76717 13.9809L8.26717 12.9095C8.72706 12.581 9 12.0506 9 11.4854V9.5H12.1884C13.9775 9.5 15.2903 7.81868 14.8563 6.08303L13.8563 2.08303C13.5503 0.858816 12.4503 0 11.1884 0H0.75H0V0.75V8.75V9.5H0.75H3.75C3.88807 9.5 4 9.61193 4 9.75V12.5569Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function nk(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function nA(e,n,t,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){t(e);return}l.done?n(s):Promise.resolve(s).then(r,o)}function nO(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function nC(e){var n,t,r=e.errorCode,o=e.className,a=(n=(0,x.useState)({}),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return nk(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return nk(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),i=a[0],l=a[1],s=i[r],c=false,u=(0,x.useCallback)(function(e){var n;return(n=function(){return function(e,n){var t,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(t)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:l(function(n){var t,o;return t=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){nO(e,n,t[n])})}return e}({},n),o=null!=(o=nO({},r,e))?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t}),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,fetch(\"\".concat( false||\"\",\"/__nextjs_error_feedback?\").concat(new URLSearchParams({errorCode:r,wasHelpful:e.toString()})))];case 2:return n.sent().ok||console.error(\"Failed to record feedback on the server.\"),[3,4];case 3:return console.error(\"Failed to record feedback:\",n.sent()),[3,4];case 4:return[2]}})},function(){var e=this,t=arguments;return new Promise(function(r,o){var a=n.apply(e,t);function i(e){nA(a,r,o,i,l,\"next\",e)}function l(e){nA(a,r,o,i,l,\"throw\",e)}i(void 0)})})()},[r]);return(0,y.jsx)(\"div\",{className:(0,eJ.cx)(\"error-feedback\",o),role:\"region\",\"aria-label\":\"Error feedback\",children:void 0!==s?(0,y.jsx)(\"p\",{className:\"error-feedback-thanks\",role:\"status\",\"aria-live\":\"polite\",children:\"Thanks for your feedback!\"}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(\"p\",{children:(0,y.jsx)(\"a\",{href:\"https://nextjs.org/telemetry#error-feedback\",rel:\"noopener noreferrer\",target:\"_blank\",children:\"Was this helpful?\"})}),(0,y.jsx)(\"button\",{\"aria-disabled\":c?\"true\":void 0,\"aria-label\":\"Mark as helpful\",onClick:c?void 0:function(){return u(!0)},className:(0,eJ.cx)(\"feedback-button\",!0===s&&\"voted\"),title:c?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,y.jsx)(nw,{\"aria-hidden\":\"true\"})}),(0,y.jsx)(\"button\",{\"aria-disabled\":c?\"true\":void 0,\"aria-label\":\"Mark as not helpful\",onClick:c?void 0:function(){return u(!1)},className:(0,eJ.cx)(\"feedback-button\",!1===s&&\"voted\"),title:c?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,y.jsx)(nj,{\"aria-hidden\":\"true\",style:{translate:\"1px 1px\"}})})]})})}function nS(e){var n=e.errorCode;return(0,y.jsx)(\"footer\",{\"data-nextjs-error-overlay-footer\":!0,className:\"error-overlay-footer\",children:n?(0,y.jsx)(nC,{className:\"error-feedback\",errorCode:n}):null})}var nE=\"\\n .error-overlay-footer {\\n display: flex;\\n flex-direction: row;\\n justify-content: space-between;\\n\\n gap: 8px;\\n padding: 12px;\\n background: var(--color-background-200);\\n border-top: 1px solid var(--color-gray-400);\\n }\\n\\n .error-feedback {\\n margin-left: auto;\\n\\n p {\\n font-size: var(--size-14);\\n font-weight: 500;\\n margin: 0;\\n }\\n }\\n\\n \".concat(\"\\n .error-feedback {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n white-space: nowrap;\\n color: var(--color-gray-900);\\n }\\n\\n .error-feedback-thanks {\\n height: var(--size-24);\\n display: flex;\\n align-items: center;\\n padding-right: 4px; /* To match the 4px inner padding of the thumbs up and down icons */\\n }\\n\\n .feedback-button {\\n background: none;\\n border: none;\\n border-radius: var(--rounded-md);\\n width: var(--size-24);\\n height: var(--size-24);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n cursor: pointer;\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n &:hover {\\n background: var(--color-gray-alpha-100);\\n }\\n\\n &:active {\\n background: var(--color-gray-alpha-200);\\n }\\n }\\n\\n .feedback-button[aria-disabled='true'] {\\n opacity: 0.7;\\n cursor: not-allowed;\\n }\\n\\n .feedback-button.voted {\\n background: var(--color-gray-alpha-200);\\n }\\n\\n .thumbs-up-icon,\\n .thumbs-down-icon {\\n color: var(--color-gray-900);\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\",\"\\n\");function n_(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function nP(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return n_(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return n_(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function nz(e){var n=e.errorMessage,t=nP((0,x.useState)(!1),2),r=t[0],o=t[1],a=nP((0,x.useState)(!1),2),i=a[0],l=a[1],s=(0,x.useRef)(null);return(0,x.useLayoutEffect)(function(){s.current&&l(s.current.scrollHeight>200)},[n]),(0,y.jsxs)(\"div\",{className:\"nextjs__container_errors_wrapper\",children:[(0,y.jsx)(\"p\",{ref:s,id:\"nextjs__container_errors_desc\",className:\"nextjs__container_errors_desc \".concat(i&&!r?\"truncated\":\"\"),children:n}),i&&!r&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(\"div\",{className:\"nextjs__container_errors_gradient_overlay\"}),(0,y.jsx)(\"button\",{onClick:function(){return o(!0)},className:\"nextjs__container_errors_expand_button\",\"aria-expanded\":r,\"aria-controls\":\"nextjs__container_errors_desc\",children:\"Show More\"})]})]})}function nL(e){var n=e.errorType;return(0,y.jsx)(\"span\",{id:\"nextjs__container_errors_label\",className:\"nextjs__container_errors_label\",children:n})}function nT(e){var n=e.title,t=e.className;return(0,y.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",\"aria-label\":n,className:t,children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M9.24996 12.0608L8.71963 11.5304L5.89641 8.70722C5.50588 8.3167 5.50588 7.68353 5.89641 7.29301L8.71963 4.46978L9.24996 3.93945L10.3106 5.00011L9.78029 5.53044L7.31062 8.00011L9.78029 10.4698L10.3106 11.0001L9.24996 12.0608Z\",fill:\"currentColor\"})})}function nR(e){var n=e.title,t=e.className;return(0,y.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:t,\"aria-label\":n,children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M6.75011 3.93945L7.28044 4.46978L10.1037 7.29301C10.4942 7.68353 10.4942 8.3167 10.1037 8.70722L7.28044 11.5304L6.75011 12.0608L5.68945 11.0001L6.21978 10.4698L8.68945 8.00011L6.21978 5.53044L5.68945 5.00011L6.75011 3.93945Z\",fill:\"currentColor\"})})}function nN(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function nD(e){var n,t,r=e.runtimeErrors,o=e.activeIdx,a=e.onActiveIndexChange,i=(0,x.useCallback)(function(){return(0,x.startTransition)(function(){o>0&&a(Math.max(0,o-1))})},[o,a]),l=(0,x.useCallback)(function(){return(0,x.startTransition)(function(){o<r.length-1&&a(Math.max(0,Math.min(r.length-1,o+1)))})},[o,r.length,a]),s=(0,x.useRef)(null),c=(0,x.useRef)(null),u=(n=(0,x.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return nN(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return nN(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),d=u[0],f=u[1],p=(0,x.useCallback)(function(e){f(e)},[]);return(0,x.useEffect)(function(){var e=function(e){\"ArrowLeft\"===e.key?(e.preventDefault(),e.stopPropagation(),i&&i()):\"ArrowRight\"===e.key&&(e.preventDefault(),e.stopPropagation(),l&&l())};if(null!=d){var n=d.getRootNode(),t=self.document;return n.addEventListener(\"keydown\",e),n!==t&&t.addEventListener(\"keydown\",e),function(){n.removeEventListener(\"keydown\",e),n!==t&&t.removeEventListener(\"keydown\",e)}}},[d,l,i]),(0,x.useEffect)(function(){if(null!=d){var e,n,t=d.getRootNode();if(e=t,null!=(n=ShadowRoot)&&\"undefined\"!=typeof Symbol&&n[Symbol.hasInstance]?!!n[Symbol.hasInstance](e):e instanceof n){var a=t.activeElement;0===o?s.current&&a===s.current&&s.current.blur():o===r.length-1&&c.current&&a===c.current&&c.current.blur()}}},[d,o,r.length]),(0,y.jsxs)(\"nav\",{className:\"error-overlay-pagination dialog-exclude-closing-from-outside-click\",ref:p,children:[(0,y.jsx)(\"button\",{ref:s,type:\"button\",disabled:0===o,\"aria-disabled\":0===o,onClick:i,\"data-nextjs-dialog-error-previous\":!0,className:\"error-overlay-pagination-button\",children:(0,y.jsx)(nT,{title:\"previous\",className:\"error-overlay-pagination-button-icon\"})}),(0,y.jsxs)(\"div\",{className:\"error-overlay-pagination-count\",children:[(0,y.jsxs)(\"span\",{\"data-nextjs-dialog-error-index\":o,children:[o+1,\"/\"]}),(0,y.jsx)(\"span\",{\"data-nextjs-dialog-header-total-count\":!0,children:r.length||1})]}),(0,y.jsx)(\"button\",{ref:c,type:\"button\",disabled:o>=r.length-1,\"aria-disabled\":o>=r.length-1,onClick:l,\"data-nextjs-dialog-error-next\":!0,className:\"error-overlay-pagination-button\",children:(0,y.jsx)(nR,{title:\"next\",className:\"error-overlay-pagination-button-icon\"})})]})}function nB(e){var n=e.installed,t=e.staleness,r=e.expected,o=\"\",a=\"\",i=\"\",l=\"Next.js \".concat(n);switch(t){case\"newer-than-npm\":case\"fresh\":o=l,a=\"Latest available version is detected (\".concat(n,\").\"),i=\"fresh\";break;case\"stale-patch\":case\"stale-minor\":o=\"\".concat(l,\" (stale)\"),a=\"There is a newer version (\".concat(r,\") available, upgrade recommended! \"),i=\"stale\";break;case\"stale-major\":o=\"\".concat(l,\" (outdated)\"),a=\"An outdated version detected (latest is \".concat(r,\"), upgrade is highly recommended!\"),i=\"outdated\";break;case\"stale-prerelease\":o=\"\".concat(l,\" (stale)\"),a=\"There is a newer canary version (\".concat(r,\") available, please upgrade! \"),i=\"stale\";break;case\"unknown\":o=\"\".concat(l,\" (unknown)\"),a=\"No Next.js version data was found.\",i=\"unknown\"}return{text:o,indicatorClass:i,title:a}}function nM(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"14\",height:\"14\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),t=t={children:(0,y.jsx)(\"circle\",{cx:\"7\",cy:\"7\",r:\"5.5\",strokeWidth:\"3\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function nI(e){var n=e.versionInfo,t=e.bundlerName,r=n.staleness,o=nB(n),a=o.text,i=o.indicatorClass,l=o.title,s=\"Turbopack\"===t;return r.startsWith(\"stale\")?(0,y.jsxs)(\"a\",{className:\"nextjs-container-build-error-version-status dialog-exclude-closing-from-outside-click\",target:\"_blank\",rel:\"noopener noreferrer\",href:\"https://nextjs.org/docs/messages/version-staleness\",children:[(0,y.jsx)(nM,{className:(0,eJ.cx)(\"version-staleness-indicator\",i)}),(0,y.jsx)(\"span\",{\"data-nextjs-version-checker\":!0,title:l,children:a}),(0,y.jsx)(\"span\",{className:(0,eJ.cx)(s&&\"turbopack-text\"),children:t})]}):(0,y.jsxs)(\"span\",{className:\"nextjs-container-build-error-version-status dialog-exclude-closing-from-outside-click\",children:[(0,y.jsx)(nM,{className:(0,eJ.cx)(\"version-staleness-indicator\",i)}),(0,y.jsx)(\"span\",{\"data-nextjs-version-checker\":!0,title:l,children:a}),(0,y.jsx)(\"span\",{className:(0,eJ.cx)(s&&\"turbopack-text\"),children:t})]})}function nH(e){var n=e.runtimeErrors,t=e.activeIdx,r=e.setActiveIndex,o=e.versionInfo,a=\"Webpack\"||0;return(0,y.jsxs)(\"div\",{\"data-nextjs-error-overlay-nav\":!0,children:[(0,y.jsx)(nF,{side:\"left\",children:(0,y.jsx)(nD,{runtimeErrors:null!=n?n:[],activeIdx:null!=t?t:0,onActiveIndexChange:null!=r?r:function(){}})}),o&&(0,y.jsx)(nF,{side:\"right\",children:(0,y.jsx)(nI,{versionInfo:o,bundlerName:a})})]})}function nF(e){var n=e.children,t=e.side;return(0,y.jsxs)(\"div\",{className:\"error-overlay-notch\",\"data-side\":void 0===t?\"left\":t,children:[n,(0,y.jsx)(nU,{})]})}function nU(){return(0,y.jsxs)(\"svg\",{width:\"60\",height:\"42\",viewBox:\"0 0 60 42\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",className:\"error-overlay-notch-tail\",preserveAspectRatio:\"none\",children:[(0,y.jsxs)(\"mask\",{id:\"error_overlay_nav_mask0_2667_14687\",style:{maskType:\"alpha\"},maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"-1\",width:\"60\",height:\"43\",children:[(0,y.jsxs)(\"mask\",{id:\"error_overlay_nav_path_1_outside_1_2667_14687\",maskUnits:\"userSpaceOnUse\",x:\"0\",y:\"-1\",width:\"60\",height:\"43\",fill:\"black\",children:[(0,y.jsx)(\"rect\",{fill:\"white\",y:\"-1\",width:\"60\",height:\"43\"}),(0,y.jsx)(\"path\",{d:\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\"})]}),(0,y.jsx)(\"path\",{d:\"M1 0L8.0783 0C15.772 0 22.7836 4.41324 26.111 11.3501L34.8889 29.6498C38.2164 36.5868 45.228 41 52.9217 41H60H1L1 0Z\",fill:\"white\"}),(0,y.jsx)(\"path\",{d:\"M1 0V-1H0V0L1 0ZM1 41H0V42H1V41ZM34.8889 29.6498L33.9873 30.0823L34.8889 29.6498ZM26.111 11.3501L27.0127 10.9177L26.111 11.3501ZM1 1H8.0783V-1H1V1ZM60 40H1V42H60V40ZM2 41V0L0 0L0 41H2ZM25.2094 11.7826L33.9873 30.0823L35.7906 29.2174L27.0127 10.9177L25.2094 11.7826ZM52.9217 42H60V40H52.9217V42ZM33.9873 30.0823C37.4811 37.3661 44.8433 42 52.9217 42V40C45.6127 40 38.9517 35.8074 35.7906 29.2174L33.9873 30.0823ZM8.0783 1C15.3873 1 22.0483 5.19257 25.2094 11.7826L27.0127 10.9177C23.5188 3.6339 16.1567 -1 8.0783 -1V1Z\",fill:\"black\",mask:\"url(#error_overlay_nav_path_1_outside_1_2667_14687)\"})]}),(0,y.jsxs)(\"g\",{mask:\"url(#error_overlay_nav_mask0_2667_14687)\",children:[(0,y.jsxs)(\"mask\",{id:\"error_overlay_nav_path_3_outside_2_2667_14687\",maskUnits:\"userSpaceOnUse\",x:\"-1\",y:\"0.0244141\",width:\"60\",height:\"43\",fill:\"black\",children:[(0,y.jsx)(\"rect\",{fill:\"white\",x:\"-1\",y:\"0.0244141\",width:\"60\",height:\"43\"}),(0,y.jsx)(\"path\",{d:\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\"})]}),(0,y.jsx)(\"path\",{d:\"M0 1.02441H7.0783C14.772 1.02441 21.7836 5.43765 25.111 12.3746L33.8889 30.6743C37.2164 37.6112 44.228 42.0244 51.9217 42.0244H59H0L0 1.02441Z\",fill:\"var(--background-color)\"}),(0,y.jsx)(\"path\",{d:\"M0 1.02441L0 0.0244141H-1V1.02441H0ZM0 42.0244H-1V43.0244H0L0 42.0244ZM33.8889 30.6743L32.9873 31.1068L33.8889 30.6743ZM25.111 12.3746L26.0127 11.9421L25.111 12.3746ZM0 2.02441H7.0783V0.0244141H0L0 2.02441ZM59 41.0244H0L0 43.0244H59V41.0244ZM1 42.0244L1 1.02441H-1L-1 42.0244H1ZM24.2094 12.8071L32.9873 31.1068L34.7906 30.2418L26.0127 11.9421L24.2094 12.8071ZM51.9217 43.0244H59V41.0244H51.9217V43.0244ZM32.9873 31.1068C36.4811 38.3905 43.8433 43.0244 51.9217 43.0244V41.0244C44.6127 41.0244 37.9517 36.8318 34.7906 30.2418L32.9873 31.1068ZM7.0783 2.02441C14.3873 2.02441 21.0483 6.21699 24.2094 12.8071L26.0127 11.9421C22.5188 4.65831 15.1567 0.0244141 7.0783 0.0244141V2.02441Z\",fill:\"var(--stroke-color)\",mask:\"url(#error_overlay_nav_path_3_outside_2_2667_14687)\"})]})]})}function nV(e){var n,t,r=e.children,o=e.onClose,a=e.footer,i=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"onClose\",\"footer\"]);return(0,y.jsxs)(\"div\",{className:\"error-overlay-dialog-container\",children:[(0,y.jsx)(eZ,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"aria-labelledby\":\"nextjs__container_errors_label\",\"aria-describedby\":\"nextjs__container_errors_desc\",className:\"error-overlay-dialog-scroll\",onClose:o},i),t=t={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n)),a]})}function nq(e){var n=e.children;return(0,y.jsx)(eK,{className:\"nextjs-container-errors-header\",children:n})}function nW(e){var n=e.children;return(0,y.jsx)(eY,{className:\"nextjs-container-errors-body\",children:n})}var n$=0,nZ=function(e){var r,o,a=e.className,i=e.children,l=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"className\",\"children\"]);return x.useEffect(function(){return setTimeout(function(){if(!(n$++>0)){var e=window.innerWidth-document.documentElement.clientWidth;e>0&&(n=document.body.style.paddingRight,document.body.style.paddingRight=\"\".concat(e,\"px\")),t=document.body.style.overflow,document.body.style.overflow=\"hidden\"}}),function(){setTimeout(function(){0!==n$&&0==--n$&&(void 0!==n&&(document.body.style.paddingRight=n,n=void 0),void 0!==t&&(document.body.style.overflow=t,t=void 0))})}},[]),(0,y.jsx)(\"div\",(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-overlay\":!0,className:a},l),o=o={children:i},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r))};function nY(e){var n,t,r=e.children,o=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\"]);return(0,y.jsx)(nZ,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},o),t=t={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function nX(e){var n=Math.min(e.errorCount-e.activeIdx-1,2);return(0,y.jsx)(\"div\",{\"aria-hidden\":!0,className:\"error-overlay-bottom-stack\",children:(0,y.jsxs)(\"div\",{className:\"error-overlay-bottom-stack-stack\",\"data-stack-count\":n,children:[(0,y.jsx)(\"div\",{className:\"error-overlay-bottom-stack-layer error-overlay-bottom-stack-layer-1\",children:\"1\"}),(0,y.jsx)(\"div\",{className:\"error-overlay-bottom-stack-layer error-overlay-bottom-stack-layer-2\",children:\"2\"})]})})}function nK(e){var n=e.environmentName;return(0,y.jsx)(\"span\",{\"data-nextjs-environment-name-label\":!0,children:n})}var nQ=__nested_webpack_require_381207__(\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/utils.ts\"),nG=(0,x.forwardRef)(function(e,n){var t=e.stop,r=e.blur,o=e.side,a=e.style,i=e.height;return(0,y.jsx)(\"div\",{ref:n,\"aria-hidden\":!0,\"data-nextjs-scroll-fader\":!0,className:\"nextjs-scroll-fader\",\"data-side\":o,style:function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"--stop\":t,\"--blur\":r,\"--height\":\"\".concat(i,\"px\")},a)})});function nJ(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function n0(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return nJ(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return nJ(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var n1=(0,x.forwardRef)(function(e,n){var t,r,o,a,i,l,s,c,u,d,f=e.children,p=e.measure,h=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"measure\"]),g=(0,x.useRef)(null),m=n0((t=g,r=p,a=(o=n0((0,x.useState)(0),2))[0],i=o[1],s=(l=n0((0,x.useState)(!0),2))[0],c=l[1],(0,x.useEffect)(function(){if(r){var e,n=t.current;if(n){var o=new ResizeObserver(function(n){var t=n0(n,1)[0].contentRect;clearTimeout(e),e=window.setTimeout(function(){c(!1)},100),i(t.height)});return o.observe(n),function(){return o.disconnect()}}}},[r]),[a,s]),2),v=m[0],b=m[1];return(0,y.jsx)(\"div\",(u=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},h),d=d={ref:n,style:{height:b?\"auto\":v,transition:\"height 250ms var(--timing-swift)\"},children:(0,y.jsx)(\"div\",{ref:g,children:f})},Object.getOwnPropertyDescriptors?Object.defineProperties(u,Object.getOwnPropertyDescriptors(d)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(d)).forEach(function(e){Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(d,e))}),u))});function n2(e){var n=e.fixed,t=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"fixed\"]);return(0,y.jsx)(\"div\",function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-dialog-backdrop\":!0,\"data-nextjs-dialog-backdrop-fixed\":!!n||void 0},t))}function n4(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function n5(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function n3(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function n6(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return n4(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return n4(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function n9(e){var n=e.errorMessage,t=e.errorType,r=e.children,o=e.errorCode,a=e.errorCount,i=e.error,l=e.debugInfo,s=e.isBuildError,c=e.onClose,u=e.versionInfo,d=e.runtimeErrors,f=e.activeIdx,p=e.setActiveIndex,h=e.isTurbopack,g=e.dialogResizerRef,m=e.rendered,v=void 0===m||m,b=e.transitionDurationMs,w={\"data-rendered\":v,style:{\"--transition-duration\":\"\".concat(b,\"ms\")}},j=n6(x.useState(!!b),2),k=j[0],A=j[1],O=x.useRef(null),C=!!o,S=x.useRef(null);return(0,nQ.P5)(S,null,v),(0,y.jsxs)(nY,n3(n5({},w),{children:[(0,y.jsx)(n2,{fixed:s}),(0,y.jsxs)(\"div\",n3(n5({\"data-nextjs-dialog-root\":!0,onTransitionEnd:function(e){var n=e.propertyName,t=e.target;\"scale\"===n&&t===S.current&&A(!1)},ref:S},w),{children:[(0,y.jsx)(nH,{runtimeErrors:d,activeIdx:f,setActiveIndex:p,versionInfo:u,isTurbopack:h}),(0,y.jsxs)(nV,{onClose:c,dialogResizerRef:g,\"data-has-footer\":C,onScroll:function(e){if(O.current){var n,t,r=(n=e.currentTarget.scrollTop/17,Math.min(Math.max(n,(t=n6([0,1],2))[0]),t[1]));O.current.style.opacity=String(r)}},footer:C&&(0,y.jsx)(nS,{errorCode:o}),children:[(0,y.jsx)(n1,{ref:g,measure:!k,\"data-nextjs-dialog-sizer\":!0,children:(0,y.jsxs)(eX,{children:[(0,y.jsxs)(nq,{children:[(0,y.jsxs)(\"div\",{className:\"nextjs__container_errors__error_title\",\"data-nextjs-error-code\":o,children:[(0,y.jsxs)(\"span\",{\"data-nextjs-error-label-group\":!0,children:[(0,y.jsx)(nL,{errorType:t}),i.environmentName&&(0,y.jsx)(nK,{environmentName:i.environmentName})]}),(0,y.jsx)(nx,{error:i,debugInfo:l})]}),(0,y.jsx)(nz,{errorMessage:n})]}),(0,y.jsx)(nW,{children:r})]})}),(0,y.jsx)(nX,{errorCount:a,activeIdx:null!=f?f:0})]}),(0,y.jsx)(nG,{ref:O,side:\"top\",stop:\"50%\",blur:\"4px\",height:48})]}))]}))}var n8=\"\\n \".concat(\"\\n [data-nextjs-dialog-overlay] {\\n padding: initial;\\n top: 10vh;\\n }\\n\",\"\\n \").concat(\"\\n .error-overlay-dialog-container {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n flex-direction: column;\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: var(--next-dialog-border-width) solid var(--color-gray-400);\\n border-radius: 0 0 var(--next-dialog-radius) var(--next-dialog-radius);\\n box-shadow: var(--shadow-menu);\\n position: relative;\\n overflow: hidden;\\n }\\n\\n .error-overlay-dialog-scroll {\\n overflow-y: auto;\\n height: 100%;\\n }\\n\",\"\\n \").concat(\"\\n .nextjs-container-errors-header {\\n position: relative;\\n }\\n .nextjs-container-errors-header > h1 {\\n font-size: var(--size-20);\\n line-height: var(--size-24);\\n font-weight: bold;\\n margin: calc(16px * 1.5) 0;\\n color: var(--color-title-h1);\\n }\\n .nextjs-container-errors-header small {\\n font-size: var(--size-14);\\n color: var(--color-accents-1);\\n margin-left: 16px;\\n }\\n .nextjs-container-errors-header small > span {\\n font-family: var(--font-stack-monospace);\\n }\\n .nextjs-container-errors-header > div > small {\\n margin: 0;\\n margin-top: 4px;\\n }\\n .nextjs-container-errors-header > p > a {\\n color: inherit;\\n font-weight: bold;\\n }\\n .nextjs-container-errors-header\\n > .nextjs-container-build-error-version-status {\\n position: absolute;\\n top: 16px;\\n right: 16px;\\n }\\n\",\"\\n \").concat(\"\",\"\\n\\n \").concat(\"\\n [data-nextjs-error-overlay-nav] {\\n --stroke-color: var(--color-gray-400);\\n --background-color: var(--color-background-100);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n\\n width: 100%;\\n\\n position: relative;\\n z-index: 2;\\n outline: none;\\n translate: var(--next-dialog-border-width) var(--next-dialog-border-width);\\n max-width: var(--next-dialog-max-width);\\n\\n .error-overlay-notch {\\n translate: calc(var(--next-dialog-border-width) * -1);\\n width: auto;\\n height: var(--next-dialog-notch-height);\\n padding: 12px;\\n background: var(--background-color);\\n border: var(--next-dialog-border-width) solid var(--stroke-color);\\n border-bottom: none;\\n position: relative;\\n\\n &[data-side='left'] {\\n padding-right: 0;\\n border-radius: var(--next-dialog-radius) 0 0 0;\\n\\n .error-overlay-notch-tail {\\n right: -54px;\\n }\\n\\n > *:not(.error-overlay-notch-tail) {\\n margin-right: -10px;\\n }\\n }\\n\\n &[data-side='right'] {\\n padding-left: 0;\\n border-radius: 0 var(--next-dialog-radius) 0 0;\\n\\n .error-overlay-notch-tail {\\n left: -54px;\\n transform: rotateY(180deg);\\n }\\n\\n > *:not(.error-overlay-notch-tail) {\\n margin-left: -12px;\\n }\\n }\\n\\n .error-overlay-notch-tail {\\n position: absolute;\\n top: calc(var(--next-dialog-border-width) * -1);\\n pointer-events: none;\\n z-index: -1;\\n height: calc(100% + var(--next-dialog-border-width));\\n }\\n }\\n }\\n\\n @media (max-width: 600px) {\\n [data-nextjs-error-overlay-nav] {\\n background: var(--background-color);\\n border-radius: var(--next-dialog-radius) var(--next-dialog-radius) 0 0;\\n border: var(--next-dialog-border-width) solid var(--stroke-color);\\n border-bottom: none;\\n overflow: hidden;\\n translate: 0 var(--next-dialog-border-width);\\n \\n .error-overlay-notch {\\n border-radius: 0;\\n border: 0;\\n\\n &[data-side=\\\"left\\\"], &[data-side=\\\"right\\\"] {\\n border-radius: 0;\\n }\\n\\n .error-overlay-notch-tail {\\n display: none;\\n }\\n }\\n }\\n }\\n\",\"\\n \").concat(\"\\n .nextjs__container_errors_label {\\n padding: 2px 6px;\\n margin: 0;\\n border-radius: var(--rounded-md-2);\\n background: var(--color-red-100);\\n font-weight: 600;\\n font-size: var(--size-12);\\n color: var(--color-red-900);\\n font-family: var(--font-stack-monospace);\\n line-height: var(--size-20);\\n }\\n\",\"\\n \").concat(\"\\n .nextjs__container_errors_wrapper {\\n position: relative;\\n }\\n\\n .nextjs__container_errors_desc {\\n margin: 0;\\n margin-left: 4px;\\n color: var(--color-red-900);\\n font-weight: 500;\\n font-size: var(--size-16);\\n letter-spacing: -0.32px;\\n line-height: var(--size-24);\\n overflow-wrap: break-word;\\n white-space: pre-wrap;\\n }\\n\\n .nextjs__container_errors_desc.truncated {\\n max-height: 200px;\\n overflow: hidden;\\n }\\n\\n .nextjs__container_errors_gradient_overlay {\\n position: absolute;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n height: 85px;\\n background: linear-gradient(\\n 180deg,\\n rgba(250, 250, 250, 0) 0%,\\n var(--color-background-100) 100%\\n );\\n }\\n\\n .nextjs__container_errors_expand_button {\\n position: absolute;\\n bottom: 10px;\\n left: 50%;\\n transform: translateX(-50%);\\n display: flex;\\n align-items: center;\\n padding: 6px 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: 999px;\\n box-shadow:\\n 0px 2px 2px var(--color-gray-alpha-100),\\n 0px 8px 8px -8px var(--color-gray-alpha-100);\\n font-size: var(--size-13);\\n cursor: pointer;\\n color: var(--color-gray-900);\\n font-weight: 500;\\n transition: background-color 0.2s ease;\\n }\\n\\n .nextjs__container_errors_expand_button:hover {\\n background: var(--color-gray-100);\\n }\\n\",\"\\n \").concat(\"\\n .error-overlay-toolbar {\\n display: flex;\\n gap: 6px;\\n }\\n\\n .nodejs-inspector-button,\\n .copy-stack-trace-button,\\n .docs-link-button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-28);\\n height: var(--size-28);\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-alpha-400);\\n box-shadow: var(--shadow-small);\\n border-radius: var(--rounded-full);\\n\\n svg {\\n width: var(--size-14);\\n height: var(--size-14);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n &:not(:disabled):hover {\\n background: var(--color-gray-alpha-100);\\n }\\n\\n &:not(:disabled):active {\\n background: var(--color-gray-alpha-200);\\n }\\n\\n &:disabled {\\n background-color: var(--color-gray-100);\\n cursor: not-allowed;\\n }\\n }\\n\\n .error-overlay-toolbar-button-icon {\\n color: var(--color-gray-900);\\n }\\n\",\"\\n\\n [data-nextjs-error-label-group] {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n }\\n\");function n7(e){var n,t,r=e.file,o=e.location,a=eE({file:r,lineNumber:null!=(n=null==o?void 0:o.line)?n:1,column:null!=(t=null==o?void 0:o.column)?t:0});return(0,y.jsxs)(\"div\",{\"data-with-open-in-editor-link\":!0,\"data-with-open-in-editor-link-import-trace\":!0,role:\"link\",onClick:a,title:\"Click to open in your editor\",children:[r,o?\":\".concat(o.line,\":\").concat(o.column):null,(0,y.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[(0,y.jsx)(\"path\",{d:\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"}),(0,y.jsx)(\"polyline\",{points:\"15 3 21 3 21 9\"}),(0,y.jsx)(\"line\",{x1:\"10\",y1:\"14\",x2:\"21\",y2:\"3\"})]})]})}function te(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}var tn=function(e){var n,t,r,o,a,i,l,s,c,u,d=e.content,f=x.useMemo(function(){var e,n,t;return n=function(e){var n,t,r=e.shift();if(!r)return null;var o=(n=r.split(\":\",3),t=3,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,3)||function(e,n){if(e){if(\"string\"==typeof e)return te(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return te(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=o[0],i=o[1],l=o[2],s=Number(i),c=Number(l),u=!Number.isNaN(s)&&!Number.isNaN(c);return{fileName:u?a:r,location:u?{line:s,column:c}:void 0}}(e=d.split(\"\\n\")),t=function(e){if(e.some(function(e){return/ReactServerComponentsError:/.test(e)})||e.some(function(e){return/Import trace for requested module:/.test(e)})){for(var n=[];/.+\\..+/.test(e[e.length-1])&&!e[e.length-1].includes(\":\");){var t=e.pop().trim();n.unshift(t)}return n}return[]}(e),{file:n,source:e.join(\"\\n\"),importTraceFiles:t}},[d]),p=f.file,h=f.source,g=f.importTraceFiles,m=x.useMemo(function(){return eH().ansiToJson(h,{json:!0,use_classes:!0,remove_empty:!0})},[h]),v=eE({file:null==p?void 0:p.fileName,lineNumber:null!=(i=null==p||null==(n=p.location)?void 0:n.line)?i:1,column:null!=(l=null==p||null==(t=p.location)?void 0:t.column)?l:0}),b={file:null!=(s=null==p?void 0:p.fileName)?s:null,methodName:\"\",arguments:[],lineNumber:null!=(c=null==p||null==(r=p.location)?void 0:r.line)?c:null,column:null!=(u=null==p||null==(o=p.location)?void 0:o.column)?u:null},w=null==b||null==(a=b.file)?void 0:a.split(\".\").pop();return(0,y.jsxs)(\"div\",{\"data-nextjs-codeframe\":!0,children:[(0,y.jsx)(\"div\",{className:\"code-frame-header\",children:(0,y.jsxs)(\"div\",{className:\"code-frame-link\",children:[(0,y.jsx)(\"span\",{className:\"code-frame-icon\",children:(0,y.jsx)(eT,{lang:w})}),(0,y.jsx)(\"span\",{\"data-text\":!0,children:eS(b)}),(0,y.jsx)(\"button\",{\"aria-label\":\"Open in editor\",\"data-with-open-in-editor-link-source-file\":!0,onClick:v,children:(0,y.jsx)(\"span\",{className:\"code-frame-icon\",\"data-icon\":\"right\",children:(0,y.jsx)(ez,{width:16,height:16})})})]})}),(0,y.jsx)(\"pre\",{className:\"code-frame-pre\",children:(0,y.jsxs)(\"div\",{className:\"code-frame-lines\",children:[m.map(function(e,n){return(0,y.jsx)(\"span\",{style:function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({color:e.fg?\"var(--color-\".concat(e.fg,\")\"):void 0},\"bold\"===e.decoration?{fontWeight:500}:\"italic\"===e.decoration?{fontStyle:\"italic\"}:void 0),children:(0,y.jsx)(eb,{text:e.content})},\"terminal-entry-\".concat(n))}),g.map(function(e){return(0,y.jsx)(n7,{isSourceFile:!1,file:e},e)})]})})]})},tt=function(e){var n=e.split(\"\\n\");return eU()(n[1]||\"\").replace(/^Error: /,\"\")},tr=function(e){var n,t,r=e.message,o=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"message\"]),a=(0,x.useCallback)(function(){},[]),i=Error(r),l=(0,x.useMemo)(function(){return tt(r)||\"Failed to compile\"},[r]);return(0,y.jsx)(n9,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({errorType:\"Build Error\",errorMessage:l,onClose:a,error:i},o),t=t={children:(0,y.jsx)(tn,{content:r})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))},to=function(e){var n,t=e.frame,r=null!=(n=t.originalStackFrame)?n:t.sourceStackFrame,o=!!t.originalCodeFrame,a=eE(o?{file:r.file,lineNumber:r.lineNumber,column:r.column}:void 0),i=eS(r);return i?(0,y.jsxs)(\"div\",{\"data-nextjs-call-stack-frame\":!0,\"data-nextjs-call-stack-frame-no-source\":!o,\"data-nextjs-call-stack-frame-ignored\":t.ignored,children:[(0,y.jsxs)(\"div\",{className:\"call-stack-frame-method-name\",children:[(0,y.jsx)(eb,{text:r.methodName}),o&&(0,y.jsx)(\"button\",{onClick:a,className:\"open-in-editor-button\",\"aria-label\":\"Open \".concat(r.methodName,\" in editor\"),children:(0,y.jsx)(ez,{width:16,height:16})}),t.error?(0,y.jsx)(\"button\",{className:\"source-mapping-error-button\",onClick:function(){return console.error(t.reason)},title:\"Sourcemapping failed. Click to log cause of error.\",children:(0,y.jsx)(eL,{width:16,height:16})}):null]}),(0,y.jsx)(\"span\",{className:\"call-stack-frame-file-source\",\"data-has-source\":o,children:i})]}):null};function ta(){return(0,y.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M8.70722 2.39641C8.3167 2.00588 7.68353 2.00588 7.29301 2.39641L4.46978 5.21963L3.93945 5.74996L5.00011 6.81062L5.53044 6.28029L8.00011 3.81062L10.4698 6.28029L11.0001 6.81062L12.0608 5.74996L11.5304 5.21963L8.70722 2.39641ZM5.53044 9.71963L5.00011 9.1893L3.93945 10.25L4.46978 10.7803L7.29301 13.6035C7.68353 13.994 8.3167 13.994 8.70722 13.6035L11.5304 10.7803L12.0608 10.25L11.0001 9.1893L10.4698 9.71963L8.00011 12.1893L5.53044 9.71963Z\",fill:\"currentColor\"})})}function ti(){var e,n,t=(e=[\"\\n [data-nextjs-call-stack-container] {\\n position: relative;\\n margin-top: 8px;\\n }\\n\\n [data-nextjs-call-stack-header] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n min-height: var(--size-28);\\n padding: 8px 8px 12px 4px;\\n width: 100%;\\n }\\n\\n [data-nextjs-call-stack-title] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n gap: 8px;\\n\\n margin: 0;\\n\\n color: var(--color-gray-1000);\\n font-size: var(--size-16);\\n font-weight: 500;\\n }\\n\\n [data-nextjs-call-stack-count] {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-20);\\n height: var(--size-20);\\n gap: 4px;\\n\\n color: var(--color-gray-1000);\\n text-align: center;\\n font-size: var(--size-11);\\n font-weight: 500;\\n line-height: var(--size-16);\\n\\n border-radius: var(--rounded-full);\\n background: var(--color-gray-300);\\n }\\n\\n [data-nextjs-call-stack-ignored-list-toggle-button] {\\n all: unset;\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n border-radius: 6px;\\n padding: 4px 6px;\\n margin-right: -6px;\\n transition: background 150ms ease;\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ti=function(){return t},t}function tl(e){var n=e.frames,t=e.isIgnoreListOpen,r=e.ignoredFramesTally,o=e.onToggleIgnoreList;return(0,y.jsxs)(\"div\",{\"data-nextjs-call-stack-container\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-call-stack-header\":!0,children:[(0,y.jsxs)(\"p\",{\"data-nextjs-call-stack-title\":!0,children:[\"Call Stack \",(0,y.jsx)(\"span\",{\"data-nextjs-call-stack-count\":!0,children:n.length})]}),r>0&&(0,y.jsxs)(\"button\",{\"data-nextjs-call-stack-ignored-list-toggle-button\":t,onClick:o,children:[\"\".concat(t?\"Hide\":\"Show\",\" \").concat(r,\" ignore-listed frame(s)\"),(0,y.jsx)(ta,{})]})]}),n.map(function(e,n){return!e.ignored||t?(0,y.jsx)(to,{frame:e},n):null})]})}var ts=ei(ti());function tc(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tu(e){var n,t,r=e.frames,o=e.dialogResizerRef,a=(0,x.useRef)(NaN),i=(n=(0,x.useState)(!1),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return tc(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tc(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),l=i[0],s=i[1],c=(0,x.useMemo)(function(){return r.reduce(function(e,n){return e+ +!!n.ignored},0)},[r]);return(0,y.jsx)(tl,{frames:r,isIgnoreListOpen:l,onToggleIgnoreList:function(){var e=null==o?void 0:o.current;if(e){var n=(null==e?void 0:e.getBoundingClientRect()).height;a.current||(a.current=n),l?(e.style.height=\"\".concat(a.current,\"px\"),e.addEventListener(\"transitionend\",function n(){e.removeEventListener(\"transitionend\",n),s(!1)})):s(!0)}},ignoredFramesTally:c})}function td(){var e,n,t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).collapsed;return(0,y.jsx)(\"svg\",(e=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-call-stack-chevron-icon\":!0,\"data-collapsed\":t,width:\"16\",height:\"16\",fill:\"none\"},\"boolean\"==typeof t?{style:{transform:t?void 0:\"rotate(90deg)\"}}:{}),n=n={children:(0,y.jsx)(\"path\",{style:{fill:\"var(--color-font)\"},fillRule:\"evenodd\",d:\"m6.75 3.94.53.53 2.824 2.823a1 1 0 0 1 0 1.414L7.28 11.53l-.53.53L5.69 11l.53-.53L8.69 8 6.22 5.53 5.69 5l1.06-1.06Z\",clipRule:\"evenodd\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e))}function tf(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tp(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return tf(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tf(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function th(e){var n=e.reactOutputComponentDiff,t=tp((0,x.useState)(!0),2),r=t[0],o=t[1],a=(0,x.useMemo)(function(){var e=[];return n.split(\"\\n\").forEach(function(n,t){var r,o,a=\"+\"===n[0]||\"-\"===n[0],i=\">\"===n[0],l=a||i,s=l?n[0]:\"\",c=l?n.indexOf(s):-1,u=tp(l?[n.slice(0,c),n.slice(c+1)]:[n,\"\"],2),d=u[0],f=u[1];a?e.push((0,y.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line\":!0,\"data-nextjs-container-errors-pseudo-html--diff\":\"+\"===s?\"add\":\"remove\",children:(0,y.jsxs)(\"span\",{children:[d,(0,y.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line-sign\":!0,children:s}),f,\"\\n\"]})},\"comp-diff\"+t)):e.push((0,y.jsxs)(\"span\",(r=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({\"data-nextjs-container-errors-pseudo-html-line\":!0},i?{\"data-nextjs-container-errors-pseudo-html--diff\":\"error\"}:void 0),o=o={children:[d,(0,y.jsx)(\"span\",{\"data-nextjs-container-errors-pseudo-html-line-sign\":!0,children:s}),f,\"\\n\"]},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r),\"comp-diff\"+t))}),e},[n]);return(0,y.jsxs)(\"div\",{\"data-nextjs-container-errors-pseudo-html\":!0,\"data-nextjs-container-errors-pseudo-html-collapse\":r,children:[(0,y.jsx)(\"button\",{\"aria-expanded\":!r,\"aria-label\":\"complete Component Stack\",\"data-nextjs-container-errors-pseudo-html-collapse-button\":!0,onClick:function(){return o(!r)},children:(0,y.jsx)(td,{collapsed:r})}),(0,y.jsx)(\"pre\",{className:\"nextjs__container_errors__component-stack\",children:(0,y.jsx)(\"code\",{children:a})})]})}var tg=Symbol.for(\"NextjsError\");function tm(e){return e[tg]||null}function tv(e,n,t,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){t(e);return}l.done?n(s):Promise.resolve(s).then(r,o)}function tb(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var a=e.apply(n,t);function i(e){tv(a,r,o,i,l,\"next\",e)}function l(e){tv(a,r,o,i,l,\"throw\",e)}i(void 0)})}}function ty(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function tx(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function tw(e,n){var t,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(t)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var tj=function(e){if(\"use\"in x){var n=e.frames;if(\"function\"!=typeof n)throw Error(\"Invariant: frames must be a function when the React version has React.use. This is a bug in Next.js.\");return x.use(n())}if(!Array.isArray(e.frames))throw Error(\"Invariant: frames must be an array when the React version does not have React.use. This is a bug in Next.js.\");return e.frames};function tk(e){var n=e.error,t=e.dialogResizerRef,r=tj(n),o=(0,x.useMemo)(function(){var e,n=r.findIndex(function(e){return!e.ignored&&!!e.originalCodeFrame&&!!e.originalStackFrame});return null!=(e=r[n])?e:null},[r]);return(0,y.jsxs)(y.Fragment,{children:[o&&(0,y.jsx)(eq,{stackFrame:o.originalStackFrame,codeFrame:o.originalCodeFrame}),r.length>0&&(0,y.jsx)(tu,{dialogResizerRef:t,frames:r})]})}var tA=\"\\n \".concat(\"\\n [data-nextjs-container-errors-pseudo-html] {\\n padding: 8px 0;\\n margin: 8px 0;\\n border: 1px solid var(--color-gray-400);\\n background: var(--color-background-200);\\n color: var(--color-syntax-constant);\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n line-height: 1.33em; /* 16px in 12px font size */\\n border-radius: var(--rounded-md-2);\\n }\\n [data-nextjs-container-errors-pseudo-html-line] {\\n display: inline-block;\\n width: 100%;\\n padding-left: 40px;\\n line-height: calc(5 / 3);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='error'] {\\n background: var(--color-amber-100);\\n box-shadow: 2px 0 0 0 var(--color-amber-900) inset;\\n font-weight: bold;\\n }\\n [data-nextjs-container-errors-pseudo-html-collapse-button] {\\n all: unset;\\n margin-left: 12px;\\n &:focus {\\n outline: none;\\n }\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='add'] {\\n background: var(--color-green-300);\\n }\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n margin-left: calc(24px * -1);\\n margin-right: 24px;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='add']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-green-900);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='remove'] {\\n background: var(--color-red-300);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='remove']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-red-900);\\n margin-left: calc(24px * -1);\\n margin-right: 24px;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='error']\\n [data-nextjs-container-errors-pseudo-html-line-sign] {\\n color: var(--color-amber-900);\\n }\\n \\n [data-nextjs-container-errors-pseudo-html--hint] {\\n display: inline-block;\\n font-size: 0;\\n height: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html--tag-adjacent='false'] {\\n color: var(--color-accents-1);\\n }\\n .nextjs__container_errors__component-stack {\\n margin: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html-collapse='true']\\n .nextjs__container_errors__component-stack\\n code {\\n max-height: 120px;\\n mask-image: linear-gradient(to bottom,rgba(0,0,0,0) 0%,black 10%);\\n padding-bottom: 40px;\\n }\\n .nextjs__container_errors__component-stack code {\\n display: block;\\n width: 100%;\\n white-space: pre-wrap;\\n scroll-snap-type: y mandatory;\\n overflow-y: hidden;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff] {\\n scroll-snap-align: center;\\n }\\n .error-overlay-hydration-error-diff-plus-icon {\\n color: var(--color-green-900);\\n }\\n .error-overlay-hydration-error-diff-minus-icon {\\n color: var(--color-red-900);\\n }\\n\",\"\\n\");function tO(e){return e&&\"undefined\"!=typeof Symbol&&e.constructor===Symbol?\"symbol\":typeof e}function tC(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tS(e){var n,t,r,o,a,i=e.runtimeErrors,l=e.getSquashedHydrationErrorDetails,s=(r=(0,x.useState)(0),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(r,2)||function(e,n){if(e){if(\"string\"==typeof e)return tC(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tC(e,n)}}(r,o)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),c=s[0],u=s[1],d=(0,x.useMemo)(function(){return 0===i.length},[i.length]),f=(0,x.useMemo)(function(){var e;return null!=(e=i[c])?e:null},[c,i]),p=(n=null==f?void 0:f.error,t=l,(0,x.useMemo)(function(){if(void 0===n)return tL;var e,r,o,a=t(n);if(null!==a)return{hydrationWarning:null!=(r=a.warning)?r:null,notes:null,reactOutputComponentDiff:null!=(o=a.reactOutputComponentDiff)?o:null};if(!(ng((e=n).message)||/Hydration failed because the server rendered (text|HTML) didn't match the client\\./.test(e.message)||/A tree hydrated but some attributes of the server rendered HTML didn't match the client properties./.test(e.message)))return tL;var i=function(e){var n=e.message;if(ng(n)){var t=nc(n.split(\"\\n\\n\"),2),r=t[0],o=t[1],a=(void 0===o?\"\":o).trim();return{message:\"\"===a?n.trim():r.trim(),diff:a,notes:null}}var i=nc(n.split(\"\".concat(nf)),2),l=i[0],s=i[1],c=l.trim();if(void 0!==s&&s.length>1){var u=[];s.split(\"\\n\").forEach(function(e){\"\"!==e.trim()&&(e.trim().startsWith(\"at \")||u.push(e))});var d=nu(c.split(\"\\n\\n\")),f=d[0],p=d.slice(1);return{message:f,diff:u.join(\"\\n\"),notes:p.join(\"\\n\\n\")||null}}var h=nu(c.split(\"\\n\\n\"));return{message:h[0],diff:null,notes:h.slice(1).join(\"\\n\\n\")}}(n),l=i.message,s=i.notes,c=i.diff;return null===l?tL:{hydrationWarning:l,notes:s,reactOutputComponentDiff:c}},[n,t]));if(d||!f)return{isLoading:d,activeIdx:c,setActiveIndex:u,activeError:null,errorDetails:null,errorCode:null,errorType:null,notes:null,hydrationWarning:null};var h=f.error,g=(void 0===(a=h)?\"undefined\":tO(a))===\"object\"&&null!==a&&\"__NEXT_ERROR_CODE\"in a&&\"string\"==typeof a.__NEXT_ERROR_CODE?a.__NEXT_ERROR_CODE:(void 0===a?\"undefined\":tO(a))===\"object\"&&null!==a&&\"digest\"in a&&\"string\"==typeof a.digest?a.digest.split(\"@\").find(function(e){return e.startsWith(\"E\")}):void 0,m=tz(h,f.type),v=p.notes,b=p.hydrationWarning;return{isLoading:d,activeIdx:c,setActiveIndex:u,activeError:f,errorDetails:p,errorCode:g,errorType:m,notes:v,hydrationWarning:b}}function tE(e){return e.startsWith(\"https://nextjs.org\")}function t_(e){var n=e.message;return(0,y.jsx)(eb,{text:n,matcher:tE})}function tP(e){var n=e.error,t=\"environmentName\"in n?n.environmentName:\"\",r=t?\"[ \".concat(t,\" ] \"):\"\",o=n.message;return o.startsWith(r)&&(o=o.slice(r.length)),(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(eb,{text:o,matcher:tE})})}function tz(e,n){return\"recoverable\"===n?\"Recoverable \".concat(e.name):\"console\"===n?\"Console \".concat(e.name):\"Runtime \".concat(e.name)}var tL={hydrationWarning:null,notes:null,reactOutputComponentDiff:null};function tT(e){var n,t,r=e.getSquashedHydrationErrorDetails,o=e.runtimeErrors,a=e.debugInfo,i=e.onClose,l=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"getSquashedHydrationErrorDetails\",\"runtimeErrors\",\"debugInfo\",\"onClose\"]),s=(0,x.useRef)(null),c=tS({runtimeErrors:o,getSquashedHydrationErrorDetails:r}),u=c.isLoading,d=c.errorCode,f=c.errorType,p=c.notes,h=c.hydrationWarning,g=c.activeIdx,m=c.errorDetails,v=c.activeError,b=c.setActiveIndex;if(u)return(0,y.jsx)(nZ,{children:(0,y.jsx)(n2,{})});if(!v)return null;var w=v.error,j=[\"server\",\"edge-server\"].includes(tm(w)||\"\");return(0,y.jsxs)(n9,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({errorCode:d,errorType:f,errorMessage:h?(0,y.jsx)(t_,{message:h}):(0,y.jsx)(tP,{error:w}),onClose:j?void 0:i,debugInfo:a,error:w,runtimeErrors:o,activeIdx:g,setActiveIndex:b,dialogResizerRef:s},l),t=t={children:[(0,y.jsxs)(\"div\",{className:\"error-overlay-notes-container\",children:[p?(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(\"p\",{id:\"nextjs__container_errors__notes\",className:\"nextjs__container_errors__notes\",children:p})}):null,h?(0,y.jsx)(\"p\",{id:\"nextjs__container_errors__link\",className:\"nextjs__container_errors__link\",children:(0,y.jsx)(eb,{text:\"See more info here: \".concat(np)})}):null]}),m.reactOutputComponentDiff?(0,y.jsx)(th,{reactOutputComponentDiff:m.reactOutputComponentDiff||\"\"}):null,(0,y.jsx)(x.Suspense,{fallback:(0,y.jsx)(\"div\",{\"data-nextjs-error-suspended\":!0}),children:(0,y.jsx)(tk,{error:v,dialogResizerRef:s},v.id.toString())})]},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}var tR=x.forwardRef(function(e,n){var t,r,o=e.onClick,a=e.children,i=e.className,l=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"onClick\",\"children\",\"className\"]);return(0,y.jsx)(\"div\",(t=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},l),r=r={ref:n,onClick:function(e){return e.target.closest(\"a\")||e.preventDefault(),null==o?void 0:o()},className:(0,eJ.cx)(\"nextjs-toast\",i),children:a},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t))});function tN(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tD(e){var n,t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:750,o=(n=(0,x.useState)(!1),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return tN(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tN(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=o[0],i=o[1],l=(0,x.useRef)(null),s=(0,x.useRef)(null);return(0,x.useEffect)(function(){if(s.current&&(clearTimeout(s.current),s.current=null),e)null===l.current&&(l.current=Date.now()),i(!0);else if(null===l.current)i(!1);else{var n=Date.now()-l.current,t=r*Math.ceil(n/r)-n;t>0?s.current=setTimeout(function(){i(!1),l.current=null},t):(i(!1),l.current=null)}return function(){s.current&&clearTimeout(s.current)}},[e,r]),a}function tB(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tM(e){var n,t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=(0,x.useRef)(null),a=(n=(0,x.useState)(!1),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return tB(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tB(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),i=a[0],l=a[1];return(0,x.useEffect)(function(){if(e>0){var n=o.current?Date.now()-o.current:-1;if(o.current=Date.now(),!(n<=r)){l(!0);var t=window.setTimeout(function(){l(!1)},r);return function(){clearTimeout(t)}}}},[e,r]),i}function tI(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tH(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return tI(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tI(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function tF(e){var n=tH((0,x.useState)(0),2),t=n[0],r=n[1];return(0,x.useEffect)(function(){var n=e.current;if(n){var t=new ResizeObserver(function(e){r(tH(e,1)[0].contentRect.width)});return t.observe(n),function(){return t.disconnect()}}},[e]),t}function tU(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function tV(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function tq(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function tW(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function t$(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return tU(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return tU(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function tZ(){var e,n,t=(e=[\"\\n [data-next-badge-root] {\\n --timing: cubic-bezier(0.23, 0.88, 0.26, 0.92);\\n --duration-long: 250ms;\\n --color-outer-border: #171717;\\n --color-inner-border: hsla(0, 0%, 100%, 0.14);\\n --color-hover-alpha-subtle: hsla(0, 0%, 100%, 0.13);\\n --color-hover-alpha-error: hsla(0, 0%, 100%, 0.2);\\n --color-hover-alpha-error-2: hsla(0, 0%, 100%, 0.25);\\n --mark-size: calc(var(--size) - var(--size-2) * 2);\\n\\n --focus-color: var(--color-blue-800);\\n --focus-ring: 2px solid var(--focus-color);\\n\\n &:has([data-next-badge][data-error='true']) {\\n --focus-color: #fff;\\n }\\n }\\n\\n [data-disabled-icon] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding-right: 4px;\\n }\\n\\n [data-next-badge] {\\n -webkit-font-smoothing: antialiased;\\n width: var(--size);\\n height: var(--size);\\n display: flex;\\n align-items: center;\\n position: relative;\\n background: rgba(0, 0, 0, 0.8);\\n box-shadow:\\n 0 0 0 1px var(--color-outer-border),\\n inset 0 0 0 1px var(--color-inner-border),\\n 0px 16px 32px -8px rgba(0, 0, 0, 0.24);\\n backdrop-filter: blur(48px);\\n border-radius: var(--rounded-full);\\n user-select: none;\\n cursor: pointer;\\n scale: 1;\\n overflow: hidden;\\n will-change: scale, box-shadow, width, background;\\n transition:\\n scale var(--duration-short) var(--timing),\\n width var(--duration-long) var(--timing),\\n box-shadow var(--duration-long) var(--timing),\\n background var(--duration-short) ease;\\n\\n &:active[data-error='false'] {\\n scale: 0.95;\\n }\\n\\n &[data-animate='true']:not(:hover) {\\n scale: 1.02;\\n }\\n\\n &[data-error='false']:has([data-next-mark]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: 3px;\\n }\\n\\n &[data-error='true'] {\\n background: #ca2a30;\\n --color-inner-border: #e5484d;\\n\\n [data-next-mark] {\\n background: var(--color-hover-alpha-error);\\n outline-offset: 0px;\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-error-2);\\n }\\n }\\n }\\n\\n &[data-error-expanded='false'][data-error='true'] ~ [data-dot] {\\n scale: 1;\\n }\\n\\n > div {\\n display: flex;\\n }\\n }\\n\\n [data-issues-collapse]:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n [data-issues]:has([data-issues-open]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n [data-dot] {\\n content: '';\\n width: var(--size-8);\\n height: var(--size-8);\\n background: #fff;\\n box-shadow: 0 0 0 1px var(--color-outer-border);\\n border-radius: 50%;\\n position: absolute;\\n top: 2px;\\n right: 0px;\\n scale: 0;\\n pointer-events: none;\\n transition: scale 200ms var(--timing);\\n transition-delay: var(--duration-short);\\n }\\n\\n [data-issues] {\\n --padding-left: 8px;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n padding-left: 8px;\\n padding-right: 8px;\\n height: var(--size-32);\\n margin-right: 2px;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:has([data-issues-open]:hover) {\\n background: var(--color-hover-alpha-error);\\n }\\n\\n &:has([data-issues-collapse]) {\\n padding-right: calc(var(--padding-left) / 2);\\n }\\n\\n [data-cross] {\\n translate: 0px -1px;\\n }\\n }\\n\\n [data-issues-open] {\\n font-size: var(--size-13);\\n color: white;\\n width: fit-content;\\n height: 100%;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n margin: 0;\\n line-height: var(--size-36);\\n font-weight: 500;\\n z-index: 2;\\n white-space: nowrap;\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n }\\n\\n [data-issues-collapse] {\\n width: var(--size-24);\\n height: var(--size-24);\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:hover {\\n background: var(--color-hover-alpha-error);\\n }\\n }\\n\\n [data-cross] {\\n color: #fff;\\n width: var(--size-12);\\n height: var(--size-12);\\n }\\n\\n [data-next-mark] {\\n width: var(--mark-size);\\n height: var(--mark-size);\\n margin: 0 2px;\\n display: flex;\\n align-items: center;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-long) var(--timing);\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-subtle);\\n }\\n\\n svg {\\n flex-shrink: 0;\\n width: var(--size-40);\\n height: var(--size-40);\\n }\\n }\\n\\n [data-issues-count-animation] {\\n display: grid;\\n place-items: center center;\\n font-variant-numeric: tabular-nums;\\n\\n &[data-animate='false'] {\\n [data-issues-count-exit],\\n [data-issues-count-enter] {\\n animation-duration: 0ms;\\n }\\n }\\n\\n > * {\\n grid-area: 1 / 1;\\n }\\n\\n [data-issues-count-exit] {\\n animation: fadeOut 300ms var(--timing) forwards;\\n }\\n\\n [data-issues-count-enter] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n [data-issues-count-plural] {\\n display: inline-block;\\n &[data-animate='true'] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n .path0 {\\n animation: draw0 1.5s ease-in-out infinite;\\n }\\n\\n .path1 {\\n animation: draw1 1.5s ease-out infinite;\\n animation-delay: 0.3s;\\n }\\n\\n .paused {\\n stroke-dashoffset: 0;\\n }\\n\\n @keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n filter: blur(2px);\\n transform: translateY(8px);\\n }\\n 100% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n }\\n\\n @keyframes fadeOut {\\n 0% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n 100% {\\n opacity: 0;\\n transform: translateY(-12px);\\n filter: blur(2px);\\n }\\n }\\n\\n @keyframes draw0 {\\n 0%,\\n 25% {\\n stroke-dashoffset: -29.6;\\n }\\n 25%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 29.6;\\n }\\n }\\n\\n @keyframes draw1 {\\n 0%,\\n 20% {\\n stroke-dashoffset: -11.6;\\n }\\n 20%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 11.6;\\n }\\n }\\n\\n @media (prefers-reduced-motion) {\\n [data-issues-count-exit],\\n [data-issues-count-enter],\\n [data-issues-count-plural] {\\n animation-duration: 0ms !important;\\n }\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return tZ=function(){return t},t}var tY=(0,x.forwardRef)(function(e,n){var t=e.disabled,r=e.issueCount,o=e.isDevBuilding,a=e.isDevRendering,i=e.isBuildError,l=e.onTriggerClick,s=e.toggleErrorOverlay,c=e.scale,u=tW(e,[\"disabled\",\"issueCount\",\"isDevBuilding\",\"isDevRendering\",\"isBuildError\",\"onTriggerClick\",\"toggleErrorOverlay\",\"scale\"]),d=r>0,f=t$((0,x.useState)(d),2),p=f[0],h=f[1],g=t$((0,x.useState)(!1),2),m=g[0],v=g[1],b=tM(r,150),w=(0,x.useRef)(null),j=(0,x.useRef)(null),k=tF(j),A=tD(o||a),O=p||t;return(0,x.useEffect)(function(){h(d)},[d]),(0,y.jsxs)(\"div\",{\"data-next-badge-root\":!0,style:{\"--size\":\"\".concat(36/(void 0===c?1:c),\"px\"),\"--duration-short\":\"\".concat(150,\"ms\"),display:t&&(!d||m)?\"none\":\"block\"},children:[(0,y.jsx)(\"style\",{children:ei(tZ())}),(0,y.jsx)(\"div\",{\"data-next-badge\":!0,\"data-error\":d,\"data-error-expanded\":O,\"data-animate\":b,style:{width:0===k?\"auto\":k},children:(0,y.jsxs)(\"div\",{ref:j,children:[!t&&(0,y.jsx)(\"button\",tq(tV({ref:function(){for(var e=arguments.length,n=Array(e),t=0;t<e;t++)n[t]=arguments[t];var r=n.filter(Boolean);return r.length<=1?r[0]||null:function(e){var n=!0,t=!1,o=void 0;try{for(var a,i=r[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;\"function\"==typeof l?l(e):l&&(l.current=e)}}catch(e){t=!0,o=e}finally{try{n||null==i.return||i.return()}finally{if(t)throw o}}}}(w,n),\"data-next-mark\":!0,\"data-next-mark-loading\":A,onClick:l},u),{children:(0,y.jsx)(tK,{isLoading:A,isDevBuilding:o})})),O&&(0,y.jsxs)(\"div\",{\"data-issues\":!0,children:[(0,y.jsxs)(\"button\",{\"data-issues-open\":!0,\"aria-label\":\"Open issues overlay\",onClick:s,children:[t&&(0,y.jsx)(\"div\",{\"data-disabled-icon\":!0,children:(0,y.jsx)(tQ,{})}),(0,y.jsx)(tX,{animate:b,\"data-issues-count-animation\":!0,children:r},r),\" \",(0,y.jsxs)(\"div\",{children:[\"Issue\",r>1&&(0,y.jsx)(\"span\",{\"aria-hidden\":!0,\"data-issues-count-plural\":!0,\"data-animate\":b&&2===r,children:\"s\"})]})]}),!i&&(0,y.jsx)(\"button\",{\"data-issues-collapse\":!0,\"aria-label\":\"Collapse issues badge\",onClick:function(){var e;t?v(!0):h(!1),null==(e=w.current)||e.focus()},children:(0,y.jsx)(tG,{\"data-cross\":!0})})]})]})}),(0,y.jsx)(\"div\",{\"aria-hidden\":!0,\"data-dot\":!0})]})});function tX(e){var n=e.children,t=e.animate,r=tW(e,[\"children\",\"animate\"]);return(0,y.jsxs)(\"div\",tq(tV({},r),{\"data-animate\":void 0===t||t,children:[(0,y.jsx)(\"div\",{\"aria-hidden\":!0,\"data-issues-count-exit\":!0,children:n-1}),(0,y.jsx)(\"div\",{\"data-issues-count\":!0,\"data-issues-count-enter\":!0,children:n})]}))}function tK(e){var n=e.isLoading,t=e.isDevBuilding?\"rgba(255,255,255,0.7)\":\"white\";return(0,y.jsxs)(\"svg\",{width:\"40\",height:\"40\",viewBox:\"0 0 40 40\",fill:\"none\",\"data-next-mark-loading\":n,children:[(0,y.jsxs)(\"g\",{transform:\"translate(8.5, 13)\",children:[(0,y.jsx)(\"path\",{className:n?\"path0\":\"paused\",d:\"M13.3 15.2 L2.34 1 V12.6\",fill:\"none\",stroke:\"url(#next_logo_paint0_linear_1357_10853)\",strokeWidth:\"1.86\",mask:\"url(#next_logo_mask0)\",strokeDasharray:\"29.6\",strokeDashoffset:\"29.6\"}),(0,y.jsx)(\"path\",{className:n?\"path1\":\"paused\",d:\"M11.825 1.5 V13.1\",strokeWidth:\"1.86\",stroke:\"url(#next_logo_paint1_linear_1357_10853)\",strokeDasharray:\"11.6\",strokeDashoffset:\"11.6\"})]}),(0,y.jsxs)(\"defs\",{children:[(0,y.jsxs)(\"linearGradient\",{id:\"next_logo_paint0_linear_1357_10853\",x1:\"9.95555\",y1:\"11.1226\",x2:\"15.4778\",y2:\"17.9671\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{stopColor:t}),(0,y.jsx)(\"stop\",{offset:\"0.604072\",stopColor:t,stopOpacity:\"0\"}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:t,stopOpacity:\"0\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"next_logo_paint1_linear_1357_10853\",x1:\"11.8222\",y1:\"1.40039\",x2:\"11.791\",y2:\"9.62542\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{stopColor:t}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:t,stopOpacity:\"0\"})]}),(0,y.jsxs)(\"mask\",{id:\"next_logo_mask0\",children:[(0,y.jsx)(\"rect\",{width:\"100%\",height:\"100%\",fill:\"white\"}),(0,y.jsx)(\"rect\",{width:\"5\",height:\"1.5\",fill:\"black\"})]})]})]})}function tQ(){return(0,y.jsx)(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 12 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.98071 1.125L1.125 3.98071L1.125 8.01929L3.98071 10.875H8.01929L10.875 8.01929V3.98071L8.01929 1.125H3.98071ZM3.82538 0C3.62647 0 3.4357 0.0790176 3.29505 0.21967L0.21967 3.29505C0.0790176 3.4357 0 3.62647 0 3.82538V8.17462C0 8.37353 0.0790178 8.5643 0.21967 8.70495L3.29505 11.7803C3.4357 11.921 3.62647 12 3.82538 12H8.17462C8.37353 12 8.5643 11.921 8.70495 11.7803L11.7803 8.70495C11.921 8.5643 12 8.37353 12 8.17462V3.82538C12 3.62647 11.921 3.4357 11.7803 3.29505L8.70495 0.21967C8.5643 0.0790177 8.37353 0 8.17462 0H3.82538ZM6.5625 2.8125V3.375V6V6.5625H5.4375V6V3.375V2.8125H6.5625ZM6 9C6.41421 9 6.75 8.66421 6.75 8.25C6.75 7.83579 6.41421 7.5 6 7.5C5.58579 7.5 5.25 7.83579 5.25 8.25C5.25 8.66421 5.58579 9 6 9Z\",fill:\"#EAEAEA\"})})}function tG(e){return(0,y.jsx)(\"svg\",tq(tV({width:\"12\",height:\"12\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),{children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.08889 11.8384L2.62486 12.3024L1.69678 11.3744L2.16082 10.9103L6.07178 6.99937L2.16082 3.08841L1.69678 2.62437L2.62486 1.69629L3.08889 2.16033L6.99986 6.07129L10.9108 2.16033L11.3749 1.69629L12.3029 2.62437L11.8389 3.08841L7.92793 6.99937L11.8389 10.9103L12.3029 11.3744L11.3749 12.3024L10.9108 11.8384L6.99986 7.92744L3.08889 11.8384Z\",fill:\"currentColor\"})}))}var tJ=__nested_webpack_require_381207__(\"./src/next-devtools/dev-overlay/hooks/use-delayed-render.ts\"),t0=__nested_webpack_require_381207__(\"./src/next-devtools/dev-overlay/components/errors/dev-tools-indicator/dev-tools-info/dev-tools-info.tsx\");function t1(e){var n,t;return(0,y.jsxs)(t0.x,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({title:\"Turbopack\",learnMoreLink:\"https://nextjs.org/docs/app/api-reference/turbopack\"},e),t=t={children:[(0,y.jsxs)(\"article\",{className:\"dev-tools-info-article\",children:[(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js. Turbopack can be used in Next.js in both the\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"pages\"}),\" and\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"app\"}),\" directories for faster local development.\"]}),(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"To enable Turbopack, use the\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"--turbopack\"}),\" flag when running the Next.js development server.\"]})]}),(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-container\",children:(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block\",children:[(0,y.jsx)(e3,{actionLabel:\"Copy Next.js Turbopack Command\",successLabel:\"Next.js Turbopack Command Copied\",content:\"--turbopack\",className:\"dev-tools-info-copy-button\"}),(0,y.jsx)(\"pre\",{className:\"dev-tools-info-code-block-pre\",children:(0,y.jsxs)(\"code\",{children:[(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" \"}),(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\"{\"}),(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"scripts\"'}),\": \",\"{\"]}),(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line dev-tools-info-highlight\",children:[\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"dev\"'}),\":\",\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next dev --turbopack\"'}),\",\"]}),(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"build\"'}),\":\",\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next build\"'}),\",\"]}),(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"start\"'}),\":\",\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next start\"'}),\",\"]}),(0,y.jsxs)(\"div\",{className:\"dev-tools-info-code-block-line\",children:[\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-key\",children:'\"lint\"'}),\":\",\" \",(0,y.jsx)(\"span\",{className:\"dev-tools-info-code-block-json-value\",children:'\"next lint\"'})]}),(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" }\"}),(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\"}\"}),(0,y.jsx)(\"div\",{className:\"dev-tools-info-code-block-line\",children:\" \"})]})})]})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function t2(e){var n=e.routerType;return(0,y.jsxs)(\"article\",{className:\"dev-tools-info-article\",children:[(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"The path\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:window.location.pathname}),\" \",'is marked as \"static\" since it will be prerendered during the build time.']}),(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"With Static Rendering, routes are rendered at build time, or in the background after\",\" \",(0,y.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"pages\"===n?\"https://nextjs.org/docs/pages/building-your-application/data-fetching/incremental-static-regeneration\":\"https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"data revalidation\"}),\".\"]}),(0,y.jsx)(\"p\",{className:\"dev-tools-info-paragraph\",children:\"Static rendering is useful when a route has data that is not personalized to the user and can be known at build time, such as a static blog post or a product page.\"})]})}function t4(e){var n=e.routerType;return(0,y.jsxs)(\"article\",{className:\"dev-tools-info-article\",children:[(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"The path\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:window.location.pathname}),\" \",'is marked as \"dynamic\" since it will be rendered for each user at',\" \",(0,y.jsx)(\"strong\",{children:\"request time\"}),\".\"]}),(0,y.jsx)(\"p\",{className:\"dev-tools-info-paragraph\",children:\"Dynamic rendering is useful when a route has data that is personalized to the user or has information that can only be known at request time, such as cookies or the URL's search params.\"}),\"pages\"===n?(0,y.jsxs)(\"p\",{className:\"dev-tools-info-pagraph\",children:[\"Exporting the\",\" \",(0,y.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/pages/building-your-application/data-fetching/get-server-side-props\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"getServerSideProps\"}),\" \",\"function will opt the route into dynamic rendering. This function will be called by the server on every request.\"]}):(0,y.jsxs)(\"p\",{className:\"dev-tools-info-paragraph\",children:[\"During rendering, if a\",\" \",(0,y.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#dynamic-apis\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"Dynamic API\"}),\" \",\"or a\",\" \",(0,y.jsx)(\"a\",{className:\"dev-tools-info-link\",href:\"https://nextjs.org/docs/app/api-reference/functions/fetch\",target:\"_blank\",rel:\"noopener noreferrer\",children:\"fetch\"}),\" \",\"option of\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"{ cache: 'no-store' }\"}),\" \",\"is discovered, Next.js will switch to dynamically rendering the whole route.\"]})]})}var t5={pages:{static:\"https://nextjs.org/docs/pages/building-your-application/rendering/static-site-generation\",dynamic:\"https://nextjs.org/docs/pages/building-your-application/rendering/server-side-rendering\"},app:{static:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#static-rendering-default\",dynamic:\"https://nextjs.org/docs/app/building-your-application/rendering/server-components#dynamic-rendering\"}};function t3(e){var n,t,r=e.routeType,o=e.routerType,a=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"routeType\",\"routerType\"]),i=\"Static\"===r,l=i?t5[o].static:t5[o].dynamic;return(0,y.jsx)(t0.x,(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({title:\"\".concat(r,\" Route\"),learnMoreLink:l},a),t=t={children:i?(0,y.jsx)(t2,{routerType:o}):(0,y.jsx)(t4,{routerType:o})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function t6(){return(0,y.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 20 20\",fill:\"none\",children:(0,y.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"m9.7 3.736.045-.236h.51l.044.236a2.024 2.024 0 0 0 1.334 1.536c.19.066.375.143.554.23.618.301 1.398.29 2.03-.143l.199-.136.36.361-.135.199a2.024 2.024 0 0 0-.143 2.03c.087.179.164.364.23.554.224.65.783 1.192 1.536 1.334l.236.044v.51l-.236.044a2.024 2.024 0 0 0-1.536 1.334 4.95 4.95 0 0 1-.23.554 2.024 2.024 0 0 0 .143 2.03l.136.199-.361.36-.199-.135a2.024 2.024 0 0 0-2.03-.143c-.179.087-.364.164-.554.23a2.024 2.024 0 0 0-1.334 1.536l-.044.236h-.51l-.044-.236a2.024 2.024 0 0 0-1.334-1.536 4.952 4.952 0 0 1-.554-.23 2.024 2.024 0 0 0-2.03.143l-.199.136-.36-.361.135-.199a2.024 2.024 0 0 0 .143-2.03 4.958 4.958 0 0 1-.23-.554 2.024 2.024 0 0 0-1.536-1.334l-.236-.044v-.51l.236-.044a2.024 2.024 0 0 0 1.536-1.334 4.96 4.96 0 0 1 .23-.554 2.024 2.024 0 0 0-.143-2.03l-.136-.199.361-.36.199.135a2.024 2.024 0 0 0 2.03.143c.179-.087.364-.164.554-.23a2.024 2.024 0 0 0 1.334-1.536ZM8.5 2h3l.274 1.46c.034.185.17.333.348.394.248.086.49.186.722.3.17.082.37.074.526-.033l1.226-.839 2.122 2.122-.84 1.226a.524.524 0 0 0-.032.526c.114.233.214.474.3.722.061.177.21.314.394.348L18 8.5v3l-1.46.274a.524.524 0 0 0-.394.348 6.47 6.47 0 0 1-.3.722.524.524 0 0 0 .033.526l.839 1.226-2.122 2.122-1.226-.84a.524.524 0 0 0-.526-.032 6.477 6.477 0 0 1-.722.3.524.524 0 0 0-.348.394L11.5 18h-3l-.274-1.46a.524.524 0 0 0-.348-.394 6.477 6.477 0 0 1-.722-.3.524.524 0 0 0-.526.033l-1.226.839-2.122-2.122.84-1.226a.524.524 0 0 0 .032-.526 6.453 6.453 0 0 1-.3-.722.524.524 0 0 0-.394-.348L2 11.5v-3l1.46-.274a.524.524 0 0 0 .394-.348c.086-.248.186-.49.3-.722a.524.524 0 0 0-.033-.526l-.839-1.226 2.122-2.122 1.226.84a.524.524 0 0 0 .526.032 6.46 6.46 0 0 1 .722-.3.524.524 0 0 0 .348-.394L8.5 2Zm3 8a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm1.5 0a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\",clipRule:\"evenodd\"})})}function t9(){return(0,y.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",fill:\"none\",children:(0,y.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"m.191 2.063.56.498 13.5 12 .561.498.997-1.121-.56-.498-1.81-1.608 2.88-3.342v-.98l-3.204-3.72C10.645.923 6.365.686 3.594 3.08L1.748 1.44 1.188.94.19 2.063ZM14.761 8l-2.442 2.836-1.65-1.466a3.001 3.001 0 0 0-4.342-3.86l-1.6-1.422a5.253 5.253 0 0 1 7.251.682L14.76 8ZM7.526 6.576l1.942 1.727a1.499 1.499 0 0 0-1.942-1.727Zm-7.845.935 1.722-2 1.137.979L1.24 8l2.782 3.23A5.25 5.25 0 0 0 9.9 12.703l.54 1.4a6.751 6.751 0 0 1-7.555-1.892L-.318 8.49v-.98Z\",clipRule:\"evenodd\"})})}function t8(){return(0,y.jsxs)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"20\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",children:[(0,y.jsx)(\"g\",{clipPath:\"url(#light_icon_clip_path)\",children:(0,y.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"M8.75.75V0h-1.5v2h1.5V.75ZM3.26 4.32l-.53-.53-.354-.353-.53-.53 1.06-1.061.53.53.354.354.53.53-1.06 1.06Zm8.42-1.06.53-.53.353-.354.53-.53 1.061 1.06-.53.53-.354.354-.53.53-1.06-1.06ZM8 11.25a3.25 3.25 0 1 0 0-6.5 3.25 3.25 0 0 0 0 6.5Zm0 1.5a4.75 4.75 0 1 0 0-9.5 4.75 4.75 0 0 0 0 9.5Zm6-5.5h2v1.5h-2v-1.5Zm-13.25 0H0v1.5h2v-1.5H.75Zm1.62 5.32-.53.53 1.06 1.06.53-.53.354-.353.53-.53-1.06-1.061-.53.53-.354.354Zm10.2 1.06.53.53 1.06-1.06-.53-.53-.354-.354-.53-.53-1.06 1.06.53.53.353.354ZM8.75 14v2h-1.5v-2h1.5Z\",clipRule:\"evenodd\"})}),(0,y.jsx)(\"defs\",{children:(0,y.jsx)(\"clipPath\",{id:\"light_icon_clip_path\",children:(0,y.jsx)(\"path\",{fill:\"currentColor\",d:\"M0 0h16v16H0z\"})})})]})}function t7(){return(0,y.jsx)(\"svg\",{\"data-testid\":\"geist-icon\",height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M1.5 8.00005C1.5 5.53089 2.99198 3.40932 5.12349 2.48889C4.88136 3.19858 4.75 3.95936 4.75 4.7501C4.75 8.61609 7.88401 11.7501 11.75 11.7501C11.8995 11.7501 12.048 11.7454 12.1953 11.7361C11.0955 13.1164 9.40047 14.0001 7.5 14.0001C4.18629 14.0001 1.5 11.3138 1.5 8.00005ZM6.41706 0.577759C2.78784 1.1031 0 4.22536 0 8.00005C0 12.1422 3.35786 15.5001 7.5 15.5001C10.5798 15.5001 13.2244 13.6438 14.3792 10.9921L13.4588 9.9797C12.9218 10.155 12.3478 10.2501 11.75 10.2501C8.71243 10.2501 6.25 7.78767 6.25 4.7501C6.25 3.63431 6.58146 2.59823 7.15111 1.73217L6.41706 0.577759ZM13.25 1V1.75V2.75L14.25 2.75H15V4.25H14.25H13.25V5.25V6H11.75V5.25V4.25H10.75L10 4.25V2.75H10.75L11.75 2.75V1.75V1H13.25Z\",fill:\"currentColor\"})})}function re(){return(0,y.jsx)(\"svg\",{width:\"16\",height:\"16\",strokeLinejoin:\"round\",children:(0,y.jsx)(\"path\",{fill:\"currentColor\",fillRule:\"evenodd\",d:\"M0 2a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v8.5a1 1 0 0 1-1 1H8.75v3h1.75V16h-5v-1.5h1.75v-3H1a1 1 0 0 1-1-1V2Zm1.5.5V10h13V2.5h-13Z\",clipRule:\"evenodd\"})})}function rn(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function rt(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return rn(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return rn(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var rr=\"bottom-left\"||0,ro=\"__nextjs_hide_shortcut\";function ra(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function ri(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||rs(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rl(e){return function(e){if(Array.isArray(e))return ra(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||rs(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rs(e,n){if(e){if(\"string\"==typeof e)return ra(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ra(e,n)}}function rc(){var e,n,t=(e=[\"\\n .shortcut-recorder {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n position: relative;\\n font-family: var(--font-stack-sans);\\n\\n .shortcut-recorder-button {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n background: transparent;\\n border: 1px dashed var(--color-gray-500);\\n border-radius: var(--rounded-lg);\\n padding: 6px 8px;\\n font-weight: 400;\\n font-size: var(--size-14);\\n color: var(--color-gray-1000);\\n transition: border-color 150ms var(--timing-swift);\\n\\n &[data-has-shortcut='true'] {\\n border: 1px solid var(--color-gray-alpha-400);\\n\\n &:hover {\\n border-color: var(--color-gray-500);\\n }\\n }\\n\\n &:hover {\\n border-color: var(--color-gray-600);\\n }\\n\\n &::placeholder {\\n color: var(--color-gray-900);\\n }\\n\\n &[data-pristine='false']::placeholder {\\n color: transparent;\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n }\\n\\n kbd {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n font-family: var(--font-stack-sans);\\n background: var(--color-gray-200);\\n min-width: 20px;\\n height: 20px;\\n font-size: 14px;\\n border-radius: 4px;\\n color: var(--color-gray-1000);\\n\\n &[data-symbol='false'] {\\n padding: 0 4px;\\n }\\n }\\n\\n .shortcut-recorder-clear-button {\\n cursor: pointer;\\n color: var(--color-gray-1000);\\n width: 20px;\\n height: 20px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 4px;\\n transition: background 150ms var(--timing-swift);\\n\\n &:hover {\\n background: var(--color-gray-300);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n svg {\\n width: 14px;\\n height: 14px;\\n }\\n }\\n }\\n\\n .shortcut-recorder-keys {\\n pointer-events: none;\\n user-select: none;\\n display: flex;\\n align-items: center;\\n gap: 2px;\\n }\\n\\n .shortcut-recorder-tooltip {\\n --gap: 8px;\\n --background: var(--color-gray-1000);\\n background: var(--background);\\n color: var(--color-background-100);\\n font-size: var(--size-14);\\n padding: 4px 8px;\\n border-radius: 8px;\\n position: absolute;\\n bottom: calc(100% + var(--gap));\\n text-align: center;\\n opacity: 0;\\n scale: 0.96;\\n white-space: nowrap;\\n user-select: none;\\n transition:\\n opacity 150ms var(--timing-swift),\\n scale 150ms var(--timing-swift);\\n\\n &[data-show='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n\\n svg {\\n position: absolute;\\n transform: translateX(-50%);\\n bottom: -6px;\\n left: 50%;\\n }\\n\\n .shortcut-recorder-status {\\n display: flex;\\n align-items: center;\\n gap: 6px;\\n }\\n\\n .shortcut-recorder-status-icon {\\n width: 7px;\\n height: 7px;\\n border-radius: 50%;\\n flex-shrink: 0;\\n background: var(--color-red-700);\\n\\n &[data-success='true'] {\\n background: var(--color-green-700);\\n }\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return rc=function(){return t},t}var ru=[\"Meta\",\"Control\",\"Ctrl\",\"Alt\",\"Option\",\"Shift\"];function rd(e){var n=e.value,t=e.onChange,r=ri((0,x.useState)(!1),2),o=r[0],a=r[1],i=ri((0,x.useState)(null!=n?n:[]),2),l=i[0],s=i[1],c=ri((0,x.useState)(!1),2),u=c[0],d=c[1],f=(0,x.useRef)(null),p=(0,x.useRef)(null),h=!!n||l.length>0;function g(){var e;null==(e=p.current)||e.focus(),s([]),d(!1),setTimeout(function(){a(!0)}),t(null)}function m(){var e;f.current&&clearTimeout(f.current),a(!0),null==(e=p.current)||e.focus()}return(0,y.jsxs)(\"div\",{className:\"shortcut-recorder\",children:[(0,y.jsxs)(\"button\",{className:\"shortcut-recorder-button\",ref:p,onClick:m,onFocus:m,onBlur:function(){d(!1),a(!1)},onKeyDown:function(e){e.target===p.current&&\"Tab\"!==e.key&&(f.current&&clearTimeout(f.current),o||a(!0),3!==l.length&&(e.preventDefault(),e.stopPropagation(),s(function(t){if(t.includes(e.key))return t;if(!ru.includes(e.key)){var r=t.findIndex(function(e){return!ru.includes(e)});if(-1!==r){var o=rl(t);return o[r]=e.key,n(o),o}var a=rl(t).concat([e.key]);return n(a),a}for(var i=rl(t),l=ru.indexOf(e.key),s=0,c=0;c<i.length;c++)if(ru.includes(i[c])){if(l<ru.indexOf(i[c])){s=c;break}s=c+1}else break;return i.splice(s,0,e.key),n(i),i})));function n(e){f.current=window.setTimeout(function(){d(!0),t(e.join(\"+\")),f.current=window.setTimeout(function(){a(!1)},1e3)},180)}},\"data-has-shortcut\":h,\"data-shortcut-recorder\":\"true\",children:[h?(0,y.jsx)(\"div\",{className:\"shortcut-recorder-keys\",children:l.map(function(e){return(0,y.jsx)(rp,{children:e},e)})}):\"Record Shortcut\",h&&(0,y.jsx)(\"div\",{className:\"shortcut-recorder-clear-button\",role:\"button\",onClick:g,onFocus:function(e){return e.stopPropagation()},onKeyDown:function(e){(\"Enter\"===e.key||\" \"===e.key)&&(g(),e.stopPropagation())},\"aria-label\":\"Clear shortcut\",tabIndex:0,children:(0,y.jsx)(rg,{})})]}),(0,y.jsxs)(\"div\",{className:\"shortcut-recorder-tooltip\",\"data-show\":o,children:[(0,y.jsxs)(\"div\",{className:\"shortcut-recorder-status\",children:[(0,y.jsx)(\"div\",{className:\"shortcut-recorder-status-icon\",\"data-success\":u}),u?\"Shortcut set\":\"Recording\"]}),(0,y.jsx)(rf,{})]})]})}function rf(){return(0,y.jsx)(\"svg\",{fill:\"none\",height:\"6\",viewBox:\"0 0 14 6\",width:\"14\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{d:\"M13.8284 0H0.17157C0.702003 0 1.21071 0.210714 1.58578 0.585787L5.58578 4.58579C6.36683 5.36684 7.63316 5.36683 8.41421 4.58579L12.4142 0.585786C12.7893 0.210714 13.298 0 13.8284 0Z\",fill:\"var(--background)\"})})}function rp(e){var n=e.children,t=function(e){switch(e){case\"Meta\":return(0,y.jsx)(rh,{});case\"Alt\":case\"Option\":return\"⌥\";case\"Control\":case\"Ctrl\":return\"Ctrl\";case\"Shift\":return\"⇧\";case\"Enter\":return\"⏎\";case\"Escape\":case\"Esc\":return\"Esc\";case\" \":case\"Space\":case\"Spacebar\":return\"Space\";case\"ArrowUp\":return\"↑\";case\"ArrowDown\":return\"↓\";case\"ArrowLeft\":return\"←\";case\"ArrowRight\":return\"→\";case\"Tab\":return\"Tab\";case\"Backspace\":return\"⌫\";case\"Delete\":return\"⌦\";default:if(1===n.length)return n.toUpperCase();return n}}(n),r=\"string\"==typeof t&&1===t.length;return(0,y.jsx)(\"kbd\",{\"data-symbol\":r,children:t})}function rh(){var e=ri((0,x.useState)(\"\\xa0\"),2),n=e[0],t=e[1],r=rv(/^Mac/)||rv(/^iPhone/)||rv(/^iPad/)||rv(/^Mac/)&&navigator.maxTouchPoints>1;return(0,x.useEffect)(function(){!0===r&&t(\"⌘\"),!1===r&&t(\"Ctrl\")},[r]),(0,y.jsx)(\"span\",{style:{minWidth:\"1em\",display:\"inline-block\"},children:n})}function rg(){return(0,y.jsx)(\"svg\",{height:\"16\",strokeLinejoin:\"round\",viewBox:\"0 0 16 16\",width:\"16\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M12.4697 13.5303L13 14.0607L14.0607 13L13.5303 12.4697L9.06065 7.99999L13.5303 3.53032L14.0607 2.99999L13 1.93933L12.4697 2.46966L7.99999 6.93933L3.53032 2.46966L2.99999 1.93933L1.93933 2.99999L2.46966 3.53032L6.93933 7.99999L2.46966 12.4697L1.93933 13L2.99999 14.0607L3.53032 13.5303L7.99999 9.06065L12.4697 13.5303Z\",fill:\"currentColor\"})})}var rm=ei(rc());function rv(e){return\"undefined\"!=typeof window&&null!=window.navigator?e.test(window.navigator.platform):void 0}function rb(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function ry(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function rx(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function rw(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function rj(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return rb(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return rb(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rk(){var e,n,t=(e=[\"\\n .preferences-container {\\n width: 100%;\\n }\\n\\n @media (min-width: 576px) {\\n .preferences-container {\\n width: 480px;\\n }\\n }\\n\\n .preference-section:first-child {\\n padding-top: 0;\\n }\\n\\n .preference-section {\\n padding: 12px 0;\\n border-bottom: 1px solid var(--color-gray-400);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n gap: 24px;\\n }\\n\\n .preference-section:last-child {\\n border-bottom: none;\\n }\\n\\n .preference-header {\\n margin-bottom: 0;\\n flex: 1;\\n }\\n\\n .preference-header label {\\n font-size: var(--size-14);\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n margin: 0;\\n }\\n\\n .preference-description {\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n margin: 0;\\n }\\n\\n .select-button,\\n .action-button {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-lg);\\n font-weight: 400;\\n font-size: var(--size-14);\\n color: var(--color-gray-1000);\\n padding: 6px 8px;\\n transition: border-color 150ms var(--timing-swift);\\n\\n &:hover {\\n border-color: var(--color-gray-500);\\n }\\n\\n svg {\\n width: 14px;\\n height: 14px;\\n overflow: visible;\\n }\\n }\\n\\n .select-button {\\n &:focus-within {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n select {\\n all: unset;\\n }\\n\\n option {\\n color: var(--color-gray-1000);\\n background: var(--color-background-100);\\n }\\n }\\n\\n :global(.icon) {\\n width: 18px;\\n height: 18px;\\n color: #666;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return rk=function(){return t},t}function rA(e){var n,t=e.setPosition,r=e.position,o=e.hide,a=e.scale,i=e.setScale,l=e.hideShortcut,s=e.setHideShortcut,c=rw(e,[\"setPosition\",\"position\",\"hide\",\"scale\",\"setScale\",\"hideShortcut\",\"setHideShortcut\"]),u=rj((0,x.useState)(function(){if(\"undefined\"==typeof localStorage)return\"system\";var e=localStorage.getItem(Q);return\"dark\"===e||\"light\"===e?e:\"system\"}()),2),d=u[0],f=u[1];function p(e){var n=\"/__nextjs_restart_dev\";e&&(n=\"/__nextjs_restart_dev?invalidatePersistentCache\"),fetch(n,{method:\"POST\"}).then(function(){})}return(0,y.jsxs)(t0.x,rx(ry({title:\"Preferences\"},c),{children:[(0,y.jsx)(\"h2\",{className:\"dev-tools-info-section-title\",children:\"General\"}),(0,y.jsxs)(\"div\",{className:\"preferences-container\",children:[(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{htmlFor:\"theme\",children:\"Theme\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Select your theme preference.\"})]}),(0,y.jsxs)(rO,{id:\"theme\",name:\"theme\",prefix:(0,y.jsx)(rC,{theme:d}),value:d,onChange:function(e){var n=document.querySelector(\"nextjs-portal\");if(n){if(f(e.target.value),\"system\"===e.target.value){n.classList.remove(\"dark\"),n.classList.remove(\"light\"),localStorage.removeItem(Q);return}\"dark\"===e.target.value?(n.classList.add(\"dark\"),n.classList.remove(\"light\"),localStorage.setItem(Q,\"dark\")):(n.classList.remove(\"dark\"),n.classList.add(\"light\"),localStorage.setItem(Q,\"light\"))}},children:[(0,y.jsx)(\"option\",{value:\"system\",children:\"System\"}),(0,y.jsx)(\"option\",{value:\"light\",children:\"Light\"}),(0,y.jsx)(\"option\",{value:\"dark\",children:\"Dark\"})]})]}),(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{htmlFor:\"position\",children:\"Position\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Adjust the placement of your dev tools.\"})]}),(0,y.jsxs)(rO,{id:\"position\",name:\"position\",value:r,onChange:function(e){t(e.target.value),localStorage.setItem(G,e.target.value)},children:[(0,y.jsx)(\"option\",{value:\"bottom-left\",children:\"Bottom Left\"}),(0,y.jsx)(\"option\",{value:\"bottom-right\",children:\"Bottom Right\"}),(0,y.jsx)(\"option\",{value:\"top-left\",children:\"Top Left\"}),(0,y.jsx)(\"option\",{value:\"top-right\",children:\"Top Right\"})]})]}),(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{htmlFor:\"size\",children:\"Size\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Adjust the size of your dev tools.\"})]}),(0,y.jsx)(rO,{id:\"size\",name:\"size\",value:a,onChange:function(e){i(Number(e.target.value))},children:Object.entries(S).map(function(e){var n=rj(e,2),t=n[0],r=n[1];return(0,y.jsx)(\"option\",{value:r,children:t},t)})})]}),(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{id:\"hide-dev-tools\",children:\"Hide Dev Tools for this session\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Hide Dev Tools until you restart your dev server, or 1 day.\"})]}),(0,y.jsx)(\"div\",{className:\"preference-control\",children:(0,y.jsxs)(\"button\",{\"aria-describedby\":\"hide-dev-tools\",name:\"hide-dev-tools\",\"data-hide-dev-tools\":!0,className:\"action-button\",onClick:o,children:[(0,y.jsx)(t9,{}),(0,y.jsx)(\"span\",{children:\"Hide\"})]})})]}),(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{id:\"hide-dev-tools\",children:\"Hide Dev Tools shortcut\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Set a custom keyboard shortcut to toggle visibility.\"})]}),(0,y.jsx)(\"div\",{className:\"preference-control\",children:(0,y.jsx)(rd,{value:null!=(n=null==l?void 0:l.split(\"+\"))?n:null,onChange:s})})]}),(0,y.jsx)(\"div\",{className:\"preference-section\",children:(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{children:\"Disable Dev Tools for this project\"}),(0,y.jsxs)(\"p\",{className:\"preference-description\",children:[\"To disable this UI completely, set\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"devIndicators: false\"}),\" \",\"in your \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"next.config\"}),\" \",\"file.\"]})]})})]}),(0,y.jsx)(\"h2\",{className:\"dev-tools-info-section-title\",children:\"Development Server\"}),(0,y.jsx)(\"div\",{className:\"preferences-container\",children:(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{id:\"restart-dev-server\",children:\"Restart Dev Server\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Restarts the development server without needing to leave the browser.\"})]}),(0,y.jsx)(\"div\",{className:\"preference-control\",children:(0,y.jsx)(\"button\",{\"aria-describedby\":\"restart-dev-server\",title:\"Restarts the development server without needing to leave the browser.\",name:\"restart-dev-server\",\"data-restart-dev-server\":!0,className:\"action-button\",onClick:function(){return p(!1)},children:(0,y.jsx)(\"span\",{children:\"Restart\"})})})]})}), true?(0,y.jsx)(\"div\",{className:\"preferences-container\",children:(0,y.jsxs)(\"div\",{className:\"preference-section\",children:[(0,y.jsxs)(\"div\",{className:\"preference-header\",children:[(0,y.jsx)(\"label\",{id:\"reset-bundler-cache\",children:\"Reset Bundler Cache\"}),(0,y.jsx)(\"p\",{className:\"preference-description\",children:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\"})]}),(0,y.jsx)(\"div\",{className:\"preference-control\",children:(0,y.jsx)(\"button\",{\"aria-describedby\":\"reset-bundler-cache\",title:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\",name:\"reset-bundler-cache\",\"data-reset-bundler-cache\":!0,className:\"action-button\",onClick:function(){return p(!0)},children:(0,y.jsx)(\"span\",{children:\"Reset Cache\"})})})]})}):0]}))}function rO(e){var n=e.children,t=e.prefix,r=rw(e,[\"children\",\"prefix\"]);return(0,y.jsxs)(\"div\",{className:\"select-button\",children:[t,(0,y.jsx)(\"select\",rx(ry({},r),{children:n})),(0,y.jsx)(rE,{})]})}function rC(e){switch(e.theme){case\"system\":return(0,y.jsx)(re,{});case\"dark\":return(0,y.jsx)(t7,{});case\"light\":return(0,y.jsx)(t8,{});default:return null}}var rS=ei(rk());function rE(){return(0,y.jsx)(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",\"aria-hidden\":!0,children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z\",fill:\"currentColor\"})})}function r_(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function rP(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function rz(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function rL(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function rT(e){return function(e){if(Array.isArray(e))return r_(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||rR(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rR(e,n){if(e){if(\"string\"==typeof e)return r_(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return r_(e,n)}}function rN(e){var n=e.children,t=e.padding,r=e.position,o=e.setPosition,a=e.onDragStart,i=e.dragHandleSelector,l=e.disableDrag,s=rL(e,[\"children\",\"padding\",\"position\",\"setPosition\",\"onDragStart\",\"dragHandleSelector\",\"disableDrag\"]),c=function(e){var n=(0,x.useRef)(null),t=(0,x.useRef)({state:\"idle\"}),r=(0,x.useRef)(null),o=(0,x.useRef)({x:0,y:0}),a=(0,x.useRef)({x:0,y:0}),i=(0,x.useRef)(0),l=(0,x.useRef)([]),s=(0,x.useCallback)(function(){var e,o;\"drag\"===t.current.state&&(null==(o=n.current)||o.releasePointerCapture(t.current.pointerId)),t.current=\"drag\"===t.current.state?{state:\"drag-end\"}:{state:\"idle\"},null!==r.current&&(r.current(),r.current=null),l.current=[],null==(e=n.current)||e.classList.remove(\"dev-tools-grabbing\")},[]);function c(e){n.current&&(a.current=e,n.current.style.translate=\"\".concat(e.x,\"px \").concat(e.y,\"px\"))}function u(e){if(\"drag-end\"===t.current.state){var r;e.preventDefault(),e.stopPropagation(),t.current={state:\"idle\"},null==(r=n.current)||r.removeEventListener(\"click\",u)}}function d(r){if(\"press\"===t.current.state){var s,u,d,f,p=r.clientX-o.current.x,h=r.clientY-o.current.y;Math.sqrt(p*p+h*h)>=e.threshold&&(t.current={state:\"drag\",pointerId:r.pointerId},null==(u=n.current)||u.setPointerCapture(r.pointerId),null==(d=n.current)||d.classList.add(\"dev-tools-grabbing\"),null==(f=e.onDragStart)||f.call(e))}if(\"drag\"===t.current.state){var g={x:r.clientX,y:r.clientY},m=g.x-o.current.x,v=g.y-o.current.y;o.current=g,c({x:a.current.x+m,y:a.current.y+v});var b=Date.now();b-i.current>=10&&(l.current=rT(l.current.slice(-5)).concat([{position:g,timestamp:b}])),i.current=b,null==(s=e.onDrag)||s.call(e,a.current)}}function f(){var n,t=function(e){if(e.length<2)return{x:0,y:0};var n=e[0],t=e[e.length-1],r=t.timestamp-n.timestamp;return 0===r?{x:0,y:0}:{x:1e3*((t.position.x-n.position.x)/r),y:1e3*((t.position.y-n.position.y)/r)}}(l.current);s(),null==(n=e.onDragEnd)||n.call(e,a.current,t)}return(0,x.useLayoutEffect)(function(){e.disabled&&s()},[s,e.disabled]),{ref:n,onPointerDown:function(a){var i,l;0===a.button&&(l=a.target,(!e.dragHandleSelector||!n.current||!l||l.matches&&l.matches(e.dragHandleSelector))&&(o.current={x:a.clientX,y:a.clientY},t.current={state:\"press\"},window.addEventListener(\"pointermove\",d),window.addEventListener(\"pointerup\",f),null!==r.current&&(r.current(),r.current=null),r.current=function(){window.removeEventListener(\"pointermove\",d),window.removeEventListener(\"pointerup\",f)},null==(i=n.current)||i.addEventListener(\"click\",u)))},animate:function(t){var r=n.current;null!==r&&(r.style.transition=\"translate 491.22ms var(--timing-bounce)\",r.addEventListener(\"transitionend\",function n(o){if(\"translate\"===o.propertyName){var i;null==(i=e.onAnimationEnd)||i.call(e,t),a.current={x:0,y:0},r.style.transition=\"\",r.removeEventListener(\"transitionend\",n)}}),c(t.translation))}}}({disabled:void 0!==l&&l,threshold:5,onDragStart:a,onDragEnd:function(e,n){var o,a,i,l,s,c,f,p,h,g,m,v,b,y,x,w,j,k,A;if(0===Math.sqrt(e.x*e.x+e.y*e.y)){null==(o=u.current)||o.style.removeProperty(\"translate\");return}d((y=(a={x:e.x+rD(n.x),y:e.y+rD(n.y)}).x,x=a.y,j=Object.entries(w=(p=2*t,h=(null==(c=u.current)?void 0:c.offsetWidth)||0,g=(null==(f=u.current)?void 0:f.offsetHeight)||0,m=window.innerWidth-document.documentElement.clientWidth,{\"top-left\":{x:0-(v=(l=(i=r).includes(\"right\"),s=i.includes(\"bottom\"),{x:l?window.innerWidth-m-p-h:0,y:s?window.innerHeight-p-g:0})).x,y:0-v.y},\"top-right\":{x:window.innerWidth-m-p-h-v.x,y:0-v.y},\"bottom-left\":{x:0-v.x,y:window.innerHeight-p-g-v.y},\"bottom-right\":{x:window.innerWidth-m-p-h-v.x,y:window.innerHeight-p-g-v.y}})).map(function(e){var n,t,r=(t=2,function(e){if(Array.isArray(e))return e}(n=e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||rR(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),o=r[0],a=r[1];return{key:o,distance:Math.sqrt(Math.pow(y-a.x,2)+Math.pow(x-a.y,2))}}),k=(b=Math).min.apply(b,rT(j.map(function(e){return e.distance}))),(A=j.find(function(e){return e.distance===k}))?{translation:w[A.key],corner:A.key}:{corner:r,translation:w[r]}))},onAnimationEnd:function(e){var n=e.corner;setTimeout(function(){var e;null==(e=u.current)||e.style.removeProperty(\"translate\"),o(n)})},dragHandleSelector:i}),u=c.ref,d=c.animate,f=rL(c,[\"ref\",\"animate\"]);return(0,y.jsx)(\"div\",rz(rP(rz(rP({},s),{ref:u}),f),{style:{touchAction:\"none\"},children:n}))}function rD(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.999;return e/1e3*n/(1-n)}function rB(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function rM(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function rI(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){rM(e,n,t[n])})}return e}function rH(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function rF(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return rB(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return rB(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function rU(e){var n=e.state,t=e.errorCount,r=e.isBuildError,o=rH(e,[\"state\",\"errorCount\",\"isBuildError\"]),a=rF((0,x.useState)(!0),2),i=a[0],l=a[1];return(0,y.jsx)(r$,rI({routerType:n.routerType,semver:n.versionInfo.installed,issueCount:t,isDevBuilding:n.buildingIndicator,isDevRendering:n.renderingIndicator,isStaticRoute:n.staticIndicator,hide:function(){l(!1),fetch(\"/__nextjs_disable_dev_indicator\",{method:\"POST\"})},toggleVisibility:function(){l(!i)},isTurbopack:!!false,disabled:n.disableDevIndicator||!i,isBuildError:r,page:n.page},o))}var rV=(0,x.createContext)({}),rq={Root:\"root\",Turbo:\"turbo\",Route:\"route\",Preferences:\"preferences\",SegmentExplorer:\"segment-explorer\"},rW= false?0:function(){return null};function r$(e){var n,t,r,o,a,i,l,s=e.routerType,c=e.disabled,u=e.issueCount,d=e.isDevBuilding,f=e.isDevRendering,p=e.isStaticRoute,h=e.isTurbopack,g=e.isBuildError,m=e.hide,v=e.toggleVisibility,b=e.dispatch,w=e.scale,j=e.setScale,k=e.page,A=(0,x.useRef)(null),O=(0,x.useRef)(null),C=(0,x.useRef)(null),S=rF((0,x.useState)(null),2),E=S[0],_=S[1],P=rF((0,x.useState)(\"undefined\"!=typeof localStorage&&localStorage.getItem(G)?localStorage.getItem(G):rr),2),z=P[0],L=P[1],T=rF((0,x.useState)(-1),2),R=T[0],N=T[1],D=rF((t=(n=rt((0,x.useState)(function(){if(\"undefined\"==typeof localStorage)return null;var e=localStorage.getItem(ro);return e||null}()),2))[0],r=n[1],[t,function(e){r(e),null===e?localStorage.removeItem(ro):localStorage.setItem(ro,e)}]),2),B=D[0],I=D[1],F=E===rq.Root,U=E===rq.Turbo,V=E===rq.Route,q=E===rq.Preferences,W=E===rq.SegmentExplorer,$=(0,tJ.N)(F,{enterDelay:0,exitDelay:nQ.K7}),Z=$.mounted,Y=$.rendered;function X(e){if(\"first\"===e)return void setTimeout(function(){var e,n=null==(e=O.current)?void 0:e.querySelectorAll('[role=\"menuitem\"]');n&&X(Number(n[0].getAttribute(\"data-index\")))});if(\"last\"===e)return void setTimeout(function(){var e,n=null==(e=O.current)?void 0:e.querySelectorAll('[role=\"menuitem\"]');n&&X(n.length-1)});var n,t=null==(n=O.current)?void 0:n.querySelector('[data-index=\"'.concat(e,'\"]'));t&&(N(e),null==t||t.focus())}function K(){_(rq.Root),setTimeout(function(){X(R)},nQ.K7)}function Q(){_(function(e){return e===rq.Root?null:e})}(0,nQ.P5)(O,C,F),(0,nQ.O8)(O,C,Z,Q),o=B?rM({},B,function(){v();var e=A.current;e&&(e.dataset.hidden=\"true\"===e.dataset.hidden?\"false\":\"true\")}):{},a=C,(0,x.useEffect)(function(){var e=function(e){if(n=a,!(t=(0,nQ.vY)(n.current))||\"true\"!==t.contentEditable&&\"INPUT\"!==t.tagName&&\"TEXTAREA\"!==t.tagName&&\"SELECT\"!==t.tagName&&\"true\"!==t.dataset[\"shortcut-recorder\"]||t.hasAttribute(\"readonly\")){var n,t,r=[];e.metaKey&&r.push(\"Meta\"),e.ctrlKey&&r.push(\"Control\"),e.altKey&&r.push(\"Alt\"),e.shiftKey&&r.push(\"Shift\"),\"Meta\"!==e.key&&\"Control\"!==e.key&&\"Alt\"!==e.key&&\"Shift\"!==e.key&&r.push(e.key);var i=r.join(\"+\");o[i]&&(e.preventDefault(),o[i]())}};return window.addEventListener(\"keydown\",e),function(){return window.removeEventListener(\"keydown\",e)}},[o]),(0,x.useEffect)(function(){if(null===E){var e=setTimeout(function(){N(-1)},nQ.K7);return function(){return clearTimeout(e)}}},[E]);var J=rF(z.split(\"-\",2),2),ee=J[0],en=J[1],et=(rM(i={},ee,\"calc(100% + 8px)\"),rM(i,en,0),i);return(0,y.jsxs)(tR,{ref:A,\"data-nextjs-toast\":!0,style:(rM(l={\"--animate-out-duration-ms\":\"\".concat(nQ.K7,\"ms\"),\"--animate-out-timing-function\":nQ.uD,boxShadow:\"none\"},ee,\"\".concat(20,\"px\")),rM(l,en,\"\".concat(20,\"px\")),l),children:[(0,y.jsx)(rN,{padding:20,onDragStart:function(){return _(null)},position:z,setPosition:function(e){localStorage.setItem(G,e),L(e)},children:(0,y.jsx)(tY,{ref:C,\"aria-haspopup\":\"menu\",\"aria-expanded\":F,\"aria-controls\":\"nextjs-dev-tools-menu\",\"aria-label\":\"\".concat(F?\"Close\":\"Open\",\" Next.js Dev Tools\"),\"data-nextjs-dev-tools-button\":!0,disabled:c,issueCount:u,onTriggerClick:function(){E===rq.Root?_(null):(_(rq.Root),setTimeout(function(){X(\"first\")}))},toggleErrorOverlay:function(){b({type:H})},isDevBuilding:d,isDevRendering:f,isBuildError:g,scale:w})}),(0,y.jsx)(t3,{isOpen:V,close:K,triggerRef:C,style:et,routerType:s,routeType:p?\"Static\":\"Dynamic\"}),(0,y.jsx)(t1,{isOpen:U,close:K,triggerRef:C,style:et}),(0,y.jsx)(rA,{isOpen:q,close:K,triggerRef:C,style:et,hide:function(){_(null),m()},setPosition:L,position:z,scale:w,setScale:j,hideShortcut:B,setHideShortcut:I}), false?0:null,Z&&(0,y.jsx)(\"div\",{ref:O,id:\"nextjs-dev-tools-menu\",role:\"menu\",dir:\"ltr\",\"aria-orientation\":\"vertical\",\"aria-label\":\"Next.js Dev Tools Items\",tabIndex:-1,className:\"dev-tools-indicator-menu\",onKeyDown:function(e){switch(e.preventDefault(),e.key){case\"ArrowDown\":X(R+1);break;case\"ArrowUp\":X(R-1);break;case\"Home\":X(\"first\");break;case\"End\":X(\"last\")}},\"data-rendered\":Y,style:et,children:(0,y.jsxs)(rV.Provider,{value:{closeMenu:Q,selectedIndex:R,setSelectedIndex:N},children:[(0,y.jsxs)(\"div\",{className:\"dev-tools-indicator-inner\",children:[u>0&&(0,y.jsx)(rY,{title:\"\".concat(u,\" \").concat(1===u?\"issue\":\"issues\",\" found. Click to view details in the dev overlay.\"),index:0,label:\"Issues\",value:(0,y.jsx)(rX,{children:u}),onClick:function(){_(null),u>0&&b({type:M})}}),(0,y.jsx)(rY,{title:\"Current route is \".concat(p?\"static\":\"dynamic\",\".\"),label:\"Route\",index:1,value:p?\"Static\":\"Dynamic\",onClick:function(){return _(rq.Route)},\"data-nextjs-route-type\":p?\"static\":\"dynamic\"}),h?(0,y.jsx)(rY,{title:\"Turbopack is enabled.\",label:\"Turbopack\",value:\"Enabled\"}):(0,y.jsx)(rY,{index:2,title:\"Learn about Turbopack and how to enable it in your application.\",label:\"Try Turbopack\",value:(0,y.jsx)(rZ,{}),onClick:function(){return _(rq.Turbo)}})]}),(0,y.jsxs)(\"div\",{className:\"dev-tools-indicator-footer\",children:[(0,y.jsx)(rY,{\"data-preferences\":!0,label:\"Preferences\",value:(0,y.jsx)(t6,{}),onClick:function(){return _(rq.Preferences)},index:h?2:3}), false?0:null]})]})})]})}function rZ(){return(0,y.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",children:(0,y.jsx)(\"path\",{fill:\"#666\",fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M5.50011 1.93945L6.03044 2.46978L10.8537 7.293C11.2442 7.68353 11.2442 8.31669 10.8537 8.70722L6.03044 13.5304L5.50011 14.0608L4.43945 13.0001L4.96978 12.4698L9.43945 8.00011L4.96978 3.53044L4.43945 3.00011L5.50011 1.93945Z\"})})}function rY(e){var n,t,r=e.index,o=e.label,a=e.value,i=e.onClick,l=e.href,s=rH(e,[\"index\",\"label\",\"value\",\"onClick\",\"href\"]),c=\"function\"==typeof i||\"string\"==typeof l,u=(0,x.useContext)(rV),d=u.closeMenu,f=u.selectedIndex,p=u.setSelectedIndex,h=f===r;function g(){c&&(null==i||i(),d(),l&&window.open(l,\"_blank\",\"noopener, noreferrer\"))}return(0,y.jsxs)(\"div\",(n=rI({className:\"dev-tools-indicator-item\",\"data-index\":r,\"data-selected\":h,onClick:g,onMouseMove:function(){c&&void 0!==r&&f!==r&&p(r)},onMouseLeave:function(){return p(-1)},onKeyDown:function(e){(\"Enter\"===e.key||\" \"===e.key)&&g()},role:c?\"menuitem\":void 0,tabIndex:h?0:-1},s),t=t={children:[(0,y.jsx)(\"span\",{className:\"dev-tools-indicator-label\",children:o}),(0,y.jsx)(\"span\",{className:\"dev-tools-indicator-value\",children:a})]},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function rX(e){var n=e.children;return(0,y.jsxs)(\"span\",{className:\"dev-tools-indicator-issue-count\",\"data-has-issues\":n>0,children:[(0,y.jsx)(\"span\",{className:\"dev-tools-indicator-issue-count-indicator\"}),n]})}function rK(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({xmlns:\"http://www.w3.org/2000/svg\",fill:\"currentColor\"},e),t=t={children:(0,y.jsx)(\"path\",{d:\"M4.30969 8.37891H2.38782C2.9805 10.3647 4.82188 11.8124 7.00012 11.8125C8.81977 11.8124 10.4043 10.8024 11.2228 9.30957L11.5382 8.73438L12.6896 9.36523L12.3741 9.94043L12.1681 10.2891C11.0815 11.993 9.17324 13.1249 7.00012 13.125C4.42207 13.1249 2.21747 11.5322 1.3136 9.27734V11.375H0.00109863V7.72266L0.0147705 7.58984C0.0760304 7.29089 0.340278 7.06641 0.657349 7.06641H4.30969V8.37891ZM7.00012 0.875C9.57685 0.875118 11.7819 2.46569 12.6866 4.71875V2.625H13.9991V6.27734C13.9991 6.63974 13.7053 6.93354 13.3429 6.93359H9.68958V5.62109H11.6115C11.0186 3.6356 9.17813 2.18763 7.00012 2.1875C5.17131 2.18757 3.57959 3.20771 2.76477 4.71289L2.45227 5.29004L1.29797 4.66504L1.61047 4.08789C2.64547 2.17605 4.67052 0.875068 7.00012 0.875Z\",fill:\"#A35200\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function rQ(e){return e.showButton?(0,y.jsxs)(\"button\",{className:\"restart-dev-server-button\",onClick:function(){fetch(\"/__nextjs_restart_dev?invalidatePersistentCache\",{method:\"POST\"}).then(function(){})},title:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\",children:[(0,y.jsx)(rK,{width:14,height:14}),\"Clear Bundler Cache & Restart\"]}):null}function rG(){var e,n,t=(e=[\"\\n [data-nextjs-version-staleness-indicator='fresh'] {\\n fill: var(--color-green-800);\\n stroke: var(--color-green-300);\\n }\\n [data-nextjs-version-staleness-indicator='stale'] {\\n fill: var(--color-amber-800);\\n stroke: var(--color-amber-300);\\n }\\n [data-nextjs-version-staleness-indicator='outdated'] {\\n fill: var(--color-red-800);\\n stroke: var(--color-red-300);\\n }\\n [data-nextjs-version-staleness-indicator='unknown'] {\\n fill: var(--color-gray-800);\\n stroke: var(--color-gray-300);\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return rG=function(){return t},t}function rJ(e){var n=e.versionInfo,t=n.staleness,r=nB(n),o=r.text,a=r.indicatorClass,i=r.title;return t.startsWith(\"stale\")?(0,y.jsxs)(\"a\",{\"data-nextjs-devtools-panel-footer-tab\":!0,target:\"_blank\",rel:\"noopener noreferrer\",href:\"https://nextjs.org/docs/messages/version-staleness\",title:i,children:[(0,y.jsx)(nM,{\"data-nextjs-version-staleness-indicator\":a}),(0,y.jsx)(\"span\",{children:o})]}):(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-footer-tab\":!0,title:i,children:[(0,y.jsx)(nM,{\"data-nextjs-version-staleness-indicator\":a}),(0,y.jsx)(\"span\",{children:o})]})}var r0=ei(rG());function r1(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-footer] {\\n background-color: var(--color-background-200);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n border-top: 1px solid var(--color-gray-400);\\n border-radius: 0 0 var(--rounded-xl) var(--rounded-xl);\\n height: auto;\\n }\\n\\n [data-nextjs-devtools-panel-footer-tab-group] {\\n display: flex;\\n align-items: center;\\n }\\n\\n [data-nextjs-devtools-panel-footer-tab] {\\n display: flex;\\n align-items: center;\\n padding: 12px;\\n gap: 8px;\\n align-self: stretch;\\n border-right: 1px solid var(--color-gray-400);\\n\\n color: var(--color-gray-900);\\n font-size: 12px;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-devtools-panel-footer-tab-bundler-name='TURBOPACK'] {\\n background: linear-gradient(\\n to right,\\n var(--color-turbopack-text-red) 0%,\\n var(--color-turbopack-text-blue) 100%\\n );\\n background-clip: text;\\n -webkit-background-clip: text;\\n -webkit-text-fill-color: transparent;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return r1=function(){return t},t}function r2(e){var n=e.versionInfo,t=e.isDraggable,r=e.showRestartServerButton,o=(\"Webpack\"||0).toUpperCase();return(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-footer\":!0,\"data-nextjs-devtools-panel-draggable\":t,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-footer-tab-group\":!0,children:[(0,y.jsx)(rJ,{versionInfo:n}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-footer-tab\":!0,children:[(0,y.jsx)(\"span\",{\"data-nextjs-devtools-panel-footer-tab-bundler-name\":o,children:o}),(0,y.jsx)(\"span\",{\"data-nextjs-devtools-panel-footer-tab-bundler-status\":!0,children:\"enabled\"})]})]}),r&&(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-footer-tab-group\":!0,children:(0,y.jsx)(rQ,{showButton:!0})})]})}var r4=ei(r1());function r5(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",\"aria-hidden\":!0},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function r3(e){var n,t,r=e.children,o=e.prefix,a=function(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}(e,[\"children\",\"prefix\"]);return(0,y.jsxs)(\"div\",{\"data-nextjs-select\":!0,children:[o,(0,y.jsx)(\"select\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},a),t=t={children:r},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n)),(0,y.jsx)(r5,{width:16,height:16})]})}function r6(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function r9(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return r6(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return r6(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function r8(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-settings] {\\n padding: 16px;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section]:first-child {\\n padding-top: 0;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section] {\\n padding: 12px 0;\\n border-bottom: 1px solid var(--color-gray-400);\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n gap: 24px;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section]:last-child {\\n padding-bottom: 0;\\n border-bottom: none;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section-header] {\\n margin-bottom: 0;\\n flex: 1;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section-header] label {\\n font-size: var(--size-14);\\n font-weight: 500;\\n color: var(--color-gray-1000);\\n margin: 0;\\n }\\n\\n [data-nextjs-devtools-panel-settings-section-description] {\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n margin: 0;\\n }\\n\\n [data-nextjs-select],\\n [data-nextjs-devtools-panel-settings-section-action-button] {\\n display: flex;\\n align-items: center;\\n gap: 8px;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-lg);\\n font-weight: 400;\\n font-size: var(--size-14);\\n color: var(--color-gray-1000);\\n padding: 6px 8px;\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n }\\n\\n [data-nextjs-select] {\\n &:focus-within {\\n outline: var(--focus-ring);\\n }\\n\\n select {\\n all: unset;\\n }\\n\\n option {\\n color: var(--color-gray-1000);\\n background: var(--color-background-100);\\n }\\n }\\n\\n :global(.icon) {\\n width: 18px;\\n height: 18px;\\n color: #666;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return r8=function(){return t},t}function r7(e){switch(e.theme){case\"system\":return(0,y.jsx)(re,{});case\"dark\":return(0,y.jsx)(t7,{});case\"light\":return(0,y.jsx)(t8,{});default:return null}}function oe(e){var n=e.devToolsPosition,t=e.scale,r=e.handlePositionChange,o=e.handleScaleChange,a=r9((0,x.useState)(function(){if(\"undefined\"==typeof localStorage)return\"system\";var e=localStorage.getItem(Q);return\"dark\"===e||\"light\"===e?e:\"system\"}()),2),i=a[0],l=a[1];function s(e){var n=\"/__nextjs_restart_dev\";e&&(n=\"/__nextjs_restart_dev?invalidatePersistentCache\"),fetch(n,{method:\"POST\"}).then(function(){})}return(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{htmlFor:\"theme\",children:\"Theme\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Select your theme preference.\"})]}),(0,y.jsxs)(r3,{id:\"theme\",name:\"theme\",prefix:(0,y.jsx)(r7,{theme:i}),value:i,onChange:function(e){var n=document.querySelector(\"nextjs-portal\");if(n){if(l(e.target.value),\"system\"===e.target.value){n.classList.remove(\"dark\"),n.classList.remove(\"light\"),localStorage.removeItem(Q);return}\"dark\"===e.target.value?(n.classList.add(\"dark\"),n.classList.remove(\"light\"),localStorage.setItem(Q,\"dark\")):(n.classList.remove(\"dark\"),n.classList.add(\"light\"),localStorage.setItem(Q,\"light\"))}},children:[(0,y.jsx)(\"option\",{value:\"system\",children:\"System\"}),(0,y.jsx)(\"option\",{value:\"light\",children:\"Light\"}),(0,y.jsx)(\"option\",{value:\"dark\",children:\"Dark\"})]})]}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{htmlFor:\"position\",children:\"Position\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Adjust the placement of your dev tools.\"})]}),(0,y.jsxs)(r3,{id:\"position\",name:\"position\",value:n,onChange:r,children:[(0,y.jsx)(\"option\",{value:\"bottom-left\",children:\"Bottom Left\"}),(0,y.jsx)(\"option\",{value:\"bottom-right\",children:\"Bottom Right\"}),(0,y.jsx)(\"option\",{value:\"top-left\",children:\"Top Left\"}),(0,y.jsx)(\"option\",{value:\"top-right\",children:\"Top Right\"})]})]}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{htmlFor:\"size\",children:\"Size\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Adjust the size of your dev tools.\"})]}),(0,y.jsx)(r3,{id:\"size\",name:\"size\",value:t,onChange:o,children:Object.entries(S).map(function(e){var n=r9(e,2),t=n[0],r=n[1];return(0,y.jsx)(\"option\",{value:r,children:t},t)})})]}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{id:\"hide-dev-tools\",children:\"Hide Dev Tools for this session\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Hide Dev Tools until you restart your dev server, or 1 day.\"})]}),(0,y.jsx)(\"div\",{children:(0,y.jsxs)(\"button\",{\"aria-describedby\":\"hide-dev-tools\",name:\"hide-dev-tools\",\"data-hide-dev-tools\":!0,\"data-nextjs-devtools-panel-settings-section-action-button\":!0,onClick:function(){fetch(\"/__nextjs_disable_dev_indicator\",{method:\"POST\"})},children:[(0,y.jsx)(t9,{}),(0,y.jsx)(\"span\",{children:\"Hide\"})]})})]}),(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{children:\"Disable Dev Tools for this project\"}),(0,y.jsxs)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:[\"To disable this UI completely, set\",\" \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"devIndicators: false\"}),\" in your \",(0,y.jsx)(\"code\",{className:\"dev-tools-info-code\",children:\"next.config\"}),\" file.\"]})]})}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{id:\"restart-dev-server\",children:\"Restart Dev Server\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Restarts the development server without needing to leave the browser.\"})]}),(0,y.jsx)(\"div\",{children:(0,y.jsx)(\"button\",{\"aria-describedby\":\"restart-dev-server\",title:\"Restarts the development server without needing to leave the browser.\",name:\"restart-dev-server\",\"data-restart-dev-server\":!0,\"data-nextjs-devtools-panel-settings-section-action-button\":!0,onClick:function(){return s(!1)},children:(0,y.jsx)(\"span\",{children:\"Restart\"})})})]}),process.env.__NEXT_TURBOPACK_PERSISTENT_CACHE?(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-settings-section-header\":!0,children:[(0,y.jsx)(\"label\",{id:\"reset-bundler-cache\",children:\"Reset Bundler Cache\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-settings-section-description\":!0,children:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\"})]}),(0,y.jsx)(\"div\",{children:(0,y.jsx)(\"button\",{\"aria-describedby\":\"reset-bundler-cache\",title:\"Clears the bundler cache and restarts the dev server. Helpful if you are seeing stale errors or changes are not appearing.\",name:\"reset-bundler-cache\",\"data-reset-bundler-cache\":!0,\"data-nextjs-devtools-panel-settings-section-action-button\":!0,onClick:function(){return s(!0)},children:(0,y.jsx)(\"span\",{children:\"Reset Cache\"})})})]}):null]})}var on=ei(r8());function ot(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar] {\\n height: var(--size-12);\\n border-radius: 100px;\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar='1'] {\\n width: 75%;\\n margin-bottom: 8px;\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar='2'] {\\n width: 36.5%;\\n }\\n\\n @keyframes skeleton-shimmer {\\n 0% {\\n background-position: -200% 0;\\n }\\n 100% {\\n background-position: 200% 0;\\n }\\n }\\n\\n /* Respect user's motion preferences */\\n @media (prefers-reduced-motion: reduce) {\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar='1'],\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar='2'] {\\n animation: none;\\n background: var(--color-gray-200);\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ot=function(){return t},t}function or(){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar\":\"1\"}),(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-sidebar-frame-skeleton-bar\":\"2\"})]})}var oo=ei(ot());function oa(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-tab-issues-sidebar] {\\n display: flex;\\n flex-direction: column;\\n gap: 4px;\\n padding: 8px;\\n border-right: 1px solid var(--color-gray-400);\\n overflow-y: auto;\\n min-height: 0;\\n\\n @media (max-width: 575px) {\\n max-width: 112px;\\n }\\n\\n @media (min-width: 576px) {\\n max-width: 138px;\\n width: 100%;\\n }\\n\\n @media (min-width: 768px) {\\n max-width: 172.5px;\\n width: 100%;\\n }\\n\\n @media (min-width: 992px) {\\n max-width: 230px;\\n width: 100%;\\n }\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame] {\\n display: flex;\\n flex-direction: column;\\n padding: 10px 8px;\\n border-radius: var(--rounded-lg);\\n transition: background-color 0.2s ease-in-out;\\n\\n &:hover {\\n background-color: var(--color-gray-200);\\n }\\n\\n &:active {\\n background-color: var(--color-gray-300);\\n }\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-active='true'] {\\n background-color: var(--color-gray-100);\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-error-type] {\\n display: inline-block;\\n align-self: flex-start;\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-20);\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-source] {\\n display: inline-block;\\n align-self: flex-start;\\n color: var(--color-gray-900);\\n font-size: var(--size-13);\\n line-height: var(--size-18);\\n }\\n\\n /* Ellipsis for long stack frame source or small devices. */\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-error-type],\\n [data-nextjs-devtools-panel-tab-issues-sidebar-frame-source] {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n max-width: 100%;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return oa=function(){return t},t}function oi(e){var n=e.runtimeErrors,t=e.activeIdx,r=e.setActiveIndex;return 0===n.length?null:(0,y.jsx)(\"aside\",{\"data-nextjs-devtools-panel-tab-issues-sidebar\":!0,children:n.map(function(e,n){var o=n===t;return(0,y.jsx)(os,{runtimeError:e,idx:n,isActive:o,setActiveIndex:r},n)})})}var ol=(0,x.memo)(function(e){var n=e.runtimeError,t=tj(n),r=(0,x.useMemo)(function(){var e,n=t.findIndex(function(e){return!e.ignored&&!!e.originalCodeFrame&&!!e.originalStackFrame});return null!=(e=t[n])?e:null},[t]);if(!(null==r?void 0:r.originalStackFrame))return null;var o=tz(n.error,n.type),a=eS(r.originalStackFrame);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(\"span\",{\"data-nextjs-devtools-panel-tab-issues-sidebar-frame-error-type\":!0,children:o}),(0,y.jsx)(\"span\",{\"data-nextjs-devtools-panel-tab-issues-sidebar-frame-source\":!0,children:a})]})}),os=(0,x.memo)(function(e){var n=e.runtimeError,t=e.idx,r=e.isActive,o=e.setActiveIndex;return(0,y.jsx)(\"button\",{\"data-nextjs-devtools-panel-tab-issues-sidebar-frame\":!0,\"data-nextjs-devtools-panel-tab-issues-sidebar-frame-active\":r,onClick:function(){return o(t)},children:(0,y.jsx)(x.Suspense,{fallback:(0,y.jsx)(or,{}),children:(0,y.jsx)(ol,{runtimeError:n})})})}),oc=ei(oa());function ou(){var e,n,t=(e=[\"\\n [data-nextjs-codeframe-skeleton] {\\n margin: 8px 0;\\n border-radius: 8px;\\n background-color: var(--color-background-200);\\n border: 1px solid var(--color-gray-400);\\n overflow: hidden;\\n }\\n\\n [data-nextjs-codeframe-skeleton-header] {\\n display: flex;\\n align-items: center;\\n padding: 12px;\\n border-bottom: 1px solid var(--color-gray-400);\\n border-radius: 8px 8px 0 0;\\n gap: 6px;\\n }\\n\\n [data-nextjs-codeframe-skeleton-icon] {\\n width: var(--size-16);\\n height: var(--size-16);\\n border-radius: 4px;\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n flex-shrink: 0;\\n }\\n\\n [data-nextjs-codeframe-skeleton-header-bar] {\\n width: 42.9%;\\n }\\n\\n [data-nextjs-codeframe-skeleton-button] {\\n width: var(--size-16);\\n height: var(--size-16);\\n border-radius: var(--rounded-full);\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n flex-shrink: 0;\\n }\\n\\n [data-nextjs-codeframe-skeleton-content] {\\n padding: 12px;\\n }\\n\\n [data-nextjs-codeframe-skeleton-line] {\\n height: var(--size-16);\\n border-radius: 100px;\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n margin-bottom: 8px;\\n }\\n\\n [data-nextjs-codeframe-skeleton-line]:last-child {\\n margin-bottom: 0;\\n }\\n\\n [data-nextjs-codeframe-skeleton-line-1] {\\n width: 32.5%;\\n }\\n\\n [data-nextjs-codeframe-skeleton-line-2] {\\n width: 56.8%;\\n }\\n\\n [data-nextjs-codeframe-skeleton-line-3] {\\n width: 29.6%;\\n }\\n\\n [data-nextjs-call-stack-container] {\\n position: relative;\\n margin-top: 8px;\\n }\\n\\n [data-nextjs-call-stack-count-skeleton] {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n width: var(--size-20);\\n height: var(--size-20);\\n border-radius: var(--rounded-full);\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n }\\n\\n [data-nextjs-call-stack-ignored-list-toggle-button-skeleton] {\\n all: unset;\\n display: flex;\\n align-items: center;\\n border-radius: 6px;\\n padding: 4px 6px;\\n margin-right: -6px;\\n }\\n\\n [data-nextjs-call-stack-skeleton-bar] {\\n height: var(--size-12);\\n width: 148px;\\n border-radius: 100px;\\n background: linear-gradient(\\n 90deg,\\n var(--color-gray-200) 25%,\\n var(--color-gray-100) 50%,\\n var(--color-gray-200) 75%\\n );\\n background-size: 200% 100%;\\n animation: skeleton-shimmer 1.5s ease-in-out infinite;\\n }\\n\\n @keyframes skeleton-shimmer {\\n 0% {\\n background-position: -200% 0;\\n }\\n 100% {\\n background-position: 200% 0;\\n }\\n }\\n\\n /* Respect user's motion preferences */\\n @media (prefers-reduced-motion: reduce) {\\n [data-nextjs-codeframe-skeleton-icon],\\n [data-nextjs-codeframe-skeleton-header-bar],\\n [data-nextjs-codeframe-skeleton-button],\\n [data-nextjs-codeframe-skeleton-line],\\n [data-nextjs-call-stack-count-skeleton],\\n [data-nextjs-call-stack-skeleton-bar] {\\n animation: none;\\n background: var(--color-gray-200);\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ou=function(){return t},t}function od(){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(\"div\",{\"data-nextjs-codeframe-skeleton\":!0,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-codeframe-skeleton-header\":!0,children:[(0,y.jsx)(\"div\",{\"data-nextjs-codeframe-skeleton-icon\":!0}),(0,y.jsx)(\"div\",{\"data-nextjs-codeframe-skeleton-line\":!0,\"data-nextjs-codeframe-skeleton-header-bar\":!0})]}),(0,y.jsxs)(\"div\",{\"data-nextjs-codeframe-skeleton-content\":!0,children:[(0,y.jsx)(\"div\",{\"data-nextjs-codeframe-skeleton-line\":!0,\"data-nextjs-codeframe-skeleton-line-1\":!0}),(0,y.jsx)(\"div\",{\"data-nextjs-codeframe-skeleton-line\":!0,\"data-nextjs-codeframe-skeleton-line-2\":!0}),(0,y.jsx)(\"div\",{\"data-nextjs-codeframe-skeleton-line\":!0,\"data-nextjs-codeframe-skeleton-line-3\":!0})]})]}),(0,y.jsx)(\"div\",{\"data-nextjs-call-stack-container\":!0,children:(0,y.jsxs)(\"div\",{\"data-nextjs-call-stack-header\":!0,children:[(0,y.jsxs)(\"p\",{\"data-nextjs-call-stack-title\":!0,children:[\"Call Stack\",\" \",(0,y.jsx)(\"span\",{\"data-nextjs-call-stack-count\":!0,\"data-nextjs-call-stack-count-skeleton\":!0})]}),(0,y.jsx)(\"button\",{\"data-nextjs-call-stack-ignored-list-toggle-button\":!0,\"data-nextjs-call-stack-ignored-list-toggle-button-skeleton\":!0,\"aria-hidden\":\"true\",children:(0,y.jsx)(\"div\",{\"data-nextjs-call-stack-skeleton-bar\":!0})})]})})]})}var of=ei(ou());function op(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function oh(e,n,t,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){t(e);return}l.done?n(s):Promise.resolve(s).then(r,o)}function og(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function om(){var e,n,t=(e=[\"\\n [data-nextjs-issue-feedback-button-group] {\\n display: flex;\\n align-items: center;\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-full);\\n background: var(--color-background-100);\\n box-shadow: var(--shadow-small);\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button {\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button:first-child {\\n padding: 4px 3px 4px 5px;\\n border-radius: var(--rounded-full) 0 0 var(--rounded-full);\\n }\\n\\n [data-nextjs-issue-feedback-button-group] button:last-child {\\n padding: 4px 5px 4px 3px;\\n border-radius: 0 var(--rounded-full) var(--rounded-full) 0;\\n }\\n\\n [data-nextjs-issue-feedback-separator] {\\n width: 1px;\\n height: 100%;\\n background: var(--color-gray-400);\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return om=function(){return t},t}function ov(e){var n,t,r=e.errorCode,o=(n=(0,x.useState)({}),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return op(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return op(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=o[0],i=o[1],l=a[r],s=false,c=(0,x.useCallback)(function(e){var n;return(n=function(){return function(e,n){var t,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return i.next=l(0),i.throw=l(1),i.return=l(2),\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function l(l){return function(s){var c=[l,s];if(t)throw TypeError(\"Generator is already executing.\");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,r=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=n.call(e,a)}catch(e){c=[6,e],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:i(function(n){var t,o;return t=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){og(e,n,t[n])})}return e}({},n),o=null!=(o=og({},r,e))?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t}),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,fetch(\"\".concat( false||\"\",\"/__nextjs_error_feedback?\").concat(new URLSearchParams({errorCode:r,wasHelpful:e.toString()})))];case 2:return n.sent().ok||console.error(\"Failed to record feedback on the server.\"),[3,4];case 3:return console.error(\"Failed to record feedback:\",n.sent()),[3,4];case 4:return[2]}})},function(){var e=this,t=arguments;return new Promise(function(r,o){var a=n.apply(e,t);function i(e){oh(a,r,o,i,l,\"next\",e)}function l(e){oh(a,r,o,i,l,\"throw\",e)}i(void 0)})})()},[r]);return(0,y.jsxs)(\"div\",{\"data-nextjs-issue-feedback-button-group\":!0,children:[(0,y.jsx)(\"button\",{\"aria-disabled\":s?\"true\":void 0,\"aria-label\":\"Mark as helpful\",onClick:s?void 0:function(){return c(!0)},className:(0,eJ.cx)(\"feedback-button\",!0===l&&\"voted\"),title:s?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,y.jsx)(nw,{\"aria-hidden\":\"true\"})}),(0,y.jsx)(\"div\",{\"data-nextjs-issue-feedback-separator\":!0}),(0,y.jsx)(\"button\",{\"aria-disabled\":s?\"true\":void 0,\"aria-label\":\"Mark as not helpful\",onClick:s?void 0:function(){return c(!1)},className:(0,eJ.cx)(\"feedback-button\",!1===l&&\"voted\"),title:s?\"Feedback disabled due to setting NEXT_TELEMETRY_DISABLED\":void 0,type:\"button\",children:(0,y.jsx)(nj,{\"aria-hidden\":\"true\",style:{translate:\"1px 1px\"}})})]})}var ob=ei(om());function oy(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-tab-issues-content-layout] {\\n flex: 1;\\n display: flex;\\n flex-direction: column;\\n overflow-y: auto;\\n min-height: 0;\\n padding: 14px;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return oy=function(){return t},t}function ox(e){var n=e.error,t=e.errorType,r=e.message,o=e.debugInfo,a=e.children,i=e.errorCode,l=e.environmentName;return(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-content-layout\":!0,children:[(0,y.jsxs)(\"div\",{className:\"nextjs-container-errors-header\",children:[(0,y.jsxs)(\"div\",{className:\"nextjs__container_errors__error_title\",\"data-nextjs-error-code\":i,children:[(0,y.jsxs)(\"span\",{\"data-nextjs-error-label-group\":!0,children:[(0,y.jsx)(nL,{errorType:t}),l&&(0,y.jsx)(nK,{environmentName:l})]}),(0,y.jsx)(nx,{error:n,debugInfo:o,feedbackButton:i&&(0,y.jsx)(ov,{errorCode:i})})]}),(0,y.jsx)(nz,{errorMessage:r})]}),a]})}var ow=ei(oy());function oj(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"12\",height:\"12\",viewBox:\"0 0 12 12\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.98071 1.125L1.125 3.98071L1.125 8.01929L3.98071 10.875H8.01929L10.875 8.01929V3.98071L8.01929 1.125H3.98071ZM3.82538 0C3.62647 0 3.4357 0.0790176 3.29505 0.21967L0.21967 3.29505C0.0790176 3.4357 0 3.62647 0 3.82538V8.17462C0 8.37353 0.0790178 8.5643 0.21967 8.70495L3.29505 11.7803C3.4357 11.921 3.62647 12 3.82538 12H8.17462C8.37353 12 8.5643 11.921 8.70495 11.7803L11.7803 8.70495C11.921 8.5643 12 8.37353 12 8.17462V3.82538C12 3.62647 11.921 3.4357 11.7803 3.29505L8.70495 0.21967C8.5643 0.0790177 8.37353 0 8.17462 0H3.82538ZM6.5625 2.8125V3.375V6V6.5625H5.4375V6V3.375V2.8125H6.5625ZM6 9C6.41421 9 6.75 8.66421 6.75 8.25C6.75 7.83579 6.41421 7.5 6 7.5C5.58579 7.5 5.25 7.83579 5.25 8.25C5.25 8.66421 5.58579 9 6 9Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function ok(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-tab-issues-empty] {\\n display: flex;\\n flex: 1;\\n padding: 12px;\\n min-height: 0;\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-empty-content] {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n flex: 1;\\n border: 1px dashed var(--color-gray-alpha-500);\\n border-radius: 4px;\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-empty-icon] {\\n margin-bottom: 16px;\\n padding: 8px;\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: 6px;\\n\\n background-color: var(--color-background-100);\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-empty-title] {\\n color: var(--color-gray-1000);\\n font-size: 16px;\\n font-weight: 500;\\n line-height: var(--line-height-20);\\n }\\n\\n [data-nextjs-devtools-panel-tab-issues-empty-subtitle] {\\n color: var(--color-gray-900);\\n font-size: 14px;\\n line-height: var(--line-height-21);\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ok=function(){return t},t}function oA(){return(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-empty\":!0,children:(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-empty-content\":!0,children:[(0,y.jsx)(\"div\",{\"data-nextjs-devtools-panel-tab-issues-empty-icon\":!0,children:(0,y.jsx)(oj,{width:16,height:16})}),(0,y.jsx)(\"h3\",{\"data-nextjs-devtools-panel-tab-issues-empty-title\":!0,children:\"No Issues Found\"}),(0,y.jsx)(\"p\",{\"data-nextjs-devtools-panel-tab-issues-empty-subtitle\":!0,children:\"Issues will appear here when they occur.\"})]})})}var oO=ei(ok());function oC(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function oS(){var e,n,t=(e=[\"\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return oS=function(){return t},t}function oE(e){var n=e.notes,t=e.buildError,r=e.hydrationWarning,o=e.errorDetails,a=e.activeError,i=e.errorType,l=e.debugInfo,s=e.errorCode;return t?(0,y.jsx)(oz,{message:t,debugInfo:l}):(0,y.jsx)(o_,{notes:n,hydrationWarning:r,errorDetails:o,activeError:a,errorType:i,debugInfo:l,errorCode:s})}function o_(e){var n=e.notes,t=e.hydrationWarning,r=e.errorDetails,o=e.activeError,a=e.errorType,i=e.debugInfo,l=e.errorCode;return o&&a?(0,y.jsxs)(ox,{error:o.error,errorType:a,message:o.error.message,debugInfo:i,errorCode:l,environmentName:o.error.environmentName,children:[(0,y.jsxs)(\"div\",{className:\"error-overlay-notes-container\",children:[n?(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(\"p\",{id:\"nextjs__container_errors__notes\",className:\"nextjs__container_errors__notes\",children:n})}):null,t?(0,y.jsx)(\"p\",{id:\"nextjs__container_errors__link\",className:\"nextjs__container_errors__link\",children:(0,y.jsx)(eb,{text:\"See more info here: \".concat(np)})}):null]}),(null==r?void 0:r.reactOutputComponentDiff)?(0,y.jsx)(th,{reactOutputComponentDiff:r.reactOutputComponentDiff||\"\"}):null,(0,y.jsx)(x.Suspense,{fallback:(0,y.jsx)(od,{}),children:(0,y.jsx)(oP,{error:o},o.id.toString())})]}):(0,y.jsx)(oA,{})}function oP(e){var n,t,r=e.error,o=(n=(0,x.useState)(!1),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return oC(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return oC(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),a=o[0],i=o[1],l=tj(r),s=(0,x.useMemo)(function(){return l.reduce(function(e,n){return e+ +!!n.ignored},0)},[l]),c=(0,x.useMemo)(function(){var e,n=l.findIndex(function(e){return!e.ignored&&!!e.originalCodeFrame&&!!e.originalStackFrame});return null!=(e=l[n])?e:null},[l]);return(0,y.jsxs)(y.Fragment,{children:[c&&c.originalStackFrame&&c.originalCodeFrame&&(0,y.jsx)(eq,{stackFrame:c.originalStackFrame,codeFrame:c.originalCodeFrame}),l.length>0&&(0,y.jsx)(tl,{frames:l,isIgnoreListOpen:a,onToggleIgnoreList:function(){return i(!a)},ignoredFramesTally:s})]})}function oz(e){var n=e.message,t=e.debugInfo,r=Error(n),o=(0,x.useMemo)(function(){return tt(n)||\"Failed to compile\"},[n]);return(0,y.jsx)(ox,{errorType:\"Build Error\",error:r,message:o,debugInfo:t,children:(0,y.jsx)(tn,{content:n})})}var oL=ei(oS());function oT(){var e,n,t=(e=[\"\\n [data-nextjs-devtools-panel-tab-issues] {\\n display: flex;\\n flex: 1;\\n min-height: 0;\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return oT=function(){return t},t}function oR(e){var n=e.debugInfo,t=e.runtimeErrors,r=e.getSquashedHydrationErrorDetails,o=e.buildError,a=tS({runtimeErrors:t,getSquashedHydrationErrorDetails:r}),i=a.errorCode,l=a.errorType,s=a.hydrationWarning,c=a.activeError,u=a.activeIdx,d=a.setActiveIndex,f=a.notes,p=a.errorDetails;return(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-tab-issues\":!0,children:[o?null:(0,y.jsx)(oi,{runtimeErrors:t,errorType:l,activeIdx:u,setActiveIndex:d}),(0,y.jsx)(oE,{buildError:o,notes:f,hydrationWarning:s,errorDetails:p,activeError:c,errorType:l,debugInfo:n,errorCode:i})]})}var oN=ei(oT()),oD= false?0:function(){return null};function oB(e){var n=e.routerType,t=e.page;return(0,y.jsx)(oD,{isAppRouter:\"app\"===n,page:t})}function oM(e){var n=e.routerType,t=e.page;return(0,y.jsx)(oB,{routerType:n,page:t})}function oI(e){var n=e.activeTab,t=e.devToolsPosition,r=e.scale,o=e.routerType,a=e.handlePositionChange,i=e.handleScaleChange,l=e.debugInfo,s=e.runtimeErrors,c=e.getSquashedHydrationErrorDetails,u=e.buildError,d=e.page;switch(n){case\"settings\":return(0,y.jsx)(oe,{devToolsPosition:t,scale:r,handlePositionChange:a,handleScaleChange:i});case\"route\":return(0,y.jsx)(oM,{routerType:o,page:d});case\"issues\":return(0,y.jsx)(oR,{debugInfo:l,runtimeErrors:s,getSquashedHydrationErrorDetails:c,buildError:u});default:return null}}function oH(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({width:\"12\",height:\"12\",viewBox:\"0 0 14 14\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\"},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M3.08889 11.8384L2.62486 12.3024L1.69678 11.3744L2.16082 10.9103L6.07178 6.99937L2.16082 3.08841L1.69678 2.62437L2.62486 1.69629L3.08889 2.16033L6.99986 6.07129L10.9108 2.16033L11.3749 1.69629L12.3029 2.62437L11.8389 3.08841L7.92793 6.99937L11.8389 10.9103L12.3029 11.3744L11.3749 12.3024L10.9108 11.8384L6.99986 7.92744L3.08889 11.8384Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function oF(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function oU(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function oV(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function oq(e,n){if(null==e)return{};var t,r,o=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t=a[r],n.indexOf(t)>=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)t=a[r],!(n.indexOf(t)>=0)&&Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}function oW(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return oF(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return oF(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function o$(){var e,n,t=(e=[\"\\n [data-next-badge-root] {\\n --timing: cubic-bezier(0.23, 0.88, 0.26, 0.92);\\n --duration-long: 250ms;\\n --color-outer-border: #171717;\\n --color-inner-border: hsla(0, 0%, 100%, 0.14);\\n --color-hover-alpha-subtle: hsla(0, 0%, 100%, 0.13);\\n --color-hover-alpha-error: hsla(0, 0%, 100%, 0.2);\\n --color-hover-alpha-error-2: hsla(0, 0%, 100%, 0.25);\\n --mark-size: calc(var(--size) - var(--size-2) * 2);\\n\\n --focus-color: var(--color-blue-800);\\n --focus-ring: 2px solid var(--focus-color);\\n\\n &:has([data-next-badge][data-error='true']) {\\n --focus-color: #fff;\\n }\\n }\\n\\n [data-disabled-icon] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding-right: 4px;\\n }\\n\\n [data-next-badge] {\\n -webkit-font-smoothing: antialiased;\\n width: var(--size);\\n height: var(--size);\\n display: flex;\\n align-items: center;\\n position: relative;\\n background: rgba(0, 0, 0, 0.8);\\n box-shadow:\\n 0 0 0 1px var(--color-outer-border),\\n inset 0 0 0 1px var(--color-inner-border),\\n 0px 16px 32px -8px rgba(0, 0, 0, 0.24);\\n backdrop-filter: blur(48px);\\n border-radius: var(--rounded-full);\\n user-select: none;\\n cursor: pointer;\\n scale: 1;\\n overflow: hidden;\\n will-change: scale, box-shadow, width, background;\\n transition:\\n scale var(--duration-short) var(--timing),\\n width var(--duration-long) var(--timing),\\n box-shadow var(--duration-long) var(--timing),\\n background var(--duration-short) ease;\\n\\n &:active[data-error='false'] {\\n scale: 0.95;\\n }\\n\\n &[data-animate='true']:not(:hover) {\\n scale: 1.02;\\n }\\n\\n &[data-error='false']:has([data-next-mark]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: 3px;\\n }\\n\\n &[data-error='true'] {\\n background: #ca2a30;\\n --color-inner-border: #e5484d;\\n\\n [data-next-mark] {\\n background: var(--color-hover-alpha-error);\\n outline-offset: 0px;\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-error-2);\\n }\\n }\\n }\\n\\n &[data-error-expanded='false'][data-error='true'] ~ [data-dot] {\\n scale: 1;\\n }\\n\\n > div {\\n display: flex;\\n }\\n }\\n\\n [data-issues-collapse]:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n [data-issues]:has([data-issues-open]:focus-visible) {\\n outline: var(--focus-ring);\\n outline-offset: -1px;\\n }\\n\\n [data-dot] {\\n content: '';\\n width: var(--size-8);\\n height: var(--size-8);\\n background: #fff;\\n box-shadow: 0 0 0 1px var(--color-outer-border);\\n border-radius: 50%;\\n position: absolute;\\n top: 2px;\\n right: 0px;\\n scale: 0;\\n pointer-events: none;\\n transition: scale 200ms var(--timing);\\n transition-delay: var(--duration-short);\\n }\\n\\n [data-issues] {\\n --padding-left: 8px;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n padding-left: 8px;\\n padding-right: 8px;\\n height: var(--size-32);\\n margin-right: 2px;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:has([data-issues-open]:hover) {\\n background: var(--color-hover-alpha-error);\\n }\\n\\n &:has([data-issues-collapse]) {\\n padding-right: calc(var(--padding-left) / 2);\\n }\\n\\n [data-cross] {\\n translate: 0px -1px;\\n }\\n }\\n\\n [data-issues-open] {\\n font-size: var(--size-13);\\n color: white;\\n width: fit-content;\\n height: 100%;\\n display: flex;\\n gap: 2px;\\n align-items: center;\\n margin: 0;\\n line-height: var(--size-36);\\n font-weight: 500;\\n z-index: 2;\\n white-space: nowrap;\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n }\\n\\n [data-issues-collapse] {\\n width: var(--size-24);\\n height: var(--size-24);\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-short) ease;\\n\\n &:hover {\\n background: var(--color-hover-alpha-error);\\n }\\n }\\n\\n [data-cross] {\\n color: #fff;\\n width: var(--size-12);\\n height: var(--size-12);\\n }\\n\\n [data-next-mark] {\\n width: var(--mark-size);\\n height: var(--mark-size);\\n margin: 0 2px;\\n display: flex;\\n align-items: center;\\n border-radius: var(--rounded-full);\\n transition: background var(--duration-long) var(--timing);\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n\\n &:hover {\\n background: var(--color-hover-alpha-subtle);\\n }\\n\\n svg {\\n flex-shrink: 0;\\n width: var(--size-40);\\n height: var(--size-40);\\n }\\n }\\n\\n [data-issues-count-animation] {\\n display: grid;\\n place-items: center center;\\n font-variant-numeric: tabular-nums;\\n\\n &[data-animate='false'] {\\n [data-issues-count-exit],\\n [data-issues-count-enter] {\\n animation-duration: 0ms;\\n }\\n }\\n\\n > * {\\n grid-area: 1 / 1;\\n }\\n\\n [data-issues-count-exit] {\\n animation: fadeOut 300ms var(--timing) forwards;\\n }\\n\\n [data-issues-count-enter] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n [data-issues-count-plural] {\\n display: inline-block;\\n &[data-animate='true'] {\\n animation: fadeIn 300ms var(--timing) forwards;\\n }\\n }\\n\\n .path0 {\\n animation: draw0 1.5s ease-in-out infinite;\\n }\\n\\n .path1 {\\n animation: draw1 1.5s ease-out infinite;\\n animation-delay: 0.3s;\\n }\\n\\n .paused {\\n stroke-dashoffset: 0;\\n }\\n\\n @keyframes fadeIn {\\n 0% {\\n opacity: 0;\\n filter: blur(2px);\\n transform: translateY(8px);\\n }\\n 100% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n }\\n\\n @keyframes fadeOut {\\n 0% {\\n opacity: 1;\\n filter: blur(0px);\\n transform: translateY(0);\\n }\\n 100% {\\n opacity: 0;\\n transform: translateY(-12px);\\n filter: blur(2px);\\n }\\n }\\n\\n @keyframes draw0 {\\n 0%,\\n 25% {\\n stroke-dashoffset: -29.6;\\n }\\n 25%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 29.6;\\n }\\n }\\n\\n @keyframes draw1 {\\n 0%,\\n 20% {\\n stroke-dashoffset: -11.6;\\n }\\n 20%,\\n 50% {\\n stroke-dashoffset: 0;\\n }\\n 50%,\\n 75% {\\n stroke-dashoffset: 0;\\n }\\n 75%,\\n 100% {\\n stroke-dashoffset: 11.6;\\n }\\n }\\n\\n @media (prefers-reduced-motion) {\\n [data-issues-count-exit],\\n [data-issues-count-enter],\\n [data-issues-count-plural] {\\n animation-duration: 0ms !important;\\n }\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return o$=function(){return t},t}function oZ(e){var n=e.disabled,t=e.issueCount,r=e.isDevBuilding,o=e.isDevRendering,a=e.isBuildError,i=e.onTriggerClick,l=e.toggleErrorOverlay,s=e.scale,c=oq(e,[\"disabled\",\"issueCount\",\"isDevBuilding\",\"isDevRendering\",\"isBuildError\",\"onTriggerClick\",\"toggleErrorOverlay\",\"scale\"]),u=t>0,d=oW((0,x.useState)(u),2),f=d[0],p=d[1],h=oW((0,x.useState)(!1),2),g=h[0],m=h[1],v=tM(t,150),b=(0,x.useRef)(null),w=(0,x.useRef)(null),j=tF(w),k=tD(r||o),A=f||n;return(0,x.useEffect)(function(){p(u)},[u]),(0,y.jsxs)(\"div\",{\"data-next-badge-root\":!0,style:{\"--size\":\"\".concat(36/(void 0===s?1:s),\"px\"),\"--duration-short\":\"\".concat(150,\"ms\"),display:n&&(!u||g)?\"none\":\"block\"},children:[(0,y.jsx)(\"style\",{children:ei(o$())}),(0,y.jsx)(\"div\",{\"data-next-badge\":!0,\"data-error\":u,\"data-error-expanded\":A,\"data-animate\":v,style:{width:0===j?\"auto\":j},children:(0,y.jsxs)(\"div\",{ref:w,children:[!n&&(0,y.jsx)(\"button\",oV(oU({ref:b,\"data-next-mark\":!0,\"data-next-mark-loading\":k,onClick:i},c),{children:(0,y.jsx)(oX,{isLoading:k,isDevBuilding:r})})),A&&(0,y.jsxs)(\"div\",{\"data-issues\":!0,children:[(0,y.jsxs)(\"button\",{\"data-issues-open\":!0,\"aria-label\":\"Open issues overlay\",onClick:l,children:[n&&(0,y.jsx)(\"div\",{\"data-disabled-icon\":!0,children:(0,y.jsx)(oj,{})}),(0,y.jsx)(oY,{animate:v,\"data-issues-count-animation\":!0,children:t},t),\" \",(0,y.jsxs)(\"div\",{children:[\"Issue\",t>1&&(0,y.jsx)(\"span\",{\"aria-hidden\":!0,\"data-issues-count-plural\":!0,\"data-animate\":v&&2===t,children:\"s\"})]})]}),!a&&(0,y.jsx)(\"button\",{\"data-issues-collapse\":!0,\"aria-label\":\"Collapse issues badge\",onClick:function(){var e;n?m(!0):p(!1),null==(e=b.current)||e.focus()},children:(0,y.jsx)(oH,{\"data-cross\":!0})})]})]})}),(0,y.jsx)(\"div\",{\"aria-hidden\":!0,\"data-dot\":!0})]})}function oY(e){var n=e.children,t=e.animate,r=oq(e,[\"children\",\"animate\"]);return(0,y.jsxs)(\"div\",oV(oU({},r),{\"data-animate\":void 0===t||t,children:[(0,y.jsx)(\"div\",{\"aria-hidden\":!0,\"data-issues-count-exit\":!0,children:n-1}),(0,y.jsx)(\"div\",{\"data-issues-count\":!0,\"data-issues-count-enter\":!0,children:n})]}))}function oX(e){var n=e.isLoading,t=e.isDevBuilding?\"rgba(255,255,255,0.7)\":\"white\";return(0,y.jsxs)(\"svg\",{width:\"40\",height:\"40\",viewBox:\"0 0 40 40\",fill:\"none\",\"data-next-mark-loading\":n,children:[(0,y.jsxs)(\"g\",{transform:\"translate(8.5, 13)\",children:[(0,y.jsx)(\"path\",{className:n?\"path0\":\"paused\",d:\"M13.3 15.2 L2.34 1 V12.6\",fill:\"none\",stroke:\"url(#next_logo_paint0_linear_1357_10853)\",strokeWidth:\"1.86\",mask:\"url(#next_logo_mask0)\",strokeDasharray:\"29.6\",strokeDashoffset:\"29.6\"}),(0,y.jsx)(\"path\",{className:n?\"path1\":\"paused\",d:\"M11.825 1.5 V13.1\",strokeWidth:\"1.86\",stroke:\"url(#next_logo_paint1_linear_1357_10853)\",strokeDasharray:\"11.6\",strokeDashoffset:\"11.6\"})]}),(0,y.jsxs)(\"defs\",{children:[(0,y.jsxs)(\"linearGradient\",{id:\"next_logo_paint0_linear_1357_10853\",x1:\"9.95555\",y1:\"11.1226\",x2:\"15.4778\",y2:\"17.9671\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{stopColor:t}),(0,y.jsx)(\"stop\",{offset:\"0.604072\",stopColor:t,stopOpacity:\"0\"}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:t,stopOpacity:\"0\"})]}),(0,y.jsxs)(\"linearGradient\",{id:\"next_logo_paint1_linear_1357_10853\",x1:\"11.8222\",y1:\"1.40039\",x2:\"11.791\",y2:\"9.62542\",gradientUnits:\"userSpaceOnUse\",children:[(0,y.jsx)(\"stop\",{stopColor:t}),(0,y.jsx)(\"stop\",{offset:\"1\",stopColor:t,stopOpacity:\"0\"})]}),(0,y.jsxs)(\"mask\",{id:\"next_logo_mask0\",children:[(0,y.jsx)(\"rect\",{width:\"100%\",height:\"100%\",fill:\"white\"}),(0,y.jsx)(\"rect\",{width:\"5\",height:\"1.5\",fill:\"black\"})]})]})]})}function oK(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function oQ(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function oG(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return oK(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return oK(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function oJ(e){var n,t=e.state,r=e.dispatch,o=e.errorCount,a=e.isBuildError,i=oG((0,x.useState)(!1),2),l=i[0],s=i[1],c=oG(t.devToolsPosition.split(\"-\",2),2),u=c[0],d=c[1];return(0,y.jsx)(tR,{\"data-nextjs-toast\":!0,style:(oQ(n={\"--animate-out-duration-ms\":\"\".concat(nQ.K7,\"ms\"),\"--animate-out-timing-function\":nQ.uD,boxShadow:\"none\"},u,\"\".concat(20,\"px\")),oQ(n,d,\"\".concat(20,\"px\")),oQ(n,\"visibility\",t.isDevToolsPanelOpen||t.isErrorOverlayOpen?\"hidden\":\"visible\"),n),children:(0,y.jsx)(rN,{padding:20,onDragStart:function(){return s(!1)},position:t.devToolsPosition,setPosition:function(e){r({type:Y,devToolsPosition:e}),localStorage.setItem(G,e)},children:(0,y.jsx)(oZ,{\"aria-haspopup\":\"menu\",\"aria-expanded\":l,\"aria-controls\":\"nextjs-dev-tools-menu\",\"aria-label\":\"\".concat(l?\"Close\":\"Open\",\" Next.js Dev Tools\"),\"data-nextjs-dev-tools-button\":!0,disabled:t.disableDevIndicator,issueCount:o,onTriggerClick:function(){r({type:Z})},toggleErrorOverlay:function(){r({type:M}),r({type:W})},isDevBuilding:t.buildingIndicator,isDevRendering:t.renderingIndicator,isBuildError:a,scale:t.scale})})})}function o0(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\"},e),t=t={children:(0,y.jsx)(\"path\",{d:\"M15 14C15 14.5523 14.5523 15 14 15H10V13.5H13.5V10H15V14ZM2.5 13.499H6V14.999H2C1.44772 14.999 1 14.5513 1 13.999V9.99902H2.5V13.499ZM6 2.5H2.5V6H1V2C1 1.44772 1.44772 1 2 1H6V2.5ZM14 1C14.5523 1 15 1.44772 15 2V6H13.5V2.5H10V1H14Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function o1(e){var n,t;return(0,y.jsx)(\"svg\",(n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({xmlns:\"http://www.w3.org/2000/svg\",width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\"},e),t=t={children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M1 6V4.5H4.5V1H6V5C6 5.55228 5.55228 6 5 6H1ZM11.5 1H10V5C10 5.55228 10.4477 6 11 6H15V4.5H11.5V1ZM15.04 11.5V10H11C10.4477 10 10 10.4477 10 11V15H11.5V11.5H15.04ZM4.5 15H6V11C6 10.4477 5.55228 10 5 10H1V11.5H4.5V15Z\",fill:\"currentColor\"})},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n))}function o2(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}var o4=\"nextjs-devtools-dimensions\",o5=(0,x.createContext)(null),o3=function(e){var n=.95*window.innerWidth,t=.95*window.innerHeight;return{width:Math.min(n,Math.max(e.minWidth,e.width)),height:Math.min(t,Math.max(e.minHeight,e.height))}},o6=function(){var e=localStorage.getItem(o4);if(!e)return null;try{var n,t=JSON.parse(e);if((void 0===t?\"undefined\":(n=t)&&\"undefined\"!=typeof Symbol&&n.constructor===Symbol?\"symbol\":typeof n)==\"object\"&&null!==t&&\"number\"==typeof t.width&&\"number\"==typeof t.height)return{width:t.width,height:t.height};return null}catch(e){return localStorage.removeItem(o4),null}},o9=function(e){var n,t,r,o,a=e.value,i=e.children,l=null!=(r=a.minWidth)?r:100,s=null!=(o=a.minHeight)?o:80,c=(n=(0,x.useState)(null),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return o2(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return o2(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),u=c[0],d=c[1];return(0,x.useLayoutEffect)(function(){var e=function(){if(a.resizeRef.current){var e=o6();if(e){var n,t,r=o3((n=function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({},e),t=t={minWidth:null!=l?l:100,minHeight:null!=s?s:80},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(t,e))}),n)),o=r.height,i=r.width;a.resizeRef.current.style.width=\"\".concat(i,\"px\"),a.resizeRef.current.style.height=\"\".concat(o,\"px\")}}};return e(),window.addEventListener(\"resize\",e),function(){return window.removeEventListener(\"resize\",e)}},[a.resizeRef,l,s]),(0,y.jsx)(o5.Provider,{value:{resizeRef:a.resizeRef,minWidth:l,minHeight:s,devToolsPosition:a.devToolsPosition,draggingDirection:u,setDraggingDirection:d},children:i})},o8=function(){var e=(0,x.useContext)(o5);if(!e)throw Error(\"useResize must be used within a Resize provider\");return e},o7=__nested_webpack_require_381207__(\"../../node_modules/.pnpm/css-loader@7.1.2_@rspack+core@1.4.5_@swc+helpers@0.5.15__webpack@5.98.0_@swc+core@1.11.24_@sw_wm7ee5ic4mofrhisudwon4qpq4/node_modules/css-loader/dist/cjs.js!./src/next-devtools/dev-overlay/components/devtools-panel/resize/resize-handle.css\"),ae={};function an(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}ae.styleTagTransform=h(),ae.setAttributes=u(),ae.insert=s(),ae.domAPI=i(),ae.insertStyleElement=f(),o()(o7.Z,ae),o7.Z&&o7.Z.locals&&o7.Z.locals;var at=function(e){var n,t,r=e.direction,o=o8(),a=o.resizeRef,i=o.minWidth,l=o.minHeight,s=o.devToolsPosition,c=o.draggingDirection,u=o.setDraggingDirection,d=(n=(0,x.useState)({top:0,right:0,bottom:0,left:0}),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||function(e,n){if(e){if(\"string\"==typeof e)return an(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return an(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),f=d[0],p=d[1];if((0,x.useLayoutEffect)(function(){if(a.current){var e=a.current,n=window.getComputedStyle(e);p({top:parseFloat(n.borderTopWidth)||0,right:parseFloat(n.borderRightWidth)||0,bottom:parseFloat(n.borderBottomWidth)||0,left:parseFloat(n.borderLeftWidth)||0})}},[a]),!(!s.split(\"-\").includes(r)&&(!r.includes(\"-\")||r===function(e){switch(e){case\"top-left\":return\"bottom-right\";case\"top-right\":return\"bottom-left\";case\"bottom-left\":return\"top-right\";case\"bottom-right\":return\"top-left\";default:return null}}(s))))return null;var h=f.left+f.right,g=f.top+f.bottom,m=r.includes(\"-\");return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(\"div\",{className:\"resize-container \".concat(r,\" \").concat(c&&c!==r?\"no-hover\":\"\"),onMouseDown:function(e){if(e.preventDefault(),a.current){u(r);var n=a.current,t=n.getBoundingClientRect(),o=n.offsetLeft,s=n.offsetTop,c=e.clientX,d=e.clientY,f=function(e){var a=ar(r,e.clientX-c,e.clientY-d,t,o,s,i,l),u=a.newWidth,f=a.newHeight,p=a.newLeft,h=a.newTop;n.style.width=\"\".concat(u,\"px\"),n.style.height=\"\".concat(f,\"px\"),(r.includes(\"left\")||\"left\"===r)&&(n.style.left=\"\".concat(p,\"px\")),(r.includes(\"top\")||\"top\"===r)&&(n.style.top=\"\".concat(h,\"px\"))},p=function(){u(null),document.removeEventListener(\"mousemove\",f),document.removeEventListener(\"mouseup\",p);var e=a.current.getBoundingClientRect(),n=e.width,t=e.height;localStorage.setItem(\"nextjs-devtools-dimensions\",JSON.stringify({width:n,height:t}))};document.addEventListener(\"mousemove\",f),document.addEventListener(\"mouseup\",p)}}}),!m&&(0,y.jsx)(\"div\",{className:\"resize-line \".concat(r,\" \").concat(c===r?\"dragging\":\"\"),style:{\"--border-horizontal\":\"\".concat(h,\"px\"),\"--border-vertical\":\"\".concat(g,\"px\"),\"--border-top\":\"\".concat(f.top,\"px\"),\"--border-right\":\"\".concat(f.right,\"px\"),\"--border-bottom\":\"\".concat(f.bottom,\"px\"),\"--border-left\":\"\".concat(f.left,\"px\")}})]})},ar=function(e,n,t,r,o,a,i,l){var s=.95*window.innerWidth,c=.95*window.innerHeight;switch(e){case\"right\":return{newWidth:Math.min(s,Math.max(i,r.width+n)),newHeight:r.height,newLeft:o,newTop:a};case\"left\":var u=Math.min(s,Math.max(i,r.width-n)),d=u-r.width;return{newWidth:u,newHeight:r.height,newLeft:o-d,newTop:a};case\"bottom\":return{newWidth:r.width,newHeight:Math.min(c,Math.max(l,r.height+t)),newLeft:o,newTop:a};case\"top\":var f=Math.min(c,Math.max(l,r.height-t)),p=f-r.height;return{newWidth:r.width,newHeight:f,newLeft:o,newTop:a-p};case\"top-left\":var h=Math.min(s,Math.max(i,r.width-n)),g=Math.min(c,Math.max(l,r.height-t)),m=h-r.width,v=g-r.height;return{newWidth:h,newHeight:g,newLeft:o-m,newTop:a-v};case\"top-right\":var b=Math.min(c,Math.max(l,r.height-t)),y=b-r.height;return{newWidth:Math.min(s,Math.max(i,r.width+n)),newHeight:b,newLeft:o,newTop:a-y};case\"bottom-left\":var x=Math.min(s,Math.max(i,r.width-n)),w=x-r.width;return{newWidth:x,newHeight:Math.min(c,Math.max(l,r.height+t)),newLeft:o-w,newTop:a};case\"bottom-right\":return{newWidth:Math.min(s,Math.max(i,r.width+n)),newHeight:Math.min(c,Math.max(l,r.height+t)),newLeft:o,newTop:a};default:return null}};function ao(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function aa(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function ai(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return ao(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ao(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function al(){var e,n,t=(e=[\"\\n /* TODO: Better override dialog header style. This conflicts with issues tab content. */\\n [data-nextjs-devtools-panel-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: 0 !important;\\n }\\n\\n [data-nextjs-devtools-panel-dialog-content] {\\n flex: 1;\\n display: flex;\\n flex-direction: column;\\n min-height: 0; // what allows content to overflow\\n }\\n\\n [data-nextjs-devtools-panel-dialog-body] {\\n flex: 1;\\n overflow: auto;\\n }\\n\\n [data-nextjs-devtools-panel-overlay] {\\n margin: auto;\\n width: 525px;\\n height: 375px;\\n }\\n\\n [data-nextjs-devtools-panel-overlay-backdrop] {\\n opacity: 0;\\n visibility: hidden;\\n }\\n\\n [data-nextjs-devtools-panel-overlay-backdrop='true'] {\\n opacity: 1;\\n visibility: visible;\\n }\\n\\n [data-nextjs-devtools-panel-draggable] {\\n /* For responsiveness */\\n width: 100%;\\n height: 100%;\\n }\\n\\n [data-nextjs-devtools-panel-dialog] {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n flex-direction: column;\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-xl);\\n box-shadow: var(--shadow-lg);\\n position: relative;\\n width: 100%;\\n height: 100%;\\n min-width: 400px;\\n min-height: 350px;\\n }\\n\\n [data-nextjs-devtools-panel-header] {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n border-bottom: 1px solid var(--color-gray-400);\\n }\\n\\n [data-nextjs-devtools-panel-header-tab-group] {\\n display: flex;\\n align-items: center;\\n padding: 8px;\\n gap: 6px;\\n }\\n\\n [data-nextjs-devtools-panel-header-tab] {\\n display: flex;\\n align-items: center;\\n color: var(--color-gray-900);\\n border-radius: var(--rounded-md-2);\\n padding: 4px 12px;\\n font-size: 14px;\\n font-weight: 500;\\n transition: background-color 200ms ease;\\n\\n &:hover {\\n background-color: var(--color-gray-200);\\n }\\n\\n &:active {\\n background-color: var(--color-gray-300);\\n }\\n }\\n\\n [data-nextjs-devtools-panel-header-tab='true'] {\\n color: var(--color-gray-1000);\\n background-color: var(--color-gray-100);\\n }\\n\\n [data-nextjs-devtools-panel-header-tab-issues-badge] {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n margin-left: 8px;\\n background-color: var(--color-red-400);\\n color: var(--color-red-900);\\n font-size: 11px;\\n border-radius: var(--rounded-full);\\n padding: 2px 6px;\\n width: 20px;\\n height: 20px;\\n font-weight: 500;\\n }\\n\\n [data-nextjs-devtools-panel-header-action-button-group] {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n padding-right: 8px;\\n }\\n\\n [data-nextjs-devtools-panel-header-action-button] {\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n padding: 6px;\\n color: var(--color-gray-1000);\\n border-radius: 4px;\\n transition-property: background-color, color;\\n transition-duration: 200ms;\\n transition-timing-function: ease;\\n\\n &:hover {\\n background-color: var(--color-gray-200);\\n color: var(--color-gray-900);\\n }\\n\\n &:active {\\n background-color: var(--color-gray-300);\\n }\\n }\\n\\n [data-nextjs-devtools-panel-draggable='true'] {\\n cursor: move;\\n user-select: none;\\n & > * {\\n cursor: auto;\\n /* user-select: auto; follows the parent (parent none -> child none), so reset the direct child to text */\\n user-select: text;\\n }\\n }\\n\"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return al=function(){return t},t}function as(e){var n,t,r,o,a,i,l=e.state,s=e.dispatch,c=e.issueCount,u=e.runtimeErrors,d=e.getSquashedHydrationErrorDetails,f=ai((n=\"__nextjs-devtools-active-tab\",t=\"issues\",o=(r=ai((0,x.useState)(function(){if(\"undefined\"!=typeof window&&\"undefined\"!=typeof sessionStorage){var e=sessionStorage.getItem(n);return null!=e?e:t}return t}),2))[0],a=r[1],(0,x.useEffect)(function(){\"undefined\"!=typeof window&&\"undefined\"!=typeof sessionStorage&&sessionStorage.setItem(n,o)},[n,o]),[o,a]),2),p=f[0],h=f[1],g=ai((0,x.useState)(!1),2),m=g[0],v=g[1],b=ai((0,x.useState)(!1),2),w=b[0],j=b[1],k=(0,x.useRef)(null);l.isErrorOverlayOpen!==w&&(l.isErrorOverlayOpen&&(v(!0),h(\"issues\")),j(l.isErrorOverlayOpen));var A=ai(l.devToolsPosition.split(\"-\",2),2),O=A[0],C=A[1],S=function(){s({type:$}),s({type:I})};return(0,y.jsx)(o9,{value:{resizeRef:k,minWidth:400,minHeight:350,devToolsPosition:l.devToolsPosition},children:(0,y.jsxs)(nZ,{ref:k,\"data-nextjs-devtools-panel-overlay\":!0,style:m?{}:(aa(i={},O,\"\".concat(20,\"px\")),aa(i,C,\"\".concat(20,\"px\")),aa(i,\"top\"===O?\"bottom\":\"top\",\"auto\"),aa(i,\"left\"===C?\"right\":\"left\",\"auto\"),i),children:[(0,y.jsx)(n2,{\"data-nextjs-devtools-panel-overlay-backdrop\":m,onClick:S}),(0,y.jsx)(rN,{\"data-nextjs-devtools-panel-draggable\":!0,padding:20,onDragStart:function(){},position:l.devToolsPosition,setPosition:function(e){localStorage.setItem(G,e),s({type:Y,devToolsPosition:e})},dragHandleSelector:\"[data-nextjs-devtools-panel-header], [data-nextjs-devtools-panel-footer]\",disableDrag:m,children:(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(eZ,{\"data-nextjs-devtools-panel-dialog\":!0,\"aria-labelledby\":\"nextjs__container_dev_tools_panel_label\",\"aria-describedby\":\"nextjs__container_dev_tools_panel_desc\",onClose:S,children:[(0,y.jsxs)(eX,{\"data-nextjs-devtools-panel-dialog-content\":!0,children:[(0,y.jsx)(eK,{\"data-nextjs-devtools-panel-dialog-header\":!0,children:(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-header\":!0,\"data-nextjs-devtools-panel-draggable\":!m,children:[(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-header-tab-group\":!0,children:[(0,y.jsxs)(\"button\",{\"data-nextjs-devtools-panel-header-tab\":\"issues\"===p,onClick:function(){return h(\"issues\")},children:[\"Issues\",c>0?(0,y.jsx)(\"span\",{\"data-nextjs-devtools-panel-header-tab-issues-badge\":!0,children:c}):null]}),(0,y.jsx)(\"button\",{\"data-nextjs-devtools-panel-header-tab\":\"route\"===p,onClick:function(){return h(\"route\")},children:\"Route Info\"}),(0,y.jsx)(\"button\",{\"data-nextjs-devtools-panel-header-tab\":\"settings\"===p,onClick:function(){return h(\"settings\")},children:\"Settings\"})]}),(0,y.jsxs)(\"div\",{\"data-nextjs-devtools-panel-header-action-button-group\":!0,children:[(0,y.jsx)(\"button\",{\"data-nextjs-devtools-panel-header-action-button\":!0,onClick:function(){v(function(e){return!e}),s({type:I})},children:m?(0,y.jsx)(o1,{width:16,height:16}):(0,y.jsx)(o0,{width:16,height:16})}),(0,y.jsx)(\"button\",{\"data-nextjs-devtools-panel-header-action-button\":!0,onClick:S,children:(0,y.jsx)(oH,{width:16,height:16})})]})]})}),(0,y.jsx)(eY,{\"data-nextjs-devtools-panel-dialog-body\":!0,children:(0,y.jsx)(oI,{page:l.page,activeTab:p,devToolsPosition:l.devToolsPosition,scale:l.scale,routerType:l.routerType,handlePositionChange:function(e){s({type:Y,devToolsPosition:e.target.value}),localStorage.setItem(G,e.target.value)},handleScaleChange:function(e){s({type:X,scale:Number(e.target.value)}),localStorage.setItem(J,e.target.value)},debugInfo:l.debugInfo,runtimeErrors:u,getSquashedHydrationErrorDetails:d,buildError:l.buildError})})]}),(0,y.jsx)(r2,{versionInfo:l.versionInfo,isDraggable:!m,showRestartServerButton:l.showRestartServerButton})]}),!m&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(at,{direction:\"top\"}),(0,y.jsx)(at,{direction:\"right\"}),(0,y.jsx)(at,{direction:\"bottom\"}),(0,y.jsx)(at,{direction:\"left\"}),(0,y.jsx)(at,{direction:\"top-left\"}),(0,y.jsx)(at,{direction:\"top-right\"}),(0,y.jsx)(at,{direction:\"bottom-left\"}),(0,y.jsx)(at,{direction:\"bottom-right\"})]})]})})]})})}var ac=ei(al());function au(){var e,n,t=(e=[\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \",\"\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return au=function(){return t},t}function ad(){return(0,y.jsx)(\"style\",{children:ei(au(),\"\\n .nextjs-data-copy-button {\\n color: inherit;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n .nextjs-data-copy-button:disabled {\\n background-color: var(--color-gray-100);\\n cursor: not-allowed;\\n }\\n .nextjs-data-copy-button--initial:hover:not(:disabled) {\\n cursor: pointer;\\n }\\n .nextjs-data-copy-button--error:not(:disabled),\\n .nextjs-data-copy-button--error:hover:not(:disabled) {\\n color: var(--color-ansi-red);\\n }\\n .nextjs-data-copy-button--success:not(:disabled) {\\n color: var(--color-ansi-green);\\n }\\n\",'\\n [data-nextjs-call-stack-frame-no-source] {\\n padding: 6px 8px;\\n margin-bottom: 4px;\\n\\n border-radius: var(--rounded-lg);\\n }\\n\\n [data-nextjs-call-stack-frame-no-source]:last-child {\\n margin-bottom: 0;\\n }\\n\\n [data-nextjs-call-stack-frame-ignored=\"true\"] {\\n opacity: 0.6;\\n }\\n\\n [data-nextjs-call-stack-frame] {\\n user-select: text;\\n display: block;\\n box-sizing: border-box;\\n\\n user-select: text;\\n -webkit-user-select: text;\\n -moz-user-select: text;\\n -ms-user-select: text;\\n\\n padding: 6px 8px;\\n\\n border-radius: var(--rounded-lg);\\n }\\n\\n .call-stack-frame-method-name {\\n display: flex;\\n align-items: center;\\n gap: 4px;\\n\\n margin-bottom: 4px;\\n font-family: var(--font-stack-monospace);\\n\\n color: var(--color-gray-1000);\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-20);\\n\\n svg {\\n width: var(--size-16px);\\n height: var(--size-16px);\\n }\\n }\\n\\n .open-in-editor-button, .source-mapping-error-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: var(--rounded-full);\\n padding: 4px;\\n color: var(--color-font);\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -2px;\\n }\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n }\\n\\n .call-stack-frame-file-source {\\n color: var(--color-gray-900);\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n }\\n',ts,\"\\n [data-nextjs-environment-name-label] {\\n padding: 2px 6px;\\n margin: 0;\\n border-radius: var(--rounded-md-2);\\n background: var(--color-gray-100);\\n font-weight: 600;\\n font-size: var(--size-12);\\n color: var(--color-gray-900);\\n font-family: var(--font-stack-monospace);\\n line-height: var(--size-20);\\n }\\n\",\"\\n [data-nextjs-dialog-overlay] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n /* secondary z-index, -1 than toast z-index */\\n z-index: 2147483646;\\n\\n display: flex;\\n align-content: center;\\n align-items: center;\\n flex-direction: column;\\n padding: 10vh 15px 0;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n padding: 15px 15px 0;\\n }\\n }\\n\\n [data-nextjs-dialog-backdrop] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: var(--color-backdrop);\\n backdrop-filter: blur(10px);\\n pointer-events: all;\\n z-index: -1;\\n }\\n\\n [data-nextjs-dialog-backdrop-fixed] {\\n cursor: not-allowed;\\n -webkit-backdrop-filter: blur(8px);\\n backdrop-filter: blur(8px);\\n }\\n\",eG,n8,nE,\"\\n .error-overlay-bottom-stack-layer {\\n width: 100%;\\n height: var(--stack-layer-height);\\n position: relative;\\n border: 1px solid var(--color-gray-400);\\n border-radius: var(--rounded-xl);\\n background: var(--color-background-200);\\n transition:\\n translate 350ms var(--timing-swift),\\n box-shadow 350ms var(--timing-swift);\\n }\\n\\n .error-overlay-bottom-stack-layer-1 {\\n width: calc(100% - var(--size-24));\\n }\\n\\n .error-overlay-bottom-stack-layer-2 {\\n width: calc(100% - var(--size-48));\\n z-index: -1;\\n }\\n\\n .error-overlay-bottom-stack {\\n width: 100%;\\n position: absolute;\\n bottom: -1px;\\n height: 0;\\n overflow: visible;\\n }\\n\\n .error-overlay-bottom-stack-stack {\\n --stack-layer-height: 44px;\\n --stack-layer-height-half: calc(var(--stack-layer-height) / 2);\\n --stack-layer-trim: 13px;\\n --shadow: 0px 0.925px 0.925px 0px rgba(0, 0, 0, 0.02),\\n 0px 3.7px 7.4px -3.7px rgba(0, 0, 0, 0.04),\\n 0px 14.8px 22.2px -7.4px rgba(0, 0, 0, 0.06);\\n\\n display: grid;\\n place-items: center center;\\n width: 100%;\\n position: fixed;\\n overflow: hidden;\\n z-index: -1;\\n max-width: var(--next-dialog-max-width);\\n\\n .error-overlay-bottom-stack-layer {\\n grid-area: 1 / 1;\\n /* Hide */\\n translate: 0 calc(var(--stack-layer-height) * -1);\\n }\\n\\n &[data-stack-count='1'],\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-1 {\\n translate: 0\\n calc(var(--stack-layer-height-half) * -1 - var(--stack-layer-trim));\\n }\\n }\\n\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-2 {\\n translate: 0 calc(var(--stack-layer-trim) * -1 * 2);\\n }\\n }\\n\\n /* Only the bottom stack should have the shadow */\\n &[data-stack-count='1'] .error-overlay-bottom-stack-layer-1 {\\n box-shadow: var(--shadow);\\n }\\n\\n &[data-stack-count='2'] {\\n .error-overlay-bottom-stack-layer-2 {\\n box-shadow: var(--shadow);\\n }\\n }\\n }\\n\",\"\\n .error-overlay-pagination {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n gap: 8px;\\n width: fit-content;\\n }\\n\\n .error-overlay-pagination-count {\\n color: var(--color-gray-900);\\n text-align: center;\\n font-size: var(--size-14);\\n font-weight: 500;\\n line-height: var(--size-16);\\n font-variant-numeric: tabular-nums;\\n }\\n\\n .error-overlay-pagination-button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n\\n width: var(--size-24);\\n height: var(--size-24);\\n background: var(--color-gray-300);\\n flex-shrink: 0;\\n\\n border: none;\\n border-radius: var(--rounded-full);\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n }\\n\\n &:not(:disabled):active {\\n background: var(--color-gray-500);\\n }\\n\\n &:disabled {\\n opacity: 0.5;\\n cursor: not-allowed;\\n }\\n }\\n\\n .error-overlay-pagination-button-icon {\\n color: var(--color-gray-1000);\\n }\\n\",'\\n [data-nextjs-codeframe] {\\n --code-frame-padding: 12px;\\n --code-frame-line-height: var(--size-16);\\n background-color: var(--color-background-200);\\n color: var(--color-gray-1000);\\n text-overflow: ellipsis;\\n border: 1px solid var(--color-gray-400);\\n border-radius: 8px;\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n line-height: var(--code-frame-line-height);\\n margin: 8px 0;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n }\\n\\n .code-frame-link,\\n .code-frame-pre {\\n padding: var(--code-frame-padding);\\n }\\n\\n .code-frame-link svg {\\n flex-shrink: 0;\\n }\\n\\n .code-frame-lines {\\n min-width: max-content;\\n }\\n\\n .code-frame-link [data-text] {\\n display: inline-flex;\\n text-align: left;\\n margin: auto 6px;\\n }\\n\\n .code-frame-header {\\n width: 100%;\\n transition: background 100ms ease-out;\\n border-radius: 8px 8px 0 0;\\n border-bottom: 1px solid var(--color-gray-400);\\n }\\n\\n [data-with-open-in-editor-link-source-file] {\\n padding: 4px;\\n margin: -4px 0 -4px auto;\\n border-radius: var(--rounded-full);\\n margin-left: auto;\\n\\n &:focus-visible {\\n outline: var(--focus-ring);\\n outline-offset: -2px;\\n }\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n }\\n\\n [data-nextjs-codeframe]::selection,\\n [data-nextjs-codeframe] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n\\n [data-nextjs-codeframe] *:not(a) {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-codeframe-line][data-nextjs-codeframe-line--errored=\"true\"] {\\n position: relative;\\n isolation: isolate;\\n\\n > span { \\n position: relative;\\n z-index: 1;\\n }\\n\\n &::after {\\n content: \"\";\\n width: calc(100% + var(--code-frame-padding) * 2);\\n height: var(--code-frame-line-height);\\n left: calc(-1 * var(--code-frame-padding));\\n background: var(--color-red-200);\\n box-shadow: 2px 0 0 0 var(--color-red-900) inset;\\n position: absolute;\\n }\\n }\\n\\n\\n [data-nextjs-codeframe] > * {\\n margin: 0;\\n }\\n\\n .code-frame-link {\\n display: flex;\\n margin: 0;\\n outline: 0;\\n }\\n .code-frame-link [data-icon=\\'right\\'] {\\n margin-left: auto;\\n }\\n\\n [data-nextjs-codeframe] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\\n [data-nextjs-codeframe] svg {\\n color: var(--color-gray-900);\\n }\\n',\"\\n [data-nextjs-terminal]::selection,\\n [data-nextjs-terminal] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n\\n [data-nextjs-terminal] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-terminal] > div > p {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n cursor: pointer;\\n margin: 0;\\n }\\n [data-nextjs-terminal] > div > p:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-terminal] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\",\"\\n [data-with-open-in-editor-link] svg {\\n width: auto;\\n height: var(--size-14);\\n margin-left: 8px;\\n }\\n [data-with-open-in-editor-link] {\\n cursor: pointer;\\n }\\n [data-with-open-in-editor-link]:hover {\\n text-decoration: underline dotted;\\n }\\n [data-with-open-in-editor-link-import-trace] {\\n margin-left: 16px;\\n }\\n\",\"\",\"\\n .nextjs-error-with-static {\\n bottom: calc(16px * 4.5);\\n }\\n p.nextjs__container_errors__link {\\n font-size: var(--size-14);\\n }\\n p.nextjs__container_errors__notes {\\n color: var(--color-stack-notes);\\n font-size: var(--size-14);\\n line-height: 1.5;\\n }\\n .nextjs-container-errors-body > h2:not(:first-child) {\\n margin-top: calc(16px + 8px);\\n }\\n .nextjs-container-errors-body > h2 {\\n color: var(--color-title-color);\\n margin-bottom: 8px;\\n font-size: var(--size-20);\\n }\\n .nextjs-toast-errors-parent {\\n cursor: pointer;\\n transition: transform 0.2s ease;\\n }\\n .nextjs-toast-errors-parent:hover {\\n transform: scale(1.1);\\n }\\n .nextjs-toast-errors {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n }\\n .nextjs-toast-errors > svg {\\n margin-right: 8px;\\n }\\n .nextjs-toast-hide-button {\\n margin-left: 24px;\\n border: none;\\n background: none;\\n color: var(--color-ansi-bright-white);\\n padding: 0;\\n transition: opacity 0.25s ease;\\n opacity: 0.7;\\n }\\n .nextjs-toast-hide-button:hover {\\n opacity: 1;\\n }\\n .nextjs__container_errors__error_title {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n margin-bottom: 14px;\\n }\\n .error-overlay-notes-container {\\n margin: 8px 2px;\\n }\\n .error-overlay-notes-container p {\\n white-space: pre-wrap;\\n }\\n\",tA,\"\\n .nextjs-container-build-error-version-status {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n gap: 4px;\\n\\n height: var(--size-26);\\n padding: 6px 8px 6px 6px;\\n background: var(--color-background-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-alpha-400);\\n box-shadow: var(--shadow-small);\\n border-radius: var(--rounded-full);\\n\\n color: var(--color-gray-900);\\n font-size: var(--size-12);\\n font-weight: 500;\\n line-height: var(--size-16);\\n }\\n\\n a.nextjs-container-build-error-version-status {\\n text-decoration: none;\\n color: var(--color-gray-900);\\n\\n &:hover {\\n background: var(--color-gray-100);\\n }\\n\\n &:focus {\\n outline: var(--focus-ring);\\n }\\n }\\n\\n .version-staleness-indicator.fresh {\\n fill: var(--color-green-800);\\n stroke: var(--color-green-300);\\n }\\n .version-staleness-indicator.stale {\\n fill: var(--color-amber-800);\\n stroke: var(--color-amber-300);\\n }\\n .version-staleness-indicator.outdated {\\n fill: var(--color-red-800);\\n stroke: var(--color-red-300);\\n }\\n .version-staleness-indicator.unknown {\\n fill: var(--color-gray-800);\\n stroke: var(--color-gray-300);\\n }\\n\\n .nextjs-container-build-error-version-status > .turbopack-text {\\n background: linear-gradient(\\n to right,\\n var(--color-turbopack-text-red) 0%,\\n var(--color-turbopack-text-blue) 100%\\n );\\n background-clip: text;\\n -webkit-background-clip: text;\\n -webkit-text-fill-color: transparent;\\n }\\n\",\"\\n .restart-dev-server-button {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n gap: 4px;\\n margin: 0 12px;\\n\\n height: var(--size-26);\\n padding: 6px 8px 6px 6px;\\n background: var(--color-amber-100);\\n background-clip: padding-box;\\n border: 1px solid var(--color-gray-alpha-400);\\n box-shadow: var(--shadow-small);\\n border-radius: var(--rounded-full);\\n\\n color: var(--color-amber-900);\\n font-size: var(--size-12);\\n font-weight: 500;\\n line-height: var(--size-16);\\n }\\n\",\"\\n [data-nextjs-toast] {\\n &[data-hidden='true'] {\\n display: none;\\n }\\n }\\n\\n .dev-tools-indicator-menu {\\n -webkit-font-smoothing: antialiased;\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n background-clip: padding-box;\\n box-shadow: var(--shadow-menu);\\n border-radius: var(--rounded-xl);\\n position: absolute;\\n font-family: var(--font-stack-sans);\\n z-index: 3;\\n overflow: hidden;\\n opacity: 0;\\n outline: 0;\\n min-width: 248px;\\n transition: opacity var(--animate-out-duration-ms)\\n var(--animate-out-timing-function);\\n\\n &[data-rendered='true'] {\\n opacity: 1;\\n scale: 1;\\n }\\n }\\n\\n .dev-tools-indicator-inner {\\n padding: 6px;\\n width: 100%;\\n }\\n\\n .dev-tools-indicator-item {\\n display: flex;\\n align-items: center;\\n padding: 8px 6px;\\n height: var(--size-36);\\n border-radius: 6px;\\n text-decoration: none !important;\\n user-select: none;\\n white-space: nowrap;\\n\\n svg {\\n width: var(--size-16);\\n height: var(--size-16);\\n }\\n\\n &:focus-visible {\\n outline: 0;\\n }\\n }\\n\\n .dev-tools-indicator-footer {\\n background: var(--color-background-200);\\n padding: 6px;\\n border-top: 1px solid var(--color-gray-400);\\n width: 100%;\\n }\\n\\n .dev-tools-indicator-item[data-selected='true'] {\\n cursor: pointer;\\n background-color: var(--color-gray-200);\\n }\\n\\n .dev-tools-indicator-label {\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n color: var(--color-gray-1000);\\n }\\n\\n .dev-tools-indicator-value {\\n font-size: var(--size-14);\\n line-height: var(--size-20);\\n color: var(--color-gray-900);\\n margin-left: auto;\\n }\\n\\n .dev-tools-indicator-issue-count {\\n --color-primary: var(--color-gray-800);\\n --color-secondary: var(--color-gray-100);\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n min-width: var(--size-40);\\n height: var(--size-24);\\n background: var(--color-background-100);\\n border: 1px solid var(--color-gray-alpha-400);\\n background-clip: padding-box;\\n box-shadow: var(--shadow-small);\\n padding: 2px;\\n color: var(--color-gray-1000);\\n border-radius: 128px;\\n font-weight: 500;\\n font-size: var(--size-13);\\n font-variant-numeric: tabular-nums;\\n\\n &[data-has-issues='true'] {\\n --color-primary: var(--color-red-800);\\n --color-secondary: var(--color-red-100);\\n }\\n\\n .dev-tools-indicator-issue-count-indicator {\\n width: var(--size-8);\\n height: var(--size-8);\\n background: var(--color-primary);\\n box-shadow: 0 0 0 2px var(--color-secondary);\\n border-radius: 50%;\\n }\\n }\\n\\n .dev-tools-indicator-shortcut {\\n display: flex;\\n gap: 4px;\\n\\n kbd {\\n width: var(--size-20);\\n height: var(--size-20);\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: var(--rounded-md);\\n border: 1px solid var(--color-gray-400);\\n font-family: var(--font-stack-sans);\\n background: var(--color-background-100);\\n color: var(--color-gray-1000);\\n text-align: center;\\n font-size: var(--size-12);\\n line-height: var(--size-16);\\n }\\n }\\n\\n .dev-tools-grabbing {\\n cursor: grabbing;\\n\\n > * {\\n pointer-events: none;\\n }\\n }\\n\",t0.g,\"\\n .dev-tools-info-code {\\n background: var(--color-gray-400);\\n color: var(--color-gray-1000);\\n font-family: var(--font-stack-monospace);\\n padding: 2px 4px;\\n margin: 0;\\n font-size: var(--size-13);\\n white-space: break-spaces;\\n border-radius: var(--rounded-md-2);\\n }\\n\\n .dev-tools-info-code-block-container {\\n padding: 6px;\\n }\\n\\n .dev-tools-info-code-block {\\n position: relative;\\n background: var(--color-background-200);\\n border: 1px solid var(--color-gray-alpha-400);\\n border-radius: var(--rounded-md-2);\\n min-width: 326px;\\n }\\n\\n .dev-tools-info-code-block-pre {\\n margin: 0;\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-12);\\n }\\n\\n .dev-tools-info-copy-button {\\n position: absolute;\\n\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n right: 8px;\\n top: 8px;\\n padding: 4px;\\n height: var(--size-24);\\n width: var(--size-24);\\n border-radius: var(--rounded-md-2);\\n border: 1px solid var(--color-gray-alpha-400);\\n background: var(--color-background-100);\\n }\\n\\n .dev-tools-info-code-block-line {\\n display: block;\\n line-height: 1.5;\\n padding: 0 16px;\\n }\\n\\n .dev-tools-info-code-block-line.dev-tools-info-highlight {\\n border-left: 2px solid var(--color-blue-900);\\n background: var(--color-blue-400);\\n }\\n\\n .dev-tools-info-code-block-json-key {\\n color: var(--color-syntax-keyword);\\n }\\n\\n .dev-tools-info-code-block-json-value {\\n color: var(--color-syntax-link);\\n }\\n\",\"\",rS,'\\n .nextjs-scroll-fader {\\n --blur: 1px;\\n --stop: 25%;\\n --height: 150px;\\n --color-bg: var(--color-background-100);\\n position: absolute;\\n pointer-events: none;\\n user-select: none;\\n width: 100%;\\n height: var(--height);\\n left: 0;\\n backdrop-filter: blur(var(--blur));\\n\\n &[data-side=\"top\"] {\\n top: 0;\\n background: linear-gradient(to top, transparent, var(--color-bg));\\n mask-image: linear-gradient(to bottom, var(--color-bg) var(--stop), transparent);\\n }\\n }\\n',ac,r4,r0,on,oN,oO,oc,oo,oL,ow,ob,of,rm)})}function af(){var e,n,t=(e=[\"\\n :host {\\n all: initial;\\n\\n /* the direction property is not reset by 'all' */\\n direction: ltr;\\n }\\n\\n /*!\\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\\n * Copyright 2011-2019 The Bootstrap Authors\\n * Copyright 2011-2019 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\\n */\\n *,\\n *::before,\\n *::after {\\n box-sizing: border-box;\\n }\\n\\n :host {\\n font-family: sans-serif;\\n line-height: 1.15;\\n -webkit-text-size-adjust: 100%;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n }\\n\\n article,\\n aside,\\n figcaption,\\n figure,\\n footer,\\n header,\\n hgroup,\\n main,\\n nav,\\n section {\\n display: block;\\n }\\n\\n :host {\\n margin: 0;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\\n 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,\\n 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\\n 'Noto Color Emoji';\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 1.5;\\n color: var(--color-font);\\n text-align: left;\\n }\\n\\n :host:not(button) {\\n background-color: #fff;\\n }\\n\\n [tabindex='-1']:focus:not(:focus-visible) {\\n outline: 0 !important;\\n }\\n\\n hr {\\n box-sizing: content-box;\\n height: 0;\\n overflow: visible;\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-top: 0;\\n margin-bottom: 8px;\\n }\\n\\n p {\\n margin-top: 0;\\n margin-bottom: 16px;\\n }\\n\\n abbr[title],\\n abbr[data-original-title] {\\n text-decoration: underline;\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n cursor: help;\\n border-bottom: 0;\\n -webkit-text-decoration-skip-ink: none;\\n text-decoration-skip-ink: none;\\n }\\n\\n address {\\n margin-bottom: 16px;\\n font-style: normal;\\n line-height: inherit;\\n }\\n\\n ol,\\n ul,\\n dl {\\n margin-top: 0;\\n margin-bottom: 16px;\\n }\\n\\n ol ol,\\n ul ul,\\n ol ul,\\n ul ol {\\n margin-bottom: 0;\\n }\\n\\n dt {\\n font-weight: 700;\\n }\\n\\n dd {\\n margin-bottom: 8px;\\n margin-left: 0;\\n }\\n\\n blockquote {\\n margin: 0 0 16px;\\n }\\n\\n b,\\n strong {\\n font-weight: bolder;\\n }\\n\\n small {\\n font-size: 80%;\\n }\\n\\n sub,\\n sup {\\n position: relative;\\n font-size: 75%;\\n line-height: 0;\\n vertical-align: baseline;\\n }\\n\\n sub {\\n bottom: -0.25em;\\n }\\n\\n sup {\\n top: -0.5em;\\n }\\n\\n a {\\n color: #007bff;\\n text-decoration: none;\\n background-color: transparent;\\n }\\n\\n a:hover {\\n color: #0056b3;\\n text-decoration: underline;\\n }\\n\\n a:not([href]) {\\n color: inherit;\\n text-decoration: none;\\n }\\n\\n a:not([href]):hover {\\n color: inherit;\\n text-decoration: none;\\n }\\n\\n pre,\\n code,\\n kbd,\\n samp {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas,\\n 'Liberation Mono', 'Courier New', monospace;\\n font-size: 1em;\\n }\\n\\n pre {\\n margin-top: 0;\\n margin-bottom: 16px;\\n overflow: auto;\\n }\\n\\n figure {\\n margin: 0 0 16px;\\n }\\n\\n img {\\n vertical-align: middle;\\n border-style: none;\\n }\\n\\n svg {\\n overflow: hidden;\\n vertical-align: middle;\\n }\\n\\n table {\\n border-collapse: collapse;\\n }\\n\\n caption {\\n padding-top: 12px;\\n padding-bottom: 12px;\\n color: #6c757d;\\n text-align: left;\\n caption-side: bottom;\\n }\\n\\n th {\\n text-align: inherit;\\n }\\n\\n label {\\n display: inline-block;\\n margin-bottom: 8px;\\n }\\n\\n button {\\n border-radius: 0;\\n border: 0;\\n padding: 0;\\n margin: 0;\\n background: none;\\n appearance: none;\\n -webkit-appearance: none;\\n }\\n\\n button:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n }\\n\\n button:focus:not(:focus-visible) {\\n outline: none;\\n }\\n\\n input,\\n button,\\n select,\\n optgroup,\\n textarea {\\n margin: 0;\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit;\\n }\\n\\n button,\\n input {\\n overflow: visible;\\n }\\n\\n button,\\n select {\\n text-transform: none;\\n }\\n\\n select {\\n word-wrap: normal;\\n }\\n\\n button,\\n [type='button'],\\n [type='reset'],\\n [type='submit'] {\\n -webkit-appearance: button;\\n }\\n\\n button:not(:disabled),\\n [type='button']:not(:disabled),\\n [type='reset']:not(:disabled),\\n [type='submit']:not(:disabled) {\\n cursor: pointer;\\n }\\n\\n button::-moz-focus-inner,\\n [type='button']::-moz-focus-inner,\\n [type='reset']::-moz-focus-inner,\\n [type='submit']::-moz-focus-inner {\\n padding: 0;\\n border-style: none;\\n }\\n\\n input[type='radio'],\\n input[type='checkbox'] {\\n box-sizing: border-box;\\n padding: 0;\\n }\\n\\n input[type='date'],\\n input[type='time'],\\n input[type='datetime-local'],\\n input[type='month'] {\\n -webkit-appearance: listbox;\\n }\\n\\n textarea {\\n overflow: auto;\\n resize: vertical;\\n }\\n\\n fieldset {\\n min-width: 0;\\n padding: 0;\\n margin: 0;\\n border: 0;\\n }\\n\\n legend {\\n display: block;\\n width: 100%;\\n max-width: 100%;\\n padding: 0;\\n margin-bottom: 8px;\\n font-size: 24px;\\n line-height: inherit;\\n color: inherit;\\n white-space: normal;\\n }\\n\\n progress {\\n vertical-align: baseline;\\n }\\n\\n [type='number']::-webkit-inner-spin-button,\\n [type='number']::-webkit-outer-spin-button {\\n height: auto;\\n }\\n\\n [type='search'] {\\n outline-offset: -2px;\\n -webkit-appearance: none;\\n }\\n\\n [type='search']::-webkit-search-decoration {\\n -webkit-appearance: none;\\n }\\n\\n ::-webkit-file-upload-button {\\n font: inherit;\\n -webkit-appearance: button;\\n }\\n\\n output {\\n display: inline-block;\\n }\\n\\n summary {\\n display: list-item;\\n cursor: pointer;\\n }\\n\\n template {\\n display: none;\\n }\\n\\n [hidden] {\\n display: none !important;\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return af=function(){return t},t}function ap(){return(0,y.jsx)(\"style\",{children:ei(af())})}function ah(){var e,n,t=(e=['\\n :host {\\n /* \\n * CAUTION: THIS IS A WORKAROUND!\\n * For now, we use @babel/code-frame to parse the code frame which does not support option to change the color.\\n * x-ref: https://github.com/babel/babel/blob/efa52324ff835b794c48080f14877b6caf32cd15/packages/babel-code-frame/src/defs.ts#L40-L54\\n * So, we do a workaround mapping to change the color matching the theme.\\n *\\n * For example, in @babel/code-frame, the \"keyword\" is mapped to ANSI \"cyan\".\\n * We want the \"keyword\" to use the \"syntax-keyword\" color in the theme.\\n * So, we map the \"cyan\" to the \"syntax-keyword\" in the theme.\\n */\\n /* cyan: keyword */\\n --color-ansi-cyan: var(--color-syntax-keyword);\\n /* yellow: capitalized, jsxIdentifier, punctuation */\\n --color-ansi-yellow: var(--color-syntax-function);\\n /* magenta: number, regex */\\n --color-ansi-magenta: var(--color-syntax-keyword);\\n /* green: string */\\n --color-ansi-green: var(--color-syntax-string);\\n /* gray (bright black): comment, gutter */\\n --color-ansi-bright-black: var(--color-syntax-comment);\\n\\n /* Ansi - Temporary */\\n --color-ansi-selection: var(--color-gray-alpha-300);\\n --color-ansi-bg: var(--color-background-200);\\n --color-ansi-fg: var(--color-gray-1000);\\n\\n --color-ansi-white: var(--color-gray-700);\\n --color-ansi-black: var(--color-gray-200);\\n --color-ansi-blue: var(--color-blue-700);\\n --color-ansi-red: var(--color-red-700);\\n --color-ansi-bright-white: var(--color-gray-1000);\\n --color-ansi-bright-blue: var(--color-blue-800);\\n --color-ansi-bright-cyan: var(--color-blue-800);\\n --color-ansi-bright-green: var(--color-green-800);\\n --color-ansi-bright-magenta: var(--color-blue-800);\\n --color-ansi-bright-red: var(--color-red-800);\\n --color-ansi-bright-yellow: var(--color-amber-900);\\n\\n /* Background Light */\\n --color-background-100: #ffffff;\\n --color-background-200: #fafafa;\\n\\n /* Syntax Light */\\n --color-syntax-comment: #545454;\\n --color-syntax-constant: #171717;\\n --color-syntax-function: #0054ad;\\n --color-syntax-keyword: #a51850;\\n --color-syntax-link: #066056;\\n --color-syntax-parameter: #8f3e00;\\n --color-syntax-punctuation: #171717;\\n --color-syntax-string: #036157;\\n --color-syntax-string-expression: #066056;\\n\\n /* Gray Scale Light */\\n --color-gray-100: #f2f2f2;\\n --color-gray-200: #ebebeb;\\n --color-gray-300: #e6e6e6;\\n --color-gray-400: #eaeaea;\\n --color-gray-500: #c9c9c9;\\n --color-gray-600: #a8a8a8;\\n --color-gray-700: #8f8f8f;\\n --color-gray-800: #7d7d7d;\\n --color-gray-900: #666666;\\n --color-gray-1000: #171717;\\n\\n /* Gray Alpha Scale Light */\\n --color-gray-alpha-100: rgba(0, 0, 0, 0.05);\\n --color-gray-alpha-200: rgba(0, 0, 0, 0.081);\\n --color-gray-alpha-300: rgba(0, 0, 0, 0.1);\\n --color-gray-alpha-400: rgba(0, 0, 0, 0.08);\\n --color-gray-alpha-500: rgba(0, 0, 0, 0.21);\\n --color-gray-alpha-600: rgba(0, 0, 0, 0.34);\\n --color-gray-alpha-700: rgba(0, 0, 0, 0.44);\\n --color-gray-alpha-800: rgba(0, 0, 0, 0.51);\\n --color-gray-alpha-900: rgba(0, 0, 0, 0.605);\\n --color-gray-alpha-1000: rgba(0, 0, 0, 0.91);\\n\\n /* Blue Scale Light */\\n --color-blue-100: #f0f7ff;\\n --color-blue-200: #edf6ff;\\n --color-blue-300: #e1f0ff;\\n --color-blue-400: #cde7ff;\\n --color-blue-500: #99ceff;\\n --color-blue-600: #52aeff;\\n --color-blue-700: #0070f3;\\n --color-blue-800: #0060d1;\\n --color-blue-900: #0067d6;\\n --color-blue-1000: #0025ad;\\n\\n /* Red Scale Light */\\n --color-red-100: #fff0f0;\\n --color-red-200: #ffebeb;\\n --color-red-300: #ffe5e5;\\n --color-red-400: #fdd8d8;\\n --color-red-500: #f8baba;\\n --color-red-600: #f87274;\\n --color-red-700: #e5484d;\\n --color-red-800: #da3036;\\n --color-red-900: #ca2a30;\\n --color-red-1000: #381316;\\n\\n /* Amber Scale Light */\\n --color-amber-100: #fff6e5;\\n --color-amber-200: #fff4d5;\\n --color-amber-300: #fef0cd;\\n --color-amber-400: #ffddbf;\\n --color-amber-500: #ffc96b;\\n --color-amber-600: #f5b047;\\n --color-amber-700: #ffb224;\\n --color-amber-800: #ff990a;\\n --color-amber-900: #a35200;\\n --color-amber-1000: #4e2009;\\n\\n /* Green Scale Light */\\n --color-green-100: #effbef;\\n --color-green-200: #eafaea;\\n --color-green-300: #dcf6dc;\\n --color-green-400: #c8f1c9;\\n --color-green-500: #99e59f;\\n --color-green-600: #6cda76;\\n --color-green-700: #46a758;\\n --color-green-800: #388e4a;\\n --color-green-900: #297c3b;\\n --color-green-1000: #18311e;\\n\\n /* Turbopack Light - Temporary */\\n --color-turbopack-text-red: #ff1e56;\\n --color-turbopack-text-blue: #0096ff;\\n --color-turbopack-border-red: #f0adbe;\\n --color-turbopack-border-blue: #adccea;\\n --color-turbopack-background-red: #fff7f9;\\n --color-turbopack-background-blue: #f6fbff;\\n }\\n '],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return ah=function(){return t},t}function ag(){return(0,y.jsx)(\"style\",{children:ei(ah())})}function am(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}function av(e,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}),e}function ab(e){var n=e.state,t=e.dispatch,r=e.getSquashedHydrationErrorDetails,o=e.runtimeErrors,a=e.errorCount,i=!!false,l=(0,tJ.N)(n.isErrorOverlayOpen,{exitDelay:200}),s=l.mounted,c={rendered:l.rendered,transitionDurationMs:200,isTurbopack:i,versionInfo:n.versionInfo,errorCount:a};return null!==n.buildError?(0,y.jsx)(tr,av(am({},c),{message:n.buildError,rendered:!0})):o.length&&s?(0,y.jsx)(tT,av(am({},c),{debugInfo:n.debugInfo,getSquashedHydrationErrorDetails:r,runtimeErrors:o,onClose:function(){t({type:I})}})):(0,y.jsx)(x.Suspense,{})}function ay(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function ax(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function aw(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){ax(e,n,t[n])})}return e}function aj(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return ay(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return ay(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}var ak=function(e){return e.state.buildError?(0,y.jsx)(aO,aw({},e)):(0,y.jsx)(aA,aw({},e))},aA=function(e){var n,t,r,o=e.children,a=e.state,i=e.isAppDir,l=e.dispatch,s=a.errors,c=aj((0,x.useState)({}),2),u=c[0],d=c[1],f=aj((0,x.useMemo)(function(){for(var e=[],n=null,t=0;t<s.length;++t){var r=s[t],o=r.id;if(o in u){e.push(u[o]);continue}n=r;break}return[e,n]},[s,u]),2),p=f[0],h=f[1];return t=(n={errors:s,dispatch:l}).errors,r=n.dispatch,(0,x.useEffect)(function(){var e,n,o=(null==(e=\"Webpack\")?void 0:e.toUpperCase())===\"TURBOPACK\"&&true,a=null==(n=t[0])?void 0:n.error;if(o&&a){var i=\"__next_error_overlay:\".concat(window.location.pathname,\":\").concat(a.message);r({type:K,showRestartServerButton:\"1\"===sessionStorage.getItem(i)});var l=function(){sessionStorage.setItem(i,\"1\")};return window.addEventListener(\"beforeunload\",l),function(){window.removeEventListener(\"beforeunload\",l)}}r({type:K,showRestartServerButton:!1})},[t,r]),(0,x.useEffect)(function(){if(null!=h){var e,n,t=!0;return(e=h,n=i,tb(function(){var t,r,o,a,i;return tw(this,function(l){switch(l.label){case 0:var s,c;if(t={id:e.id,runtime:!0,error:e.error,type:e.type},!(\"use\"in x))return[3,1];return r=tx(ty({},t),{frames:(c=(s=function(){return tb(function(){return tw(this,function(t){switch(t.label){case 0:return[4,eC(e.frames,tm(e.error),n)];case 1:return[2,t.sent()]}})})()})(),function(){return c})}),void 0!==e.componentStackFrames&&(r.componentStackFrames=e.componentStackFrames),[2,r];case 1:return a=[ty({},t)],i={},[4,eC(e.frames,tm(e.error),n)];case 2:return o=tx.apply(void 0,a.concat([(i.frames=l.sent(),i)])),void 0!==e.componentStackFrames&&(o.componentStackFrames=e.componentStackFrames),[2,o];case 3:return[2]}})})()).then(function(e){t&&d(function(n){var t,r;return t=aw({},n),r=null!=(r=ax({},e.id,e))?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):(function(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}),t})}),function(){t=!1}}},[h,i]),o({runtimeErrors:p,totalErrorCount:s.length})},aO=function(e){return(0,e.children)({runtimeErrors:[],totalErrorCount:1})};function aC(){var e,n,t=(e=[\"\\n :host(.dark) {\\n \",\"\\n \",\"\\n }\\n\\n @media (prefers-color-scheme: dark) {\\n :host(:not(.light)) {\\n \",\"\\n \",\"\\n }\\n }\\n \"],n||(n=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}})));return aC=function(){return t},t}var aS=\"\\n /* Background Dark */\\n --color-background-100: #0a0a0a;\\n --color-background-200: #000000;\\n\\n /* Syntax Dark */\\n --color-syntax-comment: #a0a0a0;\\n --color-syntax-constant: #ededed;\\n --color-syntax-function: #52a9ff;\\n --color-syntax-keyword: #f76e99;\\n --color-syntax-link: #0ac5b2;\\n --color-syntax-parameter: #f1a10d;\\n --color-syntax-punctuation: #ededed;\\n --color-syntax-string: #0ac5b2;\\n --color-syntax-string-expression: #0ac5b2;\\n\\n /* Gray Scale Dark */\\n --color-gray-100: #1a1a1a;\\n --color-gray-200: #1f1f1f;\\n --color-gray-300: #292929;\\n --color-gray-400: #2e2e2e;\\n --color-gray-500: #454545;\\n --color-gray-600: #878787;\\n --color-gray-700: #8f8f8f;\\n --color-gray-800: #7d7d7d;\\n --color-gray-900: #a0a0a0;\\n --color-gray-1000: #ededed;\\n\\n /* Gray Alpha Scale Dark */\\n --color-gray-alpha-100: rgba(255, 255, 255, 0.066);\\n --color-gray-alpha-200: rgba(255, 255, 255, 0.087);\\n --color-gray-alpha-300: rgba(255, 255, 255, 0.125);\\n --color-gray-alpha-400: rgba(255, 255, 255, 0.145);\\n --color-gray-alpha-500: rgba(255, 255, 255, 0.239);\\n --color-gray-alpha-600: rgba(255, 255, 255, 0.506);\\n --color-gray-alpha-700: rgba(255, 255, 255, 0.54);\\n --color-gray-alpha-800: rgba(255, 255, 255, 0.47);\\n --color-gray-alpha-900: rgba(255, 255, 255, 0.61);\\n --color-gray-alpha-1000: rgba(255, 255, 255, 0.923);\\n\\n /* Blue Scale Dark */\\n --color-blue-100: #0f1b2d;\\n --color-blue-200: #10243e;\\n --color-blue-300: #0f3058;\\n --color-blue-400: #0d3868;\\n --color-blue-500: #0a4481;\\n --color-blue-600: #0091ff;\\n --color-blue-700: #0070f3;\\n --color-blue-800: #0060d1;\\n --color-blue-900: #52a9ff;\\n --color-blue-1000: #eaf6ff;\\n\\n /* Red Scale Dark */\\n --color-red-100: #2a1314;\\n --color-red-200: #3d1719;\\n --color-red-300: #551a1e;\\n --color-red-400: #671e22;\\n --color-red-500: #822025;\\n --color-red-600: #e5484d;\\n --color-red-700: #e5484d;\\n --color-red-800: #da3036;\\n --color-red-900: #ff6369;\\n --color-red-1000: #ffecee;\\n\\n /* Amber Scale Dark */\\n --color-amber-100: #271700;\\n --color-amber-200: #341c00;\\n --color-amber-300: #4a2900;\\n --color-amber-400: #573300;\\n --color-amber-500: #693f05;\\n --color-amber-600: #e79c13;\\n --color-amber-700: #ffb224;\\n --color-amber-800: #ff990a;\\n --color-amber-900: #f1a10d;\\n --color-amber-1000: #fef3dd;\\n\\n /* Green Scale Dark */\\n --color-green-100: #0b2211;\\n --color-green-200: #0f2c17;\\n --color-green-300: #11351b;\\n --color-green-400: #0c461b;\\n --color-green-500: #126427;\\n --color-green-600: #1a9338;\\n --color-green-700: #46a758;\\n --color-green-800: #388e4a;\\n --color-green-900: #63c174;\\n --color-green-1000: #e5fbeb;\\n\\n /* Turbopack Dark - Temporary */\\n --color-turbopack-text-red: #ff6d92;\\n --color-turbopack-text-blue: #45b2ff;\\n --color-turbopack-border-red: #6e293b;\\n --color-turbopack-border-blue: #284f80;\\n --color-turbopack-background-red: #250d12;\\n --color-turbopack-background-blue: #0a1723;\\n\",aE=\"\\n --color-font: white;\\n --color-backdrop: rgba(0, 0, 0, 0.8);\\n --color-border-shadow: rgba(255, 255, 255, 0.145);\\n\\n --color-title-color: #fafafa;\\n --color-stack-notes: #a9a9a9;\\n\";function a_(){return(0,y.jsx)(\"style\",{children:ei(aC(),aE,aS,aE,aS)})}function aP(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function az(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),!n||a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(e,n)||function(e,n){if(e){if(\"string\"==typeof e)return aP(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return aP(e,n)}}(e,n)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function aL(e){var n,t,r,o=e.state,a=e.dispatch,i=e.getSquashedHydrationErrorDetails,l=az((t=(n=rt((0,x.useState)(\"undefined\"!=typeof localStorage&&localStorage.getItem(J)?Number(localStorage.getItem(J)):S.Medium),2))[0],r=n[1],[t,function(e){r(e),localStorage.setItem(J,String(e))}]),2),s=l[0],c=l[1],u=az((0,x.useState)(!1),2),d=u[0],f=u[1],p=null!==o.buildError;return false&&(0),(0,y.jsxs)(ed,{children:[(0,y.jsx)(ap,{}),(0,y.jsx)(ep,{scale: false?0:s}),(0,y.jsx)(ag,{}),(0,y.jsx)(ad,{}),(0,y.jsx)(a_,{}),(0,y.jsx)(ak,{state:o,dispatch:a,isAppDir:!0,children:function(e){var n=e.runtimeErrors,t=e.totalErrorCount;return(0,y.jsx)(y.Fragment,{children:o.showIndicator&&( false?0:(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(rU,{scale:s,setScale:c,state:o,dispatch:a,errorCount:t,isBuildError:p}),(0,y.jsx)(ab,{state:o,dispatch:a,getSquashedHydrationErrorDetails:i,runtimeErrors:n,errorCount:t})]}))})}})]})}var aT=__nested_webpack_require_381207__(\"./src/next-devtools/dev-overlay/segment-explorer-trie.ts\");function aR(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=Array(n);t<n;t++)r[t]=e[t];return r}function aN(e){return function(e){if(Array.isArray(e))return aR(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||aD(e)||function(){throw TypeError(\"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function aD(e,n){if(e){if(\"string\"==typeof e)return aR(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return aR(e,n)}}var aB=null,aM=[];function aI(e){return function(){for(var n=arguments.length,t=Array(n),r=0;r<n;r++)t[r]=arguments[r];aB?e.apply(void 0,[aB].concat(aN(t))):aM.push(function(n){e.apply(void 0,[n].concat(aN(t)))})}}var aH={onBuildOk:aI(function(e){e({type:_})}),onBuildError:aI(function(e,n){e({type:P,message:n})}),onBeforeRefresh:aI(function(e){e({type:z})}),onRefresh:aI(function(e){e({type:L})}),onVersionInfo:aI(function(e,n){e({type:T,versionInfo:n})}),onStaticIndicator:aI(function(e,n){e({type:E,staticIndicator:n})}),onDebugInfo:aI(function(e,n){e({type:D,debugInfo:n})}),onDevIndicator:aI(function(e,n){e({type:B,devIndicator:n})}),onUnhandledError:aI(function(e,n){e({type:R,reason:n})}),onUnhandledRejection:aI(function(e,n){e({type:N,reason:n})}),openErrorOverlay:aI(function(e){e({type:M})}),closeErrorOverlay:aI(function(e){e({type:I})}),toggleErrorOverlay:aI(function(e){e({type:H})}),buildingIndicatorHide:aI(function(e){e({type:U})}),buildingIndicatorShow:aI(function(e){e({type:F})}),renderingIndicatorHide:aI(function(e){e({type:q})}),renderingIndicatorShow:aI(function(e){e({type:V})}),segmentExplorerNodeAdd:aI(function(e,n){(0,aT.th)(n)}),segmentExplorerNodeRemove:aI(function(e,n){(0,aT._c)(n)}),segmentExplorerUpdateRouteState:aI(function(e,n){e({type:ee,page:n})})};function aF(e){var n,t,r=e.getComponentStack,o=e.getOwnerStack,a=e.getSquashedHydrationErrorDetails,i=e.isRecoverableError,l=(n=function(e,n,t,r){var o;function a(e,o,a){var i,l=n(a),s=void 0===l?void 0:function(e){var n=[],t=!0,r=!1,o=void 0;try{for(var a,i=e.trim().split(\"\\n\")[Symbol.iterator]();!(t=(a=i.next()).done);t=!0){var l=a.value,s=/at ([^ ]+)( \\((.*)\\))?/.exec(l);if(null==s?void 0:s[1]){var c=s[1],u=s[3];if(!u){n.push({canOpenInEditor:!1,component:c});continue}if(null==u?void 0:u.includes(\"next/dist\"))break;var d=function(e){var n,t,r,o,a=(r=e).startsWith(\"file://\")?\"file\":r.includes(\"webpack-internal://\")?\"webpack-internal\":r.startsWith(\"http://\")||r.startsWith(\"https://\")?\"http\":r.startsWith(\"//\")?\"protocol-relative\":\"unknown\",i=null==e?void 0:e.replace(/^(webpack-internal:\\/\\/\\/|file:\\/\\/)(\\(.*\\)\\/)?/,\"\"),l=(n=null!=(o=null==i?void 0:i.match(/^(.+):(\\d+):(\\d+)/))?o:[],t=4,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,4)||function(e,n){if(e){if(\"string\"==typeof e)return w(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);if(\"Object\"===t&&e.constructor&&(t=e.constructor.name),\"Map\"===t||\"Set\"===t)return Array.from(t);if(\"Arguments\"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return w(e,n)}}(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),s=l[1],c=l[2],u=l[3];switch(a){case\"file\":case\"webpack-internal\":return{canOpenInEditor:!0,file:s,lineNumber:c?Number(c):void 0,column:u?Number(u):void 0};default:return{canOpenInEditor:!1}}}(u);n.push(function(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},r=Object.keys(t);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(n){var r,o,a;r=e,o=n,a=t[n],o in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a})}return e}({component:c},d))}}}catch(e){r=!0,o=e}finally{try{t||null==i.return||i.return()}finally{if(r)throw o}}return n}(l),c=t(a),u=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:process.env.__NEXT_DIST_DIR;return e?(e=e.split(\"\\n\").map(function(e){return e.includes(\"(eval \")&&(e=e.replace(/eval code/g,\"eval\").replace(/\\(eval at [^()]* \\(/,\"(file://\").replace(/\\),.*$/g,\")\")),e}).join(\"\\n\"),(0,j.parse)(e).map(function(e){try{var t=new URL(e.file),r=k.exec(t.pathname);if(r){var o,a=null==n||null==(o=n.replace(/\\\\/g,\"/\"))?void 0:o.replace(/\\/$/,\"\");a&&(e.file=\"file://\"+a.concat(r.pop())+t.search)}}catch(e){}return e})):[]}((a.stack||\"\")+(c||\"\")),d={id:o,error:a,frames:u,componentStackFrames:s,type:r(a)?\"recoverable\":(i=a)&&\"NEXT_CONSOLE_ERROR\"===i[A]?\"console\":\"runtime\"},f=e.filter(function(e){return e.error.stack!==d.error.stack&&et(e.error.stack)!==et(d.error.stack)||t(e.error)!==t(d.error)});return f.length===e.length?(f.push(d),f):e}return(0,x.useReducer)(function(e,n){switch(n.type){case D:return C(O({},e),{debugInfo:n.debugInfo});case E:return C(O({},e),{staticIndicator:n.staticIndicator});case _:return C(O({},e),{buildError:null});case P:return C(O({},e),{buildError:n.message});case z:return C(O({},e),{refreshState:{type:\"pending\",errors:[]}});case L:return C(O({},e),{buildError:null,errors:\"pending\"===e.refreshState.type?e.refreshState.errors:[],refreshState:{type:\"idle\"}});case R:case N:switch(e.refreshState.type){case\"idle\":return C(O({},e),{nextId:e.nextId+1,errors:a(e.errors,e.nextId,n.reason)});case\"pending\":return C(O({},e),{nextId:e.nextId+1,refreshState:C(O({},e.refreshState),{errors:a(e.errors,e.nextId,n.reason)})});default:return e}case T:return C(O({},e),{versionInfo:n.versionInfo});case B:return C(O({},e),{showIndicator:!0,disableDevIndicator:er||!!n.devIndicator.disabledUntil});case M:return C(O({},e),{isErrorOverlayOpen:!0});case I:return C(O({},e),{isErrorOverlayOpen:!1});case H:return C(O({},e),{isErrorOverlayOpen:!e.isErrorOverlayOpen});case F:return C(O({},e),{buildingIndicator:!0});case U:return C(O({},e),{buildingIndicator:!1});case V:return C(O({},e),{renderingIndicator:!0});case q:return C(O({},e),{renderingIndicator:!1});case W:return C(O({},e),{isDevToolsPanelOpen:!0});case $:return C(O({},e),{isDevToolsPanelOpen:!1});case Z:return C(O({},e),{isDevToolsPanelOpen:!e.isDevToolsPanelOpen});case Y:return C(O({},e),{devToolsPosition:n.devToolsPosition});case X:return C(O({},e),{scale:n.scale});case ee:return C(O({},e),{page:n.page});case K:return C(O({},e),{showRestartServerButton:n.showRestartServerButton});default:return e}},(o=e,C(O({},eo),{isErrorOverlayOpen:\"pages\"===o,routerType:o})))}(e.routerType,r,o,i),t=2,function(e){if(Array.isArray(e))return e}(n)||function(e,n){var t,r,o=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=o){var a=[],i=!0,l=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==n);i=!0);}catch(e){l=!0,r=e}finally{try{i||null==o.return||o.return()}finally{if(l)throw r}}return a}}(n,2)||aD(n,t)||function(){throw TypeError(\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()),s=l[0],c=l[1];return(0,x.useInsertionEffect)(function(){aB=c;var e=setTimeout(function(){!function(e){try{var n=!0,t=!1,r=void 0;try{for(var o,a=aM[Symbol.iterator]();!(n=(o=a.next()).done);n=!0)(0,o.value)(e)}catch(e){t=!0,r=e}finally{try{n||null==a.return||a.return()}finally{if(t)throw r}}}finally{aM.length=0}}(c)});return function(){aB=null,clearTimeout(e)}},[]),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(es,{}),(0,y.jsx)(aL,{state:s,dispatch:c,getSquashedHydrationErrorDetails:a})]})}var aU=!1,aV=!1;function aq(){return null}function aW(e,n,t){if(aU)throw Error(\"Next DevTools: Pages Dev Overlay is already mounted. This is a bug in Next.js\");if(!aV){var r=document.createElement(\"script\");r.style.display=\"block\",r.style.position=\"absolute\",r.setAttribute(\"data-nextjs-dev-overlay\",\"true\");var o=document.createElement(\"nextjs-portal\");r.appendChild(o),document.body.appendChild(r);var a=(0,ea.createRoot)(o,{identifierPrefix:\"ndt-\"});(0,x.startTransition)(function(){a.render((0,y.jsx)(aF,{getComponentStack:e,getOwnerStack:n,getSquashedHydrationErrorDetails:aq,isRecoverableError:t,routerType:\"app\"}))}),aV=!0}}function a$(e,n,t,r){if(aV)throw Error(\"Next DevTools: App Dev Overlay is already mounted. This is a bug in Next.js\");if(!aU){var o=document.createElement(\"nextjs-portal\");o.style.position=\"absolute\",new MutationObserver(function(e){var n=!0,t=!1,r=void 0;try{for(var a,i=e[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var l=a.value;if(\"childList\"===l.type){var s=!0,c=!1,u=void 0;try{for(var d,f=l.removedNodes[Symbol.iterator]();!(s=(d=f.next()).done);s=!0)d.value===o&&document.body.appendChild(o)}catch(e){c=!0,u=e}finally{try{s||null==f.return||f.return()}finally{if(c)throw u}}}}}catch(e){t=!0,r=e}finally{try{n||null==i.return||i.return()}finally{if(t)throw r}}}).observe(document.body,{childList:!0}),document.body.appendChild(o);var a=(0,ea.createRoot)(o);(0,x.startTransition)(function(){a.render((0,y.jsx)(aF,{getComponentStack:e,getOwnerStack:n,getSquashedHydrationErrorDetails:t,isRecoverableError:r,routerType:\"pages\"}))}),aU=!0}}})(),exports.dispatcher=__nested_webpack_exports__.dispatcher,exports.renderAppDevOverlay=__nested_webpack_exports__.renderAppDevOverlay,exports.renderPagesDevOverlay=__nested_webpack_exports__.renderPagesDevOverlay,__nested_webpack_exports__)-1===[\"dispatcher\",\"renderAppDevOverlay\",\"renderPagesDevOverlay\"].indexOf(__webpack_i__)&&(exports[__webpack_i__]=__nested_webpack_exports__[__webpack_i__]);Object.defineProperty(exports, \"__esModule\", ({value:!0}));\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtZGV2dG9vbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUEseUJBQXlCLG1QQUFtUCxhQUFhLE9BQU8sUUFBUSxFQUFFLDhhQUE4YTtBQUN4dEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sbUdBQW1HLFlBQVksYUFBYSxXQUFXLE9BQU8sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxPQUFPLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLGFBQWEsT0FBTyxLQUFLLEtBQUssT0FBTyxhQUFhLFdBQVcsWUFBWSxPQUFPLEtBQUssS0FBSyxPQUFPLGFBQWEsV0FBVyxZQUFZLE9BQU8sS0FBSyxLQUFLLE9BQU8sYUFBYSxXQUFXLFlBQVksT0FBTyxLQUFLLEtBQUssT0FBTyxhQUFhLFdBQVcsWUFBWSxPQUFPLEtBQUssWUFBWSwwQ0FBMEMsdUJBQXVCLDBCQUEwQixtQkFBbUIsR0FBRyxjQUFjLHVCQUF1QixzQkFBc0IsdUJBQXVCLG9CQUFvQixxQkFBcUIseUJBQXlCLEdBQUcsb0JBQW9CLHVCQUF1QixhQUFhLGNBQWMsd0JBQXdCLHlDQUF5Qyw4QkFBOEIsR0FBRyx5QkFBeUIsOEZBQThGLDhDQUE4QyxjQUFjLGdDQUFnQyxHQUFHLDRCQUE0Qiw4RkFBOEYsaURBQWlELFdBQVcsaUNBQWlDLEdBQUcsMEJBQTBCLDhGQUE4Riwr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O0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU0saUlBQWlJLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLFdBQVcsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE9BQU8sS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLFdBQVcsWUFBWSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxXQUFXLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLEtBQUssS0FBSyxZQUFZLE9BQU8sS0FBSyxZQUFZLFdBQVcsWUFBWSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsT0FBTyxLQUFLLFlBQVksYUFBYSxPQUFPLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksYUFBYSxhQUFhLFdB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QUFJLEVBQUUsa0JBQWtCLHlCQUF5Qiw0QkFBNEIseUJBQXlCLGdCQUFnQixzREFBc0QsR0FBRyxFQUFFLGdCQUFnQixjQUFjLFlBQVksbUJBQW1CLG1HQUFtRyxRQUFRLHVDQUF1QyxxR0FBcUcsOENBQThDLDhDQUE4QywyQkFBMkIsd0JBQXdCLEVBQUUsaUNBQWlDLHVCQUF1Qiw4R0FBOEcsR0FBRyxTQUFTLHFCQUFxQixpR0FBaUcsUUFBUSw4Q0FBOEMsNkRBQTZELHVCQUF1QixJQUFJLGlDQUFpQyx1QkFBdUIsTUFBTSxjQUFjLHlCQUF5Qix1QkFBdUIsSUFBSSw4Q0FBOEMsdUJBQXVCLCtDQUErQyxTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGlCQUFpQixTQUFTLFNBQVMsUUFBUSxJQUFJLDhCQUE4QixRQUFRLGVBQWUseUJBQXlCLGFBQWEsK0JBQStCLDJCQUEyQixpQ0FBaUMsdUJBQXVCLCtHQUErRyxHQUFHLFVBQVUsSUFBSSxrQkFBa0IsQ0FBQywwQkFBbUIsWUFBWSwyQkFBMkIsQ0FBQywwQkFBbUIscUJBQXFCLDZCQUE2QixDQUFDLDBCQUFtQix1QkFBdUIsMEJBQW1CLG1IQUFtSCwwQkFBbUIsaUJBQWlCLDhDQUEyQyxDQUFDLFNBQVMsRUFBQztBQUMxN2lZIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtZGV2dG9vbHMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fd2VicGFja19tb2R1bGVzX189e1wiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2NvbXBvbmVudHMvdG9vbHRpcC5jc3NcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se1o6KCk9Pmx9KTt2YXIgcj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPXQubihyKSxhPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT10Lm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnRvb2x0aXAtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi50b29sdGlwLWFycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCk7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi50b29sdGlwLWFycm93LS10b3Age1xuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCkgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KSAwXG4gICAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZy1jb2xvcik7XG4gIGJvdHRvbTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xufVxuXG4udG9vbHRpcC1hcnJvdy0tYm90dG9tIHtcbiAgYm9yZGVyLXdpZHRoOiAwIHZhcigtLWFycm93LXNpemUsIDZweCkgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRvb2x0aXAtYmctY29sb3IpO1xuICB0b3A6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG59XG5cbi50b29sdGlwLWFycm93LS1sZWZ0IHtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxuICAgIHZhcigtLWFycm93LXNpemUsIDZweCk7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS10b29sdGlwLWJnLWNvbG9yKTtcbiAgcmlnaHQ6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbn1cblxuLnRvb2x0aXAtYXJyb3ctLXJpZ2h0IHtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIHZhcigtLWFycm93LXNpemUsIDZweClcbiAgICB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDA7XG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tdG9vbHRpcC1iZy1jb2xvcik7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG59XG5cbi50b29sdGlwLXBvc2l0aW9uZXIge1xuICB6LWluZGV4OiB2YXIoLS10b3Atei1pbmRleCk7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2NvbXBvbmVudHMvdG9vbHRpcC5jc3NcIl0sbmFtZXM6W10sbWFwcGluZ3M6XCJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFNBQVM7RUFDVCxtQkFBbUI7RUFDbkIsb0NBQW9DO0VBQ3BDLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFOzBCQUN3QjtFQUN4Qix5Q0FBeUM7RUFDekMsU0FBUztFQUNULDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFOzBCQUN3QjtFQUN4Qiw0Q0FBNEM7RUFDNUMsTUFBTTtFQUNOLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFOzBCQUN3QjtFQUN4QiwwQ0FBMEM7RUFDMUMsUUFBUTtFQUNSLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFOzRCQUMwQjtFQUMxQiwyQ0FBMkM7RUFDM0MsT0FBTztFQUNQLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLDJCQUEyQjtBQUM3QlwiLHNvdXJjZXNDb250ZW50OltcIi50b29sdGlwLXdyYXBwZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxufVxcblxcbi50b29sdGlwIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmc6IDZweCAxMnB4O1xcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgbGluZS1oZWlnaHQ6IDEuNDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMDtcXG4gIGhlaWdodDogMDtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCk7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdy0tdG9wIHtcXG4gIGJvcmRlci13aWR0aDogdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KSB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDBcXG4gICAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KTtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXRvb2x0aXAtYmctY29sb3IpO1xcbiAgYm90dG9tOiAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xcbn1cXG5cXG4udG9vbHRpcC1hcnJvdy0tYm90dG9tIHtcXG4gIGJvcmRlci13aWR0aDogMCB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIHZhcigtLWFycm93LXNpemUsIDZweClcXG4gICAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KTtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRvb2x0aXAtYmctY29sb3IpO1xcbiAgdG9wOiAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcXG59XFxuXFxuLnRvb2x0aXAtYXJyb3ctLWxlZnQge1xcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDAgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxcbiAgICB2YXIoLS1hcnJvdy1zaXplLCA2cHgpO1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmctY29sb3IpO1xcbiAgcmlnaHQ6IDA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxufVxcblxcbi50b29sdGlwLWFycm93LS1yaWdodCB7XFxuICBib3JkZXItd2lkdGg6IHZhcigtLWFycm93LXNpemUsIDZweCkgdmFyKC0tYXJyb3ctc2l6ZSwgNnB4KVxcbiAgICB2YXIoLS1hcnJvdy1zaXplLCA2cHgpIDA7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLXRvb2x0aXAtYmctY29sb3IpO1xcbiAgbGVmdDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxufVxcblxcbi50b29sdGlwLXBvc2l0aW9uZXIge1xcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZGV2dG9vbHMtcGFuZWwvcmVzaXplL3Jlc2l6ZS1oYW5kbGUuY3NzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3QuZChuLHtaOigpPT5sfSk7dmFyIHI9dChcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIiksbz10Lm4ociksYT10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCIpLGk9dC5uKGEpKCkobygpKTtpLnB1c2goW2UuaWQsYC5yZXNpemUtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvKiB0b2RvOiBiZXR0ZXIgeiBpbmRleCAqL1xuICB6LWluZGV4OiAxMDtcbiAgLyogdG9kbzogaXMgdGhpcyBuZWVkZWQgKi9cbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5yZXNpemUtbGluZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLyogdG9kbyBzbWFydGVyIHogaW5kZXggKi9cbiAgei1pbmRleDogLTE7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAvKiBhIG5vcm1hbCBleGl0IGFuaW1hdGlvbiBjdXJ2ZS0gYXQgdGhpcyBwb2ludCB0aGUgZXhpdCBhbmltYXRpb24gaXMgKi9cbiAgLyogaW1tZWRpYXRlbHkgcmVzcG9uc2l2ZSBzbyB3ZSBkb24ndCBuZWVkIGEgYmVzcG9rZSBjdXJ2ZSAqL1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICAvKiB0b2RvOiBiZXR0ZXIgdmFyPyAqL1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XG59XG5cbi8qIHN0YXJ0IHJlYWxseSBmYXN0IGJlY2F1c2Ugd2Ugc3RhcnQgc3VwZXIgaGlkZGVuIGluaXRpYWxseSBiZWhpbmQgdGhlIHBhbmVsLCBvdGhlcndpc2UgZmVlbHMgbGlrZSBhbiB1bmludGVuZGVkIGFuaW1hdGlvbiBkZWxheSAqL1xuLnJlc2l6ZS1jb250YWluZXI6aG92ZXIgfiAucmVzaXplLWxpbmUge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMC4wNSwgMC45LCAwLjIsIDEpOyAvKiBGYXN0IHN0YXJ0IGZvciBhbmltYXRlIGluICovXG59XG5cbi5yZXNpemUtY29udGFpbmVyLnJpZ2h0LFxuLnJlc2l6ZS1jb250YWluZXIubGVmdCB7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMjVweDtcbiAgY3Vyc29yOiBldy1yZXNpemU7XG59XG5cbi8qIHRvZG86IGRvbid0IGhhcmQgY29kZSBhbGwgdGhlc2UgdmFsdWVzL3VzZSB2YXJzICovXG5cbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbSxcbi5yZXNpemUtY29udGFpbmVyLnRvcCB7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDI1cHg7XG4gIGN1cnNvcjogbnMtcmVzaXplO1xufVxuXG4ucmVzaXplLWNvbnRhaW5lci50b3Age1xuICB0b3A6IC0xMnB4O1xufVxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tIHtcbiAgYm90dG9tOiAtMTJweDtcbn1cbi5yZXNpemUtY29udGFpbmVyLmxlZnQge1xuICBsZWZ0OiAtMTJweDtcbn1cbi5yZXNpemUtY29udGFpbmVyLnJpZ2h0IHtcbiAgcmlnaHQ6IC0xMnB4O1xufVxuXG4ucmVzaXplLWNvbnRhaW5lci50b3AtbGVmdCxcbi5yZXNpemUtY29udGFpbmVyLnRvcC1yaWdodCxcbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbS1sZWZ0LFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgei1pbmRleDogMTU7XG59XG5cbi5yZXNpemUtY29udGFpbmVyLnRvcC1sZWZ0IHtcbiAgdG9wOiAtMTZweDtcbiAgbGVmdDogLTE2cHg7XG4gIGN1cnNvcjogbndzZS1yZXNpemU7XG59XG4ucmVzaXplLWNvbnRhaW5lci50b3AtcmlnaHQge1xuICB0b3A6IC0xNnB4O1xuICByaWdodDogLTE2cHg7XG4gIGN1cnNvcjogbmVzdy1yZXNpemU7XG59XG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20tbGVmdCB7XG4gIGJvdHRvbTogLTE2cHg7XG4gIGxlZnQ6IC0xNnB4O1xuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xufVxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcbiAgYm90dG9tOiAtMTZweDtcbiAgcmlnaHQ6IC0xNnB4O1xuICBjdXJzb3I6IG53c2UtcmVzaXplO1xufVxuXG4ucmVzaXplLWxpbmUudG9wLFxuLnJlc2l6ZS1saW5lLmJvdHRvbSB7XG4gIGhlaWdodDogMjhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbn1cblxuLnJlc2l6ZS1saW5lLmxlZnQsXG4ucmVzaXplLWxpbmUucmlnaHQge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XG59XG5cbi5yZXNpemUtbGluZS50b3Age1xuICB0b3A6IC0xMnB4O1xuICBsZWZ0OiBjYWxjKC0xICogdmFyKC0tYm9yZGVyLWxlZnQsIDJweCkpO1xuICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tYm9yZGVyLWhvcml6b250YWwsIDRweCkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kKSB2YXIoLS1yb3VuZGVkLW1kKSAwIDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyOHB4KTtcbn1cblxuLnJlc2l6ZS1saW5lLmJvdHRvbSB7XG4gIGJvdHRvbTogLTEycHg7XG4gIGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItbGVmdCwgMnB4KSk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItaG9yaXpvbnRhbCwgNHB4KSk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1yb3VuZGVkLW1kKSB2YXIoLS1yb3VuZGVkLW1kKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yOHB4KTtcbn1cblxuLnJlc2l6ZS1saW5lLmxlZnQge1xuICB0b3A6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItdG9wLCAycHgpKTtcbiAgbGVmdDogLTEycHg7XG4gIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tYm9yZGVyLXZlcnRpY2FsLCA0cHgpKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZCkgMCAwIHZhcigtLXJvdW5kZWQtbWQpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjhweCk7XG59XG5cbi5yZXNpemUtbGluZS5yaWdodCB7XG4gIHRvcDogY2FsYygtMSAqIHZhcigtLWJvcmRlci10b3AsIDJweCkpO1xuICByaWdodDogLTEycHg7XG4gIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tYm9yZGVyLXZlcnRpY2FsLCA0cHgpKTtcbiAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1yb3VuZGVkLW1kKSB2YXIoLS1yb3VuZGVkLW1kKSAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI4cHgpO1xufVxuXG4ucmVzaXplLWNvbnRhaW5lci5yaWdodDpob3ZlciB+IC5yZXNpemUtbGluZS5yaWdodCxcbi5yZXNpemUtY29udGFpbmVyLmxlZnQ6aG92ZXIgfiAucmVzaXplLWxpbmUubGVmdCxcbi5yZXNpemUtbGluZS5yaWdodC5kcmFnZ2luZyxcbi5yZXNpemUtbGluZS5sZWZ0LmRyYWdnaW5nIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b206aG92ZXIgfiAucmVzaXplLWxpbmUuYm90dG9tLFxuLnJlc2l6ZS1jb250YWluZXIudG9wOmhvdmVyIH4gLnJlc2l6ZS1saW5lLnRvcCxcbi5yZXNpemUtbGluZS5ib3R0b20uZHJhZ2dpbmcsXG4ucmVzaXplLWxpbmUudG9wLmRyYWdnaW5nIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4vKiBtYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBzaG93IG11bHRpcGxlIGhhbmRsZXMgYXQgb25jZVxuICogd2Ugc2hvdWxkIG9ubHkgZXZlciBzaG93IHRoZSBjdXJyZW50bHkgcmVzaXppbmcgaGFuZGxlXG4gKiByZWdhcmRsZXNzIG9mIGhvdmVyIHN0YXRlIFxuICovXG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci5yaWdodDpob3ZlciB+IC5yZXNpemUtbGluZS5yaWdodCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjhweCk7XG59XG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci5sZWZ0OmhvdmVyIH4gLnJlc2l6ZS1saW5lLmxlZnQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjhweCk7XG59XG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci5ib3R0b206aG92ZXIgfiAucmVzaXplLWxpbmUuYm90dG9tIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yOHB4KTtcbn1cbi5yZXNpemUtY29udGFpbmVyLm5vLWhvdmVyLnRvcDpob3ZlciB+IC5yZXNpemUtbGluZS50b3Age1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjhweCk7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZGV2dG9vbHMtcGFuZWwvcmVzaXplL3Jlc2l6ZS1oYW5kbGUuY3NzXCJdLG5hbWVzOltdLG1hcHBpbmdzOlwiQUFBQTtFQUNFLGtCQUFrQjtFQUNsQix5QkFBeUI7RUFDekIsV0FBVztFQUNYLHlCQUF5QjtFQUN6Qix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIseUJBQXlCO0VBQ3pCLFdBQVc7RUFDWCxvQkFBb0I7RUFDcEIsdUVBQXVFO0VBQ3ZFLDREQUE0RDtFQUM1RCx1REFBdUQ7RUFDdkQsc0JBQXNCO0VBQ3RCLHVDQUF1QztBQUN6Qzs7QUFFQSxtSUFBbUk7QUFDbkk7RUFDRSwwREFBMEQsRUFBRSw4QkFBOEI7QUFDNUY7O0FBRUE7O0VBRUUsTUFBTTtFQUNOLFlBQVk7RUFDWixXQUFXO0VBQ1gsaUJBQWlCO0FBQ25COztBQUVBLG9EQUFvRDs7QUFFcEQ7O0VBRUUsT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1osaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsVUFBVTtBQUNaO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsWUFBWTtBQUNkOztBQUVBOzs7O0VBSUUsV0FBVztFQUNYLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UsVUFBVTtFQUNWLFlBQVk7RUFDWixtQkFBbUI7QUFDckI7QUFDQTtFQUNFLGFBQWE7RUFDYixXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCO0FBQ0E7RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLG1CQUFtQjtBQUNyQjs7QUFFQTs7RUFFRSxZQUFZO0VBQ1osV0FBVztFQUNYLDZDQUE2QztBQUMvQzs7QUFFQTs7RUFFRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLDZDQUE2QztBQUMvQzs7QUFFQTtFQUNFLFVBQVU7RUFDVix3Q0FBd0M7RUFDeEMsaURBQWlEO0VBQ2pELHNEQUFzRDtFQUN0RCwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isd0NBQXdDO0VBQ3hDLGlEQUFpRDtFQUNqRCxzREFBc0Q7RUFDdEQsNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0Usc0NBQXNDO0VBQ3RDLFdBQVc7RUFDWCxnREFBZ0Q7RUFDaEQsc0RBQXNEO0VBQ3RELDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLHNDQUFzQztFQUN0QyxZQUFZO0VBQ1osZ0RBQWdEO0VBQ2hELHNEQUFzRDtFQUN0RCw0QkFBNEI7QUFDOUI7O0FBRUE7Ozs7RUFJRSx3QkFBd0I7QUFDMUI7O0FBRUE7Ozs7RUFJRSx3QkFBd0I7QUFDMUI7O0FBRUE7OztFQUdFO0FBQ0Y7RUFDRSw0QkFBNEI7QUFDOUI7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0JcIixzb3VyY2VzQ29udGVudDpbXCIucmVzaXplLWNvbnRhaW5lciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAvKiB0b2RvOiBiZXR0ZXIgeiBpbmRleCAqL1xcbiAgei1pbmRleDogMTA7XFxuICAvKiB0b2RvOiBpcyB0aGlzIG5lZWRlZCAqL1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcblxcbi5yZXNpemUtbGluZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAvKiB0b2RvIHNtYXJ0ZXIgeiBpbmRleCAqL1xcbiAgei1pbmRleDogLTE7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIC8qIGEgbm9ybWFsIGV4aXQgYW5pbWF0aW9uIGN1cnZlLSBhdCB0aGlzIHBvaW50IHRoZSBleGl0IGFuaW1hdGlvbiBpcyAqL1xcbiAgLyogaW1tZWRpYXRlbHkgcmVzcG9uc2l2ZSBzbyB3ZSBkb24ndCBuZWVkIGEgYmVzcG9rZSBjdXJ2ZSAqL1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcXG4gIC8qIHRvZG86IGJldHRlciB2YXI/ICovXFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxufVxcblxcbi8qIHN0YXJ0IHJlYWxseSBmYXN0IGJlY2F1c2Ugd2Ugc3RhcnQgc3VwZXIgaGlkZGVuIGluaXRpYWxseSBiZWhpbmQgdGhlIHBhbmVsLCBvdGhlcndpc2UgZmVlbHMgbGlrZSBhbiB1bmludGVuZGVkIGFuaW1hdGlvbiBkZWxheSAqL1xcbi5yZXNpemUtY29udGFpbmVyOmhvdmVyIH4gLnJlc2l6ZS1saW5lIHtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGN1YmljLWJlemllcigwLjA1LCAwLjksIDAuMiwgMSk7IC8qIEZhc3Qgc3RhcnQgZm9yIGFuaW1hdGUgaW4gKi9cXG59XFxuXFxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQsXFxuLnJlc2l6ZS1jb250YWluZXIubGVmdCB7XFxuICB0b3A6IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMjVweDtcXG4gIGN1cnNvcjogZXctcmVzaXplO1xcbn1cXG5cXG4vKiB0b2RvOiBkb24ndCBoYXJkIGNvZGUgYWxsIHRoZXNlIHZhbHVlcy91c2UgdmFycyAqL1xcblxcbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbSxcXG4ucmVzaXplLWNvbnRhaW5lci50b3Age1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAyNXB4O1xcbiAgY3Vyc29yOiBucy1yZXNpemU7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLnRvcCB7XFxuICB0b3A6IC0xMnB4O1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5ib3R0b20ge1xcbiAgYm90dG9tOiAtMTJweDtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIubGVmdCB7XFxuICBsZWZ0OiAtMTJweDtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQge1xcbiAgcmlnaHQ6IC0xMnB4O1xcbn1cXG5cXG4ucmVzaXplLWNvbnRhaW5lci50b3AtbGVmdCxcXG4ucmVzaXplLWNvbnRhaW5lci50b3AtcmlnaHQsXFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLWxlZnQsXFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgei1pbmRleDogMTU7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLnRvcC1sZWZ0IHtcXG4gIHRvcDogLTE2cHg7XFxuICBsZWZ0OiAtMTZweDtcXG4gIGN1cnNvcjogbndzZS1yZXNpemU7XFxufVxcbi5yZXNpemUtY29udGFpbmVyLnRvcC1yaWdodCB7XFxuICB0b3A6IC0xNnB4O1xcbiAgcmlnaHQ6IC0xNnB4O1xcbiAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLWxlZnQge1xcbiAgYm90dG9tOiAtMTZweDtcXG4gIGxlZnQ6IC0xNnB4O1xcbiAgY3Vyc29yOiBuZXN3LXJlc2l6ZTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIuYm90dG9tLXJpZ2h0IHtcXG4gIGJvdHRvbTogLTE2cHg7XFxuICByaWdodDogLTE2cHg7XFxuICBjdXJzb3I6IG53c2UtcmVzaXplO1xcbn1cXG5cXG4ucmVzaXplLWxpbmUudG9wLFxcbi5yZXNpemUtbGluZS5ib3R0b20ge1xcbiAgaGVpZ2h0OiAyOHB4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxufVxcblxcbi5yZXNpemUtbGluZS5sZWZ0LFxcbi5yZXNpemUtbGluZS5yaWdodCB7XFxuICB3aWR0aDogMjhweDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG59XFxuXFxuLnJlc2l6ZS1saW5lLnRvcCB7XFxuICB0b3A6IC0xMnB4O1xcbiAgbGVmdDogY2FsYygtMSAqIHZhcigtLWJvcmRlci1sZWZ0LCAycHgpKTtcXG4gIHdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItaG9yaXpvbnRhbCwgNHB4KSk7XFxuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kKSB2YXIoLS1yb3VuZGVkLW1kKSAwIDA7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjhweCk7XFxufVxcblxcbi5yZXNpemUtbGluZS5ib3R0b20ge1xcbiAgYm90dG9tOiAtMTJweDtcXG4gIGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1ib3JkZXItbGVmdCwgMnB4KSk7XFxuICB3aWR0aDogY2FsYygxMDAlICsgdmFyKC0tYm9yZGVyLWhvcml6b250YWwsIDRweCkpO1xcbiAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLXJvdW5kZWQtbWQpIHZhcigtLXJvdW5kZWQtbWQpO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yOHB4KTtcXG59XFxuXFxuLnJlc2l6ZS1saW5lLmxlZnQge1xcbiAgdG9wOiBjYWxjKC0xICogdmFyKC0tYm9yZGVyLXRvcCwgMnB4KSk7XFxuICBsZWZ0OiAtMTJweDtcXG4gIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tYm9yZGVyLXZlcnRpY2FsLCA0cHgpKTtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbWQpIDAgMCB2YXIoLS1yb3VuZGVkLW1kKTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyOHB4KTtcXG59XFxuXFxuLnJlc2l6ZS1saW5lLnJpZ2h0IHtcXG4gIHRvcDogY2FsYygtMSAqIHZhcigtLWJvcmRlci10b3AsIDJweCkpO1xcbiAgcmlnaHQ6IC0xMnB4O1xcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1ib3JkZXItdmVydGljYWwsIDRweCkpO1xcbiAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1yb3VuZGVkLW1kKSB2YXIoLS1yb3VuZGVkLW1kKSAwO1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yOHB4KTtcXG59XFxuXFxuLnJlc2l6ZS1jb250YWluZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQsXFxuLnJlc2l6ZS1jb250YWluZXIubGVmdDpob3ZlciB+IC5yZXNpemUtbGluZS5sZWZ0LFxcbi5yZXNpemUtbGluZS5yaWdodC5kcmFnZ2luZyxcXG4ucmVzaXplLWxpbmUubGVmdC5kcmFnZ2luZyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XFxufVxcblxcbi5yZXNpemUtY29udGFpbmVyLmJvdHRvbTpob3ZlciB+IC5yZXNpemUtbGluZS5ib3R0b20sXFxuLnJlc2l6ZS1jb250YWluZXIudG9wOmhvdmVyIH4gLnJlc2l6ZS1saW5lLnRvcCxcXG4ucmVzaXplLWxpbmUuYm90dG9tLmRyYWdnaW5nLFxcbi5yZXNpemUtbGluZS50b3AuZHJhZ2dpbmcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbn1cXG5cXG4vKiBtYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBzaG93IG11bHRpcGxlIGhhbmRsZXMgYXQgb25jZVxcbiAqIHdlIHNob3VsZCBvbmx5IGV2ZXIgc2hvdyB0aGUgY3VycmVudGx5IHJlc2l6aW5nIGhhbmRsZVxcbiAqIHJlZ2FyZGxlc3Mgb2YgaG92ZXIgc3RhdGUgXFxuICovXFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIucmlnaHQ6aG92ZXIgfiAucmVzaXplLWxpbmUucmlnaHQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yOHB4KTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIubGVmdDpob3ZlciB+IC5yZXNpemUtbGluZS5sZWZ0IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyOHB4KTtcXG59XFxuLnJlc2l6ZS1jb250YWluZXIubm8taG92ZXIuYm90dG9tOmhvdmVyIH4gLnJlc2l6ZS1saW5lLmJvdHRvbSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI4cHgpO1xcbn1cXG4ucmVzaXplLWNvbnRhaW5lci5uby1ob3Zlci50b3A6aG92ZXIgfiAucmVzaXplLWxpbmUudG9wIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyOHB4KTtcXG59XFxuXCJdLHNvdXJjZVJvb3Q6XCJcIn1dKTtsZXQgbD1pfSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL292ZXJ2aWV3L3NlZ21lbnQtYm91bmRhcnktdHJpZ2dlci5jc3NcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se1o6KCk9Pmx9KTt2YXIgcj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPXQubihyKSxhPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT10Lm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiA0cHggNnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQgLnBsdXMtaWNvbiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHQ6aG92ZXIgLnBsdXMtaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIgc3ZnIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXI6aG92ZXIgc3ZnIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF0gc3ZnLFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF06aG92ZXIgc3ZnIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24ge1xuICBwYWRkaW5nOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBtaW4td2lkdGg6IDEyMHB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3gtc2hhZG93OiAwcHggNHB4IDhweCAtNHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci1ncmF5LTkwMCkgNCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24tcG9zaXRpb25lciB7XG4gIHotaW5kZXg6IHZhcigtLXRvcC16LWluZGV4KTtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24taXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDhweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtaW4td2lkdGg6IDIyMHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtW2RhdGEtZGlzYWJsZWRdIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZHJvcGRvd24taXRlbSBzdmcge1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA0cHg7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XG59XG5cbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcbn1cblxuLnNlZ21lbnQtYm91bmRhcnktZ3JvdXAtbGFiZWwge1xuICBwYWRkaW5nOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XG59XG5gLFwiXCIse3ZlcnNpb246Myxzb3VyY2VzOltcIndlYnBhY2s6Ly8uL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFFBQVE7RUFDUixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLFlBQVk7RUFDWix5QkFBeUI7RUFDekIsZUFBZTtFQUNmLHVDQUF1QztBQUN6Qzs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsZ0NBQWdDO0FBQ2xDOztBQUVBO0VBQ0UsNEJBQTRCO0FBQzlCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixjQUFjO0VBQ2Qsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsNEJBQTRCO0FBQzlCOztBQUVBOztFQUVFLDRCQUE0QjtFQUM1QixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osdUNBQXVDO0VBQ3ZDLHVDQUF1QztFQUN2QyxtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2Ysc0ZBQXNGO0FBQ3hGOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsNkJBQTZCO0VBQzdCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixXQUFXO0FBQ2I7O0FBRUE7RUFDRSw0QkFBNEI7RUFDNUIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQiw0QkFBNEI7QUFDOUI7O0FBRUE7RUFDRSw4QkFBOEI7RUFDOUIsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsWUFBWTtFQUNaLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLDRCQUE0QjtBQUM5QlwiLHNvdXJjZXNDb250ZW50OltcIi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBnYXA6IDRweDtcXG4gIHBhZGRpbmc6IDRweCA2cHg7XFxuICBsaW5lLWhlaWdodDogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcXG59XFxuXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci10ZXh0IHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci10ZXh0IC5wbHVzLWljb24ge1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2U7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXItdGV4dDpob3ZlciAucGx1cy1pY29uIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXIgc3ZnIHtcXG4gIHdpZHRoOiAxNHB4O1xcbiAgaGVpZ2h0OiAxNHB4O1xcbiAgZmxleC1zaHJpbms6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyOmhvdmVyIHN2ZyB7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS03MDApO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyW2Rpc2FibGVkXSBzdmcsXFxuLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlcltkaXNhYmxlZF06aG92ZXIgc3ZnIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93biB7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xcbiAgbWluLXdpZHRoOiAxMjBweDtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgYm94LXNoYWRvdzogMHB4IDRweCA4cHggLTRweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY29sb3ItZ3JheS05MDApIDQlLCB0cmFuc3BhcmVudCk7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLXBvc2l0aW9uZXIge1xcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgcGFkZGluZzogOHB4O1xcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIG1pbi13aWR0aDogMjIwcHg7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW1bZGF0YS1kaXNhYmxlZF0ge1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW0gc3ZnIHtcXG4gIG1hcmdpbi1yaWdodDogMTJweDtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06aG92ZXIge1xcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0yMDApO1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7XFxufVxcblxcbi5zZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW06bGFzdC1jaGlsZCB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG5cXG4uc2VnbWVudC1ib3VuZGFyeS1ncm91cC1sYWJlbCB7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBmb250LXNpemU6IDEzcHg7XFxuICBsaW5lLWhlaWdodDogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci5jc3NcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se1o6KCk9Pmx9KTt2YXIgcj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPXQubihyKSxhPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT10Lm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLnNlZ21lbnQtZXhwbG9yZXItY29udGVudCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICB3aWR0aDogNzAwcHg7XG4gIGhlaWdodDogNDAwcHg7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDQwcHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjQwcHgpO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xuICBnYXA6IDEycHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLXBhZ2Utcm91dGUtYmFyLXBhdGgge1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtIHtcbiAgbWFyZ2luOiA0cHggMDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItaXRlbS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItY2hpbGRyZW4tLWludGVuZGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlbmFtZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUgc2VsZWN0IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lLS1wYXRoIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGggc21hbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBvcGFjaXR5OiAwO1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLW5hbWUge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS04MDApO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlcyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVzICsgLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlciB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLS1vdmVycmlkZGVuIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW1iZXItMzAwKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTkwMCk7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwgLmNvZGUtaWNvbiB7XG4gIG9wYWNpdHk6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICB3aWR0aDogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2UtaW4tb3V0O1xufVxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbDpob3ZlciAuY29kZS1pY29uIHtcbiAgb3BhY2l0eTogMTtcbiAgd2lkdGg6IDEycHg7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWw6aG92ZXIge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45NSk7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLWJ1aWx0aW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcbiAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWdyYXktNTAwKTtcbiAgaGVpZ2h0OiAyNHB4O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLS1idWlsdGluIHN2ZyB7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIG1hcmdpbi1yaWdodDogLTRweDtcbn1cblxuLyogRm9vdGVyIHN0eWxlcyAqL1xuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyIHtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b24tLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItdGV4dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4td2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMCA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFtYmVyLTMwMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci05MDApO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC10b29sdGlwLS1zbSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtdG9vbHRpcC0tbGcge1xuICBtaW4td2lkdGg6IDIwMHB4O1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL292ZXJ2aWV3L3NlZ21lbnQtZXhwbG9yZXIuY3NzXCJdLG5hbWVzOltdLG1hcHBpbmdzOlwiQUFBQTtFQUNFLHlCQUF5QjtFQUN6QixjQUFjO0VBQ2QsWUFBWTtFQUNaLGFBQWE7RUFDYiw2QkFBNkI7RUFDN0IsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixrQkFBa0I7RUFDbEIsNkNBQTZDO0VBQzdDLFNBQVM7QUFDWDs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixnQkFBZ0I7RUFDaEIsNkJBQTZCO0VBQzdCLDZCQUE2QjtFQUM3QixtQkFBbUI7RUFDbkIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLDZDQUE2QztBQUMvQzs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZiw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxvQkFBb0I7RUFDcEIsV0FBVztFQUNYLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UscUJBQXFCO0VBQ3JCLFFBQVE7RUFDUixVQUFVO0FBQ1o7QUFDQTtFQUNFLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLG9CQUFvQjtFQUNwQixRQUFRO0VBQ1IsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsZUFBZTtFQUNmLHVDQUF1QztFQUN2Qyw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSx3Q0FBd0M7RUFDeEMsNkJBQTZCO0FBQy9COztBQUVBO0VBQ0UsVUFBVTtFQUNWLGNBQWM7RUFDZCxRQUFRO0VBQ1IsaUNBQWlDO0FBQ25DO0FBQ0E7RUFDRSxVQUFVO0VBQ1YsV0FBVztFQUNYLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLDZCQUE2QjtFQUM3Qiw0QkFBNEI7RUFDNUIsd0NBQXdDO0VBQ3hDLFlBQVk7RUFDWixlQUFlO0FBQ2pCO0FBQ0E7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBLGtCQUFrQjtBQUNsQjtFQUNFLFlBQVk7RUFDWiwyQ0FBMkM7RUFDM0MsNkNBQTZDO0VBQzdDLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQUNaLHVDQUF1QztFQUN2Qyx1Q0FBdUM7RUFDdkMsa0JBQWtCO0VBQ2xCLDZCQUE2QjtFQUM3Qix5QkFBeUI7RUFDekIsZ0JBQWdCO0VBQ2hCLGVBQWU7RUFDZix1Q0FBdUM7QUFDekM7O0FBRUE7RUFDRSxpQ0FBaUM7QUFDbkM7O0FBRUE7RUFDRSxZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsZUFBZTtFQUNmLFlBQVk7RUFDWixjQUFjO0VBQ2Qsa0NBQWtDO0VBQ2xDLDZCQUE2QjtFQUM3QixtQkFBbUI7RUFDbkIseUJBQXlCO0VBQ3pCLGdCQUFnQjtFQUNoQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCXCIsc291cmNlc0NvbnRlbnQ6W1wiLnNlZ21lbnQtZXhwbG9yZXItY29udGVudCB7XFxuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgcGFkZGluZzogMCA4cHg7XFxuICB3aWR0aDogNzAwcHg7XFxuICBoZWlnaHQ6IDQwMHB4O1xcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gNDBweCk7XFxuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjQwcHgpO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIHBhZGRpbmc6IDE0cHggMTZweDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gIGdhcDogMTJweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItcGFnZS1yb3V0ZS1iYXItcGF0aCB7XFxuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWl0ZW0ge1xcbiAgbWFyZ2luOiA0cHggMDtcXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItaXRlbTpudGgtY2hpbGQoZXZlbikge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1pdGVtLXJvdyB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIHBhZGRpbmctdG9wOiAxMHB4O1xcbiAgcGFkZGluZy1ib3R0b206IDEwcHg7XFxuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxuICB3aGl0ZS1zcGFjZTogcHJlO1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWNoaWxkcmVuLS1pbnRlbmRlZCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgd2lkdGg6IDEwMCU7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlbmFtZSBzZWxlY3Qge1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lLS1wYXRoIHtcXG4gIG1hcmdpbi1yaWdodDogYXV0bztcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGggc21hbGwge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDA7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlbmFtZS0tbmFtZSB7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS04MDApO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlcyB7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIGdhcDogOHB4O1xcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGVzICsgLnNlZ21lbnQtYm91bmRhcnktdHJpZ2dlciB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgcGFkZGluZzogNHB4IDZweDtcXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxuICBsaW5lLWhlaWdodDogMTZweDtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tb3ZlcnJpZGRlbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTkwMCk7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwgLmNvZGUtaWNvbiB7XFxuICBvcGFjaXR5OiAwO1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxuICB3aWR0aDogMDtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDtcXG59XFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbDpob3ZlciAuY29kZS1pY29uIHtcXG4gIG9wYWNpdHk6IDE7XFxuICB3aWR0aDogMTJweDtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWw6aG92ZXIge1xcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOTUpO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLS1idWlsdGluIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1jb2xvci1ncmF5LTUwMCk7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcbi5zZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLWJ1aWx0aW4gc3ZnIHtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxuICBtYXJnaW4tcmlnaHQ6IC00cHg7XFxufVxcblxcbi8qIEZvb3RlciBzdHlsZXMgKi9cXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXIge1xcbiAgcGFkZGluZzogOHB4O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBnYXA6IDhweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZzogNnB4O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b24tLWRpc2FibGVkIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5zZWdtZW50LWV4cGxvcmVyLWZvb3Rlci10ZXh0IHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZm9vdGVyLWJhZGdlIHtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgbWluLXdpZHRoOiAyMHB4O1xcbiAgaGVpZ2h0OiAyMHB4O1xcbiAgcGFkZGluZzogMCA2cHg7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTkwMCk7XFxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xcbiAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuXFxuLnNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC10b29sdGlwLS1zbSB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbn1cXG5cXG4uc2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRvb2x0aXAtLWxnIHtcXG4gIG1pbi13aWR0aDogMjAwcHg7XFxufVxcblwiXSxzb3VyY2VSb290OlwiXCJ9XSk7bGV0IGw9aX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy90b2FzdC9zdHlsZS5jc3NcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se1o6KCk9Pmx9KTt2YXIgcj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPXQubihyKSxhPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT10Lm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLm5leHRqcy10b2FzdCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogdmFyKC0tdG9wLXotaW5kZXgpO1xuICBtYXgtd2lkdGg6IDQyMHB4O1xuICBib3gtc2hhZG93OiAwcHggMTZweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG5cbi5uZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudCB7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtNHhsKTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL3RvYXN0L3N0eWxlLmNzc1wiXSxuYW1lczpbXSxtYXBwaW5nczpcIkFBQUE7RUFDRSxlQUFlO0VBQ2YsMkJBQTJCO0VBQzNCLGdCQUFnQjtFQUNoQiw2Q0FBNkM7QUFDL0M7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsaUNBQWlDO0VBQ2pDLGdCQUFnQjtFQUNoQixxQ0FBcUM7RUFDckMsdUNBQXVDO0FBQ3pDXCIsc291cmNlc0NvbnRlbnQ6W1wiLm5leHRqcy10b2FzdCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB6LWluZGV4OiB2YXIoLS10b3Atei1pbmRleCk7XFxuICBtYXgtd2lkdGg6IDQyMHB4O1xcbiAgYm94LXNoYWRvdzogMHB4IDE2cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xcbn1cXG5cXG4ubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQge1xcbiAgcGFkZGluZzogMTZweDtcXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtNHhsKTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtd2hpdGUpO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1yZWQpO1xcbn1cXG5cIl0sc291cmNlUm9vdDpcIlwifV0pO2xldCBsPWl9LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2dsb2JhbC5jc3NcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se1o6KCk9Pmx9KTt2YXIgcj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiKSxvPXQubihyKSxhPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIiksaT10Lm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCxgLyogZGV2dG9vbCBnbG9iYWwgY3NzIHZhcmlhYmxlcyAqL1xuOmhvc3Qge1xuICAtLXRvcC16LWluZGV4OiAyMTQ3NDgzNjQ3O1xufVxuYCxcIlwiLHt2ZXJzaW9uOjMsc291cmNlczpbXCJ3ZWJwYWNrOi8vLi9zcmMvbmV4dC1kZXZ0b29scy9nbG9iYWwuY3NzXCJdLG5hbWVzOltdLG1hcHBpbmdzOlwiQUFBQSxpQ0FBaUM7QUFDakM7RUFDRSx5QkFBeUI7QUFDM0JcIixzb3VyY2VzQ29udGVudDpbXCIvKiBkZXZ0b29sIGdsb2JhbCBjc3MgdmFyaWFibGVzICovXFxuOmhvc3Qge1xcbiAgLS10b3Atei1pbmRleDogMjE0NzQ4MzY0NztcXG59XFxuXCJdLHNvdXJjZVJvb3Q6XCJcIn1dKTtsZXQgbD1pfSxcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgbj1bXTtyZXR1cm4gbi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihuKXt2YXIgdD1cIlwiLHI9dm9pZCAwIT09bls1XTtyZXR1cm4gbls0XSYmKHQrPVwiQHN1cHBvcnRzIChcIi5jb25jYXQobls0XSxcIikge1wiKSksblsyXSYmKHQrPVwiQG1lZGlhIFwiLmNvbmNhdChuWzJdLFwiIHtcIikpLHImJih0Kz1cIkBsYXllclwiLmNvbmNhdChuWzVdLmxlbmd0aD4wP1wiIFwiLmNvbmNhdChuWzVdKTpcIlwiLFwiIHtcIikpLHQrPWUobiksciYmKHQrPVwifVwiKSxuWzJdJiYodCs9XCJ9XCIpLG5bNF0mJih0Kz1cIn1cIiksdH0pLmpvaW4oXCJcIil9LG4uaT1mdW5jdGlvbihlLHQscixvLGEpe1wic3RyaW5nXCI9PXR5cGVvZiBlJiYoZT1bW251bGwsZSx2b2lkIDBdXSk7dmFyIGk9e307aWYocilmb3IodmFyIGw9MDtsPHRoaXMubGVuZ3RoO2wrKyl7dmFyIHM9dGhpc1tsXVswXTtudWxsIT1zJiYoaVtzXT0hMCl9Zm9yKHZhciBjPTA7YzxlLmxlbmd0aDtjKyspe3ZhciB1PVtdLmNvbmNhdChlW2NdKTtyJiZpW3VbMF1dfHwodm9pZCAwIT09YSYmKHZvaWQgMD09PXVbNV18fCh1WzFdPVwiQGxheWVyXCIuY29uY2F0KHVbNV0ubGVuZ3RoPjA/XCIgXCIuY29uY2F0KHVbNV0pOlwiXCIsXCIge1wiKS5jb25jYXQodVsxXSxcIn1cIikpLHVbNV09YSksdCYmKHVbMl0mJih1WzFdPVwiQG1lZGlhIFwiLmNvbmNhdCh1WzJdLFwiIHtcIikuY29uY2F0KHVbMV0sXCJ9XCIpKSx1WzJdPXQpLG8mJih1WzRdPyh1WzFdPVwiQHN1cHBvcnRzIChcIi5jb25jYXQodVs0XSxcIikge1wiKS5jb25jYXQodVsxXSxcIn1cIiksdVs0XT1vKTp1WzRdPVwiXCIuY29uY2F0KG8pKSxuLnB1c2godSkpfX0sbn19LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgbj1lWzFdLHQ9ZVszXTtpZighdClyZXR1cm4gbjtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBidG9hKXt2YXIgcj1idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh0KSkpKTtyZXR1cm5bbl0uY29uY2F0KFtcIi8qIyBcIi5jb25jYXQoXCJzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcIi5jb25jYXQociksXCIgKi9cIildKS5qb2luKFwiXFxuXCIpfXJldHVybltuXS5qb2luKFwiXFxuXCIpfX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1bXTtmdW5jdGlvbiB0KGUpe2Zvcih2YXIgdD0tMSxyPTA7cjxuLmxlbmd0aDtyKyspaWYobltyXS5pZGVudGlmaWVyPT09ZSl7dD1yO2JyZWFrfXJldHVybiB0fWZ1bmN0aW9uIHIoZSxyKXtmb3IodmFyIG89e30sYT1bXSxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBsPWVbaV0scz1yLmJhc2U/bFswXStyLmJhc2U6bFswXSxjPW9bc118fDAsdT1cIlwiLmNvbmNhdChzLFwiIFwiKS5jb25jYXQoYyk7b1tzXT1jKzE7dmFyIGQ9dCh1KSxmPXtjc3M6bFsxXSxtZWRpYTpsWzJdLHNvdXJjZU1hcDpsWzNdLHN1cHBvcnRzOmxbNF0sbGF5ZXI6bFs1XX07aWYoLTEhPT1kKW5bZF0ucmVmZXJlbmNlcysrLG5bZF0udXBkYXRlcihmKTtlbHNle3ZhciBwPWZ1bmN0aW9uKGUsbil7dmFyIHQ9bi5kb21BUEkobik7cmV0dXJuIHQudXBkYXRlKGUpLGZ1bmN0aW9uKG4pe24/KG4uY3NzIT09ZS5jc3N8fG4ubWVkaWEhPT1lLm1lZGlhfHxuLnNvdXJjZU1hcCE9PWUuc291cmNlTWFwfHxuLnN1cHBvcnRzIT09ZS5zdXBwb3J0c3x8bi5sYXllciE9PWUubGF5ZXIpJiZ0LnVwZGF0ZShlPW4pOnQucmVtb3ZlKCl9fShmLHIpO3IuYnlJbmRleD1pLG4uc3BsaWNlKGksMCx7aWRlbnRpZmllcjp1LHVwZGF0ZXI6cCxyZWZlcmVuY2VzOjF9KX1hLnB1c2godSl9cmV0dXJuIGF9ZS5leHBvcnRzPWZ1bmN0aW9uKGUsbyl7dmFyIGE9cihlPWV8fFtdLG89b3x8e30pO3JldHVybiBmdW5jdGlvbihlKXtlPWV8fFtdO2Zvcih2YXIgaT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgbD10KGFbaV0pO25bbF0ucmVmZXJlbmNlcy0tfWZvcih2YXIgcz1yKGUsbyksYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgdT10KGFbY10pOzA9PT1uW3VdLnJlZmVyZW5jZXMmJihuW3VdLnVwZGF0ZXIoKSxuLnNwbGljZSh1LDEpKX1hPXN9fX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO3JldHVybiBlLnNldEF0dHJpYnV0ZXMobixlLmF0dHJpYnV0ZXMpLGUuaW5zZXJ0KG4sZS5vcHRpb25zKSxufX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciBuPXQubmM7biYmZS5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLG4pfX0sXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiOmZ1bmN0aW9uKGUpe1widXNlIHN0cmljdFwiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgZG9jdW1lbnQpcmV0dXJue3VwZGF0ZTpmdW5jdGlvbigpe30scmVtb3ZlOmZ1bmN0aW9uKCl7fX07dmFyIG49ZS5pbnNlcnRTdHlsZUVsZW1lbnQoZSk7cmV0dXJue3VwZGF0ZTpmdW5jdGlvbih0KXt2YXIgcixvLGE7cj1cIlwiLHQuc3VwcG9ydHMmJihyKz1cIkBzdXBwb3J0cyAoXCIuY29uY2F0KHQuc3VwcG9ydHMsXCIpIHtcIikpLHQubWVkaWEmJihyKz1cIkBtZWRpYSBcIi5jb25jYXQodC5tZWRpYSxcIiB7XCIpKSwobz12b2lkIDAhPT10LmxheWVyKSYmKHIrPVwiQGxheWVyXCIuY29uY2F0KHQubGF5ZXIubGVuZ3RoPjA/XCIgXCIuY29uY2F0KHQubGF5ZXIpOlwiXCIsXCIge1wiKSkscis9dC5jc3MsbyYmKHIrPVwifVwiKSx0Lm1lZGlhJiYocis9XCJ9XCIpLHQuc3VwcG9ydHMmJihyKz1cIn1cIiksKGE9dC5zb3VyY2VNYXApJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgYnRvYSYmKHIrPVwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIi5jb25jYXQoYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoYSkpKSksXCIgKi9cIikpLGUuc3R5bGVUYWdUcmFuc2Zvcm0ocixuLGUub3B0aW9ucyl9LHJlbW92ZTpmdW5jdGlvbigpeyFmdW5jdGlvbihlKXtpZihudWxsIT09ZS5wYXJlbnROb2RlKWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKX0obil9fX19LFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjpmdW5jdGlvbihlKXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSxuKXtpZihuLnN0eWxlU2hlZXQpbi5zdHlsZVNoZWV0LmNzc1RleHQ9ZTtlbHNle2Zvcig7bi5maXJzdENoaWxkOyluLnJlbW92ZUNoaWxkKG4uZmlyc3RDaGlsZCk7bi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKSl9fX0sXCIuL2Rpc3QvY29tcGlsZWQvYW5zZXIvaW5kZXguanNcIjpmdW5jdGlvbihlKXsoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgbj17MjExOmU9Pnt2YXIgbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSxuKXtmb3IodmFyIHQ9MDt0PG4ubGVuZ3RoO3QrKyl7dmFyIHI9blt0XTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCxcInZhbHVlXCJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihuLHQscil7cmV0dXJuIHQmJmUobi5wcm90b3R5cGUsdCksciYmZShuLHIpLG59fSgpLHQ9W1t7Y29sb3I6XCIwLCAwLCAwXCIsY2xhc3M6XCJhbnNpLWJsYWNrXCJ9LHtjb2xvcjpcIjE4NywgMCwgMFwiLGNsYXNzOlwiYW5zaS1yZWRcIn0se2NvbG9yOlwiMCwgMTg3LCAwXCIsY2xhc3M6XCJhbnNpLWdyZWVuXCJ9LHtjb2xvcjpcIjE4NywgMTg3LCAwXCIsY2xhc3M6XCJhbnNpLXllbGxvd1wifSx7Y29sb3I6XCIwLCAwLCAxODdcIixjbGFzczpcImFuc2ktYmx1ZVwifSx7Y29sb3I6XCIxODcsIDAsIDE4N1wiLGNsYXNzOlwiYW5zaS1tYWdlbnRhXCJ9LHtjb2xvcjpcIjAsIDE4NywgMTg3XCIsY2xhc3M6XCJhbnNpLWN5YW5cIn0se2NvbG9yOlwiMjU1LDI1NSwyNTVcIixjbGFzczpcImFuc2ktd2hpdGVcIn1dLFt7Y29sb3I6XCI4NSwgODUsIDg1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1ibGFja1wifSx7Y29sb3I6XCIyNTUsIDg1LCA4NVwiLGNsYXNzOlwiYW5zaS1icmlnaHQtcmVkXCJ9LHtjb2xvcjpcIjAsIDI1NSwgMFwiLGNsYXNzOlwiYW5zaS1icmlnaHQtZ3JlZW5cIn0se2NvbG9yOlwiMjU1LCAyNTUsIDg1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC15ZWxsb3dcIn0se2NvbG9yOlwiODUsIDg1LCAyNTVcIixjbGFzczpcImFuc2ktYnJpZ2h0LWJsdWVcIn0se2NvbG9yOlwiMjU1LCA4NSwgMjU1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1tYWdlbnRhXCJ9LHtjb2xvcjpcIjg1LCAyNTUsIDI1NVwiLGNsYXNzOlwiYW5zaS1icmlnaHQtY3lhblwifSx7Y29sb3I6XCIyNTUsIDI1NSwgMjU1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC13aGl0ZVwifV1dO2UuZXhwb3J0cz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBlKSl0aHJvdyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7dGhpcy5mZz10aGlzLmJnPXRoaXMuZmdfdHJ1ZWNvbG9yPXRoaXMuYmdfdHJ1ZWNvbG9yPW51bGwsdGhpcy5icmlnaHQ9MH1yZXR1cm4gbihlLG51bGwsW3trZXk6XCJlc2NhcGVGb3JIdG1sXCIsdmFsdWU6ZnVuY3Rpb24obil7cmV0dXJuKG5ldyBlKS5lc2NhcGVGb3JIdG1sKG4pfX0se2tleTpcImxpbmtpZnlcIix2YWx1ZTpmdW5jdGlvbihuKXtyZXR1cm4obmV3IGUpLmxpbmtpZnkobil9fSx7a2V5OlwiYW5zaVRvSHRtbFwiLHZhbHVlOmZ1bmN0aW9uKG4sdCl7cmV0dXJuKG5ldyBlKS5hbnNpVG9IdG1sKG4sdCl9fSx7a2V5OlwiYW5zaVRvSnNvblwiLHZhbHVlOmZ1bmN0aW9uKG4sdCl7cmV0dXJuKG5ldyBlKS5hbnNpVG9Kc29uKG4sdCl9fSx7a2V5OlwiYW5zaVRvVGV4dFwiLHZhbHVlOmZ1bmN0aW9uKG4pe3JldHVybihuZXcgZSkuYW5zaVRvVGV4dChuKX19XSksbihlLFt7a2V5Olwic2V0dXBQYWxldHRlXCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLlBBTEVUVEVfQ09MT1JTPVtdO2Zvcih2YXIgZT0wO2U8MjsrK2UpZm9yKHZhciBuPTA7bjw4Oysrbil0aGlzLlBBTEVUVEVfQ09MT1JTLnB1c2godFtlXVtuXS5jb2xvcik7Zm9yKHZhciByPVswLDk1LDEzNSwxNzUsMjE1LDI1NV0sbz1mdW5jdGlvbihlLG4sdCl7cmV0dXJuIHJbZV0rXCIsIFwiK3Jbbl0rXCIsIFwiK3JbdF19LGE9MDthPDY7KythKWZvcih2YXIgaT0wO2k8NjsrK2kpZm9yKHZhciBsPTA7bDw2OysrbCl0aGlzLlBBTEVUVEVfQ09MT1JTLnB1c2gobyhhLGksbCkpO2Zvcih2YXIgcz04LGM9MDtjPDI0OysrYyxzKz0xMCl0aGlzLlBBTEVUVEVfQ09MT1JTLnB1c2gobyhzLHMscykpfX0se2tleTpcImVzY2FwZUZvckh0bWxcIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bJjw+XS9nbSxmdW5jdGlvbihlKXtyZXR1cm5cIiZcIj09ZT9cIiZhbXA7XCI6XCI8XCI9PWU/XCImbHQ7XCI6XCI+XCI9PWU/XCImZ3Q7XCI6XCJcIn0pfX0se2tleTpcImxpbmtpZnlcIix2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC8oaHR0cHM/OlxcL1xcL1teXFxzXSspL2dtLGZ1bmN0aW9uKGUpe3JldHVybic8YSBocmVmPVwiJytlKydcIj4nK2UrXCI8L2E+XCJ9KX19LHtrZXk6XCJhbnNpVG9IdG1sXCIsdmFsdWU6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gdGhpcy5wcm9jZXNzKGUsbiwhMCl9fSx7a2V5OlwiYW5zaVRvSnNvblwiLHZhbHVlOmZ1bmN0aW9uKGUsbil7cmV0dXJuKG49bnx8e30pLmpzb249ITAsbi5jbGVhckxpbmU9ITEsdGhpcy5wcm9jZXNzKGUsbiwhMCl9fSx7a2V5OlwiYW5zaVRvVGV4dFwiLHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnByb2Nlc3MoZSx7fSwhMSl9fSx7a2V5OlwicHJvY2Vzc1wiLHZhbHVlOmZ1bmN0aW9uKGUsbix0KXt2YXIgcj10aGlzLG89ZS5zcGxpdCgvXFwwMzNcXFsvKSxhPW8uc2hpZnQoKTtudWxsPT1uJiYobj17fSksbi5jbGVhckxpbmU9L1xcci8udGVzdChlKTt2YXIgaT1vLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gci5wcm9jZXNzQ2h1bmsoZSxuLHQpfSk7aWYobiYmbi5qc29uKXt2YXIgbD10aGlzLnByb2Nlc3NDaHVua0pzb24oXCJcIik7cmV0dXJuIGwuY29udGVudD1hLGwuY2xlYXJMaW5lPW4uY2xlYXJMaW5lLGkudW5zaGlmdChsKSxuLnJlbW92ZV9lbXB0eSYmKGk9aS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWUuaXNFbXB0eSgpfSkpLGl9cmV0dXJuIGkudW5zaGlmdChhKSxpLmpvaW4oXCJcIil9fSx7a2V5OlwicHJvY2Vzc0NodW5rSnNvblwiLHZhbHVlOmZ1bmN0aW9uKGUsbixyKXt2YXIgbz0obj12b2lkIDA9PT1uP3t9Om4pLnVzZV9jbGFzc2VzPXZvaWQgMCE9PW4udXNlX2NsYXNzZXMmJm4udXNlX2NsYXNzZXMsYT1uLmtleT1vP1wiY2xhc3NcIjpcImNvbG9yXCIsaT17Y29udGVudDplLGZnOm51bGwsYmc6bnVsbCxmZ190cnVlY29sb3I6bnVsbCxiZ190cnVlY29sb3I6bnVsbCxjbGVhckxpbmU6bi5jbGVhckxpbmUsZGVjb3JhdGlvbjpudWxsLHdhc19wcm9jZXNzZWQ6ITEsaXNFbXB0eTpmdW5jdGlvbigpe3JldHVybiFpLmNvbnRlbnR9fSxsPWUubWF0Y2goL14oWyFcXHgzYy1cXHgzZl0qKShbXFxkO10qKShbXFx4MjAtXFx4MmNdKltcXHg0MC1cXHg3ZV0pKFtcXHNcXFNdKikvbSk7aWYoIWwpcmV0dXJuIGk7aS5jb250ZW50PWxbNF07dmFyIHM9bFsyXS5zcGxpdChcIjtcIik7aWYoXCJcIiE9PWxbMV18fFwibVwiIT09bFszXXx8IXIpcmV0dXJuIGk7Zm9yKHRoaXMuZGVjb3JhdGlvbj1udWxsO3MubGVuZ3RoPjA7KXt2YXIgYz1wYXJzZUludChzLnNoaWZ0KCkpO2lmKGlzTmFOKGMpfHwwPT09Yyl0aGlzLmZnPXRoaXMuYmc9dGhpcy5kZWNvcmF0aW9uPW51bGw7ZWxzZSBpZigxPT09Yyl0aGlzLmRlY29yYXRpb249XCJib2xkXCI7ZWxzZSBpZigyPT09Yyl0aGlzLmRlY29yYXRpb249XCJkaW1cIjtlbHNlIGlmKDM9PWMpdGhpcy5kZWNvcmF0aW9uPVwiaXRhbGljXCI7ZWxzZSBpZig0PT1jKXRoaXMuZGVjb3JhdGlvbj1cInVuZGVybGluZVwiO2Vsc2UgaWYoNT09Yyl0aGlzLmRlY29yYXRpb249XCJibGlua1wiO2Vsc2UgaWYoNz09PWMpdGhpcy5kZWNvcmF0aW9uPVwicmV2ZXJzZVwiO2Vsc2UgaWYoOD09PWMpdGhpcy5kZWNvcmF0aW9uPVwiaGlkZGVuXCI7ZWxzZSBpZig5PT09Yyl0aGlzLmRlY29yYXRpb249XCJzdHJpa2V0aHJvdWdoXCI7ZWxzZSBpZigzOT09Yyl0aGlzLmZnPW51bGw7ZWxzZSBpZig0OT09Yyl0aGlzLmJnPW51bGw7ZWxzZSBpZihjPj0zMCYmYzwzOCl0aGlzLmZnPXRbMF1bYyUxMF1bYV07ZWxzZSBpZihjPj05MCYmYzw5OCl0aGlzLmZnPXRbMV1bYyUxMF1bYV07ZWxzZSBpZihjPj00MCYmYzw0OCl0aGlzLmJnPXRbMF1bYyUxMF1bYV07ZWxzZSBpZihjPj0xMDAmJmM8MTA4KXRoaXMuYmc9dFsxXVtjJTEwXVthXTtlbHNlIGlmKDM4PT09Y3x8NDg9PT1jKXt2YXIgdT0zOD09PWM7aWYocy5sZW5ndGg+PTEpe3ZhciBkPXMuc2hpZnQoKTtpZihcIjVcIj09PWQmJnMubGVuZ3RoPj0xKXt2YXIgZj1wYXJzZUludChzLnNoaWZ0KCkpO2lmKGY+PTAmJmY8PTI1NSlpZihvKXt2YXIgcD1mPj0xNj9cImFuc2ktcGFsZXR0ZS1cIitmOnRbKyhmPjcpXVtmJThdLmNsYXNzO3U/dGhpcy5mZz1wOnRoaXMuYmc9cH1lbHNlIHRoaXMuUEFMRVRURV9DT0xPUlN8fHRoaXMuc2V0dXBQYWxldHRlKCksdT90aGlzLmZnPXRoaXMuUEFMRVRURV9DT0xPUlNbZl06dGhpcy5iZz10aGlzLlBBTEVUVEVfQ09MT1JTW2ZdfWVsc2UgaWYoXCIyXCI9PT1kJiZzLmxlbmd0aD49Myl7dmFyIGg9cGFyc2VJbnQocy5zaGlmdCgpKSxnPXBhcnNlSW50KHMuc2hpZnQoKSksbT1wYXJzZUludChzLnNoaWZ0KCkpO2lmKGg+PTAmJmg8PTI1NSYmZz49MCYmZzw9MjU1JiZtPj0wJiZtPD0yNTUpe3ZhciB2PWgrXCIsIFwiK2crXCIsIFwiK207bz91Pyh0aGlzLmZnPVwiYW5zaS10cnVlY29sb3JcIix0aGlzLmZnX3RydWVjb2xvcj12KToodGhpcy5iZz1cImFuc2ktdHJ1ZWNvbG9yXCIsdGhpcy5iZ190cnVlY29sb3I9dik6dT90aGlzLmZnPXY6dGhpcy5iZz12fX19fX1yZXR1cm4gbnVsbD09PXRoaXMuZmcmJm51bGw9PT10aGlzLmJnJiZudWxsPT09dGhpcy5kZWNvcmF0aW9ufHwoaS5mZz10aGlzLmZnLGkuYmc9dGhpcy5iZyxpLmZnX3RydWVjb2xvcj10aGlzLmZnX3RydWVjb2xvcixpLmJnX3RydWVjb2xvcj10aGlzLmJnX3RydWVjb2xvcixpLmRlY29yYXRpb249dGhpcy5kZWNvcmF0aW9uLGkud2FzX3Byb2Nlc3NlZD0hMCksaX19LHtrZXk6XCJwcm9jZXNzQ2h1bmtcIix2YWx1ZTpmdW5jdGlvbihlLG4sdCl7dmFyIHI9dGhpcztuPW58fHt9O3ZhciBvPXRoaXMucHJvY2Vzc0NodW5rSnNvbihlLG4sdCk7aWYobi5qc29uKXJldHVybiBvO2lmKG8uaXNFbXB0eSgpKXJldHVyblwiXCI7aWYoIW8ud2FzX3Byb2Nlc3NlZClyZXR1cm4gby5jb250ZW50O3ZhciBhPW4udXNlX2NsYXNzZXMsaT1bXSxsPVtdLHM9e30sYz1mdW5jdGlvbihlKXt2YXIgbj1bXSx0PXZvaWQgMDtmb3IodCBpbiBlKWUuaGFzT3duUHJvcGVydHkodCkmJm4ucHVzaChcImRhdGEtXCIrdCsnPVwiJytyLmVzY2FwZUZvckh0bWwoZVt0XSkrJ1wiJyk7cmV0dXJuIG4ubGVuZ3RoPjA/XCIgXCIrbi5qb2luKFwiIFwiKTpcIlwifTtyZXR1cm4oby5mZyYmKGE/KGwucHVzaChvLmZnK1wiLWZnXCIpLG51bGwhPT1vLmZnX3RydWVjb2xvciYmKHNbXCJhbnNpLXRydWVjb2xvci1mZ1wiXT1vLmZnX3RydWVjb2xvcixvLmZnX3RydWVjb2xvcj1udWxsKSk6aS5wdXNoKFwiY29sb3I6cmdiKFwiK28uZmcrXCIpXCIpKSxvLmJnJiYoYT8obC5wdXNoKG8uYmcrXCItYmdcIiksbnVsbCE9PW8uYmdfdHJ1ZWNvbG9yJiYoc1tcImFuc2ktdHJ1ZWNvbG9yLWJnXCJdPW8uYmdfdHJ1ZWNvbG9yLG8uYmdfdHJ1ZWNvbG9yPW51bGwpKTppLnB1c2goXCJiYWNrZ3JvdW5kLWNvbG9yOnJnYihcIitvLmJnK1wiKVwiKSksby5kZWNvcmF0aW9uJiYoYT9sLnB1c2goXCJhbnNpLVwiK28uZGVjb3JhdGlvbik6XCJib2xkXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwiZm9udC13ZWlnaHQ6Ym9sZFwiKTpcImRpbVwiPT09by5kZWNvcmF0aW9uP2kucHVzaChcIm9wYWNpdHk6MC41XCIpOlwiaXRhbGljXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwiZm9udC1zdHlsZTppdGFsaWNcIik6XCJyZXZlcnNlXCI9PT1vLmRlY29yYXRpb24/aS5wdXNoKFwiZmlsdGVyOmludmVydCgxMDAlKVwiKTpcImhpZGRlblwiPT09by5kZWNvcmF0aW9uP2kucHVzaChcInZpc2liaWxpdHk6aGlkZGVuXCIpOlwic3RyaWtldGhyb3VnaFwiPT09by5kZWNvcmF0aW9uP2kucHVzaChcInRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2hcIik6aS5wdXNoKFwidGV4dC1kZWNvcmF0aW9uOlwiK28uZGVjb3JhdGlvbikpLGEpPyc8c3BhbiBjbGFzcz1cIicrbC5qb2luKFwiIFwiKSsnXCInK2MocykrXCI+XCIrby5jb250ZW50K1wiPC9zcGFuPlwiOic8c3BhbiBzdHlsZT1cIicraS5qb2luKFwiO1wiKSsnXCInK2MocykrXCI+XCIrby5jb250ZW50K1wiPC9zcGFuPlwifX1dKSxlfSgpfX0sdD17fTtmdW5jdGlvbiByKGUpe3ZhciBvPXRbZV07aWYodm9pZCAwIT09bylyZXR1cm4gby5leHBvcnRzO3ZhciBhPXRbZV09e2V4cG9ydHM6e319LGk9ITA7dHJ5e25bZV0oYSxhLmV4cG9ydHMsciksaT0hMX1maW5hbGx5e2kmJmRlbGV0ZSB0W2VdfXJldHVybiBhLmV4cG9ydHN9ci5hYj1cIi8vXCIsZS5leHBvcnRzPXIoMjExKX0pKCl9LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLWNsaWVudC5wcm9kdWN0aW9uLmpzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3ZhciByLG89dChcIi4vZGlzdC9jb21waWxlZC9zY2hlZHVsZXIvaW5kZXguanNcIiksYT10KFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0L2luZGV4LmpzXCIpLGk9dChcIi4vZGlzdC9jb21waWxlZC9yZWFjdC1kb20vaW5kZXguanNcIik7ZnVuY3Rpb24gbChlKXt2YXIgbj1cImh0dHBzOi8vcmVhY3QuZGV2L2Vycm9ycy9cIitlO2lmKDE8YXJndW1lbnRzLmxlbmd0aCl7bis9XCI/YXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbMV0pO2Zvcih2YXIgdD0yO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspbis9XCImYXJnc1tdPVwiK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbdF0pfXJldHVyblwiTWluaWZpZWQgUmVhY3QgZXJyb3IgI1wiK2UrXCI7IHZpc2l0IFwiK24rXCIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRkaXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLlwifWZ1bmN0aW9uIHMoZSl7dmFyIG49ZSx0PWU7aWYoZS5hbHRlcm5hdGUpZm9yKDtuLnJldHVybjspbj1uLnJldHVybjtlbHNle2U9bjtkbyAwIT0oNDA5OCYobj1lKS5mbGFncykmJih0PW4ucmV0dXJuKSxlPW4ucmV0dXJuO3doaWxlKGUpfXJldHVybiAzPT09bi50YWc/dDpudWxsfWZ1bmN0aW9uIGMoZSl7aWYoMTM9PT1lLnRhZyl7dmFyIG49ZS5tZW1vaXplZFN0YXRlO2lmKG51bGw9PT1uJiZudWxsIT09KGU9ZS5hbHRlcm5hdGUpJiYobj1lLm1lbW9pemVkU3RhdGUpLG51bGwhPT1uKXJldHVybiBuLmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gdShlKXtpZigzMT09PWUudGFnKXt2YXIgbj1lLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PW4mJm51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJihuPWUubWVtb2l6ZWRTdGF0ZSksbnVsbCE9PW4pcmV0dXJuIG4uZGVoeWRyYXRlZH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBkKGUpe2lmKHMoZSkhPT1lKXRocm93IEVycm9yKGwoMTg4KSl9dmFyIGY9T2JqZWN0LmFzc2lnbixwPVN5bWJvbC5mb3IoXCJyZWFjdC5lbGVtZW50XCIpLGg9U3ltYm9sLmZvcihcInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50XCIpLGc9U3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxtPVN5bWJvbC5mb3IoXCJyZWFjdC5mcmFnbWVudFwiKSx2PVN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKSxiPVN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSx5PVN5bWJvbC5mb3IoXCJyZWFjdC5jb25zdW1lclwiKSx4PVN5bWJvbC5mb3IoXCJyZWFjdC5jb250ZXh0XCIpLHc9U3ltYm9sLmZvcihcInJlYWN0LmZvcndhcmRfcmVmXCIpLGo9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLGs9U3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksQT1TeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxPPVN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpO1N5bWJvbC5mb3IoXCJyZWFjdC5zY29wZVwiKTt2YXIgQz1TeW1ib2wuZm9yKFwicmVhY3QuYWN0aXZpdHlcIik7U3ltYm9sLmZvcihcInJlYWN0LmxlZ2FjeV9oaWRkZW5cIiksU3ltYm9sLmZvcihcInJlYWN0LnRyYWNpbmdfbWFya2VyXCIpO3ZhciBTPVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsXCIpO1N5bWJvbC5mb3IoXCJyZWFjdC52aWV3X3RyYW5zaXRpb25cIik7dmFyIEU9U3ltYm9sLml0ZXJhdG9yO2Z1bmN0aW9uIF8oZSl7cmV0dXJuIG51bGw9PT1lfHxcIm9iamVjdFwiIT10eXBlb2YgZT9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mKGU9RSYmZVtFXXx8ZVtcIkBAaXRlcmF0b3JcIl0pP2U6bnVsbH12YXIgUD1TeW1ib2wuZm9yKFwicmVhY3QuY2xpZW50LnJlZmVyZW5jZVwiKSx6PUFycmF5LmlzQXJyYXksTD1hLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxUPWkuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLFI9e3BlbmRpbmc6ITEsZGF0YTpudWxsLG1ldGhvZDpudWxsLGFjdGlvbjpudWxsfSxOPVtdLEQ9LTE7ZnVuY3Rpb24gQihlKXtyZXR1cm57Y3VycmVudDplfX1mdW5jdGlvbiBNKGUpezA+RHx8KGUuY3VycmVudD1OW0RdLE5bRF09bnVsbCxELS0pfWZ1bmN0aW9uIEkoZSxuKXtOWysrRF09ZS5jdXJyZW50LGUuY3VycmVudD1ufXZhciBIPUIobnVsbCksRj1CKG51bGwpLFU9QihudWxsKSxWPUIobnVsbCk7ZnVuY3Rpb24gcShlLG4pe3N3aXRjaChJKFUsbiksSShGLGUpLEkoSCxudWxsKSxuLm5vZGVUeXBlKXtjYXNlIDk6Y2FzZSAxMTplPShlPW4uZG9jdW1lbnRFbGVtZW50KSYmKGU9ZS5uYW1lc3BhY2VVUkkpP2NwKGUpOjA7YnJlYWs7ZGVmYXVsdDppZihlPW4udGFnTmFtZSxuPW4ubmFtZXNwYWNlVVJJKWU9Y2gobj1jcChuKSxlKTtlbHNlIHN3aXRjaChlKXtjYXNlXCJzdmdcIjplPTE7YnJlYWs7Y2FzZVwibWF0aFwiOmU9MjticmVhaztkZWZhdWx0OmU9MH19TShIKSxJKEgsZSl9ZnVuY3Rpb24gVygpe00oSCksTShGKSxNKFUpfWZ1bmN0aW9uICQoZSl7bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmSShWLGUpO3ZhciBuPUguY3VycmVudCx0PWNoKG4sZS50eXBlKTtuIT09dCYmKEkoRixlKSxJKEgsdCkpfWZ1bmN0aW9uIFooZSl7Ri5jdXJyZW50PT09ZSYmKE0oSCksTShGKSksVi5jdXJyZW50PT09ZSYmKE0oViksYzYuX2N1cnJlbnRWYWx1ZT1SKX1mdW5jdGlvbiBZKGUpe2lmKHZvaWQgMD09PW5EKXRyeXt0aHJvdyBFcnJvcigpfWNhdGNoKGUpe3ZhciBuPWUuc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7bkQ9biYmblsxXXx8XCJcIixuQj0tMTxlLnN0YWNrLmluZGV4T2YoXCJcXG4gICAgYXRcIik/XCIgKDxhbm9ueW1vdXM+KVwiOi0xPGUuc3RhY2suaW5kZXhPZihcIkBcIik/XCJAdW5rbm93bjowOjBcIjpcIlwifXJldHVyblwiXFxuXCIrbkQrZStuQn12YXIgWD0hMTtmdW5jdGlvbiBLKGUsbil7aWYoIWV8fFgpcmV0dXJuXCJcIjtYPSEwO3ZhciB0PUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7dmFyIHI9e0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDpmdW5jdGlvbigpe3RyeXtpZihuKXt2YXIgdD1mdW5jdGlvbigpe3Rocm93IEVycm9yKCl9O2lmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcInByb3BzXCIse3NldDpmdW5jdGlvbigpe3Rocm93IEVycm9yKCl9fSksXCJvYmplY3RcIj09dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuY29uc3RydWN0KXt0cnl7UmVmbGVjdC5jb25zdHJ1Y3QodCxbXSl9Y2F0Y2goZSl7dmFyIHI9ZX1SZWZsZWN0LmNvbnN0cnVjdChlLFtdLHQpfWVsc2V7dHJ5e3QuY2FsbCgpfWNhdGNoKGUpe3I9ZX1lLmNhbGwodC5wcm90b3R5cGUpfX1lbHNle3RyeXt0aHJvdyBFcnJvcigpfWNhdGNoKGUpe3I9ZX0odD1lKCkpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmNhdGNoJiZ0LmNhdGNoKGZ1bmN0aW9uKCl7fSl9fWNhdGNoKGUpe2lmKGUmJnImJlwic3RyaW5nXCI9PXR5cGVvZiBlLnN0YWNrKXJldHVybltlLnN0YWNrLHIuc3RhY2tdfXJldHVybltudWxsLG51bGxdfX07ci5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QuZGlzcGxheU5hbWU9XCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3RcIjt2YXIgbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LFwibmFtZVwiKTtvJiZvLmNvbmZpZ3VyYWJsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LFwibmFtZVwiLHt2YWx1ZTpcIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwifSk7dmFyIGE9ci5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QoKSxpPWFbMF0sbD1hWzFdO2lmKGkmJmwpe3ZhciBzPWkuc3BsaXQoXCJcXG5cIiksYz1sLnNwbGl0KFwiXFxuXCIpO2ZvcihvPXI9MDtyPHMubGVuZ3RoJiYhc1tyXS5pbmNsdWRlcyhcIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwiKTspcisrO2Zvcig7bzxjLmxlbmd0aCYmIWNbb10uaW5jbHVkZXMoXCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3RcIik7KW8rKztpZihyPT09cy5sZW5ndGh8fG89PT1jLmxlbmd0aClmb3Iocj1zLmxlbmd0aC0xLG89Yy5sZW5ndGgtMTsxPD1yJiYwPD1vJiZzW3JdIT09Y1tvXTspby0tO2Zvcig7MTw9ciYmMDw9bztyLS0sby0tKWlmKHNbcl0hPT1jW29dKXtpZigxIT09cnx8MSE9PW8pZG8gaWYoci0tLG8tLSwwPm98fHNbcl0hPT1jW29dKXt2YXIgdT1cIlxcblwiK3Nbcl0ucmVwbGFjZShcIiBhdCBuZXcgXCIsXCIgYXQgXCIpO3JldHVybiBlLmRpc3BsYXlOYW1lJiZ1LmluY2x1ZGVzKFwiPGFub255bW91cz5cIikmJih1PXUucmVwbGFjZShcIjxhbm9ueW1vdXM+XCIsZS5kaXNwbGF5TmFtZSkpLHV9d2hpbGUoMTw9ciYmMDw9byk7YnJlYWt9fX1maW5hbGx5e1g9ITEsRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U9dH1yZXR1cm4odD1lP2UuZGlzcGxheU5hbWV8fGUubmFtZTpcIlwiKT9ZKHQpOlwiXCJ9ZnVuY3Rpb24gUShlKXt0cnl7dmFyIG49XCJcIix0PW51bGw7ZG8gbis9ZnVuY3Rpb24oZSxuKXtzd2l0Y2goZS50YWcpe2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6cmV0dXJuIFkoZS50eXBlKTtjYXNlIDE2OnJldHVybiBZKFwiTGF6eVwiKTtjYXNlIDEzOnJldHVybiBlLmNoaWxkIT09biYmbnVsbCE9PW4/WShcIlN1c3BlbnNlIEZhbGxiYWNrXCIpOlkoXCJTdXNwZW5zZVwiKTtjYXNlIDE5OnJldHVybiBZKFwiU3VzcGVuc2VMaXN0XCIpO2Nhc2UgMDpjYXNlIDE1OnJldHVybiBLKGUudHlwZSwhMSk7Y2FzZSAxMTpyZXR1cm4gSyhlLnR5cGUucmVuZGVyLCExKTtjYXNlIDE6cmV0dXJuIEsoZS50eXBlLCEwKTtjYXNlIDMxOnJldHVybiBZKFwiQWN0aXZpdHlcIik7ZGVmYXVsdDpyZXR1cm5cIlwifX0oZSx0KSx0PWUsZT1lLnJldHVybjt3aGlsZShlKTtyZXR1cm4gbn1jYXRjaChlKXtyZXR1cm5cIlxcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6IFwiK2UubWVzc2FnZStcIlxcblwiK2Uuc3RhY2t9fXZhciBHPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksSj1vLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssZWU9by51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayxlbj1vLnVuc3RhYmxlX3Nob3VsZFlpZWxkLGV0PW8udW5zdGFibGVfcmVxdWVzdFBhaW50LGVyPW8udW5zdGFibGVfbm93LGVvPW8udW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsZWE9by51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSxlaT1vLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LGVsPW8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZXM9by51bnN0YWJsZV9Mb3dQcmlvcml0eSxlYz1vLnVuc3RhYmxlX0lkbGVQcmlvcml0eSxldT1vLmxvZyxlZD1vLnVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlLGVmPW51bGwsZXA9bnVsbDtmdW5jdGlvbiBlaChlKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBldSYmZWQoZSksZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLnNldFN0cmljdE1vZGUpdHJ5e2VwLnNldFN0cmljdE1vZGUoZWYsZSl9Y2F0Y2goZSl7fX12YXIgZWc9TWF0aC5jbHozMj9NYXRoLmNsejMyOmZ1bmN0aW9uKGUpe3JldHVybiAwPT0oZT4+Pj0wKT8zMjozMS0oZW0oZSkvZXZ8MCl8MH0sZW09TWF0aC5sb2csZXY9TWF0aC5MTjIsZWI9MjU2LGV5PTQxOTQzMDQ7ZnVuY3Rpb24gZXgoZSl7dmFyIG49NDImZTtpZigwIT09bilyZXR1cm4gbjtzd2l0Y2goZSYtZSl7Y2FzZSAxOnJldHVybiAxO2Nhc2UgMjpyZXR1cm4gMjtjYXNlIDQ6cmV0dXJuIDQ7Y2FzZSA4OnJldHVybiA4O2Nhc2UgMTY6cmV0dXJuIDE2O2Nhc2UgMzI6cmV0dXJuIDMyO2Nhc2UgNjQ6cmV0dXJuIDY0O2Nhc2UgMTI4OnJldHVybiAxMjg7Y2FzZSAyNTY6Y2FzZSA1MTI6Y2FzZSAxMDI0OmNhc2UgMjA0ODpjYXNlIDQwOTY6Y2FzZSA4MTkyOmNhc2UgMTYzODQ6Y2FzZSAzMjc2ODpjYXNlIDY1NTM2OmNhc2UgMTMxMDcyOmNhc2UgMjYyMTQ0OmNhc2UgNTI0Mjg4OmNhc2UgMTA0ODU3NjpjYXNlIDIwOTcxNTI6cmV0dXJuIDQxOTQwNDgmZTtjYXNlIDQxOTQzMDQ6Y2FzZSA4Mzg4NjA4OmNhc2UgMHgxMDAwMDAwOmNhc2UgMHgyMDAwMDAwOnJldHVybiAweDNjMDAwMDAmZTtjYXNlIDB4NDAwMDAwMDpyZXR1cm4gMHg0MDAwMDAwO2Nhc2UgMHg4MDAwMDAwOnJldHVybiAweDgwMDAwMDA7Y2FzZSAweDEwMDAwMDAwOnJldHVybiAweDEwMDAwMDAwO2Nhc2UgMHgyMDAwMDAwMDpyZXR1cm4gMHgyMDAwMDAwMDtjYXNlIDB4NDAwMDAwMDA6cmV0dXJuIDA7ZGVmYXVsdDpyZXR1cm4gZX19ZnVuY3Rpb24gZXcoZSxuLHQpe3ZhciByPWUucGVuZGluZ0xhbmVzO2lmKDA9PT1yKXJldHVybiAwO3ZhciBvPTAsYT1lLnN1c3BlbmRlZExhbmVzLGk9ZS5waW5nZWRMYW5lcztlPWUud2FybUxhbmVzO3ZhciBsPTB4N2ZmZmZmZiZyO3JldHVybiAwIT09bD8wIT0ocj1sJn5hKT9vPWV4KHIpOjAhPShpJj1sKT9vPWV4KGkpOnR8fDAhPSh0PWwmfmUpJiYobz1leCh0KSk6MCE9KGw9ciZ+YSk/bz1leChsKTowIT09aT9vPWV4KGkpOnR8fDAhPSh0PXImfmUpJiYobz1leCh0KSksMD09PW8/MDowIT09biYmbiE9PW8mJjA9PShuJmEpJiYoKGE9byYtbyk+PSh0PW4mLW4pfHwzMj09PWEmJjAhPSg0MTk0MDQ4JnQpKT9uOm99ZnVuY3Rpb24gZWooZSxuKXtyZXR1cm4gMD09KGUucGVuZGluZ0xhbmVzJn4oZS5zdXNwZW5kZWRMYW5lcyZ+ZS5waW5nZWRMYW5lcykmbil9ZnVuY3Rpb24gZWsoKXt2YXIgZT1lYjtyZXR1cm4gMD09KDQxOTQwNDgmKGViPDw9MSkpJiYoZWI9MjU2KSxlfWZ1bmN0aW9uIGVBKCl7dmFyIGU9ZXk7cmV0dXJuIDA9PSgweDNjMDAwMDAmKGV5PDw9MSkpJiYoZXk9NDE5NDMwNCksZX1mdW5jdGlvbiBlTyhlKXtmb3IodmFyIG49W10sdD0wOzMxPnQ7dCsrKW4ucHVzaChlKTtyZXR1cm4gbn1mdW5jdGlvbiBlQyhlLG4pe2UucGVuZGluZ0xhbmVzfD1uLDB4MTAwMDAwMDAhPT1uJiYoZS5zdXNwZW5kZWRMYW5lcz0wLGUucGluZ2VkTGFuZXM9MCxlLndhcm1MYW5lcz0wKX1mdW5jdGlvbiBlUyhlLG4sdCl7ZS5wZW5kaW5nTGFuZXN8PW4sZS5zdXNwZW5kZWRMYW5lcyY9fm47dmFyIHI9MzEtZWcobik7ZS5lbnRhbmdsZWRMYW5lc3w9bixlLmVudGFuZ2xlbWVudHNbcl09MHg0MDAwMDAwMHxlLmVudGFuZ2xlbWVudHNbcl18NDE5NDA5MCZ0fWZ1bmN0aW9uIGVFKGUsbil7dmFyIHQ9ZS5lbnRhbmdsZWRMYW5lc3w9bjtmb3IoZT1lLmVudGFuZ2xlbWVudHM7dDspe3ZhciByPTMxLWVnKHQpLG89MTw8cjtvJm58ZVtyXSZuJiYoZVtyXXw9biksdCY9fm99fWZ1bmN0aW9uIGVfKGUsbil7dmFyIHQ9biYtbjtyZXR1cm4gMCE9KCh0PTAhPSg0MiZ0KT8xOmVQKHQpKSYoZS5zdXNwZW5kZWRMYW5lc3xuKSk/MDp0fWZ1bmN0aW9uIGVQKGUpe3N3aXRjaChlKXtjYXNlIDI6ZT0xO2JyZWFrO2Nhc2UgODplPTQ7YnJlYWs7Y2FzZSAzMjplPTE2O2JyZWFrO2Nhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOmNhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAweDEwMDAwMDA6Y2FzZSAweDIwMDAwMDA6ZT0xMjg7YnJlYWs7Y2FzZSAweDEwMDAwMDAwOmU9MHg4MDAwMDAwO2JyZWFrO2RlZmF1bHQ6ZT0wfXJldHVybiBlfWZ1bmN0aW9uIGV6KGUpe3JldHVybiAyPChlJj0tZSk/ODxlPzAhPSgweDdmZmZmZmYmZSk/MzI6MHgxMDAwMDAwMDo4OjJ9ZnVuY3Rpb24gZUwoKXt2YXIgZT1ULnA7cmV0dXJuIDAhPT1lP2U6dm9pZCAwPT09KGU9d2luZG93LmV2ZW50KT8zMjp1dShlLnR5cGUpfWZ1bmN0aW9uIGVUKGUsbil7dmFyIHQ9VC5wO3RyeXtyZXR1cm4gVC5wPWUsbigpfWZpbmFsbHl7VC5wPXR9fXZhciBlUj1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSxlTj1cIl9fcmVhY3RGaWJlciRcIitlUixlRD1cIl9fcmVhY3RQcm9wcyRcIitlUixlQj1cIl9fcmVhY3RDb250YWluZXIkXCIrZVIsZU09XCJfX3JlYWN0RXZlbnRzJFwiK2VSLGVJPVwiX19yZWFjdExpc3RlbmVycyRcIitlUixlSD1cIl9fcmVhY3RIYW5kbGVzJFwiK2VSLGVGPVwiX19yZWFjdFJlc291cmNlcyRcIitlUixlVT1cIl9fcmVhY3RNYXJrZXIkXCIrZVI7ZnVuY3Rpb24gZVYoZSl7ZGVsZXRlIGVbZU5dLGRlbGV0ZSBlW2VEXSxkZWxldGUgZVtlTV0sZGVsZXRlIGVbZUldLGRlbGV0ZSBlW2VIXX1mdW5jdGlvbiBlcShlKXt2YXIgbj1lW2VOXTtpZihuKXJldHVybiBuO2Zvcih2YXIgdD1lLnBhcmVudE5vZGU7dDspe2lmKG49dFtlQl18fHRbZU5dKXtpZih0PW4uYWx0ZXJuYXRlLG51bGwhPT1uLmNoaWxkfHxudWxsIT09dCYmbnVsbCE9PXQuY2hpbGQpZm9yKGU9Y0woZSk7bnVsbCE9PWU7KXtpZih0PWVbZU5dKXJldHVybiB0O2U9Y0woZSl9cmV0dXJuIG59dD0oZT10KS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIGVXKGUpe2lmKGU9ZVtlTl18fGVbZUJdKXt2YXIgbj1lLnRhZztpZig1PT09bnx8Nj09PW58fDEzPT09bnx8MzE9PT1ufHwyNj09PW58fDI3PT09bnx8Mz09PW4pcmV0dXJuIGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gZSQoZSl7dmFyIG49ZS50YWc7aWYoNT09PW58fDI2PT09bnx8Mjc9PT1ufHw2PT09bilyZXR1cm4gZS5zdGF0ZU5vZGU7dGhyb3cgRXJyb3IobCgzMykpfWZ1bmN0aW9uIGVaKGUpe3ZhciBuPWVbZUZdO3JldHVybiBufHwobj1lW2VGXT17aG9pc3RhYmxlU3R5bGVzOm5ldyBNYXAsaG9pc3RhYmxlU2NyaXB0czpuZXcgTWFwfSksbn1mdW5jdGlvbiBlWShlKXtlW2VVXT0hMH12YXIgZVg9bmV3IFNldCxlSz17fTtmdW5jdGlvbiBlUShlLG4pe2VHKGUsbiksZUcoZStcIkNhcHR1cmVcIixuKX1mdW5jdGlvbiBlRyhlLG4pe2ZvcihlS1tlXT1uLGU9MDtlPG4ubGVuZ3RoO2UrKyllWC5hZGQobltlXSl9dmFyIGVKPVJlZ0V4cChcIl5bOkEtWl9hLXpcXFxcdTAwQzAtXFxcXHUwMEQ2XFxcXHUwMEQ4LVxcXFx1MDBGNlxcXFx1MDBGOC1cXFxcdTAyRkZcXFxcdTAzNzAtXFxcXHUwMzdEXFxcXHUwMzdGLVxcXFx1MUZGRlxcXFx1MjAwQy1cXFxcdTIwMERcXFxcdTIwNzAtXFxcXHUyMThGXFxcXHUyQzAwLVxcXFx1MkZFRlxcXFx1MzAwMS1cXFxcdUQ3RkZcXFxcdUY5MDAtXFxcXHVGRENGXFxcXHVGREYwLVxcXFx1RkZGRF1bOkEtWl9hLXpcXFxcdTAwQzAtXFxcXHUwMEQ2XFxcXHUwMEQ4LVxcXFx1MDBGNlxcXFx1MDBGOC1cXFxcdTAyRkZcXFxcdTAzNzAtXFxcXHUwMzdEXFxcXHUwMzdGLVxcXFx1MUZGRlxcXFx1MjAwQy1cXFxcdTIwMERcXFxcdTIwNzAtXFxcXHUyMThGXFxcXHUyQzAwLVxcXFx1MkZFRlxcXFx1MzAwMS1cXFxcdUQ3RkZcXFxcdUY5MDAtXFxcXHVGRENGXFxcXHVGREYwLVxcXFx1RkZGRFxcXFwtLjAtOVxcXFx1MDBCN1xcXFx1MDMwMC1cXFxcdTAzNkZcXFxcdTIwM0YtXFxcXHUyMDQwXSokXCIpLGUwPXt9LGUxPXt9O2Z1bmN0aW9uIGUyKGUsbix0KXtpZihHLmNhbGwoZTEsbil8fCFHLmNhbGwoZTAsbikmJihlSi50ZXN0KG4pP2UxW25dPSEwOihlMFtuXT0hMCwhMSkpKWlmKG51bGw9PT10KWUucmVtb3ZlQXR0cmlidXRlKG4pO2Vsc2V7c3dpdGNoKHR5cGVvZiB0KXtjYXNlXCJ1bmRlZmluZWRcIjpjYXNlXCJmdW5jdGlvblwiOmNhc2VcInN5bWJvbFwiOmUucmVtb3ZlQXR0cmlidXRlKG4pO3JldHVybjtjYXNlXCJib29sZWFuXCI6dmFyIHI9bi50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNSk7aWYoXCJkYXRhLVwiIT09ciYmXCJhcmlhLVwiIT09cilyZXR1cm4gdm9pZCBlLnJlbW92ZUF0dHJpYnV0ZShuKX1lLnNldEF0dHJpYnV0ZShuLFwiXCIrdCl9fWZ1bmN0aW9uIGU0KGUsbix0KXtpZihudWxsPT09dCllLnJlbW92ZUF0dHJpYnV0ZShuKTtlbHNle3N3aXRjaCh0eXBlb2YgdCl7Y2FzZVwidW5kZWZpbmVkXCI6Y2FzZVwiZnVuY3Rpb25cIjpjYXNlXCJzeW1ib2xcIjpjYXNlXCJib29sZWFuXCI6ZS5yZW1vdmVBdHRyaWJ1dGUobik7cmV0dXJufWUuc2V0QXR0cmlidXRlKG4sXCJcIit0KX19ZnVuY3Rpb24gZTUoZSxuLHQscil7aWYobnVsbD09PXIpZS5yZW1vdmVBdHRyaWJ1dGUodCk7ZWxzZXtzd2l0Y2godHlwZW9mIHIpe2Nhc2VcInVuZGVmaW5lZFwiOmNhc2VcImZ1bmN0aW9uXCI6Y2FzZVwic3ltYm9sXCI6Y2FzZVwiYm9vbGVhblwiOmUucmVtb3ZlQXR0cmlidXRlKHQpO3JldHVybn1lLnNldEF0dHJpYnV0ZU5TKG4sdCxcIlwiK3IpfX1mdW5jdGlvbiBlMyhlKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2VcImJpZ2ludFwiOmNhc2VcImJvb2xlYW5cIjpjYXNlXCJudW1iZXJcIjpjYXNlXCJzdHJpbmdcIjpjYXNlXCJ1bmRlZmluZWRcIjpjYXNlXCJvYmplY3RcIjpyZXR1cm4gZTtkZWZhdWx0OnJldHVyblwiXCJ9fWZ1bmN0aW9uIGU2KGUpe3ZhciBuPWUudHlwZTtyZXR1cm4oZT1lLm5vZGVOYW1lKSYmXCJpbnB1dFwiPT09ZS50b0xvd2VyQ2FzZSgpJiYoXCJjaGVja2JveFwiPT09bnx8XCJyYWRpb1wiPT09bil9ZnVuY3Rpb24gZTkoZSl7aWYoIWUuX3ZhbHVlVHJhY2tlcil7dmFyIG49ZTYoZSk/XCJjaGVja2VkXCI6XCJ2YWx1ZVwiO2UuX3ZhbHVlVHJhY2tlcj1mdW5jdGlvbihlLG4sdCl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSxuKTtpZighZS5oYXNPd25Qcm9wZXJ0eShuKSYmdm9pZCAwIT09ciYmXCJmdW5jdGlvblwiPT10eXBlb2Ygci5nZXQmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHIuc2V0KXt2YXIgbz1yLmdldCxhPXIuc2V0O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uY2FsbCh0aGlzKX0sc2V0OmZ1bmN0aW9uKGUpe3Q9XCJcIitlLGEuY2FsbCh0aGlzLGUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6ci5lbnVtZXJhYmxlfSkse2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHR9LHNldFZhbHVlOmZ1bmN0aW9uKGUpe3Q9XCJcIitlfSxzdG9wVHJhY2tpbmc6ZnVuY3Rpb24oKXtlLl92YWx1ZVRyYWNrZXI9bnVsbCxkZWxldGUgZVtuXX19fX0oZSxuLFwiXCIrZVtuXSl9fWZ1bmN0aW9uIGU4KGUpe2lmKCFlKXJldHVybiExO3ZhciBuPWUuX3ZhbHVlVHJhY2tlcjtpZighbilyZXR1cm4hMDt2YXIgdD1uLmdldFZhbHVlKCkscj1cIlwiO3JldHVybiBlJiYocj1lNihlKT9lLmNoZWNrZWQ/XCJ0cnVlXCI6XCJmYWxzZVwiOmUudmFsdWUpLChlPXIpIT09dCYmKG4uc2V0VmFsdWUoZSksITApfWZ1bmN0aW9uIGU3KGUpe2lmKHZvaWQgMD09PShlPWV8fChcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKSkpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1jYXRjaChuKXtyZXR1cm4gZS5ib2R5fX12YXIgbmU9L1tcXG5cIlxcXFxdL2c7ZnVuY3Rpb24gbm4oZSl7cmV0dXJuIGUucmVwbGFjZShuZSxmdW5jdGlvbihlKXtyZXR1cm5cIlxcXFxcIitlLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpK1wiIFwifSl9ZnVuY3Rpb24gbnQoZSxuLHQscixvLGEsaSxsKXtlLm5hbWU9XCJcIixudWxsIT1pJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBpJiZcInN5bWJvbFwiIT10eXBlb2YgaSYmXCJib29sZWFuXCIhPXR5cGVvZiBpP2UudHlwZT1pOmUucmVtb3ZlQXR0cmlidXRlKFwidHlwZVwiKSxudWxsIT1uP1wibnVtYmVyXCI9PT1pPygwPT09biYmXCJcIj09PWUudmFsdWV8fGUudmFsdWUhPW4pJiYoZS52YWx1ZT1cIlwiK2UzKG4pKTplLnZhbHVlIT09XCJcIitlMyhuKSYmKGUudmFsdWU9XCJcIitlMyhuKSk6XCJzdWJtaXRcIiE9PWkmJlwicmVzZXRcIiE9PWl8fGUucmVtb3ZlQXR0cmlidXRlKFwidmFsdWVcIiksbnVsbCE9bj9ubyhlLGksZTMobikpOm51bGwhPXQ/bm8oZSxpLGUzKHQpKTpudWxsIT1yJiZlLnJlbW92ZUF0dHJpYnV0ZShcInZhbHVlXCIpLG51bGw9PW8mJm51bGwhPWEmJihlLmRlZmF1bHRDaGVja2VkPSEhYSksbnVsbCE9byYmKGUuY2hlY2tlZD1vJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBvJiZcInN5bWJvbFwiIT10eXBlb2YgbyksbnVsbCE9bCYmXCJmdW5jdGlvblwiIT10eXBlb2YgbCYmXCJzeW1ib2xcIiE9dHlwZW9mIGwmJlwiYm9vbGVhblwiIT10eXBlb2YgbD9lLm5hbWU9XCJcIitlMyhsKTplLnJlbW92ZUF0dHJpYnV0ZShcIm5hbWVcIil9ZnVuY3Rpb24gbnIoZSxuLHQscixvLGEsaSxsKXtpZihudWxsIT1hJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBhJiZcInN5bWJvbFwiIT10eXBlb2YgYSYmXCJib29sZWFuXCIhPXR5cGVvZiBhJiYoZS50eXBlPWEpLG51bGwhPW58fG51bGwhPXQpe2lmKChcInN1Ym1pdFwiPT09YXx8XCJyZXNldFwiPT09YSkmJm51bGw9PW4pcmV0dXJuIHZvaWQgZTkoZSk7dD1udWxsIT10P1wiXCIrZTModCk6XCJcIixuPW51bGwhPW4/XCJcIitlMyhuKTp0LGx8fG49PT1lLnZhbHVlfHwoZS52YWx1ZT1uKSxlLmRlZmF1bHRWYWx1ZT1ufXI9XCJmdW5jdGlvblwiIT10eXBlb2Yocj1udWxsIT1yP3I6bykmJlwic3ltYm9sXCIhPXR5cGVvZiByJiYhIXIsZS5jaGVja2VkPWw/ZS5jaGVja2VkOiEhcixlLmRlZmF1bHRDaGVja2VkPSEhcixudWxsIT1pJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBpJiZcInN5bWJvbFwiIT10eXBlb2YgaSYmXCJib29sZWFuXCIhPXR5cGVvZiBpJiYoZS5uYW1lPWkpLGU5KGUpfWZ1bmN0aW9uIG5vKGUsbix0KXtcIm51bWJlclwiPT09biYmZTcoZS5vd25lckRvY3VtZW50KT09PWV8fGUuZGVmYXVsdFZhbHVlPT09XCJcIit0fHwoZS5kZWZhdWx0VmFsdWU9XCJcIit0KX1mdW5jdGlvbiBuYShlLG4sdCxyKXtpZihlPWUub3B0aW9ucyxuKXtuPXt9O2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKW5bXCIkXCIrdFtvXV09ITA7Zm9yKHQ9MDt0PGUubGVuZ3RoO3QrKylvPW4uaGFzT3duUHJvcGVydHkoXCIkXCIrZVt0XS52YWx1ZSksZVt0XS5zZWxlY3RlZCE9PW8mJihlW3RdLnNlbGVjdGVkPW8pLG8mJnImJihlW3RdLmRlZmF1bHRTZWxlY3RlZD0hMCl9ZWxzZXtmb3Iobz0wLHQ9XCJcIitlMyh0KSxuPW51bGw7bzxlLmxlbmd0aDtvKyspe2lmKGVbb10udmFsdWU9PT10KXtlW29dLnNlbGVjdGVkPSEwLHImJihlW29dLmRlZmF1bHRTZWxlY3RlZD0hMCk7cmV0dXJufW51bGwhPT1ufHxlW29dLmRpc2FibGVkfHwobj1lW29dKX1udWxsIT09biYmKG4uc2VsZWN0ZWQ9ITApfX1mdW5jdGlvbiBuaShlLG4sdCl7aWYobnVsbCE9biYmKChuPVwiXCIrZTMobikpIT09ZS52YWx1ZSYmKGUudmFsdWU9biksbnVsbD09dCkpe2UuZGVmYXVsdFZhbHVlIT09biYmKGUuZGVmYXVsdFZhbHVlPW4pO3JldHVybn1lLmRlZmF1bHRWYWx1ZT1udWxsIT10P1wiXCIrZTModCk6XCJcIn1mdW5jdGlvbiBubChlLG4sdCxyKXtpZihudWxsPT1uKXtpZihudWxsIT1yKXtpZihudWxsIT10KXRocm93IEVycm9yKGwoOTIpKTtpZih6KHIpKXtpZigxPHIubGVuZ3RoKXRocm93IEVycm9yKGwoOTMpKTtyPXJbMF19dD1yfW51bGw9PXQmJih0PVwiXCIpLG49dH1lLmRlZmF1bHRWYWx1ZT10PWUzKG4pLChyPWUudGV4dENvbnRlbnQpPT09dCYmXCJcIiE9PXImJm51bGwhPT1yJiYoZS52YWx1ZT1yKSxlOShlKX1mdW5jdGlvbiBucyhlLG4pe2lmKG4pe3ZhciB0PWUuZmlyc3RDaGlsZDtpZih0JiZ0PT09ZS5sYXN0Q2hpbGQmJjM9PT10Lm5vZGVUeXBlKXt0Lm5vZGVWYWx1ZT1uO3JldHVybn19ZS50ZXh0Q29udGVudD1ufXZhciBuYz1uZXcgU2V0KFwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgYXNwZWN0UmF0aW8gYm9yZGVySW1hZ2VPdXRzZXQgYm9yZGVySW1hZ2VTbGljZSBib3JkZXJJbWFnZVdpZHRoIGJveEZsZXggYm94RmxleEdyb3VwIGJveE9yZGluYWxHcm91cCBjb2x1bW5Db3VudCBjb2x1bW5zIGZsZXggZmxleEdyb3cgZmxleFBvc2l0aXZlIGZsZXhTaHJpbmsgZmxleE5lZ2F0aXZlIGZsZXhPcmRlciBncmlkQXJlYSBncmlkUm93IGdyaWRSb3dFbmQgZ3JpZFJvd1NwYW4gZ3JpZFJvd1N0YXJ0IGdyaWRDb2x1bW4gZ3JpZENvbHVtbkVuZCBncmlkQ29sdW1uU3BhbiBncmlkQ29sdW1uU3RhcnQgZm9udFdlaWdodCBsaW5lQ2xhbXAgbGluZUhlaWdodCBvcGFjaXR5IG9yZGVyIG9ycGhhbnMgc2NhbGUgdGFiU2l6ZSB3aWRvd3MgekluZGV4IHpvb20gZmlsbE9wYWNpdHkgZmxvb2RPcGFjaXR5IHN0b3BPcGFjaXR5IHN0cm9rZURhc2hhcnJheSBzdHJva2VEYXNob2Zmc2V0IHN0cm9rZU1pdGVybGltaXQgc3Ryb2tlT3BhY2l0eSBzdHJva2VXaWR0aCBNb3pBbmltYXRpb25JdGVyYXRpb25Db3VudCBNb3pCb3hGbGV4IE1vekJveEZsZXhHcm91cCBNb3pMaW5lQ2xhbXAgbXNBbmltYXRpb25JdGVyYXRpb25Db3VudCBtc0ZsZXggbXNab29tIG1zRmxleEdyb3cgbXNGbGV4TmVnYXRpdmUgbXNGbGV4T3JkZXIgbXNGbGV4UG9zaXRpdmUgbXNGbGV4U2hyaW5rIG1zR3JpZENvbHVtbiBtc0dyaWRDb2x1bW5TcGFuIG1zR3JpZFJvdyBtc0dyaWRSb3dTcGFuIFdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IFdlYmtpdEJveEZsZXggV2ViS2l0Qm94RmxleEdyb3VwIFdlYmtpdEJveE9yZGluYWxHcm91cCBXZWJraXRDb2x1bW5Db3VudCBXZWJraXRDb2x1bW5zIFdlYmtpdEZsZXggV2Via2l0RmxleEdyb3cgV2Via2l0RmxleFBvc2l0aXZlIFdlYmtpdEZsZXhTaHJpbmsgV2Via2l0TGluZUNsYW1wXCIuc3BsaXQoXCIgXCIpKTtmdW5jdGlvbiBudShlLG4sdCl7dmFyIHI9MD09PW4uaW5kZXhPZihcIi0tXCIpO251bGw9PXR8fFwiYm9vbGVhblwiPT10eXBlb2YgdHx8XCJcIj09PXQ/cj9lLnNldFByb3BlcnR5KG4sXCJcIik6XCJmbG9hdFwiPT09bj9lLmNzc0Zsb2F0PVwiXCI6ZVtuXT1cIlwiOnI/ZS5zZXRQcm9wZXJ0eShuLHQpOlwibnVtYmVyXCIhPXR5cGVvZiB0fHwwPT09dHx8bmMuaGFzKG4pP1wiZmxvYXRcIj09PW4/ZS5jc3NGbG9hdD10OmVbbl09KFwiXCIrdCkudHJpbSgpOmVbbl09dCtcInB4XCJ9ZnVuY3Rpb24gbmQoZSxuLHQpe2lmKG51bGwhPW4mJlwib2JqZWN0XCIhPXR5cGVvZiBuKXRocm93IEVycm9yKGwoNjIpKTtpZihlPWUuc3R5bGUsbnVsbCE9dCl7Zm9yKHZhciByIGluIHQpIXQuaGFzT3duUHJvcGVydHkocil8fG51bGwhPW4mJm4uaGFzT3duUHJvcGVydHkocil8fCgwPT09ci5pbmRleE9mKFwiLS1cIik/ZS5zZXRQcm9wZXJ0eShyLFwiXCIpOlwiZmxvYXRcIj09PXI/ZS5jc3NGbG9hdD1cIlwiOmVbcl09XCJcIik7Zm9yKHZhciBvIGluIG4pcj1uW29dLG4uaGFzT3duUHJvcGVydHkobykmJnRbb10hPT1yJiZudShlLG8scil9ZWxzZSBmb3IodmFyIGEgaW4gbiluLmhhc093blByb3BlcnR5KGEpJiZudShlLGEsblthXSl9ZnVuY3Rpb24gbmYoZSl7aWYoLTE9PT1lLmluZGV4T2YoXCItXCIpKXJldHVybiExO3N3aXRjaChlKXtjYXNlXCJhbm5vdGF0aW9uLXhtbFwiOmNhc2VcImNvbG9yLXByb2ZpbGVcIjpjYXNlXCJmb250LWZhY2VcIjpjYXNlXCJmb250LWZhY2Utc3JjXCI6Y2FzZVwiZm9udC1mYWNlLXVyaVwiOmNhc2VcImZvbnQtZmFjZS1mb3JtYXRcIjpjYXNlXCJmb250LWZhY2UtbmFtZVwiOmNhc2VcIm1pc3NpbmctZ2x5cGhcIjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX12YXIgbnA9bmV3IE1hcChbW1wiYWNjZXB0Q2hhcnNldFwiLFwiYWNjZXB0LWNoYXJzZXRcIl0sW1wiaHRtbEZvclwiLFwiZm9yXCJdLFtcImh0dHBFcXVpdlwiLFwiaHR0cC1lcXVpdlwiXSxbXCJjcm9zc09yaWdpblwiLFwiY3Jvc3NvcmlnaW5cIl0sW1wiYWNjZW50SGVpZ2h0XCIsXCJhY2NlbnQtaGVpZ2h0XCJdLFtcImFsaWdubWVudEJhc2VsaW5lXCIsXCJhbGlnbm1lbnQtYmFzZWxpbmVcIl0sW1wiYXJhYmljRm9ybVwiLFwiYXJhYmljLWZvcm1cIl0sW1wiYmFzZWxpbmVTaGlmdFwiLFwiYmFzZWxpbmUtc2hpZnRcIl0sW1wiY2FwSGVpZ2h0XCIsXCJjYXAtaGVpZ2h0XCJdLFtcImNsaXBQYXRoXCIsXCJjbGlwLXBhdGhcIl0sW1wiY2xpcFJ1bGVcIixcImNsaXAtcnVsZVwiXSxbXCJjb2xvckludGVycG9sYXRpb25cIixcImNvbG9yLWludGVycG9sYXRpb25cIl0sW1wiY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyc1wiLFwiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzXCJdLFtcImNvbG9yUHJvZmlsZVwiLFwiY29sb3ItcHJvZmlsZVwiXSxbXCJjb2xvclJlbmRlcmluZ1wiLFwiY29sb3ItcmVuZGVyaW5nXCJdLFtcImRvbWluYW50QmFzZWxpbmVcIixcImRvbWluYW50LWJhc2VsaW5lXCJdLFtcImVuYWJsZUJhY2tncm91bmRcIixcImVuYWJsZS1iYWNrZ3JvdW5kXCJdLFtcImZpbGxPcGFjaXR5XCIsXCJmaWxsLW9wYWNpdHlcIl0sW1wiZmlsbFJ1bGVcIixcImZpbGwtcnVsZVwiXSxbXCJmbG9vZENvbG9yXCIsXCJmbG9vZC1jb2xvclwiXSxbXCJmbG9vZE9wYWNpdHlcIixcImZsb29kLW9wYWNpdHlcIl0sW1wiZm9udEZhbWlseVwiLFwiZm9udC1mYW1pbHlcIl0sW1wiZm9udFNpemVcIixcImZvbnQtc2l6ZVwiXSxbXCJmb250U2l6ZUFkanVzdFwiLFwiZm9udC1zaXplLWFkanVzdFwiXSxbXCJmb250U3RyZXRjaFwiLFwiZm9udC1zdHJldGNoXCJdLFtcImZvbnRTdHlsZVwiLFwiZm9udC1zdHlsZVwiXSxbXCJmb250VmFyaWFudFwiLFwiZm9udC12YXJpYW50XCJdLFtcImZvbnRXZWlnaHRcIixcImZvbnQtd2VpZ2h0XCJdLFtcImdseXBoTmFtZVwiLFwiZ2x5cGgtbmFtZVwiXSxbXCJnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbFwiLFwiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbFwiXSxbXCJnbHlwaE9yaWVudGF0aW9uVmVydGljYWxcIixcImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsXCJdLFtcImhvcml6QWR2WFwiLFwiaG9yaXotYWR2LXhcIl0sW1wiaG9yaXpPcmlnaW5YXCIsXCJob3Jpei1vcmlnaW4teFwiXSxbXCJpbWFnZVJlbmRlcmluZ1wiLFwiaW1hZ2UtcmVuZGVyaW5nXCJdLFtcImxldHRlclNwYWNpbmdcIixcImxldHRlci1zcGFjaW5nXCJdLFtcImxpZ2h0aW5nQ29sb3JcIixcImxpZ2h0aW5nLWNvbG9yXCJdLFtcIm1hcmtlckVuZFwiLFwibWFya2VyLWVuZFwiXSxbXCJtYXJrZXJNaWRcIixcIm1hcmtlci1taWRcIl0sW1wibWFya2VyU3RhcnRcIixcIm1hcmtlci1zdGFydFwiXSxbXCJvdmVybGluZVBvc2l0aW9uXCIsXCJvdmVybGluZS1wb3NpdGlvblwiXSxbXCJvdmVybGluZVRoaWNrbmVzc1wiLFwib3ZlcmxpbmUtdGhpY2tuZXNzXCJdLFtcInBhaW50T3JkZXJcIixcInBhaW50LW9yZGVyXCJdLFtcInBhbm9zZS0xXCIsXCJwYW5vc2UtMVwiXSxbXCJwb2ludGVyRXZlbnRzXCIsXCJwb2ludGVyLWV2ZW50c1wiXSxbXCJyZW5kZXJpbmdJbnRlbnRcIixcInJlbmRlcmluZy1pbnRlbnRcIl0sW1wic2hhcGVSZW5kZXJpbmdcIixcInNoYXBlLXJlbmRlcmluZ1wiXSxbXCJzdG9wQ29sb3JcIixcInN0b3AtY29sb3JcIl0sW1wic3RvcE9wYWNpdHlcIixcInN0b3Atb3BhY2l0eVwiXSxbXCJzdHJpa2V0aHJvdWdoUG9zaXRpb25cIixcInN0cmlrZXRocm91Z2gtcG9zaXRpb25cIl0sW1wic3RyaWtldGhyb3VnaFRoaWNrbmVzc1wiLFwic3RyaWtldGhyb3VnaC10aGlja25lc3NcIl0sW1wic3Ryb2tlRGFzaGFycmF5XCIsXCJzdHJva2UtZGFzaGFycmF5XCJdLFtcInN0cm9rZURhc2hvZmZzZXRcIixcInN0cm9rZS1kYXNob2Zmc2V0XCJdLFtcInN0cm9rZUxpbmVjYXBcIixcInN0cm9rZS1saW5lY2FwXCJdLFtcInN0cm9rZUxpbmVqb2luXCIsXCJzdHJva2UtbGluZWpvaW5cIl0sW1wic3Ryb2tlTWl0ZXJsaW1pdFwiLFwic3Ryb2tlLW1pdGVybGltaXRcIl0sW1wic3Ryb2tlT3BhY2l0eVwiLFwic3Ryb2tlLW9wYWNpdHlcIl0sW1wic3Ryb2tlV2lkdGhcIixcInN0cm9rZS13aWR0aFwiXSxbXCJ0ZXh0QW5jaG9yXCIsXCJ0ZXh0LWFuY2hvclwiXSxbXCJ0ZXh0RGVjb3JhdGlvblwiLFwidGV4dC1kZWNvcmF0aW9uXCJdLFtcInRleHRSZW5kZXJpbmdcIixcInRleHQtcmVuZGVyaW5nXCJdLFtcInRyYW5zZm9ybU9yaWdpblwiLFwidHJhbnNmb3JtLW9yaWdpblwiXSxbXCJ1bmRlcmxpbmVQb3NpdGlvblwiLFwidW5kZXJsaW5lLXBvc2l0aW9uXCJdLFtcInVuZGVybGluZVRoaWNrbmVzc1wiLFwidW5kZXJsaW5lLXRoaWNrbmVzc1wiXSxbXCJ1bmljb2RlQmlkaVwiLFwidW5pY29kZS1iaWRpXCJdLFtcInVuaWNvZGVSYW5nZVwiLFwidW5pY29kZS1yYW5nZVwiXSxbXCJ1bml0c1BlckVtXCIsXCJ1bml0cy1wZXItZW1cIl0sW1widkFscGhhYmV0aWNcIixcInYtYWxwaGFiZXRpY1wiXSxbXCJ2SGFuZ2luZ1wiLFwidi1oYW5naW5nXCJdLFtcInZJZGVvZ3JhcGhpY1wiLFwidi1pZGVvZ3JhcGhpY1wiXSxbXCJ2TWF0aGVtYXRpY2FsXCIsXCJ2LW1hdGhlbWF0aWNhbFwiXSxbXCJ2ZWN0b3JFZmZlY3RcIixcInZlY3Rvci1lZmZlY3RcIl0sW1widmVydEFkdllcIixcInZlcnQtYWR2LXlcIl0sW1widmVydE9yaWdpblhcIixcInZlcnQtb3JpZ2luLXhcIl0sW1widmVydE9yaWdpbllcIixcInZlcnQtb3JpZ2luLXlcIl0sW1wid29yZFNwYWNpbmdcIixcIndvcmQtc3BhY2luZ1wiXSxbXCJ3cml0aW5nTW9kZVwiLFwid3JpdGluZy1tb2RlXCJdLFtcInhtbG5zWGxpbmtcIixcInhtbG5zOnhsaW5rXCJdLFtcInhIZWlnaHRcIixcIngtaGVpZ2h0XCJdXSksbmg9L15bXFx1MDAwMC1cXHUwMDFGIF0qaltcXHJcXG5cXHRdKmFbXFxyXFxuXFx0XSp2W1xcclxcblxcdF0qYVtcXHJcXG5cXHRdKnNbXFxyXFxuXFx0XSpjW1xcclxcblxcdF0qcltcXHJcXG5cXHRdKmlbXFxyXFxuXFx0XSpwW1xcclxcblxcdF0qdFtcXHJcXG5cXHRdKjovaTtmdW5jdGlvbiBuZyhlKXtyZXR1cm4gbmgudGVzdChcIlwiK2UpP1wiamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0IGhhcyBibG9ja2VkIGEgamF2YXNjcmlwdDogVVJMIGFzIGEgc2VjdXJpdHkgcHJlY2F1dGlvbi4nKVwiOmV9ZnVuY3Rpb24gbm0oKXt9dmFyIG52PW51bGw7ZnVuY3Rpb24gbmIoZSl7cmV0dXJuKGU9ZS50YXJnZXR8fGUuc3JjRWxlbWVudHx8d2luZG93KS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCYmKGU9ZS5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCksMz09PWUubm9kZVR5cGU/ZS5wYXJlbnROb2RlOmV9dmFyIG55PW51bGwsbng9bnVsbDtmdW5jdGlvbiBudyhlKXt2YXIgbj1lVyhlKTtpZihuJiYoZT1uLnN0YXRlTm9kZSkpe3ZhciB0PWVbZURdfHxudWxsO3N3aXRjaChlPW4uc3RhdGVOb2RlLG4udHlwZSl7Y2FzZVwiaW5wdXRcIjppZihudChlLHQudmFsdWUsdC5kZWZhdWx0VmFsdWUsdC5kZWZhdWx0VmFsdWUsdC5jaGVja2VkLHQuZGVmYXVsdENoZWNrZWQsdC50eXBlLHQubmFtZSksbj10Lm5hbWUsXCJyYWRpb1wiPT09dC50eXBlJiZudWxsIT1uKXtmb3IodD1lO3QucGFyZW50Tm9kZTspdD10LnBhcmVudE5vZGU7Zm9yKHQ9dC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtuYW1lPVwiJytubihcIlwiK24pKydcIl1bdHlwZT1cInJhZGlvXCJdJyksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO2lmKHIhPT1lJiZyLmZvcm09PT1lLmZvcm0pe3ZhciBvPXJbZURdfHxudWxsO2lmKCFvKXRocm93IEVycm9yKGwoOTApKTtudChyLG8udmFsdWUsby5kZWZhdWx0VmFsdWUsby5kZWZhdWx0VmFsdWUsby5jaGVja2VkLG8uZGVmYXVsdENoZWNrZWQsby50eXBlLG8ubmFtZSl9fWZvcihuPTA7bjx0Lmxlbmd0aDtuKyspKHI9dFtuXSkuZm9ybT09PWUuZm9ybSYmZTgocil9YnJlYWs7Y2FzZVwidGV4dGFyZWFcIjpuaShlLHQudmFsdWUsdC5kZWZhdWx0VmFsdWUpO2JyZWFrO2Nhc2VcInNlbGVjdFwiOm51bGwhPShuPXQudmFsdWUpJiZuYShlLCEhdC5tdWx0aXBsZSxuLCExKX19fXZhciBuaj0hMTtmdW5jdGlvbiBuayhlLG4sdCl7aWYobmopcmV0dXJuIGUobix0KTtuaj0hMDt0cnl7cmV0dXJuIGUobil9ZmluYWxseXtpZihuaj0hMSwobnVsbCE9PW55fHxudWxsIT09bngpJiYoc3MoKSxueSYmKG49bnksZT1ueCxueD1ueT1udWxsLG53KG4pLGUpKSlmb3Iobj0wO248ZS5sZW5ndGg7bisrKW53KGVbbl0pfX1mdW5jdGlvbiBuQShlLG4pe3ZhciB0PWUuc3RhdGVOb2RlO2lmKG51bGw9PT10KXJldHVybiBudWxsO3ZhciByPXRbZURdfHxudWxsO2lmKG51bGw9PT1yKXJldHVybiBudWxsO3N3aXRjaCh0PXJbbl0sbil7Y2FzZVwib25DbGlja1wiOmNhc2VcIm9uQ2xpY2tDYXB0dXJlXCI6Y2FzZVwib25Eb3VibGVDbGlja1wiOmNhc2VcIm9uRG91YmxlQ2xpY2tDYXB0dXJlXCI6Y2FzZVwib25Nb3VzZURvd25cIjpjYXNlXCJvbk1vdXNlRG93bkNhcHR1cmVcIjpjYXNlXCJvbk1vdXNlTW92ZVwiOmNhc2VcIm9uTW91c2VNb3ZlQ2FwdHVyZVwiOmNhc2VcIm9uTW91c2VVcFwiOmNhc2VcIm9uTW91c2VVcENhcHR1cmVcIjpjYXNlXCJvbk1vdXNlRW50ZXJcIjoocj0hci5kaXNhYmxlZCl8fChyPVwiYnV0dG9uXCIhPT0oZT1lLnR5cGUpJiZcImlucHV0XCIhPT1lJiZcInNlbGVjdFwiIT09ZSYmXCJ0ZXh0YXJlYVwiIT09ZSksZT0hcjticmVhaztkZWZhdWx0OmU9ITF9aWYoZSlyZXR1cm4gbnVsbDtpZih0JiZcImZ1bmN0aW9uXCIhPXR5cGVvZiB0KXRocm93IEVycm9yKGwoMjMxLG4sdHlwZW9mIHQpKTtyZXR1cm4gdH12YXIgbk89XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmRvY3VtZW50JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCxuQz0hMTtpZihuTyl0cnl7dmFyIG5TPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShuUyxcInBhc3NpdmVcIix7Z2V0OmZ1bmN0aW9uKCl7bkM9ITB9fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsblMsblMpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwidGVzdFwiLG5TLG5TKX1jYXRjaChlKXtuQz0hMX12YXIgbkU9bnVsbCxuXz1udWxsLG5QPW51bGw7ZnVuY3Rpb24gbnooKXtpZihuUClyZXR1cm4gblA7dmFyIGUsbix0PW5fLHI9dC5sZW5ndGgsbz1cInZhbHVlXCJpbiBuRT9uRS52YWx1ZTpuRS50ZXh0Q29udGVudCxhPW8ubGVuZ3RoO2ZvcihlPTA7ZTxyJiZ0W2VdPT09b1tlXTtlKyspO3ZhciBpPXItZTtmb3Iobj0xO248PWkmJnRbci1uXT09PW9bYS1uXTtuKyspO3JldHVybiBuUD1vLnNsaWNlKGUsMTxuPzEtbjp2b2lkIDApfWZ1bmN0aW9uIG5MKGUpe3ZhciBuPWUua2V5Q29kZTtyZXR1cm5cImNoYXJDb2RlXCJpbiBlPzA9PT0oZT1lLmNoYXJDb2RlKSYmMTM9PT1uJiYoZT0xMyk6ZT1uLDEwPT09ZSYmKGU9MTMpLDMyPD1lfHwxMz09PWU/ZTowfWZ1bmN0aW9uIG5UKCl7cmV0dXJuITB9ZnVuY3Rpb24gblIoKXtyZXR1cm4hMX1mdW5jdGlvbiBuTihlKXtmdW5jdGlvbiBuKG4sdCxyLG8sYSl7Zm9yKHZhciBpIGluIHRoaXMuX3JlYWN0TmFtZT1uLHRoaXMuX3RhcmdldEluc3Q9cix0aGlzLnR5cGU9dCx0aGlzLm5hdGl2ZUV2ZW50PW8sdGhpcy50YXJnZXQ9YSx0aGlzLmN1cnJlbnRUYXJnZXQ9bnVsbCxlKWUuaGFzT3duUHJvcGVydHkoaSkmJihuPWVbaV0sdGhpc1tpXT1uP24obyk6b1tpXSk7cmV0dXJuIHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPShudWxsIT1vLmRlZmF1bHRQcmV2ZW50ZWQ/by5kZWZhdWx0UHJldmVudGVkOiExPT09by5yZXR1cm5WYWx1ZSk/blQ6blIsdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1uUix0aGlzfXJldHVybiBmKG4ucHJvdG90eXBlLHtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdFByZXZlbnRlZD0hMDt2YXIgZT10aGlzLm5hdGl2ZUV2ZW50O2UmJihlLnByZXZlbnREZWZhdWx0P2UucHJldmVudERlZmF1bHQoKTpcInVua25vd25cIiE9dHlwZW9mIGUucmV0dXJuVmFsdWUmJihlLnJldHVyblZhbHVlPSExKSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1uVCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMubmF0aXZlRXZlbnQ7ZSYmKGUuc3RvcFByb3BhZ2F0aW9uP2Uuc3RvcFByb3BhZ2F0aW9uKCk6XCJ1bmtub3duXCIhPXR5cGVvZiBlLmNhbmNlbEJ1YmJsZSYmKGUuY2FuY2VsQnViYmxlPSEwKSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPW5UKX0scGVyc2lzdDpmdW5jdGlvbigpe30saXNQZXJzaXN0ZW50Om5UfSksbn12YXIgbkQsbkIsbk0sbkksbkgsbkY9e2V2ZW50UGhhc2U6MCxidWJibGVzOjAsY2FuY2VsYWJsZTowLHRpbWVTdGFtcDpmdW5jdGlvbihlKXtyZXR1cm4gZS50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6MCxpc1RydXN0ZWQ6MH0sblU9bk4obkYpLG5WPWYoe30sbkYse3ZpZXc6MCxkZXRhaWw6MH0pLG5xPW5OKG5WKSxuVz1mKHt9LG5WLHtzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MCxjbGllbnRZOjAscGFnZVg6MCxwYWdlWTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxnZXRNb2RpZmllclN0YXRlOm4yLGJ1dHRvbjowLGJ1dHRvbnM6MCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lLnJlbGF0ZWRUYXJnZXQ/ZS5mcm9tRWxlbWVudD09PWUuc3JjRWxlbWVudD9lLnRvRWxlbWVudDplLmZyb21FbGVtZW50OmUucmVsYXRlZFRhcmdldH0sbW92ZW1lbnRYOmZ1bmN0aW9uKGUpe3JldHVyblwibW92ZW1lbnRYXCJpbiBlP2UubW92ZW1lbnRYOihlIT09bkgmJihuSCYmXCJtb3VzZW1vdmVcIj09PWUudHlwZT8obk09ZS5zY3JlZW5YLW5ILnNjcmVlblgsbkk9ZS5zY3JlZW5ZLW5ILnNjcmVlblkpOm5JPW5NPTAsbkg9ZSksbk0pfSxtb3ZlbWVudFk6ZnVuY3Rpb24oZSl7cmV0dXJuXCJtb3ZlbWVudFlcImluIGU/ZS5tb3ZlbWVudFk6bkl9fSksbiQ9bk4oblcpLG5aPW5OKGYoe30sblcse2RhdGFUcmFuc2ZlcjowfSkpLG5ZPW5OKGYoe30sblYse3JlbGF0ZWRUYXJnZXQ6MH0pKSxuWD1uTihmKHt9LG5GLHthbmltYXRpb25OYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSksbks9bk4oZih7fSxuRix7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihlKXtyZXR1cm5cImNsaXBib2FyZERhdGFcImluIGU/ZS5jbGlwYm9hcmREYXRhOndpbmRvdy5jbGlwYm9hcmREYXRhfX0pKSxuUT1uTihmKHt9LG5GLHtkYXRhOjB9KSksbkc9e0VzYzpcIkVzY2FwZVwiLFNwYWNlYmFyOlwiIFwiLExlZnQ6XCJBcnJvd0xlZnRcIixVcDpcIkFycm93VXBcIixSaWdodDpcIkFycm93UmlnaHRcIixEb3duOlwiQXJyb3dEb3duXCIsRGVsOlwiRGVsZXRlXCIsV2luOlwiT1NcIixNZW51OlwiQ29udGV4dE1lbnVcIixBcHBzOlwiQ29udGV4dE1lbnVcIixTY3JvbGw6XCJTY3JvbGxMb2NrXCIsTW96UHJpbnRhYmxlS2V5OlwiVW5pZGVudGlmaWVkXCJ9LG5KPXs4OlwiQmFja3NwYWNlXCIsOTpcIlRhYlwiLDEyOlwiQ2xlYXJcIiwxMzpcIkVudGVyXCIsMTY6XCJTaGlmdFwiLDE3OlwiQ29udHJvbFwiLDE4OlwiQWx0XCIsMTk6XCJQYXVzZVwiLDIwOlwiQ2Fwc0xvY2tcIiwyNzpcIkVzY2FwZVwiLDMyOlwiIFwiLDMzOlwiUGFnZVVwXCIsMzQ6XCJQYWdlRG93blwiLDM1OlwiRW5kXCIsMzY6XCJIb21lXCIsMzc6XCJBcnJvd0xlZnRcIiwzODpcIkFycm93VXBcIiwzOTpcIkFycm93UmlnaHRcIiw0MDpcIkFycm93RG93blwiLDQ1OlwiSW5zZXJ0XCIsNDY6XCJEZWxldGVcIiwxMTI6XCJGMVwiLDExMzpcIkYyXCIsMTE0OlwiRjNcIiwxMTU6XCJGNFwiLDExNjpcIkY1XCIsMTE3OlwiRjZcIiwxMTg6XCJGN1wiLDExOTpcIkY4XCIsMTIwOlwiRjlcIiwxMjE6XCJGMTBcIiwxMjI6XCJGMTFcIiwxMjM6XCJGMTJcIiwxNDQ6XCJOdW1Mb2NrXCIsMTQ1OlwiU2Nyb2xsTG9ja1wiLDIyNDpcIk1ldGFcIn0sbjA9e0FsdDpcImFsdEtleVwiLENvbnRyb2w6XCJjdHJsS2V5XCIsTWV0YTpcIm1ldGFLZXlcIixTaGlmdDpcInNoaWZ0S2V5XCJ9O2Z1bmN0aW9uIG4xKGUpe3ZhciBuPXRoaXMubmF0aXZlRXZlbnQ7cmV0dXJuIG4uZ2V0TW9kaWZpZXJTdGF0ZT9uLmdldE1vZGlmaWVyU3RhdGUoZSk6ISEoZT1uMFtlXSkmJiEhbltlXX1mdW5jdGlvbiBuMigpe3JldHVybiBuMX12YXIgbjQ9bk4oZih7fSxuVix7a2V5OmZ1bmN0aW9uKGUpe2lmKGUua2V5KXt2YXIgbj1uR1tlLmtleV18fGUua2V5O2lmKFwiVW5pZGVudGlmaWVkXCIhPT1uKXJldHVybiBufXJldHVyblwia2V5cHJlc3NcIj09PWUudHlwZT8xMz09PShlPW5MKGUpKT9cIkVudGVyXCI6U3RyaW5nLmZyb21DaGFyQ29kZShlKTpcImtleWRvd25cIj09PWUudHlwZXx8XCJrZXl1cFwiPT09ZS50eXBlP25KW2Uua2V5Q29kZV18fFwiVW5pZGVudGlmaWVkXCI6XCJcIn0sY29kZTowLGxvY2F0aW9uOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLHJlcGVhdDowLGxvY2FsZTowLGdldE1vZGlmaWVyU3RhdGU6bjIsY2hhckNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuXCJrZXlwcmVzc1wiPT09ZS50eXBlP25MKGUpOjB9LGtleUNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuXCJrZXlkb3duXCI9PT1lLnR5cGV8fFwia2V5dXBcIj09PWUudHlwZT9lLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24oZSl7cmV0dXJuXCJrZXlwcmVzc1wiPT09ZS50eXBlP25MKGUpOlwia2V5ZG93blwiPT09ZS50eXBlfHxcImtleXVwXCI9PT1lLnR5cGU/ZS5rZXlDb2RlOjB9fSkpLG41PW5OKGYoe30sblcse3BvaW50ZXJJZDowLHdpZHRoOjAsaGVpZ2h0OjAscHJlc3N1cmU6MCx0YW5nZW50aWFsUHJlc3N1cmU6MCx0aWx0WDowLHRpbHRZOjAsdHdpc3Q6MCxwb2ludGVyVHlwZTowLGlzUHJpbWFyeTowfSkpLG4zPW5OKGYoe30sblYse3RvdWNoZXM6MCx0YXJnZXRUb3VjaGVzOjAsY2hhbmdlZFRvdWNoZXM6MCxhbHRLZXk6MCxtZXRhS2V5OjAsY3RybEtleTowLHNoaWZ0S2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpuMn0pKSxuNj1uTihmKHt9LG5GLHtwcm9wZXJ0eU5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pKSxuOT1uTihmKHt9LG5XLHtkZWx0YVg6ZnVuY3Rpb24oZSl7cmV0dXJuXCJkZWx0YVhcImluIGU/ZS5kZWx0YVg6XCJ3aGVlbERlbHRhWFwiaW4gZT8tZS53aGVlbERlbHRhWDowfSxkZWx0YVk6ZnVuY3Rpb24oZSl7cmV0dXJuXCJkZWx0YVlcImluIGU/ZS5kZWx0YVk6XCJ3aGVlbERlbHRhWVwiaW4gZT8tZS53aGVlbERlbHRhWTpcIndoZWVsRGVsdGFcImluIGU/LWUud2hlZWxEZWx0YTowfSxkZWx0YVo6MCxkZWx0YU1vZGU6MH0pKSxuOD1uTihmKHt9LG5GLHtuZXdTdGF0ZTowLG9sZFN0YXRlOjB9KSksbjc9WzksMTMsMjcsMzJdLHRlPW5PJiZcIkNvbXBvc2l0aW9uRXZlbnRcImluIHdpbmRvdyx0bj1udWxsO25PJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJih0bj1kb2N1bWVudC5kb2N1bWVudE1vZGUpO3ZhciB0dD1uTyYmXCJUZXh0RXZlbnRcImluIHdpbmRvdyYmIXRuLHRyPW5PJiYoIXRlfHx0biYmODx0biYmMTE+PXRuKSx0bz0hMTtmdW5jdGlvbiB0YShlLG4pe3N3aXRjaChlKXtjYXNlXCJrZXl1cFwiOnJldHVybiAtMSE9PW43LmluZGV4T2Yobi5rZXlDb2RlKTtjYXNlXCJrZXlkb3duXCI6cmV0dXJuIDIyOSE9PW4ua2V5Q29kZTtjYXNlXCJrZXlwcmVzc1wiOmNhc2VcIm1vdXNlZG93blwiOmNhc2VcImZvY3Vzb3V0XCI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19ZnVuY3Rpb24gdGkoZSl7cmV0dXJuXCJvYmplY3RcIj09dHlwZW9mKGU9ZS5kZXRhaWwpJiZcImRhdGFcImluIGU/ZS5kYXRhOm51bGx9dmFyIHRsPSExLHRzPXtjb2xvcjohMCxkYXRlOiEwLGRhdGV0aW1lOiEwLFwiZGF0ZXRpbWUtbG9jYWxcIjohMCxlbWFpbDohMCxtb250aDohMCxudW1iZXI6ITAscGFzc3dvcmQ6ITAscmFuZ2U6ITAsc2VhcmNoOiEwLHRlbDohMCx0ZXh0OiEwLHRpbWU6ITAsdXJsOiEwLHdlZWs6ITB9O2Z1bmN0aW9uIHRjKGUpe3ZhciBuPWUmJmUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm5cImlucHV0XCI9PT1uPyEhdHNbZS50eXBlXTpcInRleHRhcmVhXCI9PT1ufWZ1bmN0aW9uIHR1KGUsbix0LHIpe255P254P254LnB1c2gocik6bng9W3JdOm55PXIsMDwobj1jZShuLFwib25DaGFuZ2VcIikpLmxlbmd0aCYmKHQ9bmV3IG5VKFwib25DaGFuZ2VcIixcImNoYW5nZVwiLG51bGwsdCxyKSxlLnB1c2goe2V2ZW50OnQsbGlzdGVuZXJzOm59KSl9dmFyIHRkPW51bGwsdGY9bnVsbDtmdW5jdGlvbiB0cChlKXtzMihlLDApfWZ1bmN0aW9uIHRoKGUpe2lmKGU4KGUkKGUpKSlyZXR1cm4gZX1mdW5jdGlvbiB0ZyhlLG4pe2lmKFwiY2hhbmdlXCI9PT1lKXJldHVybiBufXZhciB0bT0hMTtpZihuTyl7aWYobk8pe3ZhciB0dj1cIm9uaW5wdXRcImluIGRvY3VtZW50O2lmKCF0dil7dmFyIHRiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7dGIuc2V0QXR0cmlidXRlKFwib25pbnB1dFwiLFwicmV0dXJuO1wiKSx0dj1cImZ1bmN0aW9uXCI9PXR5cGVvZiB0Yi5vbmlucHV0fXI9dHZ9ZWxzZSByPSExO3RtPXImJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gdHkoKXt0ZCYmKHRkLmRldGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLHR4KSx0Zj10ZD1udWxsKX1mdW5jdGlvbiB0eChlKXtpZihcInZhbHVlXCI9PT1lLnByb3BlcnR5TmFtZSYmdGgodGYpKXt2YXIgbj1bXTt0dShuLHRmLGUsbmIoZSkpLG5rKHRwLG4pfX1mdW5jdGlvbiB0dyhlLG4sdCl7XCJmb2N1c2luXCI9PT1lPyh0eSgpLHRkPW4sdGY9dCx0ZC5hdHRhY2hFdmVudChcIm9ucHJvcGVydHljaGFuZ2VcIix0eCkpOlwiZm9jdXNvdXRcIj09PWUmJnR5KCl9ZnVuY3Rpb24gdGooZSl7aWYoXCJzZWxlY3Rpb25jaGFuZ2VcIj09PWV8fFwia2V5dXBcIj09PWV8fFwia2V5ZG93blwiPT09ZSlyZXR1cm4gdGgodGYpfWZ1bmN0aW9uIHRrKGUsbil7aWYoXCJjbGlja1wiPT09ZSlyZXR1cm4gdGgobil9ZnVuY3Rpb24gdEEoZSxuKXtpZihcImlucHV0XCI9PT1lfHxcImNoYW5nZVwiPT09ZSlyZXR1cm4gdGgobil9dmFyIHRPPVwiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gZT09PW4mJigwIT09ZXx8MS9lPT0xL24pfHxlIT1lJiZuIT1ufTtmdW5jdGlvbiB0QyhlLG4pe2lmKHRPKGUsbikpcmV0dXJuITA7aWYoXCJvYmplY3RcIiE9dHlwZW9mIGV8fG51bGw9PT1lfHxcIm9iamVjdFwiIT10eXBlb2Ygbnx8bnVsbD09PW4pcmV0dXJuITE7dmFyIHQ9T2JqZWN0LmtleXMoZSkscj1PYmplY3Qua2V5cyhuKTtpZih0Lmxlbmd0aCE9PXIubGVuZ3RoKXJldHVybiExO2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl07aWYoIUcuY2FsbChuLG8pfHwhdE8oZVtvXSxuW29dKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiB0UyhlKXtmb3IoO2UmJmUuZmlyc3RDaGlsZDspZT1lLmZpcnN0Q2hpbGQ7cmV0dXJuIGV9ZnVuY3Rpb24gdEUoZSxuKXt2YXIgdCxyPXRTKGUpO2ZvcihlPTA7cjspe2lmKDM9PT1yLm5vZGVUeXBlKXtpZih0PWUrci50ZXh0Q29udGVudC5sZW5ndGgsZTw9biYmdD49bilyZXR1cm57bm9kZTpyLG9mZnNldDpuLWV9O2U9dH1lOntmb3IoO3I7KXtpZihyLm5leHRTaWJsaW5nKXtyPXIubmV4dFNpYmxpbmc7YnJlYWsgZX1yPXIucGFyZW50Tm9kZX1yPXZvaWQgMH1yPXRTKHIpfX1mdW5jdGlvbiB0XyhlKXtlPW51bGwhPWUmJm51bGwhPWUub3duZXJEb2N1bWVudCYmbnVsbCE9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3P2Uub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldzp3aW5kb3c7Zm9yKHZhciBuPWU3KGUuZG9jdW1lbnQpO24gaW5zdGFuY2VvZiBlLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciB0PVwic3RyaW5nXCI9PXR5cGVvZiBuLmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZn1jYXRjaChlKXt0PSExfWlmKHQpZT1uLmNvbnRlbnRXaW5kb3c7ZWxzZSBicmVhaztuPWU3KGUuZG9jdW1lbnQpfXJldHVybiBufWZ1bmN0aW9uIHRQKGUpe3ZhciBuPWUmJmUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gbiYmKFwiaW5wdXRcIj09PW4mJihcInRleHRcIj09PWUudHlwZXx8XCJzZWFyY2hcIj09PWUudHlwZXx8XCJ0ZWxcIj09PWUudHlwZXx8XCJ1cmxcIj09PWUudHlwZXx8XCJwYXNzd29yZFwiPT09ZS50eXBlKXx8XCJ0ZXh0YXJlYVwiPT09bnx8XCJ0cnVlXCI9PT1lLmNvbnRlbnRFZGl0YWJsZSl9dmFyIHR6PW5PJiZcImRvY3VtZW50TW9kZVwiaW4gZG9jdW1lbnQmJjExPj1kb2N1bWVudC5kb2N1bWVudE1vZGUsdEw9bnVsbCx0VD1udWxsLHRSPW51bGwsdE49ITE7ZnVuY3Rpb24gdEQoZSxuLHQpe3ZhciByPXQud2luZG93PT09dD90LmRvY3VtZW50Ojk9PT10Lm5vZGVUeXBlP3Q6dC5vd25lckRvY3VtZW50O3ROfHxudWxsPT10THx8dEwhPT1lNyhyKXx8KHI9XCJzZWxlY3Rpb25TdGFydFwiaW4ocj10TCkmJnRQKHIpP3tzdGFydDpyLnNlbGVjdGlvblN0YXJ0LGVuZDpyLnNlbGVjdGlvbkVuZH06e2FuY2hvck5vZGU6KHI9KHIub3duZXJEb2N1bWVudCYmci5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbigpKS5hbmNob3JOb2RlLGFuY2hvck9mZnNldDpyLmFuY2hvck9mZnNldCxmb2N1c05vZGU6ci5mb2N1c05vZGUsZm9jdXNPZmZzZXQ6ci5mb2N1c09mZnNldH0sdFImJnRDKHRSLHIpfHwodFI9ciwwPChyPWNlKHRULFwib25TZWxlY3RcIikpLmxlbmd0aCYmKG49bmV3IG5VKFwib25TZWxlY3RcIixcInNlbGVjdFwiLG51bGwsbix0KSxlLnB1c2goe2V2ZW50Om4sbGlzdGVuZXJzOnJ9KSxuLnRhcmdldD10TCkpKX1mdW5jdGlvbiB0QihlLG4pe3ZhciB0PXt9O3JldHVybiB0W2UudG9Mb3dlckNhc2UoKV09bi50b0xvd2VyQ2FzZSgpLHRbXCJXZWJraXRcIitlXT1cIndlYmtpdFwiK24sdFtcIk1velwiK2VdPVwibW96XCIrbix0fXZhciB0TT17YW5pbWF0aW9uZW5kOnRCKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25FbmRcIiksYW5pbWF0aW9uaXRlcmF0aW9uOnRCKFwiQW5pbWF0aW9uXCIsXCJBbmltYXRpb25JdGVyYXRpb25cIiksYW5pbWF0aW9uc3RhcnQ6dEIoXCJBbmltYXRpb25cIixcIkFuaW1hdGlvblN0YXJ0XCIpLHRyYW5zaXRpb25ydW46dEIoXCJUcmFuc2l0aW9uXCIsXCJUcmFuc2l0aW9uUnVuXCIpLHRyYW5zaXRpb25zdGFydDp0QihcIlRyYW5zaXRpb25cIixcIlRyYW5zaXRpb25TdGFydFwiKSx0cmFuc2l0aW9uY2FuY2VsOnRCKFwiVHJhbnNpdGlvblwiLFwiVHJhbnNpdGlvbkNhbmNlbFwiKSx0cmFuc2l0aW9uZW5kOnRCKFwiVHJhbnNpdGlvblwiLFwiVHJhbnNpdGlvbkVuZFwiKX0sdEk9e30sdEg9e307ZnVuY3Rpb24gdEYoZSl7aWYodElbZV0pcmV0dXJuIHRJW2VdO2lmKCF0TVtlXSlyZXR1cm4gZTt2YXIgbix0PXRNW2VdO2ZvcihuIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShuKSYmbiBpbiB0SClyZXR1cm4gdElbZV09dFtuXTtyZXR1cm4gZX1uTyYmKHRIPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikuc3R5bGUsXCJBbmltYXRpb25FdmVudFwiaW4gd2luZG93fHwoZGVsZXRlIHRNLmFuaW1hdGlvbmVuZC5hbmltYXRpb24sZGVsZXRlIHRNLmFuaW1hdGlvbml0ZXJhdGlvbi5hbmltYXRpb24sZGVsZXRlIHRNLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksXCJUcmFuc2l0aW9uRXZlbnRcImluIHdpbmRvd3x8ZGVsZXRlIHRNLnRyYW5zaXRpb25lbmQudHJhbnNpdGlvbik7dmFyIHRVPXRGKFwiYW5pbWF0aW9uZW5kXCIpLHRWPXRGKFwiYW5pbWF0aW9uaXRlcmF0aW9uXCIpLHRxPXRGKFwiYW5pbWF0aW9uc3RhcnRcIiksdFc9dEYoXCJ0cmFuc2l0aW9ucnVuXCIpLHQkPXRGKFwidHJhbnNpdGlvbnN0YXJ0XCIpLHRaPXRGKFwidHJhbnNpdGlvbmNhbmNlbFwiKSx0WT10RihcInRyYW5zaXRpb25lbmRcIiksdFg9bmV3IE1hcCx0Sz1cImFib3J0IGF1eENsaWNrIGJlZm9yZVRvZ2dsZSBjYW5jZWwgY2FuUGxheSBjYW5QbGF5VGhyb3VnaCBjbGljayBjbG9zZSBjb250ZXh0TWVudSBjb3B5IGN1dCBkcmFnIGRyYWdFbmQgZHJhZ0VudGVyIGRyYWdFeGl0IGRyYWdMZWF2ZSBkcmFnT3ZlciBkcmFnU3RhcnQgZHJvcCBkdXJhdGlvbkNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBnb3RQb2ludGVyQ2FwdHVyZSBpbnB1dCBpbnZhbGlkIGtleURvd24ga2V5UHJlc3Mga2V5VXAgbG9hZCBsb2FkZWREYXRhIGxvYWRlZE1ldGFkYXRhIGxvYWRTdGFydCBsb3N0UG9pbnRlckNhcHR1cmUgbW91c2VEb3duIG1vdXNlTW92ZSBtb3VzZU91dCBtb3VzZU92ZXIgbW91c2VVcCBwYXN0ZSBwYXVzZSBwbGF5IHBsYXlpbmcgcG9pbnRlckNhbmNlbCBwb2ludGVyRG93biBwb2ludGVyTW92ZSBwb2ludGVyT3V0IHBvaW50ZXJPdmVyIHBvaW50ZXJVcCBwcm9ncmVzcyByYXRlQ2hhbmdlIHJlc2V0IHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1Ym1pdCBzdXNwZW5kIHRpbWVVcGRhdGUgdG91Y2hDYW5jZWwgdG91Y2hFbmQgdG91Y2hTdGFydCB2b2x1bWVDaGFuZ2Ugc2Nyb2xsIHRvZ2dsZSB0b3VjaE1vdmUgd2FpdGluZyB3aGVlbFwiLnNwbGl0KFwiIFwiKTtmdW5jdGlvbiB0UShlLG4pe3RYLnNldChlLG4pLGVRKG4sW2VdKX10Sy5wdXNoKFwic2Nyb2xsRW5kXCIpO3ZhciB0Rz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpmdW5jdGlvbihlKXtpZihcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudCl7dmFyIG49bmV3IHdpbmRvdy5FcnJvckV2ZW50KFwiZXJyb3JcIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6XCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lJiZcInN0cmluZ1wiPT10eXBlb2YgZS5tZXNzYWdlP1N0cmluZyhlLm1lc3NhZ2UpOlN0cmluZyhlKSxlcnJvcjplfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KG4pKXJldHVybn1lbHNlIGlmKFwib2JqZWN0XCI9PXR5cGVvZiBwcm9jZXNzJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBwcm9jZXNzLmVtaXQpcmV0dXJuIHZvaWQgcHJvY2Vzcy5lbWl0KFwidW5jYXVnaHRFeGNlcHRpb25cIixlKTtjb25zb2xlLmVycm9yKGUpfSx0Sj1bXSx0MD0wLHQxPTA7ZnVuY3Rpb24gdDIoKXtmb3IodmFyIGU9dDAsbj10MT10MD0wO248ZTspe3ZhciB0PXRKW25dO3RKW24rK109bnVsbDt2YXIgcj10SltuXTt0SltuKytdPW51bGw7dmFyIG89dEpbbl07dEpbbisrXT1udWxsO3ZhciBhPXRKW25dO2lmKHRKW24rK109bnVsbCxudWxsIT09ciYmbnVsbCE9PW8pe3ZhciBpPXIucGVuZGluZztudWxsPT09aT9vLm5leHQ9bzooby5uZXh0PWkubmV4dCxpLm5leHQ9byksci5wZW5kaW5nPW99MCE9PWEmJnQ2KHQsbyxhKX19ZnVuY3Rpb24gdDQoZSxuLHQscil7dEpbdDArK109ZSx0Slt0MCsrXT1uLHRKW3QwKytdPXQsdEpbdDArK109cix0MXw9cixlLmxhbmVzfD1yLG51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJihlLmxhbmVzfD1yKX1mdW5jdGlvbiB0NShlLG4sdCxyKXtyZXR1cm4gdDQoZSxuLHQsciksdDkoZSl9ZnVuY3Rpb24gdDMoZSxuKXtyZXR1cm4gdDQoZSxudWxsLG51bGwsbiksdDkoZSl9ZnVuY3Rpb24gdDYoZSxuLHQpe2UubGFuZXN8PXQ7dmFyIHI9ZS5hbHRlcm5hdGU7bnVsbCE9PXImJihyLmxhbmVzfD10KTtmb3IodmFyIG89ITEsYT1lLnJldHVybjtudWxsIT09YTspYS5jaGlsZExhbmVzfD10LG51bGwhPT0ocj1hLmFsdGVybmF0ZSkmJihyLmNoaWxkTGFuZXN8PXQpLDIyPT09YS50YWcmJihudWxsPT09KGU9YS5zdGF0ZU5vZGUpfHwxJmUuX3Zpc2liaWxpdHl8fChvPSEwKSksZT1hLGE9YS5yZXR1cm47cmV0dXJuIDM9PT1lLnRhZz8oYT1lLnN0YXRlTm9kZSxvJiZudWxsIT09biYmKG89MzEtZWcodCksbnVsbD09PShyPShlPWEuaGlkZGVuVXBkYXRlcylbb10pP2Vbb109W25dOnIucHVzaChuKSxuLmxhbmU9MHgyMDAwMDAwMHx0KSxhKTpudWxsfWZ1bmN0aW9uIHQ5KGUpe2lmKDUwPHNlKXRocm93IHNlPTAsc249bnVsbCxFcnJvcihsKDE4NSkpO2Zvcih2YXIgbj1lLnJldHVybjtudWxsIT09bjspbj0oZT1uKS5yZXR1cm47cmV0dXJuIDM9PT1lLnRhZz9lLnN0YXRlTm9kZTpudWxsfXZhciB0OD17fTtmdW5jdGlvbiB0NyhlLG4sdCxyKXt0aGlzLnRhZz1lLHRoaXMua2V5PXQsdGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbCx0aGlzLmluZGV4PTAsdGhpcy5yZWZDbGVhbnVwPXRoaXMucmVmPW51bGwsdGhpcy5wZW5kaW5nUHJvcHM9bix0aGlzLmRlcGVuZGVuY2llcz10aGlzLm1lbW9pemVkU3RhdGU9dGhpcy51cGRhdGVRdWV1ZT10aGlzLm1lbW9pemVkUHJvcHM9bnVsbCx0aGlzLm1vZGU9cix0aGlzLnN1YnRyZWVGbGFncz10aGlzLmZsYWdzPTAsdGhpcy5kZWxldGlvbnM9bnVsbCx0aGlzLmNoaWxkTGFuZXM9dGhpcy5sYW5lcz0wLHRoaXMuYWx0ZXJuYXRlPW51bGx9ZnVuY3Rpb24gcmUoZSxuLHQscil7cmV0dXJuIG5ldyB0NyhlLG4sdCxyKX1mdW5jdGlvbiBybihlKXtyZXR1cm4hKCEoZT1lLnByb3RvdHlwZSl8fCFlLmlzUmVhY3RDb21wb25lbnQpfWZ1bmN0aW9uIHJ0KGUsbil7dmFyIHQ9ZS5hbHRlcm5hdGU7cmV0dXJuIG51bGw9PT10PygodD1yZShlLnRhZyxuLGUua2V5LGUubW9kZSkpLmVsZW1lbnRUeXBlPWUuZWxlbWVudFR5cGUsdC50eXBlPWUudHlwZSx0LnN0YXRlTm9kZT1lLnN0YXRlTm9kZSx0LmFsdGVybmF0ZT1lLGUuYWx0ZXJuYXRlPXQpOih0LnBlbmRpbmdQcm9wcz1uLHQudHlwZT1lLnR5cGUsdC5mbGFncz0wLHQuc3VidHJlZUZsYWdzPTAsdC5kZWxldGlvbnM9bnVsbCksdC5mbGFncz0weDNlMDAwMDAmZS5mbGFncyx0LmNoaWxkTGFuZXM9ZS5jaGlsZExhbmVzLHQubGFuZXM9ZS5sYW5lcyx0LmNoaWxkPWUuY2hpbGQsdC5tZW1vaXplZFByb3BzPWUubWVtb2l6ZWRQcm9wcyx0Lm1lbW9pemVkU3RhdGU9ZS5tZW1vaXplZFN0YXRlLHQudXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSxuPWUuZGVwZW5kZW5jaWVzLHQuZGVwZW5kZW5jaWVzPW51bGw9PT1uP251bGw6e2xhbmVzOm4ubGFuZXMsZmlyc3RDb250ZXh0Om4uZmlyc3RDb250ZXh0fSx0LnNpYmxpbmc9ZS5zaWJsaW5nLHQuaW5kZXg9ZS5pbmRleCx0LnJlZj1lLnJlZix0LnJlZkNsZWFudXA9ZS5yZWZDbGVhbnVwLHR9ZnVuY3Rpb24gcnIoZSxuKXtlLmZsYWdzJj0weDNlMDAwMDI7dmFyIHQ9ZS5hbHRlcm5hdGU7cmV0dXJuIG51bGw9PT10PyhlLmNoaWxkTGFuZXM9MCxlLmxhbmVzPW4sZS5jaGlsZD1udWxsLGUuc3VidHJlZUZsYWdzPTAsZS5tZW1vaXplZFByb3BzPW51bGwsZS5tZW1vaXplZFN0YXRlPW51bGwsZS51cGRhdGVRdWV1ZT1udWxsLGUuZGVwZW5kZW5jaWVzPW51bGwsZS5zdGF0ZU5vZGU9bnVsbCk6KGUuY2hpbGRMYW5lcz10LmNoaWxkTGFuZXMsZS5sYW5lcz10LmxhbmVzLGUuY2hpbGQ9dC5jaGlsZCxlLnN1YnRyZWVGbGFncz0wLGUuZGVsZXRpb25zPW51bGwsZS5tZW1vaXplZFByb3BzPXQubWVtb2l6ZWRQcm9wcyxlLm1lbW9pemVkU3RhdGU9dC5tZW1vaXplZFN0YXRlLGUudXBkYXRlUXVldWU9dC51cGRhdGVRdWV1ZSxlLnR5cGU9dC50eXBlLGUuZGVwZW5kZW5jaWVzPW51bGw9PT0obj10LmRlcGVuZGVuY2llcyk/bnVsbDp7bGFuZXM6bi5sYW5lcyxmaXJzdENvbnRleHQ6bi5maXJzdENvbnRleHR9KSxlfWZ1bmN0aW9uIHJvKGUsbix0LHIsbyxhKXt2YXIgaT0wO2lmKHI9ZSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlKXJuKGUpJiYoaT0xKTtlbHNlIGlmKFwic3RyaW5nXCI9PXR5cGVvZiBlKWk9IWZ1bmN0aW9uKGUsbix0KXtpZigxPT09dHx8bnVsbCE9bi5pdGVtUHJvcClyZXR1cm4hMTtzd2l0Y2goZSl7Y2FzZVwibWV0YVwiOmNhc2VcInRpdGxlXCI6cmV0dXJuITA7Y2FzZVwic3R5bGVcIjppZihcInN0cmluZ1wiIT10eXBlb2Ygbi5wcmVjZWRlbmNlfHxcInN0cmluZ1wiIT10eXBlb2Ygbi5ocmVmfHxcIlwiPT09bi5ocmVmKWJyZWFrO3JldHVybiEwO2Nhc2VcImxpbmtcIjppZihcInN0cmluZ1wiIT10eXBlb2Ygbi5yZWx8fFwic3RyaW5nXCIhPXR5cGVvZiBuLmhyZWZ8fFwiXCI9PT1uLmhyZWZ8fG4ub25Mb2FkfHxuLm9uRXJyb3IpYnJlYWs7aWYoXCJzdHlsZXNoZWV0XCI9PT1uLnJlbClyZXR1cm4gZT1uLmRpc2FibGVkLFwic3RyaW5nXCI9PXR5cGVvZiBuLnByZWNlZGVuY2UmJm51bGw9PWU7cmV0dXJuITA7Y2FzZVwic2NyaXB0XCI6aWYobi5hc3luYyYmXCJmdW5jdGlvblwiIT10eXBlb2Ygbi5hc3luYyYmXCJzeW1ib2xcIiE9dHlwZW9mIG4uYXN5bmMmJiFuLm9uTG9hZCYmIW4ub25FcnJvciYmbi5zcmMmJlwic3RyaW5nXCI9PXR5cGVvZiBuLnNyYylyZXR1cm4hMH1yZXR1cm4hMX0oZSx0LEguY3VycmVudCk/XCJodG1sXCI9PT1lfHxcImhlYWRcIj09PWV8fFwiYm9keVwiPT09ZT8yNzo1OjI2O2Vsc2UgZTpzd2l0Y2goZSl7Y2FzZSBDOnJldHVybihlPXJlKDMxLHQsbixvKSkuZWxlbWVudFR5cGU9QyxlLmxhbmVzPWEsZTtjYXNlIG06cmV0dXJuIHJhKHQuY2hpbGRyZW4sbyxhLG4pO2Nhc2UgdjppPTgsb3w9MjQ7YnJlYWs7Y2FzZSBiOnJldHVybihlPXJlKDEyLHQsbiwyfG8pKS5lbGVtZW50VHlwZT1iLGUubGFuZXM9YSxlO2Nhc2UgajpyZXR1cm4oZT1yZSgxMyx0LG4sbykpLmVsZW1lbnRUeXBlPWosZS5sYW5lcz1hLGU7Y2FzZSBrOnJldHVybihlPXJlKDE5LHQsbixvKSkuZWxlbWVudFR5cGU9ayxlLmxhbmVzPWEsZTtkZWZhdWx0OmlmKFwib2JqZWN0XCI9PXR5cGVvZiBlJiZudWxsIT09ZSlzd2l0Y2goZS4kJHR5cGVvZil7Y2FzZSB4Omk9MTA7YnJlYWsgZTtjYXNlIHk6aT05O2JyZWFrIGU7Y2FzZSB3Omk9MTE7YnJlYWsgZTtjYXNlIEE6aT0xNDticmVhayBlO2Nhc2UgTzppPTE2LHI9bnVsbDticmVhayBlfWk9MjksdD1FcnJvcihsKDEzMCxudWxsPT09ZT9cIm51bGxcIjp0eXBlb2YgZSxcIlwiKSkscj1udWxsfXJldHVybihuPXJlKGksdCxuLG8pKS5lbGVtZW50VHlwZT1lLG4udHlwZT1yLG4ubGFuZXM9YSxufWZ1bmN0aW9uIHJhKGUsbix0LHIpe3JldHVybihlPXJlKDcsZSxyLG4pKS5sYW5lcz10LGV9ZnVuY3Rpb24gcmkoZSxuLHQpe3JldHVybihlPXJlKDYsZSxudWxsLG4pKS5sYW5lcz10LGV9ZnVuY3Rpb24gcmwoZSl7dmFyIG49cmUoMTgsbnVsbCxudWxsLDApO3JldHVybiBuLnN0YXRlTm9kZT1lLG59ZnVuY3Rpb24gcnMoZSxuLHQpe3JldHVybihuPXJlKDQsbnVsbCE9PWUuY2hpbGRyZW4/ZS5jaGlsZHJlbjpbXSxlLmtleSxuKSkubGFuZXM9dCxuLnN0YXRlTm9kZT17Y29udGFpbmVySW5mbzplLmNvbnRhaW5lckluZm8scGVuZGluZ0NoaWxkcmVuOm51bGwsaW1wbGVtZW50YXRpb246ZS5pbXBsZW1lbnRhdGlvbn0sbn12YXIgcmM9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gcnUoZSxuKXtpZihcIm9iamVjdFwiPT10eXBlb2YgZSYmbnVsbCE9PWUpe3ZhciB0PXJjLmdldChlKTtyZXR1cm4gdm9pZCAwIT09dD90OihuPXt2YWx1ZTplLHNvdXJjZTpuLHN0YWNrOlEobil9LHJjLnNldChlLG4pLG4pfXJldHVybnt2YWx1ZTplLHNvdXJjZTpuLHN0YWNrOlEobil9fXZhciByZD1bXSxyZj0wLHJwPW51bGwscmg9MCxyZz1bXSxybT0wLHJ2PW51bGwscmI9MSxyeT1cIlwiO2Z1bmN0aW9uIHJ4KGUsbil7cmRbcmYrK109cmgscmRbcmYrK109cnAscnA9ZSxyaD1ufWZ1bmN0aW9uIHJ3KGUsbix0KXtyZ1tybSsrXT1yYixyZ1tybSsrXT1yeSxyZ1tybSsrXT1ydixydj1lO3ZhciByPXJiO2U9cnk7dmFyIG89MzItZWcociktMTtyJj1+KDE8PG8pLHQrPTE7dmFyIGE9MzItZWcobikrbztpZigzMDxhKXt2YXIgaT1vLW8lNTthPShyJigxPDxpKS0xKS50b1N0cmluZygzMikscj4+PWksby09aSxyYj0xPDwzMi1lZyhuKStvfHQ8PG98cixyeT1hK2V9ZWxzZSByYj0xPDxhfHQ8PG98cixyeT1lfWZ1bmN0aW9uIHJqKGUpe251bGwhPT1lLnJldHVybiYmKHJ4KGUsMSkscncoZSwxLDApKX1mdW5jdGlvbiByayhlKXtmb3IoO2U9PT1ycDspcnA9cmRbLS1yZl0scmRbcmZdPW51bGwscmg9cmRbLS1yZl0scmRbcmZdPW51bGw7Zm9yKDtlPT09cnY7KXJ2PXJnWy0tcm1dLHJnW3JtXT1udWxsLHJ5PXJnWy0tcm1dLHJnW3JtXT1udWxsLHJiPXJnWy0tcm1dLHJnW3JtXT1udWxsfWZ1bmN0aW9uIHJBKGUsbil7cmdbcm0rK109cmIscmdbcm0rK109cnkscmdbcm0rK109cnYscmI9bi5pZCxyeT1uLm92ZXJmbG93LHJ2PWV9dmFyIHJPPW51bGwsckM9bnVsbCxyUz0hMSxyRT1udWxsLHJfPSExLHJQPUVycm9yKGwoNTE5KSk7ZnVuY3Rpb24gcnooZSl7dmFyIG49RXJyb3IobCg0MTgsMTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXT9cInRleHRcIjpcIkhUTUxcIixcIlwiKSk7dGhyb3cgckIocnUobixlKSksclB9ZnVuY3Rpb24gckwoZSl7dmFyIG49ZS5zdGF0ZU5vZGUsdD1lLnR5cGUscj1lLm1lbW9pemVkUHJvcHM7c3dpdGNoKG5bZU5dPWUsbltlRF09cix0KXtjYXNlXCJkaWFsb2dcIjpzNChcImNhbmNlbFwiLG4pLHM0KFwiY2xvc2VcIixuKTticmVhaztjYXNlXCJpZnJhbWVcIjpjYXNlXCJvYmplY3RcIjpjYXNlXCJlbWJlZFwiOnM0KFwibG9hZFwiLG4pO2JyZWFrO2Nhc2VcInZpZGVvXCI6Y2FzZVwiYXVkaW9cIjpmb3IodD0wO3Q8czAubGVuZ3RoO3QrKylzNChzMFt0XSxuKTticmVhaztjYXNlXCJzb3VyY2VcIjpzNChcImVycm9yXCIsbik7YnJlYWs7Y2FzZVwiaW1nXCI6Y2FzZVwiaW1hZ2VcIjpjYXNlXCJsaW5rXCI6czQoXCJlcnJvclwiLG4pLHM0KFwibG9hZFwiLG4pO2JyZWFrO2Nhc2VcImRldGFpbHNcIjpzNChcInRvZ2dsZVwiLG4pO2JyZWFrO2Nhc2VcImlucHV0XCI6czQoXCJpbnZhbGlkXCIsbiksbnIobixyLnZhbHVlLHIuZGVmYXVsdFZhbHVlLHIuY2hlY2tlZCxyLmRlZmF1bHRDaGVja2VkLHIudHlwZSxyLm5hbWUsITApO2JyZWFrO2Nhc2VcInNlbGVjdFwiOnM0KFwiaW52YWxpZFwiLG4pO2JyZWFrO2Nhc2VcInRleHRhcmVhXCI6czQoXCJpbnZhbGlkXCIsbiksbmwobixyLnZhbHVlLHIuZGVmYXVsdFZhbHVlLHIuY2hpbGRyZW4pfVwic3RyaW5nXCIhPXR5cGVvZih0PXIuY2hpbGRyZW4pJiZcIm51bWJlclwiIT10eXBlb2YgdCYmXCJiaWdpbnRcIiE9dHlwZW9mIHR8fG4udGV4dENvbnRlbnQ9PT1cIlwiK3R8fCEwPT09ci5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmd8fGNpKG4udGV4dENvbnRlbnQsdCk/KG51bGwhPXIucG9wb3ZlciYmKHM0KFwiYmVmb3JldG9nZ2xlXCIsbiksczQoXCJ0b2dnbGVcIixuKSksbnVsbCE9ci5vblNjcm9sbCYmczQoXCJzY3JvbGxcIixuKSxudWxsIT1yLm9uU2Nyb2xsRW5kJiZzNChcInNjcm9sbGVuZFwiLG4pLG51bGwhPXIub25DbGljayYmKG4ub25jbGljaz1ubSksbj0hMCk6bj0hMSxufHxyeihlLCEwKX1mdW5jdGlvbiByVChlKXtmb3Iock89ZS5yZXR1cm47ck87KXN3aXRjaChyTy50YWcpe2Nhc2UgNTpjYXNlIDMxOmNhc2UgMTM6cl89ITE7cmV0dXJuO2Nhc2UgMjc6Y2FzZSAzOnJfPSEwO3JldHVybjtkZWZhdWx0OnJPPXJPLnJldHVybn19ZnVuY3Rpb24gclIoZSl7aWYoZSE9PXJPKXJldHVybiExO2lmKCFyUylyZXR1cm4gclQoZSksclM9ITAsITE7dmFyIG4sdD1lLnRhZztpZigobj0zIT09dCYmMjchPT10KSYmKChuPTU9PT10KSYmKG49XCJmb3JtXCI9PT0obj1lLnR5cGUpfHxcImJ1dHRvblwiPT09bnx8Y2coZS50eXBlLGUubWVtb2l6ZWRQcm9wcykpLG49IW4pLG4mJnJDJiZyeihlKSxyVChlKSwxMz09PXQpe2lmKCEoZT1udWxsIT09KGU9ZS5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IobCgzMTcpKTtyQz1jeihlKX1lbHNlIGlmKDMxPT09dCl7aWYoIShlPW51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpP2UuZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihsKDMxNykpO3JDPWN6KGUpfWVsc2UgMjc9PT10Pyh0PXJDLGNqKGUudHlwZSk/KGU9Y1AsY1A9bnVsbCxyQz1lKTpyQz10KTpyQz1yTz9jXyhlLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiByTigpe3JDPXJPPW51bGwsclM9ITF9ZnVuY3Rpb24gckQoKXt2YXIgZT1yRTtyZXR1cm4gbnVsbCE9PWUmJihudWxsPT09bFE/bFE9ZTpsUS5wdXNoLmFwcGx5KGxRLGUpLHJFPW51bGwpLGV9ZnVuY3Rpb24gckIoZSl7bnVsbD09PXJFP3JFPVtlXTpyRS5wdXNoKGUpfXZhciByTT1CKG51bGwpLHJJPW51bGwsckg9bnVsbDtmdW5jdGlvbiByRihlLG4sdCl7SShyTSxuLl9jdXJyZW50VmFsdWUpLG4uX2N1cnJlbnRWYWx1ZT10fWZ1bmN0aW9uIHJVKGUpe2UuX2N1cnJlbnRWYWx1ZT1yTS5jdXJyZW50LE0ock0pfWZ1bmN0aW9uIHJWKGUsbix0KXtmb3IoO251bGwhPT1lOyl7dmFyIHI9ZS5hbHRlcm5hdGU7aWYoKGUuY2hpbGRMYW5lcyZuKSE9PW4/KGUuY2hpbGRMYW5lc3w9bixudWxsIT09ciYmKHIuY2hpbGRMYW5lc3w9bikpOm51bGwhPT1yJiYoci5jaGlsZExhbmVzJm4pIT09biYmKHIuY2hpbGRMYW5lc3w9biksZT09PXQpYnJlYWs7ZT1lLnJldHVybn19ZnVuY3Rpb24gcnEoZSxuLHQscil7dmFyIG89ZS5jaGlsZDtmb3IobnVsbCE9PW8mJihvLnJldHVybj1lKTtudWxsIT09bzspe3ZhciBhPW8uZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1hKXt2YXIgaT1vLmNoaWxkO2E9YS5maXJzdENvbnRleHQ7ZTpmb3IoO251bGwhPT1hOyl7dmFyIHM9YTthPW87Zm9yKHZhciBjPTA7YzxuLmxlbmd0aDtjKyspaWYocy5jb250ZXh0PT09bltjXSl7YS5sYW5lc3w9dCxudWxsIT09KHM9YS5hbHRlcm5hdGUpJiYocy5sYW5lc3w9dCksclYoYS5yZXR1cm4sdCxlKSxyfHwoaT1udWxsKTticmVhayBlfWE9cy5uZXh0fX1lbHNlIGlmKDE4PT09by50YWcpe2lmKG51bGw9PT0oaT1vLnJldHVybikpdGhyb3cgRXJyb3IobCgzNDEpKTtpLmxhbmVzfD10LG51bGwhPT0oYT1pLmFsdGVybmF0ZSkmJihhLmxhbmVzfD10KSxyVihpLHQsZSksaT1udWxsfWVsc2UgaT1vLmNoaWxkO2lmKG51bGwhPT1pKWkucmV0dXJuPW87ZWxzZSBmb3IoaT1vO251bGwhPT1pOyl7aWYoaT09PWUpe2k9bnVsbDticmVha31pZihudWxsIT09KG89aS5zaWJsaW5nKSl7by5yZXR1cm49aS5yZXR1cm4saT1vO2JyZWFrfWk9aS5yZXR1cm59bz1pfX1mdW5jdGlvbiByVyhlLG4sdCxyKXtlPW51bGw7Zm9yKHZhciBvPW4sYT0hMTtudWxsIT09bzspe2lmKCFhKXtpZigwIT0oNTI0Mjg4Jm8uZmxhZ3MpKWE9ITA7ZWxzZSBpZigwIT0oMjYyMTQ0Jm8uZmxhZ3MpKWJyZWFrfWlmKDEwPT09by50YWcpe3ZhciBpPW8uYWx0ZXJuYXRlO2lmKG51bGw9PT1pKXRocm93IEVycm9yKGwoMzg3KSk7aWYobnVsbCE9PShpPWkubWVtb2l6ZWRQcm9wcykpe3ZhciBzPW8udHlwZTt0TyhvLnBlbmRpbmdQcm9wcy52YWx1ZSxpLnZhbHVlKXx8KG51bGwhPT1lP2UucHVzaChzKTplPVtzXSl9fWVsc2UgaWYobz09PVYuY3VycmVudCl7aWYobnVsbD09PShpPW8uYWx0ZXJuYXRlKSl0aHJvdyBFcnJvcihsKDM4NykpO2kubWVtb2l6ZWRTdGF0ZS5tZW1vaXplZFN0YXRlIT09by5tZW1vaXplZFN0YXRlLm1lbW9pemVkU3RhdGUmJihudWxsIT09ZT9lLnB1c2goYzYpOmU9W2M2XSl9bz1vLnJldHVybn1udWxsIT09ZSYmcnEobixlLHQsciksbi5mbGFnc3w9MjYyMTQ0fWZ1bmN0aW9uIHIkKGUpe2ZvcihlPWUuZmlyc3RDb250ZXh0O251bGwhPT1lOyl7aWYoIXRPKGUuY29udGV4dC5fY3VycmVudFZhbHVlLGUubWVtb2l6ZWRWYWx1ZSkpcmV0dXJuITA7ZT1lLm5leHR9cmV0dXJuITF9ZnVuY3Rpb24gclooZSl7ckk9ZSxySD1udWxsLG51bGwhPT0oZT1lLmRlcGVuZGVuY2llcykmJihlLmZpcnN0Q29udGV4dD1udWxsKX1mdW5jdGlvbiByWShlKXtyZXR1cm4gcksockksZSl9ZnVuY3Rpb24gclgoZSxuKXtyZXR1cm4gbnVsbD09PXJJJiZyWihlKSxySyhlLG4pfWZ1bmN0aW9uIHJLKGUsbil7dmFyIHQ9bi5fY3VycmVudFZhbHVlO2lmKG49e2NvbnRleHQ6bixtZW1vaXplZFZhbHVlOnQsbmV4dDpudWxsfSxudWxsPT09ckgpe2lmKG51bGw9PT1lKXRocm93IEVycm9yKGwoMzA4KSk7ckg9bixlLmRlcGVuZGVuY2llcz17bGFuZXM6MCxmaXJzdENvbnRleHQ6bn0sZS5mbGFnc3w9NTI0Mjg4fWVsc2Ugckg9ckgubmV4dD1uO3JldHVybiB0fXZhciByUT1cInVuZGVmaW5lZFwiIT10eXBlb2YgQWJvcnRDb250cm9sbGVyP0Fib3J0Q29udHJvbGxlcjpmdW5jdGlvbigpe3ZhciBlPVtdLG49dGhpcy5zaWduYWw9e2Fib3J0ZWQ6ITEsYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihuLHQpe2UucHVzaCh0KX19O3RoaXMuYWJvcnQ9ZnVuY3Rpb24oKXtuLmFib3J0ZWQ9ITAsZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KX19LHJHPW8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxySj1vLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LHIwPXskJHR5cGVvZjp4LENvbnN1bWVyOm51bGwsUHJvdmlkZXI6bnVsbCxfY3VycmVudFZhbHVlOm51bGwsX2N1cnJlbnRWYWx1ZTI6bnVsbCxfdGhyZWFkQ291bnQ6MH07ZnVuY3Rpb24gcjEoKXtyZXR1cm57Y29udHJvbGxlcjpuZXcgclEsZGF0YTpuZXcgTWFwLHJlZkNvdW50OjB9fWZ1bmN0aW9uIHIyKGUpe2UucmVmQ291bnQtLSwwPT09ZS5yZWZDb3VudCYmckcockosZnVuY3Rpb24oKXtlLmNvbnRyb2xsZXIuYWJvcnQoKX0pfXZhciByND1udWxsLHI1PTAscjM9MCxyNj1udWxsO2Z1bmN0aW9uIHI5KCl7aWYoMD09LS1yNSYmbnVsbCE9PXI0KXtudWxsIT09cjYmJihyNi5zdGF0dXM9XCJmdWxmaWxsZWRcIik7dmFyIGU9cjQ7cjQ9bnVsbCxyMz0wLHI2PW51bGw7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspKDAsZVtuXSkoKX19dmFyIHI4PUwuUztMLlM9ZnVuY3Rpb24oZSxuKXtcIm9iamVjdFwiPT10eXBlb2YgbiYmbnVsbCE9PW4mJlwiZnVuY3Rpb25cIj09dHlwZW9mIG4udGhlbiYmZnVuY3Rpb24oZSxuKXtpZihudWxsPT09cjQpe3ZhciB0PXI0PVtdO3I1PTAscjM9c1goKSxyNj17c3RhdHVzOlwicGVuZGluZ1wiLHZhbHVlOnZvaWQgMCx0aGVuOmZ1bmN0aW9uKGUpe3QucHVzaChlKX19fXI1Kyssbi50aGVuKHI5LHI5KX0oMCxuKSxudWxsIT09cjgmJnI4KGUsbil9O3ZhciByNz1CKG51bGwpO2Z1bmN0aW9uIG9lKCl7dmFyIGU9cjcuY3VycmVudDtyZXR1cm4gbnVsbCE9PWU/ZTpsTi5wb29sZWRDYWNoZX1mdW5jdGlvbiBvbihlLG4pe251bGw9PT1uP0kocjcscjcuY3VycmVudCk6SShyNyxuLnBvb2wpfWZ1bmN0aW9uIG90KCl7dmFyIGU9b2UoKTtyZXR1cm4gbnVsbD09PWU/bnVsbDp7cGFyZW50OnIwLl9jdXJyZW50VmFsdWUscG9vbDplfX12YXIgb3I9RXJyb3IobCg0NjApKSxvbz1FcnJvcihsKDQ3NCkpLG9hPUVycm9yKGwoNTQyKSksb2k9e3RoZW46ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBvbChlKXtyZXR1cm5cImZ1bGZpbGxlZFwiPT09KGU9ZS5zdGF0dXMpfHxcInJlamVjdGVkXCI9PT1lfWZ1bmN0aW9uIG9zKGUsbix0KXtzd2l0Y2godm9pZCAwPT09KHQ9ZVt0XSk/ZS5wdXNoKG4pOnQhPT1uJiYobi50aGVuKG5tLG5tKSxuPXQpLG4uc3RhdHVzKXtjYXNlXCJmdWxmaWxsZWRcIjpyZXR1cm4gbi52YWx1ZTtjYXNlXCJyZWplY3RlZFwiOnRocm93IG9kKGU9bi5yZWFzb24pLGU7ZGVmYXVsdDppZihcInN0cmluZ1wiPT10eXBlb2Ygbi5zdGF0dXMpbi50aGVuKG5tLG5tKTtlbHNle2lmKG51bGwhPT0oZT1sTikmJjEwMDxlLnNoZWxsU3VzcGVuZENvdW50ZXIpdGhyb3cgRXJyb3IobCg0ODIpKTsoZT1uKS5zdGF0dXM9XCJwZW5kaW5nXCIsZS50aGVuKGZ1bmN0aW9uKGUpe2lmKFwicGVuZGluZ1wiPT09bi5zdGF0dXMpe3ZhciB0PW47dC5zdGF0dXM9XCJmdWxmaWxsZWRcIix0LnZhbHVlPWV9fSxmdW5jdGlvbihlKXtpZihcInBlbmRpbmdcIj09PW4uc3RhdHVzKXt2YXIgdD1uO3Quc3RhdHVzPVwicmVqZWN0ZWRcIix0LnJlYXNvbj1lfX0pfXN3aXRjaChuLnN0YXR1cyl7Y2FzZVwiZnVsZmlsbGVkXCI6cmV0dXJuIG4udmFsdWU7Y2FzZVwicmVqZWN0ZWRcIjp0aHJvdyBvZChlPW4ucmVhc29uKSxlfXRocm93IG9jPW4sb3J9fXZhciBvYz1udWxsO2Z1bmN0aW9uIG91KCl7aWYobnVsbD09PW9jKXRocm93IEVycm9yKGwoNDU5KSk7dmFyIGU9b2M7cmV0dXJuIG9jPW51bGwsZX1mdW5jdGlvbiBvZChlKXtpZihlPT09b3J8fGU9PT1vYSl0aHJvdyBFcnJvcihsKDQ4MykpfXZhciBvZj1udWxsLG9wPTA7ZnVuY3Rpb24gb2goZSl7dmFyIG49b3A7cmV0dXJuIG9wKz0xLG51bGw9PT1vZiYmKG9mPVtdKSxvcyhvZixlLG4pfWZ1bmN0aW9uIG9nKGUsbil7ZS5yZWY9dm9pZCAwIT09KG49bi5wcm9wcy5yZWYpP246bnVsbH1mdW5jdGlvbiBvbShlLG4pe2lmKG4uJCR0eXBlb2Y9PT1wKXRocm93IEVycm9yKGwoNTI1KSk7dGhyb3cgRXJyb3IobCgzMSxcIltvYmplY3QgT2JqZWN0XVwiPT09KGU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pKT9cIm9iamVjdCB3aXRoIGtleXMge1wiK09iamVjdC5rZXlzKG4pLmpvaW4oXCIsIFwiKStcIn1cIjplKSl9ZnVuY3Rpb24gb3YoZSl7cmV0dXJuKDAsZS5faW5pdCkoZS5fcGF5bG9hZCl9ZnVuY3Rpb24gb2IoZSl7ZnVuY3Rpb24gbihuLHQpe2lmKGUpe3ZhciByPW4uZGVsZXRpb25zO251bGw9PT1yPyhuLmRlbGV0aW9ucz1bdF0sbi5mbGFnc3w9MTYpOnIucHVzaCh0KX19ZnVuY3Rpb24gdCh0LHIpe2lmKCFlKXJldHVybiBudWxsO2Zvcig7bnVsbCE9PXI7KW4odCxyKSxyPXIuc2libGluZztyZXR1cm4gbnVsbH1mdW5jdGlvbiByKGUpe2Zvcih2YXIgbj1uZXcgTWFwO251bGwhPT1lOyludWxsIT09ZS5rZXk/bi5zZXQoZS5rZXksZSk6bi5zZXQoZS5pbmRleCxlKSxlPWUuc2libGluZztyZXR1cm4gbn1mdW5jdGlvbiBvKGUsbil7cmV0dXJuKGU9cnQoZSxuKSkuaW5kZXg9MCxlLnNpYmxpbmc9bnVsbCxlfWZ1bmN0aW9uIGEobix0LHIpe3JldHVybihuLmluZGV4PXIsZSk/bnVsbCE9PShyPW4uYWx0ZXJuYXRlKT8ocj1yLmluZGV4KTx0PyhuLmZsYWdzfD0weDQwMDAwMDIsdCk6cjoobi5mbGFnc3w9MHg0MDAwMDAyLHQpOihuLmZsYWdzfD0xMDQ4NTc2LHQpfWZ1bmN0aW9uIGkobil7cmV0dXJuIGUmJm51bGw9PT1uLmFsdGVybmF0ZSYmKG4uZmxhZ3N8PTB4NDAwMDAwMiksbn1mdW5jdGlvbiBzKGUsbix0LHIpe3JldHVybiBudWxsPT09bnx8NiE9PW4udGFnPyhuPXJpKHQsZS5tb2RlLHIpKS5yZXR1cm49ZToobj1vKG4sdCkpLnJldHVybj1lLG59ZnVuY3Rpb24gYyhlLG4sdCxyKXt2YXIgYT10LnR5cGU7cmV0dXJuIGE9PT1tP2QoZSxuLHQucHJvcHMuY2hpbGRyZW4scix0LmtleSk6KG51bGwhPT1uJiYobi5lbGVtZW50VHlwZT09PWF8fFwib2JqZWN0XCI9PXR5cGVvZiBhJiZudWxsIT09YSYmYS4kJHR5cGVvZj09PU8mJm92KGEpPT09bi50eXBlKT9vZyhuPW8obix0LnByb3BzKSx0KTpvZyhuPXJvKHQudHlwZSx0LmtleSx0LnByb3BzLG51bGwsZS5tb2RlLHIpLHQpLG4ucmV0dXJuPWUsbil9ZnVuY3Rpb24gdShlLG4sdCxyKXtyZXR1cm4gbnVsbD09PW58fDQhPT1uLnRhZ3x8bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyE9PXQuY29udGFpbmVySW5mb3x8bi5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24hPT10LmltcGxlbWVudGF0aW9uPyhuPXJzKHQsZS5tb2RlLHIpKS5yZXR1cm49ZToobj1vKG4sdC5jaGlsZHJlbnx8W10pKS5yZXR1cm49ZSxufWZ1bmN0aW9uIGQoZSxuLHQscixhKXtyZXR1cm4gbnVsbD09PW58fDchPT1uLnRhZz8obj1yYSh0LGUubW9kZSxyLGEpKS5yZXR1cm49ZToobj1vKG4sdCkpLnJldHVybj1lLG59ZnVuY3Rpb24gZihlLG4sdCl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIG4mJlwiXCIhPT1ufHxcIm51bWJlclwiPT10eXBlb2Ygbnx8XCJiaWdpbnRcIj09dHlwZW9mIG4pcmV0dXJuKG49cmkoXCJcIituLGUubW9kZSx0KSkucmV0dXJuPWUsbjtpZihcIm9iamVjdFwiPT10eXBlb2YgbiYmbnVsbCE9PW4pe3N3aXRjaChuLiQkdHlwZW9mKXtjYXNlIGg6cmV0dXJuIG9nKHQ9cm8obi50eXBlLG4ua2V5LG4ucHJvcHMsbnVsbCxlLm1vZGUsdCksbiksdC5yZXR1cm49ZSx0O2Nhc2UgZzpyZXR1cm4obj1ycyhuLGUubW9kZSx0KSkucmV0dXJuPWUsbjtjYXNlIE86cmV0dXJuIGYoZSxuPSgwLG4uX2luaXQpKG4uX3BheWxvYWQpLHQpfWlmKHoobil8fF8obikpcmV0dXJuKG49cmEobixlLm1vZGUsdCxudWxsKSkucmV0dXJuPWUsbjtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLnRoZW4pcmV0dXJuIGYoZSxvaChuKSx0KTtpZihuLiQkdHlwZW9mPT09eClyZXR1cm4gZihlLHJYKGUsbiksdCk7b20oZSxuKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBwKGUsbix0LHIpe3ZhciBvPW51bGwhPT1uP24ua2V5Om51bGw7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHQmJlwiXCIhPT10fHxcIm51bWJlclwiPT10eXBlb2YgdHx8XCJiaWdpbnRcIj09dHlwZW9mIHQpcmV0dXJuIG51bGwhPT1vP251bGw6cyhlLG4sXCJcIit0LHIpO2lmKFwib2JqZWN0XCI9PXR5cGVvZiB0JiZudWxsIT09dCl7c3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgaDpyZXR1cm4gdC5rZXk9PT1vP2MoZSxuLHQscik6bnVsbDtjYXNlIGc6cmV0dXJuIHQua2V5PT09bz91KGUsbix0LHIpOm51bGw7Y2FzZSBPOnJldHVybiBwKGUsbix0PShvPXQuX2luaXQpKHQuX3BheWxvYWQpLHIpfWlmKHoodCl8fF8odCkpcmV0dXJuIG51bGwhPT1vP251bGw6ZChlLG4sdCxyLG51bGwpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHQudGhlbilyZXR1cm4gcChlLG4sb2godCkscik7aWYodC4kJHR5cGVvZj09PXgpcmV0dXJuIHAoZSxuLHJYKGUsdCkscik7b20oZSx0KX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB2KGUsbix0LHIsbyl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIHImJlwiXCIhPT1yfHxcIm51bWJlclwiPT10eXBlb2Ygcnx8XCJiaWdpbnRcIj09dHlwZW9mIHIpcmV0dXJuIHMobixlPWUuZ2V0KHQpfHxudWxsLFwiXCIrcixvKTtpZihcIm9iamVjdFwiPT10eXBlb2YgciYmbnVsbCE9PXIpe3N3aXRjaChyLiQkdHlwZW9mKXtjYXNlIGg6cmV0dXJuIGMobixlPWUuZ2V0KG51bGw9PT1yLmtleT90OnIua2V5KXx8bnVsbCxyLG8pO2Nhc2UgZzpyZXR1cm4gdShuLGU9ZS5nZXQobnVsbD09PXIua2V5P3Q6ci5rZXkpfHxudWxsLHIsbyk7Y2FzZSBPOnJldHVybiB2KGUsbix0LHI9KDAsci5faW5pdCkoci5fcGF5bG9hZCksbyl9aWYoeihyKXx8XyhyKSlyZXR1cm4gZChuLGU9ZS5nZXQodCl8fG51bGwscixvLG51bGwpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHIudGhlbilyZXR1cm4gdihlLG4sdCxvaChyKSxvKTtpZihyLiQkdHlwZW9mPT09eClyZXR1cm4gdihlLG4sdCxyWChuLHIpLG8pO29tKG4scil9cmV0dXJuIG51bGx9cmV0dXJuIGZ1bmN0aW9uKHMsYyx1LGQpe3RyeXtvcD0wO3ZhciBiPWZ1bmN0aW9uIHMoYyx1LGQsYil7aWYoXCJvYmplY3RcIj09dHlwZW9mIGQmJm51bGwhPT1kJiZkLnR5cGU9PT1tJiZudWxsPT09ZC5rZXkmJihkPWQucHJvcHMuY2hpbGRyZW4pLFwib2JqZWN0XCI9PXR5cGVvZiBkJiZudWxsIT09ZCl7c3dpdGNoKGQuJCR0eXBlb2Ype2Nhc2UgaDplOntmb3IodmFyIHk9ZC5rZXk7bnVsbCE9PXU7KXtpZih1LmtleT09PXkpe2lmKCh5PWQudHlwZSk9PT1tKXtpZig3PT09dS50YWcpe3QoYyx1LnNpYmxpbmcpLChiPW8odSxkLnByb3BzLmNoaWxkcmVuKSkucmV0dXJuPWMsYz1iO2JyZWFrIGV9fWVsc2UgaWYodS5lbGVtZW50VHlwZT09PXl8fFwib2JqZWN0XCI9PXR5cGVvZiB5JiZudWxsIT09eSYmeS4kJHR5cGVvZj09PU8mJm92KHkpPT09dS50eXBlKXt0KGMsdS5zaWJsaW5nKSxvZyhiPW8odSxkLnByb3BzKSxkKSxiLnJldHVybj1jLGM9YjticmVhayBlfXQoYyx1KTticmVha31uKGMsdSksdT11LnNpYmxpbmd9ZC50eXBlPT09bT8oYj1yYShkLnByb3BzLmNoaWxkcmVuLGMubW9kZSxiLGQua2V5KSkucmV0dXJuPWM6KG9nKGI9cm8oZC50eXBlLGQua2V5LGQucHJvcHMsbnVsbCxjLm1vZGUsYiksZCksYi5yZXR1cm49YyksYz1ifXJldHVybiBpKGMpO2Nhc2UgZzplOntmb3IoeT1kLmtleTtudWxsIT09dTspe2lmKHUua2V5PT09eSlpZig0PT09dS50YWcmJnUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm89PT1kLmNvbnRhaW5lckluZm8mJnUuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uPT09ZC5pbXBsZW1lbnRhdGlvbil7dChjLHUuc2libGluZyksKGI9byh1LGQuY2hpbGRyZW58fFtdKSkucmV0dXJuPWMsYz1iO2JyZWFrIGV9ZWxzZXt0KGMsdSk7YnJlYWt9bihjLHUpLHU9dS5zaWJsaW5nfShiPXJzKGQsYy5tb2RlLGIpKS5yZXR1cm49YyxjPWJ9cmV0dXJuIGkoYyk7Y2FzZSBPOnJldHVybiBzKGMsdSxkPSh5PWQuX2luaXQpKGQuX3BheWxvYWQpLGIpfWlmKHooZCkpcmV0dXJuIGZ1bmN0aW9uKG8saSxsLHMpe2Zvcih2YXIgYz1udWxsLHU9bnVsbCxkPWksaD1pPTAsZz1udWxsO251bGwhPT1kJiZoPGwubGVuZ3RoO2grKyl7ZC5pbmRleD5oPyhnPWQsZD1udWxsKTpnPWQuc2libGluZzt2YXIgbT1wKG8sZCxsW2hdLHMpO2lmKG51bGw9PT1tKXtudWxsPT09ZCYmKGQ9Zyk7YnJlYWt9ZSYmZCYmbnVsbD09PW0uYWx0ZXJuYXRlJiZuKG8sZCksaT1hKG0saSxoKSxudWxsPT09dT9jPW06dS5zaWJsaW5nPW0sdT1tLGQ9Z31pZihoPT09bC5sZW5ndGgpcmV0dXJuIHQobyxkKSxyUyYmcngobyxoKSxjO2lmKG51bGw9PT1kKXtmb3IoO2g8bC5sZW5ndGg7aCsrKW51bGwhPT0oZD1mKG8sbFtoXSxzKSkmJihpPWEoZCxpLGgpLG51bGw9PT11P2M9ZDp1LnNpYmxpbmc9ZCx1PWQpO3JldHVybiByUyYmcngobyxoKSxjfWZvcihkPXIoZCk7aDxsLmxlbmd0aDtoKyspbnVsbCE9PShnPXYoZCxvLGgsbFtoXSxzKSkmJihlJiZudWxsIT09Zy5hbHRlcm5hdGUmJmQuZGVsZXRlKG51bGw9PT1nLmtleT9oOmcua2V5KSxpPWEoZyxpLGgpLG51bGw9PT11P2M9Zzp1LnNpYmxpbmc9Zyx1PWcpO3JldHVybiBlJiZkLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIG4obyxlKX0pLHJTJiZyeChvLGgpLGN9KGMsdSxkLGIpO2lmKF8oZCkpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mKHk9XyhkKSkpdGhyb3cgRXJyb3IobCgxNTApKTtyZXR1cm4gZnVuY3Rpb24obyxpLHMsYyl7aWYobnVsbD09cyl0aHJvdyBFcnJvcihsKDE1MSkpO2Zvcih2YXIgdT1udWxsLGQ9bnVsbCxoPWksZz1pPTAsbT1udWxsLGI9cy5uZXh0KCk7bnVsbCE9PWgmJiFiLmRvbmU7ZysrLGI9cy5uZXh0KCkpe2guaW5kZXg+Zz8obT1oLGg9bnVsbCk6bT1oLnNpYmxpbmc7dmFyIHk9cChvLGgsYi52YWx1ZSxjKTtpZihudWxsPT09eSl7bnVsbD09PWgmJihoPW0pO2JyZWFrfWUmJmgmJm51bGw9PT15LmFsdGVybmF0ZSYmbihvLGgpLGk9YSh5LGksZyksbnVsbD09PWQ/dT15OmQuc2libGluZz15LGQ9eSxoPW19aWYoYi5kb25lKXJldHVybiB0KG8saCksclMmJnJ4KG8sZyksdTtpZihudWxsPT09aCl7Zm9yKDshYi5kb25lO2crKyxiPXMubmV4dCgpKW51bGwhPT0oYj1mKG8sYi52YWx1ZSxjKSkmJihpPWEoYixpLGcpLG51bGw9PT1kP3U9YjpkLnNpYmxpbmc9YixkPWIpO3JldHVybiByUyYmcngobyxnKSx1fWZvcihoPXIoaCk7IWIuZG9uZTtnKyssYj1zLm5leHQoKSludWxsIT09KGI9dihoLG8sZyxiLnZhbHVlLGMpKSYmKGUmJm51bGwhPT1iLmFsdGVybmF0ZSYmaC5kZWxldGUobnVsbD09PWIua2V5P2c6Yi5rZXkpLGk9YShiLGksZyksbnVsbD09PWQ/dT1iOmQuc2libGluZz1iLGQ9Yik7cmV0dXJuIGUmJmguZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gbihvLGUpfSksclMmJnJ4KG8sZyksdX0oYyx1LGQ9eS5jYWxsKGQpLGIpfWlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGQudGhlbilyZXR1cm4gcyhjLHUsb2goZCksYik7aWYoZC4kJHR5cGVvZj09PXgpcmV0dXJuIHMoYyx1LHJYKGMsZCksYik7b20oYyxkKX1yZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZCYmXCJcIiE9PWR8fFwibnVtYmVyXCI9PXR5cGVvZiBkfHxcImJpZ2ludFwiPT10eXBlb2YgZD8oZD1cIlwiK2QsbnVsbCE9PXUmJjY9PT11LnRhZz8odChjLHUuc2libGluZyksKGI9byh1LGQpKS5yZXR1cm49Yyk6KHQoYyx1KSwoYj1yaShkLGMubW9kZSxiKSkucmV0dXJuPWMpLGkoYz1iKSk6dChjLHUpfShzLGMsdSxkKTtyZXR1cm4gb2Y9bnVsbCxifWNhdGNoKGUpe2lmKGU9PT1vcnx8ZT09PW9hKXRocm93IGU7dmFyIHk9cmUoMjksZSxudWxsLHMubW9kZSk7cmV0dXJuIHkubGFuZXM9ZCx5LnJldHVybj1zLHl9ZmluYWxseXt9fX12YXIgb3k9b2IoITApLG94PW9iKCExKSxvdz0hMTtmdW5jdGlvbiBvaihlKXtlLnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5tZW1vaXplZFN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpudWxsLGxhc3RCYXNlVXBkYXRlOm51bGwsc2hhcmVkOntwZW5kaW5nOm51bGwsbGFuZXM6MCxoaWRkZW5DYWxsYmFja3M6bnVsbH0sY2FsbGJhY2tzOm51bGx9fWZ1bmN0aW9uIG9rKGUsbil7ZT1lLnVwZGF0ZVF1ZXVlLG4udXBkYXRlUXVldWU9PT1lJiYobi51cGRhdGVRdWV1ZT17YmFzZVN0YXRlOmUuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTplLmZpcnN0QmFzZVVwZGF0ZSxsYXN0QmFzZVVwZGF0ZTplLmxhc3RCYXNlVXBkYXRlLHNoYXJlZDplLnNoYXJlZCxjYWxsYmFja3M6bnVsbH0pfWZ1bmN0aW9uIG9BKGUpe3JldHVybntsYW5lOmUsdGFnOjAscGF5bG9hZDpudWxsLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfX1mdW5jdGlvbiBvTyhlLG4sdCl7dmFyIHI9ZS51cGRhdGVRdWV1ZTtpZihudWxsPT09cilyZXR1cm4gbnVsbDtpZihyPXIuc2hhcmVkLDAhPSgyJmxSKSl7dmFyIG89ci5wZW5kaW5nO3JldHVybiBudWxsPT09bz9uLm5leHQ9bjoobi5uZXh0PW8ubmV4dCxvLm5leHQ9biksci5wZW5kaW5nPW4sbj10OShlKSx0NihlLG51bGwsdCksbn1yZXR1cm4gdDQoZSxyLG4sdCksdDkoZSl9ZnVuY3Rpb24gb0MoZSxuLHQpe2lmKG51bGwhPT0obj1uLnVwZGF0ZVF1ZXVlKSYmKG49bi5zaGFyZWQsMCE9KDQxOTQwNDgmdCkpKXt2YXIgcj1uLmxhbmVzO3ImPWUucGVuZGluZ0xhbmVzLHR8PXIsbi5sYW5lcz10LGVFKGUsdCl9fWZ1bmN0aW9uIG9TKGUsbil7dmFyIHQ9ZS51cGRhdGVRdWV1ZSxyPWUuYWx0ZXJuYXRlO2lmKG51bGwhPT1yJiZ0PT09KHI9ci51cGRhdGVRdWV1ZSkpe3ZhciBvPW51bGwsYT1udWxsO2lmKG51bGwhPT0odD10LmZpcnN0QmFzZVVwZGF0ZSkpe2Rve3ZhciBpPXtsYW5lOnQubGFuZSx0YWc6dC50YWcscGF5bG9hZDp0LnBheWxvYWQsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9O251bGw9PT1hP289YT1pOmE9YS5uZXh0PWksdD10Lm5leHR9d2hpbGUobnVsbCE9PXQpO251bGw9PT1hP289YT1uOmE9YS5uZXh0PW59ZWxzZSBvPWE9bjt0PXtiYXNlU3RhdGU6ci5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm8sbGFzdEJhc2VVcGRhdGU6YSxzaGFyZWQ6ci5zaGFyZWQsY2FsbGJhY2tzOnIuY2FsbGJhY2tzfSxlLnVwZGF0ZVF1ZXVlPXQ7cmV0dXJufW51bGw9PT0oZT10Lmxhc3RCYXNlVXBkYXRlKT90LmZpcnN0QmFzZVVwZGF0ZT1uOmUubmV4dD1uLHQubGFzdEJhc2VVcGRhdGU9bn12YXIgb0U9ITE7ZnVuY3Rpb24gb18oKXtpZihvRSl7dmFyIGU9cjY7aWYobnVsbCE9PWUpdGhyb3cgZX19ZnVuY3Rpb24gb1AoZSxuLHQscil7b0U9ITE7dmFyIG89ZS51cGRhdGVRdWV1ZTtvdz0hMTt2YXIgYT1vLmZpcnN0QmFzZVVwZGF0ZSxpPW8ubGFzdEJhc2VVcGRhdGUsbD1vLnNoYXJlZC5wZW5kaW5nO2lmKG51bGwhPT1sKXtvLnNoYXJlZC5wZW5kaW5nPW51bGw7dmFyIHM9bCxjPXMubmV4dDtzLm5leHQ9bnVsbCxudWxsPT09aT9hPWM6aS5uZXh0PWMsaT1zO3ZhciB1PWUuYWx0ZXJuYXRlO251bGwhPT11JiYobD0odT11LnVwZGF0ZVF1ZXVlKS5sYXN0QmFzZVVwZGF0ZSkhPT1pJiYobnVsbD09PWw/dS5maXJzdEJhc2VVcGRhdGU9YzpsLm5leHQ9Yyx1Lmxhc3RCYXNlVXBkYXRlPXMpfWlmKG51bGwhPT1hKXt2YXIgZD1vLmJhc2VTdGF0ZTtmb3IoaT0wLHU9Yz1zPW51bGwsbD1hOzspe3ZhciBwPS0weDIwMDAwMDAxJmwubGFuZSxoPXAhPT1sLmxhbmU7aWYoaD8obEImcCk9PT1wOihyJnApPT09cCl7MCE9PXAmJnA9PT1yMyYmKG9FPSEwKSxudWxsIT09dSYmKHU9dS5uZXh0PXtsYW5lOjAsdGFnOmwudGFnLHBheWxvYWQ6bC5wYXlsb2FkLGNhbGxiYWNrOm51bGwsbmV4dDpudWxsfSk7ZTp7dmFyIGc9ZSxtPWw7c3dpdGNoKHA9bixtLnRhZyl7Y2FzZSAxOmlmKFwiZnVuY3Rpb25cIj09dHlwZW9mKGc9bS5wYXlsb2FkKSl7ZD1nLmNhbGwodCxkLHApO2JyZWFrIGV9ZD1nO2JyZWFrIGU7Y2FzZSAzOmcuZmxhZ3M9LTY1NTM3JmcuZmxhZ3N8MTI4O2Nhc2UgMDppZihudWxsPT0ocD1cImZ1bmN0aW9uXCI9PXR5cGVvZihnPW0ucGF5bG9hZCk/Zy5jYWxsKHQsZCxwKTpnKSlicmVhayBlO2Q9Zih7fSxkLHApO2JyZWFrIGU7Y2FzZSAyOm93PSEwfX1udWxsIT09KHA9bC5jYWxsYmFjaykmJihlLmZsYWdzfD02NCxoJiYoZS5mbGFnc3w9ODE5MiksbnVsbD09PShoPW8uY2FsbGJhY2tzKT9vLmNhbGxiYWNrcz1bcF06aC5wdXNoKHApKX1lbHNlIGg9e2xhbmU6cCx0YWc6bC50YWcscGF5bG9hZDpsLnBheWxvYWQsY2FsbGJhY2s6bC5jYWxsYmFjayxuZXh0Om51bGx9LG51bGw9PT11PyhjPXU9aCxzPWQpOnU9dS5uZXh0PWgsaXw9cDtpZihudWxsPT09KGw9bC5uZXh0KSlpZihudWxsPT09KGw9by5zaGFyZWQucGVuZGluZykpYnJlYWs7ZWxzZSBsPShoPWwpLm5leHQsaC5uZXh0PW51bGwsby5sYXN0QmFzZVVwZGF0ZT1oLG8uc2hhcmVkLnBlbmRpbmc9bnVsbH1udWxsPT09dSYmKHM9ZCksby5iYXNlU3RhdGU9cyxvLmZpcnN0QmFzZVVwZGF0ZT1jLG8ubGFzdEJhc2VVcGRhdGU9dSxudWxsPT09YSYmKG8uc2hhcmVkLmxhbmVzPTApLGxXfD1pLGUubGFuZXM9aSxlLm1lbW9pemVkU3RhdGU9ZH19ZnVuY3Rpb24gb3ooZSxuKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IEVycm9yKGwoMTkxLGUpKTtlLmNhbGwobil9ZnVuY3Rpb24gb0woZSxuKXt2YXIgdD1lLmNhbGxiYWNrcztpZihudWxsIT09dClmb3IoZS5jYWxsYmFja3M9bnVsbCxlPTA7ZTx0Lmxlbmd0aDtlKyspb3oodFtlXSxuKX12YXIgb1Q9QihudWxsKSxvUj1CKDApO2Z1bmN0aW9uIG9OKGUsbil7SShvUixlPWxWKSxJKG9ULG4pLGxWPWV8bi5iYXNlTGFuZXN9ZnVuY3Rpb24gb0QoKXtJKG9SLGxWKSxJKG9ULG9ULmN1cnJlbnQpfWZ1bmN0aW9uIG9CKCl7bFY9b1IuY3VycmVudCxNKG9UKSxNKG9SKX12YXIgb009QihudWxsKSxvST1udWxsO2Z1bmN0aW9uIG9IKGUpe3ZhciBuPWUuYWx0ZXJuYXRlO0kob1csMSZvVy5jdXJyZW50KSxJKG9NLGUpLG51bGw9PT1vSSYmKG51bGw9PT1ufHxudWxsIT09b1QuY3VycmVudD9vST1lOm51bGwhPT1uLm1lbW9pemVkU3RhdGUmJihvST1lKSl9ZnVuY3Rpb24gb0YoZSl7SShvVyxvVy5jdXJyZW50KSxJKG9NLGUpLG51bGw9PT1vSSYmKG9JPWUpfWZ1bmN0aW9uIG9VKGUpezIyPT09ZS50YWc/KEkob1csb1cuY3VycmVudCksSShvTSxlKSxudWxsPT09b0kmJihvST1lKSk6b1YoZSl9ZnVuY3Rpb24gb1YoKXtJKG9XLG9XLmN1cnJlbnQpLEkob00sb00uY3VycmVudCl9ZnVuY3Rpb24gb3EoZSl7TShvTSksb0k9PT1lJiYob0k9bnVsbCksTShvVyl9dmFyIG9XPUIoMCk7ZnVuY3Rpb24gbyQoZSl7Zm9yKHZhciBuPWU7bnVsbCE9PW47KXtpZigxMz09PW4udGFnKXt2YXIgdD1uLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXQmJihudWxsPT09KHQ9dC5kZWh5ZHJhdGVkKXx8Y1ModCl8fGNFKHQpKSlyZXR1cm4gbn1lbHNlIGlmKDE5PT09bi50YWcmJihcImZvcndhcmRzXCI9PT1uLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXJ8fFwiYmFja3dhcmRzXCI9PT1uLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXJ8fFwidW5zdGFibGVfbGVnYWN5LWJhY2t3YXJkc1wiPT09bi5tZW1vaXplZFByb3BzLnJldmVhbE9yZGVyfHxcInRvZ2V0aGVyXCI9PT1uLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpKXtpZigwIT0oMTI4Jm4uZmxhZ3MpKXJldHVybiBufWVsc2UgaWYobnVsbCE9PW4uY2hpbGQpe24uY2hpbGQucmV0dXJuPW4sbj1uLmNoaWxkO2NvbnRpbnVlfWlmKG49PT1lKWJyZWFrO2Zvcig7bnVsbD09PW4uc2libGluZzspe2lmKG51bGw9PT1uLnJldHVybnx8bi5yZXR1cm49PT1lKXJldHVybiBudWxsO249bi5yZXR1cm59bi5zaWJsaW5nLnJldHVybj1uLnJldHVybixuPW4uc2libGluZ31yZXR1cm4gbnVsbH12YXIgb1o9MCxvWT1udWxsLG9YPW51bGwsb0s9bnVsbCxvUT0hMSxvRz0hMSxvSj0hMSxvMD0wLG8xPTAsbzI9bnVsbCxvND0wO2Z1bmN0aW9uIG81KCl7dGhyb3cgRXJyb3IobCgzMjEpKX1mdW5jdGlvbiBvMyhlLG4pe2lmKG51bGw9PT1uKXJldHVybiExO2Zvcih2YXIgdD0wO3Q8bi5sZW5ndGgmJnQ8ZS5sZW5ndGg7dCsrKWlmKCF0TyhlW3RdLG5bdF0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIG82KGUsbix0LHIsbyxhKXtyZXR1cm4gb1o9YSxvWT1uLG4ubWVtb2l6ZWRTdGF0ZT1udWxsLG4udXBkYXRlUXVldWU9bnVsbCxuLmxhbmVzPTAsTC5IPW51bGw9PT1lfHxudWxsPT09ZS5tZW1vaXplZFN0YXRlP2l0OmlyLG9KPSExLGE9dChyLG8pLG9KPSExLG9HJiYoYT1vOChuLHQscixvKSksbzkoZSksYX1mdW5jdGlvbiBvOShlKXtMLkg9aWU7dmFyIG49bnVsbCE9PW9YJiZudWxsIT09b1gubmV4dDtpZihvWj0wLG9LPW9YPW9ZPW51bGwsb1E9ITEsbzE9MCxvMj1udWxsLG4pdGhyb3cgRXJyb3IobCgzMDApKTtudWxsPT09ZXx8aXh8fG51bGwhPT0oZT1lLmRlcGVuZGVuY2llcykmJnIkKGUpJiYoaXg9ITApfWZ1bmN0aW9uIG84KGUsbix0LHIpe29ZPWU7dmFyIG89MDtkb3tpZihvRyYmKG8yPW51bGwpLG8xPTAsb0c9ITEsMjU8PW8pdGhyb3cgRXJyb3IobCgzMDEpKTtpZihvKz0xLG9LPW9YPW51bGwsbnVsbCE9ZS51cGRhdGVRdWV1ZSl7dmFyIGE9ZS51cGRhdGVRdWV1ZTthLmxhc3RFZmZlY3Q9bnVsbCxhLmV2ZW50cz1udWxsLGEuc3RvcmVzPW51bGwsbnVsbCE9YS5tZW1vQ2FjaGUmJihhLm1lbW9DYWNoZS5pbmRleD0wKX1MLkg9aW8sYT1uKHQscil9d2hpbGUob0cpO3JldHVybiBhfWZ1bmN0aW9uIG83KCl7dmFyIGU9TC5ILG49ZS51c2VTdGF0ZSgpWzBdO3JldHVybiBuPVwiZnVuY3Rpb25cIj09dHlwZW9mIG4udGhlbj9haShuKTpuLGU9ZS51c2VTdGF0ZSgpWzBdLChudWxsIT09b1g/b1gubWVtb2l6ZWRTdGF0ZTpudWxsKSE9PWUmJihvWS5mbGFnc3w9MTAyNCksbn1mdW5jdGlvbiBhZSgpe3ZhciBlPTAhPT1vMDtyZXR1cm4gbzA9MCxlfWZ1bmN0aW9uIGFuKGUsbix0KXtuLnVwZGF0ZVF1ZXVlPWUudXBkYXRlUXVldWUsbi5mbGFncyY9LTIwNTMsZS5sYW5lcyY9fnR9ZnVuY3Rpb24gYXQoZSl7aWYob1Epe2ZvcihlPWUubWVtb2l6ZWRTdGF0ZTtudWxsIT09ZTspe3ZhciBuPWUucXVldWU7bnVsbCE9PW4mJihuLnBlbmRpbmc9bnVsbCksZT1lLm5leHR9b1E9ITF9b1o9MCxvSz1vWD1vWT1udWxsLG9HPSExLG8xPW8wPTAsbzI9bnVsbH1mdW5jdGlvbiBhcigpe3ZhciBlPXttZW1vaXplZFN0YXRlOm51bGwsYmFzZVN0YXRlOm51bGwsYmFzZVF1ZXVlOm51bGwscXVldWU6bnVsbCxuZXh0Om51bGx9O3JldHVybiBudWxsPT09b0s/b1kubWVtb2l6ZWRTdGF0ZT1vSz1lOm9LPW9LLm5leHQ9ZSxvS31mdW5jdGlvbiBhbygpe2lmKG51bGw9PT1vWCl7dmFyIGU9b1kuYWx0ZXJuYXRlO2U9bnVsbCE9PWU/ZS5tZW1vaXplZFN0YXRlOm51bGx9ZWxzZSBlPW9YLm5leHQ7dmFyIG49bnVsbD09PW9LP29ZLm1lbW9pemVkU3RhdGU6b0submV4dDtpZihudWxsIT09bilvSz1uLG9YPWU7ZWxzZXtpZihudWxsPT09ZSl7aWYobnVsbD09PW9ZLmFsdGVybmF0ZSl0aHJvdyBFcnJvcihsKDQ2NykpO3Rocm93IEVycm9yKGwoMzEwKSl9ZT17bWVtb2l6ZWRTdGF0ZToob1g9ZSkubWVtb2l6ZWRTdGF0ZSxiYXNlU3RhdGU6b1guYmFzZVN0YXRlLGJhc2VRdWV1ZTpvWC5iYXNlUXVldWUscXVldWU6b1gucXVldWUsbmV4dDpudWxsfSxudWxsPT09b0s/b1kubWVtb2l6ZWRTdGF0ZT1vSz1lOm9LPW9LLm5leHQ9ZX1yZXR1cm4gb0t9ZnVuY3Rpb24gYWEoKXtyZXR1cm57bGFzdEVmZmVjdDpudWxsLGV2ZW50czpudWxsLHN0b3JlczpudWxsLG1lbW9DYWNoZTpudWxsfX1mdW5jdGlvbiBhaShlKXt2YXIgbj1vMTtyZXR1cm4gbzErPTEsbnVsbD09PW8yJiYobzI9W10pLGU9b3MobzIsZSxuKSxuPW9ZLG51bGw9PT0obnVsbD09PW9LP24ubWVtb2l6ZWRTdGF0ZTpvSy5uZXh0KSYmKEwuSD1udWxsPT09KG49bi5hbHRlcm5hdGUpfHxudWxsPT09bi5tZW1vaXplZFN0YXRlP2l0OmlyKSxlfWZ1bmN0aW9uIGFsKGUpe2lmKG51bGwhPT1lJiZcIm9iamVjdFwiPT10eXBlb2YgZSl7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZS50aGVuKXJldHVybiBhaShlKTtpZihlLiQkdHlwZW9mPT09eClyZXR1cm4gclkoZSl9dGhyb3cgRXJyb3IobCg0MzgsU3RyaW5nKGUpKSl9ZnVuY3Rpb24gYXMoZSl7dmFyIG49bnVsbCx0PW9ZLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT10JiYobj10Lm1lbW9DYWNoZSksbnVsbD09bil7dmFyIHI9b1kuYWx0ZXJuYXRlO251bGwhPT1yJiZudWxsIT09KHI9ci51cGRhdGVRdWV1ZSkmJm51bGwhPShyPXIubWVtb0NhY2hlKSYmKG49e2RhdGE6ci5kYXRhLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZS5zbGljZSgpfSksaW5kZXg6MH0pfWlmKG51bGw9PW4mJihuPXtkYXRhOltdLGluZGV4OjB9KSxudWxsPT09dCYmKHQ9YWEoKSxvWS51cGRhdGVRdWV1ZT10KSx0Lm1lbW9DYWNoZT1uLHZvaWQgMD09PSh0PW4uZGF0YVtuLmluZGV4XSkpZm9yKHQ9bi5kYXRhW24uaW5kZXhdPUFycmF5KGUpLHI9MDtyPGU7cisrKXRbcl09UztyZXR1cm4gbi5pbmRleCsrLHR9ZnVuY3Rpb24gYWMoZSxuKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24oZSk6bn1mdW5jdGlvbiBhdShlKXtyZXR1cm4gYWQoYW8oKSxvWCxlKX1mdW5jdGlvbiBhZChlLG4sdCl7dmFyIHI9ZS5xdWV1ZTtpZihudWxsPT09cil0aHJvdyBFcnJvcihsKDMxMSkpO3IubGFzdFJlbmRlcmVkUmVkdWNlcj10O3ZhciBvPWUuYmFzZVF1ZXVlLGE9ci5wZW5kaW5nO2lmKG51bGwhPT1hKXtpZihudWxsIT09byl7dmFyIGk9by5uZXh0O28ubmV4dD1hLm5leHQsYS5uZXh0PWl9bi5iYXNlUXVldWU9bz1hLHIucGVuZGluZz1udWxsfWlmKGE9ZS5iYXNlU3RhdGUsbnVsbD09PW8pZS5tZW1vaXplZFN0YXRlPWE7ZWxzZXtuPW8ubmV4dDt2YXIgcz1pPW51bGwsYz1udWxsLHU9bixkPSExO2Rve3ZhciBmPS0weDIwMDAwMDAxJnUubGFuZTtpZihmIT09dS5sYW5lPyhsQiZmKT09PWY6KG9aJmYpPT09Zil7dmFyIHA9dS5yZXZlcnRMYW5lO2lmKDA9PT1wKW51bGwhPT1jJiYoYz1jLm5leHQ9e2xhbmU6MCxyZXZlcnRMYW5lOjAsZ2VzdHVyZTpudWxsLGFjdGlvbjp1LmFjdGlvbixoYXNFYWdlclN0YXRlOnUuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOnUuZWFnZXJTdGF0ZSxuZXh0Om51bGx9KSxmPT09cjMmJihkPSEwKTtlbHNlIGlmKChvWiZwKT09PXApe3U9dS5uZXh0LHA9PT1yMyYmKGQ9ITApO2NvbnRpbnVlfWVsc2UgZj17bGFuZTowLHJldmVydExhbmU6dS5yZXZlcnRMYW5lLGdlc3R1cmU6bnVsbCxhY3Rpb246dS5hY3Rpb24saGFzRWFnZXJTdGF0ZTp1Lmhhc0VhZ2VyU3RhdGUsZWFnZXJTdGF0ZTp1LmVhZ2VyU3RhdGUsbmV4dDpudWxsfSxudWxsPT09Yz8ocz1jPWYsaT1hKTpjPWMubmV4dD1mLG9ZLmxhbmVzfD1wLGxXfD1wO2Y9dS5hY3Rpb24sb0omJnQoYSxmKSxhPXUuaGFzRWFnZXJTdGF0ZT91LmVhZ2VyU3RhdGU6dChhLGYpfWVsc2UgcD17bGFuZTpmLHJldmVydExhbmU6dS5yZXZlcnRMYW5lLGdlc3R1cmU6dS5nZXN0dXJlLGFjdGlvbjp1LmFjdGlvbixoYXNFYWdlclN0YXRlOnUuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOnUuZWFnZXJTdGF0ZSxuZXh0Om51bGx9LG51bGw9PT1jPyhzPWM9cCxpPWEpOmM9Yy5uZXh0PXAsb1kubGFuZXN8PWYsbFd8PWY7dT11Lm5leHR9d2hpbGUobnVsbCE9PXUmJnUhPT1uKTtpZihudWxsPT09Yz9pPWE6Yy5uZXh0PXMsIXRPKGEsZS5tZW1vaXplZFN0YXRlKSYmKGl4PSEwLGQmJm51bGwhPT0odD1yNikpKXRocm93IHQ7ZS5tZW1vaXplZFN0YXRlPWEsZS5iYXNlU3RhdGU9aSxlLmJhc2VRdWV1ZT1jLHIubGFzdFJlbmRlcmVkU3RhdGU9YX1yZXR1cm4gbnVsbD09PW8mJihyLmxhbmVzPTApLFtlLm1lbW9pemVkU3RhdGUsci5kaXNwYXRjaF19ZnVuY3Rpb24gYWYoZSl7dmFyIG49YW8oKSx0PW4ucXVldWU7aWYobnVsbD09PXQpdGhyb3cgRXJyb3IobCgzMTEpKTt0Lmxhc3RSZW5kZXJlZFJlZHVjZXI9ZTt2YXIgcj10LmRpc3BhdGNoLG89dC5wZW5kaW5nLGE9bi5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1vKXt0LnBlbmRpbmc9bnVsbDt2YXIgaT1vPW8ubmV4dDtkbyBhPWUoYSxpLmFjdGlvbiksaT1pLm5leHQ7d2hpbGUoaSE9PW8pO3RPKGEsbi5tZW1vaXplZFN0YXRlKXx8KGl4PSEwKSxuLm1lbW9pemVkU3RhdGU9YSxudWxsPT09bi5iYXNlUXVldWUmJihuLmJhc2VTdGF0ZT1hKSx0Lmxhc3RSZW5kZXJlZFN0YXRlPWF9cmV0dXJuW2Escl19ZnVuY3Rpb24gYXAoZSxuLHQpe3ZhciByPW9ZLG89YW8oKSxhPXJTO2lmKGEpe2lmKHZvaWQgMD09PXQpdGhyb3cgRXJyb3IobCg0MDcpKTt0PXQoKX1lbHNlIHQ9bigpO3ZhciBpPSF0Tygob1h8fG8pLm1lbW9pemVkU3RhdGUsdCk7aWYoaSYmKG8ubWVtb2l6ZWRTdGF0ZT10LGl4PSEwKSxvPW8ucXVldWUsYU0oYW0uYmluZChudWxsLHIsbyxlKSxbZV0pLG8uZ2V0U25hcHNob3QhPT1ufHxpfHxudWxsIT09b0smJjEmb0subWVtb2l6ZWRTdGF0ZS50YWcpe2lmKHIuZmxhZ3N8PTIwNDgsYVQoOSx7ZGVzdHJveTp2b2lkIDB9LGFnLmJpbmQobnVsbCxyLG8sdCxuKSxudWxsKSxudWxsPT09bE4pdGhyb3cgRXJyb3IobCgzNDkpKTthfHwwIT0oMTI0Jm9aKXx8YWgocixuLHQpfXJldHVybiB0fWZ1bmN0aW9uIGFoKGUsbix0KXtlLmZsYWdzfD0xNjM4NCxlPXtnZXRTbmFwc2hvdDpuLHZhbHVlOnR9LG51bGw9PT0obj1vWS51cGRhdGVRdWV1ZSk/KG49YWEoKSxvWS51cGRhdGVRdWV1ZT1uLG4uc3RvcmVzPVtlXSk6bnVsbD09PSh0PW4uc3RvcmVzKT9uLnN0b3Jlcz1bZV06dC5wdXNoKGUpfWZ1bmN0aW9uIGFnKGUsbix0LHIpe24udmFsdWU9dCxuLmdldFNuYXBzaG90PXIsYXYobikmJmFiKGUpfWZ1bmN0aW9uIGFtKGUsbix0KXtyZXR1cm4gdChmdW5jdGlvbigpe2F2KG4pJiZhYihlKX0pfWZ1bmN0aW9uIGF2KGUpe3ZhciBuPWUuZ2V0U25hcHNob3Q7ZT1lLnZhbHVlO3RyeXt2YXIgdD1uKCk7cmV0dXJuIXRPKGUsdCl9Y2F0Y2goZSl7cmV0dXJuITB9fWZ1bmN0aW9uIGFiKGUpe3ZhciBuPXQzKGUsMik7bnVsbCE9PW4mJnNvKG4sZSwyKX1mdW5jdGlvbiBheShlKXt2YXIgbj1hcigpO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGUpe3ZhciB0PWU7aWYoZT10KCksb0ope2VoKCEwKTt0cnl7dCgpfWZpbmFsbHl7ZWgoITEpfX19cmV0dXJuIG4ubWVtb2l6ZWRTdGF0ZT1uLmJhc2VTdGF0ZT1lLG4ucXVldWU9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphYyxsYXN0UmVuZGVyZWRTdGF0ZTplfSxufWZ1bmN0aW9uIGF4KGUsbix0LHIpe3JldHVybiBlLmJhc2VTdGF0ZT10LGFkKGUsb1gsXCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yOmFjKX1mdW5jdGlvbiBhdyhlLG4sdCxyLG8pe2lmKGE5KGUpKXRocm93IEVycm9yKGwoNDg1KSk7aWYobnVsbCE9PShlPW4uYWN0aW9uKSl7dmFyIGE9e3BheWxvYWQ6byxhY3Rpb246ZSxuZXh0Om51bGwsaXNUcmFuc2l0aW9uOiEwLHN0YXR1czpcInBlbmRpbmdcIix2YWx1ZTpudWxsLHJlYXNvbjpudWxsLGxpc3RlbmVyczpbXSx0aGVuOmZ1bmN0aW9uKGUpe2EubGlzdGVuZXJzLnB1c2goZSl9fTtudWxsIT09TC5UP3QoITApOmEuaXNUcmFuc2l0aW9uPSExLHIoYSksbnVsbD09PSh0PW4ucGVuZGluZyk/KGEubmV4dD1uLnBlbmRpbmc9YSxhaihuLGEpKTooYS5uZXh0PXQubmV4dCxuLnBlbmRpbmc9dC5uZXh0PWEpfX1mdW5jdGlvbiBhaihlLG4pe3ZhciB0PW4uYWN0aW9uLHI9bi5wYXlsb2FkLG89ZS5zdGF0ZTtpZihuLmlzVHJhbnNpdGlvbil7dmFyIGE9TC5ULGk9e307TC5UPWk7dHJ5e3ZhciBsPXQobyxyKSxzPUwuUztudWxsIT09cyYmcyhpLGwpLGFrKGUsbixsKX1jYXRjaCh0KXthTyhlLG4sdCl9ZmluYWxseXtudWxsIT09YSYmbnVsbCE9PWkudHlwZXMmJihhLnR5cGVzPWkudHlwZXMpLEwuVD1hfX1lbHNlIHRyeXthPXQobyxyKSxhayhlLG4sYSl9Y2F0Y2godCl7YU8oZSxuLHQpfX1mdW5jdGlvbiBhayhlLG4sdCl7bnVsbCE9PXQmJlwib2JqZWN0XCI9PXR5cGVvZiB0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LnRoZW4/dC50aGVuKGZ1bmN0aW9uKHQpe2FBKGUsbix0KX0sZnVuY3Rpb24odCl7cmV0dXJuIGFPKGUsbix0KX0pOmFBKGUsbix0KX1mdW5jdGlvbiBhQShlLG4sdCl7bi5zdGF0dXM9XCJmdWxmaWxsZWRcIixuLnZhbHVlPXQsYUMobiksZS5zdGF0ZT10LG51bGwhPT0obj1lLnBlbmRpbmcpJiYoKHQ9bi5uZXh0KT09PW4/ZS5wZW5kaW5nPW51bGw6KHQ9dC5uZXh0LG4ubmV4dD10LGFqKGUsdCkpKX1mdW5jdGlvbiBhTyhlLG4sdCl7dmFyIHI9ZS5wZW5kaW5nO2lmKGUucGVuZGluZz1udWxsLG51bGwhPT1yKXtyPXIubmV4dDtkbyBuLnN0YXR1cz1cInJlamVjdGVkXCIsbi5yZWFzb249dCxhQyhuKSxuPW4ubmV4dDt3aGlsZShuIT09cil9ZS5hY3Rpb249bnVsbH1mdW5jdGlvbiBhQyhlKXtlPWUubGlzdGVuZXJzO2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKSgwLGVbbl0pKCl9ZnVuY3Rpb24gYVMoZSxuKXtyZXR1cm4gbn1mdW5jdGlvbiBhRShlLG4pe2lmKHJTKXt2YXIgdD1sTi5mb3JtU3RhdGU7aWYobnVsbCE9PXQpe2U6e3ZhciByPW9ZO2lmKHJTKXtpZihyQyl7bjp7Zm9yKHZhciBvPXJDLGE9cl87OCE9PW8ubm9kZVR5cGU7KWlmKCFhfHxudWxsPT09KG89Y18oby5uZXh0U2libGluZykpKXtvPW51bGw7YnJlYWsgbn1vPVwiRiFcIj09PShhPW8uZGF0YSl8fFwiRlwiPT09YT9vOm51bGx9aWYobyl7ckM9Y18oby5uZXh0U2libGluZykscj1cIkYhXCI9PT1vLmRhdGE7YnJlYWsgZX19cnoocil9cj0hMX1yJiYobj10WzBdKX19cmV0dXJuKHQ9YXIoKSkubWVtb2l6ZWRTdGF0ZT10LmJhc2VTdGF0ZT1uLHI9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphUyxsYXN0UmVuZGVyZWRTdGF0ZTpufSx0LnF1ZXVlPXIsdD1hNS5iaW5kKG51bGwsb1ksciksci5kaXNwYXRjaD10LHI9YXkoITEpLGE9YTYuYmluZChudWxsLG9ZLCExLHIucXVldWUpLHI9YXIoKSxvPXtzdGF0ZTpuLGRpc3BhdGNoOm51bGwsYWN0aW9uOmUscGVuZGluZzpudWxsfSxyLnF1ZXVlPW8sdD1hdy5iaW5kKG51bGwsb1ksbyxhLHQpLG8uZGlzcGF0Y2g9dCxyLm1lbW9pemVkU3RhdGU9ZSxbbix0LCExXX1mdW5jdGlvbiBhXyhlKXtyZXR1cm4gYVAoYW8oKSxvWCxlKX1mdW5jdGlvbiBhUChlLG4sdCl7aWYobj1hZChlLG4sYVMpWzBdLGU9YXUoYWMpWzBdLFwib2JqZWN0XCI9PXR5cGVvZiBuJiZudWxsIT09biYmXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50aGVuKXRyeXt2YXIgcj1haShuKX1jYXRjaChlKXtpZihlPT09b3IpdGhyb3cgb2E7dGhyb3cgZX1lbHNlIHI9bjt2YXIgbz0obj1hbygpKS5xdWV1ZSxhPW8uZGlzcGF0Y2g7cmV0dXJuIHQhPT1uLm1lbW9pemVkU3RhdGUmJihvWS5mbGFnc3w9MjA0OCxhVCg5LHtkZXN0cm95OnZvaWQgMH0sYXouYmluZChudWxsLG8sdCksbnVsbCkpLFtyLGEsZV19ZnVuY3Rpb24gYXooZSxuKXtlLmFjdGlvbj1ufWZ1bmN0aW9uIGFMKGUpe3ZhciBuPWFvKCksdD1vWDtpZihudWxsIT09dClyZXR1cm4gYVAobix0LGUpO2FvKCksbj1uLm1lbW9pemVkU3RhdGU7dmFyIHI9KHQ9YW8oKSkucXVldWUuZGlzcGF0Y2g7cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1lLFtuLHIsITFdfWZ1bmN0aW9uIGFUKGUsbix0LHIpe3JldHVybiBlPXt0YWc6ZSxjcmVhdGU6dCxkZXBzOnIsaW5zdDpuLG5leHQ6bnVsbH0sbnVsbD09PShuPW9ZLnVwZGF0ZVF1ZXVlKSYmKG49YWEoKSxvWS51cGRhdGVRdWV1ZT1uKSxudWxsPT09KHQ9bi5sYXN0RWZmZWN0KT9uLmxhc3RFZmZlY3Q9ZS5uZXh0PWU6KHI9dC5uZXh0LHQubmV4dD1lLGUubmV4dD1yLG4ubGFzdEVmZmVjdD1lKSxlfWZ1bmN0aW9uIGFSKCl7cmV0dXJuIGFvKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBhTihlLG4sdCxyKXt2YXIgbz1hcigpO29ZLmZsYWdzfD1lLG8ubWVtb2l6ZWRTdGF0ZT1hVCgxfG4se2Rlc3Ryb3k6dm9pZCAwfSx0LHZvaWQgMD09PXI/bnVsbDpyKX1mdW5jdGlvbiBhRChlLG4sdCxyKXt2YXIgbz1hbygpO3I9dm9pZCAwPT09cj9udWxsOnI7dmFyIGE9by5tZW1vaXplZFN0YXRlLmluc3Q7bnVsbCE9PW9YJiZudWxsIT09ciYmbzMocixvWC5tZW1vaXplZFN0YXRlLmRlcHMpP28ubWVtb2l6ZWRTdGF0ZT1hVChuLGEsdCxyKToob1kuZmxhZ3N8PWUsby5tZW1vaXplZFN0YXRlPWFUKDF8bixhLHQscikpfWZ1bmN0aW9uIGFCKGUsbil7YU4oODM5MDY1Niw4LGUsbil9ZnVuY3Rpb24gYU0oZSxuKXthRCgyMDQ4LDgsZSxuKX1mdW5jdGlvbiBhSShlLG4pe3JldHVybiBhRCg0LDIsZSxuKX1mdW5jdGlvbiBhSChlLG4pe3JldHVybiBhRCg0LDQsZSxuKX1mdW5jdGlvbiBhRihlLG4pe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4pe3ZhciB0PW4oZT1lKCkpO3JldHVybiBmdW5jdGlvbigpe1wiZnVuY3Rpb25cIj09dHlwZW9mIHQ/dCgpOm4obnVsbCl9fWlmKG51bGwhPW4pcmV0dXJuIG4uY3VycmVudD1lPWUoKSxmdW5jdGlvbigpe24uY3VycmVudD1udWxsfX1mdW5jdGlvbiBhVShlLG4sdCl7dD1udWxsIT10P3QuY29uY2F0KFtlXSk6bnVsbCxhRCg0LDQsYUYuYmluZChudWxsLG4sZSksdCl9ZnVuY3Rpb24gYVYoKXt9ZnVuY3Rpb24gYXEoZSxuKXt2YXIgdD1hbygpO249dm9pZCAwPT09bj9udWxsOm47dmFyIHI9dC5tZW1vaXplZFN0YXRlO3JldHVybiBudWxsIT09biYmbzMobixyWzFdKT9yWzBdOih0Lm1lbW9pemVkU3RhdGU9W2Usbl0sZSl9ZnVuY3Rpb24gYVcoZSxuKXt2YXIgdD1hbygpO249dm9pZCAwPT09bj9udWxsOm47dmFyIHI9dC5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1uJiZvMyhuLHJbMV0pKXJldHVybiByWzBdO2lmKHI9ZSgpLG9KKXtlaCghMCk7dHJ5e2UoKX1maW5hbGx5e2VoKCExKX19cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1bcixuXSxyfWZ1bmN0aW9uIGEkKGUsbix0KXtyZXR1cm4gdm9pZCAwPT09dHx8MCE9KDB4NDAwMDAwMDAmb1opP2UubWVtb2l6ZWRTdGF0ZT1uOihlLm1lbW9pemVkU3RhdGU9dCxlPXNyKCksb1kubGFuZXN8PWUsbFd8PWUsdCl9ZnVuY3Rpb24gYVooZSxuLHQscil7cmV0dXJuIHRPKHQsbik/dDpudWxsIT09b1QuY3VycmVudD8odE8oZT1hJChlLHQsciksbil8fChpeD0hMCksZSk6MD09KDQyJm9aKXx8MCE9KDB4NDAwMDAwMDAmb1opPyhpeD0hMCxlLm1lbW9pemVkU3RhdGU9dCk6KGU9c3IoKSxvWS5sYW5lc3w9ZSxsV3w9ZSxuKX1mdW5jdGlvbiBhWShlLG4sdCxyLG8pe3ZhciBhPVQucDtULnA9MCE9PWEmJjg+YT9hOjg7dmFyIGk9TC5ULGw9e307TC5UPWwsYTYoZSwhMSxuLHQpO3RyeXt2YXIgcz1vKCksYz1MLlM7aWYobnVsbCE9PWMmJmMobCxzKSxudWxsIT09cyYmXCJvYmplY3RcIj09dHlwZW9mIHMmJlwiZnVuY3Rpb25cIj09dHlwZW9mIHMudGhlbil7dmFyIHUsZCxmPSh1PVtdLGQ9e3N0YXR1czpcInBlbmRpbmdcIix2YWx1ZTpudWxsLHJlYXNvbjpudWxsLHRoZW46ZnVuY3Rpb24oZSl7dS5wdXNoKGUpfX0scy50aGVuKGZ1bmN0aW9uKCl7ZC5zdGF0dXM9XCJmdWxmaWxsZWRcIixkLnZhbHVlPXI7Zm9yKHZhciBlPTA7ZTx1Lmxlbmd0aDtlKyspKDAsdVtlXSkocil9LGZ1bmN0aW9uKGUpe2ZvcihkLnN0YXR1cz1cInJlamVjdGVkXCIsZC5yZWFzb249ZSxlPTA7ZTx1Lmxlbmd0aDtlKyspKDAsdVtlXSkodm9pZCAwKX0pLGQpO2EzKGUsbixmLHN0KGUpKX1lbHNlIGEzKGUsbixyLHN0KGUpKX1jYXRjaCh0KXthMyhlLG4se3RoZW46ZnVuY3Rpb24oKXt9LHN0YXR1czpcInJlamVjdGVkXCIscmVhc29uOnR9LHN0KCkpfWZpbmFsbHl7VC5wPWEsbnVsbCE9PWkmJm51bGwhPT1sLnR5cGVzJiYoaS50eXBlcz1sLnR5cGVzKSxMLlQ9aX19ZnVuY3Rpb24gYVgoKXt9ZnVuY3Rpb24gYUsoZSxuLHQscil7aWYoNSE9PWUudGFnKXRocm93IEVycm9yKGwoNDc2KSk7dmFyIG89YVEoZSkucXVldWU7YVkoZSxvLG4sUixudWxsPT09dD9hWDpmdW5jdGlvbigpe3JldHVybiBhRyhlKSx0KHIpfSl9ZnVuY3Rpb24gYVEoZSl7dmFyIG49ZS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT1uKXJldHVybiBuO3ZhciB0PXt9O3JldHVybihuPXttZW1vaXplZFN0YXRlOlIsYmFzZVN0YXRlOlIsYmFzZVF1ZXVlOm51bGwscXVldWU6e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphYyxsYXN0UmVuZGVyZWRTdGF0ZTpSfSxuZXh0Om51bGx9KS5uZXh0PXttZW1vaXplZFN0YXRlOnQsYmFzZVN0YXRlOnQsYmFzZVF1ZXVlOm51bGwscXVldWU6e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphYyxsYXN0UmVuZGVyZWRTdGF0ZTp0fSxuZXh0Om51bGx9LGUubWVtb2l6ZWRTdGF0ZT1uLG51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJihlLm1lbW9pemVkU3RhdGU9biksbn1mdW5jdGlvbiBhRyhlKXt2YXIgbj1hUShlKTtudWxsPT09bi5uZXh0JiYobj1lLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlKSxhMyhlLG4ubmV4dC5xdWV1ZSx7fSxzdCgpKX1mdW5jdGlvbiBhSigpe3JldHVybiByWShjNil9ZnVuY3Rpb24gYTAoKXtyZXR1cm4gYW8oKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIGExKCl7cmV0dXJuIGFvKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBhMihlKXtmb3IodmFyIG49ZS5yZXR1cm47bnVsbCE9PW47KXtzd2l0Y2gobi50YWcpe2Nhc2UgMjQ6Y2FzZSAzOnZhciB0PXN0KCkscj1vTyhuLGU9b0EodCksdCk7bnVsbCE9PXImJihzbyhyLG4sdCksb0MocixuLHQpKSxuPXtjYWNoZTpyMSgpfSxlLnBheWxvYWQ9bjtyZXR1cm59bj1uLnJldHVybn19ZnVuY3Rpb24gYTQoZSxuLHQpe3ZhciByPXN0KCk7dD17bGFuZTpyLHJldmVydExhbmU6MCxnZXN0dXJlOm51bGwsYWN0aW9uOnQsaGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxhOShlKT9hOChuLHQpOm51bGwhPT0odD10NShlLG4sdCxyKSkmJihzbyh0LGUsciksYTcodCxuLHIpKX1mdW5jdGlvbiBhNShlLG4sdCl7YTMoZSxuLHQsc3QoKSl9ZnVuY3Rpb24gYTMoZSxuLHQscil7dmFyIG89e2xhbmU6cixyZXZlcnRMYW5lOjAsZ2VzdHVyZTpudWxsLGFjdGlvbjp0LGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYoYTkoZSkpYTgobixvKTtlbHNle3ZhciBhPWUuYWx0ZXJuYXRlO2lmKDA9PT1lLmxhbmVzJiYobnVsbD09PWF8fDA9PT1hLmxhbmVzKSYmbnVsbCE9PShhPW4ubGFzdFJlbmRlcmVkUmVkdWNlcikpdHJ5e3ZhciBpPW4ubGFzdFJlbmRlcmVkU3RhdGUsbD1hKGksdCk7aWYoby5oYXNFYWdlclN0YXRlPSEwLG8uZWFnZXJTdGF0ZT1sLHRPKGwsaSkpcmV0dXJuIHQ0KGUsbixvLDApLG51bGw9PT1sTiYmdDIoKSwhMX1jYXRjaChlKXt9ZmluYWxseXt9aWYobnVsbCE9PSh0PXQ1KGUsbixvLHIpKSlyZXR1cm4gc28odCxlLHIpLGE3KHQsbixyKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBhNihlLG4sdCxyKXtpZihyPXtsYW5lOjIscmV2ZXJ0TGFuZTpzWCgpLGdlc3R1cmU6bnVsbCxhY3Rpb246cixoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9LGE5KGUpKXtpZihuKXRocm93IEVycm9yKGwoNDc5KSl9ZWxzZSBudWxsIT09KG49dDUoZSx0LHIsMikpJiZzbyhuLGUsMil9ZnVuY3Rpb24gYTkoZSl7dmFyIG49ZS5hbHRlcm5hdGU7cmV0dXJuIGU9PT1vWXx8bnVsbCE9PW4mJm49PT1vWX1mdW5jdGlvbiBhOChlLG4pe29HPW9RPSEwO3ZhciB0PWUucGVuZGluZztudWxsPT09dD9uLm5leHQ9bjoobi5uZXh0PXQubmV4dCx0Lm5leHQ9biksZS5wZW5kaW5nPW59ZnVuY3Rpb24gYTcoZSxuLHQpe2lmKDAhPSg0MTk0MDQ4JnQpKXt2YXIgcj1uLmxhbmVzO3ImPWUucGVuZGluZ0xhbmVzLG4ubGFuZXM9dHw9cixlRShlLHQpfX12YXIgaWU9e3JlYWRDb250ZXh0OnJZLHVzZTphbCx1c2VDYWxsYmFjazpvNSx1c2VDb250ZXh0Om81LHVzZUVmZmVjdDpvNSx1c2VJbXBlcmF0aXZlSGFuZGxlOm81LHVzZUxheW91dEVmZmVjdDpvNSx1c2VJbnNlcnRpb25FZmZlY3Q6bzUsdXNlTWVtbzpvNSx1c2VSZWR1Y2VyOm81LHVzZVJlZjpvNSx1c2VTdGF0ZTpvNSx1c2VEZWJ1Z1ZhbHVlOm81LHVzZURlZmVycmVkVmFsdWU6bzUsdXNlVHJhbnNpdGlvbjpvNSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpvNSx1c2VJZDpvNSx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czpvNSx1c2VGb3JtU3RhdGU6bzUsdXNlQWN0aW9uU3RhdGU6bzUsdXNlT3B0aW1pc3RpYzpvNSx1c2VNZW1vQ2FjaGU6bzUsdXNlQ2FjaGVSZWZyZXNoOm81fSxpdD17cmVhZENvbnRleHQ6clksdXNlOmFsLHVzZUNhbGxiYWNrOmZ1bmN0aW9uKGUsbil7cmV0dXJuIGFyKCkubWVtb2l6ZWRTdGF0ZT1bZSx2b2lkIDA9PT1uP251bGw6bl0sZX0sdXNlQ29udGV4dDpyWSx1c2VFZmZlY3Q6YUIsdXNlSW1wZXJhdGl2ZUhhbmRsZTpmdW5jdGlvbihlLG4sdCl7dD1udWxsIT10P3QuY29uY2F0KFtlXSk6bnVsbCxhTig0MTk0MzA4LDQsYUYuYmluZChudWxsLG4sZSksdCl9LHVzZUxheW91dEVmZmVjdDpmdW5jdGlvbihlLG4pe3JldHVybiBhTig0MTk0MzA4LDQsZSxuKX0sdXNlSW5zZXJ0aW9uRWZmZWN0OmZ1bmN0aW9uKGUsbil7YU4oNCwyLGUsbil9LHVzZU1lbW86ZnVuY3Rpb24oZSxuKXt2YXIgdD1hcigpO249dm9pZCAwPT09bj9udWxsOm47dmFyIHI9ZSgpO2lmKG9KKXtlaCghMCk7dHJ5e2UoKX1maW5hbGx5e2VoKCExKX19cmV0dXJuIHQubWVtb2l6ZWRTdGF0ZT1bcixuXSxyfSx1c2VSZWR1Y2VyOmZ1bmN0aW9uKGUsbix0KXt2YXIgcj1hcigpO2lmKHZvaWQgMCE9PXQpe3ZhciBvPXQobik7aWYob0ope2VoKCEwKTt0cnl7dChuKX1maW5hbGx5e2VoKCExKX19fWVsc2Ugbz1uO3JldHVybiByLm1lbW9pemVkU3RhdGU9ci5iYXNlU3RhdGU9byxyLnF1ZXVlPWU9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjplLGxhc3RSZW5kZXJlZFN0YXRlOm99LGU9ZS5kaXNwYXRjaD1hNC5iaW5kKG51bGwsb1ksZSksW3IubWVtb2l6ZWRTdGF0ZSxlXX0sdXNlUmVmOmZ1bmN0aW9uKGUpe3JldHVybiBhcigpLm1lbW9pemVkU3RhdGU9ZT17Y3VycmVudDplfX0sdXNlU3RhdGU6ZnVuY3Rpb24oZSl7dmFyIG49KGU9YXkoZSkpLnF1ZXVlLHQ9YTUuYmluZChudWxsLG9ZLG4pO3JldHVybiBuLmRpc3BhdGNoPXQsW2UubWVtb2l6ZWRTdGF0ZSx0XX0sdXNlRGVidWdWYWx1ZTphVix1c2VEZWZlcnJlZFZhbHVlOmZ1bmN0aW9uKGUsbil7cmV0dXJuIGEkKGFyKCksZSxuKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBlPWF5KCExKTtyZXR1cm4gZT1hWS5iaW5kKG51bGwsb1ksZS5xdWV1ZSwhMCwhMSksYXIoKS5tZW1vaXplZFN0YXRlPWUsWyExLGVdfSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTpmdW5jdGlvbihlLG4sdCl7dmFyIHI9b1ksbz1hcigpO2lmKHJTKXtpZih2b2lkIDA9PT10KXRocm93IEVycm9yKGwoNDA3KSk7dD10KCl9ZWxzZXtpZih0PW4oKSxudWxsPT09bE4pdGhyb3cgRXJyb3IobCgzNDkpKTswIT0oMTI0JmxCKXx8YWgocixuLHQpfW8ubWVtb2l6ZWRTdGF0ZT10O3ZhciBhPXt2YWx1ZTp0LGdldFNuYXBzaG90Om59O3JldHVybiBvLnF1ZXVlPWEsYUIoYW0uYmluZChudWxsLHIsYSxlKSxbZV0pLHIuZmxhZ3N8PTIwNDgsYVQoOSx7ZGVzdHJveTp2b2lkIDB9LGFnLmJpbmQobnVsbCxyLGEsdCxuKSxudWxsKSx0fSx1c2VJZDpmdW5jdGlvbigpe3ZhciBlPWFyKCksbj1sTi5pZGVudGlmaWVyUHJlZml4O2lmKHJTKXt2YXIgdD1yeSxyPXJiO249XCJfXCIrbitcIlJfXCIrKHQ9KHImfigxPDwzMi1lZyhyKS0xKSkudG9TdHJpbmcoMzIpK3QpLDA8KHQ9bzArKykmJihuKz1cIkhcIit0LnRvU3RyaW5nKDMyKSksbis9XCJfXCJ9ZWxzZSBuPVwiX1wiK24rXCJyX1wiKyh0PW80KyspLnRvU3RyaW5nKDMyKStcIl9cIjtyZXR1cm4gZS5tZW1vaXplZFN0YXRlPW59LHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOmFKLHVzZUZvcm1TdGF0ZTphRSx1c2VBY3Rpb25TdGF0ZTphRSx1c2VPcHRpbWlzdGljOmZ1bmN0aW9uKGUpe3ZhciBuPWFyKCk7bi5tZW1vaXplZFN0YXRlPW4uYmFzZVN0YXRlPWU7dmFyIHQ9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpudWxsLGxhc3RSZW5kZXJlZFN0YXRlOm51bGx9O3JldHVybiBuLnF1ZXVlPXQsbj1hNi5iaW5kKG51bGwsb1ksITAsdCksdC5kaXNwYXRjaD1uLFtlLG5dfSx1c2VNZW1vQ2FjaGU6YXMsdXNlQ2FjaGVSZWZyZXNoOmZ1bmN0aW9uKCl7cmV0dXJuIGFyKCkubWVtb2l6ZWRTdGF0ZT1hMi5iaW5kKG51bGwsb1kpfX0saXI9e3JlYWRDb250ZXh0OnJZLHVzZTphbCx1c2VDYWxsYmFjazphcSx1c2VDb250ZXh0OnJZLHVzZUVmZmVjdDphTSx1c2VJbXBlcmF0aXZlSGFuZGxlOmFVLHVzZUluc2VydGlvbkVmZmVjdDphSSx1c2VMYXlvdXRFZmZlY3Q6YUgsdXNlTWVtbzphVyx1c2VSZWR1Y2VyOmF1LHVzZVJlZjphUix1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBhdShhYyl9LHVzZURlYnVnVmFsdWU6YVYsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlLG4pe3JldHVybiBhWihhbygpLG9YLm1lbW9pemVkU3RhdGUsZSxuKX0sdXNlVHJhbnNpdGlvbjpmdW5jdGlvbigpe3ZhciBlPWF1KGFjKVswXSxuPWFvKCkubWVtb2l6ZWRTdGF0ZTtyZXR1cm5bXCJib29sZWFuXCI9PXR5cGVvZiBlP2U6YWkoZSksbl19LHVzZVN5bmNFeHRlcm5hbFN0b3JlOmFwLHVzZUlkOmEwLHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOmFKLHVzZUZvcm1TdGF0ZTphXyx1c2VBY3Rpb25TdGF0ZTphXyx1c2VPcHRpbWlzdGljOmZ1bmN0aW9uKGUsbil7cmV0dXJuIGF4KGFvKCksb1gsZSxuKX0sdXNlTWVtb0NhY2hlOmFzLHVzZUNhY2hlUmVmcmVzaDphMX0saW89e3JlYWRDb250ZXh0OnJZLHVzZTphbCx1c2VDYWxsYmFjazphcSx1c2VDb250ZXh0OnJZLHVzZUVmZmVjdDphTSx1c2VJbXBlcmF0aXZlSGFuZGxlOmFVLHVzZUluc2VydGlvbkVmZmVjdDphSSx1c2VMYXlvdXRFZmZlY3Q6YUgsdXNlTWVtbzphVyx1c2VSZWR1Y2VyOmFmLHVzZVJlZjphUix1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBhZihhYyl9LHVzZURlYnVnVmFsdWU6YVYsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlLG4pe3ZhciB0PWFvKCk7cmV0dXJuIG51bGw9PT1vWD9hJCh0LGUsbik6YVoodCxvWC5tZW1vaXplZFN0YXRlLGUsbil9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1hZihhYylbMF0sbj1hbygpLm1lbW9pemVkU3RhdGU7cmV0dXJuW1wiYm9vbGVhblwiPT10eXBlb2YgZT9lOmFpKGUpLG5dfSx1c2VTeW5jRXh0ZXJuYWxTdG9yZTphcCx1c2VJZDphMCx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czphSix1c2VGb3JtU3RhdGU6YUwsdXNlQWN0aW9uU3RhdGU6YUwsdXNlT3B0aW1pc3RpYzpmdW5jdGlvbihlLG4pe3ZhciB0PWFvKCk7cmV0dXJuIG51bGwhPT1vWD9heCh0LG9YLGUsbik6KHQuYmFzZVN0YXRlPWUsW2UsdC5xdWV1ZS5kaXNwYXRjaF0pfSx1c2VNZW1vQ2FjaGU6YXMsdXNlQ2FjaGVSZWZyZXNoOmExfTtmdW5jdGlvbiBpYShlLG4sdCxyKXt0PW51bGw9PSh0PXQocixuPWUubWVtb2l6ZWRTdGF0ZSkpP246Zih7fSxuLHQpLGUubWVtb2l6ZWRTdGF0ZT10LDA9PT1lLmxhbmVzJiYoZS51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9dCl9dmFyIGlpPXtlbnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oZSxuLHQpe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIHI9c3QoKSxvPW9BKHIpO28ucGF5bG9hZD1uLG51bGwhPXQmJihvLmNhbGxiYWNrPXQpLG51bGwhPT0obj1vTyhlLG8scikpJiYoc28obixlLHIpLG9DKG4sZSxyKSl9LGVucXVldWVSZXBsYWNlU3RhdGU6ZnVuY3Rpb24oZSxuLHQpe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIHI9c3QoKSxvPW9BKHIpO28udGFnPTEsby5wYXlsb2FkPW4sbnVsbCE9dCYmKG8uY2FsbGJhY2s9dCksbnVsbCE9PShuPW9PKGUsbyxyKSkmJihzbyhuLGUsciksb0MobixlLHIpKX0sZW5xdWV1ZUZvcmNlVXBkYXRlOmZ1bmN0aW9uKGUsbil7ZT1lLl9yZWFjdEludGVybmFsczt2YXIgdD1zdCgpLHI9b0EodCk7ci50YWc9MixudWxsIT1uJiYoci5jYWxsYmFjaz1uKSxudWxsIT09KG49b08oZSxyLHQpKSYmKHNvKG4sZSx0KSxvQyhuLGUsdCkpfX07ZnVuY3Rpb24gaWwoZSxuLHQscixvLGEsaSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YoZT1lLnN0YXRlTm9kZSkuc2hvdWxkQ29tcG9uZW50VXBkYXRlP2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKHIsYSxpKTohbi5wcm90b3R5cGV8fCFuLnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudHx8IXRDKHQscil8fCF0QyhvLGEpfWZ1bmN0aW9uIGlzKGUsbix0LHIpe2U9bi5zdGF0ZSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJm4uY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyh0LHIpLFwiZnVuY3Rpb25cIj09dHlwZW9mIG4uVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJm4uVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHModCxyKSxuLnN0YXRlIT09ZSYmaWkuZW5xdWV1ZVJlcGxhY2VTdGF0ZShuLG4uc3RhdGUsbnVsbCl9ZnVuY3Rpb24gaWMoZSxuKXt2YXIgdD1uO2lmKFwicmVmXCJpbiBuKWZvcih2YXIgciBpbiB0PXt9LG4pXCJyZWZcIiE9PXImJih0W3JdPW5bcl0pO2lmKGU9ZS5kZWZhdWx0UHJvcHMpZm9yKHZhciBvIGluIHQ9PT1uJiYodD1mKHt9LHQpKSxlKXZvaWQgMD09PXRbb10mJih0W29dPWVbb10pO3JldHVybiB0fWZ1bmN0aW9uIGl1KGUpe3RHKGUpfWZ1bmN0aW9uIGlkKGUpe2NvbnNvbGUuZXJyb3IoZSl9ZnVuY3Rpb24gaXAoZSl7dEcoZSl9ZnVuY3Rpb24gaWgoZSxuKXt0cnl7KDAsZS5vblVuY2F1Z2h0RXJyb3IpKG4udmFsdWUse2NvbXBvbmVudFN0YWNrOm4uc3RhY2t9KX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfX1mdW5jdGlvbiBpZyhlLG4sdCl7dHJ5eygwLGUub25DYXVnaHRFcnJvcikodC52YWx1ZSx7Y29tcG9uZW50U3RhY2s6dC5zdGFjayxlcnJvckJvdW5kYXJ5OjE9PT1uLnRhZz9uLnN0YXRlTm9kZTpudWxsfSl9Y2F0Y2goZSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGV9KX19ZnVuY3Rpb24gaW0oZSxuLHQpe3JldHVybih0PW9BKHQpKS50YWc9Myx0LnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH0sdC5jYWxsYmFjaz1mdW5jdGlvbigpe2loKGUsbil9LHR9ZnVuY3Rpb24gaXYoZSl7cmV0dXJuKGU9b0EoZSkpLnRhZz0zLGV9ZnVuY3Rpb24gaWIoZSxuLHQscil7dmFyIG89dC50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBvKXt2YXIgYT1yLnZhbHVlO2UucGF5bG9hZD1mdW5jdGlvbigpe3JldHVybiBvKGEpfSxlLmNhbGxiYWNrPWZ1bmN0aW9uKCl7aWcobix0LHIpfX12YXIgaT10LnN0YXRlTm9kZTtudWxsIT09aSYmXCJmdW5jdGlvblwiPT10eXBlb2YgaS5jb21wb25lbnREaWRDYXRjaCYmKGUuY2FsbGJhY2s9ZnVuY3Rpb24oKXtpZyhuLHQsciksXCJmdW5jdGlvblwiIT10eXBlb2YgbyYmKG51bGw9PT1sMj9sMj1uZXcgU2V0KFt0aGlzXSk6bDIuYWRkKHRoaXMpKTt2YXIgZT1yLnN0YWNrO3RoaXMuY29tcG9uZW50RGlkQ2F0Y2goci52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bnVsbCE9PWU/ZTpcIlwifSl9KX12YXIgaXk9RXJyb3IobCg0NjEpKSxpeD0hMTtmdW5jdGlvbiBpdyhlLG4sdCxyKXtuLmNoaWxkPW51bGw9PT1lP294KG4sbnVsbCx0LHIpOm95KG4sZS5jaGlsZCx0LHIpfWZ1bmN0aW9uIGlqKGUsbix0LHIsbyl7dD10LnJlbmRlcjt2YXIgYT1uLnJlZjtpZihcInJlZlwiaW4gcil7dmFyIGk9e307Zm9yKHZhciBsIGluIHIpXCJyZWZcIiE9PWwmJihpW2xdPXJbbF0pfWVsc2UgaT1yO3JldHVybihyWihuKSxyPW82KGUsbix0LGksYSxvKSxsPWFlKCksbnVsbD09PWV8fGl4KT8oclMmJmwmJnJqKG4pLG4uZmxhZ3N8PTEsaXcoZSxuLHIsbyksbi5jaGlsZCk6KGFuKGUsbixvKSxpcShlLG4sbykpfWZ1bmN0aW9uIGlrKGUsbix0LHIsbyl7aWYobnVsbD09PWUpe3ZhciBhPXQudHlwZTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiBhfHxybihhKXx8dm9pZCAwIT09YS5kZWZhdWx0UHJvcHN8fG51bGwhPT10LmNvbXBhcmU/KChlPXJvKHQudHlwZSxudWxsLHIsbixuLm1vZGUsbykpLnJlZj1uLnJlZixlLnJldHVybj1uLG4uY2hpbGQ9ZSk6KG4udGFnPTE1LG4udHlwZT1hLGlBKGUsbixhLHIsbykpfWlmKGE9ZS5jaGlsZCwhaVcoZSxvKSl7dmFyIGk9YS5tZW1vaXplZFByb3BzO2lmKCh0PW51bGwhPT0odD10LmNvbXBhcmUpP3Q6dEMpKGkscikmJmUucmVmPT09bi5yZWYpcmV0dXJuIGlxKGUsbixvKX1yZXR1cm4gbi5mbGFnc3w9MSwoZT1ydChhLHIpKS5yZWY9bi5yZWYsZS5yZXR1cm49bixuLmNoaWxkPWV9ZnVuY3Rpb24gaUEoZSxuLHQscixvKXtpZihudWxsIT09ZSl7dmFyIGE9ZS5tZW1vaXplZFByb3BzO2lmKHRDKGEscikmJmUucmVmPT09bi5yZWYpaWYoaXg9ITEsbi5wZW5kaW5nUHJvcHM9cj1hLCFpVyhlLG8pKXJldHVybiBuLmxhbmVzPWUubGFuZXMsaXEoZSxuLG8pO2Vsc2UgMCE9KDEzMTA3MiZlLmZsYWdzKSYmKGl4PSEwKX1yZXR1cm4gaVAoZSxuLHQscixvKX1mdW5jdGlvbiBpTyhlLG4sdCxyKXt2YXIgbz1yLmNoaWxkcmVuLGE9bnVsbCE9PWU/ZS5tZW1vaXplZFN0YXRlOm51bGw7aWYoXCJoaWRkZW5cIj09PXIubW9kZSl7aWYoMCE9KDEyOCZuLmZsYWdzKSl7aWYocj1udWxsIT09YT9hLmJhc2VMYW5lc3x0OnQsbnVsbCE9PWUpe2ZvcihhPTAsbz1uLmNoaWxkPWUuY2hpbGQ7bnVsbCE9PW87KWE9YXxvLmxhbmVzfG8uY2hpbGRMYW5lcyxvPW8uc2libGluZztuLmNoaWxkTGFuZXM9YSZ+cn1lbHNlIG4uY2hpbGRMYW5lcz0wLG4uY2hpbGQ9bnVsbDtyZXR1cm4gaUMoZSxuLHIsdCl9aWYoMD09KDB4MjAwMDAwMDAmdCkpcmV0dXJuIG4ubGFuZXM9bi5jaGlsZExhbmVzPTB4MjAwMDAwMDAsaUMoZSxuLG51bGwhPT1hP2EuYmFzZUxhbmVzfHQ6dCx0KTtuLm1lbW9pemVkU3RhdGU9e2Jhc2VMYW5lczowLGNhY2hlUG9vbDpudWxsfSxudWxsIT09ZSYmb24obixudWxsIT09YT9hLmNhY2hlUG9vbDpudWxsKSxudWxsIT09YT9vTihuLGEpOm9EKCksb1Uobil9ZWxzZSBudWxsIT09YT8ob24obixhLmNhY2hlUG9vbCksb04obixhKSxvVihuKSxuLm1lbW9pemVkU3RhdGU9bnVsbCk6KG51bGwhPT1lJiZvbihuLG51bGwpLG9EKCksb1YobikpO3JldHVybiBpdyhlLG4sbyx0KSxuLmNoaWxkfWZ1bmN0aW9uIGlDKGUsbix0LHIpe3ZhciBvPW9lKCk7cmV0dXJuIG4ubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOnQsY2FjaGVQb29sOm89bnVsbD09PW8/bnVsbDp7cGFyZW50OnIwLl9jdXJyZW50VmFsdWUscG9vbDpvfX0sbnVsbCE9PWUmJm9uKG4sbnVsbCksb0QoKSxvVShuKSxudWxsIT09ZSYmclcoZSxuLHIsITApLG51bGx9ZnVuY3Rpb24gaVMoZSxuKXtyZXR1cm4obj1pSSh7bW9kZTpuLm1vZGUsY2hpbGRyZW46bi5jaGlsZHJlbn0sZS5tb2RlKSkucmVmPWUucmVmLGUuY2hpbGQ9bixuLnJldHVybj1lLG59ZnVuY3Rpb24gaUUoZSxuLHQpe3JldHVybiBveShuLGUuY2hpbGQsbnVsbCx0KSxlPWlTKG4sbi5wZW5kaW5nUHJvcHMpLGUuZmxhZ3N8PTIsb3Eobiksbi5tZW1vaXplZFN0YXRlPW51bGwsZX1mdW5jdGlvbiBpXyhlLG4pe3ZhciB0PW4ucmVmO2lmKG51bGw9PT10KW51bGwhPT1lJiZudWxsIT09ZS5yZWYmJihuLmZsYWdzfD00MTk0ODE2KTtlbHNle2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJlwib2JqZWN0XCIhPXR5cGVvZiB0KXRocm93IEVycm9yKGwoMjg0KSk7KG51bGw9PT1lfHxlLnJlZiE9PXQpJiYobi5mbGFnc3w9NDE5NDgxNil9fWZ1bmN0aW9uIGlQKGUsbix0LHIsbyl7cmV0dXJuKHJaKG4pLHQ9bzYoZSxuLHQscix2b2lkIDAsbykscj1hZSgpLG51bGw9PT1lfHxpeCk/KHJTJiZyJiZyaihuKSxuLmZsYWdzfD0xLGl3KGUsbix0LG8pLG4uY2hpbGQpOihhbihlLG4sbyksaXEoZSxuLG8pKX1mdW5jdGlvbiBpeihlLG4sdCxyLG8sYSl7cmV0dXJuKHJaKG4pLG4udXBkYXRlUXVldWU9bnVsbCx0PW84KG4scix0LG8pLG85KGUpLHI9YWUoKSxudWxsPT09ZXx8aXgpPyhyUyYmciYmcmoobiksbi5mbGFnc3w9MSxpdyhlLG4sdCxhKSxuLmNoaWxkKTooYW4oZSxuLGEpLGlxKGUsbixhKSl9ZnVuY3Rpb24gaUwoZSxuLHQscixvKXtpZihyWihuKSxudWxsPT09bi5zdGF0ZU5vZGUpe3ZhciBhPXQ4LGk9dC5jb250ZXh0VHlwZTtcIm9iamVjdFwiPT10eXBlb2YgaSYmbnVsbCE9PWkmJihhPXJZKGkpKSxuLm1lbW9pemVkU3RhdGU9bnVsbCE9PShhPW5ldyB0KHIsYSkpLnN0YXRlJiZ2b2lkIDAhPT1hLnN0YXRlP2Euc3RhdGU6bnVsbCxhLnVwZGF0ZXI9aWksbi5zdGF0ZU5vZGU9YSxhLl9yZWFjdEludGVybmFscz1uLChhPW4uc3RhdGVOb2RlKS5wcm9wcz1yLGEuc3RhdGU9bi5tZW1vaXplZFN0YXRlLGEucmVmcz17fSxvaihuKSxpPXQuY29udGV4dFR5cGUsYS5jb250ZXh0PVwib2JqZWN0XCI9PXR5cGVvZiBpJiZudWxsIT09aT9yWShpKTp0OCxhLnN0YXRlPW4ubWVtb2l6ZWRTdGF0ZSxcImZ1bmN0aW9uXCI9PXR5cGVvZihpPXQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKSYmKGlhKG4sdCxpLHIpLGEuc3RhdGU9bi5tZW1vaXplZFN0YXRlKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc3x8XCJmdW5jdGlvblwiPT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8XCJmdW5jdGlvblwiIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLmNvbXBvbmVudFdpbGxNb3VudHx8KGk9YS5zdGF0ZSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudFdpbGxNb3VudCYmYS5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpLGkhPT1hLnN0YXRlJiZpaS5lbnF1ZXVlUmVwbGFjZVN0YXRlKGEsYS5zdGF0ZSxudWxsKSxvUChuLHIsYSxvKSxvXygpLGEuc3RhdGU9bi5tZW1vaXplZFN0YXRlKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50JiYobi5mbGFnc3w9NDE5NDMwOCkscj0hMH1lbHNlIGlmKG51bGw9PT1lKXthPW4uc3RhdGVOb2RlO3ZhciBsPW4ubWVtb2l6ZWRQcm9wcyxzPWljKHQsbCk7YS5wcm9wcz1zO3ZhciBjPWEuY29udGV4dCx1PXQuY29udGV4dFR5cGU7aT10OCxcIm9iamVjdFwiPT10eXBlb2YgdSYmbnVsbCE9PXUmJihpPXJZKHUpKTt2YXIgZD10LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wczt1PVwiZnVuY3Rpb25cIj09dHlwZW9mIGR8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUsbD1uLnBlbmRpbmdQcm9wcyE9PWwsdXx8XCJmdW5jdGlvblwiIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmXCJmdW5jdGlvblwiIT10eXBlb2YgYS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzfHwobHx8YyE9PWkpJiZpcyhuLGEscixpKSxvdz0hMTt2YXIgZj1uLm1lbW9pemVkU3RhdGU7YS5zdGF0ZT1mLG9QKG4scixhLG8pLG9fKCksYz1uLm1lbW9pemVkU3RhdGUsbHx8ZiE9PWN8fG93PyhcImZ1bmN0aW9uXCI9PXR5cGVvZiBkJiYoaWEobix0LGQsciksYz1uLm1lbW9pemVkU3RhdGUpLChzPW93fHxpbChuLHQscyxyLGYsYyxpKSk/KHV8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmXCJmdW5jdGlvblwiIT10eXBlb2YgYS5jb21wb25lbnRXaWxsTW91bnR8fChcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudFdpbGxNb3VudCYmYS5jb21wb25lbnRXaWxsTW91bnQoKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50JiYobi5mbGFnc3w9NDE5NDMwOCkpOihcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZE1vdW50JiYobi5mbGFnc3w9NDE5NDMwOCksbi5tZW1vaXplZFByb3BzPXIsbi5tZW1vaXplZFN0YXRlPWMpLGEucHJvcHM9cixhLnN0YXRlPWMsYS5jb250ZXh0PWkscj1zKTooXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKG4uZmxhZ3N8PTQxOTQzMDgpLHI9ITEpfWVsc2V7YT1uLnN0YXRlTm9kZSxvayhlLG4pLHU9aWModCxpPW4ubWVtb2l6ZWRQcm9wcyksYS5wcm9wcz11LGQ9bi5wZW5kaW5nUHJvcHMsZj1hLmNvbnRleHQsYz10LmNvbnRleHRUeXBlLHM9dDgsXCJvYmplY3RcIj09dHlwZW9mIGMmJm51bGwhPT1jJiYocz1yWShjKSksKGM9XCJmdW5jdGlvblwiPT10eXBlb2YobD10LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyl8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUpfHxcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBhLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHN8fChpIT09ZHx8ZiE9PXMpJiZpcyhuLGEscixzKSxvdz0hMSxmPW4ubWVtb2l6ZWRTdGF0ZSxhLnN0YXRlPWYsb1AobixyLGEsbyksb18oKTt2YXIgcD1uLm1lbW9pemVkU3RhdGU7aSE9PWR8fGYhPT1wfHxvd3x8bnVsbCE9PWUmJm51bGwhPT1lLmRlcGVuZGVuY2llcyYmciQoZS5kZXBlbmRlbmNpZXMpPyhcImZ1bmN0aW9uXCI9PXR5cGVvZiBsJiYoaWEobix0LGwscikscD1uLm1lbW9pemVkU3RhdGUpLCh1PW93fHxpbChuLHQsdSxyLGYscCxzKXx8bnVsbCE9PWUmJm51bGwhPT1lLmRlcGVuZGVuY2llcyYmciQoZS5kZXBlbmRlbmNpZXMpKT8oY3x8XCJmdW5jdGlvblwiIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSYmXCJmdW5jdGlvblwiIT10eXBlb2YgYS5jb21wb25lbnRXaWxsVXBkYXRlfHwoXCJmdW5jdGlvblwiPT10eXBlb2YgYS5jb21wb25lbnRXaWxsVXBkYXRlJiZhLmNvbXBvbmVudFdpbGxVcGRhdGUocixwLHMpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJmEuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUocixwLHMpKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZFVwZGF0ZSYmKG4uZmxhZ3N8PTQpLFwiZnVuY3Rpb25cIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJihuLmZsYWdzfD0xMDI0KSk6KFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHxpPT09ZS5tZW1vaXplZFByb3BzJiZmPT09ZS5tZW1vaXplZFN0YXRlfHwobi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8aT09PWUubWVtb2l6ZWRQcm9wcyYmZj09PWUubWVtb2l6ZWRTdGF0ZXx8KG4uZmxhZ3N8PTEwMjQpLG4ubWVtb2l6ZWRQcm9wcz1yLG4ubWVtb2l6ZWRTdGF0ZT1wKSxhLnByb3BzPXIsYS5zdGF0ZT1wLGEuY29udGV4dD1zLHI9dSk6KFwiZnVuY3Rpb25cIiE9dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHxpPT09ZS5tZW1vaXplZFByb3BzJiZmPT09ZS5tZW1vaXplZFN0YXRlfHwobi5mbGFnc3w9NCksXCJmdW5jdGlvblwiIT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8aT09PWUubWVtb2l6ZWRQcm9wcyYmZj09PWUubWVtb2l6ZWRTdGF0ZXx8KG4uZmxhZ3N8PTEwMjQpLHI9ITEpfXJldHVybiBhPXIsaV8oZSxuKSxyPTAhPSgxMjgmbi5mbGFncyksYXx8cj8oYT1uLnN0YXRlTm9kZSx0PXImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHQuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yP251bGw6YS5yZW5kZXIoKSxuLmZsYWdzfD0xLG51bGwhPT1lJiZyPyhuLmNoaWxkPW95KG4sZS5jaGlsZCxudWxsLG8pLG4uY2hpbGQ9b3kobixudWxsLHQsbykpOml3KGUsbix0LG8pLG4ubWVtb2l6ZWRTdGF0ZT1hLnN0YXRlLGU9bi5jaGlsZCk6ZT1pcShlLG4sbyksZX1mdW5jdGlvbiBpVChlLG4sdCxyKXtyZXR1cm4gck4oKSxuLmZsYWdzfD0yNTYsaXcoZSxuLHQsciksbi5jaGlsZH12YXIgaVI9e2RlaHlkcmF0ZWQ6bnVsbCx0cmVlQ29udGV4dDpudWxsLHJldHJ5TGFuZTowLGh5ZHJhdGlvbkVycm9yczpudWxsfTtmdW5jdGlvbiBpTihlKXtyZXR1cm57YmFzZUxhbmVzOmUsY2FjaGVQb29sOm90KCl9fWZ1bmN0aW9uIGlEKGUsbix0KXtyZXR1cm4gZT1udWxsIT09ZT9lLmNoaWxkTGFuZXMmfnQ6MCxuJiYoZXw9bFkpLGV9ZnVuY3Rpb24gaUIoZSxuLHQpe3ZhciByLG89bi5wZW5kaW5nUHJvcHMsYT0hMSxpPTAhPSgxMjgmbi5mbGFncyk7aWYoKHI9aSl8fChyPShudWxsPT09ZXx8bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSkmJjAhPSgyJm9XLmN1cnJlbnQpKSxyJiYoYT0hMCxuLmZsYWdzJj0tMTI5KSxyPTAhPSgzMiZuLmZsYWdzKSxuLmZsYWdzJj0tMzMsbnVsbD09PWUpe2lmKHJTKXtpZihhP29IKG4pOm9WKG4pLChlPXJDKT9udWxsIT09KGU9bnVsbCE9PShlPWNDKGUscl8pKSYmXCImXCIhPT1lLmRhdGE/ZTpudWxsKSYmKG4ubWVtb2l6ZWRTdGF0ZT17ZGVoeWRyYXRlZDplLHRyZWVDb250ZXh0Om51bGwhPT1ydj97aWQ6cmIsb3ZlcmZsb3c6cnl9Om51bGwscmV0cnlMYW5lOjB4MjAwMDAwMDAsaHlkcmF0aW9uRXJyb3JzOm51bGx9LCh0PXJsKGUpKS5yZXR1cm49bixuLmNoaWxkPXQsck89bixyQz1udWxsKTplPW51bGwsbnVsbD09PWUpdGhyb3cgcnoobik7cmV0dXJuIGNFKGUpP24ubGFuZXM9MzI6bi5sYW5lcz0weDIwMDAwMDAwLG51bGx9dmFyIHM9by5jaGlsZHJlbjtyZXR1cm4obz1vLmZhbGxiYWNrLGEpPyhvVihuKSxzPWlJKHttb2RlOlwiaGlkZGVuXCIsY2hpbGRyZW46c30sYT1uLm1vZGUpLG89cmEobyxhLHQsbnVsbCkscy5yZXR1cm49bixvLnJldHVybj1uLHMuc2libGluZz1vLG4uY2hpbGQ9cywocz1uLmNoaWxkKS5tZW1vaXplZFN0YXRlPWlOKHQpLHMuY2hpbGRMYW5lcz1pRChlLHIsdCksbi5tZW1vaXplZFN0YXRlPWlSLG8pOihvSChuKSxpTShuLHMpKX12YXIgYz1lLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PWMmJm51bGwhPT0ocz1jLmRlaHlkcmF0ZWQpKXtpZihpKTI1NiZuLmZsYWdzPyhvSChuKSxuLmZsYWdzJj0tMjU3LG49aUgoZSxuLHQpKTpudWxsIT09bi5tZW1vaXplZFN0YXRlPyhvVihuKSxuLmNoaWxkPWUuY2hpbGQsbi5mbGFnc3w9MTI4LG49bnVsbCk6KG9WKG4pLHM9by5mYWxsYmFjayxhPW4ubW9kZSxvPWlJKHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOm8uY2hpbGRyZW59LGEpLHM9cmEocyxhLHQsbnVsbCkscy5mbGFnc3w9MixvLnJldHVybj1uLHMucmV0dXJuPW4sby5zaWJsaW5nPXMsbi5jaGlsZD1vLG95KG4sZS5jaGlsZCxudWxsLHQpLChvPW4uY2hpbGQpLm1lbW9pemVkU3RhdGU9aU4odCksby5jaGlsZExhbmVzPWlEKGUscix0KSxuLm1lbW9pemVkU3RhdGU9aVIsbj1zKTtlbHNlIGlmKG9IKG4pLGNFKHMpKXtpZihyPXMubmV4dFNpYmxpbmcmJnMubmV4dFNpYmxpbmcuZGF0YXNldCl2YXIgdT1yLmRnc3Q7cj11LChvPUVycm9yKGwoNDE5KSkpLnN0YWNrPVwiXCIsby5kaWdlc3Q9cixyQih7dmFsdWU6byxzb3VyY2U6bnVsbCxzdGFjazpudWxsfSksbj1pSChlLG4sdCl9ZWxzZSBpZihpeHx8clcoZSxuLHQsITEpLHI9MCE9KHQmZS5jaGlsZExhbmVzKSxpeHx8cil7aWYobnVsbCE9PShyPWxOKSYmMCE9PShvPWVfKHIsdCkpJiZvIT09Yy5yZXRyeUxhbmUpdGhyb3cgYy5yZXRyeUxhbmU9byx0MyhlLG8pLHNvKHIsZSxvKSxpeTtjUyhzKXx8c2coKSxuPWlIKGUsbix0KX1lbHNlIGNTKHMpPyhuLmZsYWdzfD0xOTIsbi5jaGlsZD1lLmNoaWxkLG49bnVsbCk6KGU9Yy50cmVlQ29udGV4dCxyQz1jXyhzLm5leHRTaWJsaW5nKSxyTz1uLHJTPSEwLHJFPW51bGwscl89ITEsbnVsbCE9PWUmJnJBKG4sZSksbj1pTShuLG8uY2hpbGRyZW4pLG4uZmxhZ3N8PTQwOTYpO3JldHVybiBufXJldHVybiBhPyhvVihuKSxzPW8uZmFsbGJhY2ssYT1uLm1vZGUsdT0oYz1lLmNoaWxkKS5zaWJsaW5nLChvPXJ0KGMse21vZGU6XCJoaWRkZW5cIixjaGlsZHJlbjpvLmNoaWxkcmVufSkpLnN1YnRyZWVGbGFncz0weDNlMDAwMDAmYy5zdWJ0cmVlRmxhZ3MsbnVsbCE9PXU/cz1ydCh1LHMpOihzPXJhKHMsYSx0LG51bGwpLHMuZmxhZ3N8PTIpLHMucmV0dXJuPW4sby5yZXR1cm49bixvLnNpYmxpbmc9cyxuLmNoaWxkPW8sbz1zLHM9bi5jaGlsZCxudWxsPT09KGE9ZS5jaGlsZC5tZW1vaXplZFN0YXRlKT9hPWlOKHQpOihudWxsIT09KGM9YS5jYWNoZVBvb2wpPyh1PXIwLl9jdXJyZW50VmFsdWUsYz1jLnBhcmVudCE9PXU/e3BhcmVudDp1LHBvb2w6dX06Yyk6Yz1vdCgpLGE9e2Jhc2VMYW5lczphLmJhc2VMYW5lc3x0LGNhY2hlUG9vbDpjfSkscy5tZW1vaXplZFN0YXRlPWEscy5jaGlsZExhbmVzPWlEKGUscix0KSxuLm1lbW9pemVkU3RhdGU9aVIsbyk6KG9IKG4pLGU9KHQ9ZS5jaGlsZCkuc2libGluZywodD1ydCh0LHttb2RlOlwidmlzaWJsZVwiLGNoaWxkcmVuOm8uY2hpbGRyZW59KSkucmV0dXJuPW4sdC5zaWJsaW5nPW51bGwsbnVsbCE9PWUmJihudWxsPT09KHI9bi5kZWxldGlvbnMpPyhuLmRlbGV0aW9ucz1bZV0sbi5mbGFnc3w9MTYpOnIucHVzaChlKSksbi5jaGlsZD10LG4ubWVtb2l6ZWRTdGF0ZT1udWxsLHQpfWZ1bmN0aW9uIGlNKGUsbil7cmV0dXJuKG49aUkoe21vZGU6XCJ2aXNpYmxlXCIsY2hpbGRyZW46bn0sZS5tb2RlKSkucmV0dXJuPWUsZS5jaGlsZD1ufWZ1bmN0aW9uIGlJKGUsbil7cmV0dXJuKGU9cmUoMjIsZSxudWxsLG4pKS5sYW5lcz0wLGUuc3RhdGVOb2RlPXtfdmlzaWJpbGl0eToxLF9wZW5kaW5nTWFya2VyczpudWxsLF9yZXRyeUNhY2hlOm51bGwsX3RyYW5zaXRpb25zOm51bGx9LGV9ZnVuY3Rpb24gaUgoZSxuLHQpe3JldHVybiBveShuLGUuY2hpbGQsbnVsbCx0KSxlPWlNKG4sbi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4pLGUuZmxhZ3N8PTIsbi5tZW1vaXplZFN0YXRlPW51bGwsZX1mdW5jdGlvbiBpRihlLG4sdCl7ZS5sYW5lc3w9bjt2YXIgcj1lLmFsdGVybmF0ZTtudWxsIT09ciYmKHIubGFuZXN8PW4pLHJWKGUucmV0dXJuLG4sdCl9ZnVuY3Rpb24gaVUoZSxuLHQscixvLGEpe3ZhciBpPWUubWVtb2l6ZWRTdGF0ZTtudWxsPT09aT9lLm1lbW9pemVkU3RhdGU9e2lzQmFja3dhcmRzOm4scmVuZGVyaW5nOm51bGwscmVuZGVyaW5nU3RhcnRUaW1lOjAsbGFzdDpyLHRhaWw6dCx0YWlsTW9kZTpvLHRyZWVGb3JrQ291bnQ6YX06KGkuaXNCYWNrd2FyZHM9bixpLnJlbmRlcmluZz1udWxsLGkucmVuZGVyaW5nU3RhcnRUaW1lPTAsaS5sYXN0PXIsaS50YWlsPXQsaS50YWlsTW9kZT1vLGkudHJlZUZvcmtDb3VudD1hKX1mdW5jdGlvbiBpVihlLG4sdCl7dmFyIHI9bi5wZW5kaW5nUHJvcHMsbz1yLnJldmVhbE9yZGVyLGE9ci50YWlsO3I9ci5jaGlsZHJlbjt2YXIgaT1vVy5jdXJyZW50LGw9MCE9KDImaSk7aWYobD8oaT0xJml8MixuLmZsYWdzfD0xMjgpOmkmPTEsSShvVyxpKSxpdyhlLG4scix0KSxyPXJTP3JoOjAsIWwmJm51bGwhPT1lJiYwIT0oMTI4JmUuZmxhZ3MpKWU6Zm9yKGU9bi5jaGlsZDtudWxsIT09ZTspe2lmKDEzPT09ZS50YWcpbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmaUYoZSx0LG4pO2Vsc2UgaWYoMTk9PT1lLnRhZylpRihlLHQsbik7ZWxzZSBpZihudWxsIT09ZS5jaGlsZCl7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGQ7Y29udGludWV9aWYoZT09PW4pYnJlYWs7Zm9yKDtudWxsPT09ZS5zaWJsaW5nOyl7aWYobnVsbD09PWUucmV0dXJufHxlLnJldHVybj09PW4pYnJlYWsgZTtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmd9c3dpdGNoKG8pe2Nhc2VcImZvcndhcmRzXCI6Zm9yKG89bnVsbCx0PW4uY2hpbGQ7bnVsbCE9PXQ7KW51bGwhPT0oZT10LmFsdGVybmF0ZSkmJm51bGw9PT1vJChlKSYmKG89dCksdD10LnNpYmxpbmc7bnVsbD09PSh0PW8pPyhvPW4uY2hpbGQsbi5jaGlsZD1udWxsKToobz10LnNpYmxpbmcsdC5zaWJsaW5nPW51bGwpLGlVKG4sITEsbyx0LGEscik7YnJlYWs7Y2FzZVwiYmFja3dhcmRzXCI6Y2FzZVwidW5zdGFibGVfbGVnYWN5LWJhY2t3YXJkc1wiOmZvcih0PW51bGwsbz1uLmNoaWxkLG4uY2hpbGQ9bnVsbDtudWxsIT09bzspe2lmKG51bGwhPT0oZT1vLmFsdGVybmF0ZSkmJm51bGw9PT1vJChlKSl7bi5jaGlsZD1vO2JyZWFrfWU9by5zaWJsaW5nLG8uc2libGluZz10LHQ9byxvPWV9aVUobiwhMCx0LG51bGwsYSxyKTticmVhaztjYXNlXCJ0b2dldGhlclwiOmlVKG4sITEsbnVsbCxudWxsLHZvaWQgMCxyKTticmVhaztkZWZhdWx0Om4ubWVtb2l6ZWRTdGF0ZT1udWxsfXJldHVybiBuLmNoaWxkfWZ1bmN0aW9uIGlxKGUsbix0KXtpZihudWxsIT09ZSYmKG4uZGVwZW5kZW5jaWVzPWUuZGVwZW5kZW5jaWVzKSxsV3w9bi5sYW5lcywwPT0odCZuLmNoaWxkTGFuZXMpKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtlbHNlIGlmKHJXKGUsbix0LCExKSwwPT0odCZuLmNoaWxkTGFuZXMpKXJldHVybiBudWxsfWlmKG51bGwhPT1lJiZuLmNoaWxkIT09ZS5jaGlsZCl0aHJvdyBFcnJvcihsKDE1MykpO2lmKG51bGwhPT1uLmNoaWxkKXtmb3IodD1ydChlPW4uY2hpbGQsZS5wZW5kaW5nUHJvcHMpLG4uY2hpbGQ9dCx0LnJldHVybj1uO251bGwhPT1lLnNpYmxpbmc7KWU9ZS5zaWJsaW5nLCh0PXQuc2libGluZz1ydChlLGUucGVuZGluZ1Byb3BzKSkucmV0dXJuPW47dC5zaWJsaW5nPW51bGx9cmV0dXJuIG4uY2hpbGR9ZnVuY3Rpb24gaVcoZSxuKXtyZXR1cm4gMCE9KGUubGFuZXMmbil8fCEhKG51bGwhPT0oZT1lLmRlcGVuZGVuY2llcykmJnIkKGUpKX1mdW5jdGlvbiBpJChlLG4sdCl7aWYobnVsbCE9PWUpaWYoZS5tZW1vaXplZFByb3BzIT09bi5wZW5kaW5nUHJvcHMpaXg9ITA7ZWxzZXtpZighaVcoZSx0KSYmMD09KDEyOCZuLmZsYWdzKSlyZXR1cm4gaXg9ITEsZnVuY3Rpb24oZSxuLHQpe3N3aXRjaChuLnRhZyl7Y2FzZSAzOnEobixuLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxyRihuLHIwLGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSksck4oKTticmVhaztjYXNlIDI3OmNhc2UgNTokKG4pO2JyZWFrO2Nhc2UgNDpxKG4sbi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDpyRihuLG4udHlwZSxuLm1lbW9pemVkUHJvcHMudmFsdWUpO2JyZWFrO2Nhc2UgMzE6aWYobnVsbCE9PW4ubWVtb2l6ZWRTdGF0ZSlyZXR1cm4gbi5mbGFnc3w9MTI4LG9GKG4pLG51bGw7YnJlYWs7Y2FzZSAxMzp2YXIgcj1uLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXIpe2lmKG51bGwhPT1yLmRlaHlkcmF0ZWQpcmV0dXJuIG9IKG4pLG4uZmxhZ3N8PTEyOCxudWxsO2lmKDAhPSh0Jm4uY2hpbGQuY2hpbGRMYW5lcykpcmV0dXJuIGlCKGUsbix0KTtyZXR1cm4gb0gobiksbnVsbCE9PShlPWlxKGUsbix0KSk/ZS5zaWJsaW5nOm51bGx9b0gobik7YnJlYWs7Y2FzZSAxOTp2YXIgbz0wIT0oMTI4JmUuZmxhZ3MpO2lmKChyPTAhPSh0Jm4uY2hpbGRMYW5lcykpfHwoclcoZSxuLHQsITEpLHI9MCE9KHQmbi5jaGlsZExhbmVzKSksbyl7aWYocilyZXR1cm4gaVYoZSxuLHQpO24uZmxhZ3N8PTEyOH1pZihudWxsIT09KG89bi5tZW1vaXplZFN0YXRlKSYmKG8ucmVuZGVyaW5nPW51bGwsby50YWlsPW51bGwsby5sYXN0RWZmZWN0PW51bGwpLEkob1csb1cuY3VycmVudCksIXIpcmV0dXJuIG51bGw7YnJlYWs7Y2FzZSAyMjpyZXR1cm4gbi5sYW5lcz0wLGlPKGUsbix0LG4ucGVuZGluZ1Byb3BzKTtjYXNlIDI0OnJGKG4scjAsZS5tZW1vaXplZFN0YXRlLmNhY2hlKX1yZXR1cm4gaXEoZSxuLHQpfShlLG4sdCk7aXg9MCE9KDEzMTA3MiZlLmZsYWdzKX1lbHNlIGl4PSExLHJTJiYwIT0oMTA0ODU3NiZuLmZsYWdzKSYmcncobixyaCxuLmluZGV4KTtzd2l0Y2gobi5sYW5lcz0wLG4udGFnKXtjYXNlIDE2OmU6e2U9bi5wZW5kaW5nUHJvcHM7dmFyIHI9bi5lbGVtZW50VHlwZSxvPXIuX2luaXQ7aWYocj1vKHIuX3BheWxvYWQpLG4udHlwZT1yLFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpcm4ocik/KGU9aWMocixlKSxuLnRhZz0xLG49aUwobnVsbCxuLHIsZSx0KSk6KG4udGFnPTAsbj1pUChudWxsLG4scixlLHQpKTtlbHNle2lmKG51bGwhPXIpe2lmKChvPXIuJCR0eXBlb2YpPT09dyl7bi50YWc9MTEsbj1paihudWxsLG4scixlLHQpO2JyZWFrIGV9ZWxzZSBpZihvPT09QSl7bi50YWc9MTQsbj1payhudWxsLG4scixlLHQpO2JyZWFrIGV9fXRocm93IEVycm9yKGwoMzA2LG49ZnVuY3Rpb24gZShuKXtpZihudWxsPT1uKXJldHVybiBudWxsO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIG4pcmV0dXJuIG4uJCR0eXBlb2Y9PT1QP251bGw6bi5kaXNwbGF5TmFtZXx8bi5uYW1lfHxudWxsO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBuKXJldHVybiBuO3N3aXRjaChuKXtjYXNlIG06cmV0dXJuXCJGcmFnbWVudFwiO2Nhc2UgYjpyZXR1cm5cIlByb2ZpbGVyXCI7Y2FzZSB2OnJldHVyblwiU3RyaWN0TW9kZVwiO2Nhc2UgajpyZXR1cm5cIlN1c3BlbnNlXCI7Y2FzZSBrOnJldHVyblwiU3VzcGVuc2VMaXN0XCI7Y2FzZSBDOnJldHVyblwiQWN0aXZpdHlcIn1pZihcIm9iamVjdFwiPT10eXBlb2Ygbilzd2l0Y2gobi4kJHR5cGVvZil7Y2FzZSBnOnJldHVyblwiUG9ydGFsXCI7Y2FzZSB4OnJldHVybiBuLmRpc3BsYXlOYW1lfHxcIkNvbnRleHRcIjtjYXNlIHk6cmV0dXJuKG4uX2NvbnRleHQuZGlzcGxheU5hbWV8fFwiQ29udGV4dFwiKStcIi5Db25zdW1lclwiO2Nhc2Ugdzp2YXIgdD1uLnJlbmRlcjtyZXR1cm4obj1uLmRpc3BsYXlOYW1lKXx8KG49XCJcIiE9PShuPXQuZGlzcGxheU5hbWV8fHQubmFtZXx8XCJcIik/XCJGb3J3YXJkUmVmKFwiK24rXCIpXCI6XCJGb3J3YXJkUmVmXCIpLG47Y2FzZSBBOnJldHVybiBudWxsIT09KHQ9bi5kaXNwbGF5TmFtZXx8bnVsbCk/dDplKG4udHlwZSl8fFwiTWVtb1wiO2Nhc2UgTzp0PW4uX3BheWxvYWQsbj1uLl9pbml0O3RyeXtyZXR1cm4gZShuKHQpKX1jYXRjaChlKXt9fXJldHVybiBudWxsfShyKXx8cixcIlwiKSl9fXJldHVybiBuO2Nhc2UgMDpyZXR1cm4gaVAoZSxuLG4udHlwZSxuLnBlbmRpbmdQcm9wcyx0KTtjYXNlIDE6cmV0dXJuIG89aWMocj1uLnR5cGUsbi5wZW5kaW5nUHJvcHMpLGlMKGUsbixyLG8sdCk7Y2FzZSAzOmU6e2lmKHEobixuLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxudWxsPT09ZSl0aHJvdyBFcnJvcihsKDM4NykpO3I9bi5wZW5kaW5nUHJvcHM7dmFyIGE9bi5tZW1vaXplZFN0YXRlO289YS5lbGVtZW50LG9rKGUsbiksb1AobixyLG51bGwsdCk7dmFyIGk9bi5tZW1vaXplZFN0YXRlO2lmKHJGKG4scjAscj1pLmNhY2hlKSxyIT09YS5jYWNoZSYmcnEobixbcjBdLHQsITApLG9fKCkscj1pLmVsZW1lbnQsYS5pc0RlaHlkcmF0ZWQpaWYoYT17ZWxlbWVudDpyLGlzRGVoeWRyYXRlZDohMSxjYWNoZTppLmNhY2hlfSxuLnVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZT1hLG4ubWVtb2l6ZWRTdGF0ZT1hLDI1NiZuLmZsYWdzKXtuPWlUKGUsbixyLHQpO2JyZWFrIGV9ZWxzZSBpZihyIT09byl7ckIobz1ydShFcnJvcihsKDQyNCkpLG4pKSxuPWlUKGUsbixyLHQpO2JyZWFrIGV9ZWxzZSBmb3IockM9Y18oKGU9OT09PShlPW4uc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLm5vZGVUeXBlP2UuYm9keTpcIkhUTUxcIj09PWUubm9kZU5hbWU/ZS5vd25lckRvY3VtZW50LmJvZHk6ZSkuZmlyc3RDaGlsZCksck89bixyUz0hMCxyRT1udWxsLHJfPSEwLHQ9b3gobixudWxsLHIsdCksbi5jaGlsZD10O3Q7KXQuZmxhZ3M9LTMmdC5mbGFnc3w0MDk2LHQ9dC5zaWJsaW5nO2Vsc2V7aWYock4oKSxyPT09byl7bj1pcShlLG4sdCk7YnJlYWsgZX1pdyhlLG4scix0KX1uPW4uY2hpbGR9cmV0dXJuIG47Y2FzZSAyNjpyZXR1cm4gaV8oZSxuKSxudWxsPT09ZT8odD1jRihuLnR5cGUsbnVsbCxuLnBlbmRpbmdQcm9wcyxudWxsKSk/bi5tZW1vaXplZFN0YXRlPXQ6clN8fCh0PW4udHlwZSxlPW4ucGVuZGluZ1Byb3BzLChyPWNmKFUuY3VycmVudCkuY3JlYXRlRWxlbWVudCh0KSlbZU5dPW4scltlRF09ZSxjYyhyLHQsZSksZVkociksbi5zdGF0ZU5vZGU9cik6bi5tZW1vaXplZFN0YXRlPWNGKG4udHlwZSxlLm1lbW9pemVkUHJvcHMsbi5wZW5kaW5nUHJvcHMsZS5tZW1vaXplZFN0YXRlKSxudWxsO2Nhc2UgMjc6cmV0dXJuICQobiksbnVsbD09PWUmJnJTJiYocj1uLnN0YXRlTm9kZT1jVChuLnR5cGUsbi5wZW5kaW5nUHJvcHMsVS5jdXJyZW50KSxyTz1uLHJfPSEwLG89ckMsY2oobi50eXBlKT8oY1A9byxyQz1jXyhyLmZpcnN0Q2hpbGQpKTpyQz1vKSxpdyhlLG4sbi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sdCksaV8oZSxuKSxudWxsPT09ZSYmKG4uZmxhZ3N8PTQxOTQzMDQpLG4uY2hpbGQ7Y2FzZSA1OnJldHVybiBudWxsPT09ZSYmclMmJigobz1yPXJDKSYmKG51bGwhPT0ocj1mdW5jdGlvbihlLG4sdCxyKXtmb3IoOzE9PT1lLm5vZGVUeXBlOyl7aWYoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09bi50b0xvd2VyQ2FzZSgpKXtpZighciYmKFwiSU5QVVRcIiE9PWUubm9kZU5hbWV8fFwiaGlkZGVuXCIhPT1lLnR5cGUpKWJyZWFrfWVsc2UgaWYocil7aWYoIWVbZVVdKXN3aXRjaChuKXtjYXNlXCJtZXRhXCI6aWYoIWUuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpYnJlYWs7cmV0dXJuIGU7Y2FzZVwibGlua1wiOmlmKFwic3R5bGVzaGVldFwiPT09KG89ZS5nZXRBdHRyaWJ1dGUoXCJyZWxcIikpJiZlLmhhc0F0dHJpYnV0ZShcImRhdGEtcHJlY2VkZW5jZVwiKXx8byE9PXQucmVsfHxlLmdldEF0dHJpYnV0ZShcImhyZWZcIikhPT0obnVsbD09dC5ocmVmfHxcIlwiPT09dC5ocmVmP251bGw6dC5ocmVmKXx8ZS5nZXRBdHRyaWJ1dGUoXCJjcm9zc29yaWdpblwiKSE9PShudWxsPT10LmNyb3NzT3JpZ2luP251bGw6dC5jcm9zc09yaWdpbil8fGUuZ2V0QXR0cmlidXRlKFwidGl0bGVcIikhPT0obnVsbD09dC50aXRsZT9udWxsOnQudGl0bGUpKWJyZWFrO3JldHVybiBlO2Nhc2VcInN0eWxlXCI6aWYoZS5oYXNBdHRyaWJ1dGUoXCJkYXRhLXByZWNlZGVuY2VcIikpYnJlYWs7cmV0dXJuIGU7Y2FzZVwic2NyaXB0XCI6aWYoKChvPWUuZ2V0QXR0cmlidXRlKFwic3JjXCIpKSE9PShudWxsPT10LnNyYz9udWxsOnQuc3JjKXx8ZS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpIT09KG51bGw9PXQudHlwZT9udWxsOnQudHlwZSl8fGUuZ2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIikhPT0obnVsbD09dC5jcm9zc09yaWdpbj9udWxsOnQuY3Jvc3NPcmlnaW4pKSYmbyYmZS5oYXNBdHRyaWJ1dGUoXCJhc3luY1wiKSYmIWUuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpYnJlYWs7cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm4gZX19ZWxzZXtpZihcImlucHV0XCIhPT1ufHxcImhpZGRlblwiIT09ZS50eXBlKXJldHVybiBlO3ZhciBvPW51bGw9PXQubmFtZT9udWxsOlwiXCIrdC5uYW1lO2lmKFwiaGlkZGVuXCI9PT10LnR5cGUmJmUuZ2V0QXR0cmlidXRlKFwibmFtZVwiKT09PW8pcmV0dXJuIGV9aWYobnVsbD09PShlPWNfKGUubmV4dFNpYmxpbmcpKSlicmVha31yZXR1cm4gbnVsbH0ocixuLnR5cGUsbi5wZW5kaW5nUHJvcHMscl8pKT8obi5zdGF0ZU5vZGU9cixyTz1uLHJDPWNfKHIuZmlyc3RDaGlsZCkscl89ITEsbz0hMCk6bz0hMSksb3x8cnoobikpLCQobiksbz1uLnR5cGUsYT1uLnBlbmRpbmdQcm9wcyxpPW51bGwhPT1lP2UubWVtb2l6ZWRQcm9wczpudWxsLHI9YS5jaGlsZHJlbixjZyhvLGEpP3I9bnVsbDpudWxsIT09aSYmY2cobyxpKSYmKG4uZmxhZ3N8PTMyKSxudWxsIT09bi5tZW1vaXplZFN0YXRlJiYoYzYuX2N1cnJlbnRWYWx1ZT1vPW82KGUsbixvNyxudWxsLG51bGwsdCkpLGlfKGUsbiksaXcoZSxuLHIsdCksbi5jaGlsZDtjYXNlIDY6cmV0dXJuIG51bGw9PT1lJiZyUyYmKChlPXQ9ckMpJiYobnVsbCE9PSh0PWZ1bmN0aW9uKGUsbix0KXtpZihcIlwiPT09bilyZXR1cm4gbnVsbDtmb3IoOzMhPT1lLm5vZGVUeXBlOylpZigoMSE9PWUubm9kZVR5cGV8fFwiSU5QVVRcIiE9PWUubm9kZU5hbWV8fFwiaGlkZGVuXCIhPT1lLnR5cGUpJiYhdHx8bnVsbD09PShlPWNfKGUubmV4dFNpYmxpbmcpKSlyZXR1cm4gbnVsbDtyZXR1cm4gZX0odCxuLnBlbmRpbmdQcm9wcyxyXykpPyhuLnN0YXRlTm9kZT10LHJPPW4sckM9bnVsbCxlPSEwKTplPSExKSxlfHxyeihuKSksbnVsbDtjYXNlIDEzOnJldHVybiBpQihlLG4sdCk7Y2FzZSA0OnJldHVybiBxKG4sbi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykscj1uLnBlbmRpbmdQcm9wcyxudWxsPT09ZT9uLmNoaWxkPW95KG4sbnVsbCxyLHQpOml3KGUsbixyLHQpLG4uY2hpbGQ7Y2FzZSAxMTpyZXR1cm4gaWooZSxuLG4udHlwZSxuLnBlbmRpbmdQcm9wcyx0KTtjYXNlIDc6cmV0dXJuIGl3KGUsbixuLnBlbmRpbmdQcm9wcyx0KSxuLmNoaWxkO2Nhc2UgODpjYXNlIDEyOnJldHVybiBpdyhlLG4sbi5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sdCksbi5jaGlsZDtjYXNlIDEwOnJldHVybiByPW4ucGVuZGluZ1Byb3BzLHJGKG4sbi50eXBlLHIudmFsdWUpLGl3KGUsbixyLmNoaWxkcmVuLHQpLG4uY2hpbGQ7Y2FzZSA5OnJldHVybiBvPW4udHlwZS5fY29udGV4dCxyPW4ucGVuZGluZ1Byb3BzLmNoaWxkcmVuLHJaKG4pLHI9cihvPXJZKG8pKSxuLmZsYWdzfD0xLGl3KGUsbixyLHQpLG4uY2hpbGQ7Y2FzZSAxNDpyZXR1cm4gaWsoZSxuLG4udHlwZSxuLnBlbmRpbmdQcm9wcyx0KTtjYXNlIDE1OnJldHVybiBpQShlLG4sbi50eXBlLG4ucGVuZGluZ1Byb3BzLHQpO2Nhc2UgMTk6cmV0dXJuIGlWKGUsbix0KTtjYXNlIDMxOmlmKG89bi5wZW5kaW5nUHJvcHMsaT0wIT0oMTI4Jm4uZmxhZ3MpLG4uZmxhZ3MmPS0xMjksbnVsbD09PWUpaWYoclMpe2lmKFwiaGlkZGVuXCI9PT1vLm1vZGUpaVMobixvKTtlbHNlIGlmKG9GKG4pLCh0PXJDKT9udWxsIT09KHQ9bnVsbCE9PSh0PWNDKHQscl8pKSYmXCImXCI9PT10LmRhdGE/dDpudWxsKSYmKG4ubWVtb2l6ZWRTdGF0ZT17ZGVoeWRyYXRlZDp0LHRyZWVDb250ZXh0Om51bGwhPT1ydj97aWQ6cmIsb3ZlcmZsb3c6cnl9Om51bGwscmV0cnlMYW5lOjB4MjAwMDAwMDAsaHlkcmF0aW9uRXJyb3JzOm51bGx9LChlPXJsKHQpKS5yZXR1cm49bixuLmNoaWxkPWUsck89bixyQz1udWxsKTp0PW51bGwsbnVsbD09PXQpdGhyb3cgcnoobik7bi5sYW5lcz0weDIwMDAwMDAwLG49bnVsbH1lbHNlIG49aVMobixvKTtlbHNlIGlmKG51bGwhPT0ocj1lLm1lbW9pemVkU3RhdGUpKWlmKGE9ci5kZWh5ZHJhdGVkLG9GKG4pLGkpaWYoMjU2Jm4uZmxhZ3Mpbi5mbGFncyY9LTI1NyxuPWlFKGUsbix0KTtlbHNlIGlmKG51bGwhPT1uLm1lbW9pemVkU3RhdGUpbi5jaGlsZD1lLmNoaWxkLG4uZmxhZ3N8PTEyOCxuPW51bGw7ZWxzZSB0aHJvdyBFcnJvcihsKDU1OCkpO2Vsc2UgaWYoaXh8fHJXKGUsbix0LCExKSxpPTAhPSh0JmUuY2hpbGRMYW5lcyksaXh8fGkpe2lmKG51bGwhPT0obz1sTikmJjAhPT0oYT1lXyhvLHQpKSYmYSE9PXIucmV0cnlMYW5lKXRocm93IHIucmV0cnlMYW5lPWEsdDMoZSxhKSxzbyhvLGUsYSksaXk7c2coKSxuPWlFKGUsbix0KX1lbHNlIHQ9ci50cmVlQ29udGV4dCxyQz1jXyhhLm5leHRTaWJsaW5nKSxyTz1uLHJTPSEwLHJFPW51bGwscl89ITEsbnVsbCE9PXQmJnJBKG4sdCksbj1pUyhuLG8pLG4uZmxhZ3N8PTQwOTY7ZWxzZSh0PXJ0KGUuY2hpbGQse21vZGU6by5tb2RlLGNoaWxkcmVuOm8uY2hpbGRyZW59KSkucmVmPW4ucmVmLG4uY2hpbGQ9dCx0LnJldHVybj1uLG49dDtyZXR1cm4gbjtjYXNlIDIyOnJldHVybiBpTyhlLG4sdCxuLnBlbmRpbmdQcm9wcyk7Y2FzZSAyNDpyZXR1cm4gcloobikscj1yWShyMCksbnVsbD09PWU/KG51bGw9PT0obz1vZSgpKSYmKG89bE4sYT1yMSgpLG8ucG9vbGVkQ2FjaGU9YSxhLnJlZkNvdW50KyssbnVsbCE9PWEmJihvLnBvb2xlZENhY2hlTGFuZXN8PXQpLG89YSksbi5tZW1vaXplZFN0YXRlPXtwYXJlbnQ6cixjYWNoZTpvfSxvaihuKSxyRihuLHIwLG8pKTooMCE9KGUubGFuZXMmdCkmJihvayhlLG4pLG9QKG4sbnVsbCxudWxsLHQpLG9fKCkpLG89ZS5tZW1vaXplZFN0YXRlLGE9bi5tZW1vaXplZFN0YXRlLG8ucGFyZW50IT09cj8obz17cGFyZW50OnIsY2FjaGU6cn0sbi5tZW1vaXplZFN0YXRlPW8sMD09PW4ubGFuZXMmJihuLm1lbW9pemVkU3RhdGU9bi51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9byksckYobixyMCxyKSk6KHJGKG4scjAscj1hLmNhY2hlKSxyIT09by5jYWNoZSYmcnEobixbcjBdLHQsITApKSksaXcoZSxuLG4ucGVuZGluZ1Byb3BzLmNoaWxkcmVuLHQpLG4uY2hpbGQ7Y2FzZSAyOTp0aHJvdyBuLnBlbmRpbmdQcm9wc310aHJvdyBFcnJvcihsKDE1NixuLnRhZykpfWZ1bmN0aW9uIGlaKGUpe2UuZmxhZ3N8PTR9ZnVuY3Rpb24gaVkoZSxuLHQscixvKXtpZigobj0wIT0oMzImZS5tb2RlKSkmJihuPSExKSxuKXtpZihlLmZsYWdzfD0weDEwMDAwMDAsKDB4MTNmZmZmNDAmbyk9PT1vKWlmKGUuc3RhdGVOb2RlLmNvbXBsZXRlKWUuZmxhZ3N8PTgxOTI7ZWxzZSBpZihzZigpKWUuZmxhZ3N8PTgxOTI7ZWxzZSB0aHJvdyBvYz1vaSxvb31lbHNlIGUuZmxhZ3MmPS0weDEwMDAwMDF9ZnVuY3Rpb24gaVgoZSxuKXtpZihcInN0eWxlc2hlZXRcIiE9PW4udHlwZXx8MCE9KDQmbi5zdGF0ZS5sb2FkaW5nKSllLmZsYWdzJj0tMHgxMDAwMDAxO2Vsc2UgaWYoZS5mbGFnc3w9MHgxMDAwMDAwLCFjMChuKSlpZihzZigpKWUuZmxhZ3N8PTgxOTI7ZWxzZSB0aHJvdyBvYz1vaSxvb31mdW5jdGlvbiBpSyhlLG4pe251bGwhPT1uJiYoZS5mbGFnc3w9NCksMTYzODQmZS5mbGFncyYmKG49MjIhPT1lLnRhZz9lQSgpOjB4MjAwMDAwMDAsZS5sYW5lc3w9bixsWHw9bil9ZnVuY3Rpb24gaVEoZSxuKXtpZighclMpc3dpdGNoKGUudGFpbE1vZGUpe2Nhc2VcImhpZGRlblwiOm49ZS50YWlsO2Zvcih2YXIgdD1udWxsO251bGwhPT1uOyludWxsIT09bi5hbHRlcm5hdGUmJih0PW4pLG49bi5zaWJsaW5nO251bGw9PT10P2UudGFpbD1udWxsOnQuc2libGluZz1udWxsO2JyZWFrO2Nhc2VcImNvbGxhcHNlZFwiOnQ9ZS50YWlsO2Zvcih2YXIgcj1udWxsO251bGwhPT10OyludWxsIT09dC5hbHRlcm5hdGUmJihyPXQpLHQ9dC5zaWJsaW5nO251bGw9PT1yP258fG51bGw9PT1lLnRhaWw/ZS50YWlsPW51bGw6ZS50YWlsLnNpYmxpbmc9bnVsbDpyLnNpYmxpbmc9bnVsbH19ZnVuY3Rpb24gaUcoZSl7dmFyIG49bnVsbCE9PWUuYWx0ZXJuYXRlJiZlLmFsdGVybmF0ZS5jaGlsZD09PWUuY2hpbGQsdD0wLHI9MDtpZihuKWZvcih2YXIgbz1lLmNoaWxkO251bGwhPT1vOyl0fD1vLmxhbmVzfG8uY2hpbGRMYW5lcyxyfD0weDNlMDAwMDAmby5zdWJ0cmVlRmxhZ3Mscnw9MHgzZTAwMDAwJm8uZmxhZ3Msby5yZXR1cm49ZSxvPW8uc2libGluZztlbHNlIGZvcihvPWUuY2hpbGQ7bnVsbCE9PW87KXR8PW8ubGFuZXN8by5jaGlsZExhbmVzLHJ8PW8uc3VidHJlZUZsYWdzLHJ8PW8uZmxhZ3Msby5yZXR1cm49ZSxvPW8uc2libGluZztyZXR1cm4gZS5zdWJ0cmVlRmxhZ3N8PXIsZS5jaGlsZExhbmVzPXQsbn1mdW5jdGlvbiBpSihlLG4pe3N3aXRjaChyayhuKSxuLnRhZyl7Y2FzZSAzOnJVKHIwKSxXKCk7YnJlYWs7Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNTpaKG4pO2JyZWFrO2Nhc2UgNDpXKCk7YnJlYWs7Y2FzZSAzMTpudWxsIT09bi5tZW1vaXplZFN0YXRlJiZvcShuKTticmVhaztjYXNlIDEzOm9xKG4pO2JyZWFrO2Nhc2UgMTk6TShvVyk7YnJlYWs7Y2FzZSAxMDpyVShuLnR5cGUpO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzpvcShuKSxvQigpLG51bGwhPT1lJiZNKHI3KTticmVhaztjYXNlIDI0OnJVKHIwKX19ZnVuY3Rpb24gaTAoZSxuKXt0cnl7dmFyIHQ9bi51cGRhdGVRdWV1ZSxyPW51bGwhPT10P3QubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1yKXt2YXIgbz1yLm5leHQ7dD1vO2Rve2lmKCh0LnRhZyZlKT09PWUpe3I9dm9pZCAwO3ZhciBhPXQuY3JlYXRlO3QuaW5zdC5kZXN0cm95PXI9YSgpfXQ9dC5uZXh0fXdoaWxlKHQhPT1vKX19Y2F0Y2goZSl7c1AobixuLnJldHVybixlKX19ZnVuY3Rpb24gaTEoZSxuLHQpe3RyeXt2YXIgcj1uLnVwZGF0ZVF1ZXVlLG89bnVsbCE9PXI/ci5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PW8pe3ZhciBhPW8ubmV4dDtyPWE7ZG97aWYoKHIudGFnJmUpPT09ZSl7dmFyIGk9ci5pbnN0LGw9aS5kZXN0cm95O2lmKHZvaWQgMCE9PWwpe2kuZGVzdHJveT12b2lkIDAsbz1uO3RyeXtsKCl9Y2F0Y2goZSl7c1Aobyx0LGUpfX19cj1yLm5leHR9d2hpbGUociE9PWEpfX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfX1mdW5jdGlvbiBpMihlKXt2YXIgbj1lLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT1uKXt2YXIgdD1lLnN0YXRlTm9kZTt0cnl7b0wobix0KX1jYXRjaChuKXtzUChlLGUucmV0dXJuLG4pfX19ZnVuY3Rpb24gaTQoZSxuLHQpe3QucHJvcHM9aWMoZS50eXBlLGUubWVtb2l6ZWRQcm9wcyksdC5zdGF0ZT1lLm1lbW9pemVkU3RhdGU7dHJ5e3QuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaCh0KXtzUChlLG4sdCl9fWZ1bmN0aW9uIGk1KGUsbil7dHJ5e3ZhciB0PWUucmVmO2lmKG51bGwhPT10KXtzd2l0Y2goZS50YWcpe2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6dmFyIHI9ZS5zdGF0ZU5vZGU7YnJlYWs7ZGVmYXVsdDpyPWUuc3RhdGVOb2RlfVwiZnVuY3Rpb25cIj09dHlwZW9mIHQ/ZS5yZWZDbGVhbnVwPXQocik6dC5jdXJyZW50PXJ9fWNhdGNoKHQpe3NQKGUsbix0KX19ZnVuY3Rpb24gaTMoZSxuKXt2YXIgdD1lLnJlZixyPWUucmVmQ2xlYW51cDtpZihudWxsIT09dClpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiByKXRyeXtyKCl9Y2F0Y2godCl7c1AoZSxuLHQpfWZpbmFsbHl7ZS5yZWZDbGVhbnVwPW51bGwsbnVsbCE9KGU9ZS5hbHRlcm5hdGUpJiYoZS5yZWZDbGVhbnVwPW51bGwpfWVsc2UgaWYoXCJmdW5jdGlvblwiPT10eXBlb2YgdCl0cnl7dChudWxsKX1jYXRjaCh0KXtzUChlLG4sdCl9ZWxzZSB0LmN1cnJlbnQ9bnVsbH1mdW5jdGlvbiBpNihlKXt2YXIgbj1lLnR5cGUsdD1lLm1lbW9pemVkUHJvcHMscj1lLnN0YXRlTm9kZTt0cnl7c3dpdGNoKG4pe2Nhc2VcImJ1dHRvblwiOmNhc2VcImlucHV0XCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwidGV4dGFyZWFcIjp0LmF1dG9Gb2N1cyYmci5mb2N1cygpO2JyZWFrO2Nhc2VcImltZ1wiOnQuc3JjP3Iuc3JjPXQuc3JjOnQuc3JjU2V0JiYoci5zcmNzZXQ9dC5zcmNTZXQpfX1jYXRjaChuKXtzUChlLGUucmV0dXJuLG4pfX1mdW5jdGlvbiBpOShlLG4sdCl7dHJ5e3ZhciByPWUuc3RhdGVOb2RlOyhmdW5jdGlvbihlLG4sdCxyKXtzd2l0Y2gobil7Y2FzZVwiZGl2XCI6Y2FzZVwic3BhblwiOmNhc2VcInN2Z1wiOmNhc2VcInBhdGhcIjpjYXNlXCJhXCI6Y2FzZVwiZ1wiOmNhc2VcInBcIjpjYXNlXCJsaVwiOmJyZWFrO2Nhc2VcImlucHV0XCI6dmFyIG89bnVsbCxhPW51bGwsaT1udWxsLHM9bnVsbCxjPW51bGwsdT1udWxsLGQ9bnVsbDtmb3IoaCBpbiB0KXt2YXIgZj10W2hdO2lmKHQuaGFzT3duUHJvcGVydHkoaCkmJm51bGwhPWYpc3dpdGNoKGgpe2Nhc2VcImNoZWNrZWRcIjpjYXNlXCJ2YWx1ZVwiOmJyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOmM9ZjtkZWZhdWx0OnIuaGFzT3duUHJvcGVydHkoaCl8fGNsKGUsbixoLG51bGwscixmKX19Zm9yKHZhciBwIGluIHIpe3ZhciBoPXJbcF07aWYoZj10W3BdLHIuaGFzT3duUHJvcGVydHkocCkmJihudWxsIT1ofHxudWxsIT1mKSlzd2l0Y2gocCl7Y2FzZVwidHlwZVwiOmE9aDticmVhaztjYXNlXCJuYW1lXCI6bz1oO2JyZWFrO2Nhc2VcImNoZWNrZWRcIjp1PWg7YnJlYWs7Y2FzZVwiZGVmYXVsdENoZWNrZWRcIjpkPWg7YnJlYWs7Y2FzZVwidmFsdWVcIjppPWg7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6cz1oO2JyZWFrO2Nhc2VcImNoaWxkcmVuXCI6Y2FzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjppZihudWxsIT1oKXRocm93IEVycm9yKGwoMTM3LG4pKTticmVhaztkZWZhdWx0OmghPT1mJiZjbChlLG4scCxoLHIsZil9fW50KGUsaSxzLGMsdSxkLGEsbyk7cmV0dXJuO2Nhc2VcInNlbGVjdFwiOmZvcihhIGluIGg9aT1zPXA9bnVsbCx0KWlmKGM9dFthXSx0Lmhhc093blByb3BlcnR5KGEpJiZudWxsIT1jKXN3aXRjaChhKXtjYXNlXCJ2YWx1ZVwiOmJyZWFrO2Nhc2VcIm11bHRpcGxlXCI6aD1jO2RlZmF1bHQ6ci5oYXNPd25Qcm9wZXJ0eShhKXx8Y2woZSxuLGEsbnVsbCxyLGMpfWZvcihvIGluIHIpaWYoYT1yW29dLGM9dFtvXSxyLmhhc093blByb3BlcnR5KG8pJiYobnVsbCE9YXx8bnVsbCE9Yykpc3dpdGNoKG8pe2Nhc2VcInZhbHVlXCI6cD1hO2JyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOnM9YTticmVhaztjYXNlXCJtdWx0aXBsZVwiOmk9YTtkZWZhdWx0OmEhPT1jJiZjbChlLG4sbyxhLHIsYyl9bj1zLHQ9aSxyPWgsbnVsbCE9cD9uYShlLCEhdCxwLCExKTohIXIhPSEhdCYmKG51bGwhPW4/bmEoZSwhIXQsbiwhMCk6bmEoZSwhIXQsdD9bXTpcIlwiLCExKSk7cmV0dXJuO2Nhc2VcInRleHRhcmVhXCI6Zm9yKHMgaW4gaD1wPW51bGwsdClpZihvPXRbc10sdC5oYXNPd25Qcm9wZXJ0eShzKSYmbnVsbCE9byYmIXIuaGFzT3duUHJvcGVydHkocykpc3dpdGNoKHMpe2Nhc2VcInZhbHVlXCI6Y2FzZVwiY2hpbGRyZW5cIjpicmVhaztkZWZhdWx0OmNsKGUsbixzLG51bGwscixvKX1mb3IoaSBpbiByKWlmKG89cltpXSxhPXRbaV0sci5oYXNPd25Qcm9wZXJ0eShpKSYmKG51bGwhPW98fG51bGwhPWEpKXN3aXRjaChpKXtjYXNlXCJ2YWx1ZVwiOnA9bzticmVhaztjYXNlXCJkZWZhdWx0VmFsdWVcIjpoPW87YnJlYWs7Y2FzZVwiY2hpbGRyZW5cIjpicmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPW8pdGhyb3cgRXJyb3IobCg5MSkpO2JyZWFrO2RlZmF1bHQ6byE9PWEmJmNsKGUsbixpLG8scixhKX1uaShlLHAsaCk7cmV0dXJuO2Nhc2VcIm9wdGlvblwiOmZvcih2YXIgZyBpbiB0KXA9dFtnXSx0Lmhhc093blByb3BlcnR5KGcpJiZudWxsIT1wJiYhci5oYXNPd25Qcm9wZXJ0eShnKSYmKFwic2VsZWN0ZWRcIj09PWc/ZS5zZWxlY3RlZD0hMTpjbChlLG4sZyxudWxsLHIscCkpO2ZvcihjIGluIHIpcD1yW2NdLGg9dFtjXSxyLmhhc093blByb3BlcnR5KGMpJiZwIT09aCYmKG51bGwhPXB8fG51bGwhPWgpJiYoXCJzZWxlY3RlZFwiPT09Yz9lLnNlbGVjdGVkPXAmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHAmJlwic3ltYm9sXCIhPXR5cGVvZiBwOmNsKGUsbixjLHAscixoKSk7cmV0dXJuO2Nhc2VcImltZ1wiOmNhc2VcImxpbmtcIjpjYXNlXCJhcmVhXCI6Y2FzZVwiYmFzZVwiOmNhc2VcImJyXCI6Y2FzZVwiY29sXCI6Y2FzZVwiZW1iZWRcIjpjYXNlXCJoclwiOmNhc2VcImtleWdlblwiOmNhc2VcIm1ldGFcIjpjYXNlXCJwYXJhbVwiOmNhc2VcInNvdXJjZVwiOmNhc2VcInRyYWNrXCI6Y2FzZVwid2JyXCI6Y2FzZVwibWVudWl0ZW1cIjpmb3IodmFyIG0gaW4gdClwPXRbbV0sdC5oYXNPd25Qcm9wZXJ0eShtKSYmbnVsbCE9cCYmIXIuaGFzT3duUHJvcGVydHkobSkmJmNsKGUsbixtLG51bGwscixwKTtmb3IodSBpbiByKWlmKHA9clt1XSxoPXRbdV0sci5oYXNPd25Qcm9wZXJ0eSh1KSYmcCE9PWgmJihudWxsIT1wfHxudWxsIT1oKSlzd2l0Y2godSl7Y2FzZVwiY2hpbGRyZW5cIjpjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXApdGhyb3cgRXJyb3IobCgxMzcsbikpO2JyZWFrO2RlZmF1bHQ6Y2woZSxuLHUscCxyLGgpfXJldHVybjtkZWZhdWx0OmlmKG5mKG4pKXtmb3IodmFyIHYgaW4gdClwPXRbdl0sdC5oYXNPd25Qcm9wZXJ0eSh2KSYmdm9pZCAwIT09cCYmIXIuaGFzT3duUHJvcGVydHkodikmJmNzKGUsbix2LHZvaWQgMCxyLHApO2ZvcihkIGluIHIpcD1yW2RdLGg9dFtkXSxyLmhhc093blByb3BlcnR5KGQpJiZwIT09aCYmKHZvaWQgMCE9PXB8fHZvaWQgMCE9PWgpJiZjcyhlLG4sZCxwLHIsaCk7cmV0dXJufX1mb3IodmFyIGIgaW4gdClwPXRbYl0sdC5oYXNPd25Qcm9wZXJ0eShiKSYmbnVsbCE9cCYmIXIuaGFzT3duUHJvcGVydHkoYikmJmNsKGUsbixiLG51bGwscixwKTtmb3IoZiBpbiByKXA9cltmXSxoPXRbZl0sci5oYXNPd25Qcm9wZXJ0eShmKSYmcCE9PWgmJihudWxsIT1wfHxudWxsIT1oKSYmY2woZSxuLGYscCxyLGgpfSkocixlLnR5cGUsdCxuKSxyW2VEXT1ufWNhdGNoKG4pe3NQKGUsZS5yZXR1cm4sbil9fWZ1bmN0aW9uIGk4KGUpe3JldHVybiA1PT09ZS50YWd8fDM9PT1lLnRhZ3x8MjY9PT1lLnRhZ3x8Mjc9PT1lLnRhZyYmY2ooZS50eXBlKXx8ND09PWUudGFnfWZ1bmN0aW9uIGk3KGUpe2U6Zm9yKDs7KXtmb3IoO251bGw9PT1lLnNpYmxpbmc7KXtpZihudWxsPT09ZS5yZXR1cm58fGk4KGUucmV0dXJuKSlyZXR1cm4gbnVsbDtlPWUucmV0dXJufWZvcihlLnNpYmxpbmcucmV0dXJuPWUucmV0dXJuLGU9ZS5zaWJsaW5nOzUhPT1lLnRhZyYmNiE9PWUudGFnJiYxOCE9PWUudGFnOyl7aWYoMjc9PT1lLnRhZyYmY2ooZS50eXBlKXx8MiZlLmZsYWdzfHxudWxsPT09ZS5jaGlsZHx8ND09PWUudGFnKWNvbnRpbnVlIGU7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGR9aWYoISgyJmUuZmxhZ3MpKXJldHVybiBlLnN0YXRlTm9kZX19ZnVuY3Rpb24gbGUoZSxuLHQpe3ZhciByPWUudGFnO2lmKDU9PT1yfHw2PT09cillPWUuc3RhdGVOb2RlLG4/dC5pbnNlcnRCZWZvcmUoZSxuKTp0LmFwcGVuZENoaWxkKGUpO2Vsc2UgaWYoNCE9PXImJigyNz09PXImJmNqKGUudHlwZSkmJih0PWUuc3RhdGVOb2RlKSxudWxsIT09KGU9ZS5jaGlsZCkpKWZvcihsZShlLG4sdCksZT1lLnNpYmxpbmc7bnVsbCE9PWU7KWxlKGUsbix0KSxlPWUuc2libGluZ31mdW5jdGlvbiBsbihlKXt2YXIgbj1lLnN0YXRlTm9kZSx0PWUubWVtb2l6ZWRQcm9wczt0cnl7Zm9yKHZhciByPWUudHlwZSxvPW4uYXR0cmlidXRlcztvLmxlbmd0aDspbi5yZW1vdmVBdHRyaWJ1dGVOb2RlKG9bMF0pO2NjKG4scix0KSxuW2VOXT1lLG5bZURdPXR9Y2F0Y2gobil7c1AoZSxlLnJldHVybixuKX19dmFyIGx0PSExLGxyPSExLGxvPSExLGxhPVwiZnVuY3Rpb25cIj09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsbGk9bnVsbDtmdW5jdGlvbiBsbChlLG4sdCl7dmFyIHI9dC5mbGFncztzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6bHkoZSx0KSw0JnImJmkwKDUsdCk7YnJlYWs7Y2FzZSAxOmlmKGx5KGUsdCksNCZyKWlmKGU9dC5zdGF0ZU5vZGUsbnVsbD09PW4pdHJ5e2UuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfWVsc2V7dmFyIG89aWModC50eXBlLG4ubWVtb2l6ZWRQcm9wcyk7bj1uLm1lbW9pemVkU3RhdGU7dHJ5e2UuY29tcG9uZW50RGlkVXBkYXRlKG8sbixlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfX02NCZyJiZpMih0KSw1MTImciYmaTUodCx0LnJldHVybik7YnJlYWs7Y2FzZSAzOmlmKGx5KGUsdCksNjQmciYmbnVsbCE9PShlPXQudXBkYXRlUXVldWUpKXtpZihuPW51bGwsbnVsbCE9PXQuY2hpbGQpc3dpdGNoKHQuY2hpbGQudGFnKXtjYXNlIDI3OmNhc2UgNTpjYXNlIDE6bj10LmNoaWxkLnN0YXRlTm9kZX10cnl7b0woZSxuKX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfX1icmVhaztjYXNlIDI3Om51bGw9PT1uJiY0JnImJmxuKHQpO2Nhc2UgMjY6Y2FzZSA1Omx5KGUsdCksbnVsbD09PW4mJjQmciYmaTYodCksNTEyJnImJmk1KHQsdC5yZXR1cm4pO2JyZWFrO2Nhc2UgMTI6ZGVmYXVsdDpseShlLHQpO2JyZWFrO2Nhc2UgMzE6bHkoZSx0KSw0JnImJmxmKGUsdCk7YnJlYWs7Y2FzZSAxMzpseShlLHQpLDQmciYmbHAoZSx0KSw2NCZyJiZudWxsIT09KGU9dC5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PShlPWUuZGVoeWRyYXRlZCkmJmZ1bmN0aW9uKGUsbil7dmFyIHQ9ZS5vd25lckRvY3VtZW50O2lmKFwiJH5cIj09PWUuZGF0YSllLl9yZWFjdFJldHJ5PW47ZWxzZSBpZihcIiQ/XCIhPT1lLmRhdGF8fFwibG9hZGluZ1wiIT09dC5yZWFkeVN0YXRlKW4oKTtlbHNle3ZhciByPWZ1bmN0aW9uKCl7bigpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIkRPTUNvbnRlbnRMb2FkZWRcIixyKX07dC5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLHIpLGUuX3JlYWN0UmV0cnk9cn19KGUsdD1zUi5iaW5kKG51bGwsdCkpO2JyZWFrO2Nhc2UgMjI6aWYoIShyPW51bGwhPT10Lm1lbW9pemVkU3RhdGV8fGx0KSl7bj1udWxsIT09biYmbnVsbCE9PW4ubWVtb2l6ZWRTdGF0ZXx8bHIsbz1sdDt2YXIgYT1scjtsdD1yLChscj1uKSYmIWE/ZnVuY3Rpb24gZShuLHQscil7Zm9yKHI9ciYmMCE9KDg3NzImdC5zdWJ0cmVlRmxhZ3MpLHQ9dC5jaGlsZDtudWxsIT09dDspe3ZhciBvPXQuYWx0ZXJuYXRlLGE9bixpPXQsbD1pLmZsYWdzO3N3aXRjaChpLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTplKGEsaSxyKSxpMCg0LGkpO2JyZWFrO2Nhc2UgMTppZihlKGEsaSxyKSxcImZ1bmN0aW9uXCI9PXR5cGVvZihhPShvPWkpLnN0YXRlTm9kZSkuY29tcG9uZW50RGlkTW91bnQpdHJ5e2EuY29tcG9uZW50RGlkTW91bnQoKX1jYXRjaChlKXtzUChvLG8ucmV0dXJuLGUpfWlmKG51bGwhPT0oYT0obz1pKS51cGRhdGVRdWV1ZSkpe3ZhciBzPW8uc3RhdGVOb2RlO3RyeXt2YXIgYz1hLnNoYXJlZC5oaWRkZW5DYWxsYmFja3M7aWYobnVsbCE9PWMpZm9yKGEuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcz1udWxsLGE9MDthPGMubGVuZ3RoO2ErKylveihjW2FdLHMpfWNhdGNoKGUpe3NQKG8sby5yZXR1cm4sZSl9fXImJjY0JmwmJmkyKGkpLGk1KGksaS5yZXR1cm4pO2JyZWFrO2Nhc2UgMjc6bG4oaSk7Y2FzZSAyNjpjYXNlIDU6ZShhLGksciksciYmbnVsbD09PW8mJjQmbCYmaTYoaSksaTUoaSxpLnJldHVybik7YnJlYWs7Y2FzZSAxMjpkZWZhdWx0OmUoYSxpLHIpO2JyZWFrO2Nhc2UgMzE6ZShhLGksciksciYmNCZsJiZsZihhLGkpO2JyZWFrO2Nhc2UgMTM6ZShhLGksciksciYmNCZsJiZscChhLGkpO2JyZWFrO2Nhc2UgMjI6bnVsbD09PWkubWVtb2l6ZWRTdGF0ZSYmZShhLGksciksaTUoaSxpLnJldHVybik7Y2FzZSAzMDp9dD10LnNpYmxpbmd9fShlLHQsMCE9KDg3NzImdC5zdWJ0cmVlRmxhZ3MpKTpseShlLHQpLGx0PW8sbHI9YX1jYXNlIDMwOn19dmFyIGxzPW51bGwsbGM9ITE7ZnVuY3Rpb24gbHUoZSxuLHQpe2Zvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KWxkKGUsbix0KSx0PXQuc2libGluZ31mdW5jdGlvbiBsZChlLG4sdCl7aWYoZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uQ29tbWl0RmliZXJVbm1vdW50KXRyeXtlcC5vbkNvbW1pdEZpYmVyVW5tb3VudChlZix0KX1jYXRjaChlKXt9c3dpdGNoKHQudGFnKXtjYXNlIDI2OmxyfHxpMyh0LG4pLGx1KGUsbix0KSx0Lm1lbW9pemVkU3RhdGU/dC5tZW1vaXplZFN0YXRlLmNvdW50LS06dC5zdGF0ZU5vZGUmJih0PXQuc3RhdGVOb2RlKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpO2JyZWFrO2Nhc2UgMjc6bHJ8fGkzKHQsbik7dmFyIHI9bHMsbz1sYztjaih0LnR5cGUpJiYobHM9dC5zdGF0ZU5vZGUsbGM9ITEpLGx1KGUsbix0KSxjUih0LnN0YXRlTm9kZSksbHM9cixsYz1vO2JyZWFrO2Nhc2UgNTpscnx8aTModCxuKTtjYXNlIDY6aWYocj1scyxvPWxjLGxzPW51bGwsbHUoZSxuLHQpLGxzPXIsbGM9byxudWxsIT09bHMpaWYobGMpdHJ5eyg5PT09bHMubm9kZVR5cGU/bHMuYm9keTpcIkhUTUxcIj09PWxzLm5vZGVOYW1lP2xzLm93bmVyRG9jdW1lbnQuYm9keTpscykucmVtb3ZlQ2hpbGQodC5zdGF0ZU5vZGUpfWNhdGNoKGUpe3NQKHQsbixlKX1lbHNlIHRyeXtscy5yZW1vdmVDaGlsZCh0LnN0YXRlTm9kZSl9Y2F0Y2goZSl7c1AodCxuLGUpfWJyZWFrO2Nhc2UgMTg6bnVsbCE9PWxzJiYobGM/KGNrKDk9PT0oZT1scykubm9kZVR5cGU/ZS5ib2R5OlwiSFRNTFwiPT09ZS5ub2RlTmFtZT9lLm93bmVyRG9jdW1lbnQuYm9keTplLHQuc3RhdGVOb2RlKSx1RShlKSk6Y2sobHMsdC5zdGF0ZU5vZGUpKTticmVhaztjYXNlIDQ6cj1scyxvPWxjLGxzPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sbGM9ITAsbHUoZSxuLHQpLGxzPXIsbGM9bzticmVhaztjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6bHJ8fGkxKDIsdCxuKSxscnx8aTEoNCx0LG4pLGx1KGUsbix0KTticmVhaztjYXNlIDE6bHJ8fChpMyh0LG4pLFwiZnVuY3Rpb25cIj09dHlwZW9mKHI9dC5zdGF0ZU5vZGUpLmNvbXBvbmVudFdpbGxVbm1vdW50JiZpNCh0LG4scikpLGx1KGUsbix0KTticmVhaztjYXNlIDIxOmRlZmF1bHQ6bHUoZSxuLHQpO2JyZWFrO2Nhc2UgMjI6bHI9KHI9bHIpfHxudWxsIT09dC5tZW1vaXplZFN0YXRlLGx1KGUsbix0KSxscj1yfX1mdW5jdGlvbiBsZihlLG4pe2lmKG51bGw9PT1uLm1lbW9pemVkU3RhdGUmJm51bGwhPT0oZT1uLmFsdGVybmF0ZSkmJm51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpKXtlPWUuZGVoeWRyYXRlZDt0cnl7dUUoZSl9Y2F0Y2goZSl7c1AobixuLnJldHVybixlKX19fWZ1bmN0aW9uIGxwKGUsbil7aWYobnVsbD09PW4ubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PShlPW4uYWx0ZXJuYXRlKSYmbnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT0oZT1lLmRlaHlkcmF0ZWQpKXRyeXt1RShlKX1jYXRjaChlKXtzUChuLG4ucmV0dXJuLGUpfX1mdW5jdGlvbiBsaChlLG4pe3ZhciB0PWZ1bmN0aW9uKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAzMTpjYXNlIDEzOmNhc2UgMTk6dmFyIG49ZS5zdGF0ZU5vZGU7cmV0dXJuIG51bGw9PT1uJiYobj1lLnN0YXRlTm9kZT1uZXcgbGEpLG47Y2FzZSAyMjpyZXR1cm4gbnVsbD09PShuPShlPWUuc3RhdGVOb2RlKS5fcmV0cnlDYWNoZSkmJihuPWUuX3JldHJ5Q2FjaGU9bmV3IGxhKSxuO2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0MzUsZS50YWcpKX19KGUpO24uZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcj1zTi5iaW5kKG51bGwsZSxuKTt0LmhhcyhuKXx8KHQuYWRkKG4pLG4udGhlbihyLHIpKX0pfWZ1bmN0aW9uIGxnKGUsbil7dmFyIHQ9bi5kZWxldGlvbnM7aWYobnVsbCE9PXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl0sYT1lLGk9bixzPWk7ZTpmb3IoO251bGwhPT1zOyl7c3dpdGNoKHMudGFnKXtjYXNlIDI3OmlmKGNqKHMudHlwZSkpe2xzPXMuc3RhdGVOb2RlLGxjPSExO2JyZWFrIGV9YnJlYWs7Y2FzZSA1OmxzPXMuc3RhdGVOb2RlLGxjPSExO2JyZWFrIGU7Y2FzZSAzOmNhc2UgNDpscz1zLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGxjPSEwO2JyZWFrIGV9cz1zLnJldHVybn1pZihudWxsPT09bHMpdGhyb3cgRXJyb3IobCgxNjApKTtsZChhLGksbyksbHM9bnVsbCxsYz0hMSxudWxsIT09KGE9by5hbHRlcm5hdGUpJiYoYS5yZXR1cm49bnVsbCksby5yZXR1cm49bnVsbH1pZigxMzg3OCZuLnN1YnRyZWVGbGFncylmb3Iobj1uLmNoaWxkO251bGwhPT1uOylsdihuLGUpLG49bi5zaWJsaW5nfXZhciBsbT1udWxsO2Z1bmN0aW9uIGx2KGUsbil7dmFyIHQ9ZS5hbHRlcm5hdGUscj1lLmZsYWdzO3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmxnKG4sZSksbGIoZSksNCZyJiYoaTEoMyxlLGUucmV0dXJuKSxpMCgzLGUpLGkxKDUsZSxlLnJldHVybikpO2JyZWFrO2Nhc2UgMTpsZyhuLGUpLGxiKGUpLDUxMiZyJiYobHJ8fG51bGw9PT10fHxpMyh0LHQucmV0dXJuKSksNjQmciYmbHQmJm51bGwhPT0oZT1lLnVwZGF0ZVF1ZXVlKSYmbnVsbCE9PShyPWUuY2FsbGJhY2tzKSYmKHQ9ZS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzLGUuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcz1udWxsPT09dD9yOnQuY29uY2F0KHIpKTticmVhaztjYXNlIDI2OnZhciBvPWxtO2lmKGxnKG4sZSksbGIoZSksNTEyJnImJihscnx8bnVsbD09PXR8fGkzKHQsdC5yZXR1cm4pKSw0JnIpe3ZhciBhPW51bGwhPT10P3QubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKHI9ZS5tZW1vaXplZFN0YXRlLG51bGw9PT10KWlmKG51bGw9PT1yKWlmKG51bGw9PT1lLnN0YXRlTm9kZSl7ZTp7cj1lLnR5cGUsdD1lLm1lbW9pemVkUHJvcHMsbz1vLm93bmVyRG9jdW1lbnR8fG87bjpzd2l0Y2gocil7Y2FzZVwidGl0bGVcIjooIShhPW8uZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJ0aXRsZVwiKVswXSl8fGFbZVVdfHxhW2VOXXx8XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPT09YS5uYW1lc3BhY2VVUkl8fGEuaGFzQXR0cmlidXRlKFwiaXRlbXByb3BcIikpJiYoYT1vLmNyZWF0ZUVsZW1lbnQociksby5oZWFkLmluc2VydEJlZm9yZShhLG8ucXVlcnlTZWxlY3RvcihcImhlYWQgPiB0aXRsZVwiKSkpLGNjKGEscix0KSxhW2VOXT1lLGVZKGEpLHI9YTticmVhayBlO2Nhc2VcImxpbmtcIjp2YXIgaT1jRyhcImxpbmtcIixcImhyZWZcIixvKS5nZXQocisodC5ocmVmfHxcIlwiKSk7aWYoaSl7Zm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKyspaWYoKGE9aVtzXSkuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKT09PShudWxsPT10LmhyZWZ8fFwiXCI9PT10LmhyZWY/bnVsbDp0LmhyZWYpJiZhLmdldEF0dHJpYnV0ZShcInJlbFwiKT09PShudWxsPT10LnJlbD9udWxsOnQucmVsKSYmYS5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKT09PShudWxsPT10LnRpdGxlP251bGw6dC50aXRsZSkmJmEuZ2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIik9PT0obnVsbD09dC5jcm9zc09yaWdpbj9udWxsOnQuY3Jvc3NPcmlnaW4pKXtpLnNwbGljZShzLDEpO2JyZWFrIG59fWNjKGE9by5jcmVhdGVFbGVtZW50KHIpLHIsdCksby5oZWFkLmFwcGVuZENoaWxkKGEpO2JyZWFrO2Nhc2VcIm1ldGFcIjppZihpPWNHKFwibWV0YVwiLFwiY29udGVudFwiLG8pLmdldChyKyh0LmNvbnRlbnR8fFwiXCIpKSl7Zm9yKHM9MDtzPGkubGVuZ3RoO3MrKylpZigoYT1pW3NdKS5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpPT09KG51bGw9PXQuY29udGVudD9udWxsOlwiXCIrdC5jb250ZW50KSYmYS5nZXRBdHRyaWJ1dGUoXCJuYW1lXCIpPT09KG51bGw9PXQubmFtZT9udWxsOnQubmFtZSkmJmEuZ2V0QXR0cmlidXRlKFwicHJvcGVydHlcIik9PT0obnVsbD09dC5wcm9wZXJ0eT9udWxsOnQucHJvcGVydHkpJiZhLmdldEF0dHJpYnV0ZShcImh0dHAtZXF1aXZcIik9PT0obnVsbD09dC5odHRwRXF1aXY/bnVsbDp0Lmh0dHBFcXVpdikmJmEuZ2V0QXR0cmlidXRlKFwiY2hhcnNldFwiKT09PShudWxsPT10LmNoYXJTZXQ/bnVsbDp0LmNoYXJTZXQpKXtpLnNwbGljZShzLDEpO2JyZWFrIG59fWNjKGE9by5jcmVhdGVFbGVtZW50KHIpLHIsdCksby5oZWFkLmFwcGVuZENoaWxkKGEpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0NjgscikpfWFbZU5dPWUsZVkoYSkscj1hfWUuc3RhdGVOb2RlPXJ9ZWxzZSBjSihvLGUudHlwZSxlLnN0YXRlTm9kZSk7ZWxzZSBlLnN0YXRlTm9kZT1jWihvLHIsZS5tZW1vaXplZFByb3BzKTtlbHNlIGEhPT1yPyhudWxsPT09YT9udWxsIT09dC5zdGF0ZU5vZGUmJih0PXQuc3RhdGVOb2RlKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpOmEuY291bnQtLSxudWxsPT09cj9jSihvLGUudHlwZSxlLnN0YXRlTm9kZSk6Y1oobyxyLGUubWVtb2l6ZWRQcm9wcykpOm51bGw9PT1yJiZudWxsIT09ZS5zdGF0ZU5vZGUmJmk5KGUsZS5tZW1vaXplZFByb3BzLHQubWVtb2l6ZWRQcm9wcyl9YnJlYWs7Y2FzZSAyNzpsZyhuLGUpLGxiKGUpLDUxMiZyJiYobHJ8fG51bGw9PT10fHxpMyh0LHQucmV0dXJuKSksbnVsbCE9PXQmJjQmciYmaTkoZSxlLm1lbW9pemVkUHJvcHMsdC5tZW1vaXplZFByb3BzKTticmVhaztjYXNlIDU6aWYobGcobixlKSxsYihlKSw1MTImciYmKGxyfHxudWxsPT09dHx8aTModCx0LnJldHVybikpLDMyJmUuZmxhZ3Mpe289ZS5zdGF0ZU5vZGU7dHJ5e25zKG8sXCJcIil9Y2F0Y2gobil7c1AoZSxlLnJldHVybixuKX19NCZyJiZudWxsIT1lLnN0YXRlTm9kZSYmKG89ZS5tZW1vaXplZFByb3BzLGk5KGUsbyxudWxsIT09dD90Lm1lbW9pemVkUHJvcHM6bykpLDEwMjQmciYmKGxvPSEwKTticmVhaztjYXNlIDY6aWYobGcobixlKSxsYihlKSw0JnIpe2lmKG51bGw9PT1lLnN0YXRlTm9kZSl0aHJvdyBFcnJvcihsKDE2MikpO3I9ZS5tZW1vaXplZFByb3BzLHQ9ZS5zdGF0ZU5vZGU7dHJ5e3Qubm9kZVZhbHVlPXJ9Y2F0Y2gobil7c1AoZSxlLnJldHVybixuKX19YnJlYWs7Y2FzZSAzOmlmKGNRPW51bGwsbz1sbSxsbT1jQihuLmNvbnRhaW5lckluZm8pLGxnKG4sZSksbG09byxsYihlKSw0JnImJm51bGwhPT10JiZ0Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXRyeXt1RShuLmNvbnRhaW5lckluZm8pfWNhdGNoKG4pe3NQKGUsZS5yZXR1cm4sbil9bG8mJihsbz0hMSxmdW5jdGlvbiBlKG4pe2lmKDEwMjQmbi5zdWJ0cmVlRmxhZ3MpZm9yKG49bi5jaGlsZDtudWxsIT09bjspe3ZhciB0PW47ZSh0KSw1PT09dC50YWcmJjEwMjQmdC5mbGFncyYmdC5zdGF0ZU5vZGUucmVzZXQoKSxuPW4uc2libGluZ319KGUpKTticmVhaztjYXNlIDQ6cj1sbSxsbT1jQihlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxsZyhuLGUpLGxiKGUpLGxtPXI7YnJlYWs7Y2FzZSAxMjpkZWZhdWx0OmxnKG4sZSksbGIoZSk7YnJlYWs7Y2FzZSAzMTpjYXNlIDE5OmxnKG4sZSksbGIoZSksNCZyJiZudWxsIT09KHI9ZS51cGRhdGVRdWV1ZSkmJihlLnVwZGF0ZVF1ZXVlPW51bGwsbGgoZSxyKSk7YnJlYWs7Y2FzZSAxMzpsZyhuLGUpLGxiKGUpLDgxOTImZS5jaGlsZC5mbGFncyYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSE9KG51bGwhPT10JiZudWxsIT09dC5tZW1vaXplZFN0YXRlKSYmKGxKPWVyKCkpLDQmciYmbnVsbCE9PShyPWUudXBkYXRlUXVldWUpJiYoZS51cGRhdGVRdWV1ZT1udWxsLGxoKGUscikpO2JyZWFrO2Nhc2UgMjI6bz1udWxsIT09ZS5tZW1vaXplZFN0YXRlO3ZhciBjPW51bGwhPT10JiZudWxsIT09dC5tZW1vaXplZFN0YXRlLHU9bHQsZD1scjtpZihsdD11fHxvLGxyPWR8fGMsbGcobixlKSxscj1kLGx0PXUsbGIoZSksODE5MiZyKWU6Zm9yKChuPWUuc3RhdGVOb2RlKS5fdmlzaWJpbGl0eT1vPy0yJm4uX3Zpc2liaWxpdHk6MXxuLl92aXNpYmlsaXR5LG8mJihudWxsPT09dHx8Y3x8bHR8fGxyfHxmdW5jdGlvbiBlKG4pe2ZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KXt2YXIgdD1uO3N3aXRjaCh0LnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmkxKDQsdCx0LnJldHVybiksZSh0KTticmVhaztjYXNlIDE6aTModCx0LnJldHVybik7dmFyIHI9dC5zdGF0ZU5vZGU7XCJmdW5jdGlvblwiPT10eXBlb2Ygci5jb21wb25lbnRXaWxsVW5tb3VudCYmaTQodCx0LnJldHVybixyKSxlKHQpO2JyZWFrO2Nhc2UgMjc6Y1IodC5zdGF0ZU5vZGUpO2Nhc2UgMjY6Y2FzZSA1OmkzKHQsdC5yZXR1cm4pLGUodCk7YnJlYWs7Y2FzZSAyMjpudWxsPT09dC5tZW1vaXplZFN0YXRlJiZlKHQpO2JyZWFrO2RlZmF1bHQ6ZSh0KX1uPW4uc2libGluZ319KGUpKSx0PW51bGwsbj1lOzspe2lmKDU9PT1uLnRhZ3x8MjY9PT1uLnRhZyl7aWYobnVsbD09PXQpe2M9dD1uO3RyeXtpZihhPWMuc3RhdGVOb2RlLG8paT1hLnN0eWxlLFwiZnVuY3Rpb25cIj09dHlwZW9mIGkuc2V0UHJvcGVydHk/aS5zZXRQcm9wZXJ0eShcImRpc3BsYXlcIixcIm5vbmVcIixcImltcG9ydGFudFwiKTppLmRpc3BsYXk9XCJub25lXCI7ZWxzZXtzPWMuc3RhdGVOb2RlO3ZhciBmPWMubWVtb2l6ZWRQcm9wcy5zdHlsZSxwPW51bGwhPWYmJmYuaGFzT3duUHJvcGVydHkoXCJkaXNwbGF5XCIpP2YuZGlzcGxheTpudWxsO3Muc3R5bGUuZGlzcGxheT1udWxsPT1wfHxcImJvb2xlYW5cIj09dHlwZW9mIHA/XCJcIjooXCJcIitwKS50cmltKCl9fWNhdGNoKGUpe3NQKGMsYy5yZXR1cm4sZSl9fX1lbHNlIGlmKDY9PT1uLnRhZyl7aWYobnVsbD09PXQpe2M9bjt0cnl7Yy5zdGF0ZU5vZGUubm9kZVZhbHVlPW8/XCJcIjpjLm1lbW9pemVkUHJvcHN9Y2F0Y2goZSl7c1AoYyxjLnJldHVybixlKX19fWVsc2UgaWYoMTg9PT1uLnRhZyl7aWYobnVsbD09PXQpe2M9bjt0cnl7dmFyIGg9Yy5zdGF0ZU5vZGU7bz9jQShoLCEwKTpjQShjLnN0YXRlTm9kZSwhMSl9Y2F0Y2goZSl7c1AoYyxjLnJldHVybixlKX19fWVsc2UgaWYoKDIyIT09bi50YWcmJjIzIT09bi50YWd8fG51bGw9PT1uLm1lbW9pemVkU3RhdGV8fG49PT1lKSYmbnVsbCE9PW4uY2hpbGQpe24uY2hpbGQucmV0dXJuPW4sbj1uLmNoaWxkO2NvbnRpbnVlfWlmKG49PT1lKWJyZWFrO2Zvcig7bnVsbD09PW4uc2libGluZzspe2lmKG51bGw9PT1uLnJldHVybnx8bi5yZXR1cm49PT1lKWJyZWFrIGU7dD09PW4mJih0PW51bGwpLG49bi5yZXR1cm59dD09PW4mJih0PW51bGwpLG4uc2libGluZy5yZXR1cm49bi5yZXR1cm4sbj1uLnNpYmxpbmd9NCZyJiZudWxsIT09KHI9ZS51cGRhdGVRdWV1ZSkmJm51bGwhPT0odD1yLnJldHJ5UXVldWUpJiYoci5yZXRyeVF1ZXVlPW51bGwsbGgoZSx0KSk7Y2FzZSAzMDpjYXNlIDIxOn19ZnVuY3Rpb24gbGIoZSl7dmFyIG49ZS5mbGFncztpZigyJm4pe3RyeXtmb3IodmFyIHQscj1lLnJldHVybjtudWxsIT09cjspe2lmKGk4KHIpKXt0PXI7YnJlYWt9cj1yLnJldHVybn1pZihudWxsPT10KXRocm93IEVycm9yKGwoMTYwKSk7c3dpdGNoKHQudGFnKXtjYXNlIDI3OnZhciBvPXQuc3RhdGVOb2RlLGE9aTcoZSk7bGUoZSxhLG8pO2JyZWFrO2Nhc2UgNTp2YXIgaT10LnN0YXRlTm9kZTszMiZ0LmZsYWdzJiYobnMoaSxcIlwiKSx0LmZsYWdzJj0tMzMpO3ZhciBzPWk3KGUpO2xlKGUscyxpKTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciBjPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sdT1pNyhlKTshZnVuY3Rpb24gZShuLHQscil7dmFyIG89bi50YWc7aWYoNT09PW98fDY9PT1vKW49bi5zdGF0ZU5vZGUsdD8oOT09PXIubm9kZVR5cGU/ci5ib2R5OlwiSFRNTFwiPT09ci5ub2RlTmFtZT9yLm93bmVyRG9jdW1lbnQuYm9keTpyKS5pbnNlcnRCZWZvcmUobix0KTooKHQ9OT09PXIubm9kZVR5cGU/ci5ib2R5OlwiSFRNTFwiPT09ci5ub2RlTmFtZT9yLm93bmVyRG9jdW1lbnQuYm9keTpyKS5hcHBlbmRDaGlsZChuKSxudWxsIT0ocj1yLl9yZWFjdFJvb3RDb250YWluZXIpfHxudWxsIT09dC5vbmNsaWNrfHwodC5vbmNsaWNrPW5tKSk7ZWxzZSBpZig0IT09byYmKDI3PT09byYmY2oobi50eXBlKSYmKHI9bi5zdGF0ZU5vZGUsdD1udWxsKSxudWxsIT09KG49bi5jaGlsZCkpKWZvcihlKG4sdCxyKSxuPW4uc2libGluZztudWxsIT09bjspZShuLHQsciksbj1uLnNpYmxpbmd9KGUsdSxjKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKGwoMTYxKSl9fWNhdGNoKG4pe3NQKGUsZS5yZXR1cm4sbil9ZS5mbGFncyY9LTN9NDA5NiZuJiYoZS5mbGFncyY9LTQwOTcpfWZ1bmN0aW9uIGx5KGUsbil7aWYoODc3MiZuLnN1YnRyZWVGbGFncylmb3Iobj1uLmNoaWxkO251bGwhPT1uOylsbChlLG4uYWx0ZXJuYXRlLG4pLG49bi5zaWJsaW5nfWZ1bmN0aW9uIGx4KGUsbil7dmFyIHQ9bnVsbDtudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJih0PWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksZT1udWxsLG51bGwhPT1uLm1lbW9pemVkU3RhdGUmJm51bGwhPT1uLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYoZT1uLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGUhPT10JiYobnVsbCE9ZSYmZS5yZWZDb3VudCsrLG51bGwhPXQmJnIyKHQpKX1mdW5jdGlvbiBsdyhlLG4pe2U9bnVsbCxudWxsIT09bi5hbHRlcm5hdGUmJihlPW4uYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGUpLChuPW4ubWVtb2l6ZWRTdGF0ZS5jYWNoZSkhPT1lJiYobi5yZWZDb3VudCsrLG51bGwhPWUmJnIyKGUpKX1mdW5jdGlvbiBsaihlLG4sdCxyKXtpZigxMDI1NiZuLnN1YnRyZWVGbGFncylmb3Iobj1uLmNoaWxkO251bGwhPT1uOylsayhlLG4sdCxyKSxuPW4uc2libGluZ31mdW5jdGlvbiBsayhlLG4sdCxyKXt2YXIgbz1uLmZsYWdzO3N3aXRjaChuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpsaihlLG4sdCxyKSwyMDQ4Jm8mJmkwKDksbik7YnJlYWs7Y2FzZSAxOmNhc2UgMzE6Y2FzZSAxMzpkZWZhdWx0OmxqKGUsbix0LHIpO2JyZWFrO2Nhc2UgMzpsaihlLG4sdCxyKSwyMDQ4Jm8mJihlPW51bGwsbnVsbCE9PW4uYWx0ZXJuYXRlJiYoZT1uLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSwobj1uLm1lbW9pemVkU3RhdGUuY2FjaGUpIT09ZSYmKG4ucmVmQ291bnQrKyxudWxsIT1lJiZyMihlKSkpO2JyZWFrO2Nhc2UgMTI6aWYoMjA0OCZvKXtsaihlLG4sdCxyKSxlPW4uc3RhdGVOb2RlO3RyeXt2YXIgYT1uLm1lbW9pemVkUHJvcHMsaT1hLmlkLGw9YS5vblBvc3RDb21taXQ7XCJmdW5jdGlvblwiPT10eXBlb2YgbCYmbChpLG51bGw9PT1uLmFsdGVybmF0ZT9cIm1vdW50XCI6XCJ1cGRhdGVcIixlLnBhc3NpdmVFZmZlY3REdXJhdGlvbiwtMCl9Y2F0Y2goZSl7c1AobixuLnJldHVybixlKX19ZWxzZSBsaihlLG4sdCxyKTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6YT1uLnN0YXRlTm9kZSxpPW4uYWx0ZXJuYXRlLG51bGwhPT1uLm1lbW9pemVkU3RhdGU/MiZhLl92aXNpYmlsaXR5P2xqKGUsbix0LHIpOmxBKGUsbik6MiZhLl92aXNpYmlsaXR5P2xqKGUsbix0LHIpOihhLl92aXNpYmlsaXR5fD0yLGZ1bmN0aW9uIGUobix0LHIsbyxhKXtmb3IoYT1hJiYwIT0oMTAyNTYmdC5zdWJ0cmVlRmxhZ3MpLHQ9dC5jaGlsZDtudWxsIT09dDspe3ZhciBpPXQsbD1pLmZsYWdzO3N3aXRjaChpLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTplKG4saSxyLG8sYSksaTAoOCxpKTticmVhaztjYXNlIDIzOmJyZWFrO2Nhc2UgMjI6dmFyIHM9aS5zdGF0ZU5vZGU7bnVsbCE9PWkubWVtb2l6ZWRTdGF0ZT8yJnMuX3Zpc2liaWxpdHk/ZShuLGkscixvLGEpOmxBKG4saSk6KHMuX3Zpc2liaWxpdHl8PTIsZShuLGkscixvLGEpKSxhJiYyMDQ4JmwmJmx4KGkuYWx0ZXJuYXRlLGkpO2JyZWFrO2Nhc2UgMjQ6ZShuLGkscixvLGEpLGEmJjIwNDgmbCYmbHcoaS5hbHRlcm5hdGUsaSk7YnJlYWs7ZGVmYXVsdDplKG4saSxyLG8sYSl9dD10LnNpYmxpbmd9fShlLG4sdCxyLDAhPSgxMDI1NiZuLnN1YnRyZWVGbGFncykpKSwyMDQ4Jm8mJmx4KGksbik7YnJlYWs7Y2FzZSAyNDpsaihlLG4sdCxyKSwyMDQ4Jm8mJmx3KG4uYWx0ZXJuYXRlLG4pfX1mdW5jdGlvbiBsQShlLG4pe2lmKDEwMjU2Jm4uc3VidHJlZUZsYWdzKWZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KXt2YXIgdD1uLHI9dC5mbGFncztzd2l0Y2godC50YWcpe2Nhc2UgMjI6bEEoZSx0KSwyMDQ4JnImJmx4KHQuYWx0ZXJuYXRlLHQpO2JyZWFrO2Nhc2UgMjQ6bEEoZSx0KSwyMDQ4JnImJmx3KHQuYWx0ZXJuYXRlLHQpO2JyZWFrO2RlZmF1bHQ6bEEoZSx0KX1uPW4uc2libGluZ319dmFyIGxPPTgxOTI7ZnVuY3Rpb24gbEMoZSl7aWYoZS5zdWJ0cmVlRmxhZ3MmbE8pZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspbFMoZSksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gbFMoZSl7c3dpdGNoKGUudGFnKXtjYXNlIDI2OmxDKGUpLGUuZmxhZ3MmbE8mJm51bGwhPT1lLm1lbW9pemVkU3RhdGUmJmZ1bmN0aW9uKGUsbix0KXtpZihudWxsPT09YzEpdGhyb3cgRXJyb3IobCg0NzUpKTt2YXIgcj1jMTtpZihcInN0eWxlc2hlZXRcIj09PW4udHlwZSYmKFwic3RyaW5nXCIhPXR5cGVvZiB0Lm1lZGlhfHwhMSE9PW1hdGNoTWVkaWEodC5tZWRpYSkubWF0Y2hlcykmJjA9PSg0Jm4uc3RhdGUubG9hZGluZykpe2lmKG51bGw9PT1uLmluc3RhbmNlKXt2YXIgbz1jVSh0LmhyZWYpLGE9ZS5xdWVyeVNlbGVjdG9yKGNWKG8pKTtpZihhKXtudWxsIT09KGU9YS5fcCkmJlwib2JqZWN0XCI9PXR5cGVvZiBlJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnRoZW4mJihyLmNvdW50Kysscj1jMi5iaW5kKHIpLGUudGhlbihyLHIpKSxuLnN0YXRlLmxvYWRpbmd8PTQsbi5pbnN0YW5jZT1hLGVZKGEpO3JldHVybn1hPWUub3duZXJEb2N1bWVudHx8ZSx0PWNxKHQpLChvPWNOLmdldChvKSkmJmNYKHQsbyksZVkoYT1hLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpKTt2YXIgaT1hO2kuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSxuKXtpLm9ubG9hZD1lLGkub25lcnJvcj1ufSksY2MoYSxcImxpbmtcIix0KSxuLmluc3RhbmNlPWF9bnVsbD09PXIuc3R5bGVzaGVldHMmJihyLnN0eWxlc2hlZXRzPW5ldyBNYXApLHIuc3R5bGVzaGVldHMuc2V0KG4sZSksKGU9bi5zdGF0ZS5wcmVsb2FkKSYmMD09KDMmbi5zdGF0ZS5sb2FkaW5nKSYmKHIuY291bnQrKyxuPWMyLmJpbmQociksZS5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLG4pLGUuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsbikpfX0obG0sZS5tZW1vaXplZFN0YXRlLGUubWVtb2l6ZWRQcm9wcyk7YnJlYWs7Y2FzZSA1OmRlZmF1bHQ6bEMoZSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgbj1sbTtsbT1jQihlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxsQyhlKSxsbT1uO2JyZWFrO2Nhc2UgMjI6bnVsbD09PWUubWVtb2l6ZWRTdGF0ZSYmKG51bGwhPT0obj1lLmFsdGVybmF0ZSkmJm51bGwhPT1uLm1lbW9pemVkU3RhdGU/KG49bE8sbE89MHgxMDAwMDAwLGxDKGUpLGxPPW4pOmxDKGUpKX19ZnVuY3Rpb24gbEUoZSl7dmFyIG49ZS5hbHRlcm5hdGU7aWYobnVsbCE9PW4mJm51bGwhPT0oZT1uLmNoaWxkKSl7bi5jaGlsZD1udWxsO2RvIG49ZS5zaWJsaW5nLGUuc2libGluZz1udWxsLGU9bjt3aGlsZShudWxsIT09ZSl9fWZ1bmN0aW9uIGxfKGUpe3ZhciBuPWUuZGVsZXRpb25zO2lmKDAhPSgxNiZlLmZsYWdzKSl7aWYobnVsbCE9PW4pZm9yKHZhciB0PTA7dDxuLmxlbmd0aDt0Kyspe3ZhciByPW5bdF07bGk9cixseihyLGUpfWxFKGUpfWlmKDEwMjU2JmUuc3VidHJlZUZsYWdzKWZvcihlPWUuY2hpbGQ7bnVsbCE9PWU7KWxQKGUpLGU9ZS5zaWJsaW5nfWZ1bmN0aW9uIGxQKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpsXyhlKSwyMDQ4JmUuZmxhZ3MmJmkxKDksZSxlLnJldHVybik7YnJlYWs7Y2FzZSAzOmNhc2UgMTI6ZGVmYXVsdDpsXyhlKTticmVhaztjYXNlIDIyOnZhciBuPWUuc3RhdGVOb2RlO251bGwhPT1lLm1lbW9pemVkU3RhdGUmJjImbi5fdmlzaWJpbGl0eSYmKG51bGw9PT1lLnJldHVybnx8MTMhPT1lLnJldHVybi50YWcpPyhuLl92aXNpYmlsaXR5Jj0tMyxmdW5jdGlvbiBlKG4pe3ZhciB0PW4uZGVsZXRpb25zO2lmKDAhPSgxNiZuLmZsYWdzKSl7aWYobnVsbCE9PXQpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl07bGk9byxseihvLG4pfWxFKG4pfWZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KXtzd2l0Y2goKHQ9bikudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmkxKDgsdCx0LnJldHVybiksZSh0KTticmVhaztjYXNlIDIyOjImKHI9dC5zdGF0ZU5vZGUpLl92aXNpYmlsaXR5JiYoci5fdmlzaWJpbGl0eSY9LTMsZSh0KSk7YnJlYWs7ZGVmYXVsdDplKHQpfW49bi5zaWJsaW5nfX0oZSkpOmxfKGUpfX1mdW5jdGlvbiBseihlLG4pe2Zvcig7bnVsbCE9PWxpOyl7dmFyIHQ9bGk7c3dpdGNoKHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OmkxKDgsdCxuKTticmVhaztjYXNlIDIzOmNhc2UgMjI6aWYobnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PXQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wpe3ZhciByPXQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbDtudWxsIT1yJiZyLnJlZkNvdW50Kyt9YnJlYWs7Y2FzZSAyNDpyMih0Lm1lbW9pemVkU3RhdGUuY2FjaGUpfWlmKG51bGwhPT0ocj10LmNoaWxkKSlyLnJldHVybj10LGxpPXI7ZWxzZSBmb3IodD1lO251bGwhPT1saTspe3ZhciBvPShyPWxpKS5zaWJsaW5nLGE9ci5yZXR1cm47aWYoIWZ1bmN0aW9uIGUobil7dmFyIHQ9bi5hbHRlcm5hdGU7bnVsbCE9PXQmJihuLmFsdGVybmF0ZT1udWxsLGUodCkpLG4uY2hpbGQ9bnVsbCxuLmRlbGV0aW9ucz1udWxsLG4uc2libGluZz1udWxsLDU9PT1uLnRhZyYmbnVsbCE9PSh0PW4uc3RhdGVOb2RlKSYmZVYodCksbi5zdGF0ZU5vZGU9bnVsbCxuLnJldHVybj1udWxsLG4uZGVwZW5kZW5jaWVzPW51bGwsbi5tZW1vaXplZFByb3BzPW51bGwsbi5tZW1vaXplZFN0YXRlPW51bGwsbi5wZW5kaW5nUHJvcHM9bnVsbCxuLnN0YXRlTm9kZT1udWxsLG4udXBkYXRlUXVldWU9bnVsbH0ocikscj09PXQpe2xpPW51bGw7YnJlYWt9aWYobnVsbCE9PW8pe28ucmV0dXJuPWEsbGk9bzticmVha31saT1hfX19dmFyIGxMPXtnZXRDYWNoZUZvclR5cGU6ZnVuY3Rpb24oZSl7dmFyIG49clkocjApLHQ9bi5kYXRhLmdldChlKTtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9ZSgpLG4uZGF0YS5zZXQoZSx0KSksdH0sY2FjaGVTaWduYWw6ZnVuY3Rpb24oKXtyZXR1cm4gclkocjApLmNvbnRyb2xsZXIuc2lnbmFsfX0sbFQ9XCJmdW5jdGlvblwiPT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcCxsUj0wLGxOPW51bGwsbEQ9bnVsbCxsQj0wLGxNPTAsbEk9bnVsbCxsSD0hMSxsRj0hMSxsVT0hMSxsVj0wLGxxPTAsbFc9MCxsJD0wLGxaPTAsbFk9MCxsWD0wLGxLPW51bGwsbFE9bnVsbCxsRz0hMSxsSj0wLGwwPTEvMCxsMT1udWxsLGwyPW51bGwsbDQ9MCxsNT1udWxsLGwzPW51bGwsbDY9MCxsOT0wLGw4PW51bGwsbDc9bnVsbCxzZT0wLHNuPW51bGw7ZnVuY3Rpb24gc3QoKXtyZXR1cm4gMCE9KDImbFIpJiYwIT09bEI/bEImLWxCOm51bGwhPT1MLlQ/c1goKTplTCgpfWZ1bmN0aW9uIHNyKCl7MD09PWxZJiYobFk9MD09KDB4MjAwMDAwMDAmbEIpfHxyUz9laygpOjB4MjAwMDAwMDApO3ZhciBlPW9NLmN1cnJlbnQ7cmV0dXJuIG51bGwhPT1lJiYoZS5mbGFnc3w9MzIpLGxZfWZ1bmN0aW9uIHNvKGUsbix0KXsoZT09PWxOJiYoMj09PWxNfHw5PT09bE0pfHxudWxsIT09ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KSYmKHN1KGUsMCksc2woZSxsQixsWSwhMSkpLGVDKGUsdCksKDA9PSgyJmxSKXx8ZSE9PWxOKSYmKGU9PT1sTiYmKDA9PSgyJmxSKSYmKGwkfD10KSw0PT09bHEmJnNsKGUsbEIsbFksITEpKSxzVShlKSl9ZnVuY3Rpb24gc2EoZSxuLHQpe2lmKDAhPSg2JmxSKSl0aHJvdyBFcnJvcihsKDMyNykpO2Zvcih2YXIgcj0hdCYmMD09KDEyNCZuKSYmMD09KG4mZS5leHBpcmVkTGFuZXMpfHxlaihlLG4pLG89cj9mdW5jdGlvbihlLG4pe3ZhciB0PWxSO2xSfD0yO3ZhciByPXNwKCksbz1zaCgpO2xOIT09ZXx8bEIhPT1uPyhsMT1udWxsLGwwPWVyKCkrNTAwLHN1KGUsbikpOmxGPWVqKGUsbik7ZTpmb3IoOzspdHJ5e2lmKDAhPT1sTSYmbnVsbCE9PWxEKXtuPWxEO3ZhciBhPWxJO246c3dpdGNoKGxNKXtjYXNlIDE6bE09MCxsST1udWxsLHN5KGUsbixhLDEpO2JyZWFrO2Nhc2UgMjpjYXNlIDk6aWYob2woYSkpe2xNPTAsbEk9bnVsbCxzYihuKTticmVha31uPWZ1bmN0aW9uKCl7MiE9PWxNJiY5IT09bE18fGxOIT09ZXx8KGxNPTcpLHNVKGUpfSxhLnRoZW4obixuKTticmVhayBlO2Nhc2UgMzpsTT03O2JyZWFrIGU7Y2FzZSA0OmxNPTU7YnJlYWsgZTtjYXNlIDc6b2woYSk/KGxNPTAsbEk9bnVsbCxzYihuKSk6KGxNPTAsbEk9bnVsbCxzeShlLG4sYSw3KSk7YnJlYWs7Y2FzZSA1OnZhciBpPW51bGw7c3dpdGNoKGxELnRhZyl7Y2FzZSAyNjppPWxELm1lbW9pemVkU3RhdGU7Y2FzZSA1OmNhc2UgMjc6dmFyIHM9bEQ7aWYoaT9jMChpKTpzLnN0YXRlTm9kZS5jb21wbGV0ZSl7bE09MCxsST1udWxsO3ZhciBjPXMuc2libGluZztpZihudWxsIT09YylsRD1jO2Vsc2V7dmFyIHU9cy5yZXR1cm47bnVsbCE9PXU/KGxEPXUsc3godSkpOmxEPW51bGx9YnJlYWsgbn19bE09MCxsST1udWxsLHN5KGUsbixhLDUpO2JyZWFrO2Nhc2UgNjpsTT0wLGxJPW51bGwsc3koZSxuLGEsNik7YnJlYWs7Y2FzZSA4OnNjKCksbHE9NjticmVhayBlO2RlZmF1bHQ6dGhyb3cgRXJyb3IobCg0NjIpKX19Zm9yKDtudWxsIT09bEQmJiFlbigpOylzdihsRCk7YnJlYWt9Y2F0Y2gobil7c2QoZSxuKX1yZXR1cm4ockg9ckk9bnVsbCxMLkg9cixMLkE9byxsUj10LG51bGwhPT1sRCk/MDoobE49bnVsbCxsQj0wLHQyKCksbHEpfShlLG4pOnNtKGUsbiwhMCksYT1yOzspe2lmKDA9PT1vKWxGJiYhciYmc2woZSxuLDAsITEpO2Vsc2V7aWYodD1lLmN1cnJlbnQuYWx0ZXJuYXRlLGEmJiFmdW5jdGlvbihlKXtmb3IodmFyIG49ZTs7KXt2YXIgdD1uLnRhZztpZigoMD09PXR8fDExPT09dHx8MTU9PT10KSYmMTYzODQmbi5mbGFncyYmbnVsbCE9PSh0PW4udXBkYXRlUXVldWUpJiZudWxsIT09KHQ9dC5zdG9yZXMpKWZvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbz10W3JdLGE9by5nZXRTbmFwc2hvdDtvPW8udmFsdWU7dHJ5e2lmKCF0TyhhKCksbykpcmV0dXJuITF9Y2F0Y2goZSl7cmV0dXJuITF9fWlmKHQ9bi5jaGlsZCwxNjM4NCZuLnN1YnRyZWVGbGFncyYmbnVsbCE9PXQpdC5yZXR1cm49bixuPXQ7ZWxzZXtpZihuPT09ZSlicmVhaztmb3IoO251bGw9PT1uLnNpYmxpbmc7KXtpZihudWxsPT09bi5yZXR1cm58fG4ucmV0dXJuPT09ZSlyZXR1cm4hMDtuPW4ucmV0dXJufW4uc2libGluZy5yZXR1cm49bi5yZXR1cm4sbj1uLnNpYmxpbmd9fXJldHVybiEwfSh0KSl7bz1zbShlLG4sITEpLGE9ITE7Y29udGludWV9aWYoMj09PW8pe2lmKGE9bixlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzJmEpdmFyIGk9MDtlbHNlIGk9MCE9KGk9LTB4MjAwMDAwMDEmZS5wZW5kaW5nTGFuZXMpP2k6MHgyMDAwMDAwMCZpPzB4MjAwMDAwMDA6MDtpZigwIT09aSl7bj1pO2U6e289bEs7dmFyIHM9ZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkO2lmKHMmJihzdShlLGkpLmZsYWdzfD0yNTYpLDIhPT0oaT1zbShlLGksITEpKSl7aWYobFUmJiFzKXtlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzfD1hLGwkfD1hLG89NDticmVhayBlfWE9bFEsbFE9byxudWxsIT09YSYmKG51bGw9PT1sUT9sUT1hOmxRLnB1c2guYXBwbHkobFEsYSkpfW89aX1pZihhPSExLDIhPT1vKWNvbnRpbnVlfX1pZigxPT09byl7c3UoZSwwKSxzbChlLG4sMCwhMCk7YnJlYWt9ZTp7c3dpdGNoKHI9ZSxhPW8pe2Nhc2UgMDpjYXNlIDE6dGhyb3cgRXJyb3IobCgzNDUpKTtjYXNlIDQ6aWYoKDQxOTQwNDgmbikhPT1uKWJyZWFrO2Nhc2UgNjpzbChyLG4sbFksIWxIKTticmVhayBlO2Nhc2UgMjpsUT1udWxsO2JyZWFrO2Nhc2UgMzpjYXNlIDU6YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDMyOSkpfWlmKCgweDNjMDAwMDAmbik9PT1uJiYxMDwobz1sSiszMDAtZXIoKSkpe2lmKHNsKHIsbixsWSwhbEgpLDAhPT1ldyhyLDAsITApKWJyZWFrIGU7ci50aW1lb3V0SGFuZGxlPWN2KHNpLmJpbmQobnVsbCxyLHQsbFEsbDEsbEcsbixsWSxsJCxsWCxsSCxhLDIsLTAsMCksbyk7YnJlYWsgZX1zaShyLHQsbFEsbDEsbEcsbixsWSxsJCxsWCxsSCxhLDAsLTAsMCl9fWJyZWFrfXNVKGUpfWZ1bmN0aW9uIHNpKGUsbix0LHIsbyxhLGkscyxjLHUsZCxmLHAsaCl7aWYoZS50aW1lb3V0SGFuZGxlPS0xLCg4MTkyJihmPW4uc3VidHJlZUZsYWdzKXx8MHgxMDAyMDAwPT0oMHgxMDAyMDAwJmYpKSYmKGMxPXtzdHlsZXNoZWV0czpudWxsLGNvdW50OjAsdW5zdXNwZW5kOm5tfSxsUyhuKSxudWxsIT09KGY9ZnVuY3Rpb24oKXtpZihudWxsPT09YzEpdGhyb3cgRXJyb3IobCg0NzUpKTt2YXIgZT1jMTtyZXR1cm4gZS5zdHlsZXNoZWV0cyYmMD09PWUuY291bnQmJmM1KGUsZS5zdHlsZXNoZWV0cyksMDxlLmNvdW50P2Z1bmN0aW9uKG4pe3ZhciB0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihlLnN0eWxlc2hlZXRzJiZjNShlLGUuc3R5bGVzaGVldHMpLGUudW5zdXNwZW5kKXt2YXIgbj1lLnVuc3VzcGVuZDtlLnVuc3VzcGVuZD1udWxsLG4oKX19LDZlNCk7cmV0dXJuIGUudW5zdXNwZW5kPW4sZnVuY3Rpb24oKXtlLnVuc3VzcGVuZD1udWxsLGNsZWFyVGltZW91dCh0KX19Om51bGx9KCkpKSl7ZS5jYW5jZWxQZW5kaW5nQ29tbWl0PWYoc2ouYmluZChudWxsLGUsbixhLHQscixvLGkscyxjLGQsMSxwLGgpKSxzbChlLGEsaSwhdSk7cmV0dXJufXNqKGUsbixhLHQscixvLGkscyxjKX1mdW5jdGlvbiBzbChlLG4sdCxyKXtuJj1+bFosbiY9fmwkLGUuc3VzcGVuZGVkTGFuZXN8PW4sZS5waW5nZWRMYW5lcyY9fm4sciYmKGUud2FybUxhbmVzfD1uKSxyPWUuZXhwaXJhdGlvblRpbWVzO2Zvcih2YXIgbz1uOzA8bzspe3ZhciBhPTMxLWVnKG8pLGk9MTw8YTtyW2FdPS0xLG8mPX5pfTAhPT10JiZlUyhlLHQsbil9ZnVuY3Rpb24gc3MoKXtyZXR1cm4gMCE9KDYmbFIpfHwoc1YoMCwhMSksITEpfWZ1bmN0aW9uIHNjKCl7aWYobnVsbCE9PWxEKXtpZigwPT09bE0pdmFyIGU9bEQucmV0dXJuO2Vsc2UgZT1sRCxySD1yST1udWxsLGF0KGUpLG9mPW51bGwsb3A9MCxlPWxEO2Zvcig7bnVsbCE9PWU7KWlKKGUuYWx0ZXJuYXRlLGUpLGU9ZS5yZXR1cm47bEQ9bnVsbH19ZnVuY3Rpb24gc3UoZSxuKXt2YXIgdD1lLnRpbWVvdXRIYW5kbGU7LTEhPT10JiYoZS50aW1lb3V0SGFuZGxlPS0xLGNiKHQpKSxudWxsIT09KHQ9ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KSYmKGUuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsLHQoKSksc2MoKSxsTj1lLGxEPXQ9cnQoZS5jdXJyZW50LG51bGwpLGxCPW4sbE09MCxsST1udWxsLGxIPSExLGxGPWVqKGUsbiksbFU9ITEsbFg9bFk9bFo9bCQ9bFc9bHE9MCxsUT1sSz1udWxsLGxHPSExLDAhPSg4Jm4pJiYobnw9MzImbik7dmFyIHI9ZS5lbnRhbmdsZWRMYW5lcztpZigwIT09cilmb3IoZT1lLmVudGFuZ2xlbWVudHMsciY9bjswPHI7KXt2YXIgbz0zMS1lZyhyKSxhPTE8PG87bnw9ZVtvXSxyJj1+YX1yZXR1cm4gbFY9bix0MigpLHR9ZnVuY3Rpb24gc2QoZSxuKXtvWT1udWxsLEwuSD1pZSxuPT09b3J8fG49PT1vYT8obj1vdSgpLGxNPTMpOm49PT1vbz8obj1vdSgpLGxNPTQpOmxNPW49PT1peT84Om51bGwhPT1uJiZcIm9iamVjdFwiPT10eXBlb2YgbiYmXCJmdW5jdGlvblwiPT10eXBlb2Ygbi50aGVuPzY6MSxsST1uLG51bGw9PT1sRCYmKGxxPTEsaWgoZSxydShuLGUuY3VycmVudCkpKX1mdW5jdGlvbiBzZigpe3ZhciBlPW9NLmN1cnJlbnQ7cmV0dXJuIG51bGw9PT1lfHwoKDQxOTQwNDgmbEIpPT09bEI/bnVsbD09PW9JOigoMHgzYzAwMDAwJmxCKT09PWxCfHwwIT0oMHgyMDAwMDAwMCZsQikpJiZlPT09b0kpfWZ1bmN0aW9uIHNwKCl7dmFyIGU9TC5IO3JldHVybiBMLkg9aWUsbnVsbD09PWU/aWU6ZX1mdW5jdGlvbiBzaCgpe3ZhciBlPUwuQTtyZXR1cm4gTC5BPWxMLGV9ZnVuY3Rpb24gc2coKXtscT00LGxIfHwoNDE5NDA0OCZsQikhPT1sQiYmbnVsbCE9PW9NLmN1cnJlbnR8fChsRj0hMCksMD09KDB4N2ZmZmZmZiZsVykmJjA9PSgweDdmZmZmZmYmbCQpfHxudWxsPT09bE58fHNsKGxOLGxCLGxZLCExKX1mdW5jdGlvbiBzbShlLG4sdCl7dmFyIHI9bFI7bFJ8PTI7dmFyIG89c3AoKSxhPXNoKCk7KGxOIT09ZXx8bEIhPT1uKSYmKGwxPW51bGwsc3UoZSxuKSksbj0hMTt2YXIgaT1scTtlOmZvcig7Oyl0cnl7aWYoMCE9PWxNJiZudWxsIT09bEQpe3ZhciBsPWxELHM9bEk7c3dpdGNoKGxNKXtjYXNlIDg6c2MoKSxpPTY7YnJlYWsgZTtjYXNlIDM6Y2FzZSAyOmNhc2UgOTpjYXNlIDY6bnVsbD09PW9NLmN1cnJlbnQmJihuPSEwKTt2YXIgYz1sTTtpZihsTT0wLGxJPW51bGwsc3koZSxsLHMsYyksdCYmbEYpe2k9MDticmVhayBlfWJyZWFrO2RlZmF1bHQ6Yz1sTSxsTT0wLGxJPW51bGwsc3koZSxsLHMsYyl9fShmdW5jdGlvbigpe2Zvcig7bnVsbCE9PWxEOylzdihsRCl9KSgpLGk9bHE7YnJlYWt9Y2F0Y2gobil7c2QoZSxuKX1yZXR1cm4gbiYmZS5zaGVsbFN1c3BlbmRDb3VudGVyKyssckg9ckk9bnVsbCxsUj1yLEwuSD1vLEwuQT1hLG51bGw9PT1sRCYmKGxOPW51bGwsbEI9MCx0MigpKSxpfWZ1bmN0aW9uIHN2KGUpe3ZhciBuPWkkKGUuYWx0ZXJuYXRlLGUsbFYpO2UubWVtb2l6ZWRQcm9wcz1lLnBlbmRpbmdQcm9wcyxudWxsPT09bj9zeChlKTpsRD1ufWZ1bmN0aW9uIHNiKGUpe3ZhciBuPWUsdD1uLmFsdGVybmF0ZTtzd2l0Y2gobi50YWcpe2Nhc2UgMTU6Y2FzZSAwOm49aXoodCxuLG4ucGVuZGluZ1Byb3BzLG4udHlwZSx2b2lkIDAsbEIpO2JyZWFrO2Nhc2UgMTE6bj1peih0LG4sbi5wZW5kaW5nUHJvcHMsbi50eXBlLnJlbmRlcixuLnJlZixsQik7YnJlYWs7Y2FzZSA1OmF0KG4pO2RlZmF1bHQ6aUoodCxuKSxuPWkkKHQsbj1sRD1ycihuLGxWKSxsVil9ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLG51bGw9PT1uP3N4KGUpOmxEPW59ZnVuY3Rpb24gc3koZSxuLHQscil7ckg9ckk9bnVsbCxhdChuKSxvZj1udWxsLG9wPTA7dmFyIG89bi5yZXR1cm47dHJ5e2lmKGZ1bmN0aW9uKGUsbix0LHIsbyl7aWYodC5mbGFnc3w9MzI3NjgsbnVsbCE9PXImJlwib2JqZWN0XCI9PXR5cGVvZiByJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiByLnRoZW4pe2lmKG51bGwhPT0obj10LmFsdGVybmF0ZSkmJnJXKG4sdCxvLCEwKSxudWxsIT09KHQ9b00uY3VycmVudCkpe3N3aXRjaCh0LnRhZyl7Y2FzZSAzMTpjYXNlIDEzOnJldHVybiBudWxsPT09b0k/c2coKTpudWxsPT09dC5hbHRlcm5hdGUmJjA9PT1scSYmKGxxPTMpLHQuZmxhZ3MmPS0yNTcsdC5mbGFnc3w9NjU1MzYsdC5sYW5lcz1vLHI9PT1vaT90LmZsYWdzfD0xNjM4NDoobnVsbD09PShuPXQudXBkYXRlUXVldWUpP3QudXBkYXRlUXVldWU9bmV3IFNldChbcl0pOm4uYWRkKHIpLHN6KGUscixvKSksITE7Y2FzZSAyMjpyZXR1cm4gdC5mbGFnc3w9NjU1MzYscj09PW9pP3QuZmxhZ3N8PTE2Mzg0OihudWxsPT09KG49dC51cGRhdGVRdWV1ZSk/KG49e3RyYW5zaXRpb25zOm51bGwsbWFya2VySW5zdGFuY2VzOm51bGwscmV0cnlRdWV1ZTpuZXcgU2V0KFtyXSl9LHQudXBkYXRlUXVldWU9bik6bnVsbD09PSh0PW4ucmV0cnlRdWV1ZSk/bi5yZXRyeVF1ZXVlPW5ldyBTZXQoW3JdKTp0LmFkZChyKSxzeihlLHIsbykpLCExfXRocm93IEVycm9yKGwoNDM1LHQudGFnKSl9cmV0dXJuIHN6KGUscixvKSxzZygpLCExfWlmKHJTKXJldHVybiBudWxsIT09KG49b00uY3VycmVudCk/KDA9PSg2NTUzNiZuLmZsYWdzKSYmKG4uZmxhZ3N8PTI1Niksbi5mbGFnc3w9NjU1MzYsbi5sYW5lcz1vLHIhPT1yUCYmckIocnUoZT1FcnJvcihsKDQyMikse2NhdXNlOnJ9KSx0KSkpOihyIT09clAmJnJCKHJ1KG49RXJyb3IobCg0MjMpLHtjYXVzZTpyfSksdCkpLGU9ZS5jdXJyZW50LmFsdGVybmF0ZSxlLmZsYWdzfD02NTUzNixvJj0tbyxlLmxhbmVzfD1vLHI9cnUocix0KSxvPWltKGUuc3RhdGVOb2RlLHIsbyksb1MoZSxvKSw0IT09bHEmJihscT0yKSksITE7dmFyIGE9RXJyb3IobCg1MjApLHtjYXVzZTpyfSk7aWYoYT1ydShhLHQpLG51bGw9PT1sSz9sSz1bYV06bEsucHVzaChhKSw0IT09bHEmJihscT0yKSxudWxsPT09bilyZXR1cm4hMDtyPXJ1KHIsdCksdD1uO2Rve3N3aXRjaCh0LnRhZyl7Y2FzZSAzOnJldHVybiB0LmZsYWdzfD02NTUzNixlPW8mLW8sdC5sYW5lc3w9ZSxlPWltKHQuc3RhdGVOb2RlLHIsZSksb1ModCxlKSwhMTtjYXNlIDE6aWYobj10LnR5cGUsYT10LnN0YXRlTm9kZSwwPT0oMTI4JnQuZmxhZ3MpJiYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbi5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3J8fG51bGwhPT1hJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBhLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PWwyfHwhbDIuaGFzKGEpKSkpcmV0dXJuIHQuZmxhZ3N8PTY1NTM2LG8mPS1vLHQubGFuZXN8PW8saWIobz1pdihvKSxlLHQsciksb1ModCxvKSwhMX10PXQucmV0dXJufXdoaWxlKG51bGwhPT10KTtyZXR1cm4hMX0oZSxvLG4sdCxsQikpe2xxPTEsaWgoZSxydSh0LGUuY3VycmVudCkpLGxEPW51bGw7cmV0dXJufX1jYXRjaChuKXtpZihudWxsIT09byl0aHJvdyBsRD1vLG47bHE9MSxpaChlLHJ1KHQsZS5jdXJyZW50KSksbEQ9bnVsbDtyZXR1cm59MzI3Njgmbi5mbGFncz8oclN8fDE9PT1yP2U9ITA6bEZ8fDAhPSgweDIwMDAwMDAwJmxCKT9lPSExOihsSD1lPSEwLCgyPT09cnx8OT09PXJ8fDM9PT1yfHw2PT09cikmJm51bGwhPT0ocj1vTS5jdXJyZW50KSYmMTM9PT1yLnRhZyYmKHIuZmxhZ3N8PTE2Mzg0KSksc3cobixlKSk6c3gobil9ZnVuY3Rpb24gc3goZSl7dmFyIG49ZTtkb3tpZigwIT0oMzI3Njgmbi5mbGFncykpcmV0dXJuIHZvaWQgc3cobixsSCk7ZT1uLnJldHVybjt2YXIgdD1mdW5jdGlvbihlLG4sdCl7dmFyIHI9bi5wZW5kaW5nUHJvcHM7c3dpdGNoKHJrKG4pLG4udGFnKXtjYXNlIDE2OmNhc2UgMTU6Y2FzZSAwOmNhc2UgMTE6Y2FzZSA3OmNhc2UgODpjYXNlIDEyOmNhc2UgOTpjYXNlIDE0OmNhc2UgMTpyZXR1cm4gaUcobiksbnVsbDtjYXNlIDM6cmV0dXJuIHQ9bi5zdGF0ZU5vZGUscj1udWxsLG51bGwhPT1lJiYocj1lLm1lbW9pemVkU3RhdGUuY2FjaGUpLG4ubWVtb2l6ZWRTdGF0ZS5jYWNoZSE9PXImJihuLmZsYWdzfD0yMDQ4KSxyVShyMCksVygpLHQucGVuZGluZ0NvbnRleHQmJih0LmNvbnRleHQ9dC5wZW5kaW5nQ29udGV4dCx0LnBlbmRpbmdDb250ZXh0PW51bGwpLChudWxsPT09ZXx8bnVsbD09PWUuY2hpbGQpJiYoclIobik/aVoobik6bnVsbD09PWV8fGUubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQmJjA9PSgyNTYmbi5mbGFncyl8fChuLmZsYWdzfD0xMDI0LHJEKCkpKSxpRyhuKSxudWxsO2Nhc2UgMjY6dmFyIG89bi50eXBlLGE9bi5tZW1vaXplZFN0YXRlO3JldHVybiBudWxsPT09ZT8oaVoobiksbnVsbCE9PWE/KGlHKG4pLGlYKG4sYSkpOihpRyhuKSxpWShuLG8sbnVsbCxyLHQpKSk6YT9hIT09ZS5tZW1vaXplZFN0YXRlPyhpWihuKSxpRyhuKSxpWChuLGEpKTooaUcobiksbi5mbGFncyY9LTB4MTAwMDAwMSk6KChlPWUubWVtb2l6ZWRQcm9wcykhPT1yJiZpWihuKSxpRyhuKSxpWShuLG8sZSxyLHQpKSxudWxsO2Nhc2UgMjc6aWYoWihuKSx0PVUuY3VycmVudCxvPW4udHlwZSxudWxsIT09ZSYmbnVsbCE9bi5zdGF0ZU5vZGUpZS5tZW1vaXplZFByb3BzIT09ciYmaVoobik7ZWxzZXtpZighcil7aWYobnVsbD09PW4uc3RhdGVOb2RlKXRocm93IEVycm9yKGwoMTY2KSk7cmV0dXJuIGlHKG4pLG51bGx9ZT1ILmN1cnJlbnQsclIobik/ckwobixlKToobi5zdGF0ZU5vZGU9ZT1jVChvLHIsdCksaVoobikpfXJldHVybiBpRyhuKSxudWxsO2Nhc2UgNTppZihaKG4pLG89bi50eXBlLG51bGwhPT1lJiZudWxsIT1uLnN0YXRlTm9kZSllLm1lbW9pemVkUHJvcHMhPT1yJiZpWihuKTtlbHNle2lmKCFyKXtpZihudWxsPT09bi5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IobCgxNjYpKTtyZXR1cm4gaUcobiksbnVsbH1pZihhPUguY3VycmVudCxyUihuKSlyTChuLGEpO2Vsc2V7dmFyIGk9Y2YoVS5jdXJyZW50KTtzd2l0Y2goYSl7Y2FzZSAxOmE9aS5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLG8pO2JyZWFrO2Nhc2UgMjphPWkuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLG8pO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKG8pe2Nhc2VcInN2Z1wiOmE9aS5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLG8pO2JyZWFrO2Nhc2VcIm1hdGhcIjphPWkuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTFwiLG8pO2JyZWFrO2Nhc2VcInNjcmlwdFwiOihhPWkuY3JlYXRlRWxlbWVudChcImRpdlwiKSkuaW5uZXJIVE1MPVwiPHNjcmlwdD48XFwvc2NyaXB0PlwiLGE9YS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2JyZWFrO2Nhc2VcInNlbGVjdFwiOmE9XCJzdHJpbmdcIj09dHlwZW9mIHIuaXM/aS5jcmVhdGVFbGVtZW50KFwic2VsZWN0XCIse2lzOnIuaXN9KTppLmNyZWF0ZUVsZW1lbnQoXCJzZWxlY3RcIiksci5tdWx0aXBsZT9hLm11bHRpcGxlPSEwOnIuc2l6ZSYmKGEuc2l6ZT1yLnNpemUpO2JyZWFrO2RlZmF1bHQ6YT1cInN0cmluZ1wiPT10eXBlb2Ygci5pcz9pLmNyZWF0ZUVsZW1lbnQobyx7aXM6ci5pc30pOmkuY3JlYXRlRWxlbWVudChvKX19YVtlTl09bixhW2VEXT1yO2U6Zm9yKGk9bi5jaGlsZDtudWxsIT09aTspe2lmKDU9PT1pLnRhZ3x8Nj09PWkudGFnKWEuYXBwZW5kQ2hpbGQoaS5zdGF0ZU5vZGUpO2Vsc2UgaWYoNCE9PWkudGFnJiYyNyE9PWkudGFnJiZudWxsIT09aS5jaGlsZCl7aS5jaGlsZC5yZXR1cm49aSxpPWkuY2hpbGQ7Y29udGludWV9aWYoaT09PW4pYnJlYWs7Zm9yKDtudWxsPT09aS5zaWJsaW5nOyl7aWYobnVsbD09PWkucmV0dXJufHxpLnJldHVybj09PW4pYnJlYWsgZTtpPWkucmV0dXJufWkuc2libGluZy5yZXR1cm49aS5yZXR1cm4saT1pLnNpYmxpbmd9c3dpdGNoKG4uc3RhdGVOb2RlPWEsY2MoYSxvLHIpLG8pe2Nhc2VcImJ1dHRvblwiOmNhc2VcImlucHV0XCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwidGV4dGFyZWFcIjpyPSEhci5hdXRvRm9jdXM7YnJlYWs7Y2FzZVwiaW1nXCI6cj0hMDticmVhaztkZWZhdWx0OnI9ITF9ciYmaVoobil9fXJldHVybiBpRyhuKSxpWShuLG4udHlwZSxudWxsPT09ZT9udWxsOmUubWVtb2l6ZWRQcm9wcyxuLnBlbmRpbmdQcm9wcyx0KSxudWxsO2Nhc2UgNjppZihlJiZudWxsIT1uLnN0YXRlTm9kZSllLm1lbW9pemVkUHJvcHMhPT1yJiZpWihuKTtlbHNle2lmKFwic3RyaW5nXCIhPXR5cGVvZiByJiZudWxsPT09bi5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IobCgxNjYpKTtpZihlPVUuY3VycmVudCxyUihuKSl7aWYoZT1uLnN0YXRlTm9kZSx0PW4ubWVtb2l6ZWRQcm9wcyxyPW51bGwsbnVsbCE9PShvPXJPKSlzd2l0Y2goby50YWcpe2Nhc2UgMjc6Y2FzZSA1OnI9by5tZW1vaXplZFByb3BzfWVbZU5dPW4sKGU9ISEoZS5ub2RlVmFsdWU9PT10fHxudWxsIT09ciYmITA9PT1yLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x8Y2koZS5ub2RlVmFsdWUsdCkpKXx8cnoobiwhMCl9ZWxzZShlPWNmKGUpLmNyZWF0ZVRleHROb2RlKHIpKVtlTl09bixuLnN0YXRlTm9kZT1lfXJldHVybiBpRyhuKSxudWxsO2Nhc2UgMzE6aWYodD1uLm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUpe2lmKHI9clIobiksbnVsbCE9PXQpe2lmKG51bGw9PT1lKXtpZighcil0aHJvdyBFcnJvcihsKDMxOCkpO2lmKCEoZT1udWxsIT09KGU9bi5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IobCg1NTcpKTtlW2VOXT1ufWVsc2Ugck4oKSwwPT0oMTI4Jm4uZmxhZ3MpJiYobi5tZW1vaXplZFN0YXRlPW51bGwpLG4uZmxhZ3N8PTQ7aUcobiksZT0hMX1lbHNlIHQ9ckQoKSxudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmKGUubWVtb2l6ZWRTdGF0ZS5oeWRyYXRpb25FcnJvcnM9dCksZT0hMDtpZighZSl7aWYoMjU2Jm4uZmxhZ3MpcmV0dXJuIG9xKG4pLG47cmV0dXJuIG9xKG4pLG51bGx9aWYoMCE9KDEyOCZuLmZsYWdzKSl0aHJvdyBFcnJvcihsKDU1OCkpfXJldHVybiBpRyhuKSxudWxsO2Nhc2UgMTM6aWYocj1uLm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7aWYobz1yUihuKSxudWxsIT09ciYmbnVsbCE9PXIuZGVoeWRyYXRlZCl7aWYobnVsbD09PWUpe2lmKCFvKXRocm93IEVycm9yKGwoMzE4KSk7aWYoIShvPW51bGwhPT0obz1uLm1lbW9pemVkU3RhdGUpP28uZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcihsKDMxNykpO29bZU5dPW59ZWxzZSByTigpLDA9PSgxMjgmbi5mbGFncykmJihuLm1lbW9pemVkU3RhdGU9bnVsbCksbi5mbGFnc3w9NDtpRyhuKSxvPSExfWVsc2Ugbz1yRCgpLG51bGwhPT1lJiZudWxsIT09ZS5tZW1vaXplZFN0YXRlJiYoZS5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycz1vKSxvPSEwO2lmKCFvKXtpZigyNTYmbi5mbGFncylyZXR1cm4gb3EobiksbjtyZXR1cm4gb3EobiksbnVsbH19aWYob3EobiksMCE9KDEyOCZuLmZsYWdzKSlyZXR1cm4gbi5sYW5lcz10LG47cmV0dXJuIHQ9bnVsbCE9PXIsZT1udWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSx0JiYocj1uLmNoaWxkLG89bnVsbCxudWxsIT09ci5hbHRlcm5hdGUmJm51bGwhPT1yLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJihvPXIuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGE9bnVsbCxudWxsIT09ci5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKGE9ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxhIT09byYmKHIuZmxhZ3N8PTIwNDgpKSx0IT09ZSYmdCYmKG4uY2hpbGQuZmxhZ3N8PTgxOTIpLGlLKG4sbi51cGRhdGVRdWV1ZSksaUcobiksbnVsbDtjYXNlIDQ6cmV0dXJuIFcoKSxudWxsPT09ZSYmczYobi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksaUcobiksbnVsbDtjYXNlIDEwOnJldHVybiByVShuLnR5cGUpLGlHKG4pLG51bGw7Y2FzZSAxOTppZihNKG9XKSxudWxsPT09KHI9bi5tZW1vaXplZFN0YXRlKSlyZXR1cm4gaUcobiksbnVsbDtpZihvPTAhPSgxMjgmbi5mbGFncyksbnVsbD09PShhPXIucmVuZGVyaW5nKSlpZihvKWlRKHIsITEpO2Vsc2V7aWYoMCE9PWxxfHxudWxsIT09ZSYmMCE9KDEyOCZlLmZsYWdzKSlmb3IoZT1uLmNoaWxkO251bGwhPT1lOyl7aWYobnVsbCE9PShhPW8kKGUpKSl7Zm9yKG4uZmxhZ3N8PTEyOCxpUShyLCExKSxuLnVwZGF0ZVF1ZXVlPWU9YS51cGRhdGVRdWV1ZSxpSyhuLGUpLG4uc3VidHJlZUZsYWdzPTAsZT10LHQ9bi5jaGlsZDtudWxsIT09dDspcnIodCxlKSx0PXQuc2libGluZztyZXR1cm4gSShvVywxJm9XLmN1cnJlbnR8MiksclMmJnJ4KG4sci50cmVlRm9ya0NvdW50KSxuLmNoaWxkfWU9ZS5zaWJsaW5nfW51bGwhPT1yLnRhaWwmJmVyKCk+bDAmJihuLmZsYWdzfD0xMjgsbz0hMCxpUShyLCExKSxuLmxhbmVzPTQxOTQzMDQpfWVsc2V7aWYoIW8paWYobnVsbCE9PShlPW8kKGEpKSl7aWYobi5mbGFnc3w9MTI4LG89ITAsbi51cGRhdGVRdWV1ZT1lPWUudXBkYXRlUXVldWUsaUsobixlKSxpUShyLCEwKSxudWxsPT09ci50YWlsJiZcImhpZGRlblwiPT09ci50YWlsTW9kZSYmIWEuYWx0ZXJuYXRlJiYhclMpcmV0dXJuIGlHKG4pLG51bGx9ZWxzZSAyKmVyKCktci5yZW5kZXJpbmdTdGFydFRpbWU+bDAmJjB4MjAwMDAwMDAhPT10JiYobi5mbGFnc3w9MTI4LG89ITAsaVEociwhMSksbi5sYW5lcz00MTk0MzA0KTtyLmlzQmFja3dhcmRzPyhhLnNpYmxpbmc9bi5jaGlsZCxuLmNoaWxkPWEpOihudWxsIT09KGU9ci5sYXN0KT9lLnNpYmxpbmc9YTpuLmNoaWxkPWEsci5sYXN0PWEpfWlmKG51bGwhPT1yLnRhaWwpcmV0dXJuIGU9ci50YWlsLHIucmVuZGVyaW5nPWUsci50YWlsPWUuc2libGluZyxyLnJlbmRlcmluZ1N0YXJ0VGltZT1lcigpLGUuc2libGluZz1udWxsLHQ9b1cuY3VycmVudCxJKG9XLG8/MSZ0fDI6MSZ0KSxyUyYmcngobixyLnRyZWVGb3JrQ291bnQpLGU7cmV0dXJuIGlHKG4pLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBvcShuKSxvQigpLHI9bnVsbCE9PW4ubWVtb2l6ZWRTdGF0ZSxudWxsIT09ZT9udWxsIT09ZS5tZW1vaXplZFN0YXRlIT09ciYmKG4uZmxhZ3N8PTgxOTIpOnImJihuLmZsYWdzfD04MTkyKSxyPzAhPSgweDIwMDAwMDAwJnQpJiYwPT0oMTI4Jm4uZmxhZ3MpJiYoaUcobiksNiZuLnN1YnRyZWVGbGFncyYmKG4uZmxhZ3N8PTgxOTIpKTppRyhuKSxudWxsIT09KHQ9bi51cGRhdGVRdWV1ZSkmJmlLKG4sdC5yZXRyeVF1ZXVlKSx0PW51bGwsbnVsbCE9PWUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYodD1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLHI9bnVsbCxudWxsIT09bi5tZW1vaXplZFN0YXRlJiZudWxsIT09bi5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKHI9bi5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxyIT09dCYmKG4uZmxhZ3N8PTIwNDgpLG51bGwhPT1lJiZNKHI3KSxudWxsO2Nhc2UgMjQ6cmV0dXJuIHQ9bnVsbCxudWxsIT09ZSYmKHQ9ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSxuLm1lbW9pemVkU3RhdGUuY2FjaGUhPT10JiYobi5mbGFnc3w9MjA0OCksclUocjApLGlHKG4pLG51bGw7Y2FzZSAyNTpjYXNlIDMwOnJldHVybiBudWxsfXRocm93IEVycm9yKGwoMTU2LG4udGFnKSl9KG4uYWx0ZXJuYXRlLG4sbFYpO2lmKG51bGwhPT10KXtsRD10O3JldHVybn1pZihudWxsIT09KG49bi5zaWJsaW5nKSl7bEQ9bjtyZXR1cm59bEQ9bj1lfXdoaWxlKG51bGwhPT1uKTswPT09bHEmJihscT01KX1mdW5jdGlvbiBzdyhlLG4pe2Rve3ZhciB0PWZ1bmN0aW9uKGUsbil7c3dpdGNoKHJrKG4pLG4udGFnKXtjYXNlIDE6cmV0dXJuIDY1NTM2JihlPW4uZmxhZ3MpPyhuLmZsYWdzPS02NTUzNyZlfDEyOCxuKTpudWxsO2Nhc2UgMzpyZXR1cm4gclUocjApLFcoKSwwIT0oNjU1MzYmKGU9bi5mbGFncykpJiYwPT0oMTI4JmUpPyhuLmZsYWdzPS02NTUzNyZlfDEyOCxuKTpudWxsO2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6cmV0dXJuIFoobiksbnVsbDtjYXNlIDMxOmlmKG51bGwhPT1uLm1lbW9pemVkU3RhdGUpe2lmKG9xKG4pLG51bGw9PT1uLmFsdGVybmF0ZSl0aHJvdyBFcnJvcihsKDM0MCkpO3JOKCl9cmV0dXJuIDY1NTM2JihlPW4uZmxhZ3MpPyhuLmZsYWdzPS02NTUzNyZlfDEyOCxuKTpudWxsO2Nhc2UgMTM6aWYob3EobiksbnVsbCE9PShlPW4ubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT1lLmRlaHlkcmF0ZWQpe2lmKG51bGw9PT1uLmFsdGVybmF0ZSl0aHJvdyBFcnJvcihsKDM0MCkpO3JOKCl9cmV0dXJuIDY1NTM2JihlPW4uZmxhZ3MpPyhuLmZsYWdzPS02NTUzNyZlfDEyOCxuKTpudWxsO2Nhc2UgMTk6cmV0dXJuIE0ob1cpLG51bGw7Y2FzZSA0OnJldHVybiBXKCksbnVsbDtjYXNlIDEwOnJldHVybiByVShuLnR5cGUpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBvcShuKSxvQigpLG51bGwhPT1lJiZNKHI3KSw2NTUzNiYoZT1uLmZsYWdzKT8obi5mbGFncz0tNjU1MzcmZXwxMjgsbik6bnVsbDtjYXNlIDI0OnJldHVybiByVShyMCksbnVsbDtkZWZhdWx0OnJldHVybiBudWxsfX0oZS5hbHRlcm5hdGUsZSk7aWYobnVsbCE9PXQpe3QuZmxhZ3MmPTMyNzY3LGxEPXQ7cmV0dXJufWlmKG51bGwhPT0odD1lLnJldHVybikmJih0LmZsYWdzfD0zMjc2OCx0LnN1YnRyZWVGbGFncz0wLHQuZGVsZXRpb25zPW51bGwpLCFuJiZudWxsIT09KGU9ZS5zaWJsaW5nKSl7bEQ9ZTtyZXR1cm59bEQ9ZT10fXdoaWxlKG51bGwhPT1lKTtscT02LGxEPW51bGx9ZnVuY3Rpb24gc2ooZSxuLHQscixvLGEsaSxzLGMpe2UuY2FuY2VsUGVuZGluZ0NvbW1pdD1udWxsO2RvIHNTKCk7d2hpbGUoMCE9PWw0KTtpZigwIT0oNiZsUikpdGhyb3cgRXJyb3IobCgzMjcpKTtpZihudWxsIT09bil7aWYobj09PWUuY3VycmVudCl0aHJvdyBFcnJvcihsKDE3NykpO2lmKCFmdW5jdGlvbihlLG4sdCxyLG8sYSl7dmFyIGk9ZS5wZW5kaW5nTGFuZXM7ZS5wZW5kaW5nTGFuZXM9dCxlLnN1c3BlbmRlZExhbmVzPTAsZS5waW5nZWRMYW5lcz0wLGUud2FybUxhbmVzPTAsZS5leHBpcmVkTGFuZXMmPXQsZS5lbnRhbmdsZWRMYW5lcyY9dCxlLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzJj10LGUuc2hlbGxTdXNwZW5kQ291bnRlcj0wO3ZhciBsPWUuZW50YW5nbGVtZW50cyxzPWUuZXhwaXJhdGlvblRpbWVzLGM9ZS5oaWRkZW5VcGRhdGVzO2Zvcih0PWkmfnQ7MDx0Oyl7dmFyIHU9MzEtZWcodCksZD0xPDx1O2xbdV09MCxzW3VdPS0xO3ZhciBmPWNbdV07aWYobnVsbCE9PWYpZm9yKGNbdV09bnVsbCx1PTA7dTxmLmxlbmd0aDt1Kyspe3ZhciBwPWZbdV07bnVsbCE9PXAmJihwLmxhbmUmPS0weDIwMDAwMDAxKX10Jj1+ZH0wIT09ciYmZVMoZSxyLDApLDAhPT1hJiYwPT09byYmMCE9PWUudGFnJiYoZS5zdXNwZW5kZWRMYW5lc3w9YSZ+KGkmfm4pKX0oZSx0LGE9bi5sYW5lc3xuLmNoaWxkTGFuZXN8dDEsaSxzLGMpLGU9PT1sTiYmKGxEPWxOPW51bGwsbEI9MCksbDM9bixsNT1lLGw2PXQsbDk9YSxsOD1vLGw3PXIsMCE9KDEwMjU2Jm4uc3VidHJlZUZsYWdzKXx8MCE9KDEwMjU2Jm4uZmxhZ3MpPyhlLmNhbGxiYWNrTm9kZT1udWxsLGUuY2FsbGJhY2tQcmlvcml0eT0wLEooZWwsZnVuY3Rpb24oKXtyZXR1cm4gc0UoITApLG51bGx9KSk6KGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTApLHI9MCE9KDEzODc4Jm4uZmxhZ3MpLDAhPSgxMzg3OCZuLnN1YnRyZWVGbGFncyl8fHIpe3I9TC5ULEwuVD1udWxsLG89VC5wLFQucD0yLGk9bFIsbFJ8PTQ7dHJ5eyFmdW5jdGlvbihlLG4pe2lmKGU9ZS5jb250YWluZXJJbmZvLGN1PXVyLHRQKGU9dF8oZSkpKXtpZihcInNlbGVjdGlvblN0YXJ0XCJpbiBlKXZhciB0PXtzdGFydDplLnNlbGVjdGlvblN0YXJ0LGVuZDplLnNlbGVjdGlvbkVuZH07ZWxzZSBlOnt2YXIgcj0odD0odD1lLm93bmVyRG9jdW1lbnQpJiZ0LmRlZmF1bHRWaWV3fHx3aW5kb3cpLmdldFNlbGVjdGlvbiYmdC5nZXRTZWxlY3Rpb24oKTtpZihyJiYwIT09ci5yYW5nZUNvdW50KXt0PXIuYW5jaG9yTm9kZTt2YXIgbyxhPXIuYW5jaG9yT2Zmc2V0LGk9ci5mb2N1c05vZGU7cj1yLmZvY3VzT2Zmc2V0O3RyeXt0Lm5vZGVUeXBlLGkubm9kZVR5cGV9Y2F0Y2goZSl7dD1udWxsO2JyZWFrIGV9dmFyIHM9MCxjPS0xLHU9LTEsZD0wLGY9MCxwPWUsaD1udWxsO246Zm9yKDs7KXtmb3IoO3AhPT10fHwwIT09YSYmMyE9PXAubm9kZVR5cGV8fChjPXMrYSkscCE9PWl8fDAhPT1yJiYzIT09cC5ub2RlVHlwZXx8KHU9cytyKSwzPT09cC5ub2RlVHlwZSYmKHMrPXAubm9kZVZhbHVlLmxlbmd0aCksbnVsbCE9PShvPXAuZmlyc3RDaGlsZCk7KWg9cCxwPW87Zm9yKDs7KXtpZihwPT09ZSlicmVhayBuO2lmKGg9PT10JiYrK2Q9PT1hJiYoYz1zKSxoPT09aSYmKytmPT09ciYmKHU9cyksbnVsbCE9PShvPXAubmV4dFNpYmxpbmcpKWJyZWFrO2g9KHA9aCkucGFyZW50Tm9kZX1wPW99dD0tMT09PWN8fC0xPT09dT9udWxsOntzdGFydDpjLGVuZDp1fX1lbHNlIHQ9bnVsbH10PXR8fHtzdGFydDowLGVuZDowfX1lbHNlIHQ9bnVsbDtmb3IoY2Q9e2ZvY3VzZWRFbGVtOmUsc2VsZWN0aW9uUmFuZ2U6dH0sdXI9ITEsbGk9bjtudWxsIT09bGk7KWlmKGU9KG49bGkpLmNoaWxkLDAhPSgxMDI0Jm4uc3VidHJlZUZsYWdzKSYmbnVsbCE9PWUpZS5yZXR1cm49bixsaT1lO2Vsc2UgZm9yKDtudWxsIT09bGk7KXtzd2l0Y2goaT0obj1saSkuYWx0ZXJuYXRlLGU9bi5mbGFncyxuLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNTpjYXNlIDU6Y2FzZSAyNjpjYXNlIDI3OmNhc2UgNjpjYXNlIDQ6Y2FzZSAxNzpicmVhaztjYXNlIDE6aWYoMCE9KDEwMjQmZSkmJm51bGwhPT1pKXtlPXZvaWQgMCx0PW4sYT1pLm1lbW9pemVkUHJvcHMsaT1pLm1lbW9pemVkU3RhdGUscj10LnN0YXRlTm9kZTt0cnl7dmFyIGc9aWModC50eXBlLGEpO2U9ci5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShnLGkpLHIuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGU9ZX1jYXRjaChlKXtzUCh0LHQucmV0dXJuLGUpfX1icmVhaztjYXNlIDM6aWYoMCE9KDEwMjQmZSkpe2lmKDk9PT0odD0oZT1uLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKS5ub2RlVHlwZSkpY08oZSk7ZWxzZSBpZigxPT09dClzd2l0Y2goZS5ub2RlTmFtZSl7Y2FzZVwiSEVBRFwiOmNhc2VcIkhUTUxcIjpjYXNlXCJCT0RZXCI6Y08oZSk7YnJlYWs7ZGVmYXVsdDplLnRleHRDb250ZW50PVwiXCJ9fWJyZWFrO2RlZmF1bHQ6aWYoMCE9KDEwMjQmZSkpdGhyb3cgRXJyb3IobCgxNjMpKX1pZihudWxsIT09KGU9bi5zaWJsaW5nKSl7ZS5yZXR1cm49bi5yZXR1cm4sbGk9ZTticmVha31saT1uLnJldHVybn19KGUsbix0KX1maW5hbGx5e2xSPWksVC5wPW8sTC5UPXJ9fWw0PTEsc2soKSxzQSgpLHNPKCl9fWZ1bmN0aW9uIHNrKCl7aWYoMT09PWw0KXtsND0wO3ZhciBlPWw1LG49bDMsdD0wIT0oMTM4Nzgmbi5mbGFncyk7aWYoMCE9KDEzODc4Jm4uc3VidHJlZUZsYWdzKXx8dCl7dD1MLlQsTC5UPW51bGw7dmFyIHI9VC5wO1QucD0yO3ZhciBvPWxSO2xSfD00O3RyeXtsdihuLGUpO3ZhciBhPWNkLGk9dF8oZS5jb250YWluZXJJbmZvKSxsPWEuZm9jdXNlZEVsZW0scz1hLnNlbGVjdGlvblJhbmdlO2lmKGkhPT1sJiZsJiZsLm93bmVyRG9jdW1lbnQmJmZ1bmN0aW9uIGUobix0KXtyZXR1cm4hIW4mJiEhdCYmKG49PT10fHwoIW58fDMhPT1uLm5vZGVUeXBlKSYmKHQmJjM9PT10Lm5vZGVUeXBlP2Uobix0LnBhcmVudE5vZGUpOlwiY29udGFpbnNcImluIG4/bi5jb250YWlucyh0KTohIW4uY29tcGFyZURvY3VtZW50UG9zaXRpb24mJiEhKDE2Jm4uY29tcGFyZURvY3VtZW50UG9zaXRpb24odCkpKSl9KGwub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbCkpe2lmKG51bGwhPT1zJiZ0UChsKSl7dmFyIGM9cy5zdGFydCx1PXMuZW5kO2lmKHZvaWQgMD09PXUmJih1PWMpLFwic2VsZWN0aW9uU3RhcnRcImluIGwpbC5zZWxlY3Rpb25TdGFydD1jLGwuc2VsZWN0aW9uRW5kPU1hdGgubWluKHUsbC52YWx1ZS5sZW5ndGgpO2Vsc2V7dmFyIGQ9bC5vd25lckRvY3VtZW50fHxkb2N1bWVudCxmPWQmJmQuZGVmYXVsdFZpZXd8fHdpbmRvdztpZihmLmdldFNlbGVjdGlvbil7dmFyIHA9Zi5nZXRTZWxlY3Rpb24oKSxoPWwudGV4dENvbnRlbnQubGVuZ3RoLGc9TWF0aC5taW4ocy5zdGFydCxoKSxtPXZvaWQgMD09PXMuZW5kP2c6TWF0aC5taW4ocy5lbmQsaCk7IXAuZXh0ZW5kJiZnPm0mJihpPW0sbT1nLGc9aSk7dmFyIHY9dEUobCxnKSxiPXRFKGwsbSk7aWYodiYmYiYmKDEhPT1wLnJhbmdlQ291bnR8fHAuYW5jaG9yTm9kZSE9PXYubm9kZXx8cC5hbmNob3JPZmZzZXQhPT12Lm9mZnNldHx8cC5mb2N1c05vZGUhPT1iLm5vZGV8fHAuZm9jdXNPZmZzZXQhPT1iLm9mZnNldCkpe3ZhciB5PWQuY3JlYXRlUmFuZ2UoKTt5LnNldFN0YXJ0KHYubm9kZSx2Lm9mZnNldCkscC5yZW1vdmVBbGxSYW5nZXMoKSxnPm0/KHAuYWRkUmFuZ2UoeSkscC5leHRlbmQoYi5ub2RlLGIub2Zmc2V0KSk6KHkuc2V0RW5kKGIubm9kZSxiLm9mZnNldCkscC5hZGRSYW5nZSh5KSl9fX19Zm9yKGQ9W10scD1sO3A9cC5wYXJlbnROb2RlOykxPT09cC5ub2RlVHlwZSYmZC5wdXNoKHtlbGVtZW50OnAsbGVmdDpwLnNjcm9sbExlZnQsdG9wOnAuc2Nyb2xsVG9wfSk7Zm9yKFwiZnVuY3Rpb25cIj09dHlwZW9mIGwuZm9jdXMmJmwuZm9jdXMoKSxsPTA7bDxkLmxlbmd0aDtsKyspe3ZhciB4PWRbbF07eC5lbGVtZW50LnNjcm9sbExlZnQ9eC5sZWZ0LHguZWxlbWVudC5zY3JvbGxUb3A9eC50b3B9fXVyPSEhY3UsY2Q9Y3U9bnVsbH1maW5hbGx5e2xSPW8sVC5wPXIsTC5UPXR9fWUuY3VycmVudD1uLGw0PTJ9fWZ1bmN0aW9uIHNBKCl7aWYoMj09PWw0KXtsND0wO3ZhciBlPWw1LG49bDMsdD0wIT0oODc3MiZuLmZsYWdzKTtpZigwIT0oODc3MiZuLnN1YnRyZWVGbGFncyl8fHQpe3Q9TC5ULEwuVD1udWxsO3ZhciByPVQucDtULnA9Mjt2YXIgbz1sUjtsUnw9NDt0cnl7bGwoZSxuLmFsdGVybmF0ZSxuKX1maW5hbGx5e2xSPW8sVC5wPXIsTC5UPXR9fWw0PTN9fWZ1bmN0aW9uIHNPKCl7aWYoND09PWw0fHwzPT09bDQpe2w0PTAsZXQoKTt2YXIgZT1sNSxuPWwzLHQ9bDYscj1sNzswIT0oMTAyNTYmbi5zdWJ0cmVlRmxhZ3MpfHwwIT0oMTAyNTYmbi5mbGFncyk/bDQ9NToobDQ9MCxsMz1sNT1udWxsLHNDKGUsZS5wZW5kaW5nTGFuZXMpKTt2YXIgbz1lLnBlbmRpbmdMYW5lcztpZigwPT09byYmKGwyPW51bGwpLGV6KHQpLG49bi5zdGF0ZU5vZGUsZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uQ29tbWl0RmliZXJSb290KXRyeXtlcC5vbkNvbW1pdEZpYmVyUm9vdChlZixuLHZvaWQgMCwxMjg9PSgxMjgmbi5jdXJyZW50LmZsYWdzKSl9Y2F0Y2goZSl7fWlmKG51bGwhPT1yKXtuPUwuVCxvPVQucCxULnA9MixMLlQ9bnVsbDt0cnl7Zm9yKHZhciBhPWUub25SZWNvdmVyYWJsZUVycm9yLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGw9cltpXTthKGwudmFsdWUse2NvbXBvbmVudFN0YWNrOmwuc3RhY2t9KX19ZmluYWxseXtMLlQ9bixULnA9b319MCE9KDMmbDYpJiZzUygpLHNVKGUpLG89ZS5wZW5kaW5nTGFuZXMsMCE9KDQxOTQwOTAmdCkmJjAhPSg0MiZvKT9lPT09c24/c2UrKzooc2U9MCxzbj1lKTpzZT0wLHNWKDAsITEpfX1mdW5jdGlvbiBzQyhlLG4pezA9PShlLnBvb2xlZENhY2hlTGFuZXMmPW4pJiZudWxsIT0obj1lLnBvb2xlZENhY2hlKSYmKGUucG9vbGVkQ2FjaGU9bnVsbCxyMihuKSl9ZnVuY3Rpb24gc1MoZSl7cmV0dXJuIHNrKCksc0EoKSxzTygpLHNFKGUpfWZ1bmN0aW9uIHNFKCl7aWYoNSE9PWw0KXJldHVybiExO3ZhciBlPWw1LG49bDk7bDk9MDt2YXIgdD1leihsNikscj1MLlQsbz1ULnA7dHJ5e1QucD0zMj50PzMyOnQsTC5UPW51bGwsdD1sOCxsOD1udWxsO3ZhciBhPWw1LGk9bDY7aWYobDQ9MCxsMz1sNT1udWxsLGw2PTAsMCE9KDYmbFIpKXRocm93IEVycm9yKGwoMzMxKSk7dmFyIHM9bFI7aWYobFJ8PTQsbFAoYS5jdXJyZW50KSxsayhhLGEuY3VycmVudCxpLHQpLGxSPXMsc1YoMCwhMSksZXAmJlwiZnVuY3Rpb25cIj09dHlwZW9mIGVwLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7ZXAub25Qb3N0Q29tbWl0RmliZXJSb290KGVmLGEpfWNhdGNoKGUpe31yZXR1cm4hMH1maW5hbGx5e1QucD1vLEwuVD1yLHNDKGUsbil9fWZ1bmN0aW9uIHNfKGUsbix0KXtuPXJ1KHQsbiksbj1pbShlLnN0YXRlTm9kZSxuLDIpLG51bGwhPT0oZT1vTyhlLG4sMikpJiYoZUMoZSwyKSxzVShlKSl9ZnVuY3Rpb24gc1AoZSxuLHQpe2lmKDM9PT1lLnRhZylzXyhlLGUsdCk7ZWxzZSBmb3IoO251bGwhPT1uOyl7aWYoMz09PW4udGFnKXtzXyhuLGUsdCk7YnJlYWt9aWYoMT09PW4udGFnKXt2YXIgcj1uLnN0YXRlTm9kZTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PWwyfHwhbDIuaGFzKHIpKSl7ZT1ydSh0LGUpLG51bGwhPT0ocj1vTyhuLHQ9aXYoMiksMikpJiYoaWIodCxyLG4sZSksZUMociwyKSxzVShyKSk7YnJlYWt9fW49bi5yZXR1cm59fWZ1bmN0aW9uIHN6KGUsbix0KXt2YXIgcj1lLnBpbmdDYWNoZTtpZihudWxsPT09cil7cj1lLnBpbmdDYWNoZT1uZXcgbFQ7dmFyIG89bmV3IFNldDtyLnNldChuLG8pfWVsc2Ugdm9pZCAwPT09KG89ci5nZXQobikpJiYobz1uZXcgU2V0LHIuc2V0KG4sbykpO28uaGFzKHQpfHwobFU9ITAsby5hZGQodCksZT1zTC5iaW5kKG51bGwsZSxuLHQpLG4udGhlbihlLGUpKX1mdW5jdGlvbiBzTChlLG4sdCl7dmFyIHI9ZS5waW5nQ2FjaGU7bnVsbCE9PXImJnIuZGVsZXRlKG4pLGUucGluZ2VkTGFuZXN8PWUuc3VzcGVuZGVkTGFuZXMmdCxlLndhcm1MYW5lcyY9fnQsbE49PT1lJiYobEImdCk9PT10JiYoND09PWxxfHwzPT09bHEmJigweDNjMDAwMDAmbEIpPT09bEImJjMwMD5lcigpLWxKPzA9PSgyJmxSKSYmc3UoZSwwKTpsWnw9dCxsWD09PWxCJiYobFg9MCkpLHNVKGUpfWZ1bmN0aW9uIHNUKGUsbil7MD09PW4mJihuPWVBKCkpLG51bGwhPT0oZT10MyhlLG4pKSYmKGVDKGUsbiksc1UoZSkpfWZ1bmN0aW9uIHNSKGUpe3ZhciBuPWUubWVtb2l6ZWRTdGF0ZSx0PTA7bnVsbCE9PW4mJih0PW4ucmV0cnlMYW5lKSxzVChlLHQpfWZ1bmN0aW9uIHNOKGUsbil7dmFyIHQ9MDtzd2l0Y2goZS50YWcpe2Nhc2UgMzE6Y2FzZSAxMzp2YXIgcj1lLnN0YXRlTm9kZSxvPWUubWVtb2l6ZWRTdGF0ZTtudWxsIT09byYmKHQ9by5yZXRyeUxhbmUpO2JyZWFrO2Nhc2UgMTk6cj1lLnN0YXRlTm9kZTticmVhaztjYXNlIDIyOnI9ZS5zdGF0ZU5vZGUuX3JldHJ5Q2FjaGU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDMxNCkpfW51bGwhPT1yJiZyLmRlbGV0ZShuKSxzVChlLHQpfXZhciBzRD1udWxsLHNCPW51bGwsc009ITEsc0k9ITEsc0g9ITEsc0Y9MDtmdW5jdGlvbiBzVShlKXtlIT09c0ImJm51bGw9PT1lLm5leHQmJihudWxsPT09c0I/c0Q9c0I9ZTpzQj1zQi5uZXh0PWUpLHNJPSEwLHNNfHwoc009ITAsY3goZnVuY3Rpb24oKXswIT0oNiZsUik/SihlYSxzcSk6c1coKX0pKX1mdW5jdGlvbiBzVihlLG4pe2lmKCFzSCYmc0kpe3NIPSEwO2RvIGZvcih2YXIgdD0hMSxyPXNEO251bGwhPT1yOyl7aWYoIW4paWYoMCE9PWUpe3ZhciBvPXIucGVuZGluZ0xhbmVzO2lmKDA9PT1vKXZhciBhPTA7ZWxzZXt2YXIgaT1yLnN1c3BlbmRlZExhbmVzLGw9ci5waW5nZWRMYW5lczthPTB4YzAwMDA5NSYoYT0oMTw8MzEtZWcoNDJ8ZSkrMSktMSYobyZ+KGkmfmwpKSk/MHhjMDAwMDk1JmF8MTphPzJ8YTowfTAhPT1hJiYodD0hMCxzWShyLGEpKX1lbHNlIGE9bEIsMD09KDMmKGE9ZXcocixyPT09bE4/YTowLG51bGwhPT1yLmNhbmNlbFBlbmRpbmdDb21taXR8fC0xIT09ci50aW1lb3V0SGFuZGxlKSkpfHxlaihyLGEpfHwodD0hMCxzWShyLGEpKTtyPXIubmV4dH13aGlsZSh0KTtzSD0hMX19ZnVuY3Rpb24gc3EoKXtzVygpfWZ1bmN0aW9uIHNXKCl7c0k9c009ITE7dmFyIGUsbj0wOzA9PT1zRnx8KChlPXdpbmRvdy5ldmVudCkmJlwicG9wc3RhdGVcIj09PWUudHlwZT9lPT09Y218fChjbT1lLDApOihjbT1udWxsLDEpKXx8KG49c0YpO2Zvcih2YXIgdD1lcigpLHI9bnVsbCxvPXNEO251bGwhPT1vOyl7dmFyIGE9by5uZXh0LGk9cyQobyx0KTswPT09aT8oby5uZXh0PW51bGwsbnVsbD09PXI/c0Q9YTpyLm5leHQ9YSxudWxsPT09YSYmKHNCPXIpKToocj1vLCgwIT09bnx8MCE9KDMmaSkpJiYoc0k9ITApKSxvPWF9MCE9PWw0JiY1IT09bDR8fHNWKG4sITEpLDAhPT1zRiYmKHNGPTApfWZ1bmN0aW9uIHMkKGUsbil7Zm9yKHZhciB0PWUuc3VzcGVuZGVkTGFuZXMscj1lLnBpbmdlZExhbmVzLG89ZS5leHBpcmF0aW9uVGltZXMsYT0tMHgzYzAwMDAxJmUucGVuZGluZ0xhbmVzOzA8YTspe3ZhciBpPTMxLWVnKGEpLGw9MTw8aSxzPW9baV07LTE9PT1zPygwPT0obCZ0KXx8MCE9KGwmcikpJiYob1tpXT1mdW5jdGlvbihlLG4pe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDg6Y2FzZSA2NDpyZXR1cm4gbisyNTA7Y2FzZSAxNjpjYXNlIDMyOmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiBuKzVlMztkZWZhdWx0OnJldHVybiAtMX19KGwsbikpOnM8PW4mJihlLmV4cGlyZWRMYW5lc3w9bCksYSY9fmx9aWYobj1sTix0PWxCLHQ9ZXcoZSxlPT09bj90OjAsbnVsbCE9PWUuY2FuY2VsUGVuZGluZ0NvbW1pdHx8LTEhPT1lLnRpbWVvdXRIYW5kbGUpLHI9ZS5jYWxsYmFja05vZGUsMD09PXR8fGU9PT1uJiYoMj09PWxNfHw5PT09bE0pfHxudWxsIT09ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KXJldHVybiBudWxsIT09ciYmbnVsbCE9PXImJmVlKHIpLGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTA7aWYoMD09KDMmdCl8fGVqKGUsdCkpe2lmKChuPXQmLXQpPT09ZS5jYWxsYmFja1ByaW9yaXR5KXJldHVybiBuO3N3aXRjaChudWxsIT09ciYmZWUociksZXoodCkpe2Nhc2UgMjpjYXNlIDg6dD1laTticmVhaztjYXNlIDMyOmRlZmF1bHQ6dD1lbDticmVhaztjYXNlIDB4MTAwMDAwMDA6dD1lY31yZXR1cm4gdD1KKHQscj1zWi5iaW5kKG51bGwsZSkpLGUuY2FsbGJhY2tQcmlvcml0eT1uLGUuY2FsbGJhY2tOb2RlPXQsbn1yZXR1cm4gbnVsbCE9PXImJm51bGwhPT1yJiZlZShyKSxlLmNhbGxiYWNrUHJpb3JpdHk9MixlLmNhbGxiYWNrTm9kZT1udWxsLDJ9ZnVuY3Rpb24gc1ooZSxuKXtpZigwIT09bDQmJjUhPT1sNClyZXR1cm4gZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MCxudWxsO3ZhciB0PWUuY2FsbGJhY2tOb2RlO2lmKHNTKCEwKSYmZS5jYWxsYmFja05vZGUhPT10KXJldHVybiBudWxsO3ZhciByPWxCO3JldHVybiAwPT09KHI9ZXcoZSxlPT09bE4/cjowLG51bGwhPT1lLmNhbmNlbFBlbmRpbmdDb21taXR8fC0xIT09ZS50aW1lb3V0SGFuZGxlKSk/bnVsbDooc2EoZSxyLG4pLHMkKGUsZXIoKSksbnVsbCE9ZS5jYWxsYmFja05vZGUmJmUuY2FsbGJhY2tOb2RlPT09dD9zWi5iaW5kKG51bGwsZSk6bnVsbCl9ZnVuY3Rpb24gc1koZSxuKXtpZihzUygpKXJldHVybiBudWxsO3NhKGUsbiwhMCl9ZnVuY3Rpb24gc1goKXtpZigwPT09c0Ype3ZhciBlPXIzO3NGPTAhPT1lP2U6ZWsoKX1yZXR1cm4gc0Z9ZnVuY3Rpb24gc0soZSl7cmV0dXJuIG51bGw9PWV8fFwic3ltYm9sXCI9PXR5cGVvZiBlfHxcImJvb2xlYW5cIj09dHlwZW9mIGU/bnVsbDpcImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2U6bmcoXCJcIitlKX1mdW5jdGlvbiBzUShlLG4pe3ZhciB0PW4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7cmV0dXJuIHQubmFtZT1uLm5hbWUsdC52YWx1ZT1uLnZhbHVlLGUuaWQmJnQuc2V0QXR0cmlidXRlKFwiZm9ybVwiLGUuaWQpLG4ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCxuKSxlPW5ldyBGb3JtRGF0YShlKSx0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCksZX1mb3IodmFyIHNHPTA7c0c8dEsubGVuZ3RoO3NHKyspe3ZhciBzSj10S1tzR107dFEoc0oudG9Mb3dlckNhc2UoKSxcIm9uXCIrKHNKWzBdLnRvVXBwZXJDYXNlKCkrc0ouc2xpY2UoMSkpKX10USh0VSxcIm9uQW5pbWF0aW9uRW5kXCIpLHRRKHRWLFwib25BbmltYXRpb25JdGVyYXRpb25cIiksdFEodHEsXCJvbkFuaW1hdGlvblN0YXJ0XCIpLHRRKFwiZGJsY2xpY2tcIixcIm9uRG91YmxlQ2xpY2tcIiksdFEoXCJmb2N1c2luXCIsXCJvbkZvY3VzXCIpLHRRKFwiZm9jdXNvdXRcIixcIm9uQmx1clwiKSx0USh0VyxcIm9uVHJhbnNpdGlvblJ1blwiKSx0USh0JCxcIm9uVHJhbnNpdGlvblN0YXJ0XCIpLHRRKHRaLFwib25UcmFuc2l0aW9uQ2FuY2VsXCIpLHRRKHRZLFwib25UcmFuc2l0aW9uRW5kXCIpLGVHKFwib25Nb3VzZUVudGVyXCIsW1wibW91c2VvdXRcIixcIm1vdXNlb3ZlclwiXSksZUcoXCJvbk1vdXNlTGVhdmVcIixbXCJtb3VzZW91dFwiLFwibW91c2VvdmVyXCJdKSxlRyhcIm9uUG9pbnRlckVudGVyXCIsW1wicG9pbnRlcm91dFwiLFwicG9pbnRlcm92ZXJcIl0pLGVHKFwib25Qb2ludGVyTGVhdmVcIixbXCJwb2ludGVyb3V0XCIsXCJwb2ludGVyb3ZlclwiXSksZVEoXCJvbkNoYW5nZVwiLFwiY2hhbmdlIGNsaWNrIGZvY3VzaW4gZm9jdXNvdXQgaW5wdXQga2V5ZG93biBrZXl1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcIiBcIikpLGVRKFwib25TZWxlY3RcIixcImZvY3Vzb3V0IGNvbnRleHRtZW51IGRyYWdlbmQgZm9jdXNpbiBrZXlkb3duIGtleXVwIG1vdXNlZG93biBtb3VzZXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFwiIFwiKSksZVEoXCJvbkJlZm9yZUlucHV0XCIsW1wiY29tcG9zaXRpb25lbmRcIixcImtleXByZXNzXCIsXCJ0ZXh0SW5wdXRcIixcInBhc3RlXCJdKSxlUShcIm9uQ29tcG9zaXRpb25FbmRcIixcImNvbXBvc2l0aW9uZW5kIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpKSxlUShcIm9uQ29tcG9zaXRpb25TdGFydFwiLFwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSksZVEoXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsXCJjb21wb3NpdGlvbnVwZGF0ZSBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKSk7dmFyIHMwPVwiYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmdcIi5zcGxpdChcIiBcIiksczE9bmV3IFNldChcImJlZm9yZXRvZ2dsZSBjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCBzY3JvbGxlbmQgdG9nZ2xlXCIuc3BsaXQoXCIgXCIpLmNvbmNhdChzMCkpO2Z1bmN0aW9uIHMyKGUsbil7bj0wIT0oNCZuKTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIHI9ZVt0XSxvPXIuZXZlbnQ7cj1yLmxpc3RlbmVycztlOnt2YXIgYT12b2lkIDA7aWYobilmb3IodmFyIGk9ci5sZW5ndGgtMTswPD1pO2ktLSl7dmFyIGw9cltpXSxzPWwuaW5zdGFuY2UsYz1sLmN1cnJlbnRUYXJnZXQ7aWYobD1sLmxpc3RlbmVyLHMhPT1hJiZvLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYnJlYWsgZTthPWwsby5jdXJyZW50VGFyZ2V0PWM7dHJ5e2Eobyl9Y2F0Y2goZSl7dEcoZSl9by5jdXJyZW50VGFyZ2V0PW51bGwsYT1zfWVsc2UgZm9yKGk9MDtpPHIubGVuZ3RoO2krKyl7aWYocz0obD1yW2ldKS5pbnN0YW5jZSxjPWwuY3VycmVudFRhcmdldCxsPWwubGlzdGVuZXIscyE9PWEmJm8uaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBlO2E9bCxvLmN1cnJlbnRUYXJnZXQ9Yzt0cnl7YShvKX1jYXRjaChlKXt0RyhlKX1vLmN1cnJlbnRUYXJnZXQ9bnVsbCxhPXN9fX19ZnVuY3Rpb24gczQoZSxuKXt2YXIgdD1uW2VNXTt2b2lkIDA9PT10JiYodD1uW2VNXT1uZXcgU2V0KTt2YXIgcj1lK1wiX19idWJibGVcIjt0LmhhcyhyKXx8KHM5KG4sZSwyLCExKSx0LmFkZChyKSl9ZnVuY3Rpb24gczUoZSxuLHQpe3ZhciByPTA7biYmKHJ8PTQpLHM5KHQsZSxyLG4pfXZhciBzMz1cIl9yZWFjdExpc3RlbmluZ1wiK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO2Z1bmN0aW9uIHM2KGUpe2lmKCFlW3MzXSl7ZVtzM109ITAsZVguZm9yRWFjaChmdW5jdGlvbihuKXtcInNlbGVjdGlvbmNoYW5nZVwiIT09biYmKHMxLmhhcyhuKXx8czUobiwhMSxlKSxzNShuLCEwLGUpKX0pO3ZhciBuPTk9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50O251bGw9PT1ufHxuW3MzXXx8KG5bczNdPSEwLHM1KFwic2VsZWN0aW9uY2hhbmdlXCIsITEsbikpfX1mdW5jdGlvbiBzOShlLG4sdCxyKXtzd2l0Y2godXUobikpe2Nhc2UgMjp2YXIgbz11bzticmVhaztjYXNlIDg6bz11YTticmVhaztkZWZhdWx0Om89dWl9dD1vLmJpbmQobnVsbCxuLHQsZSksbz12b2lkIDAsbkMmJihcInRvdWNoc3RhcnRcIj09PW58fFwidG91Y2htb3ZlXCI9PT1ufHxcIndoZWVsXCI9PT1uKSYmKG89ITApLHI/dm9pZCAwIT09bz9lLmFkZEV2ZW50TGlzdGVuZXIobix0LHtjYXB0dXJlOiEwLHBhc3NpdmU6b30pOmUuYWRkRXZlbnRMaXN0ZW5lcihuLHQsITApOnZvaWQgMCE9PW8/ZS5hZGRFdmVudExpc3RlbmVyKG4sdCx7cGFzc2l2ZTpvfSk6ZS5hZGRFdmVudExpc3RlbmVyKG4sdCwhMSl9ZnVuY3Rpb24gczgoZSxuLHQscixvKXt2YXIgYT1yO2lmKDA9PSgxJm4pJiYwPT0oMiZuKSYmbnVsbCE9PXIpZTpmb3IoOzspe2lmKG51bGw9PT1yKXJldHVybjt2YXIgaT1yLnRhZztpZigzPT09aXx8ND09PWkpe3ZhciBsPXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYobD09PW8pYnJlYWs7aWYoND09PWkpZm9yKGk9ci5yZXR1cm47bnVsbCE9PWk7KXt2YXIgYz1pLnRhZztpZigoMz09PWN8fDQ9PT1jKSYmaS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PW8pcmV0dXJuO2k9aS5yZXR1cm59Zm9yKDtudWxsIT09bDspe2lmKG51bGw9PT0oaT1lcShsKSkpcmV0dXJuO2lmKDU9PT0oYz1pLnRhZyl8fDY9PT1jfHwyNj09PWN8fDI3PT09Yyl7cj1hPWk7Y29udGludWUgZX1sPWwucGFyZW50Tm9kZX19cj1yLnJldHVybn1uayhmdW5jdGlvbigpe3ZhciByPWEsbz1uYih0KSxpPVtdO2U6e3ZhciBsPXRYLmdldChlKTtpZih2b2lkIDAhPT1sKXt2YXIgYz1uVSx1PWU7c3dpdGNoKGUpe2Nhc2VcImtleXByZXNzXCI6aWYoMD09PW5MKHQpKWJyZWFrIGU7Y2FzZVwia2V5ZG93blwiOmNhc2VcImtleXVwXCI6Yz1uNDticmVhaztjYXNlXCJmb2N1c2luXCI6dT1cImZvY3VzXCIsYz1uWTticmVhaztjYXNlXCJmb2N1c291dFwiOnU9XCJibHVyXCIsYz1uWTticmVhaztjYXNlXCJiZWZvcmVibHVyXCI6Y2FzZVwiYWZ0ZXJibHVyXCI6Yz1uWTticmVhaztjYXNlXCJjbGlja1wiOmlmKDI9PT10LmJ1dHRvbilicmVhayBlO2Nhc2VcImF1eGNsaWNrXCI6Y2FzZVwiZGJsY2xpY2tcIjpjYXNlXCJtb3VzZWRvd25cIjpjYXNlXCJtb3VzZW1vdmVcIjpjYXNlXCJtb3VzZXVwXCI6Y2FzZVwibW91c2VvdXRcIjpjYXNlXCJtb3VzZW92ZXJcIjpjYXNlXCJjb250ZXh0bWVudVwiOmM9biQ7YnJlYWs7Y2FzZVwiZHJhZ1wiOmNhc2VcImRyYWdlbmRcIjpjYXNlXCJkcmFnZW50ZXJcIjpjYXNlXCJkcmFnZXhpdFwiOmNhc2VcImRyYWdsZWF2ZVwiOmNhc2VcImRyYWdvdmVyXCI6Y2FzZVwiZHJhZ3N0YXJ0XCI6Y2FzZVwiZHJvcFwiOmM9blo7YnJlYWs7Y2FzZVwidG91Y2hjYW5jZWxcIjpjYXNlXCJ0b3VjaGVuZFwiOmNhc2VcInRvdWNobW92ZVwiOmNhc2VcInRvdWNoc3RhcnRcIjpjPW4zO2JyZWFrO2Nhc2UgdFU6Y2FzZSB0VjpjYXNlIHRxOmM9blg7YnJlYWs7Y2FzZSB0WTpjPW42O2JyZWFrO2Nhc2VcInNjcm9sbFwiOmNhc2VcInNjcm9sbGVuZFwiOmM9bnE7YnJlYWs7Y2FzZVwid2hlZWxcIjpjPW45O2JyZWFrO2Nhc2VcImNvcHlcIjpjYXNlXCJjdXRcIjpjYXNlXCJwYXN0ZVwiOmM9bks7YnJlYWs7Y2FzZVwiZ290cG9pbnRlcmNhcHR1cmVcIjpjYXNlXCJsb3N0cG9pbnRlcmNhcHR1cmVcIjpjYXNlXCJwb2ludGVyY2FuY2VsXCI6Y2FzZVwicG9pbnRlcmRvd25cIjpjYXNlXCJwb2ludGVybW92ZVwiOmNhc2VcInBvaW50ZXJvdXRcIjpjYXNlXCJwb2ludGVyb3ZlclwiOmNhc2VcInBvaW50ZXJ1cFwiOmM9bjU7YnJlYWs7Y2FzZVwidG9nZ2xlXCI6Y2FzZVwiYmVmb3JldG9nZ2xlXCI6Yz1uOH12YXIgZD0wIT0oNCZuKSxmPSFkJiYoXCJzY3JvbGxcIj09PWV8fFwic2Nyb2xsZW5kXCI9PT1lKSxwPWQ/bnVsbCE9PWw/bCtcIkNhcHR1cmVcIjpudWxsOmw7ZD1bXTtmb3IodmFyIGgsZz1yO251bGwhPT1nOyl7dmFyIG09ZztpZihoPW0uc3RhdGVOb2RlLDUhPT0obT1tLnRhZykmJjI2IT09bSYmMjchPT1tfHxudWxsPT09aHx8bnVsbD09PXB8fG51bGwhPShtPW5BKGcscCkpJiZkLnB1c2goczcoZyxtLGgpKSxmKWJyZWFrO2c9Zy5yZXR1cm59MDxkLmxlbmd0aCYmKGw9bmV3IGMobCx1LG51bGwsdCxvKSxpLnB1c2goe2V2ZW50OmwsbGlzdGVuZXJzOmR9KSl9fWlmKDA9PSg3Jm4pKXtpZigobD1cIm1vdXNlb3ZlclwiPT09ZXx8XCJwb2ludGVyb3ZlclwiPT09ZSxjPVwibW91c2VvdXRcIj09PWV8fFwicG9pbnRlcm91dFwiPT09ZSwhKGwmJnQhPT1udiYmKHU9dC5yZWxhdGVkVGFyZ2V0fHx0LmZyb21FbGVtZW50KSYmKGVxKHUpfHx1W2VCXSkpKSYmKGN8fGwpJiYobD1vLndpbmRvdz09PW8/bzoobD1vLm93bmVyRG9jdW1lbnQpP2wuZGVmYXVsdFZpZXd8fGwucGFyZW50V2luZG93OndpbmRvdyxjPyh1PXQucmVsYXRlZFRhcmdldHx8dC50b0VsZW1lbnQsYz1yLG51bGwhPT0odT11P2VxKHUpOm51bGwpJiYoZj1zKHUpLGQ9dS50YWcsdSE9PWZ8fDUhPT1kJiYyNyE9PWQmJjYhPT1kKSYmKHU9bnVsbCkpOihjPW51bGwsdT1yKSxjIT09dSkpe2lmKGQ9biQsbT1cIm9uTW91c2VMZWF2ZVwiLHA9XCJvbk1vdXNlRW50ZXJcIixnPVwibW91c2VcIiwoXCJwb2ludGVyb3V0XCI9PT1lfHxcInBvaW50ZXJvdmVyXCI9PT1lKSYmKGQ9bjUsbT1cIm9uUG9pbnRlckxlYXZlXCIscD1cIm9uUG9pbnRlckVudGVyXCIsZz1cInBvaW50ZXJcIiksZj1udWxsPT1jP2w6ZSQoYyksaD1udWxsPT11P2w6ZSQodSksKGw9bmV3IGQobSxnK1wibGVhdmVcIixjLHQsbykpLnRhcmdldD1mLGwucmVsYXRlZFRhcmdldD1oLG09bnVsbCxlcShvKT09PXImJigoZD1uZXcgZChwLGcrXCJlbnRlclwiLHUsdCxvKSkudGFyZ2V0PWgsZC5yZWxhdGVkVGFyZ2V0PWYsbT1kKSxmPW0sYyYmdSluOntmb3IoZD1jbixwPWMsZz11LGg9MCxtPXA7bTttPWQobSkpaCsrO209MDtmb3IodmFyIHYsYj1nO2I7Yj1kKGIpKW0rKztmb3IoOzA8aC1tOylwPWQocCksaC0tO2Zvcig7MDxtLWg7KWc9ZChnKSxtLS07Zm9yKDtoLS07KXtpZihwPT09Z3x8bnVsbCE9PWcmJnA9PT1nLmFsdGVybmF0ZSl7ZD1wO2JyZWFrIG59cD1kKHApLGc9ZChnKX1kPW51bGx9ZWxzZSBkPW51bGw7bnVsbCE9PWMmJmN0KGksbCxjLGQsITEpLG51bGwhPT11JiZudWxsIT09ZiYmY3QoaSxmLHUsZCwhMCl9ZTp7aWYoXCJzZWxlY3RcIj09PShjPShsPXI/ZSQocik6d2luZG93KS5ub2RlTmFtZSYmbC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXx8XCJpbnB1dFwiPT09YyYmXCJmaWxlXCI9PT1sLnR5cGUpdmFyIHk9dGc7ZWxzZSBpZih0YyhsKSlpZih0bSl5PXRBO2Vsc2V7eT10ajt2YXIgeD10d31lbHNlKGM9bC5ub2RlTmFtZSkmJlwiaW5wdXRcIj09PWMudG9Mb3dlckNhc2UoKSYmKFwiY2hlY2tib3hcIj09PWwudHlwZXx8XCJyYWRpb1wiPT09bC50eXBlKT95PXRrOnImJm5mKHIuZWxlbWVudFR5cGUpJiYoeT10Zyk7aWYoeSYmKHk9eShlLHIpKSl7dHUoaSx5LHQsbyk7YnJlYWsgZX14JiZ4KGUsbCxyKSxcImZvY3Vzb3V0XCI9PT1lJiZyJiZcIm51bWJlclwiPT09bC50eXBlJiZudWxsIT1yLm1lbW9pemVkUHJvcHMudmFsdWUmJm5vKGwsXCJudW1iZXJcIixsLnZhbHVlKX1zd2l0Y2goeD1yP2UkKHIpOndpbmRvdyxlKXtjYXNlXCJmb2N1c2luXCI6KHRjKHgpfHxcInRydWVcIj09PXguY29udGVudEVkaXRhYmxlKSYmKHRMPXgsdFQ9cix0Uj1udWxsKTticmVhaztjYXNlXCJmb2N1c291dFwiOnRSPXRUPXRMPW51bGw7YnJlYWs7Y2FzZVwibW91c2Vkb3duXCI6dE49ITA7YnJlYWs7Y2FzZVwiY29udGV4dG1lbnVcIjpjYXNlXCJtb3VzZXVwXCI6Y2FzZVwiZHJhZ2VuZFwiOnROPSExLHREKGksdCxvKTticmVhaztjYXNlXCJzZWxlY3Rpb25jaGFuZ2VcIjppZih0eilicmVhaztjYXNlXCJrZXlkb3duXCI6Y2FzZVwia2V5dXBcIjp0RChpLHQsbyl9aWYodGUpbjp7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uc3RhcnRcIjp2YXIgdz1cIm9uQ29tcG9zaXRpb25TdGFydFwiO2JyZWFrIG47Y2FzZVwiY29tcG9zaXRpb25lbmRcIjp3PVwib25Db21wb3NpdGlvbkVuZFwiO2JyZWFrIG47Y2FzZVwiY29tcG9zaXRpb251cGRhdGVcIjp3PVwib25Db21wb3NpdGlvblVwZGF0ZVwiO2JyZWFrIG59dz12b2lkIDB9ZWxzZSB0bD90YShlLHQpJiYodz1cIm9uQ29tcG9zaXRpb25FbmRcIik6XCJrZXlkb3duXCI9PT1lJiYyMjk9PT10LmtleUNvZGUmJih3PVwib25Db21wb3NpdGlvblN0YXJ0XCIpO3cmJih0ciYmXCJrb1wiIT09dC5sb2NhbGUmJih0bHx8XCJvbkNvbXBvc2l0aW9uU3RhcnRcIiE9PXc/XCJvbkNvbXBvc2l0aW9uRW5kXCI9PT13JiZ0bCYmKHY9bnooKSk6KG5fPVwidmFsdWVcImluKG5FPW8pP25FLnZhbHVlOm5FLnRleHRDb250ZW50LHRsPSEwKSksMDwoeD1jZShyLHcpKS5sZW5ndGgmJih3PW5ldyBuUSh3LGUsbnVsbCx0LG8pLGkucHVzaCh7ZXZlbnQ6dyxsaXN0ZW5lcnM6eH0pLHY/dy5kYXRhPXY6bnVsbCE9PSh2PXRpKHQpKSYmKHcuZGF0YT12KSkpLCh2PXR0P2Z1bmN0aW9uKGUsbil7c3dpdGNoKGUpe2Nhc2VcImNvbXBvc2l0aW9uZW5kXCI6cmV0dXJuIHRpKG4pO2Nhc2VcImtleXByZXNzXCI6aWYoMzIhPT1uLndoaWNoKXJldHVybiBudWxsO3JldHVybiB0bz0hMCxcIiBcIjtjYXNlXCJ0ZXh0SW5wdXRcIjpyZXR1cm5cIiBcIj09PShlPW4uZGF0YSkmJnRvP251bGw6ZTtkZWZhdWx0OnJldHVybiBudWxsfX0oZSx0KTpmdW5jdGlvbihlLG4pe2lmKHRsKXJldHVyblwiY29tcG9zaXRpb25lbmRcIj09PWV8fCF0ZSYmdGEoZSxuKT8oZT1ueigpLG5QPW5fPW5FPW51bGwsdGw9ITEsZSk6bnVsbDtzd2l0Y2goZSl7Y2FzZVwicGFzdGVcIjpkZWZhdWx0OnJldHVybiBudWxsO2Nhc2VcImtleXByZXNzXCI6aWYoIShuLmN0cmxLZXl8fG4uYWx0S2V5fHxuLm1ldGFLZXkpfHxuLmN0cmxLZXkmJm4uYWx0S2V5KXtpZihuLmNoYXImJjE8bi5jaGFyLmxlbmd0aClyZXR1cm4gbi5jaGFyO2lmKG4ud2hpY2gpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUobi53aGljaCl9cmV0dXJuIG51bGw7Y2FzZVwiY29tcG9zaXRpb25lbmRcIjpyZXR1cm4gdHImJlwia29cIiE9PW4ubG9jYWxlP251bGw6bi5kYXRhfX0oZSx0KSkmJjA8KHc9Y2UocixcIm9uQmVmb3JlSW5wdXRcIikpLmxlbmd0aCYmKHg9bmV3IG5RKFwib25CZWZvcmVJbnB1dFwiLFwiYmVmb3JlaW5wdXRcIixudWxsLHQsbyksaS5wdXNoKHtldmVudDp4LGxpc3RlbmVyczp3fSkseC5kYXRhPXYpO3ZhciBqPWU7aWYoXCJzdWJtaXRcIj09PWomJnImJnIuc3RhdGVOb2RlPT09byl7dmFyIGs9c0soKG9bZURdfHxudWxsKS5hY3Rpb24pLEE9dC5zdWJtaXR0ZXI7QSYmbnVsbCE9PShqPShqPUFbZURdfHxudWxsKT9zSyhqLmZvcm1BY3Rpb24pOkEuZ2V0QXR0cmlidXRlKFwiZm9ybUFjdGlvblwiKSkmJihrPWosQT1udWxsKTt2YXIgTz1uZXcgblUoXCJhY3Rpb25cIixcImFjdGlvblwiLG51bGwsdCxvKTtpLnB1c2goe2V2ZW50Ok8sbGlzdGVuZXJzOlt7aW5zdGFuY2U6bnVsbCxsaXN0ZW5lcjpmdW5jdGlvbigpe2lmKHQuZGVmYXVsdFByZXZlbnRlZCl7aWYoMCE9PXNGKXt2YXIgZT1BP3NRKG8sQSk6bmV3IEZvcm1EYXRhKG8pO2FLKHIse3BlbmRpbmc6ITAsZGF0YTplLG1ldGhvZDpvLm1ldGhvZCxhY3Rpb246a30sbnVsbCxlKX19ZWxzZVwiZnVuY3Rpb25cIj09dHlwZW9mIGsmJihPLnByZXZlbnREZWZhdWx0KCksYUsocix7cGVuZGluZzohMCxkYXRhOmU9QT9zUShvLEEpOm5ldyBGb3JtRGF0YShvKSxtZXRob2Q6by5tZXRob2QsYWN0aW9uOmt9LGssZSkpfSxjdXJyZW50VGFyZ2V0Om99XX0pfX1zMihpLG4pfSl9ZnVuY3Rpb24gczcoZSxuLHQpe3JldHVybntpbnN0YW5jZTplLGxpc3RlbmVyOm4sY3VycmVudFRhcmdldDp0fX1mdW5jdGlvbiBjZShlLG4pe2Zvcih2YXIgdD1uK1wiQ2FwdHVyZVwiLHI9W107bnVsbCE9PWU7KXt2YXIgbz1lLGE9by5zdGF0ZU5vZGU7aWYoNSE9PShvPW8udGFnKSYmMjYhPT1vJiYyNyE9PW98fG51bGw9PT1hfHwobnVsbCE9KG89bkEoZSx0KSkmJnIudW5zaGlmdChzNyhlLG8sYSkpLG51bGwhPShvPW5BKGUsbikpJiZyLnB1c2goczcoZSxvLGEpKSksMz09PWUudGFnKXJldHVybiByO2U9ZS5yZXR1cm59cmV0dXJuW119ZnVuY3Rpb24gY24oZSl7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7ZG8gZT1lLnJldHVybjt3aGlsZShlJiY1IT09ZS50YWcmJjI3IT09ZS50YWcpO3JldHVybiBlfHxudWxsfWZ1bmN0aW9uIGN0KGUsbix0LHIsbyl7Zm9yKHZhciBhPW4uX3JlYWN0TmFtZSxpPVtdO251bGwhPT10JiZ0IT09cjspe3ZhciBsPXQscz1sLmFsdGVybmF0ZSxjPWwuc3RhdGVOb2RlO2lmKGw9bC50YWcsbnVsbCE9PXMmJnM9PT1yKWJyZWFrOzUhPT1sJiYyNiE9PWwmJjI3IT09bHx8bnVsbD09PWN8fChzPWMsbz9udWxsIT0oYz1uQSh0LGEpKSYmaS51bnNoaWZ0KHM3KHQsYyxzKSk6b3x8bnVsbCE9KGM9bkEodCxhKSkmJmkucHVzaChzNyh0LGMscykpKSx0PXQucmV0dXJufTAhPT1pLmxlbmd0aCYmZS5wdXNoKHtldmVudDpuLGxpc3RlbmVyczppfSl9dmFyIGNyPS9cXHJcXG4/L2csY289L1xcdTAwMDB8XFx1RkZGRC9nO2Z1bmN0aW9uIGNhKGUpe3JldHVybihcInN0cmluZ1wiPT10eXBlb2YgZT9lOlwiXCIrZSkucmVwbGFjZShjcixcIlxcblwiKS5yZXBsYWNlKGNvLFwiXCIpfWZ1bmN0aW9uIGNpKGUsbil7cmV0dXJuIG49Y2EobiksY2EoZSk9PT1ufWZ1bmN0aW9uIGNsKGUsbix0LHIsbyxhKXtzd2l0Y2godCl7Y2FzZVwiY2hpbGRyZW5cIjpcInN0cmluZ1wiPT10eXBlb2Ygcj9cImJvZHlcIj09PW58fFwidGV4dGFyZWFcIj09PW4mJlwiXCI9PT1yfHxucyhlLHIpOihcIm51bWJlclwiPT10eXBlb2Ygcnx8XCJiaWdpbnRcIj09dHlwZW9mIHIpJiZcImJvZHlcIiE9PW4mJm5zKGUsXCJcIityKTticmVhaztjYXNlXCJjbGFzc05hbWVcIjplNChlLFwiY2xhc3NcIixyKTticmVhaztjYXNlXCJ0YWJJbmRleFwiOmU0KGUsXCJ0YWJpbmRleFwiLHIpO2JyZWFrO2Nhc2VcImRpclwiOmNhc2VcInJvbGVcIjpjYXNlXCJ2aWV3Qm94XCI6Y2FzZVwid2lkdGhcIjpjYXNlXCJoZWlnaHRcIjplNChlLHQscik7YnJlYWs7Y2FzZVwic3R5bGVcIjpuZChlLHIsYSk7YnJlYWs7Y2FzZVwiZGF0YVwiOmlmKFwib2JqZWN0XCIhPT1uKXtlNChlLFwiZGF0YVwiLHIpO2JyZWFrfWNhc2VcInNyY1wiOmNhc2VcImhyZWZcIjppZihcIlwiPT09ciYmKFwiYVwiIT09bnx8XCJocmVmXCIhPT10KXx8bnVsbD09cnx8XCJmdW5jdGlvblwiPT10eXBlb2Ygcnx8XCJzeW1ib2xcIj09dHlwZW9mIHJ8fFwiYm9vbGVhblwiPT10eXBlb2Ygcil7ZS5yZW1vdmVBdHRyaWJ1dGUodCk7YnJlYWt9cj1uZyhcIlwiK3IpLGUuc2V0QXR0cmlidXRlKHQscik7YnJlYWs7Y2FzZVwiYWN0aW9uXCI6Y2FzZVwiZm9ybUFjdGlvblwiOmlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpe2Uuc2V0QXR0cmlidXRlKHQsXCJqYXZhc2NyaXB0OnRocm93IG5ldyBFcnJvcignQSBSZWFjdCBmb3JtIHdhcyB1bmV4cGVjdGVkbHkgc3VibWl0dGVkLiBJZiB5b3UgY2FsbGVkIGZvcm0uc3VibWl0KCkgbWFudWFsbHksIGNvbnNpZGVyIHVzaW5nIGZvcm0ucmVxdWVzdFN1Ym1pdCgpIGluc3RlYWQuIElmIHlvdVxcXFwncmUgdHJ5aW5nIHRvIHVzZSBldmVudC5zdG9wUHJvcGFnYXRpb24oKSBpbiBhIHN1Ym1pdCBldmVudCBoYW5kbGVyLCBjb25zaWRlciBhbHNvIGNhbGxpbmcgZXZlbnQucHJldmVudERlZmF1bHQoKS4nKVwiKTticmVha31pZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBhJiYoXCJmb3JtQWN0aW9uXCI9PT10PyhcImlucHV0XCIhPT1uJiZjbChlLG4sXCJuYW1lXCIsby5uYW1lLG8sbnVsbCksY2woZSxuLFwiZm9ybUVuY1R5cGVcIixvLmZvcm1FbmNUeXBlLG8sbnVsbCksY2woZSxuLFwiZm9ybU1ldGhvZFwiLG8uZm9ybU1ldGhvZCxvLG51bGwpLGNsKGUsbixcImZvcm1UYXJnZXRcIixvLmZvcm1UYXJnZXQsbyxudWxsKSk6KGNsKGUsbixcImVuY1R5cGVcIixvLmVuY1R5cGUsbyxudWxsKSxjbChlLG4sXCJtZXRob2RcIixvLm1ldGhvZCxvLG51bGwpLGNsKGUsbixcInRhcmdldFwiLG8udGFyZ2V0LG8sbnVsbCkpKSxudWxsPT1yfHxcInN5bWJvbFwiPT10eXBlb2Ygcnx8XCJib29sZWFuXCI9PXR5cGVvZiByKXtlLnJlbW92ZUF0dHJpYnV0ZSh0KTticmVha31yPW5nKFwiXCIrciksZS5zZXRBdHRyaWJ1dGUodCxyKTticmVhaztjYXNlXCJvbkNsaWNrXCI6bnVsbCE9ciYmKGUub25jbGljaz1ubSk7YnJlYWs7Y2FzZVwib25TY3JvbGxcIjpudWxsIT1yJiZzNChcInNjcm9sbFwiLGUpO2JyZWFrO2Nhc2VcIm9uU2Nyb2xsRW5kXCI6bnVsbCE9ciYmczQoXCJzY3JvbGxlbmRcIixlKTticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXIpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiByfHwhKFwiX19odG1sXCJpbiByKSl0aHJvdyBFcnJvcihsKDYxKSk7aWYobnVsbCE9KHQ9ci5fX2h0bWwpKXtpZihudWxsIT1vLmNoaWxkcmVuKXRocm93IEVycm9yKGwoNjApKTtlLmlubmVySFRNTD10fX1icmVhaztjYXNlXCJtdWx0aXBsZVwiOmUubXVsdGlwbGU9ciYmXCJmdW5jdGlvblwiIT10eXBlb2YgciYmXCJzeW1ib2xcIiE9dHlwZW9mIHI7YnJlYWs7Y2FzZVwibXV0ZWRcIjplLm11dGVkPXImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByO2JyZWFrO2Nhc2VcInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZ1wiOmNhc2VcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiOmNhc2VcImRlZmF1bHRWYWx1ZVwiOmNhc2VcImRlZmF1bHRDaGVja2VkXCI6Y2FzZVwiaW5uZXJIVE1MXCI6Y2FzZVwicmVmXCI6Y2FzZVwiYXV0b0ZvY3VzXCI6Y2FzZVwiaW5uZXJUZXh0XCI6Y2FzZVwidGV4dENvbnRlbnRcIjpicmVhaztjYXNlXCJ4bGlua0hyZWZcIjppZihudWxsPT1yfHxcImZ1bmN0aW9uXCI9PXR5cGVvZiByfHxcImJvb2xlYW5cIj09dHlwZW9mIHJ8fFwic3ltYm9sXCI9PXR5cGVvZiByKXtlLnJlbW92ZUF0dHJpYnV0ZShcInhsaW5rOmhyZWZcIik7YnJlYWt9dD1uZyhcIlwiK3IpLGUuc2V0QXR0cmlidXRlTlMoXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazpocmVmXCIsdCk7YnJlYWs7Y2FzZVwiY29udGVudEVkaXRhYmxlXCI6Y2FzZVwic3BlbGxDaGVja1wiOmNhc2VcImRyYWdnYWJsZVwiOmNhc2VcInZhbHVlXCI6Y2FzZVwiYXV0b1JldmVyc2VcIjpjYXNlXCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXCI6Y2FzZVwiZm9jdXNhYmxlXCI6Y2FzZVwicHJlc2VydmVBbHBoYVwiOm51bGwhPXImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByP2Uuc2V0QXR0cmlidXRlKHQsXCJcIityKTplLnJlbW92ZUF0dHJpYnV0ZSh0KTticmVhaztjYXNlXCJpbmVydFwiOmNhc2VcImFsbG93RnVsbFNjcmVlblwiOmNhc2VcImFzeW5jXCI6Y2FzZVwiYXV0b1BsYXlcIjpjYXNlXCJjb250cm9sc1wiOmNhc2VcImRlZmF1bHRcIjpjYXNlXCJkZWZlclwiOmNhc2VcImRpc2FibGVkXCI6Y2FzZVwiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmVcIjpjYXNlXCJkaXNhYmxlUmVtb3RlUGxheWJhY2tcIjpjYXNlXCJmb3JtTm9WYWxpZGF0ZVwiOmNhc2VcImhpZGRlblwiOmNhc2VcImxvb3BcIjpjYXNlXCJub01vZHVsZVwiOmNhc2VcIm5vVmFsaWRhdGVcIjpjYXNlXCJvcGVuXCI6Y2FzZVwicGxheXNJbmxpbmVcIjpjYXNlXCJyZWFkT25seVwiOmNhc2VcInJlcXVpcmVkXCI6Y2FzZVwicmV2ZXJzZWRcIjpjYXNlXCJzY29wZWRcIjpjYXNlXCJzZWFtbGVzc1wiOmNhc2VcIml0ZW1TY29wZVwiOnImJlwiZnVuY3Rpb25cIiE9dHlwZW9mIHImJlwic3ltYm9sXCIhPXR5cGVvZiByP2Uuc2V0QXR0cmlidXRlKHQsXCJcIik6ZS5yZW1vdmVBdHRyaWJ1dGUodCk7YnJlYWs7Y2FzZVwiY2FwdHVyZVwiOmNhc2VcImRvd25sb2FkXCI6ITA9PT1yP2Uuc2V0QXR0cmlidXRlKHQsXCJcIik6ITEhPT1yJiZudWxsIT1yJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiZcInN5bWJvbFwiIT10eXBlb2Ygcj9lLnNldEF0dHJpYnV0ZSh0LHIpOmUucmVtb3ZlQXR0cmlidXRlKHQpO2JyZWFrO2Nhc2VcImNvbHNcIjpjYXNlXCJyb3dzXCI6Y2FzZVwic2l6ZVwiOmNhc2VcInNwYW5cIjpudWxsIT1yJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiByJiZcInN5bWJvbFwiIT10eXBlb2YgciYmIWlzTmFOKHIpJiYxPD1yP2Uuc2V0QXR0cmlidXRlKHQscik6ZS5yZW1vdmVBdHRyaWJ1dGUodCk7YnJlYWs7Y2FzZVwicm93U3BhblwiOmNhc2VcInN0YXJ0XCI6bnVsbD09cnx8XCJmdW5jdGlvblwiPT10eXBlb2Ygcnx8XCJzeW1ib2xcIj09dHlwZW9mIHJ8fGlzTmFOKHIpP2UucmVtb3ZlQXR0cmlidXRlKHQpOmUuc2V0QXR0cmlidXRlKHQscik7YnJlYWs7Y2FzZVwicG9wb3ZlclwiOnM0KFwiYmVmb3JldG9nZ2xlXCIsZSksczQoXCJ0b2dnbGVcIixlKSxlMihlLFwicG9wb3ZlclwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rQWN0dWF0ZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazphY3R1YXRlXCIscik7YnJlYWs7Y2FzZVwieGxpbmtBcmNyb2xlXCI6ZTUoZSxcImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIixcInhsaW5rOmFyY3JvbGVcIixyKTticmVhaztjYXNlXCJ4bGlua1JvbGVcIjplNShlLFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFwieGxpbms6cm9sZVwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rU2hvd1wiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazpzaG93XCIscik7YnJlYWs7Y2FzZVwieGxpbmtUaXRsZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazp0aXRsZVwiLHIpO2JyZWFrO2Nhc2VcInhsaW5rVHlwZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCIsXCJ4bGluazp0eXBlXCIscik7YnJlYWs7Y2FzZVwieG1sQmFzZVwiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcInhtbDpiYXNlXCIscik7YnJlYWs7Y2FzZVwieG1sTGFuZ1wiOmU1KGUsXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcInhtbDpsYW5nXCIscik7YnJlYWs7Y2FzZVwieG1sU3BhY2VcIjplNShlLFwiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlXCIsXCJ4bWw6c3BhY2VcIixyKTticmVhaztjYXNlXCJpc1wiOmUyKGUsXCJpc1wiLHIpO2JyZWFrO2RlZmF1bHQ6Mjx0Lmxlbmd0aCYmKFwib1wiPT09dFswXXx8XCJPXCI9PT10WzBdKSYmKFwiblwiPT09dFsxXXx8XCJOXCI9PT10WzFdKXx8ZTIoZSx0PW5wLmdldCh0KXx8dCxyKX19ZnVuY3Rpb24gY3MoZSxuLHQscixvLGEpe3N3aXRjaCh0KXtjYXNlXCJzdHlsZVwiOm5kKGUscixhKTticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXIpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiByfHwhKFwiX19odG1sXCJpbiByKSl0aHJvdyBFcnJvcihsKDYxKSk7aWYobnVsbCE9KHQ9ci5fX2h0bWwpKXtpZihudWxsIT1vLmNoaWxkcmVuKXRocm93IEVycm9yKGwoNjApKTtlLmlubmVySFRNTD10fX1icmVhaztjYXNlXCJjaGlsZHJlblwiOlwic3RyaW5nXCI9PXR5cGVvZiByP25zKGUscik6KFwibnVtYmVyXCI9PXR5cGVvZiByfHxcImJpZ2ludFwiPT10eXBlb2YgcikmJm5zKGUsXCJcIityKTticmVhaztjYXNlXCJvblNjcm9sbFwiOm51bGwhPXImJnM0KFwic2Nyb2xsXCIsZSk7YnJlYWs7Y2FzZVwib25TY3JvbGxFbmRcIjpudWxsIT1yJiZzNChcInNjcm9sbGVuZFwiLGUpO2JyZWFrO2Nhc2VcIm9uQ2xpY2tcIjpudWxsIT1yJiYoZS5vbmNsaWNrPW5tKTticmVhaztjYXNlXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIjpjYXNlXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIjpjYXNlXCJpbm5lckhUTUxcIjpjYXNlXCJyZWZcIjpjYXNlXCJpbm5lclRleHRcIjpjYXNlXCJ0ZXh0Q29udGVudFwiOmJyZWFrO2RlZmF1bHQ6aWYoIWVLLmhhc093blByb3BlcnR5KHQpKWU6e2lmKFwib1wiPT09dFswXSYmXCJuXCI9PT10WzFdJiYobz10LmVuZHNXaXRoKFwiQ2FwdHVyZVwiKSxuPXQuc2xpY2UoMixvP3QubGVuZ3RoLTc6dm9pZCAwKSxcImZ1bmN0aW9uXCI9PXR5cGVvZihhPW51bGwhPShhPWVbZURdfHxudWxsKT9hW3RdOm51bGwpJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIobixhLG8pLFwiZnVuY3Rpb25cIj09dHlwZW9mIHIpKXtcImZ1bmN0aW9uXCIhPXR5cGVvZiBhJiZudWxsIT09YSYmKHQgaW4gZT9lW3RdPW51bGw6ZS5oYXNBdHRyaWJ1dGUodCkmJmUucmVtb3ZlQXR0cmlidXRlKHQpKSxlLmFkZEV2ZW50TGlzdGVuZXIobixyLG8pO2JyZWFrIGV9dCBpbiBlP2VbdF09cjohMD09PXI/ZS5zZXRBdHRyaWJ1dGUodCxcIlwiKTplMihlLHQscil9fX1mdW5jdGlvbiBjYyhlLG4sdCl7c3dpdGNoKG4pe2Nhc2VcImRpdlwiOmNhc2VcInNwYW5cIjpjYXNlXCJzdmdcIjpjYXNlXCJwYXRoXCI6Y2FzZVwiYVwiOmNhc2VcImdcIjpjYXNlXCJwXCI6Y2FzZVwibGlcIjpicmVhaztjYXNlXCJpbWdcIjpzNChcImVycm9yXCIsZSksczQoXCJsb2FkXCIsZSk7dmFyIHIsbz0hMSxhPSExO2ZvcihyIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIGk9dFtyXTtpZihudWxsIT1pKXN3aXRjaChyKXtjYXNlXCJzcmNcIjpvPSEwO2JyZWFrO2Nhc2VcInNyY1NldFwiOmE9ITA7YnJlYWs7Y2FzZVwiY2hpbGRyZW5cIjpjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOnRocm93IEVycm9yKGwoMTM3LG4pKTtkZWZhdWx0OmNsKGUsbixyLGksdCxudWxsKX19YSYmY2woZSxuLFwic3JjU2V0XCIsdC5zcmNTZXQsdCxudWxsKSxvJiZjbChlLG4sXCJzcmNcIix0LnNyYyx0LG51bGwpO3JldHVybjtjYXNlXCJpbnB1dFwiOnM0KFwiaW52YWxpZFwiLGUpO3ZhciBzPXI9aT1hPW51bGwsYz1udWxsLHU9bnVsbDtmb3IobyBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkobykpe3ZhciBkPXRbb107aWYobnVsbCE9ZClzd2l0Y2gobyl7Y2FzZVwibmFtZVwiOmE9ZDticmVhaztjYXNlXCJ0eXBlXCI6aT1kO2JyZWFrO2Nhc2VcImNoZWNrZWRcIjpjPWQ7YnJlYWs7Y2FzZVwiZGVmYXVsdENoZWNrZWRcIjp1PWQ7YnJlYWs7Y2FzZVwidmFsdWVcIjpyPWQ7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6cz1kO2JyZWFrO2Nhc2VcImNoaWxkcmVuXCI6Y2FzZVwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjppZihudWxsIT1kKXRocm93IEVycm9yKGwoMTM3LG4pKTticmVhaztkZWZhdWx0OmNsKGUsbixvLGQsdCxudWxsKX19bnIoZSxyLHMsYyx1LGksYSwhMSk7cmV0dXJuO2Nhc2VcInNlbGVjdFwiOmZvcihhIGluIHM0KFwiaW52YWxpZFwiLGUpLG89aT1yPW51bGwsdClpZih0Lmhhc093blByb3BlcnR5KGEpJiZudWxsIT0ocz10W2FdKSlzd2l0Y2goYSl7Y2FzZVwidmFsdWVcIjpyPXM7YnJlYWs7Y2FzZVwiZGVmYXVsdFZhbHVlXCI6aT1zO2JyZWFrO2Nhc2VcIm11bHRpcGxlXCI6bz1zO2RlZmF1bHQ6Y2woZSxuLGEscyx0LG51bGwpfW49cix0PWksZS5tdWx0aXBsZT0hIW8sbnVsbCE9bj9uYShlLCEhbyxuLCExKTpudWxsIT10JiZuYShlLCEhbyx0LCEwKTtyZXR1cm47Y2FzZVwidGV4dGFyZWFcIjpmb3IoaSBpbiBzNChcImludmFsaWRcIixlKSxyPWE9bz1udWxsLHQpaWYodC5oYXNPd25Qcm9wZXJ0eShpKSYmbnVsbCE9KHM9dFtpXSkpc3dpdGNoKGkpe2Nhc2VcInZhbHVlXCI6bz1zO2JyZWFrO2Nhc2VcImRlZmF1bHRWYWx1ZVwiOmE9czticmVhaztjYXNlXCJjaGlsZHJlblwiOnI9czticmVhaztjYXNlXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOmlmKG51bGwhPXMpdGhyb3cgRXJyb3IobCg5MSkpO2JyZWFrO2RlZmF1bHQ6Y2woZSxuLGkscyx0LG51bGwpfW5sKGUsbyxhLHIpO3JldHVybjtjYXNlXCJvcHRpb25cIjpmb3IoYyBpbiB0KXQuaGFzT3duUHJvcGVydHkoYykmJm51bGwhPShvPXRbY10pJiYoXCJzZWxlY3RlZFwiPT09Yz9lLnNlbGVjdGVkPW8mJlwiZnVuY3Rpb25cIiE9dHlwZW9mIG8mJlwic3ltYm9sXCIhPXR5cGVvZiBvOmNsKGUsbixjLG8sdCxudWxsKSk7cmV0dXJuO2Nhc2VcImRpYWxvZ1wiOnM0KFwiYmVmb3JldG9nZ2xlXCIsZSksczQoXCJ0b2dnbGVcIixlKSxzNChcImNhbmNlbFwiLGUpLHM0KFwiY2xvc2VcIixlKTticmVhaztjYXNlXCJpZnJhbWVcIjpjYXNlXCJvYmplY3RcIjpzNChcImxvYWRcIixlKTticmVhaztjYXNlXCJ2aWRlb1wiOmNhc2VcImF1ZGlvXCI6Zm9yKG89MDtvPHMwLmxlbmd0aDtvKyspczQoczBbb10sZSk7YnJlYWs7Y2FzZVwiaW1hZ2VcIjpzNChcImVycm9yXCIsZSksczQoXCJsb2FkXCIsZSk7YnJlYWs7Y2FzZVwiZGV0YWlsc1wiOnM0KFwidG9nZ2xlXCIsZSk7YnJlYWs7Y2FzZVwiZW1iZWRcIjpjYXNlXCJzb3VyY2VcIjpjYXNlXCJsaW5rXCI6czQoXCJlcnJvclwiLGUpLHM0KFwibG9hZFwiLGUpO2Nhc2VcImFyZWFcIjpjYXNlXCJiYXNlXCI6Y2FzZVwiYnJcIjpjYXNlXCJjb2xcIjpjYXNlXCJoclwiOmNhc2VcImtleWdlblwiOmNhc2VcIm1ldGFcIjpjYXNlXCJwYXJhbVwiOmNhc2VcInRyYWNrXCI6Y2FzZVwid2JyXCI6Y2FzZVwibWVudWl0ZW1cIjpmb3IodSBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkodSkmJm51bGwhPShvPXRbdV0pKXN3aXRjaCh1KXtjYXNlXCJjaGlsZHJlblwiOmNhc2VcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6dGhyb3cgRXJyb3IobCgxMzcsbikpO2RlZmF1bHQ6Y2woZSxuLHUsbyx0LG51bGwpfXJldHVybjtkZWZhdWx0OmlmKG5mKG4pKXtmb3IoZCBpbiB0KXQuaGFzT3duUHJvcGVydHkoZCkmJnZvaWQgMCE9PShvPXRbZF0pJiZjcyhlLG4sZCxvLHQsdm9pZCAwKTtyZXR1cm59fWZvcihzIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShzKSYmbnVsbCE9KG89dFtzXSkmJmNsKGUsbixzLG8sdCxudWxsKX12YXIgY3U9bnVsbCxjZD1udWxsO2Z1bmN0aW9uIGNmKGUpe3JldHVybiA5PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudH1mdW5jdGlvbiBjcChlKXtzd2l0Y2goZSl7Y2FzZVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIjpyZXR1cm4gMTtjYXNlXCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MXCI6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19ZnVuY3Rpb24gY2goZSxuKXtpZigwPT09ZSlzd2l0Y2gobil7Y2FzZVwic3ZnXCI6cmV0dXJuIDE7Y2FzZVwibWF0aFwiOnJldHVybiAyO2RlZmF1bHQ6cmV0dXJuIDB9cmV0dXJuIDE9PT1lJiZcImZvcmVpZ25PYmplY3RcIj09PW4/MDplfWZ1bmN0aW9uIGNnKGUsbil7cmV0dXJuXCJ0ZXh0YXJlYVwiPT09ZXx8XCJub3NjcmlwdFwiPT09ZXx8XCJzdHJpbmdcIj09dHlwZW9mIG4uY2hpbGRyZW58fFwibnVtYmVyXCI9PXR5cGVvZiBuLmNoaWxkcmVufHxcImJpZ2ludFwiPT10eXBlb2Ygbi5jaGlsZHJlbnx8XCJvYmplY3RcIj09dHlwZW9mIG4uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPT1uLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MJiZudWxsIT1uLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbH12YXIgY209bnVsbCxjdj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLGNiPVwiZnVuY3Rpb25cIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6dm9pZCAwLGN5PVwiZnVuY3Rpb25cIj09dHlwZW9mIFByb21pc2U/UHJvbWlzZTp2b2lkIDAsY3g9XCJmdW5jdGlvblwiPT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2s6dm9pZCAwIT09Y3k/ZnVuY3Rpb24oZSl7cmV0dXJuIGN5LnJlc29sdmUobnVsbCkudGhlbihlKS5jYXRjaChjdyl9OmN2O2Z1bmN0aW9uIGN3KGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9ZnVuY3Rpb24gY2ooZSl7cmV0dXJuXCJoZWFkXCI9PT1lfWZ1bmN0aW9uIGNrKGUsbil7dmFyIHQ9bixyPTA7ZG97dmFyIG89dC5uZXh0U2libGluZztpZihlLnJlbW92ZUNoaWxkKHQpLG8mJjg9PT1vLm5vZGVUeXBlKWlmKFwiLyRcIj09PSh0PW8uZGF0YSl8fFwiLyZcIj09PXQpe2lmKDA9PT1yKXtlLnJlbW92ZUNoaWxkKG8pLHVFKG4pO3JldHVybn1yLS19ZWxzZSBpZihcIiRcIj09PXR8fFwiJD9cIj09PXR8fFwiJH5cIj09PXR8fFwiJCFcIj09PXR8fFwiJlwiPT09dClyKys7ZWxzZSBpZihcImh0bWxcIj09PXQpY1IoZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7ZWxzZSBpZihcImhlYWRcIj09PXQpe2NSKHQ9ZS5vd25lckRvY3VtZW50LmhlYWQpO2Zvcih2YXIgYT10LmZpcnN0Q2hpbGQ7YTspe3ZhciBpPWEubmV4dFNpYmxpbmcsbD1hLm5vZGVOYW1lO2FbZVVdfHxcIlNDUklQVFwiPT09bHx8XCJTVFlMRVwiPT09bHx8XCJMSU5LXCI9PT1sJiZcInN0eWxlc2hlZXRcIj09PWEucmVsLnRvTG93ZXJDYXNlKCl8fHQucmVtb3ZlQ2hpbGQoYSksYT1pfX1lbHNlXCJib2R5XCI9PT10JiZjUihlLm93bmVyRG9jdW1lbnQuYm9keSk7dD1vfXdoaWxlKHQpO3VFKG4pfWZ1bmN0aW9uIGNBKGUsbil7dmFyIHQ9ZTtlPTA7ZG97dmFyIHI9dC5uZXh0U2libGluZztpZigxPT09dC5ub2RlVHlwZT9uPyh0Ll9zdGFzaGVkRGlzcGxheT10LnN0eWxlLmRpc3BsYXksdC5zdHlsZS5kaXNwbGF5PVwibm9uZVwiKToodC5zdHlsZS5kaXNwbGF5PXQuX3N0YXNoZWREaXNwbGF5fHxcIlwiLFwiXCI9PT10LmdldEF0dHJpYnV0ZShcInN0eWxlXCIpJiZ0LnJlbW92ZUF0dHJpYnV0ZShcInN0eWxlXCIpKTozPT09dC5ub2RlVHlwZSYmKG4/KHQuX3N0YXNoZWRUZXh0PXQubm9kZVZhbHVlLHQubm9kZVZhbHVlPVwiXCIpOnQubm9kZVZhbHVlPXQuX3N0YXNoZWRUZXh0fHxcIlwiKSxyJiY4PT09ci5ub2RlVHlwZSlpZihcIi8kXCI9PT0odD1yLmRhdGEpKWlmKDA9PT1lKWJyZWFrO2Vsc2UgZS0tO2Vsc2VcIiRcIiE9PXQmJlwiJD9cIiE9PXQmJlwiJH5cIiE9PXQmJlwiJCFcIiE9PXR8fGUrKzt0PXJ9d2hpbGUodCl9ZnVuY3Rpb24gY08oZSl7dmFyIG49ZS5maXJzdENoaWxkO2ZvcihuJiYxMD09PW4ubm9kZVR5cGUmJihuPW4ubmV4dFNpYmxpbmcpO247KXt2YXIgdD1uO3N3aXRjaChuPW4ubmV4dFNpYmxpbmcsdC5ub2RlTmFtZSl7Y2FzZVwiSFRNTFwiOmNhc2VcIkhFQURcIjpjYXNlXCJCT0RZXCI6Y08odCksZVYodCk7Y29udGludWU7Y2FzZVwiU0NSSVBUXCI6Y2FzZVwiU1RZTEVcIjpjb250aW51ZTtjYXNlXCJMSU5LXCI6aWYoXCJzdHlsZXNoZWV0XCI9PT10LnJlbC50b0xvd2VyQ2FzZSgpKWNvbnRpbnVlfWUucmVtb3ZlQ2hpbGQodCl9fWZ1bmN0aW9uIGNDKGUsbil7Zm9yKDs4IT09ZS5ub2RlVHlwZTspaWYoIW58fG51bGw9PT0oZT1jXyhlLm5leHRTaWJsaW5nKSkpcmV0dXJuIG51bGw7cmV0dXJuIGV9ZnVuY3Rpb24gY1MoZSl7cmV0dXJuXCIkP1wiPT09ZS5kYXRhfHxcIiR+XCI9PT1lLmRhdGF9ZnVuY3Rpb24gY0UoZSl7cmV0dXJuXCIkIVwiPT09ZS5kYXRhfHxcIiQ/XCI9PT1lLmRhdGEmJlwibG9hZGluZ1wiIT09ZS5vd25lckRvY3VtZW50LnJlYWR5U3RhdGV9ZnVuY3Rpb24gY18oZSl7Zm9yKDtudWxsIT1lO2U9ZS5uZXh0U2libGluZyl7dmFyIG49ZS5ub2RlVHlwZTtpZigxPT09bnx8Mz09PW4pYnJlYWs7aWYoOD09PW4pe2lmKFwiJFwiPT09KG49ZS5kYXRhKXx8XCIkIVwiPT09bnx8XCIkP1wiPT09bnx8XCIkflwiPT09bnx8XCImXCI9PT1ufHxcIkYhXCI9PT1ufHxcIkZcIj09PW4pYnJlYWs7aWYoXCIvJFwiPT09bnx8XCIvJlwiPT09bilyZXR1cm4gbnVsbH19cmV0dXJuIGV9dmFyIGNQPW51bGw7ZnVuY3Rpb24gY3ooZSl7ZT1lLm5leHRTaWJsaW5nO2Zvcih2YXIgbj0wO2U7KXtpZig4PT09ZS5ub2RlVHlwZSl7dmFyIHQ9ZS5kYXRhO2lmKFwiLyRcIj09PXR8fFwiLyZcIj09PXQpe2lmKDA9PT1uKXJldHVybiBjXyhlLm5leHRTaWJsaW5nKTtuLS19ZWxzZVwiJFwiIT09dCYmXCIkIVwiIT09dCYmXCIkP1wiIT09dCYmXCIkflwiIT09dCYmXCImXCIhPT10fHxuKyt9ZT1lLm5leHRTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIGNMKGUpe2U9ZS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciBuPTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgdD1lLmRhdGE7aWYoXCIkXCI9PT10fHxcIiQhXCI9PT10fHxcIiQ/XCI9PT10fHxcIiR+XCI9PT10fHxcIiZcIj09PXQpe2lmKDA9PT1uKXJldHVybiBlO24tLX1lbHNlXCIvJFwiIT09dCYmXCIvJlwiIT09dHx8bisrfWU9ZS5wcmV2aW91c1NpYmxpbmd9cmV0dXJuIG51bGx9ZnVuY3Rpb24gY1QoZSxuLHQpe3N3aXRjaChuPWNmKHQpLGUpe2Nhc2VcImh0bWxcIjppZighKGU9bi5kb2N1bWVudEVsZW1lbnQpKXRocm93IEVycm9yKGwoNDUyKSk7cmV0dXJuIGU7Y2FzZVwiaGVhZFwiOmlmKCEoZT1uLmhlYWQpKXRocm93IEVycm9yKGwoNDUzKSk7cmV0dXJuIGU7Y2FzZVwiYm9keVwiOmlmKCEoZT1uLmJvZHkpKXRocm93IEVycm9yKGwoNDU0KSk7cmV0dXJuIGU7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ1MSkpfX1mdW5jdGlvbiBjUihlKXtmb3IodmFyIG49ZS5hdHRyaWJ1dGVzO24ubGVuZ3RoOyllLnJlbW92ZUF0dHJpYnV0ZU5vZGUoblswXSk7ZVYoZSl9dmFyIGNOPW5ldyBNYXAsY0Q9bmV3IFNldDtmdW5jdGlvbiBjQihlKXtyZXR1cm5cImZ1bmN0aW9uXCI9PXR5cGVvZiBlLmdldFJvb3ROb2RlP2UuZ2V0Um9vdE5vZGUoKTo5PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudH12YXIgY009VC5kO1QuZD17ZjpmdW5jdGlvbigpe3ZhciBlPWNNLmYoKSxuPXNzKCk7cmV0dXJuIGV8fG59LHI6ZnVuY3Rpb24oZSl7dmFyIG49ZVcoZSk7bnVsbCE9PW4mJjU9PT1uLnRhZyYmXCJmb3JtXCI9PT1uLnR5cGU/YUcobik6Y00ucihlKX0sRDpmdW5jdGlvbihlKXtjTS5EKGUpLGNIKFwiZG5zLXByZWZldGNoXCIsZSxudWxsKX0sQzpmdW5jdGlvbihlLG4pe2NNLkMoZSxuKSxjSChcInByZWNvbm5lY3RcIixlLG4pfSxMOmZ1bmN0aW9uKGUsbix0KXtpZihjTS5MKGUsbix0KSxjSSYmZSYmbil7dmFyIHI9J2xpbmtbcmVsPVwicHJlbG9hZFwiXVthcz1cIicrbm4obikrJ1wiXSc7XCJpbWFnZVwiPT09biYmdCYmdC5pbWFnZVNyY1NldD8ocis9J1tpbWFnZXNyY3NldD1cIicrbm4odC5pbWFnZVNyY1NldCkrJ1wiXScsXCJzdHJpbmdcIj09dHlwZW9mIHQuaW1hZ2VTaXplcyYmKHIrPSdbaW1hZ2VzaXplcz1cIicrbm4odC5pbWFnZVNpemVzKSsnXCJdJykpOnIrPSdbaHJlZj1cIicrbm4oZSkrJ1wiXSc7dmFyIG89cjtzd2l0Y2gobil7Y2FzZVwic3R5bGVcIjpvPWNVKGUpO2JyZWFrO2Nhc2VcInNjcmlwdFwiOm89Y1coZSl9Y04uaGFzKG8pfHwoZT1mKHtyZWw6XCJwcmVsb2FkXCIsaHJlZjpcImltYWdlXCI9PT1uJiZ0JiZ0LmltYWdlU3JjU2V0P3ZvaWQgMDplLGFzOm59LHQpLGNOLnNldChvLGUpLG51bGwhPT1jSS5xdWVyeVNlbGVjdG9yKHIpfHxcInN0eWxlXCI9PT1uJiZjSS5xdWVyeVNlbGVjdG9yKGNWKG8pKXx8XCJzY3JpcHRcIj09PW4mJmNJLnF1ZXJ5U2VsZWN0b3IoYyQobykpfHwoY2Mobj1jSS5jcmVhdGVFbGVtZW50KFwibGlua1wiKSxcImxpbmtcIixlKSxlWShuKSxjSS5oZWFkLmFwcGVuZENoaWxkKG4pKSl9fSxtOmZ1bmN0aW9uKGUsbil7aWYoY00ubShlLG4pLGNJJiZlKXt2YXIgdD1uJiZcInN0cmluZ1wiPT10eXBlb2Ygbi5hcz9uLmFzOlwic2NyaXB0XCIscj0nbGlua1tyZWw9XCJtb2R1bGVwcmVsb2FkXCJdW2FzPVwiJytubih0KSsnXCJdW2hyZWY9XCInK25uKGUpKydcIl0nLG89cjtzd2l0Y2godCl7Y2FzZVwiYXVkaW93b3JrbGV0XCI6Y2FzZVwicGFpbnR3b3JrbGV0XCI6Y2FzZVwic2VydmljZXdvcmtlclwiOmNhc2VcInNoYXJlZHdvcmtlclwiOmNhc2VcIndvcmtlclwiOmNhc2VcInNjcmlwdFwiOm89Y1coZSl9aWYoIWNOLmhhcyhvKSYmKGU9Zih7cmVsOlwibW9kdWxlcHJlbG9hZFwiLGhyZWY6ZX0sbiksY04uc2V0KG8sZSksbnVsbD09PWNJLnF1ZXJ5U2VsZWN0b3IocikpKXtzd2l0Y2godCl7Y2FzZVwiYXVkaW93b3JrbGV0XCI6Y2FzZVwicGFpbnR3b3JrbGV0XCI6Y2FzZVwic2VydmljZXdvcmtlclwiOmNhc2VcInNoYXJlZHdvcmtlclwiOmNhc2VcIndvcmtlclwiOmNhc2VcInNjcmlwdFwiOmlmKGNJLnF1ZXJ5U2VsZWN0b3IoYyQobykpKXJldHVybn1jYyh0PWNJLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpLFwibGlua1wiLGUpLGVZKHQpLGNJLmhlYWQuYXBwZW5kQ2hpbGQodCl9fX0sWDpmdW5jdGlvbihlLG4pe2lmKGNNLlgoZSxuKSxjSSYmZSl7dmFyIHQ9ZVooY0kpLmhvaXN0YWJsZVNjcmlwdHMscj1jVyhlKSxvPXQuZ2V0KHIpO298fCgobz1jSS5xdWVyeVNlbGVjdG9yKGMkKHIpKSl8fChlPWYoe3NyYzplLGFzeW5jOiEwfSxuKSwobj1jTi5nZXQocikpJiZjSyhlLG4pLGVZKG89Y0kuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKSksY2MobyxcImxpbmtcIixlKSxjSS5oZWFkLmFwcGVuZENoaWxkKG8pKSxvPXt0eXBlOlwic2NyaXB0XCIsaW5zdGFuY2U6byxjb3VudDoxLHN0YXRlOm51bGx9LHQuc2V0KHIsbykpfX0sUzpmdW5jdGlvbihlLG4sdCl7aWYoY00uUyhlLG4sdCksY0kmJmUpe3ZhciByPWVaKGNJKS5ob2lzdGFibGVTdHlsZXMsbz1jVShlKTtuPW58fFwiZGVmYXVsdFwiO3ZhciBhPXIuZ2V0KG8pO2lmKCFhKXt2YXIgaT17bG9hZGluZzowLHByZWxvYWQ6bnVsbH07aWYoYT1jSS5xdWVyeVNlbGVjdG9yKGNWKG8pKSlpLmxvYWRpbmc9NTtlbHNle2U9Zih7cmVsOlwic3R5bGVzaGVldFwiLGhyZWY6ZSxcImRhdGEtcHJlY2VkZW5jZVwiOm59LHQpLCh0PWNOLmdldChvKSkmJmNYKGUsdCk7dmFyIGw9YT1jSS5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtlWShsKSxjYyhsLFwibGlua1wiLGUpLGwuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSxuKXtsLm9ubG9hZD1lLGwub25lcnJvcj1ufSksbC5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLGZ1bmN0aW9uKCl7aS5sb2FkaW5nfD0xfSksbC5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIixmdW5jdGlvbigpe2kubG9hZGluZ3w9Mn0pLGkubG9hZGluZ3w9NCxjWShhLG4sY0kpfWE9e3R5cGU6XCJzdHlsZXNoZWV0XCIsaW5zdGFuY2U6YSxjb3VudDoxLHN0YXRlOml9LHIuc2V0KG8sYSl9fX0sTTpmdW5jdGlvbihlLG4pe2lmKGNNLk0oZSxuKSxjSSYmZSl7dmFyIHQ9ZVooY0kpLmhvaXN0YWJsZVNjcmlwdHMscj1jVyhlKSxvPXQuZ2V0KHIpO298fCgobz1jSS5xdWVyeVNlbGVjdG9yKGMkKHIpKSl8fChlPWYoe3NyYzplLGFzeW5jOiEwLHR5cGU6XCJtb2R1bGVcIn0sbiksKG49Y04uZ2V0KHIpKSYmY0soZSxuKSxlWShvPWNJLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpLGNjKG8sXCJsaW5rXCIsZSksY0kuaGVhZC5hcHBlbmRDaGlsZChvKSksbz17dHlwZTpcInNjcmlwdFwiLGluc3RhbmNlOm8sY291bnQ6MSxzdGF0ZTpudWxsfSx0LnNldChyLG8pKX19fTt2YXIgY0k9XCJ1bmRlZmluZWRcIj09dHlwZW9mIGRvY3VtZW50P251bGw6ZG9jdW1lbnQ7ZnVuY3Rpb24gY0goZSxuLHQpe2lmKGNJJiZcInN0cmluZ1wiPT10eXBlb2YgbiYmbil7dmFyIHI9bm4obik7cj0nbGlua1tyZWw9XCInK2UrJ1wiXVtocmVmPVwiJytyKydcIl0nLFwic3RyaW5nXCI9PXR5cGVvZiB0JiYocis9J1tjcm9zc29yaWdpbj1cIicrdCsnXCJdJyksY0QuaGFzKHIpfHwoY0QuYWRkKHIpLGU9e3JlbDplLGNyb3NzT3JpZ2luOnQsaHJlZjpufSxudWxsPT09Y0kucXVlcnlTZWxlY3RvcihyKSYmKGNjKG49Y0kuY3JlYXRlRWxlbWVudChcImxpbmtcIiksXCJsaW5rXCIsZSksZVkobiksY0kuaGVhZC5hcHBlbmRDaGlsZChuKSkpfX1mdW5jdGlvbiBjRihlLG4sdCxyKXt2YXIgbz0obz1VLmN1cnJlbnQpP2NCKG8pOm51bGw7aWYoIW8pdGhyb3cgRXJyb3IobCg0NDYpKTtzd2l0Y2goZSl7Y2FzZVwibWV0YVwiOmNhc2VcInRpdGxlXCI6cmV0dXJuIG51bGw7Y2FzZVwic3R5bGVcIjpyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdC5wcmVjZWRlbmNlJiZcInN0cmluZ1wiPT10eXBlb2YgdC5ocmVmPyhuPWNVKHQuaHJlZiksKHI9KHQ9ZVoobykuaG9pc3RhYmxlU3R5bGVzKS5nZXQobikpfHwocj17dHlwZTpcInN0eWxlXCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9LHQuc2V0KG4scikpLHIpOnt0eXBlOlwidm9pZFwiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfTtjYXNlXCJsaW5rXCI6aWYoXCJzdHlsZXNoZWV0XCI9PT10LnJlbCYmXCJzdHJpbmdcIj09dHlwZW9mIHQuaHJlZiYmXCJzdHJpbmdcIj09dHlwZW9mIHQucHJlY2VkZW5jZSl7ZT1jVSh0LmhyZWYpO3ZhciBhLGkscyxjLHU9ZVoobykuaG9pc3RhYmxlU3R5bGVzLGQ9dS5nZXQoZSk7aWYoZHx8KG89by5vd25lckRvY3VtZW50fHxvLGQ9e3R5cGU6XCJzdHlsZXNoZWV0XCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOntsb2FkaW5nOjAscHJlbG9hZDpudWxsfX0sdS5zZXQoZSxkKSwodT1vLnF1ZXJ5U2VsZWN0b3IoY1YoZSkpKSYmIXUuX3AmJihkLmluc3RhbmNlPXUsZC5zdGF0ZS5sb2FkaW5nPTUpLGNOLmhhcyhlKXx8KHQ9e3JlbDpcInByZWxvYWRcIixhczpcInN0eWxlXCIsaHJlZjp0LmhyZWYsY3Jvc3NPcmlnaW46dC5jcm9zc09yaWdpbixpbnRlZ3JpdHk6dC5pbnRlZ3JpdHksbWVkaWE6dC5tZWRpYSxocmVmTGFuZzp0LmhyZWZMYW5nLHJlZmVycmVyUG9saWN5OnQucmVmZXJyZXJQb2xpY3l9LGNOLnNldChlLHQpLHV8fChhPW8saT1lLHM9dCxjPWQuc3RhdGUsYS5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD1cInByZWxvYWRcIl1bYXM9XCJzdHlsZVwiXVsnK2krXCJdXCIpP2MubG9hZGluZz0xOihjLnByZWxvYWQ9aT1hLmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpLGkuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixmdW5jdGlvbigpe3JldHVybiBjLmxvYWRpbmd8PTF9KSxpLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLGZ1bmN0aW9uKCl7cmV0dXJuIGMubG9hZGluZ3w9Mn0pLGNjKGksXCJsaW5rXCIscyksZVkoaSksYS5oZWFkLmFwcGVuZENoaWxkKGkpKSkpKSxuJiZudWxsPT09cil0aHJvdyBFcnJvcihsKDUyOCxcIlwiKSk7cmV0dXJuIGR9aWYobiYmbnVsbCE9PXIpdGhyb3cgRXJyb3IobCg1MjksXCJcIikpO3JldHVybiBudWxsO2Nhc2VcInNjcmlwdFwiOnJldHVybiBuPXQuYXN5bmMsXCJzdHJpbmdcIj09dHlwZW9mKHQ9dC5zcmMpJiZuJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBuJiZcInN5bWJvbFwiIT10eXBlb2Ygbj8obj1jVyh0KSwocj0odD1lWihvKS5ob2lzdGFibGVTY3JpcHRzKS5nZXQobikpfHwocj17dHlwZTpcInNjcmlwdFwiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfSx0LnNldChuLHIpKSxyKTp7dHlwZTpcInZvaWRcIixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH07ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ0NCxlKSl9fWZ1bmN0aW9uIGNVKGUpe3JldHVybidocmVmPVwiJytubihlKSsnXCInfWZ1bmN0aW9uIGNWKGUpe3JldHVybidsaW5rW3JlbD1cInN0eWxlc2hlZXRcIl1bJytlK1wiXVwifWZ1bmN0aW9uIGNxKGUpe3JldHVybiBmKHt9LGUse1wiZGF0YS1wcmVjZWRlbmNlXCI6ZS5wcmVjZWRlbmNlLHByZWNlZGVuY2U6bnVsbH0pfWZ1bmN0aW9uIGNXKGUpe3JldHVybidbc3JjPVwiJytubihlKSsnXCJdJ31mdW5jdGlvbiBjJChlKXtyZXR1cm5cInNjcmlwdFthc3luY11cIitlfWZ1bmN0aW9uIGNaKGUsbix0KXtpZihuLmNvdW50KyssbnVsbD09PW4uaW5zdGFuY2Upc3dpdGNoKG4udHlwZSl7Y2FzZVwic3R5bGVcIjp2YXIgcj1lLnF1ZXJ5U2VsZWN0b3IoJ3N0eWxlW2RhdGEtaHJlZn49XCInK25uKHQuaHJlZikrJ1wiXScpO2lmKHIpcmV0dXJuIG4uaW5zdGFuY2U9cixlWShyKSxyO3ZhciBvPWYoe30sdCx7XCJkYXRhLWhyZWZcIjp0LmhyZWYsXCJkYXRhLXByZWNlZGVuY2VcIjp0LnByZWNlZGVuY2UsaHJlZjpudWxsLHByZWNlZGVuY2U6bnVsbH0pO3JldHVybiBlWShyPShlLm93bmVyRG9jdW1lbnR8fGUpLmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKSksY2MocixcInN0eWxlXCIsbyksY1kocix0LnByZWNlZGVuY2UsZSksbi5pbnN0YW5jZT1yO2Nhc2VcInN0eWxlc2hlZXRcIjpvPWNVKHQuaHJlZik7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKGNWKG8pKTtpZihhKXJldHVybiBuLnN0YXRlLmxvYWRpbmd8PTQsbi5pbnN0YW5jZT1hLGVZKGEpLGE7cj1jcSh0KSwobz1jTi5nZXQobykpJiZjWChyLG8pLGVZKGE9KGUub3duZXJEb2N1bWVudHx8ZSkuY3JlYXRlRWxlbWVudChcImxpbmtcIikpO3ZhciBpPWE7cmV0dXJuIGkuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSxuKXtpLm9ubG9hZD1lLGkub25lcnJvcj1ufSksY2MoYSxcImxpbmtcIixyKSxuLnN0YXRlLmxvYWRpbmd8PTQsY1koYSx0LnByZWNlZGVuY2UsZSksbi5pbnN0YW5jZT1hO2Nhc2VcInNjcmlwdFwiOmlmKGE9Y1codC5zcmMpLG89ZS5xdWVyeVNlbGVjdG9yKGMkKGEpKSlyZXR1cm4gbi5pbnN0YW5jZT1vLGVZKG8pLG87cmV0dXJuIHI9dCwobz1jTi5nZXQoYSkpJiZjSyhyPWYoe30sdCksbyksZVkobz0oZT1lLm93bmVyRG9jdW1lbnR8fGUpLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpLGNjKG8sXCJsaW5rXCIsciksZS5oZWFkLmFwcGVuZENoaWxkKG8pLG4uaW5zdGFuY2U9bztjYXNlXCJ2b2lkXCI6cmV0dXJuIG51bGw7ZGVmYXVsdDp0aHJvdyBFcnJvcihsKDQ0MyxuLnR5cGUpKX1yZXR1cm5cInN0eWxlc2hlZXRcIj09PW4udHlwZSYmMD09KDQmbi5zdGF0ZS5sb2FkaW5nKSYmKHI9bi5pbnN0YW5jZSxuLnN0YXRlLmxvYWRpbmd8PTQsY1kocix0LnByZWNlZGVuY2UsZSkpLG4uaW5zdGFuY2V9ZnVuY3Rpb24gY1koZSxuLHQpe2Zvcih2YXIgcj10LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPVwic3R5bGVzaGVldFwiXVtkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0nKSxvPXIubGVuZ3RoP3Jbci5sZW5ndGgtMV06bnVsbCxhPW8saT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbD1yW2ldO2lmKGwuZGF0YXNldC5wcmVjZWRlbmNlPT09bilhPWw7ZWxzZSBpZihhIT09bylicmVha31hP2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSxhLm5leHRTaWJsaW5nKToobj05PT09dC5ub2RlVHlwZT90LmhlYWQ6dCkuaW5zZXJ0QmVmb3JlKGUsbi5maXJzdENoaWxkKX1mdW5jdGlvbiBjWChlLG4pe251bGw9PWUuY3Jvc3NPcmlnaW4mJihlLmNyb3NzT3JpZ2luPW4uY3Jvc3NPcmlnaW4pLG51bGw9PWUucmVmZXJyZXJQb2xpY3kmJihlLnJlZmVycmVyUG9saWN5PW4ucmVmZXJyZXJQb2xpY3kpLG51bGw9PWUudGl0bGUmJihlLnRpdGxlPW4udGl0bGUpfWZ1bmN0aW9uIGNLKGUsbil7bnVsbD09ZS5jcm9zc09yaWdpbiYmKGUuY3Jvc3NPcmlnaW49bi5jcm9zc09yaWdpbiksbnVsbD09ZS5yZWZlcnJlclBvbGljeSYmKGUucmVmZXJyZXJQb2xpY3k9bi5yZWZlcnJlclBvbGljeSksbnVsbD09ZS5pbnRlZ3JpdHkmJihlLmludGVncml0eT1uLmludGVncml0eSl9dmFyIGNRPW51bGw7ZnVuY3Rpb24gY0coZSxuLHQpe2lmKG51bGw9PT1jUSl7dmFyIHI9bmV3IE1hcCxvPWNRPW5ldyBNYXA7by5zZXQodCxyKX1lbHNlKHI9KG89Y1EpLmdldCh0KSl8fChyPW5ldyBNYXAsby5zZXQodCxyKSk7aWYoci5oYXMoZSkpcmV0dXJuIHI7Zm9yKHIuc2V0KGUsbnVsbCksdD10LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpLG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIGE9dFtvXTtpZighKGFbZVVdfHxhW2VOXXx8XCJsaW5rXCI9PT1lJiZcInN0eWxlc2hlZXRcIj09PWEuZ2V0QXR0cmlidXRlKFwicmVsXCIpKSYmXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIT09YS5uYW1lc3BhY2VVUkkpe3ZhciBpPWEuZ2V0QXR0cmlidXRlKG4pfHxcIlwiO2k9ZStpO3ZhciBsPXIuZ2V0KGkpO2w/bC5wdXNoKGEpOnIuc2V0KGksW2FdKX19cmV0dXJuIHJ9ZnVuY3Rpb24gY0ooZSxuLHQpeyhlPWUub3duZXJEb2N1bWVudHx8ZSkuaGVhZC5pbnNlcnRCZWZvcmUodCxcInRpdGxlXCI9PT1uP2UucXVlcnlTZWxlY3RvcihcImhlYWQgPiB0aXRsZVwiKTpudWxsKX1mdW5jdGlvbiBjMChlKXtyZXR1cm5cInN0eWxlc2hlZXRcIiE9PWUudHlwZXx8MCE9KDMmZS5zdGF0ZS5sb2FkaW5nKX12YXIgYzE9bnVsbDtmdW5jdGlvbiBjMigpe2lmKHRoaXMuY291bnQtLSwwPT09dGhpcy5jb3VudCl7aWYodGhpcy5zdHlsZXNoZWV0cyljNSh0aGlzLHRoaXMuc3R5bGVzaGVldHMpO2Vsc2UgaWYodGhpcy51bnN1c3BlbmQpe3ZhciBlPXRoaXMudW5zdXNwZW5kO3RoaXMudW5zdXNwZW5kPW51bGwsZSgpfX19dmFyIGM0PW51bGw7ZnVuY3Rpb24gYzUoZSxuKXtlLnN0eWxlc2hlZXRzPW51bGwsbnVsbCE9PWUudW5zdXNwZW5kJiYoZS5jb3VudCsrLGM0PW5ldyBNYXAsbi5mb3JFYWNoKGMzLGUpLGM0PW51bGwsYzIuY2FsbChlKSl9ZnVuY3Rpb24gYzMoZSxuKXtpZighKDQmbi5zdGF0ZS5sb2FkaW5nKSl7dmFyIHQ9YzQuZ2V0KGUpO2lmKHQpdmFyIHI9dC5nZXQobnVsbCk7ZWxzZXt0PW5ldyBNYXAsYzQuc2V0KGUsdCk7Zm9yKHZhciBvPWUucXVlcnlTZWxlY3RvckFsbChcImxpbmtbZGF0YS1wcmVjZWRlbmNlXSxzdHlsZVtkYXRhLXByZWNlZGVuY2VdXCIpLGE9MDthPG8ubGVuZ3RoO2ErKyl7dmFyIGk9b1thXTsoXCJMSU5LXCI9PT1pLm5vZGVOYW1lfHxcIm5vdCBhbGxcIiE9PWkuZ2V0QXR0cmlidXRlKFwibWVkaWFcIikpJiYodC5zZXQoaS5kYXRhc2V0LnByZWNlZGVuY2UsaSkscj1pKX1yJiZ0LnNldChudWxsLHIpfWk9KG89bi5pbnN0YW5jZSkuZ2V0QXR0cmlidXRlKFwiZGF0YS1wcmVjZWRlbmNlXCIpLChhPXQuZ2V0KGkpfHxyKT09PXImJnQuc2V0KG51bGwsbyksdC5zZXQoaSxvKSx0aGlzLmNvdW50Kysscj1jMi5iaW5kKHRoaXMpLG8uYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIixyKSxvLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLHIpLGE/YS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShvLGEubmV4dFNpYmxpbmcpOihlPTk9PT1lLm5vZGVUeXBlP2UuaGVhZDplKS5pbnNlcnRCZWZvcmUobyxlLmZpcnN0Q2hpbGQpLG4uc3RhdGUubG9hZGluZ3w9NH19dmFyIGM2PXskJHR5cGVvZjp4LFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbCxfY3VycmVudFZhbHVlOlIsX2N1cnJlbnRWYWx1ZTI6UixfdGhyZWFkQ291bnQ6MH07ZnVuY3Rpb24gYzkoZSxuLHQscixvLGEsaSxsLHMpe3RoaXMudGFnPTEsdGhpcy5jb250YWluZXJJbmZvPWUsdGhpcy5waW5nQ2FjaGU9dGhpcy5jdXJyZW50PXRoaXMucGVuZGluZ0NoaWxkcmVuPW51bGwsdGhpcy50aW1lb3V0SGFuZGxlPS0xLHRoaXMuY2FsbGJhY2tOb2RlPXRoaXMubmV4dD10aGlzLnBlbmRpbmdDb250ZXh0PXRoaXMuY29udGV4dD10aGlzLmNhbmNlbFBlbmRpbmdDb21taXQ9bnVsbCx0aGlzLmNhbGxiYWNrUHJpb3JpdHk9MCx0aGlzLmV4cGlyYXRpb25UaW1lcz1lTygtMSksdGhpcy5lbnRhbmdsZWRMYW5lcz10aGlzLnNoZWxsU3VzcGVuZENvdW50ZXI9dGhpcy5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcz10aGlzLmV4cGlyZWRMYW5lcz10aGlzLndhcm1MYW5lcz10aGlzLnBpbmdlZExhbmVzPXRoaXMuc3VzcGVuZGVkTGFuZXM9dGhpcy5wZW5kaW5nTGFuZXM9MCx0aGlzLmVudGFuZ2xlbWVudHM9ZU8oMCksdGhpcy5oaWRkZW5VcGRhdGVzPWVPKG51bGwpLHRoaXMuaWRlbnRpZmllclByZWZpeD1yLHRoaXMub25VbmNhdWdodEVycm9yPW8sdGhpcy5vbkNhdWdodEVycm9yPWEsdGhpcy5vblJlY292ZXJhYmxlRXJyb3I9aSx0aGlzLnBvb2xlZENhY2hlPW51bGwsdGhpcy5wb29sZWRDYWNoZUxhbmVzPTAsdGhpcy5mb3JtU3RhdGU9cyx0aGlzLmluY29tcGxldGVUcmFuc2l0aW9ucz1uZXcgTWFwfWZ1bmN0aW9uIGM4KGUsbix0LHIsbyxhKXtvPW8/dDg6dDgsbnVsbD09PXIuY29udGV4dD9yLmNvbnRleHQ9bzpyLnBlbmRpbmdDb250ZXh0PW8sKHI9b0EobikpLnBheWxvYWQ9e2VsZW1lbnQ6dH0sbnVsbCE9PShhPXZvaWQgMD09PWE/bnVsbDphKSYmKHIuY2FsbGJhY2s9YSksbnVsbCE9PSh0PW9PKGUscixuKSkmJihzbyh0LGUsbiksb0ModCxlLG4pKX1mdW5jdGlvbiBjNyhlLG4pe2lmKG51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpJiZudWxsIT09ZS5kZWh5ZHJhdGVkKXt2YXIgdD1lLnJldHJ5TGFuZTtlLnJldHJ5TGFuZT0wIT09dCYmdDxuP3Q6bn19ZnVuY3Rpb24gdWUoZSxuKXtjNyhlLG4pLChlPWUuYWx0ZXJuYXRlKSYmYzcoZSxuKX1mdW5jdGlvbiB1bihlKXtpZigxMz09PWUudGFnfHwzMT09PWUudGFnKXt2YXIgbj10MyhlLDB4NDAwMDAwMCk7bnVsbCE9PW4mJnNvKG4sZSwweDQwMDAwMDApLHVlKGUsMHg0MDAwMDAwKX19ZnVuY3Rpb24gdXQoZSl7aWYoMTM9PT1lLnRhZ3x8MzE9PT1lLnRhZyl7dmFyIG49c3QoKSx0PXQzKGUsbj1lUChuKSk7bnVsbCE9PXQmJnNvKHQsZSxuKSx1ZShlLG4pfX12YXIgdXI9ITA7ZnVuY3Rpb24gdW8oZSxuLHQscil7dmFyIG89TC5UO0wuVD1udWxsO3ZhciBhPVQucDt0cnl7VC5wPTIsdWkoZSxuLHQscil9ZmluYWxseXtULnA9YSxMLlQ9b319ZnVuY3Rpb24gdWEoZSxuLHQscil7dmFyIG89TC5UO0wuVD1udWxsO3ZhciBhPVQucDt0cnl7VC5wPTgsdWkoZSxuLHQscil9ZmluYWxseXtULnA9YSxMLlQ9b319ZnVuY3Rpb24gdWkoZSxuLHQscil7aWYodXIpe3ZhciBvPXVsKHIpO2lmKG51bGw9PT1vKXM4KGUsbixyLHVzLHQpLHV5KGUscik7ZWxzZSBpZihmdW5jdGlvbihlLG4sdCxyLG8pe3N3aXRjaChuKXtjYXNlXCJmb2N1c2luXCI6cmV0dXJuIHVmPXV4KHVmLGUsbix0LHIsbyksITA7Y2FzZVwiZHJhZ2VudGVyXCI6cmV0dXJuIHVwPXV4KHVwLGUsbix0LHIsbyksITA7Y2FzZVwibW91c2VvdmVyXCI6cmV0dXJuIHVoPXV4KHVoLGUsbix0LHIsbyksITA7Y2FzZVwicG9pbnRlcm92ZXJcIjp2YXIgYT1vLnBvaW50ZXJJZDtyZXR1cm4gdWcuc2V0KGEsdXgodWcuZ2V0KGEpfHxudWxsLGUsbix0LHIsbykpLCEwO2Nhc2VcImdvdHBvaW50ZXJjYXB0dXJlXCI6cmV0dXJuIGE9by5wb2ludGVySWQsdW0uc2V0KGEsdXgodW0uZ2V0KGEpfHxudWxsLGUsbix0LHIsbykpLCEwfXJldHVybiExfShvLGUsbix0LHIpKXIuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZih1eShlLHIpLDQmbiYmLTE8dWIuaW5kZXhPZihlKSl7Zm9yKDtudWxsIT09bzspe3ZhciBhPWVXKG8pO2lmKG51bGwhPT1hKXN3aXRjaChhLnRhZyl7Y2FzZSAzOmlmKChhPWEuc3RhdGVOb2RlKS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXt2YXIgaT1leChhLnBlbmRpbmdMYW5lcyk7aWYoMCE9PWkpe3ZhciBsPWE7Zm9yKGwucGVuZGluZ0xhbmVzfD0yLGwuZW50YW5nbGVkTGFuZXN8PTI7aTspe3ZhciBzPTE8PDMxLWVnKGkpO2wuZW50YW5nbGVtZW50c1sxXXw9cyxpJj1+c31zVShhKSwwPT0oNiZsUikmJihsMD1lcigpKzUwMCxzVigwLCExKSl9fWJyZWFrO2Nhc2UgMzE6Y2FzZSAxMzpudWxsIT09KGw9dDMoYSwyKSkmJnNvKGwsYSwyKSxzcygpLHVlKGEsMil9aWYobnVsbD09PShhPXVsKHIpKSYmczgoZSxuLHIsdXMsdCksYT09PW8pYnJlYWs7bz1hfW51bGwhPT1vJiZyLnN0b3BQcm9wYWdhdGlvbigpfWVsc2UgczgoZSxuLHIsbnVsbCx0KX19ZnVuY3Rpb24gdWwoZSl7cmV0dXJuIHVjKGU9bmIoZSkpfXZhciB1cz1udWxsO2Z1bmN0aW9uIHVjKGUpe2lmKHVzPW51bGwsbnVsbCE9PShlPWVxKGUpKSl7dmFyIG49cyhlKTtpZihudWxsPT09billPW51bGw7ZWxzZXt2YXIgdD1uLnRhZztpZigxMz09PXQpe2lmKG51bGwhPT0oZT1jKG4pKSlyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZigzMT09PXQpe2lmKG51bGwhPT0oZT11KG4pKSlyZXR1cm4gZTtlPW51bGx9ZWxzZSBpZigzPT09dCl7aWYobi5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZClyZXR1cm4gMz09PW4udGFnP24uc3RhdGVOb2RlLmNvbnRhaW5lckluZm86bnVsbDtlPW51bGx9ZWxzZSBuIT09ZSYmKGU9bnVsbCl9fXJldHVybiB1cz1lLG51bGx9ZnVuY3Rpb24gdXUoZSl7c3dpdGNoKGUpe2Nhc2VcImJlZm9yZXRvZ2dsZVwiOmNhc2VcImNhbmNlbFwiOmNhc2VcImNsaWNrXCI6Y2FzZVwiY2xvc2VcIjpjYXNlXCJjb250ZXh0bWVudVwiOmNhc2VcImNvcHlcIjpjYXNlXCJjdXRcIjpjYXNlXCJhdXhjbGlja1wiOmNhc2VcImRibGNsaWNrXCI6Y2FzZVwiZHJhZ2VuZFwiOmNhc2VcImRyYWdzdGFydFwiOmNhc2VcImRyb3BcIjpjYXNlXCJmb2N1c2luXCI6Y2FzZVwiZm9jdXNvdXRcIjpjYXNlXCJpbnB1dFwiOmNhc2VcImludmFsaWRcIjpjYXNlXCJrZXlkb3duXCI6Y2FzZVwia2V5cHJlc3NcIjpjYXNlXCJrZXl1cFwiOmNhc2VcIm1vdXNlZG93blwiOmNhc2VcIm1vdXNldXBcIjpjYXNlXCJwYXN0ZVwiOmNhc2VcInBhdXNlXCI6Y2FzZVwicGxheVwiOmNhc2VcInBvaW50ZXJjYW5jZWxcIjpjYXNlXCJwb2ludGVyZG93blwiOmNhc2VcInBvaW50ZXJ1cFwiOmNhc2VcInJhdGVjaGFuZ2VcIjpjYXNlXCJyZXNldFwiOmNhc2VcInJlc2l6ZVwiOmNhc2VcInNlZWtlZFwiOmNhc2VcInN1Ym1pdFwiOmNhc2VcInRvZ2dsZVwiOmNhc2VcInRvdWNoY2FuY2VsXCI6Y2FzZVwidG91Y2hlbmRcIjpjYXNlXCJ0b3VjaHN0YXJ0XCI6Y2FzZVwidm9sdW1lY2hhbmdlXCI6Y2FzZVwiY2hhbmdlXCI6Y2FzZVwic2VsZWN0aW9uY2hhbmdlXCI6Y2FzZVwidGV4dElucHV0XCI6Y2FzZVwiY29tcG9zaXRpb25zdGFydFwiOmNhc2VcImNvbXBvc2l0aW9uZW5kXCI6Y2FzZVwiY29tcG9zaXRpb251cGRhdGVcIjpjYXNlXCJiZWZvcmVibHVyXCI6Y2FzZVwiYWZ0ZXJibHVyXCI6Y2FzZVwiYmVmb3JlaW5wdXRcIjpjYXNlXCJibHVyXCI6Y2FzZVwiZnVsbHNjcmVlbmNoYW5nZVwiOmNhc2VcImZvY3VzXCI6Y2FzZVwiaGFzaGNoYW5nZVwiOmNhc2VcInBvcHN0YXRlXCI6Y2FzZVwic2VsZWN0XCI6Y2FzZVwic2VsZWN0c3RhcnRcIjpyZXR1cm4gMjtjYXNlXCJkcmFnXCI6Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2V4aXRcIjpjYXNlXCJkcmFnbGVhdmVcIjpjYXNlXCJkcmFnb3ZlclwiOmNhc2VcIm1vdXNlbW92ZVwiOmNhc2VcIm1vdXNlb3V0XCI6Y2FzZVwibW91c2VvdmVyXCI6Y2FzZVwicG9pbnRlcm1vdmVcIjpjYXNlXCJwb2ludGVyb3V0XCI6Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJzY3JvbGxcIjpjYXNlXCJ0b3VjaG1vdmVcIjpjYXNlXCJ3aGVlbFwiOmNhc2VcIm1vdXNlZW50ZXJcIjpjYXNlXCJtb3VzZWxlYXZlXCI6Y2FzZVwicG9pbnRlcmVudGVyXCI6Y2FzZVwicG9pbnRlcmxlYXZlXCI6cmV0dXJuIDg7Y2FzZVwibWVzc2FnZVwiOnN3aXRjaChlbygpKXtjYXNlIGVhOnJldHVybiAyO2Nhc2UgZWk6cmV0dXJuIDg7Y2FzZSBlbDpjYXNlIGVzOnJldHVybiAzMjtjYXNlIGVjOnJldHVybiAweDEwMDAwMDAwO2RlZmF1bHQ6cmV0dXJuIDMyfWRlZmF1bHQ6cmV0dXJuIDMyfX12YXIgdWQ9ITEsdWY9bnVsbCx1cD1udWxsLHVoPW51bGwsdWc9bmV3IE1hcCx1bT1uZXcgTWFwLHV2PVtdLHViPVwibW91c2Vkb3duIG1vdXNldXAgdG91Y2hjYW5jZWwgdG91Y2hlbmQgdG91Y2hzdGFydCBhdXhjbGljayBkYmxjbGljayBwb2ludGVyY2FuY2VsIHBvaW50ZXJkb3duIHBvaW50ZXJ1cCBkcmFnZW5kIGRyYWdzdGFydCBkcm9wIGNvbXBvc2l0aW9uZW5kIGNvbXBvc2l0aW9uc3RhcnQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBpbnB1dCB0ZXh0SW5wdXQgY29weSBjdXQgcGFzdGUgY2xpY2sgY2hhbmdlIGNvbnRleHRtZW51IHJlc2V0XCIuc3BsaXQoXCIgXCIpO2Z1bmN0aW9uIHV5KGUsbil7c3dpdGNoKGUpe2Nhc2VcImZvY3VzaW5cIjpjYXNlXCJmb2N1c291dFwiOnVmPW51bGw7YnJlYWs7Y2FzZVwiZHJhZ2VudGVyXCI6Y2FzZVwiZHJhZ2xlYXZlXCI6dXA9bnVsbDticmVhaztjYXNlXCJtb3VzZW92ZXJcIjpjYXNlXCJtb3VzZW91dFwiOnVoPW51bGw7YnJlYWs7Y2FzZVwicG9pbnRlcm92ZXJcIjpjYXNlXCJwb2ludGVyb3V0XCI6dWcuZGVsZXRlKG4ucG9pbnRlcklkKTticmVhaztjYXNlXCJnb3Rwb2ludGVyY2FwdHVyZVwiOmNhc2VcImxvc3Rwb2ludGVyY2FwdHVyZVwiOnVtLmRlbGV0ZShuLnBvaW50ZXJJZCl9fWZ1bmN0aW9uIHV4KGUsbix0LHIsbyxhKXtyZXR1cm4gbnVsbD09PWV8fGUubmF0aXZlRXZlbnQhPT1hPyhlPXtibG9ja2VkT246bixkb21FdmVudE5hbWU6dCxldmVudFN5c3RlbUZsYWdzOnIsbmF0aXZlRXZlbnQ6YSx0YXJnZXRDb250YWluZXJzOltvXX0sbnVsbCE9PW4mJm51bGwhPT0obj1lVyhuKSkmJnVuKG4pKTooZS5ldmVudFN5c3RlbUZsYWdzfD1yLG49ZS50YXJnZXRDb250YWluZXJzLG51bGwhPT1vJiYtMT09PW4uaW5kZXhPZihvKSYmbi5wdXNoKG8pKSxlfWZ1bmN0aW9uIHV3KGUpe3ZhciBuPWVxKGUudGFyZ2V0KTtpZihudWxsIT09bil7dmFyIHQ9cyhuKTtpZihudWxsIT09dCl7aWYoMTM9PT0obj10LnRhZykpe2lmKG51bGwhPT0obj1jKHQpKSl7ZS5ibG9ja2VkT249bixlVChlLnByaW9yaXR5LGZ1bmN0aW9uKCl7dXQodCl9KTtyZXR1cm59fWVsc2UgaWYoMzE9PT1uKXtpZihudWxsIT09KG49dSh0KSkpe2UuYmxvY2tlZE9uPW4sZVQoZS5wcmlvcml0eSxmdW5jdGlvbigpe3V0KHQpfSk7cmV0dXJufX1lbHNlIGlmKDM9PT1uJiZ0LnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXtlLmJsb2NrZWRPbj0zPT09dC50YWc/dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO3JldHVybn19fWUuYmxvY2tlZE9uPW51bGx9ZnVuY3Rpb24gdWooZSl7aWYobnVsbCE9PWUuYmxvY2tlZE9uKXJldHVybiExO2Zvcih2YXIgbj1lLnRhcmdldENvbnRhaW5lcnM7MDxuLmxlbmd0aDspe3ZhciB0PXVsKGUubmF0aXZlRXZlbnQpO2lmKG51bGwhPT10KXJldHVybiBudWxsIT09KG49ZVcodCkpJiZ1bihuKSxlLmJsb2NrZWRPbj10LCExO3ZhciByPW5ldyh0PWUubmF0aXZlRXZlbnQpLmNvbnN0cnVjdG9yKHQudHlwZSx0KTtudj1yLHQudGFyZ2V0LmRpc3BhdGNoRXZlbnQociksbnY9bnVsbCxuLnNoaWZ0KCl9cmV0dXJuITB9ZnVuY3Rpb24gdWsoZSxuLHQpe3VqKGUpJiZ0LmRlbGV0ZShuKX1mdW5jdGlvbiB1QSgpe3VkPSExLG51bGwhPT11ZiYmdWoodWYpJiYodWY9bnVsbCksbnVsbCE9PXVwJiZ1aih1cCkmJih1cD1udWxsKSxudWxsIT09dWgmJnVqKHVoKSYmKHVoPW51bGwpLHVnLmZvckVhY2godWspLHVtLmZvckVhY2godWspfWZ1bmN0aW9uIHVPKGUsbil7ZS5ibG9ja2VkT249PT1uJiYoZS5ibG9ja2VkT249bnVsbCx1ZHx8KHVkPSEwLG8udW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhvLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LHVBKSkpfXZhciB1Qz1udWxsO2Z1bmN0aW9uIHVTKGUpe3VDIT09ZSYmKHVDPWUsby51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKG8udW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZnVuY3Rpb24oKXt1Qz09PWUmJih1Qz1udWxsKTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rPTMpe3ZhciB0PWVbbl0scj1lW24rMV0sbz1lW24rMl07aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgcilpZihudWxsPT09dWMocnx8dCkpY29udGludWU7ZWxzZSBicmVhazt2YXIgYT1lVyh0KTtudWxsIT09YSYmKGUuc3BsaWNlKG4sMyksbi09MyxhSyhhLHtwZW5kaW5nOiEwLGRhdGE6byxtZXRob2Q6dC5tZXRob2QsYWN0aW9uOnJ9LHIsbykpfX0pKX1mdW5jdGlvbiB1RShlKXtmdW5jdGlvbiBuKG4pe3JldHVybiB1TyhuLGUpfW51bGwhPT11ZiYmdU8odWYsZSksbnVsbCE9PXVwJiZ1Tyh1cCxlKSxudWxsIT09dWgmJnVPKHVoLGUpLHVnLmZvckVhY2gobiksdW0uZm9yRWFjaChuKTtmb3IodmFyIHQ9MDt0PHV2Lmxlbmd0aDt0Kyspe3ZhciByPXV2W3RdO3IuYmxvY2tlZE9uPT09ZSYmKHIuYmxvY2tlZE9uPW51bGwpfWZvcig7MDx1di5sZW5ndGgmJm51bGw9PT0odD11dlswXSkuYmxvY2tlZE9uOyl1dyh0KSxudWxsPT09dC5ibG9ja2VkT24mJnV2LnNoaWZ0KCk7aWYobnVsbCE9KHQ9KGUub3duZXJEb2N1bWVudHx8ZSkuJCRyZWFjdEZvcm1SZXBsYXkpKWZvcihyPTA7cjx0Lmxlbmd0aDtyKz0zKXt2YXIgbz10W3JdLGE9dFtyKzFdLGk9b1tlRF18fG51bGw7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgYSlpfHx1Uyh0KTtlbHNlIGlmKGkpe3ZhciBsPW51bGw7aWYoYSYmYS5oYXNBdHRyaWJ1dGUoXCJmb3JtQWN0aW9uXCIpKXtpZihvPWEsaT1hW2VEXXx8bnVsbClsPWkuZm9ybUFjdGlvbjtlbHNlIGlmKG51bGwhPT11YyhvKSljb250aW51ZX1lbHNlIGw9aS5hY3Rpb247XCJmdW5jdGlvblwiPT10eXBlb2YgbD90W3IrMV09bDoodC5zcGxpY2UociwzKSxyLT0zKSx1Uyh0KX19fWZ1bmN0aW9uIHVfKCl7ZnVuY3Rpb24gZShlKXtlLmNhbkludGVyY2VwdCYmXCJyZWFjdC10cmFuc2l0aW9uXCI9PT1lLmluZm8mJmUuaW50ZXJjZXB0KHtoYW5kbGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3JldHVybiBvPWV9KX0sZm9jdXNSZXNldDpcIm1hbnVhbFwiLHNjcm9sbDpcIm1hbnVhbFwifSl9ZnVuY3Rpb24gbigpe251bGwhPT1vJiYobygpLG89bnVsbCkscnx8c2V0VGltZW91dCh0LDIwKX1mdW5jdGlvbiB0KCl7aWYoIXImJiFuYXZpZ2F0aW9uLnRyYW5zaXRpb24pe3ZhciBlPW5hdmlnYXRpb24uY3VycmVudEVudHJ5O2UmJm51bGwhPWUudXJsJiZuYXZpZ2F0aW9uLm5hdmlnYXRlKGUudXJsLHtzdGF0ZTplLmdldFN0YXRlKCksaW5mbzpcInJlYWN0LXRyYW5zaXRpb25cIixoaXN0b3J5OlwicmVwbGFjZVwifSl9fWlmKFwib2JqZWN0XCI9PXR5cGVvZiBuYXZpZ2F0aW9uKXt2YXIgcj0hMSxvPW51bGw7cmV0dXJuIG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlXCIsZSksbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKFwibmF2aWdhdGVzdWNjZXNzXCIsbiksbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKFwibmF2aWdhdGVlcnJvclwiLG4pLHNldFRpbWVvdXQodCwxMDApLGZ1bmN0aW9uKCl7cj0hMCxuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJuYXZpZ2F0ZVwiLGUpLG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlc3VjY2Vzc1wiLG4pLG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlZXJyb3JcIixuKSxudWxsIT09byYmKG8oKSxvPW51bGwpfX19ZnVuY3Rpb24gdVAoZSl7dGhpcy5faW50ZXJuYWxSb290PWV9ZnVuY3Rpb24gdXooZSl7dGhpcy5faW50ZXJuYWxSb290PWV9dXoucHJvdG90eXBlLnJlbmRlcj11UC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsPT09bil0aHJvdyBFcnJvcihsKDQwOSkpO2M4KG4uY3VycmVudCxzdCgpLGUsbixudWxsLG51bGwpfSx1ei5wcm90b3R5cGUudW5tb3VudD11UC5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsIT09ZSl7dGhpcy5faW50ZXJuYWxSb290PW51bGw7dmFyIG49ZS5jb250YWluZXJJbmZvO2M4KGUuY3VycmVudCwyLG51bGwsZSxudWxsLG51bGwpLHNzKCksbltlQl09bnVsbH19LHV6LnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihlKXtpZihlKXt2YXIgbj1lTCgpO2U9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDplLHByaW9yaXR5Om59O2Zvcih2YXIgdD0wO3Q8dXYubGVuZ3RoJiYwIT09biYmbjx1dlt0XS5wcmlvcml0eTt0KyspO3V2LnNwbGljZSh0LDAsZSksMD09PXQmJnV3KGUpfX07dmFyIHVMPWEudmVyc2lvbjtpZihcIjE5LjIuMC1jYW5hcnktOTdjZGQ1ZDMtMjAyNTA3MTBcIiE9PXVMKXRocm93IEVycm9yKGwoNTI3LHVMLFwiMTkuMi4wLWNhbmFyeS05N2NkZDVkMy0yMDI1MDcxMFwiKSk7aWYoVC5maW5kRE9NTm9kZT1mdW5jdGlvbihlKXt2YXIgbj1lLl9yZWFjdEludGVybmFscztpZih2b2lkIDA9PT1uKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnJlbmRlcil0aHJvdyBFcnJvcihsKDE4OCkpO3Rocm93IEVycm9yKGwoMjY4LGU9T2JqZWN0LmtleXMoZSkuam9pbihcIixcIikpKX1yZXR1cm4gZT1udWxsPT09KGU9bnVsbCE9PShlPWZ1bmN0aW9uKGUpe3ZhciBuPWUuYWx0ZXJuYXRlO2lmKCFuKXtpZihudWxsPT09KG49cyhlKSkpdGhyb3cgRXJyb3IobCgxODgpKTtyZXR1cm4gbiE9PWU/bnVsbDplfWZvcih2YXIgdD1lLHI9bjs7KXt2YXIgbz10LnJldHVybjtpZihudWxsPT09bylicmVhazt2YXIgYT1vLmFsdGVybmF0ZTtpZihudWxsPT09YSl7aWYobnVsbCE9PShyPW8ucmV0dXJuKSl7dD1yO2NvbnRpbnVlfWJyZWFrfWlmKG8uY2hpbGQ9PT1hLmNoaWxkKXtmb3IoYT1vLmNoaWxkO2E7KXtpZihhPT09dClyZXR1cm4gZChvKSxlO2lmKGE9PT1yKXJldHVybiBkKG8pLG47YT1hLnNpYmxpbmd9dGhyb3cgRXJyb3IobCgxODgpKX1pZih0LnJldHVybiE9PXIucmV0dXJuKXQ9byxyPWE7ZWxzZXtmb3IodmFyIGk9ITEsYz1vLmNoaWxkO2M7KXtpZihjPT09dCl7aT0hMCx0PW8scj1hO2JyZWFrfWlmKGM9PT1yKXtpPSEwLHI9byx0PWE7YnJlYWt9Yz1jLnNpYmxpbmd9aWYoIWkpe2ZvcihjPWEuY2hpbGQ7Yzspe2lmKGM9PT10KXtpPSEwLHQ9YSxyPW87YnJlYWt9aWYoYz09PXIpe2k9ITAscj1hLHQ9bzticmVha31jPWMuc2libGluZ31pZighaSl0aHJvdyBFcnJvcihsKDE4OSkpfX1pZih0LmFsdGVybmF0ZSE9PXIpdGhyb3cgRXJyb3IobCgxOTApKX1pZigzIT09dC50YWcpdGhyb3cgRXJyb3IobCgxODgpKTtyZXR1cm4gdC5zdGF0ZU5vZGUuY3VycmVudD09PXQ/ZTpufShuKSk/ZnVuY3Rpb24gZShuKXt2YXIgdD1uLnRhZztpZig1PT09dHx8MjY9PT10fHwyNz09PXR8fDY9PT10KXJldHVybiBuO2ZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KXtpZihudWxsIT09KHQ9ZShuKSkpcmV0dXJuIHQ7bj1uLnNpYmxpbmd9cmV0dXJuIG51bGx9KGUpOm51bGwpP251bGw6ZS5zdGF0ZU5vZGV9LFwidW5kZWZpbmVkXCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pe3ZhciB1VD1fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187aWYoIXVULmlzRGlzYWJsZWQmJnVULnN1cHBvcnRzRmliZXIpdHJ5e2VmPXVULmluamVjdCh7YnVuZGxlVHlwZTowLHZlcnNpb246XCIxOS4yLjAtY2FuYXJ5LTk3Y2RkNWQzLTIwMjUwNzEwXCIscmVuZGVyZXJQYWNrYWdlTmFtZTpcInJlYWN0LWRvbVwiLGN1cnJlbnREaXNwYXRjaGVyUmVmOkwscmVjb25jaWxlclZlcnNpb246XCIxOS4yLjAtY2FuYXJ5LTk3Y2RkNWQzLTIwMjUwNzEwXCJ9KSxlcD11VH1jYXRjaChlKXt9fW4uY3JlYXRlUm9vdD1mdW5jdGlvbihlLG4pe2lmKCEodD1lKXx8MSE9PXQubm9kZVR5cGUmJjkhPT10Lm5vZGVUeXBlJiYxMSE9PXQubm9kZVR5cGUpdGhyb3cgRXJyb3IobCgyOTkpKTt2YXIgdCxyLG8sYSxpLHMsYyx1LGQ9ITEsZj1cIlwiLHA9aXUsaD1pZCxnPWlwO3JldHVybiBudWxsIT1uJiYoITA9PT1uLnVuc3RhYmxlX3N0cmljdE1vZGUmJihkPSEwKSx2b2lkIDAhPT1uLmlkZW50aWZpZXJQcmVmaXgmJihmPW4uaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09bi5vblVuY2F1Z2h0RXJyb3ImJihwPW4ub25VbmNhdWdodEVycm9yKSx2b2lkIDAhPT1uLm9uQ2F1Z2h0RXJyb3ImJihoPW4ub25DYXVnaHRFcnJvciksdm9pZCAwIT09bi5vblJlY292ZXJhYmxlRXJyb3ImJihnPW4ub25SZWNvdmVyYWJsZUVycm9yKSkscj1lLG89MSxhPSExLGk9bnVsbCxzPTAsYz1kLHU9bnVsbCxyPW5ldyBjOShyLG8sYSxmLHAsaCxnLHVfLG51bGwpLG89MSwhMD09PWMmJihvfD0yNCksYz1yZSgzLG51bGwsbnVsbCxvKSxyLmN1cnJlbnQ9YyxjLnN0YXRlTm9kZT1yLG89cjEoKSxvLnJlZkNvdW50Kyssci5wb29sZWRDYWNoZT1vLG8ucmVmQ291bnQrKyxjLm1lbW9pemVkU3RhdGU9e2VsZW1lbnQ6bnVsbCxpc0RlaHlkcmF0ZWQ6YSxjYWNoZTpvfSxvaihjKSxuPXIsZVtlQl09bi5jdXJyZW50LHM2KGUpLG5ldyB1UChuKX19LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dChcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiKTtmdW5jdGlvbiBvKGUpe3ZhciBuPVwiaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzL1wiK2U7aWYoMTxhcmd1bWVudHMubGVuZ3RoKXtuKz1cIj9hcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciB0PTI7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyluKz1cIiZhcmdzW109XCIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1t0XSl9cmV0dXJuXCJNaW5pZmllZCBSZWFjdCBlcnJvciAjXCIrZStcIjsgdmlzaXQgXCIrbitcIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuXCJ9ZnVuY3Rpb24gYSgpe312YXIgaT17ZDp7ZjphLHI6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihvKDUyMikpfSxEOmEsQzphLEw6YSxtOmEsWDphLFM6YSxNOmF9LHA6MCxmaW5kRE9NTm9kZTpudWxsfSxsPVN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIikscz1yLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERTtmdW5jdGlvbiBjKGUsbil7cmV0dXJuXCJmb250XCI9PT1lP1wiXCI6XCJzdHJpbmdcIj09dHlwZW9mIG4/XCJ1c2UtY3JlZGVudGlhbHNcIj09PW4/bjpcIlwiOnZvaWQgMH1uLl9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERT1pLG4uY3JlYXRlUG9ydGFsPWZ1bmN0aW9uKGUsbil7dmFyIHQ9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGw7aWYoIW58fDEhPT1uLm5vZGVUeXBlJiY5IT09bi5ub2RlVHlwZSYmMTEhPT1uLm5vZGVUeXBlKXRocm93IEVycm9yKG8oMjk5KSk7cmV0dXJuIGZ1bmN0aW9uKGUsbix0KXt2YXIgcj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbDtyZXR1cm57JCR0eXBlb2Y6bCxrZXk6bnVsbD09cj9udWxsOlwiXCIrcixjaGlsZHJlbjplLGNvbnRhaW5lckluZm86bixpbXBsZW1lbnRhdGlvbjp0fX0oZSxuLG51bGwsdCl9LG4uZmx1c2hTeW5jPWZ1bmN0aW9uKGUpe3ZhciBuPXMuVCx0PWkucDt0cnl7aWYocy5UPW51bGwsaS5wPTIsZSlyZXR1cm4gZSgpfWZpbmFsbHl7cy5UPW4saS5wPXQsaS5kLmYoKX19LG4ucHJlY29ubmVjdD1mdW5jdGlvbihlLG4pe1wic3RyaW5nXCI9PXR5cGVvZiBlJiYobj1uP1wic3RyaW5nXCI9PXR5cGVvZihuPW4uY3Jvc3NPcmlnaW4pP1widXNlLWNyZWRlbnRpYWxzXCI9PT1uP246XCJcIjp2b2lkIDA6bnVsbCxpLmQuQyhlLG4pKX0sbi5wcmVmZXRjaEROUz1mdW5jdGlvbihlKXtcInN0cmluZ1wiPT10eXBlb2YgZSYmaS5kLkQoZSl9LG4ucHJlaW5pdD1mdW5jdGlvbihlLG4pe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiZuJiZcInN0cmluZ1wiPT10eXBlb2Ygbi5hcyl7dmFyIHQ9bi5hcyxyPWModCxuLmNyb3NzT3JpZ2luKSxvPVwic3RyaW5nXCI9PXR5cGVvZiBuLmludGVncml0eT9uLmludGVncml0eTp2b2lkIDAsYT1cInN0cmluZ1wiPT10eXBlb2Ygbi5mZXRjaFByaW9yaXR5P24uZmV0Y2hQcmlvcml0eTp2b2lkIDA7XCJzdHlsZVwiPT09dD9pLmQuUyhlLFwic3RyaW5nXCI9PXR5cGVvZiBuLnByZWNlZGVuY2U/bi5wcmVjZWRlbmNlOnZvaWQgMCx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6byxmZXRjaFByaW9yaXR5OmF9KTpcInNjcmlwdFwiPT09dCYmaS5kLlgoZSx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6byxmZXRjaFByaW9yaXR5OmEsbm9uY2U6XCJzdHJpbmdcIj09dHlwZW9mIG4ubm9uY2U/bi5ub25jZTp2b2lkIDB9KX19LG4ucHJlaW5pdE1vZHVsZT1mdW5jdGlvbihlLG4pe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKWlmKFwib2JqZWN0XCI9PXR5cGVvZiBuJiZudWxsIT09bil7aWYobnVsbD09bi5hc3x8XCJzY3JpcHRcIj09PW4uYXMpe3ZhciB0PWMobi5hcyxuLmNyb3NzT3JpZ2luKTtpLmQuTShlLHtjcm9zc09yaWdpbjp0LGludGVncml0eTpcInN0cmluZ1wiPT10eXBlb2Ygbi5pbnRlZ3JpdHk/bi5pbnRlZ3JpdHk6dm9pZCAwLG5vbmNlOlwic3RyaW5nXCI9PXR5cGVvZiBuLm5vbmNlP24ubm9uY2U6dm9pZCAwfSl9fWVsc2UgbnVsbD09biYmaS5kLk0oZSl9LG4ucHJlbG9hZD1mdW5jdGlvbihlLG4pe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlJiZcIm9iamVjdFwiPT10eXBlb2YgbiYmbnVsbCE9PW4mJlwic3RyaW5nXCI9PXR5cGVvZiBuLmFzKXt2YXIgdD1uLmFzLHI9Yyh0LG4uY3Jvc3NPcmlnaW4pO2kuZC5MKGUsdCx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6XCJzdHJpbmdcIj09dHlwZW9mIG4uaW50ZWdyaXR5P24uaW50ZWdyaXR5OnZvaWQgMCxub25jZTpcInN0cmluZ1wiPT10eXBlb2Ygbi5ub25jZT9uLm5vbmNlOnZvaWQgMCx0eXBlOlwic3RyaW5nXCI9PXR5cGVvZiBuLnR5cGU/bi50eXBlOnZvaWQgMCxmZXRjaFByaW9yaXR5Olwic3RyaW5nXCI9PXR5cGVvZiBuLmZldGNoUHJpb3JpdHk/bi5mZXRjaFByaW9yaXR5OnZvaWQgMCxyZWZlcnJlclBvbGljeTpcInN0cmluZ1wiPT10eXBlb2Ygbi5yZWZlcnJlclBvbGljeT9uLnJlZmVycmVyUG9saWN5OnZvaWQgMCxpbWFnZVNyY1NldDpcInN0cmluZ1wiPT10eXBlb2Ygbi5pbWFnZVNyY1NldD9uLmltYWdlU3JjU2V0OnZvaWQgMCxpbWFnZVNpemVzOlwic3RyaW5nXCI9PXR5cGVvZiBuLmltYWdlU2l6ZXM/bi5pbWFnZVNpemVzOnZvaWQgMCxtZWRpYTpcInN0cmluZ1wiPT10eXBlb2Ygbi5tZWRpYT9uLm1lZGlhOnZvaWQgMH0pfX0sbi5wcmVsb2FkTW9kdWxlPWZ1bmN0aW9uKGUsbil7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpaWYobil7dmFyIHQ9YyhuLmFzLG4uY3Jvc3NPcmlnaW4pO2kuZC5tKGUse2FzOlwic3RyaW5nXCI9PXR5cGVvZiBuLmFzJiZcInNjcmlwdFwiIT09bi5hcz9uLmFzOnZvaWQgMCxjcm9zc09yaWdpbjp0LGludGVncml0eTpcInN0cmluZ1wiPT10eXBlb2Ygbi5pbnRlZ3JpdHk/bi5pbnRlZ3JpdHk6dm9pZCAwfSl9ZWxzZSBpLmQubShlKX0sbi5yZXF1ZXN0Rm9ybVJlc2V0PWZ1bmN0aW9uKGUpe2kuZC5yKGUpfSxuLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGUobil9LG4udXNlRm9ybVN0YXRlPWZ1bmN0aW9uKGUsbix0KXtyZXR1cm4gcy5ILnVzZUZvcm1TdGF0ZShlLG4sdCl9LG4udXNlRm9ybVN0YXR1cz1mdW5jdGlvbigpe3JldHVybiBzLkgudXNlSG9zdFRyYW5zaXRpb25TdGF0dXMoKX0sbi52ZXJzaW9uPVwiMTkuMi4wLWNhbmFyeS05N2NkZDVkMy0yMDI1MDcxMFwifSxcIi4vZGlzdC9jb21waWxlZC9yZWFjdC1kb20vY2xpZW50LmpzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiOyFmdW5jdGlvbiBlKCl7aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyYmXCJmdW5jdGlvblwiPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoZSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KCksZS5leHBvcnRzPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20tY2xpZW50LnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsbix0KXtcInVzZSBzdHJpY3RcIjshZnVuY3Rpb24gZSgpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18mJlwiZnVuY3Rpb25cIj09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSgpLGUuZXhwb3J0cz10KFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0L2Nqcy9yZWFjdC1qc3gtcnVudGltZS5wcm9kdWN0aW9uLmpzXCI6ZnVuY3Rpb24oZSxuKXtcInVzZSBzdHJpY3RcIjt2YXIgdD1TeW1ib2wuZm9yKFwicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnRcIik7ZnVuY3Rpb24gcihlLG4scil7dmFyIG89bnVsbDtpZih2b2lkIDAhPT1yJiYobz1cIlwiK3IpLHZvaWQgMCE9PW4ua2V5JiYobz1cIlwiK24ua2V5KSxcImtleVwiaW4gbilmb3IodmFyIGEgaW4gcj17fSxuKVwia2V5XCIhPT1hJiYoclthXT1uW2FdKTtlbHNlIHI9bjtyZXR1cm57JCR0eXBlb2Y6dCx0eXBlOmUsa2V5Om8scmVmOnZvaWQgMCE9PShuPXIucmVmKT9uOm51bGwscHJvcHM6cn19bi5GcmFnbWVudD1TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksbi5qc3g9cixuLmpzeHM9cn0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLG4pe1widXNlIHN0cmljdFwiO3ZhciB0PVN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKSxyPVN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIiksbz1TeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksYT1TeW1ib2wuZm9yKFwicmVhY3Quc3RyaWN0X21vZGVcIiksaT1TeW1ib2wuZm9yKFwicmVhY3QucHJvZmlsZXJcIiksbD1TeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIikscz1TeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxjPVN5bWJvbC5mb3IoXCJyZWFjdC5mb3J3YXJkX3JlZlwiKSx1PVN5bWJvbC5mb3IoXCJyZWFjdC5zdXNwZW5zZVwiKSxkPVN5bWJvbC5mb3IoXCJyZWFjdC5tZW1vXCIpLGY9U3ltYm9sLmZvcihcInJlYWN0LmxhenlcIikscD1TeW1ib2wuaXRlcmF0b3IsaD17aXNNb3VudGVkOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKCl7fX0sZz1PYmplY3QuYXNzaWduLG09e307ZnVuY3Rpb24gdihlLG4sdCl7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD1uLHRoaXMucmVmcz1tLHRoaXMudXBkYXRlcj10fHxofWZ1bmN0aW9uIGIoKXt9ZnVuY3Rpb24geShlLG4sdCl7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD1uLHRoaXMucmVmcz1tLHRoaXMudXBkYXRlcj10fHxofXYucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e30sdi5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oZSxuKXtpZihcIm9iamVjdFwiIT10eXBlb2YgZSYmXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmbnVsbCE9ZSl0aHJvdyBFcnJvcihcInRha2VzIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLlwiKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsZSxuLFwic2V0U3RhdGVcIil9LHYucHJvdG90eXBlLmZvcmNlVXBkYXRlPWZ1bmN0aW9uKGUpe3RoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcyxlLFwiZm9yY2VVcGRhdGVcIil9LGIucHJvdG90eXBlPXYucHJvdG90eXBlO3ZhciB4PXkucHJvdG90eXBlPW5ldyBiO3guY29uc3RydWN0b3I9eSxnKHgsdi5wcm90b3R5cGUpLHguaXNQdXJlUmVhY3RDb21wb25lbnQ9ITA7dmFyIHc9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBqKCl7fXZhciBrPXtIOm51bGwsQTpudWxsLFQ6bnVsbCxTOm51bGx9LEE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBPKGUsbixyLG8sYSxpKXtyZXR1cm57JCR0eXBlb2Y6dCx0eXBlOmUsa2V5Om4scmVmOnZvaWQgMCE9PShyPWkucmVmKT9yOm51bGwscHJvcHM6aX19ZnVuY3Rpb24gQyhlKXtyZXR1cm5cIm9iamVjdFwiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT10fXZhciBTPS9cXC8rL2c7ZnVuY3Rpb24gRShlLG4pe3ZhciB0LHI7cmV0dXJuXCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lJiZudWxsIT1lLmtleT8odD1cIlwiK2Uua2V5LHI9e1wiPVwiOlwiPTBcIixcIjpcIjpcIj0yXCJ9LFwiJFwiK3QucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9uKGUpe3JldHVybiByW2VdfSkpOm4udG9TdHJpbmcoMzYpfWZ1bmN0aW9uIF8oZSxuLG8pe2lmKG51bGw9PWUpcmV0dXJuIGU7dmFyIGE9W10saT0wO3JldHVybiFmdW5jdGlvbiBlKG4sbyxhLGksbCl7dmFyIHMsYyx1LGQ9dHlwZW9mIG47KFwidW5kZWZpbmVkXCI9PT1kfHxcImJvb2xlYW5cIj09PWQpJiYobj1udWxsKTt2YXIgaD0hMTtpZihudWxsPT09biloPSEwO2Vsc2Ugc3dpdGNoKGQpe2Nhc2VcImJpZ2ludFwiOmNhc2VcInN0cmluZ1wiOmNhc2VcIm51bWJlclwiOmg9ITA7YnJlYWs7Y2FzZVwib2JqZWN0XCI6c3dpdGNoKG4uJCR0eXBlb2Ype2Nhc2UgdDpjYXNlIHI6aD0hMDticmVhaztjYXNlIGY6cmV0dXJuIGUoKGg9bi5faW5pdCkobi5fcGF5bG9hZCksbyxhLGksbCl9fWlmKGgpcmV0dXJuIGw9bChuKSxoPVwiXCI9PT1pP1wiLlwiK0UobiwwKTppLHcobCk/KGE9XCJcIixudWxsIT1oJiYoYT1oLnJlcGxhY2UoUyxcIiQmL1wiKStcIi9cIiksZShsLG8sYSxcIlwiLGZ1bmN0aW9uKGUpe3JldHVybiBlfSkpOm51bGwhPWwmJihDKGwpJiYocz1sLGM9YSsobnVsbD09bC5rZXl8fG4mJm4ua2V5PT09bC5rZXk/XCJcIjooXCJcIitsLmtleSkucmVwbGFjZShTLFwiJCYvXCIpK1wiL1wiKStoLGw9TyhzLnR5cGUsYyx2b2lkIDAsdm9pZCAwLHZvaWQgMCxzLnByb3BzKSksby5wdXNoKGwpKSwxO2g9MDt2YXIgZz1cIlwiPT09aT9cIi5cIjppK1wiOlwiO2lmKHcobikpZm9yKHZhciBtPTA7bTxuLmxlbmd0aDttKyspZD1nK0UoaT1uW21dLG0pLGgrPWUoaSxvLGEsZCxsKTtlbHNlIGlmKFwiZnVuY3Rpb25cIj09dHlwZW9mKG09bnVsbD09PSh1PW4pfHxcIm9iamVjdFwiIT10eXBlb2YgdT9udWxsOlwiZnVuY3Rpb25cIj09dHlwZW9mKHU9cCYmdVtwXXx8dVtcIkBAaXRlcmF0b3JcIl0pP3U6bnVsbCkpZm9yKG49bS5jYWxsKG4pLG09MDshKGk9bi5uZXh0KCkpLmRvbmU7KWQ9ZytFKGk9aS52YWx1ZSxtKyspLGgrPWUoaSxvLGEsZCxsKTtlbHNlIGlmKFwib2JqZWN0XCI9PT1kKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuLnRoZW4pcmV0dXJuIGUoZnVuY3Rpb24oZSl7c3dpdGNoKGUuc3RhdHVzKXtjYXNlXCJmdWxmaWxsZWRcIjpyZXR1cm4gZS52YWx1ZTtjYXNlXCJyZWplY3RlZFwiOnRocm93IGUucmVhc29uO2RlZmF1bHQ6c3dpdGNoKFwic3RyaW5nXCI9PXR5cGVvZiBlLnN0YXR1cz9lLnRoZW4oaixqKTooZS5zdGF0dXM9XCJwZW5kaW5nXCIsZS50aGVuKGZ1bmN0aW9uKG4pe1wicGVuZGluZ1wiPT09ZS5zdGF0dXMmJihlLnN0YXR1cz1cImZ1bGZpbGxlZFwiLGUudmFsdWU9bil9LGZ1bmN0aW9uKG4pe1wicGVuZGluZ1wiPT09ZS5zdGF0dXMmJihlLnN0YXR1cz1cInJlamVjdGVkXCIsZS5yZWFzb249bil9KSksZS5zdGF0dXMpe2Nhc2VcImZ1bGZpbGxlZFwiOnJldHVybiBlLnZhbHVlO2Nhc2VcInJlamVjdGVkXCI6dGhyb3cgZS5yZWFzb259fXRocm93IGV9KG4pLG8sYSxpLGwpO3Rocm93IEVycm9yKFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIisoXCJbb2JqZWN0IE9iamVjdF1cIj09PShvPVN0cmluZyhuKSk/XCJvYmplY3Qgd2l0aCBrZXlzIHtcIitPYmplY3Qua2V5cyhuKS5qb2luKFwiLCBcIikrXCJ9XCI6bykrXCIpLiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQuXCIpfXJldHVybiBofShlLGEsXCJcIixcIlwiLGZ1bmN0aW9uKGUpe3JldHVybiBuLmNhbGwobyxlLGkrKyl9KSxhfWZ1bmN0aW9uIFAoZSl7aWYoLTE9PT1lLl9zdGF0dXMpe3ZhciBuPWUuX3Jlc3VsdDsobj1uKCkpLnRoZW4oZnVuY3Rpb24obil7KDA9PT1lLl9zdGF0dXN8fC0xPT09ZS5fc3RhdHVzKSYmKGUuX3N0YXR1cz0xLGUuX3Jlc3VsdD1uKX0sZnVuY3Rpb24obil7KDA9PT1lLl9zdGF0dXN8fC0xPT09ZS5fc3RhdHVzKSYmKGUuX3N0YXR1cz0yLGUuX3Jlc3VsdD1uKX0pLC0xPT09ZS5fc3RhdHVzJiYoZS5fc3RhdHVzPTAsZS5fcmVzdWx0PW4pfWlmKDE9PT1lLl9zdGF0dXMpcmV0dXJuIGUuX3Jlc3VsdC5kZWZhdWx0O3Rocm93IGUuX3Jlc3VsdH12YXIgej1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpmdW5jdGlvbihlKXtpZihcIm9iamVjdFwiPT10eXBlb2Ygd2luZG93JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudCl7dmFyIG49bmV3IHdpbmRvdy5FcnJvckV2ZW50KFwiZXJyb3JcIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6XCJvYmplY3RcIj09dHlwZW9mIGUmJm51bGwhPT1lJiZcInN0cmluZ1wiPT10eXBlb2YgZS5tZXNzYWdlP1N0cmluZyhlLm1lc3NhZ2UpOlN0cmluZyhlKSxlcnJvcjplfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KG4pKXJldHVybn1lbHNlIGlmKFwib2JqZWN0XCI9PXR5cGVvZiBwcm9jZXNzJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBwcm9jZXNzLmVtaXQpcmV0dXJuIHZvaWQgcHJvY2Vzcy5lbWl0KFwidW5jYXVnaHRFeGNlcHRpb25cIixlKTtjb25zb2xlLmVycm9yKGUpfTtuLkNoaWxkcmVuPXttYXA6Xyxmb3JFYWNoOmZ1bmN0aW9uKGUsbix0KXtfKGUsZnVuY3Rpb24oKXtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sdCl9LGNvdW50OmZ1bmN0aW9uKGUpe3ZhciBuPTA7cmV0dXJuIF8oZSxmdW5jdGlvbigpe24rK30pLG59LHRvQXJyYXk6ZnVuY3Rpb24oZSl7cmV0dXJuIF8oZSxmdW5jdGlvbihlKXtyZXR1cm4gZX0pfHxbXX0sb25seTpmdW5jdGlvbihlKXtpZighQyhlKSl0aHJvdyBFcnJvcihcIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLlwiKTtyZXR1cm4gZX19LG4uQ29tcG9uZW50PXYsbi5GcmFnbWVudD1vLG4uUHJvZmlsZXI9aSxuLlB1cmVDb21wb25lbnQ9eSxuLlN0cmljdE1vZGU9YSxuLlN1c3BlbnNlPXUsbi5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREU9ayxuLl9fQ09NUElMRVJfUlVOVElNRT17X19wcm90b19fOm51bGwsYzpmdW5jdGlvbihlKXtyZXR1cm4gay5ILnVzZU1lbW9DYWNoZShlKX19LG4uY2FjaGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkobnVsbCxhcmd1bWVudHMpfX0sbi5jYWNoZVNpZ25hbD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxuLmNsb25lRWxlbWVudD1mdW5jdGlvbihlLG4sdCl7aWYobnVsbD09ZSl0aHJvdyBFcnJvcihcIlRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgXCIrZStcIi5cIik7dmFyIHI9Zyh7fSxlLnByb3BzKSxvPWUua2V5LGE9dm9pZCAwO2lmKG51bGwhPW4pZm9yKGkgaW4gdm9pZCAwIT09bi5yZWYmJihhPXZvaWQgMCksdm9pZCAwIT09bi5rZXkmJihvPVwiXCIrbi5rZXkpLG4pQS5jYWxsKG4saSkmJlwia2V5XCIhPT1pJiZcIl9fc2VsZlwiIT09aSYmXCJfX3NvdXJjZVwiIT09aSYmKFwicmVmXCIhPT1pfHx2b2lkIDAhPT1uLnJlZikmJihyW2ldPW5baV0pO3ZhciBpPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09aSlyLmNoaWxkcmVuPXQ7ZWxzZSBpZigxPGkpe2Zvcih2YXIgbD1BcnJheShpKSxzPTA7czxpO3MrKylsW3NdPWFyZ3VtZW50c1tzKzJdO3IuY2hpbGRyZW49bH1yZXR1cm4gTyhlLnR5cGUsbyx2b2lkIDAsdm9pZCAwLGEscil9LG4uY3JlYXRlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4oZT17JCR0eXBlb2Y6cyxfY3VycmVudFZhbHVlOmUsX2N1cnJlbnRWYWx1ZTI6ZSxfdGhyZWFkQ291bnQ6MCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGx9KS5Qcm92aWRlcj1lLGUuQ29uc3VtZXI9eyQkdHlwZW9mOmwsX2NvbnRleHQ6ZX0sZX0sbi5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGUsbix0KXt2YXIgcixvPXt9LGE9bnVsbDtpZihudWxsIT1uKWZvcihyIGluIHZvaWQgMCE9PW4ua2V5JiYoYT1cIlwiK24ua2V5KSxuKUEuY2FsbChuLHIpJiZcImtleVwiIT09ciYmXCJfX3NlbGZcIiE9PXImJlwiX19zb3VyY2VcIiE9PXImJihvW3JdPW5bcl0pO3ZhciBpPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09aSlvLmNoaWxkcmVuPXQ7ZWxzZSBpZigxPGkpe2Zvcih2YXIgbD1BcnJheShpKSxzPTA7czxpO3MrKylsW3NdPWFyZ3VtZW50c1tzKzJdO28uY2hpbGRyZW49bH1pZihlJiZlLmRlZmF1bHRQcm9wcylmb3IociBpbiBpPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PW9bcl0mJihvW3JdPWlbcl0pO3JldHVybiBPKGUsYSx2b2lkIDAsdm9pZCAwLG51bGwsbyl9LG4uY3JlYXRlUmVmPWZ1bmN0aW9uKCl7cmV0dXJue2N1cnJlbnQ6bnVsbH19LG4uZm9yd2FyZFJlZj1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6YyxyZW5kZXI6ZX19LG4uaXNWYWxpZEVsZW1lbnQ9QyxuLmxhenk9ZnVuY3Rpb24oZSl7cmV0dXJueyQkdHlwZW9mOmYsX3BheWxvYWQ6e19zdGF0dXM6LTEsX3Jlc3VsdDplfSxfaW5pdDpQfX0sbi5tZW1vPWZ1bmN0aW9uKGUsbil7cmV0dXJueyQkdHlwZW9mOmQsdHlwZTplLGNvbXBhcmU6dm9pZCAwPT09bj9udWxsOm59fSxuLnN0YXJ0VHJhbnNpdGlvbj1mdW5jdGlvbihlKXt2YXIgbj1rLlQsdD17fTtrLlQ9dDt0cnl7dmFyIHI9ZSgpLG89ay5TO251bGwhPT1vJiZvKHQsciksXCJvYmplY3RcIj09dHlwZW9mIHImJm51bGwhPT1yJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiByLnRoZW4mJnIudGhlbihqLHopfWNhdGNoKGUpe3ooZSl9ZmluYWxseXtudWxsIT09biYmbnVsbCE9PXQudHlwZXMmJihuLnR5cGVzPXQudHlwZXMpLGsuVD1ufX0sbi51bnN0YWJsZV91c2VDYWNoZVJlZnJlc2g9ZnVuY3Rpb24oKXtyZXR1cm4gay5ILnVzZUNhY2hlUmVmcmVzaCgpfSxuLnVzZT1mdW5jdGlvbihlKXtyZXR1cm4gay5ILnVzZShlKX0sbi51c2VBY3Rpb25TdGF0ZT1mdW5jdGlvbihlLG4sdCl7cmV0dXJuIGsuSC51c2VBY3Rpb25TdGF0ZShlLG4sdCl9LG4udXNlQ2FsbGJhY2s9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gay5ILnVzZUNhbGxiYWNrKGUsbil9LG4udXNlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4gay5ILnVzZUNvbnRleHQoZSl9LG4udXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sbi51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGsuSC51c2VEZWZlcnJlZFZhbHVlKGUsbil9LG4udXNlRWZmZWN0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIGsuSC51c2VFZmZlY3QoZSxuKX0sbi51c2VJZD1mdW5jdGlvbigpe3JldHVybiBrLkgudXNlSWQoKX0sbi51c2VJbXBlcmF0aXZlSGFuZGxlPWZ1bmN0aW9uKGUsbix0KXtyZXR1cm4gay5ILnVzZUltcGVyYXRpdmVIYW5kbGUoZSxuLHQpfSxuLnVzZUluc2VydGlvbkVmZmVjdD1mdW5jdGlvbihlLG4pe3JldHVybiBrLkgudXNlSW5zZXJ0aW9uRWZmZWN0KGUsbil9LG4udXNlTGF5b3V0RWZmZWN0PWZ1bmN0aW9uKGUsbil7cmV0dXJuIGsuSC51c2VMYXlvdXRFZmZlY3QoZSxuKX0sbi51c2VNZW1vPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGsuSC51c2VNZW1vKGUsbil9LG4udXNlT3B0aW1pc3RpYz1mdW5jdGlvbihlLG4pe3JldHVybiBrLkgudXNlT3B0aW1pc3RpYyhlLG4pfSxuLnVzZVJlZHVjZXI9ZnVuY3Rpb24oZSxuLHQpe3JldHVybiBrLkgudXNlUmVkdWNlcihlLG4sdCl9LG4udXNlUmVmPWZ1bmN0aW9uKGUpe3JldHVybiBrLkgudXNlUmVmKGUpfSxuLnVzZVN0YXRlPWZ1bmN0aW9uKGUpe3JldHVybiBrLkgudXNlU3RhdGUoZSl9LG4udXNlU3luY0V4dGVybmFsU3RvcmU9ZnVuY3Rpb24oZSxuLHQpe3JldHVybiBrLkgudXNlU3luY0V4dGVybmFsU3RvcmUoZSxuLHQpfSxuLnVzZVRyYW5zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4gay5ILnVzZVRyYW5zaXRpb24oKX0sbi52ZXJzaW9uPVwiMTkuMi4wLWNhbmFyeS05N2NkZDVkMy0yMDI1MDcxMFwifSxcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsbix0KXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9dChcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9janMvcmVhY3QucHJvZHVjdGlvbi5qc1wiKX0sXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LXJ1bnRpbWUuanNcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7ZS5leHBvcnRzPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1ydW50aW1lLnByb2R1Y3Rpb24uanNcIil9LFwiLi9kaXN0L2NvbXBpbGVkL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLnByb2R1Y3Rpb24uanNcIjpmdW5jdGlvbihlLG4pe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIHQoZSxuKXt2YXIgdD1lLmxlbmd0aDtmb3IoZS5wdXNoKG4pOzA8dDspe3ZhciByPXQtMT4+PjEsbz1lW3JdO2lmKDA8YShvLG4pKWVbcl09bixlW3RdPW8sdD1yO2Vsc2UgYnJlYWt9fWZ1bmN0aW9uIHIoZSl7cmV0dXJuIDA9PT1lLmxlbmd0aD9udWxsOmVbMF19ZnVuY3Rpb24gbyhlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIG49ZVswXSx0PWUucG9wKCk7aWYodCE9PW4pe2VbMF09dDtmb3IodmFyIHI9MCxvPWUubGVuZ3RoLGk9bz4+PjE7cjxpOyl7dmFyIGw9MioocisxKS0xLHM9ZVtsXSxjPWwrMSx1PWVbY107aWYoMD5hKHMsdCkpYzxvJiYwPmEodSxzKT8oZVtyXT11LGVbY109dCxyPWMpOihlW3JdPXMsZVtsXT10LHI9bCk7ZWxzZSBpZihjPG8mJjA+YSh1LHQpKWVbcl09dSxlW2NdPXQscj1jO2Vsc2UgYnJlYWt9fXJldHVybiBufWZ1bmN0aW9uIGEoZSxuKXt2YXIgdD1lLnNvcnRJbmRleC1uLnNvcnRJbmRleDtyZXR1cm4gMCE9PXQ/dDplLmlkLW4uaWR9aWYobi51bnN0YWJsZV9ub3c9dm9pZCAwLFwib2JqZWN0XCI9PXR5cGVvZiBwZXJmb3JtYW5jZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgaSxsPXBlcmZvcm1hbmNlO24udW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIGwubm93KCl9fWVsc2V7dmFyIHM9RGF0ZSxjPXMubm93KCk7bi51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gcy5ub3coKS1jfX12YXIgdT1bXSxkPVtdLGY9MSxwPW51bGwsaD0zLGc9ITEsbT0hMSx2PSExLGI9ITEseT1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6bnVsbCx4PVwiZnVuY3Rpb25cIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6bnVsbCx3PVwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOm51bGw7ZnVuY3Rpb24gaihlKXtmb3IodmFyIG49cihkKTtudWxsIT09bjspe2lmKG51bGw9PT1uLmNhbGxiYWNrKW8oZCk7ZWxzZSBpZihuLnN0YXJ0VGltZTw9ZSlvKGQpLG4uc29ydEluZGV4PW4uZXhwaXJhdGlvblRpbWUsdCh1LG4pO2Vsc2UgYnJlYWs7bj1yKGQpfX1mdW5jdGlvbiBrKGUpe2lmKHY9ITEsaihlKSwhbSlpZihudWxsIT09cih1KSltPSEwLEF8fChBPSEwLGkoKSk7ZWxzZXt2YXIgbj1yKGQpO251bGwhPT1uJiZMKGssbi5zdGFydFRpbWUtZSl9fXZhciBBPSExLE89LTEsQz01LFM9LTE7ZnVuY3Rpb24gRSgpe3JldHVybiEhYnx8IShuLnVuc3RhYmxlX25vdygpLVM8Qyl9ZnVuY3Rpb24gXygpe2lmKGI9ITEsQSl7dmFyIGU9bi51bnN0YWJsZV9ub3coKTtTPWU7dmFyIHQ9ITA7dHJ5e2U6e209ITEsdiYmKHY9ITEseChPKSxPPS0xKSxnPSEwO3ZhciBhPWg7dHJ5e246e2ZvcihqKGUpLHA9cih1KTtudWxsIT09cCYmIShwLmV4cGlyYXRpb25UaW1lPmUmJkUoKSk7KXt2YXIgbD1wLmNhbGxiYWNrO2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGwpe3AuY2FsbGJhY2s9bnVsbCxoPXAucHJpb3JpdHlMZXZlbDt2YXIgcz1sKHAuZXhwaXJhdGlvblRpbWU8PWUpO2lmKGU9bi51bnN0YWJsZV9ub3coKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBzKXtwLmNhbGxiYWNrPXMsaihlKSx0PSEwO2JyZWFrIG59cD09PXIodSkmJm8odSksaihlKX1lbHNlIG8odSk7cD1yKHUpfWlmKG51bGwhPT1wKXQ9ITA7ZWxzZXt2YXIgYz1yKGQpO251bGwhPT1jJiZMKGssYy5zdGFydFRpbWUtZSksdD0hMX19YnJlYWsgZX1maW5hbGx5e3A9bnVsbCxoPWEsZz0hMX19fWZpbmFsbHl7dD9pKCk6QT0hMX19fWlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHcpaT1mdW5jdGlvbigpe3coXyl9O2Vsc2UgaWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIE1lc3NhZ2VDaGFubmVsKXt2YXIgUD1uZXcgTWVzc2FnZUNoYW5uZWwsej1QLnBvcnQyO1AucG9ydDEub25tZXNzYWdlPV8saT1mdW5jdGlvbigpe3oucG9zdE1lc3NhZ2UobnVsbCl9fWVsc2UgaT1mdW5jdGlvbigpe3koXywwKX07ZnVuY3Rpb24gTChlLHQpe089eShmdW5jdGlvbigpe2Uobi51bnN0YWJsZV9ub3coKSl9LHQpfW4udW5zdGFibGVfSWRsZVByaW9yaXR5PTUsbi51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eT0xLG4udW5zdGFibGVfTG93UHJpb3JpdHk9NCxuLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5PTMsbi51bnN0YWJsZV9Qcm9maWxpbmc9bnVsbCxuLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5PTIsbi51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaz1mdW5jdGlvbihlKXtlLmNhbGxiYWNrPW51bGx9LG4udW5zdGFibGVfZm9yY2VGcmFtZVJhdGU9ZnVuY3Rpb24oZSl7MD5lfHwxMjU8ZT9jb25zb2xlLmVycm9yKFwiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkXCIpOkM9MDxlP01hdGguZmxvb3IoMWUzL2UpOjV9LG4udW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gaH0sbi51bnN0YWJsZV9uZXh0PWZ1bmN0aW9uKGUpe3N3aXRjaChoKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzp2YXIgbj0zO2JyZWFrO2RlZmF1bHQ6bj1ofXZhciB0PWg7aD1uO3RyeXtyZXR1cm4gZSgpfWZpbmFsbHl7aD10fX0sbi51bnN0YWJsZV9yZXF1ZXN0UGFpbnQ9ZnVuY3Rpb24oKXtiPSEwfSxuLnVuc3RhYmxlX3J1bldpdGhQcmlvcml0eT1mdW5jdGlvbihlLG4pe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrO2RlZmF1bHQ6ZT0zfXZhciB0PWg7aD1lO3RyeXtyZXR1cm4gbigpfWZpbmFsbHl7aD10fX0sbi51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrPWZ1bmN0aW9uKGUsbyxhKXt2YXIgbD1uLnVuc3RhYmxlX25vdygpO3N3aXRjaChhPVwib2JqZWN0XCI9PXR5cGVvZiBhJiZudWxsIT09YSYmXCJudW1iZXJcIj09dHlwZW9mKGE9YS5kZWxheSkmJjA8YT9sK2E6bCxlKXtjYXNlIDE6dmFyIHM9LTE7YnJlYWs7Y2FzZSAyOnM9MjUwO2JyZWFrO2Nhc2UgNTpzPTB4M2ZmZmZmZmY7YnJlYWs7Y2FzZSA0OnM9MWU0O2JyZWFrO2RlZmF1bHQ6cz01ZTN9cmV0dXJuIHM9YStzLGU9e2lkOmYrKyxjYWxsYmFjazpvLHByaW9yaXR5TGV2ZWw6ZSxzdGFydFRpbWU6YSxleHBpcmF0aW9uVGltZTpzLHNvcnRJbmRleDotMX0sYT5sPyhlLnNvcnRJbmRleD1hLHQoZCxlKSxudWxsPT09cih1KSYmZT09PXIoZCkmJih2Pyh4KE8pLE89LTEpOnY9ITAsTChrLGEtbCkpKTooZS5zb3J0SW5kZXg9cyx0KHUsZSksbXx8Z3x8KG09ITAsQXx8KEE9ITAsaSgpKSkpLGV9LG4udW5zdGFibGVfc2hvdWxkWWllbGQ9RSxuLnVuc3RhYmxlX3dyYXBDYWxsYmFjaz1mdW5jdGlvbihlKXt2YXIgbj1oO3JldHVybiBmdW5jdGlvbigpe3ZhciB0PWg7aD1uO3RyeXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtoPXR9fX19LFwiLi9kaXN0L2NvbXBpbGVkL3NjaGVkdWxlci9pbmRleC5qc1wiOmZ1bmN0aW9uKGUsbix0KXtcInVzZSBzdHJpY3RcIjtlLmV4cG9ydHM9dChcIi4vZGlzdC9jb21waWxlZC9zY2hlZHVsZXIvY2pzL3NjaGVkdWxlci5wcm9kdWN0aW9uLmpzXCIpfSxcIi4vZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlci9zdGFjay10cmFjZS1wYXJzZXIuY2pzLmpzXCI6ZnVuY3Rpb24oZSl7KCgpPT57XCJ1c2Ugc3RyaWN0XCI7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18mJihfX25jY3dwY2tfcmVxdWlyZV9fLmFiPVwiLy9cIik7dmFyIG4sdCxyLG8sYSxpLGwscyxjPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShjLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLG49XCI8dW5rbm93bj5cIix0PS9eXFxzKmF0ICguKj8pID9cXCgoKD86ZmlsZXxodHRwcz98YmxvYnxjaHJvbWUtZXh0ZW5zaW9ufG5hdGl2ZXxldmFsfHdlYnBhY2t8d2VicGFjay1pbnRlcm5hbHxyc2N8dHVyYm9wYWNrfDxhbm9ueW1vdXM+fFxcL3xbYS16XTpcXFxcfFxcXFxcXFxcKS4qPykoPzo6KFxcZCspKT8oPzo6KFxcZCspKT9cXCk/XFxzKiQvaSxyPS9cXCgoXFxTKikoPzo6KFxcZCspKSg/OjooXFxkKykpXFwpLyxvPS9eXFxzKmF0ICg/OigoPzpcXFtvYmplY3Qgb2JqZWN0XFxdKT8uKykgKT9cXCg/KCg/OmZpbGV8bXMtYXBweHxodHRwcz98d2VicGFja3x3ZWJwYWNrLWludGVybmFsfHJzY3x0dXJib3BhY2t8YmxvYik6Lio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaSxhPS9eXFxzKiguKj8pKD86XFwoKC4qPylcXCkpPyg/Ol58QCkoKD86ZmlsZXxodHRwcz98YmxvYnxjaHJvbWV8d2VicGFja3x3ZWJwYWNrLWludGVybmFsfHJzY3x0dXJib3BhY2t8cmVzb3VyY2V8XFxbbmF0aXZlKS4qP3xbXkBdKmJ1bmRsZSkoPzo6KFxcZCspKT8oPzo6KFxcZCspKT9cXHMqJC9pLGk9LyhcXFMrKSBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsL2ksbD0vXlxccyooPzooW15AXSopKD86XFwoKC4qPylcXCkpP0ApPyhcXFMuKj8pOihcXGQrKSg/OjooXFxkKykpP1xccyokL2kscz0vXlxccyphdCAoPzooKD86XFxbb2JqZWN0IG9iamVjdFxcXSk/W15cXFxcL10rKD86IFxcW2FzIFxcUytcXF0pPykgKT9cXCg/KC4qPyk6KFxcZCspKD86OihcXGQrKSk/XFwpP1xccyokL2ksYy5wYXJzZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdChcIlxcblwiKS5yZWR1Y2UoZnVuY3Rpb24oZSxjKXt2YXIgdSxkLGYscCxoLGcsbT1mdW5jdGlvbihlKXt2YXIgbz10LmV4ZWMoZSk7aWYoIW8pcmV0dXJuIG51bGw7dmFyIGE9b1syXSYmMD09PW9bMl0uaW5kZXhPZihcIm5hdGl2ZVwiKSxpPW9bMl0mJjA9PT1vWzJdLmluZGV4T2YoXCJldmFsXCIpLGw9ci5leGVjKG9bMl0pO3JldHVybiBpJiZudWxsIT1sJiYob1syXT1sWzFdLG9bM109bFsyXSxvWzRdPWxbM10pLHtmaWxlOmE/bnVsbDpvWzJdLG1ldGhvZE5hbWU6b1sxXXx8bixhcmd1bWVudHM6YT9bb1syXV06W10sbGluZU51bWJlcjpvWzNdPytvWzNdOm51bGwsY29sdW1uOm9bNF0/K29bNF06bnVsbH19KGMpfHwodT1jLChkPW8uZXhlYyh1KSk/e2ZpbGU6ZFsyXSxtZXRob2ROYW1lOmRbMV18fG4sYXJndW1lbnRzOltdLGxpbmVOdW1iZXI6K2RbM10sY29sdW1uOmRbNF0/K2RbNF06bnVsbH06bnVsbCl8fGZ1bmN0aW9uKGUpe3ZhciB0PWEuZXhlYyhlKTtpZighdClyZXR1cm4gbnVsbDt2YXIgcj10WzNdJiZ0WzNdLmluZGV4T2YoXCIgPiBldmFsXCIpPi0xLG89aS5leGVjKHRbM10pO3JldHVybiByJiZudWxsIT1vJiYodFszXT1vWzFdLHRbNF09b1syXSx0WzVdPW51bGwpLHtmaWxlOnRbM10sbWV0aG9kTmFtZTp0WzFdfHxuLGFyZ3VtZW50czp0WzJdP3RbMl0uc3BsaXQoXCIsXCIpOltdLGxpbmVOdW1iZXI6dFs0XT8rdFs0XTpudWxsLGNvbHVtbjp0WzVdPyt0WzVdOm51bGx9fShjKXx8KGY9YywocD1zLmV4ZWMoZikpP3tmaWxlOnBbMl0sbWV0aG9kTmFtZTpwWzFdfHxuLGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOitwWzNdLGNvbHVtbjpwWzRdPytwWzRdOm51bGx9Om51bGwpfHwoaD1jLChnPWwuZXhlYyhoKSk/e2ZpbGU6Z1szXSxtZXRob2ROYW1lOmdbMV18fG4sYXJndW1lbnRzOltdLGxpbmVOdW1iZXI6K2dbNF0sY29sdW1uOmdbNV0/K2dbNV06bnVsbH06bnVsbCk7cmV0dXJuIG0mJmUucHVzaChtKSxlfSxbXSl9LGUuZXhwb3J0cz1jfSkoKX0sXCIuL2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaS9pbmRleC5qc1wiOmZ1bmN0aW9uKGUpeygoKT0+e1widXNlIHN0cmljdFwiO3ZhciBuPXs1MTE6ZT0+e2UuZXhwb3J0cz0oe29ubHlGaXJzdDplPSExfT17fSk9PlJlZ0V4cChcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyl8KD86KD86XFxcXGR7MSw0fSg/OjtcXFxcZHswLDR9KSopP1tcXFxcZEEtUFItVFpjZi1udHFyeT0+PH5dKSlcIixlP3ZvaWQgMDpcImdcIil9LDUzMjooZSxuLHQpPT57bGV0IHI9dCg1MTEpO2UuZXhwb3J0cz1lPT5cInN0cmluZ1wiPT10eXBlb2YgZT9lLnJlcGxhY2UocigpLFwiXCIpOmV9fSx0PXt9O2Z1bmN0aW9uIHIoZSl7dmFyIG89dFtlXTtpZih2b2lkIDAhPT1vKXJldHVybiBvLmV4cG9ydHM7dmFyIGE9dFtlXT17ZXhwb3J0czp7fX0saT0hMDt0cnl7bltlXShhLGEuZXhwb3J0cyxyKSxpPSExfWZpbmFsbHl7aSYmZGVsZXRlIHRbZV19cmV0dXJuIGEuZXhwb3J0c31yLmFiPVwiLy9cIixlLmV4cG9ydHM9cig1MzIpfSkoKX0sXCIuL3NyYy9idWlsZC93ZWJwYWNrL2xvYWRlcnMvZGV2dG9vbC9kZXZ0b29sLXN0eWxlLWluamVjdC5qc1wiOmZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4oKXtsZXQgZT13aW5kb3cuX25leHRqc0RldnRvb2xzU3R5bGVDYWNoZTtpZihlLmNhY2hlZFNoYWRvd1Jvb3QpcmV0dXJuIGUuY2FjaGVkU2hhZG93Um9vdDtsZXQgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwibmV4dGpzLXBvcnRhbFwiKSx0PW4/LnNoYWRvd1Jvb3R8fG51bGw7cmV0dXJuIHQmJihlLmNhY2hlZFNoYWRvd1Jvb3Q9dCksdH1mdW5jdGlvbiB0KGUsbil7bGV0IHQ9d2luZG93Ll9uZXh0anNEZXZ0b29sc1N0eWxlQ2FjaGU7dC5sYXN0SW5zZXJ0ZWRFbGVtZW50P3QubGFzdEluc2VydGVkRWxlbWVudC5uZXh0U2libGluZz9uLmluc2VydEJlZm9yZShlLHQubGFzdEluc2VydGVkRWxlbWVudC5uZXh0U2libGluZyk6bi5hcHBlbmRDaGlsZChlKTpuLmluc2VydEJlZm9yZShlLG4uZmlyc3RDaGlsZCksdC5sYXN0SW5zZXJ0ZWRFbGVtZW50PWV9ZnVuY3Rpb24gcigpe2xldCBlPXdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlLHI9bigpO3ImJihlLnBlbmRpbmdFbGVtZW50cy5mb3JFYWNoKGU9Pnt0KGUscil9KSxlLnBlbmRpbmdFbGVtZW50cz1bXSl9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlPXdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlfHx7cGVuZGluZ0VsZW1lbnRzOltdLGlzT2JzZXJ2aW5nOiExLGxhc3RJbnNlcnRlZEVsZW1lbnQ6bnVsbCxjYWNoZWRTaGFkb3dSb290Om51bGx9KSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7ZS5zZXRBdHRyaWJ1dGUoXCJkYXRhLW5leHRqcy1kZXYtdG9vbC1zdHlsZVwiLFwidHJ1ZVwiKTtsZXQgbz1uKCk7bz90KGUsbyk6KHdpbmRvdy5fbmV4dGpzRGV2dG9vbHNTdHlsZUNhY2hlLnBlbmRpbmdFbGVtZW50cy5wdXNoKGUpLGZ1bmN0aW9uKCl7bGV0IGU9d2luZG93Ll9uZXh0anNEZXZ0b29sc1N0eWxlQ2FjaGU7aWYoZS5pc09ic2VydmluZylyZXR1cm47aWYoZS5pc09ic2VydmluZz0hMCxuKCkpcmV0dXJuIHIoKTtsZXQgdD1uZXcgTXV0YXRpb25PYnNlcnZlcihvPT57aWYoMD09PW8ubGVuZ3RofHwwPT09b1swXS5hZGRlZE5vZGVzLmxlbmd0aClyZXR1cm47bGV0IGE9b1swXS5hZGRlZE5vZGVzWzBdLGk9bnVsbDtpZihcIlNDUklQVFwiPT09YS50YWdOYW1lJiZhLmdldEF0dHJpYnV0ZShcImRhdGEtbmV4dGpzLWRldi1vdmVybGF5XCIpP2k9YS5maXJzdENoaWxkOlwiTkVYVEpTLVBPUlRBTFwiPT09YS50YWdOYW1lJiYoaT1hKSwhaSlyZXR1cm47bGV0IGw9KCk9PntuKCk/KHIoKSx0LmRpc2Nvbm5lY3QoKSxlLmlzT2JzZXJ2aW5nPSExKTpzZXRUaW1lb3V0KGwsMjApfTtsKCl9KTt0Lm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KX0oKSl9fSxcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9lcnJvcnMvZGV2LXRvb2xzLWluZGljYXRvci9kZXYtdG9vbHMtaW5mby9kZXYtdG9vbHMtaW5mby50c3hcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7dC5kKG4se2c6KCk9PnMseDooKT0+bH0pO3ZhciByPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LXJ1bnRpbWUuanNcIiksbz10KFwiLi9kaXN0L2NvbXBpbGVkL3JlYWN0L2luZGV4LmpzXCIpLGE9dChcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9lcnJvcnMvZGV2LXRvb2xzLWluZGljYXRvci91dGlscy50c1wiKSxpPXQoXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2hvb2tzL3VzZS1kZWxheWVkLXJlbmRlci50c1wiKTtmdW5jdGlvbiBsKGUpe3ZhciBuLHQsbD1lLnRpdGxlLHM9ZS5jaGlsZHJlbix1PWUubGVhcm5Nb3JlTGluayxkPWUuaXNPcGVuLGY9ZS50cmlnZ2VyUmVmLHA9ZS5jbG9zZSxoPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJ0aXRsZVwiLFwiY2hpbGRyZW5cIixcImxlYXJuTW9yZUxpbmtcIixcImlzT3BlblwiLFwidHJpZ2dlclJlZlwiLFwiY2xvc2VcIl0pLGc9KDAsby51c2VSZWYpKG51bGwpLG09KDAsby51c2VSZWYpKG51bGwpLHY9KDAsaS5OKShkLHtlbnRlckRlbGF5OjAsZXhpdERlbGF5OmEuSzd9KSxiPXYubW91bnRlZCx5PXYucmVuZGVyZWQ7cmV0dXJuKCgwLGEuUDUpKGcsZixkLGZ1bmN0aW9uKCl7dmFyIGU7bnVsbD09KGU9bS5jdXJyZW50KXx8ZS5mb2N1cygpfSksKDAsYS5POCkoZyxmLGIscCksYik/KDAsci5qc3gpKFwiZGl2XCIsKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByO3I9dFtuXSxuIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbbl09cn0pfXJldHVybiBlfSh7dGFiSW5kZXg6LTEscm9sZTpcImRpYWxvZ1wiLHJlZjpnLFwiZGF0YS1pbmZvLXBvcG92ZXJcIjohMH0saCksdD10PXtcImRhdGEtcmVuZGVyZWRcIjp5LGNoaWxkcmVuOigwLHIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29udGFpbmVyXCIsY2hpbGRyZW46WygwLHIuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8taGVhZGVyXCIsY2hpbGRyZW46WygwLHIuanN4KShcImJ1dHRvblwiLHtyZWY6bSxjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jbG9zZS1idXR0b25cIixvbkNsaWNrOnAsXCJhcmlhLWxhYmVsXCI6XCJDbG9zZSBkaWFsb2dcIixjaGlsZHJlbjooMCxyLmpzeCkoYyx7fSl9KSwoMCxyLmpzeCkoXCJoM1wiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby10aXRsZVwiLGNoaWxkcmVuOmx9KV19KSwoMCxyLmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWJvZHlcIixjaGlsZHJlbjpbcyx1JiYoMCxyLmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tYnV0dG9uLWNvbnRhaW5lclwiLGNoaWxkcmVuOigwLHIuanN4KShcImFcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tbGVhcm4tbW9yZS1idXR0b25cIixocmVmOnUsdGFyZ2V0OlwiX2JsYW5rXCIscmVsOlwibm9yZWZlcnJlciBub29wZW5lclwiLGNoaWxkcmVuOlwiTGVhcm4gTW9yZVwifSl9KV19KV19KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSk6bnVsbH12YXIgcz1cIlxcbiAgW2RhdGEtaW5mby1wb3BvdmVyXSB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tZW51KTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stc2Fucyk7XFxuICAgIHotaW5kZXg6IDM7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIG91dGxpbmU6IDA7XFxuICAgIG1pbi13aWR0aDogMzUwcHg7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tYW5pbWF0ZS1vdXQtZHVyYXRpb24tbXMpXFxuICAgICAgdmFyKC0tYW5pbWF0ZS1vdXQtdGltaW5nLWZ1bmN0aW9uKTtcXG5cXG4gICAgJltkYXRhLXJlbmRlcmVkPSd0cnVlJ10ge1xcbiAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgc2NhbGU6IDE7XFxuICAgIH1cXG5cXG4gICAgYnV0dG9uOmZvY3VzLXZpc2libGUge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8tY29udGFpbmVyIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8tYm9keSB7XFxuICAgIHBhZGRpbmc6IDE2cHg7XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8taGVhZGVyIHtcXG4gICAgaGVpZ2h0OiA0OHB4O1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDZweDtcXG4gICAgcGFkZGluZzogNnB4IDhweDtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jbG9zZS1idXR0b24ge1xcbiAgICBhbGw6IHVuc2V0O1xcbiAgICB3aWR0aDogMjBweDtcXG4gICAgaGVpZ2h0OiAyMHB4OyAgICBcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIHRyYW5zaXRpb246IGNvbG9yIDE1MG1zIGVhc2U7XFxuICAgIHRyYW5zbGF0ZTogMCAxcHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby10aXRsZSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1zZWN0aW9uLXRpdGxlIHtcXG4gICAgcGFkZGluZzogOHB4IDBweDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWFydGljbGUge1xcbiAgICBwYWRkaW5nOiA4cHggNnB4O1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICAuZGV2LXRvb2xzLWluZm8tcGFyYWdyYXBoIHtcXG4gICAgJjpsYXN0LWNoaWxkIHtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8tYnV0dG9uLWNvbnRhaW5lciB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1sZWFybi1tb3JlLWJ1dHRvbiB7XFxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgcGFkZGluZzogMCA4cHg7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yOCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZm8tbGVhcm4tbW9yZS1idXR0b246aG92ZXIge1xcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIG9wYWNpdHk6IDAuOTtcXG4gIH1cXG5cIjtmdW5jdGlvbiBjKCl7cmV0dXJuKDAsci5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCxyLmpzeCkoXCJwYXRoXCIse2Q6XCJNNS4xNDY0NSA4LjcwNzAzQzQuNzU1OTUgOC4zMTY1MSA0Ljc1NTk1IDcuNjgzNDkgNS4xNDY0NSA3LjI5Mjk3TDEwLjUgMS45Mzk0NUwxMS41NjA1IDNMNi41NjA1MSA4TDExLjU2MDUgMTNMMTAuNSAxNC4wNjA1TDUuMTQ2NDUgOC43MDcwM1pcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pfX0sXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZXJyb3JzL2Rldi10b29scy1pbmRpY2F0b3IvZGV2LXRvb2xzLWluZm8vc2VnbWVudHMtZXhwbG9yZXIudHN4XCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3QuZChuLHtXOigpPT5pfSk7dmFyIHI9dChcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtcnVudGltZS5qc1wiKSxvPXQoXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci50c3hcIiksYT10KFwiLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2Vycm9ycy9kZXYtdG9vbHMtaW5kaWNhdG9yL2Rldi10b29scy1pbmZvL2Rldi10b29scy1pbmZvLnRzeFwiKTtmdW5jdGlvbiBpKGUpe3ZhciBuLHQsaT1lLnJvdXRlclR5cGUsbD1lLnBhZ2Uscz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSxuLmluZGV4T2YodCk+PTB8fChvW3RdPWVbdF0pO3JldHVybiBvfShlLG4pO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sIShuLmluZGV4T2YodCk+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0KSYmKG9bdF09ZVt0XSl9cmV0dXJuIG99KGUsW1wicm91dGVyVHlwZVwiLFwicGFnZVwiXSk7cmV0dXJuKDAsci5qc3gpKGEueCwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHI7cj10W25dLG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT1yfSl9cmV0dXJuIGV9KHt0aXRsZTpcIlJvdXRlIEluZm9cIn0scyksdD10PXtjaGlsZHJlbjooMCxyLmpzeCkoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1zZWdtZW50cy1leHBsb3JlclwiOiEwLHN0eWxlOnttYXJnaW46XCItMTZweFwifSxjaGlsZHJlbjooMCxyLmpzeCkoby51LHtpc0FwcFJvdXRlcjpcImFwcFwiPT09aSxwYWdlOmx9KX0pfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX19LFwiLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2Vycm9ycy9kZXYtdG9vbHMtaW5kaWNhdG9yL3V0aWxzLnRzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3QuZChuLHtLNzooKT0+cyxPODooKT0+bCxQNTooKT0+YSx1RDooKT0+Yyx2WTooKT0+aX0pO3ZhciByPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanNcIik7ZnVuY3Rpb24gbyhlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gYShlLG4sdCxhKXsoMCxyLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgcj1mdW5jdGlvbihlKXtpZihcIlRhYlwiPT09ZS5rZXkmJm51bGwhPT1sKXt2YXIgbix0LHI9KHQ9KG49bC5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b24sIFtocmVmXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKScpKT9bblswXSxuW24ubGVuZ3RoLTFdXTpbXSxmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfSh0KXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fSh0LDIpfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBvKGUsMik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG8oZSxuKX19KHQsMil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLGE9clswXSxzPXJbMV0sYz1pKGwpO2Uuc2hpZnRLZXk/Yz09PWEmJihudWxsPT1zfHxzLmZvY3VzKCksZS5wcmV2ZW50RGVmYXVsdCgpKTpjPT09cyYmKG51bGw9PWF8fGEuZm9jdXMoKSxlLnByZXZlbnREZWZhdWx0KCkpfX0sbD1udWxsLHM9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKGw9ZS5jdXJyZW50LHQpYT9hKCk6bnVsbD09bHx8bC5mb2N1cygpLG51bGw9PWx8fGwuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixyKTtlbHNle3ZhciBvLHM9aShsKTtuJiYobnVsbD09bD92b2lkIDA6bC5jb250YWlucyhzKSkmJihudWxsPT0obz1uLmN1cnJlbnQpfHxvLmZvY3VzKCkpfX0pO3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChzKSxudWxsPT1sfHxsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIscil9fSxbdF0pfWZ1bmN0aW9uIGkoZSl7dmFyIG4sdD1udWxsPT1lP3ZvaWQgMDplLmdldFJvb3ROb2RlKCk7cmV0dXJuKG51bGwhPShuPVNoYWRvd1Jvb3QpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZuW1N5bWJvbC5oYXNJbnN0YW5jZV0/ISFuW1N5bWJvbC5oYXNJbnN0YW5jZV0odCk6dCBpbnN0YW5jZW9mIG4pP251bGw9PXQ/dm9pZCAwOnQuYWN0aXZlRWxlbWVudDpudWxsfWZ1bmN0aW9uIGwoZSxuLHQsbyxhKXsoMCxyLnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgcixpPWZ1bmN0aW9uKHQpe3ZhciByLGEsaT10LnRhcmdldDshKGUuY3VycmVudCYmZS5jdXJyZW50LmNvbnRhaW5zKGkpKSYmKG51bGwhPShyPWUuY3VycmVudCkmJnIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkmJnQuY2xpZW50WD49ZS5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQmJnQuY2xpZW50WDw9ZS5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0JiZ0LmNsaWVudFk+PWUuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AmJnQuY2xpZW50WTw9ZS5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbXx8bnVsbCE9KGE9bi5jdXJyZW50KSYmYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSYmdC5jbGllbnRYPj1uLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCYmdC5jbGllbnRYPD1uLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQmJnQuY2xpZW50WT49bi5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCYmdC5jbGllbnRZPD1uLmN1cnJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tfHxvKCkpfSxsPWZ1bmN0aW9uKGUpe1wiRXNjYXBlXCI9PT1lLmtleSYmbygpfTtpZih0KXt2YXIgcz1hfHwobnVsbD09KHI9ZS5jdXJyZW50KT92b2lkIDA6ci5vd25lckRvY3VtZW50KTtyZXR1cm4gbnVsbD09c3x8cy5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsaSksbnVsbD09c3x8cy5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGwpLGZ1bmN0aW9uKCl7bnVsbD09c3x8cy5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsaSksbnVsbD09c3x8cy5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGwpfX19LFt0LGUsbl0pfXZhciBzPTIwMCxjPVwiY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4xKVwifSxcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9vdmVydmlldy9zZWdtZW50LWV4cGxvcmVyLnRzeFwiOmZ1bmN0aW9uKGUsbix0KXtcInVzZSBzdHJpY3RcIjt0LmQobix7dTooKT0+YXR9KTt2YXIgcixvLGEsaSxsPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LXJ1bnRpbWUuanNcIikscz10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCIpLGM9dC5uKHMpLHU9dChcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCIpLGQ9dC5uKHUpLGY9dChcIi4vc3JjL2J1aWxkL3dlYnBhY2svbG9hZGVycy9kZXZ0b29sL2RldnRvb2wtc3R5bGUtaW5qZWN0LmpzXCIpLHA9dC5uKGYpLGg9dChcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiKSxnPXQubihoKSxtPXQoXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIiksdj10Lm4obSksYj10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIikseT10Lm4oYikseD10KFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2Nzcy1sb2FkZXJANy4xLjJfQHJzcGFjaytjb3JlQDEuNC41X0Bzd2MraGVscGVyc0AwLjUuMTVfX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd193bTdlZTVpYzRtb2ZyaGlzdWR3b240cXBxNC9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvb3ZlcnZpZXcvc2VnbWVudC1leHBsb3Jlci5jc3NcIiksdz17fTt3LnN0eWxlVGFnVHJhbnNmb3JtPXkoKSx3LnNldEF0dHJpYnV0ZXM9ZygpLHcuaW5zZXJ0PXAoKSx3LmRvbUFQST1kKCksdy5pbnNlcnRTdHlsZUVsZW1lbnQ9digpLGMoKSh4LlosdykseC5aJiZ4LloubG9jYWxzJiZ4LloubG9jYWxzO3ZhciBqPXQoXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3NlZ21lbnQtZXhwbG9yZXItdHJpZS50c1wiKSxrPXQoXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3V0aWxzL2N4LnRzXCIpLEE9dChcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL292ZXJ2aWV3L3NlZ21lbnQtYm91bmRhcnktdHJpZ2dlci5jc3NcIiksTz17fTtPLnN0eWxlVGFnVHJhbnNmb3JtPXkoKSxPLnNldEF0dHJpYnV0ZXM9ZygpLE8uaW5zZXJ0PXAoKSxPLmRvbUFQST1kKCksTy5pbnNlcnRTdHlsZUVsZW1lbnQ9digpLGMoKShBLlosTyksQS5aJiZBLloubG9jYWxzJiZBLloubG9jYWxzO3ZhciBDPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanNcIiksUz10LnQoQywyKSxFPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2luZGV4LmpzXCIpO2xldCBfPXt9O2Z1bmN0aW9uIFAoZSxuKXtsZXQgdD1DLnVzZVJlZihfKTtyZXR1cm4gdC5jdXJyZW50PT09XyYmKHQuY3VycmVudD1lKG4pKSx0fWxldCB6PVNbYHVzZUluc2VydGlvbkVmZmVjdCR7TWF0aC5yYW5kb20oKS50b0ZpeGVkKDEpfWAuc2xpY2UoMCwtMyldLEw9eiYmeiE9PUMudXNlTGF5b3V0RWZmZWN0P3o6ZT0+ZSgpO2Z1bmN0aW9uIFQoZSl7bGV0IG49UChSKS5jdXJyZW50O3JldHVybiBuLm5leHQ9ZSxMKG4uZWZmZWN0KSxuLnRyYW1wb2xpbmV9ZnVuY3Rpb24gUigpe2xldCBlPXtuZXh0OnZvaWQgMCxjYWxsYmFjazpOLHRyYW1wb2xpbmU6KC4uLm4pPT5lLmNhbGxiYWNrPy4oLi4ubiksZWZmZWN0OigpPT57ZS5jYWxsYmFjaz1lLm5leHR9fTtyZXR1cm4gZX1mdW5jdGlvbiBOKCl7fWZ1bmN0aW9uIEQoKXtsZXQgZT1uZXcgTWFwO3JldHVybntlbWl0KG4sdCl7ZS5nZXQobik/LmZvckVhY2goZT0+ZSh0KSl9LG9uKG4sdCl7ZS5oYXMobil8fGUuc2V0KG4sbmV3IFNldCksZS5nZXQobikuYWRkKHQpfSxvZmYobix0KXtlLmdldChuKT8uZGVsZXRlKHQpfX19bGV0IEI9ey4uLlN9LE09MCxJPUIudXNlSWQ7ZnVuY3Rpb24gSChlLG4pe2lmKHZvaWQgMCE9PUkpe2xldCB0PUkoKTtyZXR1cm4gZT8/KG4/YCR7bn0tJHt0fWA6dCl9cmV0dXJuIGZ1bmN0aW9uKGUsbj1cIm11aVwiKXtsZXRbdCxyXT1DLnVzZVN0YXRlKGUpLG89ZXx8dDtyZXR1cm4gQy51c2VFZmZlY3QoKCk9PntudWxsPT10JiYoTSs9MSxyKGAke259LSR7TX1gKSl9LFt0LG5dKSxvfShlLG4pfWxldCBGPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBkb2N1bWVudD9DLnVzZUxheW91dEVmZmVjdDooKT0+e30sVT1DLmNyZWF0ZUNvbnRleHQobnVsbCksVj1DLmNyZWF0ZUNvbnRleHQobnVsbCkscT0oKT0+Qy51c2VDb250ZXh0KFUpPy5pZHx8bnVsbCxXPSgpPT5DLnVzZUNvbnRleHQoVik7ZnVuY3Rpb24gJChlKXtsZXR7Y2hpbGRyZW46bixpZDp0fT1lLHI9cSgpO3JldHVybigwLGwuanN4KShVLlByb3ZpZGVyLHt2YWx1ZTpDLnVzZU1lbW8oKCk9Pih7aWQ6dCxwYXJlbnRJZDpyfSksW3Qscl0pLGNoaWxkcmVuOm59KX1mdW5jdGlvbiBaKGUpe2xldHtjaGlsZHJlbjpufT1lLHQ9Qy51c2VSZWYoW10pLHI9Qy51c2VDYWxsYmFjayhlPT57dC5jdXJyZW50PVsuLi50LmN1cnJlbnQsZV19LFtdKSxvPUMudXNlQ2FsbGJhY2soZT0+e3QuY3VycmVudD10LmN1cnJlbnQuZmlsdGVyKG49Pm4hPT1lKX0sW10pLFthXT1DLnVzZVN0YXRlKCgpPT5EKCkpO3JldHVybigwLGwuanN4KShWLlByb3ZpZGVyLHt2YWx1ZTpDLnVzZU1lbW8oKCk9Pih7bm9kZXNSZWY6dCxhZGROb2RlOnIscmVtb3ZlTm9kZTpvLGV2ZW50czphfSksW3IsbyxhXSksY2hpbGRyZW46bn0pfWZ1bmN0aW9uIFkoZSl7bGV0e29wZW46bj0hMSxvbk9wZW5DaGFuZ2U6dCxlbGVtZW50czpyfT1lLG89SCgpLGE9Qy51c2VSZWYoe30pLFtpXT1DLnVzZVN0YXRlKCgpPT5EKCkpLGw9bnVsbCE9cSgpLFtzLGNdPUMudXNlU3RhdGUoci5yZWZlcmVuY2UpLHU9VCgoZSxuLHIpPT57YS5jdXJyZW50Lm9wZW5FdmVudD1lP246dm9pZCAwLGkuZW1pdChcIm9wZW5jaGFuZ2VcIix7b3BlbjplLGV2ZW50Om4scmVhc29uOnIsbmVzdGVkOmx9KSx0Py4oZSxuLHIpfSksZD1DLnVzZU1lbW8oKCk9Pih7c2V0UG9zaXRpb25SZWZlcmVuY2U6Y30pLFtdKSxmPUMudXNlTWVtbygoKT0+KHtyZWZlcmVuY2U6c3x8ci5yZWZlcmVuY2V8fG51bGwsZmxvYXRpbmc6ci5mbG9hdGluZ3x8bnVsbCxkb21SZWZlcmVuY2U6ci5yZWZlcmVuY2V9KSxbcyxyLnJlZmVyZW5jZSxyLmZsb2F0aW5nXSk7cmV0dXJuIEMudXNlTWVtbygoKT0+KHtkYXRhUmVmOmEsb3BlbjpuLG9uT3BlbkNoYW5nZTp1LGVsZW1lbnRzOmYsZXZlbnRzOmksZmxvYXRpbmdJZDpvLHJlZnM6ZH0pLFtuLHUsZixpLG8sZF0pfWZ1bmN0aW9uIFgoKXtyZXR1cm5cInVuZGVmaW5lZFwiIT10eXBlb2Ygd2luZG93fWZ1bmN0aW9uIEsoZSl7cmV0dXJuIEooZSk/KGUubm9kZU5hbWV8fFwiXCIpLnRvTG93ZXJDYXNlKCk6XCIjZG9jdW1lbnRcIn1mdW5jdGlvbiBRKGUpe3ZhciBuO3JldHVybihudWxsPT1lfHxudWxsPT0obj1lLm93bmVyRG9jdW1lbnQpP3ZvaWQgMDpuLmRlZmF1bHRWaWV3KXx8d2luZG93fWZ1bmN0aW9uIEcoZSl7dmFyIG47cmV0dXJuIG51bGw9PShuPShKKGUpP2Uub3duZXJEb2N1bWVudDplLmRvY3VtZW50KXx8d2luZG93LmRvY3VtZW50KT92b2lkIDA6bi5kb2N1bWVudEVsZW1lbnR9ZnVuY3Rpb24gSihlKXtyZXR1cm4hIVgoKSYmKGUgaW5zdGFuY2VvZiBOb2RlfHxlIGluc3RhbmNlb2YgUShlKS5Ob2RlKX1mdW5jdGlvbiBlZShlKXtyZXR1cm4hIVgoKSYmKGUgaW5zdGFuY2VvZiBFbGVtZW50fHxlIGluc3RhbmNlb2YgUShlKS5FbGVtZW50KX1mdW5jdGlvbiBlbihlKXtyZXR1cm4hIVgoKSYmKGUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8ZSBpbnN0YW5jZW9mIFEoZSkuSFRNTEVsZW1lbnQpfWZ1bmN0aW9uIGV0KGUpe3JldHVybiEhWCgpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU2hhZG93Um9vdCYmKGUgaW5zdGFuY2VvZiBTaGFkb3dSb290fHxlIGluc3RhbmNlb2YgUShlKS5TaGFkb3dSb290KX1sZXQgZXI9bmV3IFNldChbXCJpbmxpbmVcIixcImNvbnRlbnRzXCJdKTtmdW5jdGlvbiBlbyhlKXtsZXR7b3ZlcmZsb3c6bixvdmVyZmxvd1g6dCxvdmVyZmxvd1k6cixkaXNwbGF5Om99PWVnKGUpO3JldHVybi9hdXRvfHNjcm9sbHxvdmVybGF5fGhpZGRlbnxjbGlwLy50ZXN0KG4rcit0KSYmIWVyLmhhcyhvKX1sZXQgZWE9bmV3IFNldChbXCJ0YWJsZVwiLFwidGRcIixcInRoXCJdKSxlaT1bXCI6cG9wb3Zlci1vcGVuXCIsXCI6bW9kYWxcIl07ZnVuY3Rpb24gZWwoZSl7cmV0dXJuIGVpLnNvbWUobj0+e3RyeXtyZXR1cm4gZS5tYXRjaGVzKG4pfWNhdGNoKGUpe3JldHVybiExfX0pfWxldCBlcz1bXCJ0cmFuc2Zvcm1cIixcInRyYW5zbGF0ZVwiLFwic2NhbGVcIixcInJvdGF0ZVwiLFwicGVyc3BlY3RpdmVcIl0sZWM9W1widHJhbnNmb3JtXCIsXCJ0cmFuc2xhdGVcIixcInNjYWxlXCIsXCJyb3RhdGVcIixcInBlcnNwZWN0aXZlXCIsXCJmaWx0ZXJcIl0sZXU9W1wicGFpbnRcIixcImxheW91dFwiLFwic3RyaWN0XCIsXCJjb250ZW50XCJdO2Z1bmN0aW9uIGVkKGUpe2xldCBuPWVmKCksdD1lZShlKT9lZyhlKTplO3JldHVybiBlcy5zb21lKGU9PiEhdFtlXSYmXCJub25lXCIhPT10W2VdKXx8ISF0LmNvbnRhaW5lclR5cGUmJlwibm9ybWFsXCIhPT10LmNvbnRhaW5lclR5cGV8fCFuJiYhIXQuYmFja2Ryb3BGaWx0ZXImJlwibm9uZVwiIT09dC5iYWNrZHJvcEZpbHRlcnx8IW4mJiEhdC5maWx0ZXImJlwibm9uZVwiIT09dC5maWx0ZXJ8fGVjLnNvbWUoZT0+KHQud2lsbENoYW5nZXx8XCJcIikuaW5jbHVkZXMoZSkpfHxldS5zb21lKGU9Pih0LmNvbnRhaW58fFwiXCIpLmluY2x1ZGVzKGUpKX1mdW5jdGlvbiBlZigpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiBDU1MmJiEhQ1NTLnN1cHBvcnRzJiZDU1Muc3VwcG9ydHMoXCItd2Via2l0LWJhY2tkcm9wLWZpbHRlclwiLFwibm9uZVwiKX1sZXQgZXA9bmV3IFNldChbXCJodG1sXCIsXCJib2R5XCIsXCIjZG9jdW1lbnRcIl0pO2Z1bmN0aW9uIGVoKGUpe3JldHVybiBlcC5oYXMoSyhlKSl9ZnVuY3Rpb24gZWcoZSl7cmV0dXJuIFEoZSkuZ2V0Q29tcHV0ZWRTdHlsZShlKX1mdW5jdGlvbiBlbShlKXtyZXR1cm4gZWUoZSk/e3Njcm9sbExlZnQ6ZS5zY3JvbGxMZWZ0LHNjcm9sbFRvcDplLnNjcm9sbFRvcH06e3Njcm9sbExlZnQ6ZS5zY3JvbGxYLHNjcm9sbFRvcDplLnNjcm9sbFl9fWZ1bmN0aW9uIGV2KGUpe2lmKFwiaHRtbFwiPT09SyhlKSlyZXR1cm4gZTtsZXQgbj1lLmFzc2lnbmVkU2xvdHx8ZS5wYXJlbnROb2RlfHxldChlKSYmZS5ob3N0fHxHKGUpO3JldHVybiBldChuKT9uLmhvc3Q6bn1mdW5jdGlvbiBlYihlLG4sdCl7dmFyIHI7dm9pZCAwPT09biYmKG49W10pLHZvaWQgMD09PXQmJih0PSEwKTtsZXQgbz1mdW5jdGlvbiBlKG4pe2xldCB0PWV2KG4pO3JldHVybiBlaCh0KT9uLm93bmVyRG9jdW1lbnQ/bi5vd25lckRvY3VtZW50LmJvZHk6bi5ib2R5OmVuKHQpJiZlbyh0KT90OmUodCl9KGUpLGE9bz09PShudWxsPT0ocj1lLm93bmVyRG9jdW1lbnQpP3ZvaWQgMDpyLmJvZHkpLGk9UShvKTtpZihhKXtsZXQgZT1leShpKTtyZXR1cm4gbi5jb25jYXQoaSxpLnZpc3VhbFZpZXdwb3J0fHxbXSxlbyhvKT9vOltdLGUmJnQ/ZWIoZSk6W10pfXJldHVybiBuLmNvbmNhdChvLGViKG8sW10sdCkpfWZ1bmN0aW9uIGV5KGUpe3JldHVybiBlLnBhcmVudCYmT2JqZWN0LmdldFByb3RvdHlwZU9mKGUucGFyZW50KT9lLmZyYW1lRWxlbWVudDpudWxsfWxldCBleD1bXTtmdW5jdGlvbiBldyhlKXtDLnVzZUVmZmVjdChlLGV4KX1jbGFzcyBlantzdGF0aWMgY3JlYXRlKCl7cmV0dXJuIG5ldyBlan1jdXJyZW50SWQ9MDtzdGFydChlLG4pe3RoaXMuY2xlYXIoKSx0aGlzLmN1cnJlbnRJZD1zZXRUaW1lb3V0KCgpPT57dGhpcy5jdXJyZW50SWQ9MCxuKCl9LGUpfWlzU3RhcnRlZCgpe3JldHVybiAwIT09dGhpcy5jdXJyZW50SWR9Y2xlYXI9KCk9PnswIT09dGhpcy5jdXJyZW50SWQmJihjbGVhclRpbWVvdXQodGhpcy5jdXJyZW50SWQpLHRoaXMuY3VycmVudElkPTApfTtkaXNwb3NlRWZmZWN0PSgpPT50aGlzLmNsZWFyfWZ1bmN0aW9uIGVrKCl7bGV0IGU9UChlai5jcmVhdGUpLmN1cnJlbnQ7cmV0dXJuIGV3KGUuZGlzcG9zZUVmZmVjdCksZX1mdW5jdGlvbiBlQShlKXtsZXQgbj1QKGVPLGUpLmN1cnJlbnQ7cmV0dXJuIG4ubmV4dD1lLEYobi5lZmZlY3QpLG59ZnVuY3Rpb24gZU8oZSl7bGV0IG49e2N1cnJlbnQ6ZSxuZXh0OmUsZWZmZWN0OigpPT57bi5jdXJyZW50PW4ubmV4dH19O3JldHVybiBufWxldCBlQz1cInVuZGVmaW5lZFwiIT10eXBlb2YgbmF2aWdhdG9yLGVTPWZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIG5hdmlnYXRvcilyZXR1cm57cGxhdGZvcm06XCJcIixtYXhUb3VjaFBvaW50czotMX07bGV0IGU9bmF2aWdhdG9yLnVzZXJBZ2VudERhdGE7cmV0dXJuIGU/LnBsYXRmb3JtP3twbGF0Zm9ybTplLnBsYXRmb3JtLG1heFRvdWNoUG9pbnRzOm5hdmlnYXRvci5tYXhUb3VjaFBvaW50c306e3BsYXRmb3JtOm5hdmlnYXRvci5wbGF0Zm9ybT8/XCJcIixtYXhUb3VjaFBvaW50czpuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM/Py0xfX0oKSxlRT1mdW5jdGlvbigpe2lmKCFlQylyZXR1cm5cIlwiO2xldCBlPW5hdmlnYXRvci51c2VyQWdlbnREYXRhO3JldHVybiBlPy5wbGF0Zm9ybT9lLnBsYXRmb3JtOm5hdmlnYXRvci5wbGF0Zm9ybT8/XCJcIn0oKSxlXz1mdW5jdGlvbigpe2lmKCFlQylyZXR1cm5cIlwiO2xldCBlPW5hdmlnYXRvci51c2VyQWdlbnREYXRhO3JldHVybiBlJiZBcnJheS5pc0FycmF5KGUuYnJhbmRzKT9lLmJyYW5kcy5tYXAoKHticmFuZDplLHZlcnNpb246bn0pPT5gJHtlfS8ke259YCkuam9pbihcIiBcIik6bmF2aWdhdG9yLnVzZXJBZ2VudH0oKSxlUD1cInVuZGVmaW5lZFwiIT10eXBlb2YgQ1NTJiYhIUNTUy5zdXBwb3J0cyYmQ1NTLnN1cHBvcnRzKFwiLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZVwiKSxlej1cIk1hY0ludGVsXCI9PT1lUy5wbGF0Zm9ybSYmZVMubWF4VG91Y2hQb2ludHM+MXx8L2lQKGhvbmV8YWR8b2QpfGlPUy8udGVzdChlUy5wbGF0Zm9ybSk7ZUMmJi9maXJlZm94L2kudGVzdChlXyk7bGV0IGVMPWVDJiYvYXBwbGUvaS50ZXN0KG5hdmlnYXRvci52ZW5kb3IpLGVUPWVDJiYvYW5kcm9pZC9pLnRlc3QoZUUpfHwvYW5kcm9pZC9pLnRlc3QoZV8pLGVSPWVDJiZlRS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJtYWNcIikmJiFuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMsZU49ZV8uaW5jbHVkZXMoXCJqc2RvbS9cIik7ZnVuY3Rpb24gZUQoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCl9ZnVuY3Rpb24gZUIoZSl7cmV0dXJuIDA9PT1lLm1veklucHV0U291cmNlJiYhIWUuaXNUcnVzdGVkfHwoZVQmJmUucG9pbnRlclR5cGU/XCJjbGlja1wiPT09ZS50eXBlJiYxPT09ZS5idXR0b25zOjA9PT1lLmRldGFpbCYmIWUucG9pbnRlclR5cGUpfWZ1bmN0aW9uIGVNKGUpe3JldHVybiFlTiYmKCFlVCYmMD09PWUud2lkdGgmJjA9PT1lLmhlaWdodHx8ZVQmJjE9PT1lLndpZHRoJiYxPT09ZS5oZWlnaHQmJjA9PT1lLnByZXNzdXJlJiYwPT09ZS5kZXRhaWwmJlwibW91c2VcIj09PWUucG9pbnRlclR5cGV8fGUud2lkdGg8MSYmZS5oZWlnaHQ8MSYmMD09PWUucHJlc3N1cmUmJjA9PT1lLmRldGFpbCYmXCJ0b3VjaFwiPT09ZS5wb2ludGVyVHlwZSl9ZnVuY3Rpb24gZUkoZSxuKXtsZXQgdD1bXCJtb3VzZVwiLFwicGVuXCJdO3JldHVybiBufHx0LnB1c2goXCJcIix2b2lkIDApLHQuaW5jbHVkZXMoZSl9bGV0IGVIPVwiZGF0YS1iYXNlLXVpLWZvY3VzYWJsZVwiLGVGPVwiYWN0aXZlXCIsZVU9XCJzZWxlY3RlZFwiLGVWPVwiQXJyb3dMZWZ0XCIsZXE9XCJBcnJvd1JpZ2h0XCIsZVc9XCJBcnJvd1VwXCIsZSQ9XCJBcnJvd0Rvd25cIjtmdW5jdGlvbiBlWihlKXtsZXQgbj1lLmFjdGl2ZUVsZW1lbnQ7Zm9yKDtuPy5zaGFkb3dSb290Py5hY3RpdmVFbGVtZW50IT1udWxsOyluPW4uc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50O3JldHVybiBufWZ1bmN0aW9uIGVZKGUsbil7aWYoIWV8fCFuKXJldHVybiExO2xldCB0PW4uZ2V0Um9vdE5vZGU/LigpO2lmKGUuY29udGFpbnMobikpcmV0dXJuITA7aWYodCYmZXQodCkpe2xldCB0PW47Zm9yKDt0Oyl7aWYoZT09PXQpcmV0dXJuITA7dD10LnBhcmVudE5vZGV8fHQuaG9zdH19cmV0dXJuITF9ZnVuY3Rpb24gZVgoZSl7cmV0dXJuXCJjb21wb3NlZFBhdGhcImluIGU/ZS5jb21wb3NlZFBhdGgoKVswXTplLnRhcmdldH1mdW5jdGlvbiBlSyhlLG4pe3JldHVybiBudWxsIT1uJiYoXCJjb21wb3NlZFBhdGhcImluIGU/ZS5jb21wb3NlZFBhdGgoKS5pbmNsdWRlcyhuKTpudWxsIT1lLnRhcmdldCYmbi5jb250YWlucyhlLnRhcmdldCkpfWZ1bmN0aW9uIGVRKGUpe3JldHVybiBlPy5vd25lckRvY3VtZW50fHxkb2N1bWVudH1mdW5jdGlvbiBlRyhlKXtyZXR1cm4gZW4oZSkmJmUubWF0Y2hlcyhcImlucHV0Om5vdChbdHlwZT0naGlkZGVuJ10pOm5vdChbZGlzYWJsZWRdKSxbY29udGVudGVkaXRhYmxlXTpub3QoW2NvbnRlbnRlZGl0YWJsZT0nZmFsc2UnXSksdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pXCIpfWZ1bmN0aW9uIGVKKGUpe3JldHVybiEhZSYmXCJjb21ib2JveFwiPT09ZS5nZXRBdHRyaWJ1dGUoXCJyb2xlXCIpJiZlRyhlKX1mdW5jdGlvbiBlMChlKXtyZXR1cm4gZT9lLmhhc0F0dHJpYnV0ZShlSCk/ZTplLnF1ZXJ5U2VsZWN0b3IoYFske2VIfV1gKXx8ZTpudWxsfWZ1bmN0aW9uIGUxKGUpe3JldHVybmBkYXRhLWJhc2UtdWktJHtlfWB9bGV0IGUyPWUxKFwic2FmZS1wb2x5Z29uXCIpO2Z1bmN0aW9uIGU0KGUsbix0KXtpZih0JiYhZUkodCkpcmV0dXJuIDA7aWYoXCJudW1iZXJcIj09dHlwZW9mIGUpcmV0dXJuIGU7aWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZSl7bGV0IHQ9ZSgpO3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiB0P3Q6dD8uW25dfXJldHVybiBlPy5bbl19ZnVuY3Rpb24gZTUoZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lKCk6ZX1mdW5jdGlvbiBlMyhlLG49e30pe2xldHtvcGVuOnQsb25PcGVuQ2hhbmdlOnIsZGF0YVJlZjpvLGV2ZW50czphLGVsZW1lbnRzOml9PWUse2VuYWJsZWQ6bD0hMCxkZWxheTpzPTAsaGFuZGxlQ2xvc2U6Yz1udWxsLG1vdXNlT25seTp1PSExLHJlc3RNczpkPTAsbW92ZTpmPSEwfT1uLHA9VygpLGg9cSgpLGc9ZUEoYyksbT1lQShzKSx2PWVBKHQpLGI9ZUEoZCkseT1DLnVzZVJlZih2b2lkIDApLHg9ZWsoKSx3PUMudXNlUmVmKHZvaWQgMCksaj1laygpLGs9Qy51c2VSZWYoITApLEE9Qy51c2VSZWYoITEpLE89Qy51c2VSZWYoKCk9Pnt9KSxTPUMudXNlUmVmKCExKSxFPVQoKCk9PntsZXQgZT1vLmN1cnJlbnQub3BlbkV2ZW50Py50eXBlO3JldHVybiBlPy5pbmNsdWRlcyhcIm1vdXNlXCIpJiZcIm1vdXNlZG93blwiIT09ZX0pO0MudXNlRWZmZWN0KCgpPT57aWYobClyZXR1cm4gYS5vbihcIm9wZW5jaGFuZ2VcIixlKSwoKT0+e2Eub2ZmKFwib3BlbmNoYW5nZVwiLGUpfTtmdW5jdGlvbiBlKHtvcGVuOmV9KXtlfHwoeC5jbGVhcigpLGouY2xlYXIoKSxrLmN1cnJlbnQ9ITAsUy5jdXJyZW50PSExKX19LFtsLGEseCxqXSksQy51c2VFZmZlY3QoKCk9PntpZighbHx8IWcuY3VycmVudHx8IXQpcmV0dXJuO2Z1bmN0aW9uIGUoZSl7RSgpJiZyKCExLGUsXCJob3ZlclwiKX1sZXQgbj1lUShpLmZsb2F0aW5nKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIG4uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixlKSwoKT0+e24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixlKX19LFtpLmZsb2F0aW5nLHQscixsLGcsRV0pO2xldCBfPUMudXNlQ2FsbGJhY2soKGUsbj0hMCx0PVwiaG92ZXJcIik9PntsZXQgbz1lNChtLmN1cnJlbnQsXCJjbG9zZVwiLHkuY3VycmVudCk7byYmIXcuY3VycmVudD94LnN0YXJ0KG8sKCk9PnIoITEsZSx0KSk6biYmKHguY2xlYXIoKSxyKCExLGUsdCkpfSxbbSxyLHhdKSxQPVQoKCk9PntPLmN1cnJlbnQoKSx3LmN1cnJlbnQ9dm9pZCAwfSksej1UKCgpPT57aWYoQS5jdXJyZW50KXtsZXQgZT1lUShpLmZsb2F0aW5nKS5ib2R5O2Uuc3R5bGUucG9pbnRlckV2ZW50cz1cIlwiLGUucmVtb3ZlQXR0cmlidXRlKGUyKSxBLmN1cnJlbnQ9ITF9fSksTD1UKCgpPT4hIW8uY3VycmVudC5vcGVuRXZlbnQmJltcImNsaWNrXCIsXCJtb3VzZWRvd25cIl0uaW5jbHVkZXMoby5jdXJyZW50Lm9wZW5FdmVudC50eXBlKSk7Qy51c2VFZmZlY3QoKCk9PntpZihsJiZlZShpLmRvbVJlZmVyZW5jZSkpe2xldCByPWkuZG9tUmVmZXJlbmNlLG89aS5mbG9hdGluZztyZXR1cm4gdCYmci5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLGEpLGYmJnIuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLGUse29uY2U6ITB9KSxyLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsZSksci5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLG4pLG8mJihvLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYSksby5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLHMpLG8uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixjKSksKCk9Pnt0JiZyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYSksZiYmci5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsZSksci5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLGUpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIixuKSxvJiYoby5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLGEpLG8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIixzKSxvLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsYykpfX1mdW5jdGlvbiBlKGUpe2lmKHguY2xlYXIoKSxrLmN1cnJlbnQ9ITEsdSYmIWVJKHkuY3VycmVudCl8fGU1KGIuY3VycmVudCk+MCYmIWU0KG0uY3VycmVudCxcIm9wZW5cIikpcmV0dXJuO2xldCBuPWU0KG0uY3VycmVudCxcIm9wZW5cIix5LmN1cnJlbnQpO24/eC5zdGFydChuLCgpPT57di5jdXJyZW50fHxyKCEwLGUsXCJob3ZlclwiKX0pOnR8fHIoITAsZSxcImhvdmVyXCIpfWZ1bmN0aW9uIG4oZSl7aWYoTCgpKXJldHVybiB2b2lkIHooKTtPLmN1cnJlbnQoKTtsZXQgbj1lUShpLmZsb2F0aW5nKTtpZihqLmNsZWFyKCksUy5jdXJyZW50PSExLGcuY3VycmVudCYmby5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCl7dHx8eC5jbGVhcigpLHcuY3VycmVudD1nLmN1cnJlbnQoey4uLm8uY3VycmVudC5mbG9hdGluZ0NvbnRleHQsdHJlZTpwLHg6ZS5jbGllbnRYLHk6ZS5jbGllbnRZLG9uQ2xvc2UoKXt6KCksUCgpLEwoKXx8XyhlLCEwLFwic2FmZS1wb2x5Z29uXCIpfX0pO2xldCByPXcuY3VycmVudDtuLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixyKSxPLmN1cnJlbnQ9KCk9PntuLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixyKX07cmV0dXJufVwidG91Y2hcIj09PXkuY3VycmVudCYmZVkoaS5mbG9hdGluZyxlLnJlbGF0ZWRUYXJnZXQpfHxfKGUpfWZ1bmN0aW9uIGEoZSl7IUwoKSYmby5jdXJyZW50LmZsb2F0aW5nQ29udGV4dCYmZy5jdXJyZW50Py4oey4uLm8uY3VycmVudC5mbG9hdGluZ0NvbnRleHQsdHJlZTpwLHg6ZS5jbGllbnRYLHk6ZS5jbGllbnRZLG9uQ2xvc2UoKXt6KCksUCgpLEwoKXx8XyhlKX19KShlKX1mdW5jdGlvbiBzKCl7eC5jbGVhcigpfWZ1bmN0aW9uIGMoZSl7TCgpfHxfKGUsITEpfX0sW2ksbCxlLHUsZixfLFAseixyLHQsdixwLG0sZyxvLEwsYix4LGpdKSxGKCgpPT57aWYobCYmdCYmZy5jdXJyZW50Py5fX29wdGlvbnM/LmJsb2NrUG9pbnRlckV2ZW50cyYmRSgpKXtBLmN1cnJlbnQ9ITA7bGV0IGU9aS5mbG9hdGluZztpZihlZShpLmRvbVJlZmVyZW5jZSkmJmUpe2xldCBuPWVRKGkuZmxvYXRpbmcpLmJvZHk7bi5zZXRBdHRyaWJ1dGUoZTIsXCJcIik7bGV0IHQ9aS5kb21SZWZlcmVuY2Uscj1wPy5ub2Rlc1JlZi5jdXJyZW50LmZpbmQoZT0+ZS5pZD09PWgpPy5jb250ZXh0Py5lbGVtZW50cy5mbG9hdGluZztyZXR1cm4gciYmKHIuc3R5bGUucG9pbnRlckV2ZW50cz1cIlwiKSxuLnN0eWxlLnBvaW50ZXJFdmVudHM9XCJub25lXCIsdC5zdHlsZS5wb2ludGVyRXZlbnRzPVwiYXV0b1wiLGUuc3R5bGUucG9pbnRlckV2ZW50cz1cImF1dG9cIiwoKT0+e24uc3R5bGUucG9pbnRlckV2ZW50cz1cIlwiLHQuc3R5bGUucG9pbnRlckV2ZW50cz1cIlwiLGUuc3R5bGUucG9pbnRlckV2ZW50cz1cIlwifX19fSxbbCx0LGgsaSxwLGcsRV0pLEYoKCk9Pnt0fHwoeS5jdXJyZW50PXZvaWQgMCxTLmN1cnJlbnQ9ITEsUCgpLHooKSl9LFt0LFAsel0pLEMudXNlRWZmZWN0KCgpPT4oKT0+e1AoKSx4LmNsZWFyKCksai5jbGVhcigpLHooKX0sW2wsaS5kb21SZWZlcmVuY2UsUCx6LHgsal0pO2xldCBSPUMudXNlTWVtbygoKT0+e2Z1bmN0aW9uIGUoZSl7eS5jdXJyZW50PWUucG9pbnRlclR5cGV9cmV0dXJue29uUG9pbnRlckRvd246ZSxvblBvaW50ZXJFbnRlcjplLG9uTW91c2VNb3ZlKGUpe2xldHtuYXRpdmVFdmVudDpufT1lO2Z1bmN0aW9uIG8oKXtrLmN1cnJlbnR8fHYuY3VycmVudHx8cighMCxuLFwiaG92ZXJcIil9KCF1fHxlSSh5LmN1cnJlbnQpKSYmIXQmJjAhPT1lNShiLmN1cnJlbnQpJiYoUy5jdXJyZW50JiZlLm1vdmVtZW50WCoqMitlLm1vdmVtZW50WSoqMjwyfHwoai5jbGVhcigpLFwidG91Y2hcIj09PXkuY3VycmVudD9vKCk6KFMuY3VycmVudD0hMCxqLnN0YXJ0KGU1KGIuY3VycmVudCksbykpKSl9fX0sW3Uscix0LHYsYixqXSk7cmV0dXJuIEMudXNlTWVtbygoKT0+bD97cmVmZXJlbmNlOlJ9Ont9LFtsLFJdKX1mdW5jdGlvbiBlNihlLG4sdD0hMCl7cmV0dXJuIGUuZmlsdGVyKGU9PmUucGFyZW50SWQ9PT1uJiYoIXR8fGUuY29udGV4dD8ub3BlbikpLmZsYXRNYXAobj0+W24sLi4uZTYoZSxuLmlkLHQpXSl9ZnVuY3Rpb24gZTkoZSxuKXtsZXQgdD1bXSxyPWUuZmluZChlPT5lLmlkPT09bik/LnBhcmVudElkO2Zvcig7cjspe2xldCBuPWUuZmluZChlPT5lLmlkPT09cik7cj1uPy5wYXJlbnRJZCxuJiYodD10LmNvbmNhdChuKSl9cmV0dXJuIHR9ZnVuY3Rpb24gZTgoZSxuKXtsZXRbdCxyXT1lLG89ITEsYT1uLmxlbmd0aDtmb3IobGV0IGU9MCxpPWEtMTtlPGE7aT1lKyspe2xldFthLGxdPW5bZV18fFswLDBdLFtzLGNdPW5baV18fFswLDBdO2w+PXIhPWM+PXImJnQ8PShzLWEpKihyLWwpLyhjLWwpK2EmJihvPSFvKX1yZXR1cm4gb31mdW5jdGlvbiBlNyhlPXt9KXtsZXR7YnVmZmVyOm49LjUsYmxvY2tQb2ludGVyRXZlbnRzOnQ9ITEscmVxdWlyZUludGVudDpyPSEwfT1lLG89bmV3IGVqLGE9ITEsaT1udWxsLGw9bnVsbCxzPXBlcmZvcm1hbmNlLm5vdygpLGM9KHt4OmUseTp0LHBsYWNlbWVudDpjLGVsZW1lbnRzOnUsb25DbG9zZTpkLG5vZGVJZDpmLHRyZWU6cH0pPT5mdW5jdGlvbihoKXtmdW5jdGlvbiBnKCl7by5jbGVhcigpLGQoKX1pZihvLmNsZWFyKCksIXUuZG9tUmVmZXJlbmNlfHwhdS5mbG9hdGluZ3x8bnVsbD09Y3x8bnVsbD09ZXx8bnVsbD09dClyZXR1cm47bGV0e2NsaWVudFg6bSxjbGllbnRZOnZ9PWgsYj1bbSx2XSx5PWVYKGgpLHg9XCJtb3VzZWxlYXZlXCI9PT1oLnR5cGUsdz1lWSh1LmZsb2F0aW5nLHkpLGo9ZVkodS5kb21SZWZlcmVuY2UseSksaz11LmRvbVJlZmVyZW5jZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxBPXUuZmxvYXRpbmcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTz1jLnNwbGl0KFwiLVwiKVswXSxDPWU+QS5yaWdodC1BLndpZHRoLzIsUz10PkEuYm90dG9tLUEuaGVpZ2h0LzIsRT1iWzBdPj1rLngmJmJbMF08PWsueCtrLndpZHRoJiZiWzFdPj1rLnkmJmJbMV08PWsueStrLmhlaWdodCxfPUEud2lkdGg+ay53aWR0aCxQPUEuaGVpZ2h0PmsuaGVpZ2h0LHo9KF8/azpBKS5sZWZ0LEw9KF8/azpBKS5yaWdodCxUPShQP2s6QSkudG9wLFI9KFA/azpBKS5ib3R0b207aWYodyYmKGE9ITAsIXgpKXJldHVybjtpZihqJiYoYT0hMSksaiYmIXgpe2E9ITA7cmV0dXJufWlmKHgmJmVlKGgucmVsYXRlZFRhcmdldCkmJmVZKHUuZmxvYXRpbmcsaC5yZWxhdGVkVGFyZ2V0KXx8cCYmZTYocC5ub2Rlc1JlZi5jdXJyZW50LGYpLnNvbWUoKHtjb250ZXh0OmV9KT0+ZT8ub3BlbikpcmV0dXJuO2lmKFwidG9wXCI9PT1PJiZ0Pj1rLmJvdHRvbS0xfHxcImJvdHRvbVwiPT09TyYmdDw9ay50b3ArMXx8XCJsZWZ0XCI9PT1PJiZlPj1rLnJpZ2h0LTF8fFwicmlnaHRcIj09PU8mJmU8PWsubGVmdCsxKXJldHVybiBnKCk7bGV0IE49W107c3dpdGNoKE8pe2Nhc2VcInRvcFwiOk49W1t6LGsudG9wKzFdLFt6LEEuYm90dG9tLTFdLFtMLEEuYm90dG9tLTFdLFtMLGsudG9wKzFdXTticmVhaztjYXNlXCJib3R0b21cIjpOPVtbeixBLnRvcCsxXSxbeixrLmJvdHRvbS0xXSxbTCxrLmJvdHRvbS0xXSxbTCxBLnRvcCsxXV07YnJlYWs7Y2FzZVwibGVmdFwiOk49W1tBLnJpZ2h0LTEsUl0sW0EucmlnaHQtMSxUXSxbay5sZWZ0KzEsVF0sW2subGVmdCsxLFJdXTticmVhaztjYXNlXCJyaWdodFwiOk49W1trLnJpZ2h0LTEsUl0sW2sucmlnaHQtMSxUXSxbQS5sZWZ0KzEsVF0sW0EubGVmdCsxLFJdXX1pZighZTgoW20sdl0sTikpe2lmKGEmJiFFKXJldHVybiBnKCk7aWYoIXgmJnIpe2xldCBlPWZ1bmN0aW9uKGUsbil7bGV0IHQ9cGVyZm9ybWFuY2Uubm93KCkscj10LXM7aWYobnVsbD09PWl8fG51bGw9PT1sfHwwPT09cilyZXR1cm4gaT1lLGw9bixzPXQsbnVsbDtsZXQgbz1lLWksYT1uLWwsYz1NYXRoLnNxcnQobypvK2EqYSk7cmV0dXJuIGk9ZSxsPW4scz10LGMvcn0oaC5jbGllbnRYLGguY2xpZW50WSk7aWYobnVsbCE9PWUmJmU8LjEpcmV0dXJuIGcoKX1lOChbbSx2XSxmdW5jdGlvbihbZSx0XSl7c3dpdGNoKE8pe2Nhc2VcInRvcFwiOntsZXQgcj1bW0EubGVmdCxDfHxfP0EuYm90dG9tLW46QS50b3BdLFtBLnJpZ2h0LEM/Xz9BLmJvdHRvbS1uOkEudG9wOkEuYm90dG9tLW5dXTtyZXR1cm5bW18/ZStuLzI6Qz9lKzQqbjplLTQqbix0K24rMV0sW18/ZS1uLzI6Qz9lKzQqbjplLTQqbix0K24rMV0sLi4ucl19Y2FzZVwiYm90dG9tXCI6e2xldCByPVtbQS5sZWZ0LEN8fF8/QS50b3ArbjpBLmJvdHRvbV0sW0EucmlnaHQsQz9fP0EudG9wK246QS5ib3R0b206QS50b3Arbl1dO3JldHVybltbXz9lK24vMjpDP2UrNCpuOmUtNCpuLHQtbl0sW18/ZS1uLzI6Qz9lKzQqbjplLTQqbix0LW5dLC4uLnJdfWNhc2VcImxlZnRcIjpyZXR1cm5bW1N8fFA/QS5yaWdodC1uOkEubGVmdCxBLnRvcF0sW1M/UD9BLnJpZ2h0LW46QS5sZWZ0OkEucmlnaHQtbixBLmJvdHRvbV0sW2UrbisxLFA/dCtuLzI6Uz90KzQqbjp0LTQqbl0sW2UrbisxLFA/dC1uLzI6Uz90KzQqbjp0LTQqbl1dO2Nhc2VcInJpZ2h0XCI6e2xldCByPVtbU3x8UD9BLmxlZnQrbjpBLnJpZ2h0LEEudG9wXSxbUz9QP0EubGVmdCtuOkEucmlnaHQ6QS5sZWZ0K24sQS5ib3R0b21dXTtyZXR1cm5bW2UtbixQP3Qrbi8yOlM/dCs0Km46dC00Km5dLFtlLW4sUD90LW4vMjpTP3QrNCpuOnQtNCpuXSwuLi5yXX1kZWZhdWx0OnJldHVybltdfX0oW2UsdF0pKT8hYSYmciYmby5zdGFydCg0MCxnKTpnKCl9fTtyZXR1cm4gYy5fX29wdGlvbnM9e2Jsb2NrUG9pbnRlckV2ZW50czp0fSxjfWxldCBuZT1lUiYmZUw7ZnVuY3Rpb24gbm4oZSxuPXt9KXtsZXR7b3Blbjp0LG9uT3BlbkNoYW5nZTpyLGV2ZW50czpvLGRhdGFSZWY6YSxlbGVtZW50czppfT1lLHtlbmFibGVkOmw9ITAsdmlzaWJsZU9ubHk6cz0hMH09bixjPUMudXNlUmVmKCExKSx1PWVrKCksZD1DLnVzZVJlZighMCk7Qy51c2VFZmZlY3QoKCk9PntpZighbClyZXR1cm47bGV0IGU9UShpLmRvbVJlZmVyZW5jZSk7ZnVuY3Rpb24gbigpeyF0JiZlbihpLmRvbVJlZmVyZW5jZSkmJmkuZG9tUmVmZXJlbmNlPT09ZVooZVEoaS5kb21SZWZlcmVuY2UpKSYmKGMuY3VycmVudD0hMCl9ZnVuY3Rpb24gcigpe2QuY3VycmVudD0hMH1mdW5jdGlvbiBvKCl7ZC5jdXJyZW50PSExfXJldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsbiksbmUmJihlLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsciwhMCksZS5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixvLCEwKSksKCk9PntlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJibHVyXCIsbiksbmUmJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsciwhMCksZS5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixvLCEwKSl9fSxbaS5kb21SZWZlcmVuY2UsdCxsXSksQy51c2VFZmZlY3QoKCk9PntpZihsKXJldHVybiBvLm9uKFwib3BlbmNoYW5nZVwiLGUpLCgpPT57by5vZmYoXCJvcGVuY2hhbmdlXCIsZSl9O2Z1bmN0aW9uIGUoe3JlYXNvbjplfSl7KFwicmVmZXJlbmNlLXByZXNzXCI9PT1lfHxcImVzY2FwZS1rZXlcIj09PWUpJiYoYy5jdXJyZW50PSEwKX19LFtvLGxdKTtsZXQgZj1DLnVzZU1lbW8oKCk9Pih7b25Nb3VzZUxlYXZlKCl7Yy5jdXJyZW50PSExfSxvbkZvY3VzKGUpe2lmKGMuY3VycmVudClyZXR1cm47bGV0IG49ZVgoZS5uYXRpdmVFdmVudCk7aWYocyYmZWUobikpe2lmKG5lJiYhZS5yZWxhdGVkVGFyZ2V0KXtpZighZC5jdXJyZW50JiYhZUcobikpcmV0dXJufWVsc2UgaWYoIWZ1bmN0aW9uKGUpe2lmKCFlfHxlTilyZXR1cm4hMDt0cnl7cmV0dXJuIGUubWF0Y2hlcyhcIjpmb2N1cy12aXNpYmxlXCIpfWNhdGNoKGUpe3JldHVybiEwfX0obikpcmV0dXJufXIoITAsZS5uYXRpdmVFdmVudCxcImZvY3VzXCIpfSxvbkJsdXIoZSl7Yy5jdXJyZW50PSExO2xldCBuPWUucmVsYXRlZFRhcmdldCx0PWUubmF0aXZlRXZlbnQsbz1lZShuKSYmbi5oYXNBdHRyaWJ1dGUoZTEoXCJmb2N1cy1ndWFyZFwiKSkmJlwib3V0c2lkZVwiPT09bi5nZXRBdHRyaWJ1dGUoXCJkYXRhLXR5cGVcIik7dS5zdGFydCgwLCgpPT57bGV0IGU9ZVooaS5kb21SZWZlcmVuY2U/aS5kb21SZWZlcmVuY2Uub3duZXJEb2N1bWVudDpkb2N1bWVudCk7KG58fGUhPT1pLmRvbVJlZmVyZW5jZSkmJihlWShhLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5yZWZzLmZsb2F0aW5nLmN1cnJlbnQsZSl8fGVZKGkuZG9tUmVmZXJlbmNlLGUpfHxvfHxyKCExLHQsXCJmb2N1c1wiKSl9KX19KSxbYSxpLmRvbVJlZmVyZW5jZSxyLHMsdV0pO3JldHVybiBDLnVzZU1lbW8oKCk9Pmw/e3JlZmVyZW5jZTpmfTp7fSxbbCxmXSl9bGV0IG50PXtzdHlsZTp7dHJhbnNpdGlvbjpcIm5vbmVcIn19LG5yPXt9LG5vPXtmYWxsYmFja0F4aXNTaWRlOlwibm9uZVwifSxuYT17ZmFsbGJhY2tBeGlzU2lkZTpcImVuZFwifSxuaT1uZXcgY2xhc3N7Y2FsbGJhY2tzPVtdO2NhbGxiYWNrc0NvdW50PTA7bmV4dElkPTE7c3RhcnRJZD0xO2lzU2NoZWR1bGVkPSExO3RpY2s9ZT0+e3RoaXMuaXNTY2hlZHVsZWQ9ITE7bGV0IG49dGhpcy5jYWxsYmFja3MsdD10aGlzLmNhbGxiYWNrc0NvdW50O2lmKHRoaXMuY2FsbGJhY2tzPVtdLHRoaXMuY2FsbGJhY2tzQ291bnQ9MCx0aGlzLnN0YXJ0SWQ9dGhpcy5uZXh0SWQsdD4wKWZvcihsZXQgdD0wO3Q8bi5sZW5ndGg7dCs9MSluW3RdPy4oZSl9O3JlcXVlc3QoZSl7bGV0IG49dGhpcy5uZXh0SWQ7cmV0dXJuIHRoaXMubmV4dElkKz0xLHRoaXMuY2FsbGJhY2tzLnB1c2goZSksdGhpcy5jYWxsYmFja3NDb3VudCs9MSx0aGlzLmlzU2NoZWR1bGVkfHwocmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMudGljayksdGhpcy5pc1NjaGVkdWxlZD0hMCksbn1jYW5jZWwoZSl7bGV0IG49ZS10aGlzLnN0YXJ0SWQ7bjwwfHxuPj10aGlzLmNhbGxiYWNrcy5sZW5ndGh8fCh0aGlzLmNhbGxiYWNrc1tuXT1udWxsLHRoaXMuY2FsbGJhY2tzQ291bnQtPTEpfX07Y2xhc3Mgbmx7c3RhdGljIGNyZWF0ZSgpe3JldHVybiBuZXcgbmx9c3RhdGljIHJlcXVlc3QoZSl7cmV0dXJuIG5pLnJlcXVlc3QoZSl9c3RhdGljIGNhbmNlbChlKXtyZXR1cm4gbmkuY2FuY2VsKGUpfWN1cnJlbnRJZD1udWxsO3JlcXVlc3QoZSl7dGhpcy5jYW5jZWwoKSx0aGlzLmN1cnJlbnRJZD1uaS5yZXF1ZXN0KCgpPT57dGhpcy5jdXJyZW50SWQ9bnVsbCxlKCl9KX1jYW5jZWw9KCk9PntudWxsIT09dGhpcy5jdXJyZW50SWQmJihuaS5jYW5jZWwodGhpcy5jdXJyZW50SWQpLHRoaXMuY3VycmVudElkPW51bGwpfTtkaXNwb3NlRWZmZWN0PSgpPT50aGlzLmNhbmNlbH1mdW5jdGlvbiBucygpe2xldCBlPVAobmwuY3JlYXRlKS5jdXJyZW50O3JldHVybiBldyhlLmRpc3Bvc2VFZmZlY3QpLGV9bGV0IG5jPXtwb2ludGVyZG93bjpcIm9uUG9pbnRlckRvd25cIixtb3VzZWRvd246XCJvbk1vdXNlRG93blwiLGNsaWNrOlwib25DbGlja1wifSxudT17cG9pbnRlcmRvd246XCJvblBvaW50ZXJEb3duQ2FwdHVyZVwiLG1vdXNlZG93bjpcIm9uTW91c2VEb3duQ2FwdHVyZVwiLGNsaWNrOlwib25DbGlja0NhcHR1cmVcIn0sbmQ9ZT0+KHtlc2NhcGVLZXk6XCJib29sZWFuXCI9PXR5cGVvZiBlP2U6ZT8uZXNjYXBlS2V5Pz8hMSxvdXRzaWRlUHJlc3M6XCJib29sZWFuXCI9PXR5cGVvZiBlP2U6ZT8ub3V0c2lkZVByZXNzPz8hMH0pO2Z1bmN0aW9uIG5mKGUsbj17fSl7bGV0e29wZW46dCxvbk9wZW5DaGFuZ2U6cixlbGVtZW50czpvLGRhdGFSZWY6YX09ZSx7ZW5hYmxlZDppPSEwLGVzY2FwZUtleTpsPSEwLG91dHNpZGVQcmVzczpzPSEwLG91dHNpZGVQcmVzc0V2ZW50OmM9XCJwb2ludGVyZG93blwiLHJlZmVyZW5jZVByZXNzOnU9ITEscmVmZXJlbmNlUHJlc3NFdmVudDpkPVwicG9pbnRlcmRvd25cIixhbmNlc3RvclNjcm9sbDpmPSExLGJ1YmJsZXM6cCxjYXB0dXJlOmh9PW4sZz1XKCksbT1UKFwiZnVuY3Rpb25cIj09dHlwZW9mIHM/czooKT0+ITEpLHY9XCJmdW5jdGlvblwiPT10eXBlb2Ygcz9tOnMsYj1DLnVzZVJlZighMSkse2VzY2FwZUtleTp5LG91dHNpZGVQcmVzczp4fT1uZChwKSx7ZXNjYXBlS2V5Oncsb3V0c2lkZVByZXNzOmp9PW5kKGgpLGs9Qy51c2VSZWYoITEpLEE9ZWsoKSxPPVQoZT0+e2lmKCF0fHwhaXx8IWx8fFwiRXNjYXBlXCIhPT1lLmtleXx8ay5jdXJyZW50KXJldHVybjtsZXQgbj1hLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5ub2RlSWQsbz1nP2U2KGcubm9kZXNSZWYuY3VycmVudCxuKTpbXTtpZigheSYmKGUuc3RvcFByb3BhZ2F0aW9uKCksby5sZW5ndGg+MCkpe2xldCBlPSEwO2lmKG8uZm9yRWFjaChuPT57bi5jb250ZXh0Py5vcGVuJiYhbi5jb250ZXh0LmRhdGFSZWYuY3VycmVudC5fX2VzY2FwZUtleUJ1YmJsZXMmJihlPSExKX0pLCFlKXJldHVybn1yKCExLFwibmF0aXZlRXZlbnRcImluIGU/ZS5uYXRpdmVFdmVudDplLFwiZXNjYXBlLWtleVwiKX0pLFM9VChlPT57bGV0IG49KCk9PntPKGUpLGVYKGUpPy5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLG4pfTtlWChlKT8uYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixuKX0pLEU9VChlPT57bGV0IG49YS5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZTthLmN1cnJlbnQuaW5zaWRlUmVhY3RUcmVlPSExO2xldCB0PWIuY3VycmVudDtpZihiLmN1cnJlbnQ9ITEsXCJjbGlja1wiPT09YyYmdHx8bnx8XCJmdW5jdGlvblwiPT10eXBlb2YgdiYmIXYoZSkpcmV0dXJuO2xldCBpPWVYKGUpLGw9YFske2UxKFwiaW5lcnRcIil9XWAscz1lUShvLmZsb2F0aW5nKS5xdWVyeVNlbGVjdG9yQWxsKGwpLHU9ZWUoaSk/aTpudWxsO2Zvcig7dSYmIWVoKHUpOyl7bGV0IGU9ZXYodSk7aWYoZWgoZSl8fCFlZShlKSlicmVhazt1PWV9aWYocy5sZW5ndGgmJmVlKGkpJiYhaS5tYXRjaGVzKFwiaHRtbCxib2R5XCIpJiYhZVkoaSxvLmZsb2F0aW5nKSYmQXJyYXkuZnJvbShzKS5ldmVyeShlPT4hZVkodSxlKSkpcmV0dXJuO2lmKGVuKGkpKXtsZXQgbj1laChpKSx0PWVnKGkpLHI9L2F1dG98c2Nyb2xsLyxvPW58fHIudGVzdCh0Lm92ZXJmbG93WCksYT1ufHxyLnRlc3QodC5vdmVyZmxvd1kpLGw9byYmaS5jbGllbnRXaWR0aD4wJiZpLnNjcm9sbFdpZHRoPmkuY2xpZW50V2lkdGgscz1hJiZpLmNsaWVudEhlaWdodD4wJiZpLnNjcm9sbEhlaWdodD5pLmNsaWVudEhlaWdodCxjPVwicnRsXCI9PT10LmRpcmVjdGlvbix1PXMmJihjP2Uub2Zmc2V0WDw9aS5vZmZzZXRXaWR0aC1pLmNsaWVudFdpZHRoOmUub2Zmc2V0WD5pLmNsaWVudFdpZHRoKSxkPWwmJmUub2Zmc2V0WT5pLmNsaWVudEhlaWdodDtpZih1fHxkKXJldHVybn1sZXQgZD1hLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5ub2RlSWQsZj1nJiZlNihnLm5vZGVzUmVmLmN1cnJlbnQsZCkuc29tZShuPT5lSyhlLG4uY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcpKTtpZihlSyhlLG8uZmxvYXRpbmcpfHxlSyhlLG8uZG9tUmVmZXJlbmNlKXx8ZilyZXR1cm47bGV0IHA9Zz9lNihnLm5vZGVzUmVmLmN1cnJlbnQsZCk6W107aWYocC5sZW5ndGg+MCl7bGV0IGU9ITA7aWYocC5mb3JFYWNoKG49PntuLmNvbnRleHQ/Lm9wZW4mJiFuLmNvbnRleHQuZGF0YVJlZi5jdXJyZW50Ll9fb3V0c2lkZVByZXNzQnViYmxlcyYmKGU9ITEpfSksIWUpcmV0dXJufXIoITEsZSxcIm91dHNpZGUtcHJlc3NcIil9KSxfPVQoZT0+e2xldCBuPSgpPT57RShlKSxlWChlKT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihjLG4pfTtlWChlKT8uYWRkRXZlbnRMaXN0ZW5lcihjLG4pfSk7Qy51c2VFZmZlY3QoKCk9PntpZighdHx8IWkpcmV0dXJuO2EuY3VycmVudC5fX2VzY2FwZUtleUJ1YmJsZXM9eSxhLmN1cnJlbnQuX19vdXRzaWRlUHJlc3NCdWJibGVzPXg7bGV0IGU9bmV3IGVqO2Z1bmN0aW9uIG4oZSl7cighMSxlLFwiYW5jZXN0b3Itc2Nyb2xsXCIpfWZ1bmN0aW9uIHMoKXtlLmNsZWFyKCksay5jdXJyZW50PSEwfWZ1bmN0aW9uIHUoKXtlLnN0YXJ0KDUqISFlZigpLCgpPT57ay5jdXJyZW50PSExfSl9bGV0IGQ9ZVEoby5mbG9hdGluZyk7bCYmKGQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIix3P1M6Tyx3KSxkLmFkZEV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbnN0YXJ0XCIscyksZC5hZGRFdmVudExpc3RlbmVyKFwiY29tcG9zaXRpb25lbmRcIix1KSksdiYmZC5hZGRFdmVudExpc3RlbmVyKGMsaj9fOkUsaik7bGV0IHA9W107cmV0dXJuIGYmJihlZShvLmRvbVJlZmVyZW5jZSkmJihwPWViKG8uZG9tUmVmZXJlbmNlKSksZWUoby5mbG9hdGluZykmJihwPXAuY29uY2F0KGViKG8uZmxvYXRpbmcpKSksIWVlKG8ucmVmZXJlbmNlKSYmby5yZWZlcmVuY2UmJm8ucmVmZXJlbmNlLmNvbnRleHRFbGVtZW50JiYocD1wLmNvbmNhdChlYihvLnJlZmVyZW5jZS5jb250ZXh0RWxlbWVudCkpKSksKHA9cC5maWx0ZXIoZT0+ZSE9PWQuZGVmYXVsdFZpZXc/LnZpc3VhbFZpZXdwb3J0KSkuZm9yRWFjaChlPT57ZS5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsbix7cGFzc2l2ZTohMH0pfSksKCk9PntsJiYoZC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLHc/UzpPLHcpLGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNvbXBvc2l0aW9uc3RhcnRcIixzKSxkLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjb21wb3NpdGlvbmVuZFwiLHUpKSx2JiZkLnJlbW92ZUV2ZW50TGlzdGVuZXIoYyxqP186RSxqKSxwLmZvckVhY2goZT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLG4pfSksZS5jbGVhcigpfX0sW2EsbyxsLHYsYyx0LHIsZixpLHkseCxPLHcsUyxFLGosX10pLEMudXNlRWZmZWN0KCgpPT57YS5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZT0hMX0sW2EsdixjXSk7bGV0IFA9Qy51c2VNZW1vKCgpPT4oe29uS2V5RG93bjpPLC4uLnUmJntbbmNbZF1dOmU9PntyKCExLGUubmF0aXZlRXZlbnQsXCJyZWZlcmVuY2UtcHJlc3NcIil9LC4uLlwiY2xpY2tcIiE9PWQmJntvbkNsaWNrKGUpe3IoITEsZS5uYXRpdmVFdmVudCxcInJlZmVyZW5jZS1wcmVzc1wiKX19fX0pLFtPLHIsdSxkXSksej1DLnVzZU1lbW8oKCk9Pih7b25LZXlEb3duOk8sb25Nb3VzZURvd24oKXtiLmN1cnJlbnQ9ITB9LG9uTW91c2VVcCgpe2IuY3VycmVudD0hMH0sW251W2NdXTooKT0+e2EuY3VycmVudC5pbnNpZGVSZWFjdFRyZWU9ITB9LG9uQmx1ckNhcHR1cmUoKXtnfHwoYS5jdXJyZW50Lmluc2lkZVJlYWN0VHJlZT0hMCxBLnN0YXJ0KDAsKCk9PnthLmN1cnJlbnQuaW5zaWRlUmVhY3RUcmVlPSExfSkpfX0pLFtPLGMsYSxnLEFdKTtyZXR1cm4gQy51c2VNZW1vKCgpPT5pP3tyZWZlcmVuY2U6UCxmbG9hdGluZzp6fTp7fSxbaSxQLHpdKX1sZXQgbnA9bmV3IE1hcChbW1wic2VsZWN0XCIsXCJsaXN0Ym94XCJdLFtcImNvbWJvYm94XCIsXCJsaXN0Ym94XCJdLFtcImxhYmVsXCIsITFdXSksbmg9W1widG9wXCIsXCJyaWdodFwiLFwiYm90dG9tXCIsXCJsZWZ0XCJdLG5nPU1hdGgubWluLG5tPU1hdGgubWF4LG52PU1hdGgucm91bmQsbmI9TWF0aC5mbG9vcixueT1lPT4oe3g6ZSx5OmV9KSxueD17bGVmdDpcInJpZ2h0XCIscmlnaHQ6XCJsZWZ0XCIsYm90dG9tOlwidG9wXCIsdG9wOlwiYm90dG9tXCJ9LG53PXtzdGFydDpcImVuZFwiLGVuZDpcInN0YXJ0XCJ9O2Z1bmN0aW9uIG5qKGUsbil7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZT9lKG4pOmV9ZnVuY3Rpb24gbmsoZSl7cmV0dXJuIGUuc3BsaXQoXCItXCIpWzBdfWZ1bmN0aW9uIG5BKGUpe3JldHVybiBlLnNwbGl0KFwiLVwiKVsxXX1mdW5jdGlvbiBuTyhlKXtyZXR1cm5cInhcIj09PWU/XCJ5XCI6XCJ4XCJ9ZnVuY3Rpb24gbkMoZSl7cmV0dXJuXCJ5XCI9PT1lP1wiaGVpZ2h0XCI6XCJ3aWR0aFwifWxldCBuUz1uZXcgU2V0KFtcInRvcFwiLFwiYm90dG9tXCJdKTtmdW5jdGlvbiBuRShlKXtyZXR1cm4gblMuaGFzKG5rKGUpKT9cInlcIjpcInhcIn1mdW5jdGlvbiBuXyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9zdGFydHxlbmQvZyxlPT5ud1tlXSl9bGV0IG5QPVtcImxlZnRcIixcInJpZ2h0XCJdLG56PVtcInJpZ2h0XCIsXCJsZWZ0XCJdLG5MPVtcInRvcFwiLFwiYm90dG9tXCJdLG5UPVtcImJvdHRvbVwiLFwidG9wXCJdO2Z1bmN0aW9uIG5SKGUpe3JldHVybiBlLnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLGU9Pm54W2VdKX1mdW5jdGlvbiBuTihlKXtyZXR1cm5cIm51bWJlclwiIT10eXBlb2YgZT97dG9wOjAscmlnaHQ6MCxib3R0b206MCxsZWZ0OjAsLi4uZX06e3RvcDplLHJpZ2h0OmUsYm90dG9tOmUsbGVmdDplfX1mdW5jdGlvbiBuRChlKXtsZXR7eDpuLHk6dCx3aWR0aDpyLGhlaWdodDpvfT1lO3JldHVybnt3aWR0aDpyLGhlaWdodDpvLHRvcDp0LGxlZnQ6bixyaWdodDpuK3IsYm90dG9tOnQrbyx4Om4seTp0fX1mdW5jdGlvbiBuQihlLG4sdCl7cmV0dXJuIE1hdGguZmxvb3IoZS9uKSE9PXR9ZnVuY3Rpb24gbk0oZSxuKXtyZXR1cm4gbjwwfHxuPj1lLmN1cnJlbnQubGVuZ3RofWZ1bmN0aW9uIG5JKGUsbil7cmV0dXJuIG5GKGUse2Rpc2FibGVkSW5kaWNlczpufSl9ZnVuY3Rpb24gbkgoZSxuKXtyZXR1cm4gbkYoZSx7ZGVjcmVtZW50OiEwLHN0YXJ0aW5nSW5kZXg6ZS5jdXJyZW50Lmxlbmd0aCxkaXNhYmxlZEluZGljZXM6bn0pfWZ1bmN0aW9uIG5GKGUse3N0YXJ0aW5nSW5kZXg6bj0tMSxkZWNyZW1lbnQ6dD0hMSxkaXNhYmxlZEluZGljZXM6cixhbW91bnQ6bz0xfT17fSl7bGV0IGE9bjtkbyBhKz10Py1vOm87d2hpbGUoYT49MCYmYTw9ZS5jdXJyZW50Lmxlbmd0aC0xJiZuVShlLGEscikpO3JldHVybiBhfWZ1bmN0aW9uIG5VKGUsbix0KXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0KXJldHVybiB0KG4pO2lmKHQpcmV0dXJuIHQuaW5jbHVkZXMobik7bGV0IHI9ZS5jdXJyZW50W25dO3JldHVybiBudWxsPT1yfHxyLmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpfHxcInRydWVcIj09PXIuZ2V0QXR0cmlidXRlKFwiYXJpYS1kaXNhYmxlZFwiKX1sZXQgblY9MDtmdW5jdGlvbiBucShlLG49e30pe2xldHtwcmV2ZW50U2Nyb2xsOnQ9ITEsY2FuY2VsUHJldmlvdXM6cj0hMCxzeW5jOm89ITF9PW47ciYmY2FuY2VsQW5pbWF0aW9uRnJhbWUoblYpO2xldCBhPSgpPT5lPy5mb2N1cyh7cHJldmVudFNjcm9sbDp0fSk7bz9hKCk6blY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGEpfWZ1bmN0aW9uIG5XKGUsbix0KXtzd2l0Y2goZSl7Y2FzZVwidmVydGljYWxcIjpyZXR1cm4gbjtjYXNlXCJob3Jpem9udGFsXCI6cmV0dXJuIHQ7ZGVmYXVsdDpyZXR1cm4gbnx8dH19ZnVuY3Rpb24gbiQoZSxuKXtyZXR1cm4gblcobixlPT09ZVd8fGU9PT1lJCxlPT09ZVZ8fGU9PT1lcSl9ZnVuY3Rpb24gblooZSxuLHQpe3JldHVybiBuVyhuLGU9PT1lJCx0P2U9PT1lVjplPT09ZXEpfHxcIkVudGVyXCI9PT1lfHxcIiBcIj09PWV8fFwiXCI9PT1lfWZ1bmN0aW9uIG5ZKGUsbix0KXtyZXR1cm4gblcobix0P2U9PT1lVjplPT09ZXEsZT09PWUkKX1mdW5jdGlvbiBuWChlLG4sdCxyKXtyZXR1cm5cImJvdGhcIj09PW58fFwiaG9yaXpvbnRhbFwiPT09biYmciYmcj4xP1wiRXNjYXBlXCI9PT1lOm5XKG4sdD9lPT09ZXE6ZT09PWVWLGU9PT1lVyl9ZnVuY3Rpb24gbksoZT1bXSl7bGV0IG49ZS5tYXAoZT0+ZT8ucmVmZXJlbmNlKSx0PWUubWFwKGU9PmU/LmZsb2F0aW5nKSxyPWUubWFwKGU9PmU/Lml0ZW0pLG89Qy51c2VDYWxsYmFjayhuPT5uUShuLGUsXCJyZWZlcmVuY2VcIiksbiksYT1DLnVzZUNhbGxiYWNrKG49Pm5RKG4sZSxcImZsb2F0aW5nXCIpLHQpLGk9Qy51c2VDYWxsYmFjayhuPT5uUShuLGUsXCJpdGVtXCIpLHIpO3JldHVybiBDLnVzZU1lbW8oKCk9Pih7Z2V0UmVmZXJlbmNlUHJvcHM6byxnZXRGbG9hdGluZ1Byb3BzOmEsZ2V0SXRlbVByb3BzOml9KSxbbyxhLGldKX1mdW5jdGlvbiBuUShlLG4sdCl7bGV0IHI9bmV3IE1hcCxvPVwiaXRlbVwiPT09dCxhPXt9O2ZvcihsZXQgbiBpblwiZmxvYXRpbmdcIj09PXQmJihhLnRhYkluZGV4PS0xLGFbZUhdPVwiXCIpLGUpbyYmZSYmKG49PT1lRnx8bj09PWVVKXx8KGFbbl09ZVtuXSk7Zm9yKGxldCBpPTA7aTxuLmxlbmd0aDtpKz0xKXtsZXQgbCxzPW5baV0/Llt0XTsobD1cImZ1bmN0aW9uXCI9PXR5cGVvZiBzP2U/cyhlKTpudWxsOnMpJiZuRyhhLGwsbyxyKX1yZXR1cm4gbkcoYSxlLG8sciksYX1mdW5jdGlvbiBuRyhlLG4sdCxyKXtmb3IobGV0IG8gaW4gbil7bGV0IGE9bltvXTt0JiYobz09PWVGfHxvPT09ZVUpfHwoby5zdGFydHNXaXRoKFwib25cIik/KHIuaGFzKG8pfHxyLnNldChvLFtdKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBhJiYoci5nZXQobyk/LnB1c2goYSksZVtvXT0oLi4uZSk9PnIuZ2V0KG8pPy5tYXAobj0+biguLi5lKSkuZmluZChlPT52b2lkIDAhPT1lKSkpOmVbb109YSl9fWxldCBuSj1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBuMChlKXtsZXQgbj1DLnVzZUNvbnRleHQobkopO2lmKHZvaWQgMD09PW4mJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogTWVudVJvb3RDb250ZXh0IGlzIG1pc3NpbmcuIE1lbnUgcGFydHMgbXVzdCBiZSBwbGFjZWQgd2l0aGluIDxNZW51LlJvb3Q+LlwiKTtyZXR1cm4gbn1sZXQgbjE9Qy5jcmVhdGVDb250ZXh0KG51bGwpO2Z1bmN0aW9uIG4yKGUsbj0hMSx0PSExKXtsZXRbcixvXT1DLnVzZVN0YXRlKGUmJm4/XCJpZGxlXCI6dm9pZCAwKSxbYSxpXT1DLnVzZVN0YXRlKGUpO3JldHVybiBlJiYhYSYmKGkoITApLG8oXCJzdGFydGluZ1wiKSksZXx8IWF8fFwiZW5kaW5nXCI9PT1yfHx0fHxvKFwiZW5kaW5nXCIpLGV8fGF8fFwiZW5kaW5nXCIhPT1yfHxvKHZvaWQgMCksRigoKT0+e2lmKCFlJiZhJiZcImVuZGluZ1wiIT09ciYmdCl7bGV0IGU9bmwucmVxdWVzdCgoKT0+e28oXCJlbmRpbmdcIil9KTtyZXR1cm4oKT0+e25sLmNhbmNlbChlKX19fSxbZSxhLHIsdF0pLEYoKCk9PntpZighZXx8bilyZXR1cm47bGV0IHQ9bmwucmVxdWVzdCgoKT0+e0UuZmx1c2hTeW5jKCgpPT57byh2b2lkIDApfSl9KTtyZXR1cm4oKT0+e25sLmNhbmNlbCh0KX19LFtuLGVdKSxGKCgpPT57aWYoIWV8fCFuKXJldHVybjtlJiZhJiZcImlkbGVcIiE9PXImJm8oXCJzdGFydGluZ1wiKTtsZXQgdD1ubC5yZXF1ZXN0KCgpPT57byhcImlkbGVcIil9KTtyZXR1cm4oKT0+e25sLmNhbmNlbCh0KX19LFtuLGUsYSxvLHJdKSxDLnVzZU1lbW8oKCk9Pih7bW91bnRlZDphLHNldE1vdW50ZWQ6aSx0cmFuc2l0aW9uU3RhdHVzOnJ9KSxbYSxyXSl9ZnVuY3Rpb24gbjQoe2NvbnRyb2xsZWQ6ZSxkZWZhdWx0Om4sbmFtZTp0LHN0YXRlOnI9XCJ2YWx1ZVwifSl7bGV0e2N1cnJlbnQ6b309Qy51c2VSZWYodm9pZCAwIT09ZSksW2EsaV09Qy51c2VTdGF0ZShuKSxsPUMudXNlQ2FsbGJhY2soZT0+e298fGkoZSl9LFtdKTtyZXR1cm5bbz9lOmEsbF19ZnVuY3Rpb24gbjUoZSl7bGV0e2VuYWJsZWQ6bj0hMCxvcGVuOnQscmVmOnIsb25Db21wbGV0ZTpvfT1lLGE9ZUEodCksaT1UKG8pLGw9ZnVuY3Rpb24oZSxuPSExKXtsZXQgdD1ucygpLHI9ZWsoKTtyZXR1cm4gVCgobyxhPW51bGwpPT57dC5jYW5jZWwoKSxyLmNsZWFyKCk7bGV0IGk9ZS5jdXJyZW50O2kmJihcImZ1bmN0aW9uXCIhPXR5cGVvZiBpLmdldEFuaW1hdGlvbnN8fGdsb2JhbFRoaXMuQkFTRV9VSV9BTklNQVRJT05TX0RJU0FCTEVEP28oKTp0LnJlcXVlc3QoKCk9PntmdW5jdGlvbiBlKCl7aSYmUHJvbWlzZS5hbGxTZXR0bGVkKGkuZ2V0QW5pbWF0aW9ucygpLm1hcChlPT5lLmZpbmlzaGVkKSkudGhlbigoKT0+e251bGwhPWEmJmEuYWJvcnRlZHx8RS5mbHVzaFN5bmMobyl9KX1uP3Iuc3RhcnQoMCxlKTplKCl9KSl9KX0ocix0KTtDLnVzZUVmZmVjdCgoKT0+e24mJmwoKCk9Pnt0PT09YS5jdXJyZW50JiZpKCl9KX0sW24sdCxpLGwsYV0pfWxldCBuMz1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBuNihlPSEwKXtsZXQgbj1DLnVzZUNvbnRleHQobjMpO2lmKHZvaWQgMD09PW4mJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogRGlyZWN0aW9uQ29udGV4dCBpcyBtaXNzaW5nLlwiKTtyZXR1cm4gbj8uZGlyZWN0aW9uPz9cImx0clwifWxldCBuOT0oKT0+e30sbjg9e30sbjc9e30sdGU9XCJcIjtjbGFzcyB0bntsb2NrQ291bnQ9MDtyZXN0b3JlPW51bGw7dGltZW91dExvY2s9ZWouY3JlYXRlKCk7dGltZW91dFVubG9jaz1lai5jcmVhdGUoKTthY3F1aXJlKGUpe3JldHVybiB0aGlzLmxvY2tDb3VudCs9MSwxPT09dGhpcy5sb2NrQ291bnQmJm51bGw9PT10aGlzLnJlc3RvcmUmJnRoaXMudGltZW91dExvY2suc3RhcnQoMCwoKT0+dGhpcy5sb2NrKGUpKSx0aGlzLnJlbGVhc2V9cmVsZWFzZT0oKT0+e3RoaXMubG9ja0NvdW50LT0xLDA9PT10aGlzLmxvY2tDb3VudCYmdGhpcy5yZXN0b3JlJiZ0aGlzLnRpbWVvdXRVbmxvY2suc3RhcnQoMCx0aGlzLnVubG9jayl9O3VubG9jaz0oKT0+ezA9PT10aGlzLmxvY2tDb3VudCYmdGhpcy5yZXN0b3JlJiYodGhpcy5yZXN0b3JlPy4oKSx0aGlzLnJlc3RvcmU9bnVsbCl9O2xvY2soZSl7aWYoMD09PXRoaXMubG9ja0NvdW50fHxudWxsIT09dGhpcy5yZXN0b3JlKXJldHVybjtsZXQgbj1lUShlKS5kb2N1bWVudEVsZW1lbnQsdD1RKG4pLmdldENvbXB1dGVkU3R5bGUobikub3ZlcmZsb3dZO2lmKFwiaGlkZGVuXCI9PT10fHxcImNsaXBcIj09PXQpe3RoaXMucmVzdG9yZT1uOTtyZXR1cm59bGV0IHI9ZXp8fCFmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgZG9jdW1lbnQpcmV0dXJuITE7bGV0IG49ZVEoZSk7cmV0dXJuIFEobikuaW5uZXJXaWR0aC1uLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aD4wfShlKTt0aGlzLnJlc3RvcmU9cj9mdW5jdGlvbihlKXtsZXQgbj1lUShlKS5kb2N1bWVudEVsZW1lbnQsdD1uLnN0eWxlLm92ZXJmbG93O3JldHVybiBuLnN0eWxlLm92ZXJmbG93PVwiaGlkZGVuXCIsKCk9PntuLnN0eWxlLm92ZXJmbG93PXR9fShlKTpmdW5jdGlvbihlKXtsZXQgbj1lUShlKSx0PW4uZG9jdW1lbnRFbGVtZW50LHI9bi5ib2R5LG89USh0KSxhPTAsaT0wLGw9bmwuY3JlYXRlKCk7aWYoZVAmJihvLnZpc3VhbFZpZXdwb3J0Py5zY2FsZT8/MSkhPT0xKXJldHVybigpPT57fTtmdW5jdGlvbiBzKCl7bGV0IGU9by5nZXRDb21wdXRlZFN0eWxlKHQpLG49by5nZXRDb21wdXRlZFN0eWxlKHIpO2E9dC5zY3JvbGxUb3AsaT10LnNjcm9sbExlZnQsbjg9e3Njcm9sbGJhckd1dHRlcjp0LnN0eWxlLnNjcm9sbGJhckd1dHRlcixvdmVyZmxvd1k6dC5zdHlsZS5vdmVyZmxvd1ksb3ZlcmZsb3dYOnQuc3R5bGUub3ZlcmZsb3dYfSx0ZT10LnN0eWxlLnNjcm9sbEJlaGF2aW9yLG43PXtwb3NpdGlvbjpyLnN0eWxlLnBvc2l0aW9uLGhlaWdodDpyLnN0eWxlLmhlaWdodCx3aWR0aDpyLnN0eWxlLndpZHRoLGJveFNpemluZzpyLnN0eWxlLmJveFNpemluZyxvdmVyZmxvd1k6ci5zdHlsZS5vdmVyZmxvd1ksb3ZlcmZsb3dYOnIuc3R5bGUub3ZlcmZsb3dYLHNjcm9sbEJlaGF2aW9yOnIuc3R5bGUuc2Nyb2xsQmVoYXZpb3J9O2xldCBsPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBDU1MmJkNTUy5zdXBwb3J0cz8uKFwic2Nyb2xsYmFyLWd1dHRlclwiLFwic3RhYmxlXCIpLHM9dC5zY3JvbGxIZWlnaHQ+dC5jbGllbnRIZWlnaHQsYz10LnNjcm9sbFdpZHRoPnQuY2xpZW50V2lkdGgsdT1cInNjcm9sbFwiPT09ZS5vdmVyZmxvd1l8fFwic2Nyb2xsXCI9PT1uLm92ZXJmbG93WSxkPVwic2Nyb2xsXCI9PT1lLm92ZXJmbG93WHx8XCJzY3JvbGxcIj09PW4ub3ZlcmZsb3dYLGY9TWF0aC5tYXgoMCxvLmlubmVyV2lkdGgtdC5jbGllbnRXaWR0aCkscD1NYXRoLm1heCgwLG8uaW5uZXJIZWlnaHQtdC5jbGllbnRIZWlnaHQpLGg9cGFyc2VGbG9hdChuLm1hcmdpblRvcCkrcGFyc2VGbG9hdChuLm1hcmdpbkJvdHRvbSksZz1wYXJzZUZsb2F0KG4ubWFyZ2luTGVmdCkrcGFyc2VGbG9hdChuLm1hcmdpblJpZ2h0KTtPYmplY3QuYXNzaWduKHQuc3R5bGUse3Njcm9sbGJhckd1dHRlcjpcInN0YWJsZVwiLG92ZXJmbG93WTohbCYmKHN8fHUpP1wic2Nyb2xsXCI6XCJoaWRkZW5cIixvdmVyZmxvd1g6IWwmJihjfHxkKT9cInNjcm9sbFwiOlwiaGlkZGVuXCJ9KSxPYmplY3QuYXNzaWduKHIuc3R5bGUse3Bvc2l0aW9uOlwicmVsYXRpdmVcIixoZWlnaHQ6aHx8cD9gY2FsYygxMDBkdmggLSAke2grcH1weClgOlwiMTAwZHZoXCIsd2lkdGg6Z3x8Zj9gY2FsYygxMDB2dyAtICR7ZytmfXB4KWA6XCIxMDB2d1wiLGJveFNpemluZzpcImJvcmRlci1ib3hcIixvdmVyZmxvdzpcImhpZGRlblwiLHNjcm9sbEJlaGF2aW9yOlwidW5zZXRcIn0pLHIuc2Nyb2xsVG9wPWEsci5zY3JvbGxMZWZ0PWksdC5zZXRBdHRyaWJ1dGUoXCJkYXRhLWJhc2UtdWktc2Nyb2xsLWxvY2tlZFwiLFwiXCIpLHQuc3R5bGUuc2Nyb2xsQmVoYXZpb3I9XCJ1bnNldFwifWZ1bmN0aW9uIGMoKXtPYmplY3QuYXNzaWduKHQuc3R5bGUsbjgpLE9iamVjdC5hc3NpZ24oci5zdHlsZSxuNyksdC5zY3JvbGxUb3A9YSx0LnNjcm9sbExlZnQ9aSx0LnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtYmFzZS11aS1zY3JvbGwtbG9ja2VkXCIpLHQuc3R5bGUuc2Nyb2xsQmVoYXZpb3I9dGV9ZnVuY3Rpb24gdSgpe2MoKSxsLnJlcXVlc3Qocyl9cmV0dXJuIHMoKSxvLmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix1KSwoKT0+e2wuY2FuY2VsKCksYygpLG8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHUpfX0oZSl9fWxldCB0dD1uZXcgdG47ZnVuY3Rpb24gdHIoZSl7aWYoZSlyZXR1cm4oe1wiZm9jdXMtb3V0XCI6XCJmb2N1cy1vdXRcIixcImVzY2FwZS1rZXlcIjpcImVzY2FwZS1rZXlcIixcIm91dHNpZGUtcHJlc3NcIjpcIm91dHNpZGUtcHJlc3NcIixcImxpc3QtbmF2aWdhdGlvblwiOlwibGlzdC1uYXZpZ2F0aW9uXCIsY2xpY2s6XCJ0cmlnZ2VyLXByZXNzXCIsaG92ZXI6XCJ0cmlnZ2VyLWhvdmVyXCIsZm9jdXM6XCJ0cmlnZ2VyLWZvY3VzXCIsXCJyZWZlcmVuY2UtcHJlc3NcIjpcInRyaWdnZXItcHJlc3NcIixcInNhZmUtcG9seWdvblwiOlwidHJpZ2dlci1ob3ZlclwiLFwiYW5jZXN0b3Itc2Nyb2xsXCI6dm9pZCAwfSlbZV19bGV0IHRvPUMuY3JlYXRlQ29udGV4dCh2b2lkIDApO2Z1bmN0aW9uIHRhKGU9ITApe2xldCBuPUMudXNlQ29udGV4dCh0byk7aWYodm9pZCAwPT09biYmIWUpdGhyb3cgRXJyb3IoXCJCYXNlIFVJOiBDb250ZXh0TWVudVJvb3RDb250ZXh0IGlzIG1pc3NpbmcuIENvbnRleHRNZW51IHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8Q29udGV4dE1lbnUuUm9vdD4uXCIpO3JldHVybiBufWxldCB0aT1DLmNyZWF0ZUNvbnRleHQoITEpO2Z1bmN0aW9uIHRsKGUsbil7cmV0dXJuIGUmJiFuP2U6IWUmJm4/bjplfHxuP3suLi5lLC4uLm59OnZvaWQgMH1sZXQgdHM9e307ZnVuY3Rpb24gdGMoZSxuLHQscixvKXtsZXQgYT17Li4udGYoZSx0cyl9O3JldHVybiBuJiYoYT10dShhLG4pKSx0JiYoYT10dShhLHQpKSxyJiYoYT10dShhLHIpKSxvJiYoYT10dShhLG8pKSxhfWZ1bmN0aW9uIHR1KGUsbil7cmV0dXJuIHRkKG4pP24oZSk6ZnVuY3Rpb24oZSxuKXtpZighbilyZXR1cm4gZTtmb3IobGV0IHQgaW4gbil7bGV0IHI9blt0XTtzd2l0Y2godCl7Y2FzZVwic3R5bGVcIjplW3RdPXRsKGUuc3R5bGUscik7YnJlYWs7Y2FzZVwiY2xhc3NOYW1lXCI6ZVt0XT10aChlLmNsYXNzTmFtZSxyKTticmVhaztkZWZhdWx0OiFmdW5jdGlvbihlLG4pe2xldCB0PWUuY2hhckNvZGVBdCgwKSxyPWUuY2hhckNvZGVBdCgxKSxvPWUuY2hhckNvZGVBdCgyKTtyZXR1cm4gMTExPT09dCYmMTEwPT09ciYmbz49NjUmJm88PTkwJiYoXCJmdW5jdGlvblwiPT10eXBlb2Ygbnx8dm9pZCAwPT09bil9KHQscik/ZVt0XT1yOmVbdF09ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbj9lP3Q9Pnt2YXIgcjtpZihudWxsIT0ocj10KSYmXCJvYmplY3RcIj09dHlwZW9mIHImJlwibmF0aXZlRXZlbnRcImluIHIpe3RwKHQpO2xldCByPW4odCk7cmV0dXJuIHQuYmFzZVVJSGFuZGxlclByZXZlbnRlZHx8ZT8uKHQpLHJ9bGV0IG89bih0KTtyZXR1cm4gZT8uKHQpLG99Om46ZX0oZVt0XSxyKX19cmV0dXJuIGV9KGUsbil9ZnVuY3Rpb24gdGQoZSl7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgZX1mdW5jdGlvbiB0ZihlLG4pe3JldHVybiB0ZChlKT9lKG4pOmU/P3RzfWZ1bmN0aW9uIHRwKGUpe3JldHVybiBlLnByZXZlbnRCYXNlVUlIYW5kbGVyPSgpPT57ZS5iYXNlVUlIYW5kbGVyUHJldmVudGVkPSEwfSxlfWZ1bmN0aW9uIHRoKGUsbil7cmV0dXJuIG4/ZT9uK1wiIFwiK2U6bjplfWxldCB0Zz1bXSx0bT17Y3VycmVudDohMX0sdHY9ZnVuY3Rpb24oZSl7bGV0IG4sdCx7Y2hpbGRyZW46cixvcGVuOm8sb25PcGVuQ2hhbmdlOmEsb25PcGVuQ2hhbmdlQ29tcGxldGU6aSxkZWZhdWx0T3BlbjpzPSExLGRpc2FibGVkOmM9ITEsbW9kYWw6dSxsb29wOmQ9ITAsb3JpZW50YXRpb246Zj1cInZlcnRpY2FsXCIsYWN0aW9uc1JlZjpwLG9wZW5PbkhvdmVyOmgsZGVsYXk6Zz0xMDAsY2xvc2VEZWxheTptPTAsY2xvc2VQYXJlbnRPbkVzYzp2PSEwfT1lLFtiLHldPUMudXNlU3RhdGUobnVsbCksW3gsd109Qy51c2VTdGF0ZShudWxsKSxbaixrXT1DLnVzZVN0YXRlKCksW0EsT109Qy51c2VTdGF0ZSghMCksW1MsX109Qy51c2VTdGF0ZShudWxsKSxbUCx6XT1DLnVzZVN0YXRlKG51bGwpLFtMLFJdPUMudXNlU3RhdGUoITApLFtOLERdPUMudXNlU3RhdGUoITEpLEI9Qy51c2VSZWYobnVsbCksTT1DLnVzZVJlZihudWxsKSxJPUMudXNlUmVmKG51bGwpLFU9ZWsoKSxWPXRhKCEwKSwkPUMudXNlQ29udGV4dCh0aSk7e2xldCBlPW4wKCEwKSx0PWZ1bmN0aW9uKGUpe2xldCBuPUMudXNlQ29udGV4dChuMSk7aWYobnVsbD09PW4mJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogTWVudWJhckNvbnRleHQgaXMgbWlzc2luZy4gTWVudWJhciBwYXJ0cyBtdXN0IGJlIHBsYWNlZCB3aXRoaW4gPE1lbnViYXI+LlwiKTtyZXR1cm4gbn0oITApO249JCYmZT97dHlwZTpcIm1lbnVcIixjb250ZXh0OmV9OnQ/e3R5cGU6XCJtZW51YmFyXCIsY29udGV4dDp0fTpWP3t0eXBlOlwiY29udGV4dC1tZW51XCIsY29udGV4dDpWfTp7dHlwZTp2b2lkIDB9fWxldCBYPUgoKTt2b2lkIDAhPT1uLnR5cGUmJihYPW4uY29udGV4dC5yb290SWQpO2xldCBLPSh2b2lkIDA9PT1uLnR5cGV8fFwiY29udGV4dC1tZW51XCI9PT1uLnR5cGUpJiYodT8/ITApLFE9XCJtZW51XCI9PT1uLnR5cGU/bi5jb250ZXh0LmFsbG93TW91c2VFbnRlcjpOLEc9XCJtZW51XCI9PT1uLnR5cGU/bi5jb250ZXh0LnNldEFsbG93TW91c2VFbnRlcjpELEo9aD8/KFwibWVudVwiPT09bi50eXBlfHxcIm1lbnViYXJcIj09PW4udHlwZSYmbi5jb250ZXh0Lmhhc1N1Ym1lbnVPcGVuKSxbZWUsZXRdPW40KHtjb250cm9sbGVkOm8sZGVmYXVsdDpzLG5hbWU6XCJNZW51Um9vdFwiLHN0YXRlOlwib3BlblwifSksZXI9Qy51c2VSZWYoXCJjb250ZXh0LW1lbnVcIiE9PW4udHlwZSksZW89ZWsoKTtDLnVzZUVmZmVjdCgoKT0+e2lmKGVlfHwoQi5jdXJyZW50PW51bGwpLFwiY29udGV4dC1tZW51XCI9PT1uLnR5cGUpe2lmKCFlZSl7ZW8uY2xlYXIoKSxlci5jdXJyZW50PSExO3JldHVybn1lby5zdGFydCg1MDAsKCk9Pntlci5jdXJyZW50PSEwfSl9fSxbZW8sZWUsbi50eXBlXSk7bGV0IGVhPUMudXNlQ2FsbGJhY2soZT0+e0kuY3VycmVudD1lLHcoZSl9LFtdKSx7bW91bnRlZDplaSxzZXRNb3VudGVkOmVsLHRyYW5zaXRpb25TdGF0dXM6ZXN9PW4yKGVlKSx7ZW5hYmxlZDplYz0hMCxtb3VudGVkOmV1LG9wZW46ZWQscmVmZXJlbmNlRWxlbWVudDplZj1udWxsfT17ZW5hYmxlZDplZSYmSyYmXCJ0cmlnZ2VyLWhvdmVyXCIhPT1QLG1vdW50ZWQ6ZWksb3BlbjplZSxyZWZlcmVuY2VFbGVtZW50Onh9O0YoKCk9PntpZihlUCYmZXUmJiFlZCl7bGV0IGU9ZVEoZWYpLG49ZS5ib2R5LnN0eWxlLnVzZXJTZWxlY3QsdD1lLmJvZHkuc3R5bGUud2Via2l0VXNlclNlbGVjdDtyZXR1cm4gZS5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9XCJub25lXCIsZS5ib2R5LnN0eWxlLndlYmtpdFVzZXJTZWxlY3Q9XCJub25lXCIsKCk9PntlLmJvZHkuc3R5bGUudXNlclNlbGVjdD1uLGUuYm9keS5zdHlsZS53ZWJraXRVc2VyU2VsZWN0PXR9fX0sW2V1LGVkLGVmXSksRigoKT0+e2lmKGVjKXJldHVybiB0dC5hY3F1aXJlKGVmKX0sW2VjLGVmXSksZWV8fEF8fE8oITApO2xldCBlcD1UKCgpPT57ZWwoITEpLFIoITApLEcoITEpLGk/LighMSl9KTtuNSh7ZW5hYmxlZDohcCxvcGVuOmVlLHJlZjpNLG9uQ29tcGxldGUoKXtlZXx8ZXAoKX19KTtsZXQgZWg9Qy51c2VSZWYoITApLGVnPWVrKCksZW09VCgoZSx0LHIpPT57aWYoZWU9PT1lfHwhMT09PWUmJnQ/LnR5cGU9PT1cImNsaWNrXCImJlwidG91Y2hcIj09PXQucG9pbnRlclR5cGUmJiFlaC5jdXJyZW50KXJldHVybjtlJiZcInRyaWdnZXItZm9jdXNcIj09PXI/KGVoLmN1cnJlbnQ9ITEsZWcuc3RhcnQoMzAwLCgpPT57ZWguY3VycmVudD0hMH0pKTooZWguY3VycmVudD0hMCxlZy5jbGVhcigpKTtsZXQgbz0oXCJ0cmlnZ2VyLXByZXNzXCI9PT1yfHxcIml0ZW0tcHJlc3NcIj09PXIpJiYwPT09dC5kZXRhaWwmJnQ/LmlzVHJ1c3RlZCxpPSFlJiYoXCJlc2NhcGUta2V5XCI9PT1yfHxudWxsPT1yKTtmdW5jdGlvbiBsKCl7YT8uKGUsdCxyKSxldChlKSx6KHI/P251bGwpLEIuY3VycmVudD10Pz9udWxsfVwidHJpZ2dlci1ob3ZlclwiPT09cj8oUighMCksVS5zdGFydCg1MDAsKCk9PntSKCExKX0pLEUuZmx1c2hTeW5jKGwpKTpsKCksXCJtZW51YmFyXCI9PT1uLnR5cGUmJihcInRyaWdnZXItZm9jdXNcIj09PXJ8fFwiZm9jdXMtb3V0XCI9PT1yfHxcInRyaWdnZXItaG92ZXJcIj09PXJ8fFwibGlzdC1uYXZpZ2F0aW9uXCI9PT1yfHxcInNpYmxpbmctb3BlblwiPT09cik/ayhcImdyb3VwXCIpOm98fGk/ayhvP1wiY2xpY2tcIjpcImRpc21pc3NcIik6ayh2b2lkIDApfSk7Qy51c2VJbXBlcmF0aXZlSGFuZGxlKHAsKCk9Pih7dW5tb3VudDplcH0pLFtlcF0pLFwiY29udGV4dC1tZW51XCI9PT1uLnR5cGUmJih0PW4uY29udGV4dCksQy51c2VJbXBlcmF0aXZlSGFuZGxlKHQ/LnBvc2l0aW9uZXJSZWYsKCk9PngsW3hdKSxDLnVzZUltcGVyYXRpdmVIYW5kbGUodD8uYWN0aW9uc1JlZiwoKT0+KHtzZXRPcGVuOmVtfSksW2VtXSksQy51c2VFZmZlY3QoKCk9PntlZXx8VS5jbGVhcigpfSxbVSxlZV0pO2xldCBldj1ZKHtlbGVtZW50czp7cmVmZXJlbmNlOmIsZmxvYXRpbmc6eH0sb3BlbjplZSxvbk9wZW5DaGFuZ2UoZSxuLHQpe2VtKGUsbix0cih0KSl9fSksZWI9ZTMoZXYse2VuYWJsZWQ6QSYmSiYmIWMmJlwiY29udGV4dC1tZW51XCIhPT1uLnR5cGUmJihcIm1lbnViYXJcIiE9PW4udHlwZXx8bi5jb250ZXh0Lmhhc1N1Ym1lbnVPcGVuJiYhZWUpLGhhbmRsZUNsb3NlOmU3KHtibG9ja1BvaW50ZXJFdmVudHM6ITB9KSxtb3VzZU9ubHk6ITAsbW92ZTpcIm1lbnVcIj09PW4udHlwZSxyZXN0TXM6dm9pZCAwPT09bi50eXBlfHxcIm1lbnVcIj09PW4udHlwZSYmUT9nOnZvaWQgMCxkZWxheTpcIm1lbnVcIj09PW4udHlwZT97b3BlbjpRP2c6MWUxMCxjbG9zZTptfTp7Y2xvc2U6bX19KSxleT1ubihldix7ZW5hYmxlZDohYyYmIWVlJiZcIm1lbnViYXJcIj09PW4udHlwZSYmbi5jb250ZXh0Lmhhc1N1Ym1lbnVPcGVuJiYhVn0pLGV4PWZ1bmN0aW9uKGUsbj17fSl7bGV0e29wZW46dCxvbk9wZW5DaGFuZ2U6cixkYXRhUmVmOm99PWUse2VuYWJsZWQ6YT0hMCxldmVudDppPVwiY2xpY2tcIix0b2dnbGU6bD0hMCxpZ25vcmVNb3VzZTpzPSExLHN0aWNrSWZPcGVuOmM9ITB9PW4sdT1DLnVzZVJlZih2b2lkIDApLGQ9bnMoKSxmPUMudXNlTWVtbygoKT0+KHtvblBvaW50ZXJEb3duKGUpe3UuY3VycmVudD1lLnBvaW50ZXJUeXBlfSxvbk1vdXNlRG93bihlKXtsZXQgbj11LmN1cnJlbnQsYT1lLm5hdGl2ZUV2ZW50O2lmKDAhPT1lLmJ1dHRvbnx8XCJjbGlja1wiPT09aXx8ZUkobiwhMCkmJnMpcmV0dXJuO2xldCBmPW8uY3VycmVudC5vcGVuRXZlbnQscD1mPy50eXBlLGg9ISh0JiZsJiYoIWZ8fCFjfHxcImNsaWNrXCI9PT1wfHxcIm1vdXNlZG93blwiPT09cCkpO2QucmVxdWVzdCgoKT0+e3IoaCxhLFwiY2xpY2tcIil9KX0sb25DbGljayhlKXtsZXQgbj11LmN1cnJlbnQ7aWYoXCJtb3VzZWRvd25cIj09PWkmJm4pe3UuY3VycmVudD12b2lkIDA7cmV0dXJufWlmKGVJKG4sITApJiZzKXJldHVybjtsZXQgYT1vLmN1cnJlbnQub3BlbkV2ZW50LGQ9YT8udHlwZTtyKCEodCYmbCYmKCFhfHwhY3x8XCJjbGlja1wiPT09ZHx8XCJtb3VzZWRvd25cIj09PWR8fFwia2V5ZG93blwiPT09ZHx8XCJrZXl1cFwiPT09ZCkpLGUubmF0aXZlRXZlbnQsXCJjbGlja1wiKX0sb25LZXlEb3duKCl7dS5jdXJyZW50PXZvaWQgMH19KSxbbyxpLHMscix0LGMsbCxkXSk7cmV0dXJuIEMudXNlTWVtbygoKT0+YT97cmVmZXJlbmNlOmZ9Om5yLFthLGZdKX0oZXYse2VuYWJsZWQ6IWMmJlwiY29udGV4dC1tZW51XCIhPT1uLnR5cGUsZXZlbnQ6ZWUmJlwibWVudWJhclwiPT09bi50eXBlP1wiY2xpY2tcIjpcIm1vdXNlZG93blwiLHRvZ2dsZTohSnx8XCJtZW51XCIhPT1uLnR5cGUsaWdub3JlTW91c2U6SiYmXCJtZW51XCI9PT1uLnR5cGUsc3RpY2tJZk9wZW46dm9pZCAwPT09bi50eXBlJiZMfSksZXc9bmYoZXYse2VuYWJsZWQ6IWMsYnViYmxlczp2JiZcIm1lbnVcIj09PW4udHlwZSxvdXRzaWRlUHJlc3NFdmVudDpcIm1vdXNlZG93blwiLG91dHNpZGVQcmVzczooKT0+XCJjb250ZXh0LW1lbnVcIiE9PW4udHlwZXx8Qi5jdXJyZW50Py50eXBlPT09XCJjb250ZXh0bWVudVwifHxlci5jdXJyZW50fSksZWo9ZnVuY3Rpb24oZSxuPXt9KXtsZXR7b3Blbjp0LGVsZW1lbnRzOnIsZmxvYXRpbmdJZDpvfT1lLHtlbmFibGVkOmE9ITAscm9sZTppPVwiZGlhbG9nXCJ9PW4sbD1IKCkscz1yLmRvbVJlZmVyZW5jZT8uaWR8fGwsYz1DLnVzZU1lbW8oKCk9PmUwKHIuZmxvYXRpbmcpPy5pZHx8byxbci5mbG9hdGluZyxvXSksdT1ucC5nZXQoaSk/P2ksZD1udWxsIT1xKCksZj1DLnVzZU1lbW8oKCk9PlwidG9vbHRpcFwiPT09dXx8XCJsYWJlbFwiPT09aT97W2BhcmlhLSR7XCJsYWJlbFwiPT09aT9cImxhYmVsbGVkYnlcIjpcImRlc2NyaWJlZGJ5XCJ9YF06dD9jOnZvaWQgMH06e1wiYXJpYS1leHBhbmRlZFwiOnQ/XCJ0cnVlXCI6XCJmYWxzZVwiLFwiYXJpYS1oYXNwb3B1cFwiOlwiYWxlcnRkaWFsb2dcIj09PXU/XCJkaWFsb2dcIjp1LFwiYXJpYS1jb250cm9sc1wiOnQ/Yzp2b2lkIDAsLi4uXCJsaXN0Ym94XCI9PT11JiZ7cm9sZTpcImNvbWJvYm94XCJ9LC4uLlwibWVudVwiPT09dSYme2lkOnN9LC4uLlwibWVudVwiPT09dSYmZCYme3JvbGU6XCJtZW51aXRlbVwifSwuLi5cInNlbGVjdFwiPT09aSYme1wiYXJpYS1hdXRvY29tcGxldGVcIjpcIm5vbmVcIn0sLi4uXCJjb21ib2JveFwiPT09aSYme1wiYXJpYS1hdXRvY29tcGxldGVcIjpcImxpc3RcIn19LFt1LGMsZCx0LHMsaV0pLHA9Qy51c2VNZW1vKCgpPT57bGV0IGU9e2lkOmMsLi4udSYme3JvbGU6dX19O3JldHVyblwidG9vbHRpcFwiPT09dXx8XCJsYWJlbFwiPT09aT9lOnsuLi5lLC4uLlwibWVudVwiPT09dSYme1wiYXJpYS1sYWJlbGxlZGJ5XCI6c319fSxbdSxjLHMsaV0pLGg9Qy51c2VDYWxsYmFjaygoe2FjdGl2ZTplLHNlbGVjdGVkOm59KT0+e2xldCB0PXtyb2xlOlwib3B0aW9uXCIsLi4uZSYme2lkOmAke2N9LWZ1aS1vcHRpb25gfX07c3dpdGNoKGkpe2Nhc2VcInNlbGVjdFwiOnJldHVybnsuLi50LFwiYXJpYS1zZWxlY3RlZFwiOmUmJm59O2Nhc2VcImNvbWJvYm94XCI6cmV0dXJuey4uLnQsXCJhcmlhLXNlbGVjdGVkXCI6bn19cmV0dXJue319LFtjLGldKTtyZXR1cm4gQy51c2VNZW1vKCgpPT5hP3tyZWZlcmVuY2U6ZixmbG9hdGluZzpwLGl0ZW06aH06e30sW2EsZixwLGhdKX0oZXYse3JvbGU6XCJtZW51XCJ9KSxlTz1DLnVzZVJlZihbXSksZUM9Qy51c2VSZWYoW10pLGVTPW42KCksZUU9ZnVuY3Rpb24oZSxuKXtsZXR7b3Blbjp0LG9uT3BlbkNoYW5nZTpyLGVsZW1lbnRzOm8sZmxvYXRpbmdJZDphfT1lLHtsaXN0UmVmOmksYWN0aXZlSW5kZXg6bCxvbk5hdmlnYXRlOnM9KCk9Pnt9LGVuYWJsZWQ6Yz0hMCxzZWxlY3RlZEluZGV4OnU9bnVsbCxhbGxvd0VzY2FwZTpkPSExLGxvb3A6Zj0hMSxuZXN0ZWQ6cD0hMSxydGw6aD0hMSx2aXJ0dWFsOmc9ITEsZm9jdXNJdGVtT25PcGVuOm09XCJhdXRvXCIsZm9jdXNJdGVtT25Ib3Zlcjp2PSEwLG9wZW5PbkFycm93S2V5RG93bjpiPSEwLGRpc2FibGVkSW5kaWNlczp5LG9yaWVudGF0aW9uOng9XCJ2ZXJ0aWNhbFwiLHBhcmVudE9yaWVudGF0aW9uOncsY29sczpqPTEsc2Nyb2xsSXRlbUludG9WaWV3Oms9ITAsdmlydHVhbEl0ZW1SZWY6QSxpdGVtU2l6ZXM6TyxkZW5zZTpTPSExfT1uLEU9ZUEoZTAoby5mbG9hdGluZykpLF89cSgpLFA9VygpO0YoKCk9PntlLmRhdGFSZWYuY3VycmVudC5vcmllbnRhdGlvbj14fSxbZSx4XSk7bGV0IHo9ZUooby5kb21SZWZlcmVuY2UpLEw9Qy51c2VSZWYobSksUj1DLnVzZVJlZih1Pz8tMSksTj1DLnVzZVJlZihudWxsKSxEPUMudXNlUmVmKCEwKSxCPVQoKCk9PntzKC0xPT09Ui5jdXJyZW50P251bGw6Ui5jdXJyZW50KX0pLE09Qy51c2VSZWYoQiksST1DLnVzZVJlZighIW8uZmxvYXRpbmcpLEg9Qy51c2VSZWYodCksVT1DLnVzZVJlZighMSksVj1DLnVzZVJlZighMSksJD1lQSh5KSxaPWVBKHQpLFk9ZUEoayksWD1lQSh1KSxbSyxRXT1DLnVzZVN0YXRlKCksW0csSl09Qy51c2VTdGF0ZSgpLGVlPVQoKCk9PntmdW5jdGlvbiBlKGUpe2c/KGUuaWQ/LmVuZHNXaXRoKFwiLWZ1aS1vcHRpb25cIikmJihlLmlkPWAke2F9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygxNikuc2xpY2UoMiwxMCl9YCksUShlLmlkKSxQPy5ldmVudHMuZW1pdChcInZpcnR1YWxmb2N1c1wiLGUpLEEmJihBLmN1cnJlbnQ9ZSkpOm5xKGUse3N5bmM6VS5jdXJyZW50LHByZXZlbnRTY3JvbGw6ITB9KX1sZXQgbj1pLmN1cnJlbnRbUi5jdXJyZW50XSx0PVYuY3VycmVudDtuJiZlKG4pLChVLmN1cnJlbnQ/ZT0+ZSgpOnJlcXVlc3RBbmltYXRpb25GcmFtZSkoKCk9PntsZXQgcj1pLmN1cnJlbnRbUi5jdXJyZW50XXx8bjtpZighcilyZXR1cm47bnx8ZShyKTtsZXQgbz1ZLmN1cnJlbnQ7byYmZXImJih0fHwhRC5jdXJyZW50KSYmci5zY3JvbGxJbnRvVmlldz8uKFwiYm9vbGVhblwiPT10eXBlb2Ygbz97YmxvY2s6XCJuZWFyZXN0XCIsaW5saW5lOlwibmVhcmVzdFwifTpvKX0pfSk7RigoKT0+e2MmJih0JiZvLmZsb2F0aW5nP0wuY3VycmVudCYmbnVsbCE9dSYmKFYuY3VycmVudD0hMCxSLmN1cnJlbnQ9dSxCKCkpOkkuY3VycmVudCYmKFIuY3VycmVudD0tMSxNLmN1cnJlbnQoKSkpfSxbYyx0LG8uZmxvYXRpbmcsdSxCXSksRigoKT0+e2lmKGMmJnQmJm8uZmxvYXRpbmcpaWYobnVsbD09bCl7aWYoVS5jdXJyZW50PSExLG51bGwhPVguY3VycmVudClyZXR1cm47aWYoSS5jdXJyZW50JiYoUi5jdXJyZW50PS0xLGVlKCkpLCghSC5jdXJyZW50fHwhSS5jdXJyZW50KSYmTC5jdXJyZW50JiYobnVsbCE9Ti5jdXJyZW50fHwhMD09PUwuY3VycmVudCYmbnVsbD09Ti5jdXJyZW50KSl7bGV0IGU9MCxuPSgpPT57bnVsbD09aS5jdXJyZW50WzBdPyhlPDImJihlP3JlcXVlc3RBbmltYXRpb25GcmFtZTpxdWV1ZU1pY3JvdGFzaykobiksZSs9MSk6KFIuY3VycmVudD1udWxsPT1OLmN1cnJlbnR8fG5aKE4uY3VycmVudCx4LGgpfHxwP25JKGksJC5jdXJyZW50KTpuSChpLCQuY3VycmVudCksTi5jdXJyZW50PW51bGwsQigpKX07bigpfX1lbHNlIG5NKGksbCl8fChSLmN1cnJlbnQ9bCxlZSgpLFYuY3VycmVudD0hMSl9LFtjLHQsby5mbG9hdGluZyxsLFgscCxpLHgsaCxCLGVlLCRdKSxGKCgpPT57aWYoIWN8fG8uZmxvYXRpbmd8fCFQfHxnfHwhSS5jdXJyZW50KXJldHVybjtsZXQgZT1QLm5vZGVzUmVmLmN1cnJlbnQsbj1lLmZpbmQoZT0+ZS5pZD09PV8pPy5jb250ZXh0Py5lbGVtZW50cy5mbG9hdGluZyx0PWVaKGVRKG8uZmxvYXRpbmcpKSxyPWUuc29tZShlPT5lLmNvbnRleHQmJmVZKGUuY29udGV4dC5lbGVtZW50cy5mbG9hdGluZyx0KSk7biYmIXImJkQuY3VycmVudCYmbi5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfSxbYyxvLmZsb2F0aW5nLFAsXyxnXSksRigoKT0+e2lmKGMmJlAmJmcmJiFfKXJldHVybiBQLmV2ZW50cy5vbihcInZpcnR1YWxmb2N1c1wiLGUpLCgpPT57UC5ldmVudHMub2ZmKFwidmlydHVhbGZvY3VzXCIsZSl9O2Z1bmN0aW9uIGUoZSl7SihlLmlkKSxBJiYoQS5jdXJyZW50PWUpfX0sW2MsUCxnLF8sQV0pLEYoKCk9PntNLmN1cnJlbnQ9QixILmN1cnJlbnQ9dCxJLmN1cnJlbnQ9ISFvLmZsb2F0aW5nfSksRigoKT0+e3R8fChOLmN1cnJlbnQ9bnVsbCxMLmN1cnJlbnQ9bSl9LFt0LG1dKTtsZXQgZXQ9bnVsbCE9bCxlcj1DLnVzZU1lbW8oKCk9PntmdW5jdGlvbiBlKGUpe2lmKCFaLmN1cnJlbnQpcmV0dXJuO2xldCBuPWkuY3VycmVudC5pbmRleE9mKGUpOy0xIT09biYmUi5jdXJyZW50IT09biYmKFIuY3VycmVudD1uLEIoKSl9cmV0dXJue29uRm9jdXMoe2N1cnJlbnRUYXJnZXQ6bn0pe1UuY3VycmVudD0hMCxlKG4pfSxvbkNsaWNrOih7Y3VycmVudFRhcmdldDplfSk9PmUuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSxvbk1vdXNlTW92ZSh7Y3VycmVudFRhcmdldDpufSl7VS5jdXJyZW50PSEwLFYuY3VycmVudD0hMSx2JiZlKG4pfSxvblBvaW50ZXJMZWF2ZSh7cG9pbnRlclR5cGU6ZX0pe0QuY3VycmVudCYmXCJ0b3VjaFwiIT09ZSYmKFUuY3VycmVudD0hMCx2JiYoUi5jdXJyZW50PS0xLEIoKSxnfHxFLmN1cnJlbnQ/LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSkpKX19fSxbWixFLHYsaSxCLGddKSxlbz1DLnVzZUNhbGxiYWNrKCgpPT53Pz9QPy5ub2Rlc1JlZi5jdXJyZW50LmZpbmQoZT0+ZS5pZD09PV8pPy5jb250ZXh0Py5kYXRhUmVmPy5jdXJyZW50Lm9yaWVudGF0aW9uLFtfLFAsd10pLGVhPVQoZT0+e2lmKEQuY3VycmVudD0hMSxVLmN1cnJlbnQ9ITAsMjI5PT09ZS53aGljaHx8IVouY3VycmVudCYmZS5jdXJyZW50VGFyZ2V0PT09RS5jdXJyZW50KXJldHVybjtpZihwJiZuWChlLmtleSx4LGgsaikpe24kKGUua2V5LGVvKCkpfHxlRChlKSxyKCExLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIiksZW4oby5kb21SZWZlcmVuY2UpJiYoZz9QPy5ldmVudHMuZW1pdChcInZpcnR1YWxmb2N1c1wiLG8uZG9tUmVmZXJlbmNlKTpvLmRvbVJlZmVyZW5jZS5mb2N1cygpKTtyZXR1cm59bGV0IG49Ui5jdXJyZW50LGE9bkkoaSx5KSxsPW5IKGkseSk7aWYoenx8KFwiSG9tZVwiPT09ZS5rZXkmJihlRChlKSxSLmN1cnJlbnQ9YSxCKCkpLFwiRW5kXCI9PT1lLmtleSYmKGVEKGUpLFIuY3VycmVudD1sLEIoKSkpLGo+MSl7dmFyIHM7bGV0IG49T3x8QXJyYXkuZnJvbSh7bGVuZ3RoOmkuY3VycmVudC5sZW5ndGh9LCgpPT4oe3dpZHRoOjEsaGVpZ2h0OjF9KSksdD1mdW5jdGlvbihlLG4sdCl7bGV0IHI9W10sbz0wO3JldHVybiBlLmZvckVhY2goKHt3aWR0aDplLGhlaWdodDphfSxpKT0+e2xldCBsPSExO2Zvcih0JiYobz0wKTshbDspe2xldCB0PVtdO2ZvcihsZXQgcj0wO3I8ZTtyKz0xKWZvcihsZXQgZT0wO2U8YTtlKz0xKXQucHVzaChvK3IrZSpuKTtvJW4rZTw9biYmdC5ldmVyeShlPT5udWxsPT1yW2VdKT8odC5mb3JFYWNoKGU9PntyW2VdPWl9KSxsPSEwKTpvKz0xfX0pLFsuLi5yXX0obixqLFMpLHI9dC5maW5kSW5kZXgoZT0+bnVsbCE9ZSYmIW5VKGksZSx5KSksbz10LnJlZHVjZSgoZSxuLHQpPT5udWxsPT1ufHxuVShpLG4seSk/ZTp0LC0xKSxjPXRbZnVuY3Rpb24oZSx7ZXZlbnQ6bixvcmllbnRhdGlvbjp0LGxvb3A6cixydGw6byxjb2xzOmEsZGlzYWJsZWRJbmRpY2VzOmksbWluSW5kZXg6bCxtYXhJbmRleDpzLHByZXZJbmRleDpjLHN0b3BFdmVudDp1PSExfSl7bGV0IGQ9YztpZihuLmtleT09PWVXKXtpZih1JiZlRChuKSwtMT09PWMpZD1zO2Vsc2UgaWYoZD1uRihlLHtzdGFydGluZ0luZGV4OmQsYW1vdW50OmEsZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczppfSksciYmKGMtYTxsfHxkPDApKXtsZXQgZT1jJWEsbj1zJWEsdD1zLShuLWUpO2Q9bj09PWU/czpuPmU/dDp0LWF9bk0oZSxkKSYmKGQ9Yyl9aWYobi5rZXk9PT1lJCYmKHUmJmVEKG4pLC0xPT09Yz9kPWw6KGQ9bkYoZSx7c3RhcnRpbmdJbmRleDpjLGFtb3VudDphLGRpc2FibGVkSW5kaWNlczppfSksciYmYythPnMmJihkPW5GKGUse3N0YXJ0aW5nSW5kZXg6YyVhLWEsYW1vdW50OmEsZGlzYWJsZWRJbmRpY2VzOml9KSkpLG5NKGUsZCkmJihkPWMpKSxcImJvdGhcIj09PXQpe2xldCB0PW5iKGMvYSk7bi5rZXk9PT0obz9lVjplcSkmJih1JiZlRChuKSxjJWEhPWEtMT8oZD1uRihlLHtzdGFydGluZ0luZGV4OmMsZGlzYWJsZWRJbmRpY2VzOml9KSxyJiZuQihkLGEsdCkmJihkPW5GKGUse3N0YXJ0aW5nSW5kZXg6Yy1jJWEtMSxkaXNhYmxlZEluZGljZXM6aX0pKSk6ciYmKGQ9bkYoZSx7c3RhcnRpbmdJbmRleDpjLWMlYS0xLGRpc2FibGVkSW5kaWNlczppfSkpLG5CKGQsYSx0KSYmKGQ9YykpLG4ua2V5PT09KG8/ZXE6ZVYpJiYodSYmZUQobiksYyVhIT0wPyhkPW5GKGUse3N0YXJ0aW5nSW5kZXg6YyxkZWNyZW1lbnQ6ITAsZGlzYWJsZWRJbmRpY2VzOml9KSxyJiZuQihkLGEsdCkmJihkPW5GKGUse3N0YXJ0aW5nSW5kZXg6YysoYS1jJWEpLGRlY3JlbWVudDohMCxkaXNhYmxlZEluZGljZXM6aX0pKSk6ciYmKGQ9bkYoZSx7c3RhcnRpbmdJbmRleDpjKyhhLWMlYSksZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczppfSkpLG5CKGQsYSx0KSYmKGQ9YykpO2xldCBsPW5iKHMvYSk9PT10O25NKGUsZCkmJihkPXImJmw/bi5rZXk9PT0obz9lcTplVik/czpuRihlLHtzdGFydGluZ0luZGV4OmMtYyVhLTEsZGlzYWJsZWRJbmRpY2VzOml9KTpjKX1yZXR1cm4gZH0oe2N1cnJlbnQ6dC5tYXAoZT0+bnVsbCE9ZT9pLmN1cnJlbnRbZV06bnVsbCl9LHtldmVudDplLG9yaWVudGF0aW9uOngsbG9vcDpmLHJ0bDpoLGNvbHM6aixkaXNhYmxlZEluZGljZXM6KHM9Wy4uLihcImZ1bmN0aW9uXCIhPXR5cGVvZiB5P3k6bnVsbCl8fGkuY3VycmVudC5tYXAoKGUsbik9Pm5VKGksbix5KT9uOnZvaWQgMCksdm9pZCAwXSx0LmZsYXRNYXAoKGUsbik9PnMuaW5jbHVkZXMoZSk/W25dOltdKSksbWluSW5kZXg6cixtYXhJbmRleDpvLHByZXZJbmRleDpmdW5jdGlvbihlLG4sdCxyLG8pe2lmKC0xPT09ZSlyZXR1cm4gLTE7bGV0IGE9dC5pbmRleE9mKGUpLGk9bltlXTtzd2l0Y2gobyl7Y2FzZVwidGxcIjpyZXR1cm4gYTtjYXNlXCJ0clwiOmlmKCFpKXJldHVybiBhO3JldHVybiBhK2kud2lkdGgtMTtjYXNlXCJibFwiOmlmKCFpKXJldHVybiBhO3JldHVybiBhKyhpLmhlaWdodC0xKSpyO2Nhc2VcImJyXCI6cmV0dXJuIHQubGFzdEluZGV4T2YoZSk7ZGVmYXVsdDpyZXR1cm4gLTF9fShSLmN1cnJlbnQ+bD9hOlIuY3VycmVudCxuLHQsaixlLmtleT09PWUkP1wiYmxcIjplLmtleT09PShoP2VWOmVxKT9cInRyXCI6XCJ0bFwiKSxzdG9wRXZlbnQ6ITB9KV07aWYobnVsbCE9YyYmKFIuY3VycmVudD1jLEIoKSksXCJib3RoXCI9PT14KXJldHVybn1pZihuJChlLmtleSx4KSl7aWYoZUQoZSksdCYmIWcmJmVaKGUuY3VycmVudFRhcmdldC5vd25lckRvY3VtZW50KT09PWUuY3VycmVudFRhcmdldCl7Ui5jdXJyZW50PW5aKGUua2V5LHgsaCk/YTpsLEIoKTtyZXR1cm59blooZS5rZXkseCxoKT9mP1IuY3VycmVudD1uPj1sP2QmJm4hPT1pLmN1cnJlbnQubGVuZ3RoPy0xOmE6bkYoaSx7c3RhcnRpbmdJbmRleDpuLGRpc2FibGVkSW5kaWNlczp5fSk6Ui5jdXJyZW50PU1hdGgubWluKGwsbkYoaSx7c3RhcnRpbmdJbmRleDpuLGRpc2FibGVkSW5kaWNlczp5fSkpOmY/Ui5jdXJyZW50PW48PWE/ZCYmLTEhPT1uP2kuY3VycmVudC5sZW5ndGg6bDpuRihpLHtzdGFydGluZ0luZGV4Om4sZGVjcmVtZW50OiEwLGRpc2FibGVkSW5kaWNlczp5fSk6Ui5jdXJyZW50PU1hdGgubWF4KGEsbkYoaSx7c3RhcnRpbmdJbmRleDpuLGRlY3JlbWVudDohMCxkaXNhYmxlZEluZGljZXM6eX0pKSxuTShpLFIuY3VycmVudCkmJihSLmN1cnJlbnQ9LTEpLEIoKX19KSxlaT1DLnVzZU1lbW8oKCk9PmcmJnQmJmV0JiZ7XCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnRcIjpHfHxLfSxbZyx0LGV0LEcsS10pLGVsPUMudXNlTWVtbygoKT0+KHtcImFyaWEtb3JpZW50YXRpb25cIjpcImJvdGhcIj09PXg/dm9pZCAwOngsLi4uIXo/ZWk6e30sb25LZXlEb3duOmVhLG9uUG9pbnRlck1vdmUoKXtELmN1cnJlbnQ9ITB9fSksW2VpLGVhLHgsel0pLGVzPUMudXNlTWVtbygoKT0+e2Z1bmN0aW9uIGUoZSl7XCJhdXRvXCI9PT1tJiZlQihlLm5hdGl2ZUV2ZW50KSYmKEwuY3VycmVudD0hMCl9ZnVuY3Rpb24gbihlKXtMLmN1cnJlbnQ9bSxcImF1dG9cIj09PW0mJmVNKGUubmF0aXZlRXZlbnQpJiYoTC5jdXJyZW50PSEwKX1yZXR1cm57Li4uZWksb25LZXlEb3duKGUpe0QuY3VycmVudD0hMTtsZXQgbj1lLmtleS5zdGFydHNXaXRoKFwiQXJyb3dcIiksbz1bXCJIb21lXCIsXCJFbmRcIl0uaW5jbHVkZXMoZS5rZXkpLGE9blkoZS5rZXkseCxoKSxsPW5YKGUua2V5LHgsaCxqKSxzPW5ZKGUua2V5LGVvKCksaCksYz1uJChlLmtleSx4KSxkPShwP3M6Yyl8fFwiRW50ZXJcIj09PWUua2V5fHxcIlwiPT09ZS5rZXkudHJpbSgpO2lmKGcmJnQpe3ZhciBmLG07bGV0IHQscixzPVA/Lm5vZGVzUmVmLmN1cnJlbnQuZmluZChlPT5udWxsPT1lLnBhcmVudElkKSx1PVAmJnM/KGY9UC5ub2Rlc1JlZi5jdXJyZW50LG09cy5pZCxyPS0xLCFmdW5jdGlvbiBlKG4sbyl7bz5yJiYodD1uLHI9byksZTYoZixuKS5mb3JFYWNoKG49PntlKG4uaWQsbysxKX0pfShtLDApLGYuZmluZChlPT5lLmlkPT09dCkpOm51bGw7aWYoKG58fG8pJiZ1JiZBKXtsZXQgbj1uZXcgS2V5Ym9hcmRFdmVudChcImtleWRvd25cIix7a2V5OmUua2V5LGJ1YmJsZXM6ITB9KTtpZihhfHxsKXtsZXQgdD11LmNvbnRleHQ/LmVsZW1lbnRzLmRvbVJlZmVyZW5jZT09PWUuY3VycmVudFRhcmdldCxyPWwmJiF0P3UuY29udGV4dD8uZWxlbWVudHMuZG9tUmVmZXJlbmNlOmE/aS5jdXJyZW50LmZpbmQoZT0+ZT8uaWQ9PT1LKTpudWxsO3ImJihlRChlKSxyLmRpc3BhdGNoRXZlbnQobiksSih2b2lkIDApKX1pZigoY3x8bykmJnUuY29udGV4dCYmdS5jb250ZXh0Lm9wZW4mJnUucGFyZW50SWQmJmUuY3VycmVudFRhcmdldCE9PXUuY29udGV4dC5lbGVtZW50cy5kb21SZWZlcmVuY2Upe2VEKGUpLHUuY29udGV4dC5lbGVtZW50cy5kb21SZWZlcmVuY2U/LmRpc3BhdGNoRXZlbnQobik7cmV0dXJufX1yZXR1cm4gZWEoZSl9aWYodHx8Ynx8IW4pe2lmKGQpe2xldCBuPW4kKGUua2V5LGVvKCkpO04uY3VycmVudD1wJiZuP251bGw6ZS5rZXl9aWYocCl7cyYmKGVEKGUpLHQ/KFIuY3VycmVudD1uSShpLCQuY3VycmVudCksQigpKTpyKCEwLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIikpO3JldHVybn1jJiYobnVsbCE9dSYmKFIuY3VycmVudD11KSxlRChlKSwhdCYmYj9yKCEwLGUubmF0aXZlRXZlbnQsXCJsaXN0LW5hdmlnYXRpb25cIik6ZWEoZSksdCYmQigpKX19LG9uRm9jdXMoKXt0JiYhZyYmKFIuY3VycmVudD0tMSxCKCkpfSxvblBvaW50ZXJEb3duOm4sb25Qb2ludGVyRW50ZXI6bixvbk1vdXNlRG93bjplLG9uQ2xpY2s6ZX19LFtLLGVpLGosZWEsJCxtLGkscCxCLHIsdCxiLHgsZW8saCx1LFAsZyxBXSk7cmV0dXJuIEMudXNlTWVtbygoKT0+Yz97cmVmZXJlbmNlOmVzLGZsb2F0aW5nOmVsLGl0ZW06ZXJ9Ont9LFtjLGVzLGVsLGVyXSl9KGV2LHtlbmFibGVkOiFjLGxpc3RSZWY6ZU8sYWN0aXZlSW5kZXg6UyxuZXN0ZWQ6dm9pZCAwIT09bi50eXBlLGxvb3A6ZCxvcmllbnRhdGlvbjpmLHBhcmVudE9yaWVudGF0aW9uOlwibWVudWJhclwiPT09bi50eXBlP24uY29udGV4dC5vcmllbnRhdGlvbjp2b2lkIDAscnRsOlwicnRsXCI9PT1lUyxkaXNhYmxlZEluZGljZXM6dGcsb25OYXZpZ2F0ZTpfLG9wZW5PbkFycm93S2V5RG93bjpcImNvbnRleHQtbWVudVwiIT09bi50eXBlfSksZV89Qy51c2VSZWYoITEpLGV6PWZ1bmN0aW9uKGUsbil7bGV0e29wZW46dCxkYXRhUmVmOnJ9PWUse2xpc3RSZWY6byxhY3RpdmVJbmRleDphLG9uTWF0Y2g6aSxvblR5cGluZ0NoYW5nZTpsLGVuYWJsZWQ6cz0hMCxmaW5kTWF0Y2g6Yz1udWxsLHJlc2V0TXM6dT03NTAsaWdub3JlS2V5czpkPVtdLHNlbGVjdGVkSW5kZXg6Zj1udWxsfT1uLHA9ZWsoKSxoPUMudXNlUmVmKFwiXCIpLGc9Qy51c2VSZWYoZj8/YT8/LTEpLG09Qy51c2VSZWYobnVsbCksdj1UKGkpLGI9VChsKSx5PWVBKGMpLHg9ZUEoZCk7RigoKT0+e3QmJihwLmNsZWFyKCksbS5jdXJyZW50PW51bGwsaC5jdXJyZW50PVwiXCIpfSxbdCxwXSksRigoKT0+e3QmJlwiXCI9PT1oLmN1cnJlbnQmJihnLmN1cnJlbnQ9Zj8/YT8/LTEpfSxbdCxmLGFdKTtsZXQgdz1UKGU9PntlP3IuY3VycmVudC50eXBpbmd8fChyLmN1cnJlbnQudHlwaW5nPWUsYihlKSk6ci5jdXJyZW50LnR5cGluZyYmKHIuY3VycmVudC50eXBpbmc9ZSxiKGUpKX0pLGo9VChlPT57ZnVuY3Rpb24gbihlLG4sdCl7bGV0IHI9eS5jdXJyZW50P3kuY3VycmVudChuLHQpOm4uZmluZChlPT5lPy50b0xvY2FsZUxvd2VyQ2FzZSgpLmluZGV4T2YodC50b0xvY2FsZUxvd2VyQ2FzZSgpKT09PTApO3JldHVybiByP2UuaW5kZXhPZihyKTotMX1sZXQgcj1vLmN1cnJlbnQ7aWYoaC5jdXJyZW50Lmxlbmd0aD4wJiZcIiBcIiE9PWguY3VycmVudFswXSYmKC0xPT09bihyLHIsaC5jdXJyZW50KT93KCExKTpcIiBcIj09PWUua2V5JiZlRChlKSksbnVsbD09cnx8eC5jdXJyZW50LmluY2x1ZGVzKGUua2V5KXx8MSE9PWUua2V5Lmxlbmd0aHx8ZS5jdHJsS2V5fHxlLm1ldGFLZXl8fGUuYWx0S2V5KXJldHVybjt0JiZcIiBcIiE9PWUua2V5JiYoZUQoZSksdyghMCkpLHIuZXZlcnkoZT0+IWV8fGVbMF0/LnRvTG9jYWxlTG93ZXJDYXNlKCkhPT1lWzFdPy50b0xvY2FsZUxvd2VyQ2FzZSgpKSYmaC5jdXJyZW50PT09ZS5rZXkmJihoLmN1cnJlbnQ9XCJcIixnLmN1cnJlbnQ9bS5jdXJyZW50KSxoLmN1cnJlbnQrPWUua2V5LHAuc3RhcnQodSwoKT0+e2guY3VycmVudD1cIlwiLGcuY3VycmVudD1tLmN1cnJlbnQsdyghMSl9KTtsZXQgYT1nLmN1cnJlbnQsaT1uKHIsWy4uLnIuc2xpY2UoKGF8fDApKzEpLC4uLnIuc2xpY2UoMCwoYXx8MCkrMSldLGguY3VycmVudCk7LTEhPT1pPyh2KGkpLG0uY3VycmVudD1pKTpcIiBcIiE9PWUua2V5JiYoaC5jdXJyZW50PVwiXCIsdyghMSkpfSksaz1DLnVzZU1lbW8oKCk9Pih7b25LZXlEb3duOmp9KSxbal0pLEE9Qy51c2VNZW1vKCgpPT4oe29uS2V5RG93bjpqLG9uS2V5VXAoZSl7XCIgXCI9PT1lLmtleSYmdyghMSl9fSksW2osd10pO3JldHVybiBDLnVzZU1lbW8oKCk9PnM/e3JlZmVyZW5jZTprLGZsb2F0aW5nOkF9Ont9LFtzLGssQV0pfShldix7bGlzdFJlZjplQyxhY3RpdmVJbmRleDpTLHJlc2V0TXM6NTAwLG9uTWF0Y2g6ZT0+e2VlJiZlIT09UyYmXyhlKX0sb25UeXBpbmdDaGFuZ2U6Qy51c2VDYWxsYmFjayhlPT57ZV8uY3VycmVudD1lfSxbXSl9KSx7Z2V0UmVmZXJlbmNlUHJvcHM6ZUwsZ2V0RmxvYXRpbmdQcm9wczplVCxnZXRJdGVtUHJvcHM6ZVJ9PW5LKFtlYixleCxldyxleSxlaixlRSxlel0pLGVOPWZ1bmN0aW9uKGUpe2xldHtlbmFibGVkOm49ITAsbW91c2VEb3duQWN0aW9uOnQsb3BlbjpyfT1lLG89Qy51c2VSZWYoITEpO3JldHVybiBDLnVzZU1lbW8oKCk9Pm4/e29uTW91c2VEb3duOmU9PnsoXCJvcGVuXCI9PT10JiYhcnx8XCJjbG9zZVwiPT09dCYmcikmJihvLmN1cnJlbnQ9ITAsZVEoZS5jdXJyZW50VGFyZ2V0KS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwoKT0+e28uY3VycmVudD0hMX0se29uY2U6ITB9KSl9LG9uQ2xpY2s6ZT0+e28uY3VycmVudCYmKG8uY3VycmVudD0hMSxlLnByZXZlbnRCYXNlVUlIYW5kbGVyKCkpfX06bnIsW24sdCxyXSl9KHtvcGVuOmVlLGVuYWJsZWQ6XCJtZW51YmFyXCI9PT1uLnR5cGUsbW91c2VEb3duQWN0aW9uOlwib3BlblwifSksZUg9Qy51c2VNZW1vKCgpPT57bGV0IGU9dGMoZUwoKSx7b25Nb3VzZUVudGVyKCl7TyghMCl9LG9uTW91c2VNb3ZlKCl7RyghMCl9fSxlTik7cmV0dXJuIGRlbGV0ZSBlLnJvbGUsZX0sW2VMLGVOLEddKSxlRj1DLnVzZU1lbW8oKCk9PmVUKHtvbk1vdXNlRW50ZXIoKXtKJiZcIm1lbnVcIiE9PW4udHlwZXx8TyghMSl9LG9uTW91c2VNb3ZlKCl7RyghMCl9LG9uQ2xpY2soKXtKJiZPKCExKX19KSxbZVQsSixuLnR5cGUsR10pLGVVPUMudXNlTWVtbygoKT0+ZVIoKSxbZVJdKSxlWD1DLnVzZU1lbW8oKCk9Pih7YWN0aXZlSW5kZXg6UyxzZXRBY3RpdmVJbmRleDpfLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6bi50eXBlP24uY29udGV4dC5hbGxvd01vdXNlVXBUcmlnZ2VyUmVmOnRtLGZsb2F0aW5nUm9vdENvbnRleHQ6ZXYsaXRlbVByb3BzOmVVLHBvcHVwUHJvcHM6ZUYsdHJpZ2dlclByb3BzOmVILGl0ZW1Eb21FbGVtZW50czplTyxpdGVtTGFiZWxzOmVDLG1vdW50ZWQ6ZWksb3BlbjplZSxwb3B1cFJlZjpNLHBvc2l0aW9uZXJSZWY6SSxzZXRPcGVuOmVtLHNldFBvc2l0aW9uZXJFbGVtZW50OmVhLHRyaWdnZXJFbGVtZW50OmIsc2V0VHJpZ2dlckVsZW1lbnQ6eSx0cmFuc2l0aW9uU3RhdHVzOmVzLGxhc3RPcGVuQ2hhbmdlUmVhc29uOlAsaW5zdGFudFR5cGU6aixvbk9wZW5DaGFuZ2VDb21wbGV0ZTppLHNldEhvdmVyRW5hYmxlZDpPLHR5cGluZ1JlZjplXyxtb2RhbDpLLGRpc2FibGVkOmMscGFyZW50Om4scm9vdElkOlgsYWxsb3dNb3VzZUVudGVyOlEsc2V0QWxsb3dNb3VzZUVudGVyOkd9KSxbUyxldixlVSxlRixlSCxlTyxlQyxlaSxlZSxJLGVtLGVzLGIsZWEsUCxqLGksSyxjLG4sWCxRLEddKSxlSz0oMCxsLmpzeCkobkouUHJvdmlkZXIse3ZhbHVlOmVYLGNoaWxkcmVuOnJ9KTtyZXR1cm4gdm9pZCAwPT09bi50eXBlfHxcImNvbnRleHQtbWVudVwiPT09bi50eXBlPygwLGwuanN4KShaLHtjaGlsZHJlbjplS30pOmVLfTtmdW5jdGlvbiB0YihlLG4sdCxyKXt2YXIgbyxhLGksbCxzO2xldCBjPVAodHkpLmN1cnJlbnQ7cmV0dXJuIG89YyxhPWUsaT1uLGw9dCxzPXIsKG8ucmVmc1swXSE9PWF8fG8ucmVmc1sxXSE9PWl8fG8ucmVmc1syXSE9PWx8fG8ucmVmc1szXSE9PXMpJiZ0eChjLFtlLG4sdCxyXSksYy5jYWxsYmFja31mdW5jdGlvbiB0eSgpe3JldHVybntjYWxsYmFjazpudWxsLGNsZWFudXA6bnVsbCxyZWZzOltdfX1mdW5jdGlvbiB0eChlLG4pe2lmKGUucmVmcz1uLG4uZXZlcnkoZT0+bnVsbD09ZSkpe2UuY2FsbGJhY2s9bnVsbDtyZXR1cm59ZS5jYWxsYmFjaz10PT57aWYoZS5jbGVhbnVwJiYoZS5jbGVhbnVwKCksZS5jbGVhbnVwPW51bGwpLG51bGwhPXQpe2xldCByPUFycmF5KG4ubGVuZ3RoKS5maWxsKG51bGwpO2ZvcihsZXQgZT0wO2U8bi5sZW5ndGg7ZSs9MSl7bGV0IG89bltlXTtpZihudWxsIT1vKXN3aXRjaCh0eXBlb2Ygbyl7Y2FzZVwiZnVuY3Rpb25cIjp7bGV0IG49byh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBuJiYocltlXT1uKTticmVha31jYXNlXCJvYmplY3RcIjpvLmN1cnJlbnQ9dH19ZS5jbGVhbnVwPSgpPT57Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKz0xKXtsZXQgdD1uW2VdO2lmKG51bGwhPXQpc3dpdGNoKHR5cGVvZiB0KXtjYXNlXCJmdW5jdGlvblwiOntsZXQgbj1yW2VdO1wiZnVuY3Rpb25cIj09dHlwZW9mIG4/bigpOnQobnVsbCk7YnJlYWt9Y2FzZVwib2JqZWN0XCI6dC5jdXJyZW50PW51bGx9fX19fX1sZXQgdHc9cGFyc2VJbnQoQy52ZXJzaW9uLDEwKTtmdW5jdGlvbiB0aihlLG4sdD17fSl7bGV0IHI9bi5yZW5kZXIsbz1mdW5jdGlvbihlLG49e30pe2xldCB0LHtjbGFzc05hbWU6cixyZW5kZXI6b309ZSx7c3RhdGU6YT1ucixyZWY6aSxwcm9wczpsLGRpc2FibGVTdHlsZUhvb2tzOnMsY3VzdG9tU3R5bGVIb29rTWFwcGluZzpjLGVuYWJsZWQ6dT0hMH09bixkPXU/XCJmdW5jdGlvblwiPT10eXBlb2Ygcj9yKGEpOnI6dm9pZCAwOyEwIT09cyYmKHQ9Qy51c2VNZW1vKCgpPT51P2Z1bmN0aW9uKGUsbil7bGV0IHQ9e307Zm9yKGxldCByIGluIGUpe2xldCBvPWVbcl07aWYobj8uaGFzT3duUHJvcGVydHkocikpe2xldCBlPW5bcl0obyk7bnVsbCE9ZSYmT2JqZWN0LmFzc2lnbih0LGUpO2NvbnRpbnVlfSEwPT09bz90W2BkYXRhLSR7ci50b0xvd2VyQ2FzZSgpfWBdPVwiXCI6byYmKHRbYGRhdGEtJHtyLnRvTG93ZXJDYXNlKCl9YF09by50b1N0cmluZygpKX1yZXR1cm4gdH0oYSxjKTpucixbYSxjLHVdKSk7bGV0IGY9dT90bCh0LEFycmF5LmlzQXJyYXkobCk/ZnVuY3Rpb24oZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiB0cztpZigxPT09ZS5sZW5ndGgpcmV0dXJuIHRmKGVbMF0sdHMpO2xldCBuPXsuLi50ZihlWzBdLHRzKX07Zm9yKGxldCB0PTE7dDxlLmxlbmd0aDt0Kz0xKW49dHUobixlW3RdKTtyZXR1cm4gbn0obCk6bCk/P25yOm5yO3JldHVybihcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQmJih1P0FycmF5LmlzQXJyYXkoaSk/Zi5yZWY9ZnVuY3Rpb24oZSl7dmFyIG4sdDtsZXQgcj1QKHR5KS5jdXJyZW50O3JldHVybiBuPXIsdD1lLChuLnJlZnMubGVuZ3RoIT09dC5sZW5ndGh8fG4ucmVmcy5zb21lKChlLG4pPT5lIT09dFtuXSkpJiZ0eChyLGUpLHIuY2FsbGJhY2t9KFtmLnJlZix0ayhvKSwuLi5pXSk6Zi5yZWY9dGIoZi5yZWYsdGsobyksaSk6dGIobnVsbCxudWxsKSksdSk/KHZvaWQgMCE9PWQmJihmLmNsYXNzTmFtZT10aChmLmNsYXNzTmFtZSxkKSksZik6bnJ9KG4sdCk7cmV0dXJuITE9PT10LmVuYWJsZWQ/bnVsbDpmdW5jdGlvbihlLG4sdCxyKXtpZihuKXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBuKXJldHVybiBuKHQscik7bGV0IGU9dGModCxuLnByb3BzKTtyZXR1cm4gZS5yZWY9dC5yZWYsQy5jbG9uZUVsZW1lbnQobixlKX1pZihlJiZcInN0cmluZ1wiPT10eXBlb2YgZSl7dmFyIG8sYTtyZXR1cm4gbz1lLGE9dCxcImJ1dHRvblwiPT09bz8oMCxsLmpzeCkoXCJidXR0b25cIix7dHlwZTpcImJ1dHRvblwiLC4uLmF9KTpcImltZ1wiPT09bz8oMCxsLmpzeCkoXCJpbWdcIix7YWx0OlwiXCIsLi4uYX0pOkMuY3JlYXRlRWxlbWVudChvLGEpfXRocm93IEVycm9yKFwiQmFzZSBVSTogUmVuZGVyIGVsZW1lbnQgb3IgZnVuY3Rpb24gYXJlIG5vdCBkZWZpbmVkLlwiKX0oZSxyLG8sdC5zdGF0ZT8/bnIpfWZ1bmN0aW9uIHRrKGUpe3JldHVybiBlJiZcImZ1bmN0aW9uXCIhPXR5cGVvZiBlP3R3Pj0xOT9lLnByb3BzLnJlZjplLnJlZjpudWxsfWxldCB0QT1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiB0TyhlPSExKXtsZXQgbj1DLnVzZUNvbnRleHQodEEpO2lmKHZvaWQgMD09PW4mJiFlKXRocm93IEVycm9yKFwiQmFzZSBVSTogQ29tcG9zaXRlUm9vdENvbnRleHQgaXMgbWlzc2luZy4gQ29tcG9zaXRlIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8Q29tcG9zaXRlLlJvb3Q+LlwiKTtyZXR1cm4gbn1sZXQgdEM9Qy5jcmVhdGVDb250ZXh0KHtyZWdpc3RlcjooKT0+e30sdW5yZWdpc3RlcjooKT0+e30sc3Vic2NyaWJlTWFwQ2hhbmdlOigpPT4oKT0+e30sZWxlbWVudHNSZWY6e2N1cnJlbnQ6W119LG5leHRJbmRleFJlZjp7Y3VycmVudDowfX0pLHRTPSgocj17fSlbci5Ob25lPTBdPVwiTm9uZVwiLHJbci5HdWVzc0Zyb21PcmRlcj0xXT1cIkd1ZXNzRnJvbU9yZGVyXCIscik7ZnVuY3Rpb24gdEUoZT17fSl7bGV0e2xhYmVsOm4sbWV0YWRhdGE6dCx0ZXh0UmVmOnIsaW5kZXhHdWVzc0JlaGF2aW9yOm99PWUse3JlZ2lzdGVyOmEsdW5yZWdpc3RlcjppLHN1YnNjcmliZU1hcENoYW5nZTpsLGVsZW1lbnRzUmVmOnMsbGFiZWxzUmVmOmMsbmV4dEluZGV4UmVmOnV9PUMudXNlQ29udGV4dCh0QyksZD1DLnVzZVJlZigtMSksW2YscF09Qy51c2VTdGF0ZShvPT09dFMuR3Vlc3NGcm9tT3JkZXI/KCk9PntpZigtMT09PWQuY3VycmVudCl7bGV0IGU9dS5jdXJyZW50O3UuY3VycmVudCs9MSxkLmN1cnJlbnQ9ZX1yZXR1cm4gZC5jdXJyZW50fTotMSksaD1DLnVzZVJlZihudWxsKSxnPUMudXNlQ2FsbGJhY2soZT0+e2lmKGguY3VycmVudD1lLC0xIT09ZiYmbnVsbCE9PWUmJihzLmN1cnJlbnRbZl09ZSxjKSl7bGV0IHQ9dm9pZCAwIT09bjtjLmN1cnJlbnRbZl09dD9uOnI/LmN1cnJlbnQ/LnRleHRDb250ZW50Pz9lLnRleHRDb250ZW50fX0sW2YscyxjLG4scl0pO3JldHVybiBGKCgpPT57bGV0IGU9aC5jdXJyZW50O2lmKGUpcmV0dXJuIGEoZSx0KSwoKT0+e2koZSl9fSxbYSxpLHRdKSxGKCgpPT5sKGU9PntsZXQgbj1oLmN1cnJlbnQ/ZS5nZXQoaC5jdXJyZW50KT8uaW5kZXg6bnVsbDtudWxsIT1uJiZwKG4pfSksW2wscF0pLEMudXNlTWVtbygoKT0+KHtyZWY6ZyxpbmRleDpmfSksW2YsZ10pfWZ1bmN0aW9uIHRfKGUpe2xldHtyZW5kZXI6bixjbGFzc05hbWU6dCxpdGVtUmVmOnI9bnVsbCxtZXRhZGF0YTpvLC4uLmF9PWUse3Byb3BzOmkscmVmOmx9PWZ1bmN0aW9uKGU9e30pe2xldHtoaWdobGlnaHRlZEluZGV4Om4sb25IaWdobGlnaHRlZEluZGV4Q2hhbmdlOnQsaGlnaGxpZ2h0SXRlbU9uSG92ZXI6cn09dE8oKSx7cmVmOm8saW5kZXg6YX09dEUoZSksaT1uPT09YSxsPUMudXNlUmVmKG51bGwpLHM9dGIobyxsKSxjPUMudXNlTWVtbygoKT0+KHt0YWJJbmRleDppPzA6LTEsb25Gb2N1cygpe3QoYSl9LG9uTW91c2VNb3ZlKCl7bGV0IGU9bC5jdXJyZW50O2lmKCFyfHwhZSlyZXR1cm47bGV0IG49ZS5oYXNBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKXx8XCJ0cnVlXCI9PT1lLmFyaWFEaXNhYmxlZDtpfHxufHxlLmZvY3VzKCl9fSksW2EsaSx0LHJdKTtyZXR1cm4gQy51c2VNZW1vKCgpPT4oe3Byb3BzOmMscmVmOnMsaW5kZXg6YX0pLFtjLGEsc10pfSh7bWV0YWRhdGE6b30pO3JldHVybiB0aihcImRpdlwiLGUse3JlZjpbcixsXSxwcm9wczpbaSxhXX0pfWxldCB0UD0oKG89e30pLnN0YXJ0aW5nU3R5bGU9XCJkYXRhLXN0YXJ0aW5nLXN0eWxlXCIsby5lbmRpbmdTdHlsZT1cImRhdGEtZW5kaW5nLXN0eWxlXCIsbyksdHo9e1t0UC5zdGFydGluZ1N0eWxlXTpcIlwifSx0TD17W3RQLmVuZGluZ1N0eWxlXTpcIlwifSx0VD17dHJhbnNpdGlvblN0YXR1czplPT5cInN0YXJ0aW5nXCI9PT1lP3R6OlwiZW5kaW5nXCI9PT1lP3RMOm51bGx9LHRSPSgoYT17fSkub3Blbj1cImRhdGEtb3BlblwiLGEuY2xvc2VkPVwiZGF0YS1jbG9zZWRcIixhW2Euc3RhcnRpbmdTdHlsZT10UC5zdGFydGluZ1N0eWxlXT1cInN0YXJ0aW5nU3R5bGVcIixhW2EuZW5kaW5nU3R5bGU9dFAuZW5kaW5nU3R5bGVdPVwiZW5kaW5nU3R5bGVcIixhLmFuY2hvckhpZGRlbj1cImRhdGEtYW5jaG9yLWhpZGRlblwiLGEpLHROPSgoaT17fSkucG9wdXBPcGVuPVwiZGF0YS1wb3B1cC1vcGVuXCIsaS5wcmVzc2VkPVwiZGF0YS1wcmVzc2VkXCIsaSksdEQ9e1t0Ti5wb3B1cE9wZW5dOlwiXCJ9LHRCPXtbdE4ucG9wdXBPcGVuXTpcIlwiLFt0Ti5wcmVzc2VkXTpcIlwifSx0TT17W3RSLm9wZW5dOlwiXCJ9LHRJPXtbdFIuY2xvc2VkXTpcIlwifSx0SD17W3RSLmFuY2hvckhpZGRlbl06XCJcIn0sdEY9e29wZW46ZT0+ZT90RDpudWxsfSx0VT17b3BlbjplPT5lP3RCOm51bGx9LHRWPXtvcGVuOmU9PmU/dE06dEksYW5jaG9ySGlkZGVuOmU9PmU/dEg6bnVsbH07ZnVuY3Rpb24gdHEoZT17fSl7bGV0e2Rpc2FibGVkOm49ITEsZm9jdXNhYmxlV2hlbkRpc2FibGVkOnQsdGFiSW5kZXg6cj0wLG5hdGl2ZTpvPSEwfT1lLGE9Qy51c2VSZWYobnVsbCksaT12b2lkIDAhPT10TyghMCksbD1UKCgpPT57bGV0IGU9YS5jdXJyZW50O3JldHVybiEhKGU/LnRhZ05hbWU9PT1cIkFcIiYmZT8uaHJlZil9KSx7cHJvcHM6c309ZnVuY3Rpb24oZSl7bGV0e2ZvY3VzYWJsZVdoZW5EaXNhYmxlZDpuLGRpc2FibGVkOnQsY29tcG9zaXRlOnI9ITEsdGFiSW5kZXg6bz0wLGlzTmF0aXZlQnV0dG9uOmF9PWUsaT1yJiYhMSE9PW4sbD1yJiYhMT09PW47cmV0dXJue3Byb3BzOkMudXNlTWVtbygoKT0+e2xldCBlPXtvbktleURvd24oZSl7dCYmbiYmXCJUYWJcIiE9PWUua2V5JiZlLnByZXZlbnREZWZhdWx0KCl9fTtyZXR1cm4gcnx8KGUudGFiSW5kZXg9bywhYSYmdCYmKGUudGFiSW5kZXg9bj9vOi0xKSksKGEmJihufHxpKXx8IWEmJnQpJiYoZVtcImFyaWEtZGlzYWJsZWRcIl09dCksYSYmKCFufHxsKSYmKGUuZGlzYWJsZWQ9dCksZX0sW3IsdCxuLGksbCxhLG9dKX19KHtmb2N1c2FibGVXaGVuRGlzYWJsZWQ6dCxkaXNhYmxlZDpuLGNvbXBvc2l0ZTppLHRhYkluZGV4OnIsaXNOYXRpdmVCdXR0b246b30pO3JldHVybiBGKCgpPT57bGV0IGU9YS5jdXJyZW50O2UgaW5zdGFuY2VvZiBIVE1MQnV0dG9uRWxlbWVudCYmaSYmbiYmdm9pZCAwPT09cy5kaXNhYmxlZCYmZS5kaXNhYmxlZCYmKGUuZGlzYWJsZWQ9ITEpfSxbbixzLmRpc2FibGVkLGldKSx7Z2V0QnV0dG9uUHJvcHM6Qy51c2VDYWxsYmFjaygoZT17fSk9PntsZXR7b25DbGljazp0LG9uTW91c2VEb3duOnIsb25LZXlVcDphLG9uS2V5RG93bjppLG9uUG9pbnRlckRvd246YywuLi51fT1lO3JldHVybiB0Yyh7dHlwZTpvP1wiYnV0dG9uXCI6dm9pZCAwLG9uQ2xpY2soZSl7aWYobilyZXR1cm4gdm9pZCBlLnByZXZlbnREZWZhdWx0KCk7dD8uKGUpfSxvbk1vdXNlRG93bihlKXtufHxyPy4oZSl9LG9uS2V5RG93bihlKXtufHwodHAoZSksaT8uKGUpKSwhZS5iYXNlVUlIYW5kbGVyUHJldmVudGVkJiYoZS50YXJnZXQhPT1lLmN1cnJlbnRUYXJnZXR8fG98fGwoKXx8XCJFbnRlclwiIT09ZS5rZXl8fG58fCh0Py4oZSksZS5wcmV2ZW50RGVmYXVsdCgpKSl9LG9uS2V5VXAoZSl7bnx8KHRwKGUpLGE/LihlKSksIWUuYmFzZVVJSGFuZGxlclByZXZlbnRlZCYmKGUudGFyZ2V0IT09ZS5jdXJyZW50VGFyZ2V0fHxvfHxufHxcIiBcIiE9PWUua2V5fHx0Py4oZSkpfSxvblBvaW50ZXJEb3duKGUpe2lmKG4pcmV0dXJuIHZvaWQgZS5wcmV2ZW50RGVmYXVsdCgpO2M/LihlKX19LG8/dm9pZCAwOntyb2xlOlwiYnV0dG9uXCJ9LHMsdSl9LFtuLHMsbyxsXSksYnV0dG9uUmVmOmF9fWxldCB0Vz1DLmZvcndhcmRSZWYoZnVuY3Rpb24oZSxuKXtsZXR7cmVuZGVyOnQsY2xhc3NOYW1lOnIsZGlzYWJsZWQ6bz0hMSxuYXRpdmVCdXR0b246YT0hMCwuLi5pfT1lLHt0cmlnZ2VyUHJvcHM6cyxkaXNhYmxlZDpjLHNldFRyaWdnZXJFbGVtZW50OnUsb3BlbjpkLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6Zixwb3NpdGlvbmVyUmVmOnAscGFyZW50OmgsbGFzdE9wZW5DaGFuZ2VSZWFzb246Zyxyb290SWQ6bX09bjAoKSx2PW98fGMsYj1DLnVzZVJlZihudWxsKSx5PWVrKCkse2dldEJ1dHRvblByb3BzOngsYnV0dG9uUmVmOnd9PXRxKHtkaXNhYmxlZDp2LG5hdGl2ZTphfSksaj10Yih3LHUpLHtldmVudHM6a309VygpO0MudXNlRWZmZWN0KCgpPT57ZHx8dm9pZCAwIT09aC50eXBlfHwoZi5jdXJyZW50PSExKX0sW2YsZCxoLnR5cGVdKTtsZXQgQT1UKGU9PntpZighYi5jdXJyZW50KXJldHVybjt5LmNsZWFyKCksZi5jdXJyZW50PSExO2xldCBuPWUudGFyZ2V0O2lmKGVZKGIuY3VycmVudCxuKXx8ZVkocC5jdXJyZW50LG4pfHxuPT09Yi5jdXJyZW50fHxudWxsIT1uJiZmdW5jdGlvbiBlKG4pe3JldHVybiBlbihuKSYmbi5oYXNBdHRyaWJ1dGUoXCJkYXRhLXJvb3Rvd25lcmlkXCIpP24uZ2V0QXR0cmlidXRlKFwiZGF0YS1yb290b3duZXJpZFwiKT8/dm9pZCAwOmVoKG4pP3ZvaWQgMDplKGV2KG4pKX0obik9PT1tKXJldHVybjtsZXQgdD1mdW5jdGlvbihlKXtsZXQgbj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSxcIjo6YmVmb3JlXCIpLHI9d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSxcIjo6YWZ0ZXJcIik7aWYoXCJub25lXCI9PT10LmNvbnRlbnQmJlwibm9uZVwiPT09ci5jb250ZW50KXJldHVybiBuO2xldCBvPXBhcnNlRmxvYXQodC53aWR0aCl8fDAsYT1wYXJzZUZsb2F0KHQuaGVpZ2h0KXx8MCxpPXBhcnNlRmxvYXQoci53aWR0aCl8fDAsbD1wYXJzZUZsb2F0KHIuaGVpZ2h0KXx8MCxzPU1hdGgubWF4KG4ud2lkdGgsbyxpKSxjPU1hdGgubWF4KG4uaGVpZ2h0LGEsbCksdT1zLW4ud2lkdGgsZD1jLW4uaGVpZ2h0O3JldHVybntsZWZ0Om4ubGVmdC11LzIscmlnaHQ6bi5yaWdodCt1LzIsdG9wOm4udG9wLWQvMixib3R0b206bi5ib3R0b20rZC8yfX0oYi5jdXJyZW50KTtlLmNsaWVudFg+PXQubGVmdC0yJiZlLmNsaWVudFg8PXQucmlnaHQrMiYmZS5jbGllbnRZPj10LnRvcC0yJiZlLmNsaWVudFk8PXQuYm90dG9tKzJ8fGsuZW1pdChcImNsb3NlXCIse2RvbUV2ZW50OmUscmVhc29uOlwiY2FuY2VsLW9wZW5cIn0pfSk7Qy51c2VFZmZlY3QoKCk9PntkJiZcInRyaWdnZXItaG92ZXJcIj09PWcmJmVRKGIuY3VycmVudCkuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixBLHtvbmNlOiEwfSl9LFtkLEEsZ10pO2xldCBPPUMudXNlQ2FsbGJhY2soZT0+dGMoe1wiYXJpYS1oYXNwb3B1cFwiOlwibWVudVwiLHJlZjpqLG9uTW91c2VEb3duOmU9PntkfHwoeS5zdGFydCgyMDAsKCk9PntmLmN1cnJlbnQ9ITB9KSxlUShlLmN1cnJlbnRUYXJnZXQpLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsQSx7b25jZTohMH0pKX19LGUseCksW3gsaixkLGYseSxBXSksUz10aihcImJ1dHRvblwiLGUse3N0YXRlOkMudXNlTWVtbygoKT0+KHtkaXNhYmxlZDp2LG9wZW46ZH0pLFt2LGRdKSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnRVLHJlZjpbYixuLHddLHByb3BzOltzLGksT119KTtyZXR1cm5cIm1lbnViYXJcIj09PWgudHlwZT8oMCxsLmpzeCkodF8se3JlbmRlcjpTfSk6U30pLHQkPXtjbGlwOlwicmVjdCgwIDAgMCAwKVwiLG92ZXJmbG93OlwiaGlkZGVuXCIsd2hpdGVTcGFjZTpcIm5vd3JhcFwiLHBvc2l0aW9uOlwiZml4ZWRcIix0b3A6MCxsZWZ0OjAsYm9yZGVyOjAscGFkZGluZzowLHdpZHRoOjEsaGVpZ2h0OjEsbWFyZ2luOi0xfSx0Wj1DLmZvcndhcmRSZWYoZnVuY3Rpb24oZSxuKXtsZXRbdCxyXT1DLnVzZVN0YXRlKCk7cmV0dXJuIEYoKCk9PntlTCYmcihcImJ1dHRvblwiKX0sW10pLCgwLGwuanN4KShcInNwYW5cIix7Li4uZSxyZWY6bix0YWJJbmRleDowLHJvbGU6dCxcImFyaWEtaGlkZGVuXCI6IXR8fHZvaWQgMCxzdHlsZTp0JCxcImRhdGEtYmFzZS11aS1mb2N1cy1ndWFyZFwiOlwiXCJ9KX0pO3ZhciB0WT0naW5wdXQ6bm90KFtpbmVydF0pLHNlbGVjdDpub3QoW2luZXJ0XSksdGV4dGFyZWE6bm90KFtpbmVydF0pLGFbaHJlZl06bm90KFtpbmVydF0pLGJ1dHRvbjpub3QoW2luZXJ0XSksW3RhYmluZGV4XTpub3Qoc2xvdCk6bm90KFtpbmVydF0pLGF1ZGlvW2NvbnRyb2xzXTpub3QoW2luZXJ0XSksdmlkZW9bY29udHJvbHNdOm5vdChbaW5lcnRdKSxbY29udGVudGVkaXRhYmxlXTpub3QoW2NvbnRlbnRlZGl0YWJsZT1cImZhbHNlXCJdKTpub3QoW2luZXJ0XSksZGV0YWlscz5zdW1tYXJ5OmZpcnN0LW9mLXR5cGU6bm90KFtpbmVydF0pLGRldGFpbHM6bm90KFtpbmVydF0pJyx0WD1cInVuZGVmaW5lZFwiPT10eXBlb2YgRWxlbWVudCx0Sz10WD9mdW5jdGlvbigpe306RWxlbWVudC5wcm90b3R5cGUubWF0Y2hlc3x8RWxlbWVudC5wcm90b3R5cGUubXNNYXRjaGVzU2VsZWN0b3J8fEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3Rvcix0UT0hdFgmJkVsZW1lbnQucHJvdG90eXBlLmdldFJvb3ROb2RlP2Z1bmN0aW9uKGUpe3ZhciBuO3JldHVybiBudWxsPT1lfHxudWxsPT0obj1lLmdldFJvb3ROb2RlKT92b2lkIDA6bi5jYWxsKGUpfTpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZT92b2lkIDA6ZS5vd25lckRvY3VtZW50fSx0Rz1mdW5jdGlvbiBlKG4sdCl7dm9pZCAwPT09dCYmKHQ9ITApO3ZhciByLG89bnVsbD09bnx8bnVsbD09KHI9bi5nZXRBdHRyaWJ1dGUpP3ZvaWQgMDpyLmNhbGwobixcImluZXJ0XCIpO3JldHVyblwiXCI9PT1vfHxcInRydWVcIj09PW98fHQmJm4mJmUobi5wYXJlbnROb2RlKX0sdEo9ZnVuY3Rpb24oZSl7dmFyIG4sdD1udWxsPT1lfHxudWxsPT0obj1lLmdldEF0dHJpYnV0ZSk/dm9pZCAwOm4uY2FsbChlLFwiY29udGVudGVkaXRhYmxlXCIpO3JldHVyblwiXCI9PT10fHxcInRydWVcIj09PXR9LHQwPWZ1bmN0aW9uKGUsbix0KXtpZih0RyhlKSlyZXR1cm5bXTt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoZS5xdWVyeVNlbGVjdG9yQWxsKHRZKSk7cmV0dXJuIG4mJnRLLmNhbGwoZSx0WSkmJnIudW5zaGlmdChlKSxyPXIuZmlsdGVyKHQpfSx0MT1mdW5jdGlvbiBlKG4sdCxyKXtmb3IodmFyIG89W10sYT1BcnJheS5mcm9tKG4pO2EubGVuZ3RoOyl7dmFyIGk9YS5zaGlmdCgpO2lmKCF0RyhpLCExKSlpZihcIlNMT1RcIj09PWkudGFnTmFtZSl7dmFyIGw9aS5hc3NpZ25lZEVsZW1lbnRzKCkscz1lKGwubGVuZ3RoP2w6aS5jaGlsZHJlbiwhMCxyKTtyLmZsYXR0ZW4/by5wdXNoLmFwcGx5KG8scyk6by5wdXNoKHtzY29wZVBhcmVudDppLGNhbmRpZGF0ZXM6c30pfWVsc2V7dEsuY2FsbChpLHRZKSYmci5maWx0ZXIoaSkmJih0fHwhbi5pbmNsdWRlcyhpKSkmJm8ucHVzaChpKTt2YXIgYz1pLnNoYWRvd1Jvb3R8fFwiZnVuY3Rpb25cIj09dHlwZW9mIHIuZ2V0U2hhZG93Um9vdCYmci5nZXRTaGFkb3dSb290KGkpLHU9IXRHKGMsITEpJiYoIXIuc2hhZG93Um9vdEZpbHRlcnx8ci5zaGFkb3dSb290RmlsdGVyKGkpKTtpZihjJiZ1KXt2YXIgZD1lKCEwPT09Yz9pLmNoaWxkcmVuOmMuY2hpbGRyZW4sITAscik7ci5mbGF0dGVuP28ucHVzaC5hcHBseShvLGQpOm8ucHVzaCh7c2NvcGVQYXJlbnQ6aSxjYW5kaWRhdGVzOmR9KX1lbHNlIGEudW5zaGlmdC5hcHBseShhLGkuY2hpbGRyZW4pfX1yZXR1cm4gb30sdDI9ZnVuY3Rpb24oZSl7cmV0dXJuIWlzTmFOKHBhcnNlSW50KGUuZ2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiksMTApKX0sdDQ9ZnVuY3Rpb24oZSl7aWYoIWUpdGhyb3cgRXJyb3IoXCJObyBub2RlIHByb3ZpZGVkXCIpO3JldHVybiBlLnRhYkluZGV4PDAmJigvXihBVURJT3xWSURFT3xERVRBSUxTKSQvLnRlc3QoZS50YWdOYW1lKXx8dEooZSkpJiYhdDIoZSk/MDplLnRhYkluZGV4fSx0NT1mdW5jdGlvbihlLG4pe3ZhciB0PXQ0KGUpO3JldHVybiB0PDAmJm4mJiF0MihlKT8wOnR9LHQzPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGUudGFiSW5kZXg9PT1uLnRhYkluZGV4P2UuZG9jdW1lbnRPcmRlci1uLmRvY3VtZW50T3JkZXI6ZS50YWJJbmRleC1uLnRhYkluZGV4fSx0Nj1mdW5jdGlvbihlKXtyZXR1cm5cIklOUFVUXCI9PT1lLnRhZ05hbWV9LHQ5PWZ1bmN0aW9uKGUsbil7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspaWYoZVt0XS5jaGVja2VkJiZlW3RdLmZvcm09PT1uKXJldHVybiBlW3RdfSx0OD1mdW5jdGlvbihlKXtpZighZS5uYW1lKXJldHVybiEwO3ZhciBuLHQ9ZS5mb3JtfHx0UShlKSxyPWZ1bmN0aW9uKGUpe3JldHVybiB0LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W3R5cGU9XCJyYWRpb1wiXVtuYW1lPVwiJytlKydcIl0nKX07aWYoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkNTUyYmXCJmdW5jdGlvblwiPT10eXBlb2Ygd2luZG93LkNTUy5lc2NhcGUpbj1yKHdpbmRvdy5DU1MuZXNjYXBlKGUubmFtZSkpO2Vsc2UgdHJ5e249cihlLm5hbWUpfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLmVycm9yKFwiTG9va3MgbGlrZSB5b3UgaGF2ZSBhIHJhZGlvIGJ1dHRvbiB3aXRoIGEgbmFtZSBhdHRyaWJ1dGUgY29udGFpbmluZyBpbnZhbGlkIENTUyBzZWxlY3RvciBjaGFyYWN0ZXJzIGFuZCBuZWVkIHRoZSBDU1MuZXNjYXBlIHBvbHlmaWxsOiAlc1wiLGUubWVzc2FnZSksITF9dmFyIG89dDkobixlLmZvcm0pO3JldHVybiFvfHxvPT09ZX0sdDc9ZnVuY3Rpb24oZSl7cmV0dXJuIHQ2KGUpJiZcInJhZGlvXCI9PT1lLnR5cGUmJiF0OChlKX0scmU9ZnVuY3Rpb24oZSl7dmFyIG4sdCxyLG8sYSxpLGwscz1lJiZ0UShlKSxjPW51bGw9PShuPXMpP3ZvaWQgMDpuLmhvc3QsdT0hMTtpZihzJiZzIT09ZSlmb3IodT0hIShudWxsIT0odD1jKSYmbnVsbCE9KHI9dC5vd25lckRvY3VtZW50KSYmci5jb250YWlucyhjKXx8bnVsbCE9ZSYmbnVsbCE9KG89ZS5vd25lckRvY3VtZW50KSYmby5jb250YWlucyhlKSk7IXUmJmM7KXU9ISEobnVsbCE9KGk9Yz1udWxsPT0oYT1zPXRRKGMpKT92b2lkIDA6YS5ob3N0KSYmbnVsbCE9KGw9aS5vd25lckRvY3VtZW50KSYmbC5jb250YWlucyhjKSk7cmV0dXJuIHV9LHJuPWZ1bmN0aW9uKGUpe3ZhciBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdD1uLndpZHRoLHI9bi5oZWlnaHQ7cmV0dXJuIDA9PT10JiYwPT09cn0scnQ9ZnVuY3Rpb24oZSxuKXt2YXIgdD1uLmRpc3BsYXlDaGVjayxyPW4uZ2V0U2hhZG93Um9vdDtpZihcImhpZGRlblwiPT09Z2V0Q29tcHV0ZWRTdHlsZShlKS52aXNpYmlsaXR5KXJldHVybiEwO3ZhciBvPXRLLmNhbGwoZSxcImRldGFpbHM+c3VtbWFyeTpmaXJzdC1vZi10eXBlXCIpP2UucGFyZW50RWxlbWVudDplO2lmKHRLLmNhbGwobyxcImRldGFpbHM6bm90KFtvcGVuXSkgKlwiKSlyZXR1cm4hMDtpZih0JiZcImZ1bGxcIiE9PXQmJlwibGVnYWN5LWZ1bGxcIiE9PXQpe2lmKFwibm9uLXplcm8tYXJlYVwiPT09dClyZXR1cm4gcm4oZSl9ZWxzZXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiByKXtmb3IodmFyIGE9ZTtlOyl7dmFyIGk9ZS5wYXJlbnRFbGVtZW50LGw9dFEoZSk7aWYoaSYmIWkuc2hhZG93Um9vdCYmITA9PT1yKGkpKXJldHVybiBybihlKTtlPWUuYXNzaWduZWRTbG90P2UuYXNzaWduZWRTbG90Oml8fGw9PT1lLm93bmVyRG9jdW1lbnQ/aTpsLmhvc3R9ZT1hfWlmKHJlKGUpKXJldHVybiFlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoO2lmKFwibGVnYWN5LWZ1bGxcIiE9PXQpcmV0dXJuITB9cmV0dXJuITF9LHJyPWZ1bmN0aW9uKGUpe2lmKC9eKElOUFVUfEJVVFRPTnxTRUxFQ1R8VEVYVEFSRUEpJC8udGVzdChlLnRhZ05hbWUpKWZvcih2YXIgbj1lLnBhcmVudEVsZW1lbnQ7bjspe2lmKFwiRklFTERTRVRcIj09PW4udGFnTmFtZSYmbi5kaXNhYmxlZCl7Zm9yKHZhciB0PTA7dDxuLmNoaWxkcmVuLmxlbmd0aDt0Kyspe3ZhciByPW4uY2hpbGRyZW4uaXRlbSh0KTtpZihcIkxFR0VORFwiPT09ci50YWdOYW1lKXJldHVybiEhdEsuY2FsbChuLFwiZmllbGRzZXRbZGlzYWJsZWRdICpcIil8fCFyLmNvbnRhaW5zKGUpfXJldHVybiEwfW49bi5wYXJlbnRFbGVtZW50fXJldHVybiExfSxybz1mdW5jdGlvbihlLG4pe3JldHVybiEobi5kaXNhYmxlZHx8dEcobil8fHQ2KG4pJiZcImhpZGRlblwiPT09bi50eXBlfHxydChuLGUpfHxcIkRFVEFJTFNcIj09PW4udGFnTmFtZSYmQXJyYXkucHJvdG90eXBlLnNsaWNlLmFwcGx5KG4uY2hpbGRyZW4pLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuXCJTVU1NQVJZXCI9PT1lLnRhZ05hbWV9KXx8cnIobikpfSxyYT1mdW5jdGlvbihlLG4pe3JldHVybiEodDcobil8fDA+dDQobikpJiYhIXJvKGUsbil9LHJpPWZ1bmN0aW9uKGUpe3ZhciBuPXBhcnNlSW50KGUuZ2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIiksMTApO3JldHVybiEhaXNOYU4obil8fCEhKG4+PTApfSxybD1mdW5jdGlvbiBlKG4pe3ZhciB0PVtdLHI9W107cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbihuLG8pe3ZhciBhPSEhbi5zY29wZVBhcmVudCxpPWE/bi5zY29wZVBhcmVudDpuLGw9dDUoaSxhKSxzPWE/ZShuLmNhbmRpZGF0ZXMpOmk7MD09PWw/YT90LnB1c2guYXBwbHkodCxzKTp0LnB1c2goaSk6ci5wdXNoKHtkb2N1bWVudE9yZGVyOm8sdGFiSW5kZXg6bCxpdGVtOm4saXNTY29wZTphLGNvbnRlbnQ6c30pfSksci5zb3J0KHQzKS5yZWR1Y2UoZnVuY3Rpb24oZSxuKXtyZXR1cm4gbi5pc1Njb3BlP2UucHVzaC5hcHBseShlLG4uY29udGVudCk6ZS5wdXNoKG4uY29udGVudCksZX0sW10pLmNvbmNhdCh0KX0scnM9ZnVuY3Rpb24oZSxuKXtyZXR1cm4gcmwoKG49bnx8e30pLmdldFNoYWRvd1Jvb3Q/dDEoW2VdLG4uaW5jbHVkZUNvbnRhaW5lcix7ZmlsdGVyOnJhLmJpbmQobnVsbCxuKSxmbGF0dGVuOiExLGdldFNoYWRvd1Jvb3Q6bi5nZXRTaGFkb3dSb290LHNoYWRvd1Jvb3RGaWx0ZXI6cml9KTp0MChlLG4uaW5jbHVkZUNvbnRhaW5lcixyYS5iaW5kKG51bGwsbikpKX0scmM9ZnVuY3Rpb24oZSxuKXtyZXR1cm4obj1ufHx7fSkuZ2V0U2hhZG93Um9vdD90MShbZV0sbi5pbmNsdWRlQ29udGFpbmVyLHtmaWx0ZXI6cm8uYmluZChudWxsLG4pLGZsYXR0ZW46ITAsZ2V0U2hhZG93Um9vdDpuLmdldFNoYWRvd1Jvb3R9KTp0MChlLG4uaW5jbHVkZUNvbnRhaW5lcixyby5iaW5kKG51bGwsbikpfSxydT1mdW5jdGlvbihlLG4pe2lmKG49bnx8e30sIWUpdGhyb3cgRXJyb3IoXCJObyBub2RlIHByb3ZpZGVkXCIpO3JldHVybiExIT09dEsuY2FsbChlLHRZKSYmcmEobixlKX07bGV0IHJkPSgpPT4oe2dldFNoYWRvd1Jvb3Q6ITAsZGlzcGxheUNoZWNrOlwiZnVuY3Rpb25cIj09dHlwZW9mIFJlc2l6ZU9ic2VydmVyJiZSZXNpemVPYnNlcnZlci50b1N0cmluZygpLmluY2x1ZGVzKFwiW25hdGl2ZSBjb2RlXVwiKT9cImZ1bGxcIjpcIm5vbmVcIn0pO2Z1bmN0aW9uIHJmKGUsbil7bGV0IHQ9cnMoZSxyZCgpKSxyPXQubGVuZ3RoO2lmKDA9PT1yKXJldHVybjtsZXQgbz1lWihlUShlKSksYT10LmluZGV4T2Yobyk7cmV0dXJuIHRbLTE9PT1hPzE9PT1uPzA6ci0xOmErbl19ZnVuY3Rpb24gcnAoZSl7cmV0dXJuIHJmKGVRKGUpLmJvZHksMSl8fGV9ZnVuY3Rpb24gcmgoZSl7cmV0dXJuIHJmKGVRKGUpLmJvZHksLTEpfHxlfWZ1bmN0aW9uIHJnKGUsbil7bGV0IHQ9bnx8ZS5jdXJyZW50VGFyZ2V0LHI9ZS5yZWxhdGVkVGFyZ2V0O3JldHVybiFyfHwhZVkodCxyKX1mdW5jdGlvbiBybShlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbZGF0YS10YWJpbmRleF1cIikuZm9yRWFjaChlPT57bGV0IG49ZS5kYXRhc2V0LnRhYmluZGV4O2RlbGV0ZSBlLmRhdGFzZXQudGFiaW5kZXgsbj9lLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsbik6ZS5yZW1vdmVBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiKX0pfWxldCBydj1DLmNyZWF0ZUNvbnRleHQobnVsbCkscmI9KCk9PkMudXNlQ29udGV4dChydikscnk9ZTEoXCJwb3J0YWxcIik7ZnVuY3Rpb24gcngoZT17fSl7bGV0e2lkOm4scm9vdDp0fT1lLHI9SCgpLG89cmIoKSxbYSxpXT1DLnVzZVN0YXRlKG51bGwpLGw9Qy51c2VSZWYobnVsbCk7cmV0dXJuIEYoKCk9PigpPT57YT8ucmVtb3ZlKCkscXVldWVNaWNyb3Rhc2soKCk9PntsLmN1cnJlbnQ9bnVsbH0pfSxbYV0pLEYoKCk9PntpZighcnx8bC5jdXJyZW50KXJldHVybjtsZXQgZT1uP2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKG4pOm51bGw7aWYoIWUpcmV0dXJuO2xldCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7dC5pZD1yLHQuc2V0QXR0cmlidXRlKHJ5LFwiXCIpLGUuYXBwZW5kQ2hpbGQodCksbC5jdXJyZW50PXQsaSh0KX0sW24scl0pLEYoKCk9PntpZihudWxsPT09dHx8IXJ8fGwuY3VycmVudClyZXR1cm47bGV0IGU9dHx8bz8ucG9ydGFsTm9kZTtlJiYhZWUoZSkmJihlPWUuY3VycmVudCksZT1lfHxkb2N1bWVudC5ib2R5O2xldCBhPW51bGw7biYmKChhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikpLmlkPW4sZS5hcHBlbmRDaGlsZChhKSk7bGV0IHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtzLmlkPXIscy5zZXRBdHRyaWJ1dGUocnksXCJcIiksKGU9YXx8ZSkuYXBwZW5kQ2hpbGQocyksbC5jdXJyZW50PXMsaShzKX0sW24sdCxyLG9dKSxhfWZ1bmN0aW9uIHJ3KGUpe2xldHtjaGlsZHJlbjpuLGlkOnQscm9vdDpyLHByZXNlcnZlVGFiT3JkZXI6bz0hMH09ZSxhPXJ4KHtpZDp0LHJvb3Q6cn0pLFtpLHNdPUMudXNlU3RhdGUobnVsbCksYz1DLnVzZVJlZihudWxsKSx1PUMudXNlUmVmKG51bGwpLGQ9Qy51c2VSZWYobnVsbCksZj1DLnVzZVJlZihudWxsKSxwPWk/Lm1vZGFsLGg9aT8ub3BlbixnPSEhaSYmIWkubW9kYWwmJmkub3BlbiYmbyYmISEocnx8YSk7cmV0dXJuIEMudXNlRWZmZWN0KCgpPT57aWYoYSYmbyYmIXApcmV0dXJuIGEuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIixlLCEwKSxhLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLGUsITApLCgpPT57YS5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNpblwiLGUsITApLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsZSwhMCl9O2Z1bmN0aW9uIGUoZSl7YSYmcmcoZSkmJihcImZvY3VzaW5cIj09PWUudHlwZT9ybTpmdW5jdGlvbihlKXtycyhlLHJkKCkpLmZvckVhY2goZT0+e2UuZGF0YXNldC50YWJpbmRleD1lLmdldEF0dHJpYnV0ZShcInRhYmluZGV4XCIpfHxcIlwiLGUuc2V0QXR0cmlidXRlKFwidGFiaW5kZXhcIixcIi0xXCIpfSl9KShhKX19LFthLG8scF0pLEMudXNlRWZmZWN0KCgpPT57YSYmKGh8fHJtKGEpKX0sW2gsYV0pLCgwLGwuanN4cykocnYuUHJvdmlkZXIse3ZhbHVlOkMudXNlTWVtbygoKT0+KHtwcmVzZXJ2ZVRhYk9yZGVyOm8sYmVmb3JlT3V0c2lkZVJlZjpjLGFmdGVyT3V0c2lkZVJlZjp1LGJlZm9yZUluc2lkZVJlZjpkLGFmdGVySW5zaWRlUmVmOmYscG9ydGFsTm9kZTphLHNldEZvY3VzTWFuYWdlclN0YXRlOnN9KSxbbyxhXSksY2hpbGRyZW46W2cmJmEmJigwLGwuanN4KSh0Wix7XCJkYXRhLXR5cGVcIjpcIm91dHNpZGVcIixyZWY6YyxvbkZvY3VzOmU9PntpZihyZyhlLGEpKWQuY3VycmVudD8uZm9jdXMoKTtlbHNle2xldCBlPXJoKGk/aS5kb21SZWZlcmVuY2U6bnVsbCk7ZT8uZm9jdXMoKX19fSksZyYmYSYmKDAsbC5qc3gpKFwic3BhblwiLHtcImFyaWEtb3duc1wiOmEuaWQsc3R5bGU6dCR9KSxhJiZFLmNyZWF0ZVBvcnRhbChuLGEpLGcmJmEmJigwLGwuanN4KSh0Wix7XCJkYXRhLXR5cGVcIjpcIm91dHNpZGVcIixyZWY6dSxvbkZvY3VzOmU9PntpZihyZyhlLGEpKWYuY3VycmVudD8uZm9jdXMoKTtlbHNle2xldCBuPXJwKGk/aS5kb21SZWZlcmVuY2U6bnVsbCk7bj8uZm9jdXMoKSxpPy5jbG9zZU9uRm9jdXNPdXQmJmk/Lm9uT3BlbkNoYW5nZSghMSxlLm5hdGl2ZUV2ZW50LFwiZm9jdXMtb3V0XCIpfX19KV19KX1sZXQgcmo9Qy5jcmVhdGVDb250ZXh0KHZvaWQgMCk7ZnVuY3Rpb24gcmsoZSl7bGV0e2NoaWxkcmVuOm4sa2VlcE1vdW50ZWQ6dD0hMSxjb250YWluZXI6cn09ZSx7bW91bnRlZDpvfT1uMCgpO3JldHVybiBvfHx0PygwLGwuanN4KShyai5Qcm92aWRlcix7dmFsdWU6dCxjaGlsZHJlbjooMCxsLmpzeCkocncse3Jvb3Q6cixjaGlsZHJlbjpufSl9KTpudWxsfWxldCByQT1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiByTyhlLG4sdCl7bGV0IHIse3JlZmVyZW5jZTpvLGZsb2F0aW5nOmF9PWUsaT1uRShuKSxsPW5PKG5FKG4pKSxzPW5DKGwpLGM9bmsobiksdT1cInlcIj09PWksZD1vLngrby53aWR0aC8yLWEud2lkdGgvMixmPW8ueStvLmhlaWdodC8yLWEuaGVpZ2h0LzIscD1vW3NdLzItYVtzXS8yO3N3aXRjaChjKXtjYXNlXCJ0b3BcIjpyPXt4OmQseTpvLnktYS5oZWlnaHR9O2JyZWFrO2Nhc2VcImJvdHRvbVwiOnI9e3g6ZCx5Om8ueStvLmhlaWdodH07YnJlYWs7Y2FzZVwicmlnaHRcIjpyPXt4Om8ueCtvLndpZHRoLHk6Zn07YnJlYWs7Y2FzZVwibGVmdFwiOnI9e3g6by54LWEud2lkdGgseTpmfTticmVhaztkZWZhdWx0OnI9e3g6by54LHk6by55fX1zd2l0Y2gobkEobikpe2Nhc2VcInN0YXJ0XCI6cltsXS09cCoodCYmdT8tMToxKTticmVhaztjYXNlXCJlbmRcIjpyW2xdKz1wKih0JiZ1Py0xOjEpfXJldHVybiByfWxldCByQz1hc3luYyhlLG4sdCk9PntsZXR7cGxhY2VtZW50OnI9XCJib3R0b21cIixzdHJhdGVneTpvPVwiYWJzb2x1dGVcIixtaWRkbGV3YXJlOmE9W10scGxhdGZvcm06aX09dCxsPWEuZmlsdGVyKEJvb2xlYW4pLHM9YXdhaXQgKG51bGw9PWkuaXNSVEw/dm9pZCAwOmkuaXNSVEwobikpLGM9YXdhaXQgaS5nZXRFbGVtZW50UmVjdHMoe3JlZmVyZW5jZTplLGZsb2F0aW5nOm4sc3RyYXRlZ3k6b30pLHt4OnUseTpkfT1yTyhjLHIscyksZj1yLHA9e30saD0wO2ZvcihsZXQgdD0wO3Q8bC5sZW5ndGg7dCsrKXtsZXR7bmFtZTphLGZuOmd9PWxbdF0se3g6bSx5OnYsZGF0YTpiLHJlc2V0Onl9PWF3YWl0IGcoe3g6dSx5OmQsaW5pdGlhbFBsYWNlbWVudDpyLHBsYWNlbWVudDpmLHN0cmF0ZWd5Om8sbWlkZGxld2FyZURhdGE6cCxyZWN0czpjLHBsYXRmb3JtOmksZWxlbWVudHM6e3JlZmVyZW5jZTplLGZsb2F0aW5nOm59fSk7dT1udWxsIT1tP206dSxkPW51bGwhPXY/djpkLHA9ey4uLnAsW2FdOnsuLi5wW2FdLC4uLmJ9fSx5JiZoPD01MCYmKGgrKyxcIm9iamVjdFwiPT10eXBlb2YgeSYmKHkucGxhY2VtZW50JiYoZj15LnBsYWNlbWVudCkseS5yZWN0cyYmKGM9ITA9PT15LnJlY3RzP2F3YWl0IGkuZ2V0RWxlbWVudFJlY3RzKHtyZWZlcmVuY2U6ZSxmbG9hdGluZzpuLHN0cmF0ZWd5Om99KTp5LnJlY3RzKSx7eDp1LHk6ZH09ck8oYyxmLHMpKSx0PS0xKX1yZXR1cm57eDp1LHk6ZCxwbGFjZW1lbnQ6ZixzdHJhdGVneTpvLG1pZGRsZXdhcmVEYXRhOnB9fTthc3luYyBmdW5jdGlvbiByUyhlLG4pe3ZhciB0O3ZvaWQgMD09PW4mJihuPXt9KTtsZXR7eDpyLHk6byxwbGF0Zm9ybTphLHJlY3RzOmksZWxlbWVudHM6bCxzdHJhdGVneTpzfT1lLHtib3VuZGFyeTpjPVwiY2xpcHBpbmdBbmNlc3RvcnNcIixyb290Qm91bmRhcnk6dT1cInZpZXdwb3J0XCIsZWxlbWVudENvbnRleHQ6ZD1cImZsb2F0aW5nXCIsYWx0Qm91bmRhcnk6Zj0hMSxwYWRkaW5nOnA9MH09bmoobixlKSxoPW5OKHApLGc9bFtmP1wiZmxvYXRpbmdcIj09PWQ/XCJyZWZlcmVuY2VcIjpcImZsb2F0aW5nXCI6ZF0sbT1uRChhd2FpdCBhLmdldENsaXBwaW5nUmVjdCh7ZWxlbWVudDpudWxsPT0odD1hd2FpdCAobnVsbD09YS5pc0VsZW1lbnQ/dm9pZCAwOmEuaXNFbGVtZW50KGcpKSl8fHQ/ZzpnLmNvbnRleHRFbGVtZW50fHxhd2FpdCAobnVsbD09YS5nZXREb2N1bWVudEVsZW1lbnQ/dm9pZCAwOmEuZ2V0RG9jdW1lbnRFbGVtZW50KGwuZmxvYXRpbmcpKSxib3VuZGFyeTpjLHJvb3RCb3VuZGFyeTp1LHN0cmF0ZWd5OnN9KSksdj1cImZsb2F0aW5nXCI9PT1kP3t4OnIseTpvLHdpZHRoOmkuZmxvYXRpbmcud2lkdGgsaGVpZ2h0OmkuZmxvYXRpbmcuaGVpZ2h0fTppLnJlZmVyZW5jZSxiPWF3YWl0IChudWxsPT1hLmdldE9mZnNldFBhcmVudD92b2lkIDA6YS5nZXRPZmZzZXRQYXJlbnQobC5mbG9hdGluZykpLHk9YXdhaXQgKG51bGw9PWEuaXNFbGVtZW50P3ZvaWQgMDphLmlzRWxlbWVudChiKSkmJmF3YWl0IChudWxsPT1hLmdldFNjYWxlP3ZvaWQgMDphLmdldFNjYWxlKGIpKXx8e3g6MSx5OjF9LHg9bkQoYS5jb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdD9hd2FpdCBhLmNvbnZlcnRPZmZzZXRQYXJlbnRSZWxhdGl2ZVJlY3RUb1ZpZXdwb3J0UmVsYXRpdmVSZWN0KHtlbGVtZW50czpsLHJlY3Q6dixvZmZzZXRQYXJlbnQ6YixzdHJhdGVneTpzfSk6dik7cmV0dXJue3RvcDoobS50b3AteC50b3AraC50b3ApL3kueSxib3R0b206KHguYm90dG9tLW0uYm90dG9tK2guYm90dG9tKS95LnksbGVmdDoobS5sZWZ0LXgubGVmdCtoLmxlZnQpL3kueCxyaWdodDooeC5yaWdodC1tLnJpZ2h0K2gucmlnaHQpL3kueH19ZnVuY3Rpb24gckUoZSxuKXtyZXR1cm57dG9wOmUudG9wLW4uaGVpZ2h0LHJpZ2h0OmUucmlnaHQtbi53aWR0aCxib3R0b206ZS5ib3R0b20tbi5oZWlnaHQsbGVmdDplLmxlZnQtbi53aWR0aH19ZnVuY3Rpb24gcl8oZSl7cmV0dXJuIG5oLnNvbWUobj0+ZVtuXT49MCl9bGV0IHJQPW5ldyBTZXQoW1wibGVmdFwiLFwidG9wXCJdKTthc3luYyBmdW5jdGlvbiByeihlLG4pe2xldHtwbGFjZW1lbnQ6dCxwbGF0Zm9ybTpyLGVsZW1lbnRzOm99PWUsYT1hd2FpdCAobnVsbD09ci5pc1JUTD92b2lkIDA6ci5pc1JUTChvLmZsb2F0aW5nKSksaT1uayh0KSxsPW5BKHQpLHM9XCJ5XCI9PT1uRSh0KSxjPXJQLmhhcyhpKT8tMToxLHU9YSYmcz8tMToxLGQ9bmoobixlKSx7bWFpbkF4aXM6Zixjcm9zc0F4aXM6cCxhbGlnbm1lbnRBeGlzOmh9PVwibnVtYmVyXCI9PXR5cGVvZiBkP3ttYWluQXhpczpkLGNyb3NzQXhpczowLGFsaWdubWVudEF4aXM6bnVsbH06e21haW5BeGlzOmQubWFpbkF4aXN8fDAsY3Jvc3NBeGlzOmQuY3Jvc3NBeGlzfHwwLGFsaWdubWVudEF4aXM6ZC5hbGlnbm1lbnRBeGlzfTtyZXR1cm4gbCYmXCJudW1iZXJcIj09dHlwZW9mIGgmJihwPVwiZW5kXCI9PT1sPy0xKmg6aCkscz97eDpwKnUseTpmKmN9Ont4OmYqYyx5OnAqdX19ZnVuY3Rpb24gckwoZSl7bGV0IG49ZWcoZSksdD1wYXJzZUZsb2F0KG4ud2lkdGgpfHwwLHI9cGFyc2VGbG9hdChuLmhlaWdodCl8fDAsbz1lbihlKSxhPW8/ZS5vZmZzZXRXaWR0aDp0LGk9bz9lLm9mZnNldEhlaWdodDpyLGw9bnYodCkhPT1hfHxudihyKSE9PWk7cmV0dXJuIGwmJih0PWEscj1pKSx7d2lkdGg6dCxoZWlnaHQ6ciwkOmx9fWZ1bmN0aW9uIHJUKGUpe3JldHVybiBlZShlKT9lOmUuY29udGV4dEVsZW1lbnR9ZnVuY3Rpb24gclIoZSl7bGV0IG49clQoZSk7aWYoIWVuKG4pKXJldHVybiBueSgxKTtsZXQgdD1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHt3aWR0aDpyLGhlaWdodDpvLCQ6YX09ckwobiksaT0oYT9udih0LndpZHRoKTp0LndpZHRoKS9yLGw9KGE/bnYodC5oZWlnaHQpOnQuaGVpZ2h0KS9vO3JldHVybiBpJiZOdW1iZXIuaXNGaW5pdGUoaSl8fChpPTEpLGwmJk51bWJlci5pc0Zpbml0ZShsKXx8KGw9MSkse3g6aSx5Omx9fWxldCByTj1ueSgwKTtmdW5jdGlvbiByRChlKXtsZXQgbj1RKGUpO3JldHVybiBlZigpJiZuLnZpc3VhbFZpZXdwb3J0P3t4Om4udmlzdWFsVmlld3BvcnQub2Zmc2V0TGVmdCx5Om4udmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wfTpyTn1mdW5jdGlvbiByQihlLG4sdCxyKXt2YXIgbzt2b2lkIDA9PT1uJiYobj0hMSksdm9pZCAwPT09dCYmKHQ9ITEpO2xldCBhPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1yVChlKSxsPW55KDEpO24mJihyP2VlKHIpJiYobD1yUihyKSk6bD1yUihlKSk7bGV0IHM9KHZvaWQgMD09PShvPXQpJiYobz0hMSksciYmKCFvfHxyPT09UShpKSkmJm8pP3JEKGkpOm55KDApLGM9KGEubGVmdCtzLngpL2wueCx1PShhLnRvcCtzLnkpL2wueSxkPWEud2lkdGgvbC54LGY9YS5oZWlnaHQvbC55O2lmKGkpe2xldCBlPVEoaSksbj1yJiZlZShyKT9RKHIpOnIsdD1lLG89ZXkodCk7Zm9yKDtvJiZyJiZuIT09dDspe2xldCBlPXJSKG8pLG49by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxyPWVnKG8pLGE9bi5sZWZ0KyhvLmNsaWVudExlZnQrcGFyc2VGbG9hdChyLnBhZGRpbmdMZWZ0KSkqZS54LGk9bi50b3ArKG8uY2xpZW50VG9wK3BhcnNlRmxvYXQoci5wYWRkaW5nVG9wKSkqZS55O2MqPWUueCx1Kj1lLnksZCo9ZS54LGYqPWUueSxjKz1hLHUrPWksbz1leSh0PVEobykpfX1yZXR1cm4gbkQoe3dpZHRoOmQsaGVpZ2h0OmYseDpjLHk6dX0pfWZ1bmN0aW9uIHJNKGUsbil7bGV0IHQ9ZW0oZSkuc2Nyb2xsTGVmdDtyZXR1cm4gbj9uLmxlZnQrdDpyQihHKGUpKS5sZWZ0K3R9ZnVuY3Rpb24gckkoZSxuLHQpe3ZvaWQgMD09PXQmJih0PSExKTtsZXQgcj1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybnt4OnIubGVmdCtuLnNjcm9sbExlZnQtKHQ/MDpyTShlLHIpKSx5OnIudG9wK24uc2Nyb2xsVG9wfX1sZXQgckg9bmV3IFNldChbXCJhYnNvbHV0ZVwiLFwiZml4ZWRcIl0pO2Z1bmN0aW9uIHJGKGUsbix0KXtsZXQgcjtpZihcInZpZXdwb3J0XCI9PT1uKXI9ZnVuY3Rpb24oZSxuKXtsZXQgdD1RKGUpLHI9RyhlKSxvPXQudmlzdWFsVmlld3BvcnQsYT1yLmNsaWVudFdpZHRoLGk9ci5jbGllbnRIZWlnaHQsbD0wLHM9MDtpZihvKXthPW8ud2lkdGgsaT1vLmhlaWdodDtsZXQgZT1lZigpOyghZXx8ZSYmXCJmaXhlZFwiPT09bikmJihsPW8ub2Zmc2V0TGVmdCxzPW8ub2Zmc2V0VG9wKX1yZXR1cm57d2lkdGg6YSxoZWlnaHQ6aSx4OmwseTpzfX0oZSx0KTtlbHNlIGlmKFwiZG9jdW1lbnRcIj09PW4pcj1mdW5jdGlvbihlKXtsZXQgbj1HKGUpLHQ9ZW0oZSkscj1lLm93bmVyRG9jdW1lbnQuYm9keSxvPW5tKG4uc2Nyb2xsV2lkdGgsbi5jbGllbnRXaWR0aCxyLnNjcm9sbFdpZHRoLHIuY2xpZW50V2lkdGgpLGE9bm0obi5zY3JvbGxIZWlnaHQsbi5jbGllbnRIZWlnaHQsci5zY3JvbGxIZWlnaHQsci5jbGllbnRIZWlnaHQpLGk9LXQuc2Nyb2xsTGVmdCtyTShlKSxsPS10LnNjcm9sbFRvcDtyZXR1cm5cInJ0bFwiPT09ZWcocikuZGlyZWN0aW9uJiYoaSs9bm0obi5jbGllbnRXaWR0aCxyLmNsaWVudFdpZHRoKS1vKSx7d2lkdGg6byxoZWlnaHQ6YSx4OmkseTpsfX0oRyhlKSk7ZWxzZSBpZihlZShuKSlyPWZ1bmN0aW9uKGUsbil7bGV0IHQ9ckIoZSwhMCxcImZpeGVkXCI9PT1uKSxyPXQudG9wK2UuY2xpZW50VG9wLG89dC5sZWZ0K2UuY2xpZW50TGVmdCxhPWVuKGUpP3JSKGUpOm55KDEpLGk9ZS5jbGllbnRXaWR0aCphLngsbD1lLmNsaWVudEhlaWdodCphLnk7cmV0dXJue3dpZHRoOmksaGVpZ2h0OmwseDpvKmEueCx5OnIqYS55fX0obix0KTtlbHNle2xldCB0PXJEKGUpO3I9e3g6bi54LXQueCx5Om4ueS10Lnksd2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHR9fXJldHVybiBuRChyKX1mdW5jdGlvbiByVShlKXtyZXR1cm5cInN0YXRpY1wiPT09ZWcoZSkucG9zaXRpb259ZnVuY3Rpb24gclYoZSxuKXtpZighZW4oZSl8fFwiZml4ZWRcIj09PWVnKGUpLnBvc2l0aW9uKXJldHVybiBudWxsO2lmKG4pcmV0dXJuIG4oZSk7bGV0IHQ9ZS5vZmZzZXRQYXJlbnQ7cmV0dXJuIEcoZSk9PT10JiYodD10Lm93bmVyRG9jdW1lbnQuYm9keSksdH1mdW5jdGlvbiBycShlLG4pe3ZhciB0O2xldCByPVEoZSk7aWYoZWwoZSkpcmV0dXJuIHI7aWYoIWVuKGUpKXtsZXQgbj1ldihlKTtmb3IoO24mJiFlaChuKTspe2lmKGVlKG4pJiYhclUobikpcmV0dXJuIG47bj1ldihuKX1yZXR1cm4gcn1sZXQgbz1yVihlLG4pO2Zvcig7byYmKHQ9byxlYS5oYXMoSyh0KSkpJiZyVShvKTspbz1yVihvLG4pO3JldHVybiBvJiZlaChvKSYmclUobykmJiFlZChvKT9yOm98fGZ1bmN0aW9uKGUpe2xldCBuPWV2KGUpO2Zvcig7ZW4obikmJiFlaChuKTspe2lmKGVkKG4pKXJldHVybiBuO2lmKGVsKG4pKWJyZWFrO249ZXYobil9cmV0dXJuIG51bGx9KGUpfHxyfWxldCByVz1hc3luYyBmdW5jdGlvbihlKXtsZXQgbj10aGlzLmdldE9mZnNldFBhcmVudHx8cnEsdD10aGlzLmdldERpbWVuc2lvbnMscj1hd2FpdCB0KGUuZmxvYXRpbmcpO3JldHVybntyZWZlcmVuY2U6ZnVuY3Rpb24oZSxuLHQpe2xldCByPWVuKG4pLG89RyhuKSxhPVwiZml4ZWRcIj09PXQsaT1yQihlLCEwLGEsbiksbD17c2Nyb2xsTGVmdDowLHNjcm9sbFRvcDowfSxzPW55KDApO2lmKHJ8fCFyJiYhYSlpZigoXCJib2R5XCIhPT1LKG4pfHxlbyhvKSkmJihsPWVtKG4pKSxyKXtsZXQgZT1yQihuLCEwLGEsbik7cy54PWUueCtuLmNsaWVudExlZnQscy55PWUueStuLmNsaWVudFRvcH1lbHNlIG8mJihzLng9ck0obykpO2EmJiFyJiZvJiYocy54PXJNKG8pKTtsZXQgYz0hb3x8cnx8YT9ueSgwKTpySShvLGwpO3JldHVybnt4OmkubGVmdCtsLnNjcm9sbExlZnQtcy54LWMueCx5OmkudG9wK2wuc2Nyb2xsVG9wLXMueS1jLnksd2lkdGg6aS53aWR0aCxoZWlnaHQ6aS5oZWlnaHR9fShlLnJlZmVyZW5jZSxhd2FpdCBuKGUuZmxvYXRpbmcpLGUuc3RyYXRlZ3kpLGZsb2F0aW5nOnt4OjAseTowLHdpZHRoOnIud2lkdGgsaGVpZ2h0OnIuaGVpZ2h0fX19LHIkPXtjb252ZXJ0T2Zmc2V0UGFyZW50UmVsYXRpdmVSZWN0VG9WaWV3cG9ydFJlbGF0aXZlUmVjdDpmdW5jdGlvbihlKXtsZXR7ZWxlbWVudHM6bixyZWN0OnQsb2Zmc2V0UGFyZW50OnIsc3RyYXRlZ3k6b309ZSxhPVwiZml4ZWRcIj09PW8saT1HKHIpLGw9ISFuJiZlbChuLmZsb2F0aW5nKTtpZihyPT09aXx8bCYmYSlyZXR1cm4gdDtsZXQgcz17c2Nyb2xsTGVmdDowLHNjcm9sbFRvcDowfSxjPW55KDEpLHU9bnkoMCksZD1lbihyKTtpZigoZHx8IWQmJiFhKSYmKChcImJvZHlcIiE9PUsocil8fGVvKGkpKSYmKHM9ZW0ocikpLGVuKHIpKSl7bGV0IGU9ckIocik7Yz1yUihyKSx1Lng9ZS54K3IuY2xpZW50TGVmdCx1Lnk9ZS55K3IuY2xpZW50VG9wfWxldCBmPSFpfHxkfHxhP255KDApOnJJKGkscywhMCk7cmV0dXJue3dpZHRoOnQud2lkdGgqYy54LGhlaWdodDp0LmhlaWdodCpjLnkseDp0LngqYy54LXMuc2Nyb2xsTGVmdCpjLngrdS54K2YueCx5OnQueSpjLnktcy5zY3JvbGxUb3AqYy55K3UueStmLnl9fSxnZXREb2N1bWVudEVsZW1lbnQ6RyxnZXRDbGlwcGluZ1JlY3Q6ZnVuY3Rpb24oZSl7bGV0e2VsZW1lbnQ6bixib3VuZGFyeTp0LHJvb3RCb3VuZGFyeTpyLHN0cmF0ZWd5Om99PWUsYT1bLi4uXCJjbGlwcGluZ0FuY2VzdG9yc1wiPT09dD9lbChuKT9bXTpmdW5jdGlvbihlLG4pe2xldCB0PW4uZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7bGV0IHI9ZWIoZSxbXSwhMSkuZmlsdGVyKGU9PmVlKGUpJiZcImJvZHlcIiE9PUsoZSkpLG89bnVsbCxhPVwiZml4ZWRcIj09PWVnKGUpLnBvc2l0aW9uLGk9YT9ldihlKTplO2Zvcig7ZWUoaSkmJiFlaChpKTspe2xldCBuPWVnKGkpLHQ9ZWQoaSk7dHx8XCJmaXhlZFwiIT09bi5wb3NpdGlvbnx8KG89bnVsbCksKGE/IXQmJiFvOiF0JiZcInN0YXRpY1wiPT09bi5wb3NpdGlvbiYmISFvJiZySC5oYXMoby5wb3NpdGlvbil8fGVvKGkpJiYhdCYmZnVuY3Rpb24gZShuLHQpe2xldCByPWV2KG4pO3JldHVybiEocj09PXR8fCFlZShyKXx8ZWgocikpJiYoXCJmaXhlZFwiPT09ZWcocikucG9zaXRpb258fGUocix0KSl9KGUsaSkpP3I9ci5maWx0ZXIoZT0+ZSE9PWkpOm89bixpPWV2KGkpfXJldHVybiBuLnNldChlLHIpLHJ9KG4sdGhpcy5fYyk6W10uY29uY2F0KHQpLHJdLGk9YVswXSxsPWEucmVkdWNlKChlLHQpPT57bGV0IHI9ckYobix0LG8pO3JldHVybiBlLnRvcD1ubShyLnRvcCxlLnRvcCksZS5yaWdodD1uZyhyLnJpZ2h0LGUucmlnaHQpLGUuYm90dG9tPW5nKHIuYm90dG9tLGUuYm90dG9tKSxlLmxlZnQ9bm0oci5sZWZ0LGUubGVmdCksZX0sckYobixpLG8pKTtyZXR1cm57d2lkdGg6bC5yaWdodC1sLmxlZnQsaGVpZ2h0OmwuYm90dG9tLWwudG9wLHg6bC5sZWZ0LHk6bC50b3B9fSxnZXRPZmZzZXRQYXJlbnQ6cnEsZ2V0RWxlbWVudFJlY3RzOnJXLGdldENsaWVudFJlY3RzOmZ1bmN0aW9uKGUpe3JldHVybiBBcnJheS5mcm9tKGUuZ2V0Q2xpZW50UmVjdHMoKSl9LGdldERpbWVuc2lvbnM6ZnVuY3Rpb24oZSl7bGV0e3dpZHRoOm4saGVpZ2h0OnR9PXJMKGUpO3JldHVybnt3aWR0aDpuLGhlaWdodDp0fX0sZ2V0U2NhbGU6clIsaXNFbGVtZW50OmVlLGlzUlRMOmZ1bmN0aW9uKGUpe3JldHVyblwicnRsXCI9PT1lZyhlKS5kaXJlY3Rpb259fTtmdW5jdGlvbiByWihlLG4pe3JldHVybiBlLng9PT1uLngmJmUueT09PW4ueSYmZS53aWR0aD09PW4ud2lkdGgmJmUuaGVpZ2h0PT09bi5oZWlnaHR9ZnVuY3Rpb24gclkoZSxuLHQscil7bGV0IG87dm9pZCAwPT09ciYmKHI9e30pO2xldHthbmNlc3RvclNjcm9sbDphPSEwLGFuY2VzdG9yUmVzaXplOmk9ITAsZWxlbWVudFJlc2l6ZTpsPVwiZnVuY3Rpb25cIj09dHlwZW9mIFJlc2l6ZU9ic2VydmVyLGxheW91dFNoaWZ0OnM9XCJmdW5jdGlvblwiPT10eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIsYW5pbWF0aW9uRnJhbWU6Yz0hMX09cix1PXJUKGUpLGQ9YXx8aT9bLi4udT9lYih1KTpbXSwuLi5lYihuKV06W107ZC5mb3JFYWNoKGU9PnthJiZlLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0LHtwYXNzaXZlOiEwfSksaSYmZS5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdCl9KTtsZXQgZj11JiZzP2Z1bmN0aW9uKGUsbil7bGV0IHQscj1udWxsLG89RyhlKTtmdW5jdGlvbiBhKCl7dmFyIGU7Y2xlYXJUaW1lb3V0KHQpLG51bGw9PShlPXIpfHxlLmRpc2Nvbm5lY3QoKSxyPW51bGx9cmV0dXJuIWZ1bmN0aW9uIGkobCxzKXt2b2lkIDA9PT1sJiYobD0hMSksdm9pZCAwPT09cyYmKHM9MSksYSgpO2xldCBjPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkse2xlZnQ6dSx0b3A6ZCx3aWR0aDpmLGhlaWdodDpwfT1jO2lmKGx8fG4oKSwhZnx8IXApcmV0dXJuO2xldCBoPW5iKGQpLGc9bmIoby5jbGllbnRXaWR0aC0odStmKSksbT17cm9vdE1hcmdpbjotaCtcInB4IFwiKy1nK1wicHggXCIrLW5iKG8uY2xpZW50SGVpZ2h0LShkK3ApKStcInB4IFwiKy1uYih1KStcInB4XCIsdGhyZXNob2xkOm5tKDAsbmcoMSxzKSl8fDF9LHY9ITA7ZnVuY3Rpb24gYihuKXtsZXQgcj1uWzBdLmludGVyc2VjdGlvblJhdGlvO2lmKHIhPT1zKXtpZighdilyZXR1cm4gaSgpO3I/aSghMSxyKTp0PXNldFRpbWVvdXQoKCk9PntpKCExLDFlLTcpfSwxZTMpfTEhPT1yfHxyWihjLGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpfHxpKCksdj0hMX10cnl7cj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoYix7Li4ubSxyb290Om8ub3duZXJEb2N1bWVudH0pfWNhdGNoKGUpe3I9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGIsbSl9ci5vYnNlcnZlKGUpfSghMCksYX0odSx0KTpudWxsLHA9LTEsaD1udWxsO2wmJihoPW5ldyBSZXNpemVPYnNlcnZlcihlPT57bGV0W3JdPWU7ciYmci50YXJnZXQ9PT11JiZoJiYoaC51bm9ic2VydmUobiksY2FuY2VsQW5pbWF0aW9uRnJhbWUocCkscD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt2YXIgZTtudWxsPT0oZT1oKXx8ZS5vYnNlcnZlKG4pfSkpLHQoKX0pLHUmJiFjJiZoLm9ic2VydmUodSksaC5vYnNlcnZlKG4pKTtsZXQgZz1jP3JCKGUpOm51bGw7cmV0dXJuIGMmJmZ1bmN0aW9uIG4oKXtsZXQgcj1yQihlKTtnJiYhclooZyxyKSYmdCgpLGc9cixvPXJlcXVlc3RBbmltYXRpb25GcmFtZShuKX0oKSx0KCksKCk9Pnt2YXIgZTtkLmZvckVhY2goZT0+e2EmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHQpLGkmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHQpfSksbnVsbD09Znx8ZigpLG51bGw9PShlPWgpfHxlLmRpc2Nvbm5lY3QoKSxoPW51bGwsYyYmY2FuY2VsQW5pbWF0aW9uRnJhbWUobyl9fWxldCByWD1lPT4oe25hbWU6XCJhcnJvd1wiLG9wdGlvbnM6ZSxhc3luYyBmbihuKXtsZXR7eDp0LHk6cixwbGFjZW1lbnQ6byxyZWN0czphLHBsYXRmb3JtOmksZWxlbWVudHM6bCxtaWRkbGV3YXJlRGF0YTpzfT1uLHtlbGVtZW50OmMscGFkZGluZzp1PTB9PW5qKGUsbil8fHt9O2lmKG51bGw9PWMpcmV0dXJue307bGV0IGQ9bk4odSksZj17eDp0LHk6cn0scD1uTyhuRShvKSksaD1uQyhwKSxnPWF3YWl0IGkuZ2V0RGltZW5zaW9ucyhjKSxtPVwieVwiPT09cCx2PW0/XCJjbGllbnRIZWlnaHRcIjpcImNsaWVudFdpZHRoXCIsYj1hLnJlZmVyZW5jZVtoXSthLnJlZmVyZW5jZVtwXS1mW3BdLWEuZmxvYXRpbmdbaF0seT1mW3BdLWEucmVmZXJlbmNlW3BdLHg9YXdhaXQgKG51bGw9PWkuZ2V0T2Zmc2V0UGFyZW50P3ZvaWQgMDppLmdldE9mZnNldFBhcmVudChjKSksdz14P3hbdl06MDt3JiZhd2FpdCAobnVsbD09aS5pc0VsZW1lbnQ/dm9pZCAwOmkuaXNFbGVtZW50KHgpKXx8KHc9bC5mbG9hdGluZ1t2XXx8YS5mbG9hdGluZ1toXSk7bGV0IGo9dy8yLWdbaF0vMi0xLGs9bmcoZFttP1widG9wXCI6XCJsZWZ0XCJdLGopLEE9bmcoZFttP1wiYm90dG9tXCI6XCJyaWdodFwiXSxqKSxPPXctZ1toXS1BLEM9dy8yLWdbaF0vMisoYi8yLXkvMiksUz1ubShrLG5nKEMsTykpLEU9IXMuYXJyb3cmJm51bGwhPW5BKG8pJiZDIT09UyYmYS5yZWZlcmVuY2VbaF0vMi0oQzxrP2s6QSktZ1toXS8yPDAsXz1FP0M8az9DLWs6Qy1POjA7cmV0dXJue1twXTpmW3BdK18sZGF0YTp7W3BdOlMsY2VudGVyT2Zmc2V0OkMtUy1fLC4uLkUmJnthbGlnbm1lbnRPZmZzZXQ6X319LHJlc2V0OkV9fX0pO3ZhciBySz1cInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQ/Qy51c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oKXt9O2Z1bmN0aW9uIHJRKGUsbil7bGV0IHQscixvO2lmKGU9PT1uKXJldHVybiEwO2lmKHR5cGVvZiBlIT10eXBlb2YgbilyZXR1cm4hMTtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiBlJiZlLnRvU3RyaW5nKCk9PT1uLnRvU3RyaW5nKCkpcmV0dXJuITA7aWYoZSYmbiYmXCJvYmplY3RcIj09dHlwZW9mIGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2lmKCh0PWUubGVuZ3RoKSE9PW4ubGVuZ3RoKXJldHVybiExO2ZvcihyPXQ7MCE9ci0tOylpZighclEoZVtyXSxuW3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1pZigodD0obz1PYmplY3Qua2V5cyhlKSkubGVuZ3RoKSE9PU9iamVjdC5rZXlzKG4pLmxlbmd0aClyZXR1cm4hMTtmb3Iocj10OzAhPXItLTspaWYoISh7fSkuaGFzT3duUHJvcGVydHkuY2FsbChuLG9bcl0pKXJldHVybiExO2ZvcihyPXQ7MCE9ci0tOyl7bGV0IHQ9b1tyXTtpZigoXCJfb3duZXJcIiE9PXR8fCFlLiQkdHlwZW9mKSYmIXJRKGVbdF0sblt0XSkpcmV0dXJuITF9cmV0dXJuITB9cmV0dXJuIGUhPWUmJm4hPW59ZnVuY3Rpb24gckcoZSl7cmV0dXJuXCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdz8xOihlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZGV2aWNlUGl4ZWxSYXRpb3x8MX1mdW5jdGlvbiBySihlLG4pe2xldCB0PXJHKGUpO3JldHVybiBNYXRoLnJvdW5kKG4qdCkvdH1mdW5jdGlvbiByMChlKXtsZXQgbj1DLnVzZVJlZihlKTtyZXR1cm4gcksoKCk9PntuLmN1cnJlbnQ9ZX0pLG59ZnVuY3Rpb24gcjEoZSxuLHQpe2xldCByPVwiaW5saW5lLXN0YXJ0XCI9PT1lfHxcImlubGluZS1lbmRcIj09PWU7cmV0dXJuKHt0b3A6XCJ0b3BcIixyaWdodDpyP3Q/XCJpbmxpbmUtc3RhcnRcIjpcImlubGluZS1lbmRcIjpcInJpZ2h0XCIsYm90dG9tOlwiYm90dG9tXCIsbGVmdDpyP3Q/XCJpbmxpbmUtZW5kXCI6XCJpbmxpbmUtc3RhcnRcIjpcImxlZnRcIn0pW25dfWZ1bmN0aW9uIHIyKGUsbix0KXtsZXR7cmVjdHM6cixwbGFjZW1lbnQ6b309ZTtyZXR1cm57c2lkZTpyMShuLG5rKG8pLHQpLGFsaWduOm5BKG8pfHxcImNlbnRlclwiLGFuY2hvcjp7d2lkdGg6ci5yZWZlcmVuY2Uud2lkdGgsaGVpZ2h0OnIucmVmZXJlbmNlLmhlaWdodH0scG9zaXRpb25lcjp7d2lkdGg6ci5mbG9hdGluZy53aWR0aCxoZWlnaHQ6ci5mbG9hdGluZy5oZWlnaHR9fX1mdW5jdGlvbiByNChlKXt2YXIgbix0LHIsbyxhLGksbCxzLGMsdSxkLGYscCxoLGcsbSx2O2xldHthbmNob3I6Yixwb3NpdGlvbk1ldGhvZDp5PVwiYWJzb2x1dGVcIixzaWRlOng9XCJib3R0b21cIixzaWRlT2Zmc2V0Onc9MCxhbGlnbjpqPVwiY2VudGVyXCIsYWxpZ25PZmZzZXQ6az0wLGNvbGxpc2lvbkJvdW5kYXJ5OkEsY29sbGlzaW9uUGFkZGluZzpPPTUsc3RpY2t5OlM9ITEsYXJyb3dQYWRkaW5nOl89NSx0cmFja0FuY2hvcjpQPSEwLGtlZXBNb3VudGVkOno9ITEsZmxvYXRpbmdSb290Q29udGV4dDpMLG1vdW50ZWQ6Uixjb2xsaXNpb25Bdm9pZGFuY2U6TixzaGlmdENyb3NzQXhpczpEPSExLG5vZGVJZDpCLGFkYXB0aXZlT3JpZ2luOk19PWUsST1OLnNpZGV8fFwiZmxpcFwiLEg9Ti5hbGlnbnx8XCJmbGlwXCIsVT1OLmZhbGxiYWNrQXhpc1NpZGV8fFwiZW5kXCIsVj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBiP2I6dm9pZCAwLHE9VChWKSwkPVY/cTpiLFo9ZUEoYiksWD1cInJ0bFwiPT09bjYoKSxLPXt0b3A6XCJ0b3BcIixyaWdodDpcInJpZ2h0XCIsYm90dG9tOlwiYm90dG9tXCIsbGVmdDpcImxlZnRcIixcImlubGluZS1lbmRcIjpYP1wibGVmdFwiOlwicmlnaHRcIixcImlubGluZS1zdGFydFwiOlg/XCJyaWdodFwiOlwibGVmdFwifVt4XSxRPVwiY2VudGVyXCI9PT1qP0s6YCR7S30tJHtqfWAsRz17Ym91bmRhcnk6XCJjbGlwcGluZy1hbmNlc3RvcnNcIj09PUE/XCJjbGlwcGluZ0FuY2VzdG9yc1wiOkEscGFkZGluZzpPfSxKPUMudXNlUmVmKG51bGwpLGVuPWVBKHcpLGV0PWVBKGspLGVyPVwiZnVuY3Rpb25cIiE9dHlwZW9mIHc/dzowLGVvPVsobj1lPT57bGV0IG49cjIoZSx4LFgpLHQ9XCJmdW5jdGlvblwiPT10eXBlb2YgZW4uY3VycmVudD9lbi5jdXJyZW50KG4pOmVuLmN1cnJlbnQscj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBldC5jdXJyZW50P2V0LmN1cnJlbnQobik6ZXQuY3VycmVudDtyZXR1cm57bWFpbkF4aXM6dCxjcm9zc0F4aXM6cixhbGlnbm1lbnRBeGlzOnJ9fSx0PVtlcixcImZ1bmN0aW9uXCIhPXR5cGVvZiBrP2s6MCxYLHhdLHsuLi4odm9pZCAwPT09KHI9bikmJihyPTApLHtuYW1lOlwib2Zmc2V0XCIsb3B0aW9uczpyLGFzeW5jIGZuKGUpe3ZhciBuLHQ7bGV0e3g6byx5OmEscGxhY2VtZW50OmksbWlkZGxld2FyZURhdGE6bH09ZSxzPWF3YWl0IHJ6KGUscik7cmV0dXJuIGk9PT0obnVsbD09KG49bC5vZmZzZXQpP3ZvaWQgMDpuLnBsYWNlbWVudCkmJm51bGwhPSh0PWwuYXJyb3cpJiZ0LmFsaWdubWVudE9mZnNldD97fTp7eDpvK3MueCx5OmErcy55LGRhdGE6ey4uLnMscGxhY2VtZW50Oml9fX19KSxvcHRpb25zOltuLHRdfSldLGVhPVwibm9uZVwiPT09SCYmXCJzaGlmdFwiIT09SSxlaT0hZWEmJihTfHxEfHxcInNoaWZ0XCI9PT1JKSxlbD1cIm5vbmVcIj09PUk/bnVsbDp7Li4ue25hbWU6XCJmbGlwXCIsb3B0aW9uczppPW89ey4uLkcsbWFpbkF4aXM6IUQmJlwiZmxpcFwiPT09SSxjcm9zc0F4aXM6XCJmbGlwXCI9PT1IJiZcImFsaWdubWVudFwiLGZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb246VX0sYXN5bmMgZm4oZSl7dmFyIG4sdCxyLG8sYTtsZXR7cGxhY2VtZW50OmwsbWlkZGxld2FyZURhdGE6cyxyZWN0czpjLGluaXRpYWxQbGFjZW1lbnQ6dSxwbGF0Zm9ybTpkLGVsZW1lbnRzOmZ9PWUse21haW5BeGlzOnA9ITAsY3Jvc3NBeGlzOmg9ITAsZmFsbGJhY2tQbGFjZW1lbnRzOmcsZmFsbGJhY2tTdHJhdGVneTptPVwiYmVzdEZpdFwiLGZhbGxiYWNrQXhpc1NpZGVEaXJlY3Rpb246dj1cIm5vbmVcIixmbGlwQWxpZ25tZW50OmI9ITAsLi4ueX09bmooaSxlKTtpZihudWxsIT0obj1zLmFycm93KSYmbi5hbGlnbm1lbnRPZmZzZXQpcmV0dXJue307bGV0IHg9bmsobCksdz1uRSh1KSxqPW5rKHUpPT09dSxrPWF3YWl0IChudWxsPT1kLmlzUlRMP3ZvaWQgMDpkLmlzUlRMKGYuZmxvYXRpbmcpKSxBPWd8fChqfHwhYj9bblIodSldOmZ1bmN0aW9uKGUpe2xldCBuPW5SKGUpO3JldHVybltuXyhlKSxuLG5fKG4pXX0odSkpLE89XCJub25lXCIhPT12OyFnJiZPJiZBLnB1c2goLi4uZnVuY3Rpb24oZSxuLHQscil7bGV0IG89bkEoZSksYT1mdW5jdGlvbihlLG4sdCl7c3dpdGNoKGUpe2Nhc2VcInRvcFwiOmNhc2VcImJvdHRvbVwiOmlmKHQpcmV0dXJuIG4/bno6blA7cmV0dXJuIG4/blA6bno7Y2FzZVwibGVmdFwiOmNhc2VcInJpZ2h0XCI6cmV0dXJuIG4/bkw6blQ7ZGVmYXVsdDpyZXR1cm5bXX19KG5rKGUpLFwic3RhcnRcIj09PXQscik7cmV0dXJuIG8mJihhPWEubWFwKGU9PmUrXCItXCIrbyksbiYmKGE9YS5jb25jYXQoYS5tYXAobl8pKSkpLGF9KHUsYix2LGspKTtsZXQgQz1bdSwuLi5BXSxTPWF3YWl0IHJTKGUseSksRT1bXSxfPShudWxsPT0odD1zLmZsaXApP3ZvaWQgMDp0Lm92ZXJmbG93cyl8fFtdO2lmKHAmJkUucHVzaChTW3hdKSxoKXtsZXQgZT1mdW5jdGlvbihlLG4sdCl7dm9pZCAwPT09dCYmKHQ9ITEpO2xldCByPW5BKGUpLG89bk8obkUoZSkpLGE9bkMobyksaT1cInhcIj09PW8/cj09PSh0P1wiZW5kXCI6XCJzdGFydFwiKT9cInJpZ2h0XCI6XCJsZWZ0XCI6XCJzdGFydFwiPT09cj9cImJvdHRvbVwiOlwidG9wXCI7cmV0dXJuIG4ucmVmZXJlbmNlW2FdPm4uZmxvYXRpbmdbYV0mJihpPW5SKGkpKSxbaSxuUihpKV19KGwsYyxrKTtFLnB1c2goU1tlWzBdXSxTW2VbMV1dKX1pZihfPVsuLi5fLHtwbGFjZW1lbnQ6bCxvdmVyZmxvd3M6RX1dLCFFLmV2ZXJ5KGU9PmU8PTApKXtsZXQgZT0oKG51bGw9PShyPXMuZmxpcCk/dm9pZCAwOnIuaW5kZXgpfHwwKSsxLG49Q1tlXTtpZihuJiYoXCJhbGlnbm1lbnRcIiE9PWh8fHc9PT1uRShuKXx8Xy5ldmVyeShlPT5lLm92ZXJmbG93c1swXT4wJiZuRShlLnBsYWNlbWVudCk9PT13KSkpcmV0dXJue2RhdGE6e2luZGV4OmUsb3ZlcmZsb3dzOl99LHJlc2V0OntwbGFjZW1lbnQ6bn19O2xldCB0PW51bGw9PShvPV8uZmlsdGVyKGU9PmUub3ZlcmZsb3dzWzBdPD0wKS5zb3J0KChlLG4pPT5lLm92ZXJmbG93c1sxXS1uLm92ZXJmbG93c1sxXSlbMF0pP3ZvaWQgMDpvLnBsYWNlbWVudDtpZighdClzd2l0Y2gobSl7Y2FzZVwiYmVzdEZpdFwiOntsZXQgZT1udWxsPT0oYT1fLmZpbHRlcihlPT57aWYoTyl7bGV0IG49bkUoZS5wbGFjZW1lbnQpO3JldHVybiBuPT09d3x8XCJ5XCI9PT1ufXJldHVybiEwfSkubWFwKGU9PltlLnBsYWNlbWVudCxlLm92ZXJmbG93cy5maWx0ZXIoZT0+ZT4wKS5yZWR1Y2UoKGUsbik9PmUrbiwwKV0pLnNvcnQoKGUsbik9PmVbMV0tblsxXSlbMF0pP3ZvaWQgMDphWzBdO2UmJih0PWUpO2JyZWFrfWNhc2VcImluaXRpYWxQbGFjZW1lbnRcIjp0PXV9aWYobCE9PXQpcmV0dXJue3Jlc2V0OntwbGFjZW1lbnQ6dH19fXJldHVybnt9fX0sb3B0aW9uczpbbyxhXX0sZXM9ZWE/bnVsbDoobD1lPT57dmFyIG4sdCxyO2xldCBvPWVRKGUuZWxlbWVudHMuZmxvYXRpbmcpLmRvY3VtZW50RWxlbWVudDtyZXR1cm57Li4uRyxyb290Qm91bmRhcnk6RD97eDowLHk6MCx3aWR0aDpvLmNsaWVudFdpZHRoLGhlaWdodDpvLmNsaWVudEhlaWdodH06dm9pZCAwLG1haW5BeGlzOlwibm9uZVwiIT09SCxjcm9zc0F4aXM6ZWksbGltaXRlcjpTfHxEP3ZvaWQgMDp7Li4uKHZvaWQgMD09PShyPW49KCk9PntpZighSi5jdXJyZW50KXJldHVybnt9O2xldHtoZWlnaHQ6ZX09Si5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybntvZmZzZXQ6ZS8yKyhcIm51bWJlclwiPT10eXBlb2YgTz9POjApfX0pJiYocj17fSkse29wdGlvbnM6cixmbihlKXtsZXR7eDpuLHk6dCxwbGFjZW1lbnQ6byxyZWN0czphLG1pZGRsZXdhcmVEYXRhOml9PWUse29mZnNldDpsPTAsbWFpbkF4aXM6cz0hMCxjcm9zc0F4aXM6Yz0hMH09bmoocixlKSx1PXt4Om4seTp0fSxkPW5FKG8pLGY9bk8oZCkscD11W2ZdLGg9dVtkXSxnPW5qKGwsZSksbT1cIm51bWJlclwiPT10eXBlb2YgZz97bWFpbkF4aXM6Zyxjcm9zc0F4aXM6MH06e21haW5BeGlzOjAsY3Jvc3NBeGlzOjAsLi4uZ307aWYocyl7bGV0IGU9XCJ5XCI9PT1mP1wiaGVpZ2h0XCI6XCJ3aWR0aFwiLG49YS5yZWZlcmVuY2VbZl0tYS5mbG9hdGluZ1tlXSttLm1haW5BeGlzLHQ9YS5yZWZlcmVuY2VbZl0rYS5yZWZlcmVuY2VbZV0tbS5tYWluQXhpcztwPG4/cD1uOnA+dCYmKHA9dCl9aWYoYyl7dmFyIHYsYjtsZXQgZT1cInlcIj09PWY/XCJ3aWR0aFwiOlwiaGVpZ2h0XCIsbj1yUC5oYXMobmsobykpLHQ9YS5yZWZlcmVuY2VbZF0tYS5mbG9hdGluZ1tlXSsobiYmKG51bGw9PSh2PWkub2Zmc2V0KT92b2lkIDA6dltkXSl8fDApKyhuPzA6bS5jcm9zc0F4aXMpLHI9YS5yZWZlcmVuY2VbZF0rYS5yZWZlcmVuY2VbZV0rKG4/MDoobnVsbD09KGI9aS5vZmZzZXQpP3ZvaWQgMDpiW2RdKXx8MCktKG4/bS5jcm9zc0F4aXM6MCk7aDx0P2g9dDpoPnImJihoPXIpfXJldHVybntbZl06cCxbZF06aH19fSksb3B0aW9uczpbbix0XX19fSxzPVtHLFMsRCxPLEhdLHsuLi4odm9pZCAwPT09KGM9bCkmJihjPXt9KSx7bmFtZTpcInNoaWZ0XCIsb3B0aW9uczpjLGFzeW5jIGZuKGUpe2xldHt4Om4seTp0LHBsYWNlbWVudDpyfT1lLHttYWluQXhpczpvPSEwLGNyb3NzQXhpczphPSExLGxpbWl0ZXI6aT17Zm46ZT0+e2xldHt4Om4seTp0fT1lO3JldHVybnt4Om4seTp0fX19LC4uLmx9PW5qKGMsZSkscz17eDpuLHk6dH0sdT1hd2FpdCByUyhlLGwpLGQ9bkUobmsocikpLGY9bk8oZCkscD1zW2ZdLGg9c1tkXTtpZihvKXtsZXQgZT1cInlcIj09PWY/XCJ0b3BcIjpcImxlZnRcIixuPVwieVwiPT09Zj9cImJvdHRvbVwiOlwicmlnaHRcIix0PXArdVtlXSxyPXAtdVtuXTtwPW5tKHQsbmcocCxyKSl9aWYoYSl7bGV0IGU9XCJ5XCI9PT1kP1widG9wXCI6XCJsZWZ0XCIsbj1cInlcIj09PWQ/XCJib3R0b21cIjpcInJpZ2h0XCIsdD1oK3VbZV0scj1oLXVbbl07aD1ubSh0LG5nKGgscikpfWxldCBnPWkuZm4oey4uLmUsW2ZdOnAsW2RdOmh9KTtyZXR1cm57Li4uZyxkYXRhOnt4OmcueC1uLHk6Zy55LXQsZW5hYmxlZDp7W2ZdOm8sW2RdOmF9fX19fSksb3B0aW9uczpbbCxzXX0pO1wic2hpZnRcIj09PUl8fFwic2hpZnRcIj09PUh8fFwiY2VudGVyXCI9PT1qP2VvLnB1c2goZXMsZWwpOmVvLnB1c2goZWwsZXMpLGVvLnB1c2goey4uLntuYW1lOlwic2l6ZVwiLG9wdGlvbnM6Zj11PXsuLi5HLGFwcGx5KHtlbGVtZW50czp7ZmxvYXRpbmc6ZX0scmVjdHM6e3JlZmVyZW5jZTpufSxhdmFpbGFibGVXaWR0aDp0LGF2YWlsYWJsZUhlaWdodDpyfSl7T2JqZWN0LmVudHJpZXMoe1wiLS1hdmFpbGFibGUtd2lkdGhcIjpgJHt0fXB4YCxcIi0tYXZhaWxhYmxlLWhlaWdodFwiOmAke3J9cHhgLFwiLS1hbmNob3Itd2lkdGhcIjpgJHtuLndpZHRofXB4YCxcIi0tYW5jaG9yLWhlaWdodFwiOmAke24uaGVpZ2h0fXB4YH0pLmZvckVhY2goKFtuLHRdKT0+e2Uuc3R5bGUuc2V0UHJvcGVydHkobix0KX0pfX0sYXN5bmMgZm4oZSl7dmFyIG4sdDtsZXQgcixvLHtwbGFjZW1lbnQ6YSxyZWN0czppLHBsYXRmb3JtOmwsZWxlbWVudHM6c309ZSx7YXBwbHk6Yz0oKT0+e30sLi4udX09bmooZixlKSxkPWF3YWl0IHJTKGUsdSkscD1uayhhKSxoPW5BKGEpLGc9XCJ5XCI9PT1uRShhKSx7d2lkdGg6bSxoZWlnaHQ6dn09aS5mbG9hdGluZztcInRvcFwiPT09cHx8XCJib3R0b21cIj09PXA/KHI9cCxvPWg9PT0oYXdhaXQgKG51bGw9PWwuaXNSVEw/dm9pZCAwOmwuaXNSVEwocy5mbG9hdGluZykpP1wic3RhcnRcIjpcImVuZFwiKT9cImxlZnRcIjpcInJpZ2h0XCIpOihvPXAscj1cImVuZFwiPT09aD9cInRvcFwiOlwiYm90dG9tXCIpO2xldCBiPXYtZC50b3AtZC5ib3R0b20seT1tLWQubGVmdC1kLnJpZ2h0LHg9bmcodi1kW3JdLGIpLHc9bmcobS1kW29dLHkpLGo9IWUubWlkZGxld2FyZURhdGEuc2hpZnQsaz14LEE9dztpZihudWxsIT0obj1lLm1pZGRsZXdhcmVEYXRhLnNoaWZ0KSYmbi5lbmFibGVkLngmJihBPXkpLG51bGwhPSh0PWUubWlkZGxld2FyZURhdGEuc2hpZnQpJiZ0LmVuYWJsZWQueSYmKGs9YiksaiYmIWgpe2xldCBlPW5tKGQubGVmdCwwKSxuPW5tKGQucmlnaHQsMCksdD1ubShkLnRvcCwwKSxyPW5tKGQuYm90dG9tLDApO2c/QT1tLTIqKDAhPT1lfHwwIT09bj9lK246bm0oZC5sZWZ0LGQucmlnaHQpKTprPXYtMiooMCE9PXR8fDAhPT1yP3QrcjpubShkLnRvcCxkLmJvdHRvbSkpfWF3YWl0IGMoey4uLmUsYXZhaWxhYmxlV2lkdGg6QSxhdmFpbGFibGVIZWlnaHQ6a30pO2xldCBPPWF3YWl0IGwuZ2V0RGltZW5zaW9ucyhzLmZsb2F0aW5nKTtyZXR1cm4gbSE9PU8ud2lkdGh8fHYhPT1PLmhlaWdodD97cmVzZXQ6e3JlY3RzOiEwfX06e319fSxvcHRpb25zOlt1LGRdfSwocD0oKT0+KHtlbGVtZW50OkouY3VycmVudHx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxwYWRkaW5nOl99KSxoPVtfXSx7bmFtZTpcImFycm93XCIsb3B0aW9uczpwLGZuKGUpe2xldHtlbGVtZW50Om4scGFkZGluZzp0fT1wKGUpO3JldHVybiBuJiYoe30pLmhhc093blByb3BlcnR5LmNhbGwobixcImN1cnJlbnRcIik/bnVsbCE9bi5jdXJyZW50P3JYKHtlbGVtZW50Om4uY3VycmVudCxwYWRkaW5nOnR9KS5mbihlKTp7fTpuP3JYKHtlbGVtZW50Om4scGFkZGluZzp0fSkuZm4oZSk6e319LG9wdGlvbnM6W3AsaF19KSx7Li4uKHZvaWQgMD09PSh2PWcpJiYodj17fSkse25hbWU6XCJoaWRlXCIsb3B0aW9uczp2LGFzeW5jIGZuKGUpe2xldHtyZWN0czpufT1lLHtzdHJhdGVneTp0PVwicmVmZXJlbmNlSGlkZGVuXCIsLi4ucn09bmoodixlKTtzd2l0Y2godCl7Y2FzZVwicmVmZXJlbmNlSGlkZGVuXCI6e2xldCB0PXJFKGF3YWl0IHJTKGUsey4uLnIsZWxlbWVudENvbnRleHQ6XCJyZWZlcmVuY2VcIn0pLG4ucmVmZXJlbmNlKTtyZXR1cm57ZGF0YTp7cmVmZXJlbmNlSGlkZGVuT2Zmc2V0czp0LHJlZmVyZW5jZUhpZGRlbjpyXyh0KX19fWNhc2VcImVzY2FwZWRcIjp7bGV0IHQ9ckUoYXdhaXQgclMoZSx7Li4ucixhbHRCb3VuZGFyeTohMH0pLG4uZmxvYXRpbmcpO3JldHVybntkYXRhOntlc2NhcGVkT2Zmc2V0czp0LGVzY2FwZWQ6cl8odCl9fX1kZWZhdWx0OnJldHVybnt9fX19KSxvcHRpb25zOltnLG1dfSx7bmFtZTpcInRyYW5zZm9ybU9yaWdpblwiLGZuKGUpe2xldHtlbGVtZW50czpuLG1pZGRsZXdhcmVEYXRhOnQscGxhY2VtZW50OnIscmVjdHM6byx5OmF9PWUsaT1uayhyKSxsPW5FKGkpLHM9Si5jdXJyZW50LGM9dC5hcnJvdz8ueHx8MCx1PXQuYXJyb3c/Lnl8fDAsZD1zPy5jbGllbnRXaWR0aHx8MCxmPXM/LmNsaWVudEhlaWdodHx8MCxwPWMrZC8yLGg9dStmLzIsZz1NYXRoLmFicyh0LnNoaWZ0Py55fHwwKSxtPW8ucmVmZXJlbmNlLmhlaWdodC8yLHY9Zz4oXCJmdW5jdGlvblwiPT10eXBlb2Ygdz93KHIyKGUseCxYKSk6dyksYj17dG9wOmAke3B9cHggY2FsYygxMDAlICsgJHt3fXB4KWAsYm90dG9tOmAke3B9cHggJHstd31weGAsbGVmdDpgY2FsYygxMDAlICsgJHt3fXB4KSAke2h9cHhgLHJpZ2h0OmAkey13fXB4ICR7aH1weGB9W2ldLHk9YCR7cH1weCAke28ucmVmZXJlbmNlLnkrbS1hfXB4YDtyZXR1cm4gbi5mbG9hdGluZy5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tdHJhbnNmb3JtLW9yaWdpblwiLGVpJiZcInlcIj09PWwmJnY/eTpiKSx7fX19LE0pO2xldCBlYz1MOyFSJiZMJiYoZWM9ey4uLkwsZWxlbWVudHM6e3JlZmVyZW5jZTpudWxsLGZsb2F0aW5nOm51bGwsZG9tUmVmZXJlbmNlOm51bGx9fSk7bGV0IGV1PUMudXNlTWVtbygoKT0+KHtlbGVtZW50UmVzaXplOlAmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBSZXNpemVPYnNlcnZlcixsYXlvdXRTaGlmdDpQJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJ9KSxbUF0pLHtyZWZzOmVkLGVsZW1lbnRzOmVmLHg6ZXAseTplaCxtaWRkbGV3YXJlRGF0YTplZyx1cGRhdGU6ZW0scGxhY2VtZW50OmV2LGNvbnRleHQ6ZWIsaXNQb3NpdGlvbmVkOmV5LGZsb2F0aW5nU3R5bGVzOmV4fT1mdW5jdGlvbihlPXt9KXtsZXR7bm9kZUlkOm59PWUsdD1ZKHsuLi5lLGVsZW1lbnRzOntyZWZlcmVuY2U6bnVsbCxmbG9hdGluZzpudWxsLC4uLmUuZWxlbWVudHN9fSkscj1lLnJvb3RDb250ZXh0fHx0LG89ci5lbGVtZW50cyxbYSxpXT1DLnVzZVN0YXRlKG51bGwpLFtsLHNdPUMudXNlU3RhdGUobnVsbCksYz1vPy5kb21SZWZlcmVuY2V8fGEsdT1DLnVzZVJlZihudWxsKSxkPVcoKTtGKCgpPT57YyYmKHUuY3VycmVudD1jKX0sW2NdKTtsZXQgZj1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT17fSk7bGV0e3BsYWNlbWVudDpuPVwiYm90dG9tXCIsc3RyYXRlZ3k6dD1cImFic29sdXRlXCIsbWlkZGxld2FyZTpyPVtdLHBsYXRmb3JtOm8sZWxlbWVudHM6e3JlZmVyZW5jZTphLGZsb2F0aW5nOml9PXt9LHRyYW5zZm9ybTpsPSEwLHdoaWxlRWxlbWVudHNNb3VudGVkOnMsb3BlbjpjfT1lLFt1LGRdPUMudXNlU3RhdGUoe3g6MCx5OjAsc3RyYXRlZ3k6dCxwbGFjZW1lbnQ6bixtaWRkbGV3YXJlRGF0YTp7fSxpc1Bvc2l0aW9uZWQ6ITF9KSxbZixwXT1DLnVzZVN0YXRlKHIpO3JRKGYscil8fHAocik7bGV0W2gsZ109Qy51c2VTdGF0ZShudWxsKSxbbSx2XT1DLnVzZVN0YXRlKG51bGwpLGI9Qy51c2VDYWxsYmFjayhlPT57ZSE9PWouY3VycmVudCYmKGouY3VycmVudD1lLGcoZSkpfSxbXSkseT1DLnVzZUNhbGxiYWNrKGU9PntlIT09ay5jdXJyZW50JiYoay5jdXJyZW50PWUsdihlKSl9LFtdKSx4PWF8fGgsdz1pfHxtLGo9Qy51c2VSZWYobnVsbCksaz1DLnVzZVJlZihudWxsKSxBPUMudXNlUmVmKHUpLE89bnVsbCE9cyxTPXIwKHMpLF89cjAobyksUD1yMChjKSx6PUMudXNlQ2FsbGJhY2soKCk9PntpZighai5jdXJyZW50fHwhay5jdXJyZW50KXJldHVybjtsZXQgZT17cGxhY2VtZW50Om4sc3RyYXRlZ3k6dCxtaWRkbGV3YXJlOmZ9O18uY3VycmVudCYmKGUucGxhdGZvcm09Xy5jdXJyZW50KSwoKGUsbix0KT0+e2xldCByPW5ldyBNYXAsbz17cGxhdGZvcm06ciQsLi4udH0sYT17Li4uby5wbGF0Zm9ybSxfYzpyfTtyZXR1cm4gckMoZSxuLHsuLi5vLHBsYXRmb3JtOmF9KX0pKGouY3VycmVudCxrLmN1cnJlbnQsZSkudGhlbihlPT57bGV0IG49ey4uLmUsaXNQb3NpdGlvbmVkOiExIT09UC5jdXJyZW50fTtMLmN1cnJlbnQmJiFyUShBLmN1cnJlbnQsbikmJihBLmN1cnJlbnQ9bixFLmZsdXNoU3luYygoKT0+e2Qobil9KSl9KX0sW2Ysbix0LF8sUF0pO3JLKCgpPT57ITE9PT1jJiZBLmN1cnJlbnQuaXNQb3NpdGlvbmVkJiYoQS5jdXJyZW50LmlzUG9zaXRpb25lZD0hMSxkKGU9Pih7Li4uZSxpc1Bvc2l0aW9uZWQ6ITF9KSkpfSxbY10pO2xldCBMPUMudXNlUmVmKCExKTtySygoKT0+KEwuY3VycmVudD0hMCwoKT0+e0wuY3VycmVudD0hMX0pLFtdKSxySygoKT0+e2lmKHgmJihqLmN1cnJlbnQ9eCksdyYmKGsuY3VycmVudD13KSx4JiZ3KXtpZihTLmN1cnJlbnQpcmV0dXJuIFMuY3VycmVudCh4LHcseik7eigpfX0sW3gsdyx6LFMsT10pO2xldCBUPUMudXNlTWVtbygoKT0+KHtyZWZlcmVuY2U6aixmbG9hdGluZzprLHNldFJlZmVyZW5jZTpiLHNldEZsb2F0aW5nOnl9KSxbYix5XSksUj1DLnVzZU1lbW8oKCk9Pih7cmVmZXJlbmNlOngsZmxvYXRpbmc6d30pLFt4LHddKSxOPUMudXNlTWVtbygoKT0+e2xldCBlPXtwb3NpdGlvbjp0LGxlZnQ6MCx0b3A6MH07aWYoIVIuZmxvYXRpbmcpcmV0dXJuIGU7bGV0IG49ckooUi5mbG9hdGluZyx1LngpLHI9ckooUi5mbG9hdGluZyx1LnkpO3JldHVybiBsP3suLi5lLHRyYW5zZm9ybTpcInRyYW5zbGF0ZShcIituK1wicHgsIFwiK3IrXCJweClcIiwuLi5yRyhSLmZsb2F0aW5nKT49MS41JiZ7d2lsbENoYW5nZTpcInRyYW5zZm9ybVwifX06e3Bvc2l0aW9uOnQsbGVmdDpuLHRvcDpyfX0sW3QsbCxSLmZsb2F0aW5nLHUueCx1LnldKTtyZXR1cm4gQy51c2VNZW1vKCgpPT4oey4uLnUsdXBkYXRlOnoscmVmczpULGVsZW1lbnRzOlIsZmxvYXRpbmdTdHlsZXM6Tn0pLFt1LHosVCxSLE5dKX0oey4uLmUsZWxlbWVudHM6ey4uLm8sLi4ubCYme3JlZmVyZW5jZTpsfX19KSxwPUMudXNlQ2FsbGJhY2soZT0+e2xldCBuPWVlKGUpP3tnZXRCb3VuZGluZ0NsaWVudFJlY3Q6KCk9PmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZ2V0Q2xpZW50UmVjdHM6KCk9PmUuZ2V0Q2xpZW50UmVjdHMoKSxjb250ZXh0RWxlbWVudDplfTplO3MobiksZi5yZWZzLnNldFJlZmVyZW5jZShuKX0sW2YucmVmc10pLGg9Qy51c2VDYWxsYmFjayhlPT57KGVlKGUpfHxudWxsPT09ZSkmJih1LmN1cnJlbnQ9ZSxpKGUpKSwoZWUoZi5yZWZzLnJlZmVyZW5jZS5jdXJyZW50KXx8bnVsbD09PWYucmVmcy5yZWZlcmVuY2UuY3VycmVudHx8bnVsbCE9PWUmJiFlZShlKSkmJmYucmVmcy5zZXRSZWZlcmVuY2UoZSl9LFtmLnJlZnNdKSxnPUMudXNlTWVtbygoKT0+KHsuLi5mLnJlZnMsc2V0UmVmZXJlbmNlOmgsc2V0UG9zaXRpb25SZWZlcmVuY2U6cCxkb21SZWZlcmVuY2U6dX0pLFtmLnJlZnMsaCxwXSksbT1DLnVzZU1lbW8oKCk9Pih7Li4uZi5lbGVtZW50cyxkb21SZWZlcmVuY2U6Y30pLFtmLmVsZW1lbnRzLGNdKSx2PUMudXNlTWVtbygoKT0+KHsuLi5mLC4uLnIscmVmczpnLGVsZW1lbnRzOm0sbm9kZUlkOm59KSxbZixnLG0sbixyXSk7cmV0dXJuIEYoKCk9PntyLmRhdGFSZWYuY3VycmVudC5mbG9hdGluZ0NvbnRleHQ9djtsZXQgZT1kPy5ub2Rlc1JlZi5jdXJyZW50LmZpbmQoZT0+ZS5pZD09PW4pO2UmJihlLmNvbnRleHQ9dil9KSxDLnVzZU1lbW8oKCk9Pih7Li4uZixjb250ZXh0OnYscmVmczpnLGVsZW1lbnRzOm19KSxbZixnLG0sdl0pfSh7cm9vdENvbnRleHQ6ZWMscGxhY2VtZW50OlEsbWlkZGxld2FyZTplbyxzdHJhdGVneTp5LHdoaWxlRWxlbWVudHNNb3VudGVkOno/dm9pZCAwOiguLi5lKT0+clkoLi4uZSxldSksbm9kZUlkOkJ9KSx7c2lkZVg6ZXcsc2lkZVk6ZWp9PWVnLmFkYXB0aXZlT3JpZ2lufHx7fSxlaz1DLnVzZU1lbW8oKCk9Pk0/e3Bvc2l0aW9uOnksW2V3XTpgJHtlcH1weGAsW2VqXTpgJHtlaH1weGB9OmV4LFtNLGV3LGVqLHksZXAsZWgsZXhdKSxlTz1DLnVzZVJlZihudWxsKTtGKCgpPT57aWYoIVIpcmV0dXJuO2xldCBlPVouY3VycmVudCxuPVwiZnVuY3Rpb25cIj09dHlwZW9mIGU/ZSgpOmUsdD0ocjUobik/bi5jdXJyZW50Om4pfHxudWxsO3QhPT1lTy5jdXJyZW50JiYoZWQuc2V0UG9zaXRpb25SZWZlcmVuY2UodCksZU8uY3VycmVudD10KX0sW1IsZWQsJCxaXSksQy51c2VFZmZlY3QoKCk9PntpZighUilyZXR1cm47bGV0IGU9Wi5jdXJyZW50O1wiZnVuY3Rpb25cIiE9dHlwZW9mIGUmJnI1KGUpJiZlLmN1cnJlbnQhPT1lTy5jdXJyZW50JiYoZWQuc2V0UG9zaXRpb25SZWZlcmVuY2UoZS5jdXJyZW50KSxlTy5jdXJyZW50PWUuY3VycmVudCl9LFtSLGVkLCQsWl0pLEMudXNlRWZmZWN0KCgpPT57aWYoeiYmUiYmZWYuZG9tUmVmZXJlbmNlJiZlZi5mbG9hdGluZylyZXR1cm4gclkoZWYuZG9tUmVmZXJlbmNlLGVmLmZsb2F0aW5nLGVtLGV1KX0sW3osUixlZixlbSxldV0pO2xldCBlQz1yMSh4LG5rKGV2KSxYKSxlUz1uQShldil8fFwiY2VudGVyXCIsZUU9ISFlZy5oaWRlPy5yZWZlcmVuY2VIaWRkZW4sZV89Qy51c2VNZW1vKCgpPT4oe3Bvc2l0aW9uOlwiYWJzb2x1dGVcIix0b3A6ZWcuYXJyb3c/LnksbGVmdDplZy5hcnJvdz8ueH0pLFtlZy5hcnJvd10pLGVQPWVnLmFycm93Py5jZW50ZXJPZmZzZXQhPT0wO3JldHVybiBDLnVzZU1lbW8oKCk9Pih7cG9zaXRpb25lclN0eWxlczplayxhcnJvd1N0eWxlczplXyxhcnJvd1JlZjpKLGFycm93VW5jZW50ZXJlZDplUCxzaWRlOmVDLGFsaWduOmVTLGFuY2hvckhpZGRlbjplRSxyZWZzOmVkLGNvbnRleHQ6ZWIsaXNQb3NpdGlvbmVkOmV5LHVwZGF0ZTplbX0pLFtlayxlXyxKLGVQLGVDLGVTLGVFLGVkLGViLGV5LGVtXSl9ZnVuY3Rpb24gcjUoZSl7cmV0dXJuIG51bGwhPWUmJlwiY3VycmVudFwiaW4gZX1mdW5jdGlvbiByMyhlKXtsZXR7Y2hpbGRyZW46bixlbGVtZW50c1JlZjp0LGxhYmVsc1JlZjpyLG9uTWFwQ2hhbmdlOm99PWUsYT1DLnVzZVJlZigwKSxpPVAocjkpLmN1cnJlbnQscz1QKHI2KS5jdXJyZW50LFtjLHVdPUMudXNlU3RhdGUoMCksZD1DLnVzZVJlZihjKSxmPVQoKGUsbik9PntzLnNldChlLG4/P251bGwpLGQuY3VycmVudCs9MSx1KGQuY3VycmVudCl9KSxwPVQoZT0+e3MuZGVsZXRlKGUpLGQuY3VycmVudCs9MSx1KGQuY3VycmVudCl9KSxoPUMudXNlTWVtbygoKT0+e2xldCBlPW5ldyBNYXA7cmV0dXJuIEFycmF5LmZyb20ocy5rZXlzKCkpLnNvcnQocjgpLmZvckVhY2goKG4sdCk9PntsZXQgcj1zLmdldChuKT8/e307ZS5zZXQobix7Li4ucixpbmRleDp0fSl9KSxlfSxbcyxjXSk7RigoKT0+e2QuY3VycmVudD09PWMmJih0LmN1cnJlbnQubGVuZ3RoIT09aC5zaXplJiYodC5jdXJyZW50Lmxlbmd0aD1oLnNpemUpLHImJnIuY3VycmVudC5sZW5ndGghPT1oLnNpemUmJihyLmN1cnJlbnQubGVuZ3RoPWguc2l6ZSkpLG8/LihoKX0sW28saCx0LHIsYyxkXSk7bGV0IGc9VChlPT4oaS5hZGQoZSksKCk9PntpLmRlbGV0ZShlKX0pKTtGKCgpPT57aS5mb3JFYWNoKGU9PmUoaCkpfSxbaSxoXSk7bGV0IG09Qy51c2VNZW1vKCgpPT4oe3JlZ2lzdGVyOmYsdW5yZWdpc3RlcjpwLHN1YnNjcmliZU1hcENoYW5nZTpnLGVsZW1lbnRzUmVmOnQsbGFiZWxzUmVmOnIsbmV4dEluZGV4UmVmOmF9KSxbZixwLGcsdCxyLGFdKTtyZXR1cm4oMCxsLmpzeCkodEMuUHJvdmlkZXIse3ZhbHVlOm0sY2hpbGRyZW46bn0pfWZ1bmN0aW9uIHI2KCl7cmV0dXJuIG5ldyBNYXB9ZnVuY3Rpb24gcjkoKXtyZXR1cm4gbmV3IFNldH1mdW5jdGlvbiByOChlLG4pe2xldCB0PWUuY29tcGFyZURvY3VtZW50UG9zaXRpb24obik7cmV0dXJuIHQmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkd8fHQmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlk/LTE6dCZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElOR3x8dCZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5TPzE6MH1sZXQgcjc9Qy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7bGV0IHQse2N1dG91dDpyLC4uLm99PWU7aWYocil7bGV0IGU9cj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dD1gcG9seWdvbihcbiAgICAgIDAlIDAlLFxuICAgICAgMTAwJSAwJSxcbiAgICAgIDEwMCUgMTAwJSxcbiAgICAgIDAlIDEwMCUsXG4gICAgICAwJSAwJSxcbiAgICAgICR7ZS5sZWZ0fXB4ICR7ZS50b3B9cHgsXG4gICAgICAke2UubGVmdH1weCAke2UuYm90dG9tfXB4LFxuICAgICAgJHtlLnJpZ2h0fXB4ICR7ZS5ib3R0b219cHgsXG4gICAgICAke2UucmlnaHR9cHggJHtlLnRvcH1weCxcbiAgICAgICR7ZS5sZWZ0fXB4ICR7ZS50b3B9cHhcbiAgICApYH1yZXR1cm4oMCxsLmpzeCkoXCJkaXZcIix7cmVmOm4scm9sZTpcInByZXNlbnRhdGlvblwiLFwiZGF0YS1iYXNlLXVpLWluZXJ0XCI6XCJcIiwuLi5vLHN0eWxlOntwb3NpdGlvbjpcImZpeGVkXCIsaW5zZXQ6MCx1c2VyU2VsZWN0Olwibm9uZVwiLFdlYmtpdFVzZXJTZWxlY3Q6XCJub25lXCIsY2xpcFBhdGg6dH19KX0pLG9lPUMuZm9yd2FyZFJlZihmdW5jdGlvbihlLG4pe3ZhciB0O2xldHthbmNob3I6cixwb3NpdGlvbk1ldGhvZDpvPVwiYWJzb2x1dGVcIixjbGFzc05hbWU6YSxyZW5kZXI6aSxzaWRlOnMsYWxpZ246YyxzaWRlT2Zmc2V0OnU9MCxhbGlnbk9mZnNldDpkPTAsY29sbGlzaW9uQm91bmRhcnk6Zj1cImNsaXBwaW5nLWFuY2VzdG9yc1wiLGNvbGxpc2lvblBhZGRpbmc6cD01LGFycm93UGFkZGluZzpoPTUsc3RpY2t5Omc9ITEsdHJhY2tBbmNob3I6bT0hMCxjb2xsaXNpb25Bdm9pZGFuY2U6dj1ubywuLi5ifT1lLHtvcGVuOnksc2V0T3Blbjp4LGZsb2F0aW5nUm9vdENvbnRleHQ6dyxzZXRQb3NpdGlvbmVyRWxlbWVudDpqLGl0ZW1Eb21FbGVtZW50czprLGl0ZW1MYWJlbHM6QSxtb3VudGVkOk8sbW9kYWw6UyxsYXN0T3BlbkNoYW5nZVJlYXNvbjpFLHBhcmVudDpfLHNldEhvdmVyRW5hYmxlZDpQLHRyaWdnZXJFbGVtZW50Onp9PW4wKCksTD1mdW5jdGlvbigpe2xldCBlPUMudXNlQ29udGV4dChyaik7aWYodm9pZCAwPT09ZSl0aHJvdyBFcnJvcihcIkJhc2UgVUk6IDxNZW51LlBvcnRhbD4gaXMgbWlzc2luZy5cIik7cmV0dXJuIGV9KCksVD1mdW5jdGlvbihlKXtsZXQgbj1IKCksdD1XKCkscj1xKCk7cmV0dXJuIEYoKCk9PntpZighbilyZXR1cm47bGV0IGU9e2lkOm4scGFyZW50SWQ6cn07cmV0dXJuIHQ/LmFkZE5vZGUoZSksKCk9Pnt0Py5yZW1vdmVOb2RlKGUpfX0sW3QsbixyXSksbn0oKSxSPXEoKSxOPXRhKCEwKSxEPXIsQj11LE09ZCxJPWM7XCJjb250ZXh0LW1lbnVcIj09PV8udHlwZSYmKEQ9Xy5jb250ZXh0Py5hbmNob3I/P3IsST1lLmFsaWduPz9cInN0YXJ0XCIsTT1lLmFsaWduT2Zmc2V0Pz8yLEI9ZS5zaWRlT2Zmc2V0Pz8tNSk7bGV0IFU9cyxWPUk7XCJtZW51XCI9PT1fLnR5cGU/KFU9VT8/XCJpbmxpbmUtZW5kXCIsVj1WPz9cInN0YXJ0XCIpOlwibWVudWJhclwiPT09Xy50eXBlJiYoVT1VPz9cImJvdHRvbVwiLFY9Vj8/XCJzdGFydFwiKTtsZXQgWj1cImNvbnRleHQtbWVudVwiPT09Xy50eXBlLFk9cjQoe2FuY2hvcjpELGZsb2F0aW5nUm9vdENvbnRleHQ6dyxwb3NpdGlvbk1ldGhvZDpOP1wiZml4ZWRcIjpvLG1vdW50ZWQ6TyxzaWRlOlUsc2lkZU9mZnNldDpCLGFsaWduOlYsYWxpZ25PZmZzZXQ6TSxhcnJvd1BhZGRpbmc6Wj8wOmgsY29sbGlzaW9uQm91bmRhcnk6Zixjb2xsaXNpb25QYWRkaW5nOnAsc3RpY2t5Omcsbm9kZUlkOlQsa2VlcE1vdW50ZWQ6TCx0cmFja0FuY2hvcjptLGNvbGxpc2lvbkF2b2lkYW5jZTp2LHNoaWZ0Q3Jvc3NBeGlzOlp9KSx7ZXZlbnRzOlh9PVcoKSxLPUMudXNlTWVtbygoKT0+e2xldCBlPXt9O3JldHVybiB5fHwoZS5wb2ludGVyRXZlbnRzPVwibm9uZVwiKSx7cm9sZTpcInByZXNlbnRhdGlvblwiLGhpZGRlbjohTyxzdHlsZTp7Li4uWS5wb3NpdGlvbmVyU3R5bGVzLC4uLmV9fX0sW3ksTyxZLnBvc2l0aW9uZXJTdHlsZXNdKTtDLnVzZUVmZmVjdCgoKT0+e2Z1bmN0aW9uIGUoZSl7ZS5vcGVuPyhlLnBhcmVudE5vZGVJZD09PVQmJlAoITEpLGUubm9kZUlkIT09VCYmZS5wYXJlbnROb2RlSWQ9PT1SJiZ4KCExLHZvaWQgMCxcInNpYmxpbmctb3BlblwiKSk6ZS5wYXJlbnROb2RlSWQ9PT1UJiZQKCEwKX1yZXR1cm4gWC5vbihcIm9wZW5jaGFuZ2VcIixlKSwoKT0+e1gub2ZmKFwib3BlbmNoYW5nZVwiLGUpfX0sW1gsVCxSLHgsUF0pLEMudXNlRWZmZWN0KCgpPT57WC5lbWl0KFwib3BlbmNoYW5nZVwiLHtvcGVuOnksbm9kZUlkOlQscGFyZW50Tm9kZUlkOlJ9KX0sW1gseSxULFJdKTtsZXQgUT1DLnVzZU1lbW8oKCk9Pih7b3Blbjp5LHNpZGU6WS5zaWRlLGFsaWduOlkuYWxpZ24sYW5jaG9ySGlkZGVuOlkuYW5jaG9ySGlkZGVuLG5lc3RlZDpcIm1lbnVcIj09PV8udHlwZX0pLFt5LFkuc2lkZSxZLmFsaWduLFkuYW5jaG9ySGlkZGVuLF8udHlwZV0pLEc9Qy51c2VNZW1vKCgpPT4oe3NpZGU6WS5zaWRlLGFsaWduOlkuYWxpZ24sYXJyb3dSZWY6WS5hcnJvd1JlZixhcnJvd1VuY2VudGVyZWQ6WS5hcnJvd1VuY2VudGVyZWQsYXJyb3dTdHlsZXM6WS5hcnJvd1N0eWxlcyxmbG9hdGluZ0NvbnRleHQ6WS5jb250ZXh0fSksW1kuc2lkZSxZLmFsaWduLFkuYXJyb3dSZWYsWS5hcnJvd1VuY2VudGVyZWQsWS5hcnJvd1N0eWxlcyxZLmNvbnRleHRdKSxKPXRqKFwiZGl2XCIsZSx7c3RhdGU6USxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnRWLHJlZjpbbixqXSxwcm9wczp7Li4uSywuLi5ifX0pLGVlPU8mJlwibWVudVwiIT09Xy50eXBlJiYoXCJtZW51YmFyXCIhPT1fLnR5cGUmJlMmJlwidHJpZ2dlci1ob3ZlclwiIT09RXx8XCJtZW51YmFyXCI9PT1fLnR5cGUmJl8uY29udGV4dC5tb2RhbCksZW49bnVsbDtyZXR1cm5cIm1lbnViYXJcIj09PV8udHlwZT9lbj1fLmNvbnRleHQuY29udGVudEVsZW1lbnQ6dm9pZCAwPT09Xy50eXBlJiYoZW49eiksKDAsbC5qc3hzKShyQS5Qcm92aWRlcix7dmFsdWU6RyxjaGlsZHJlbjpbZWUmJigwLGwuanN4KShyNyx7cmVmOlwiY29udGV4dC1tZW51XCI9PT1fLnR5cGV8fFwibmVzdGVkLWNvbnRleHQtbWVudVwiPT09Xy50eXBlP18uY29udGV4dC5pbnRlcm5hbEJhY2tkcm9wUmVmOm51bGwsaW5lcnQ6KHQ9IXksdHc+PTE5P3Q6dD9cInRydWVcIjp2b2lkIDApLGN1dG91dDplbn0pLCgwLGwuanN4KSgkLHtpZDpULGNoaWxkcmVuOigwLGwuanN4KShyMyx7ZWxlbWVudHNSZWY6ayxsYWJlbHNSZWY6QSxjaGlsZHJlbjpKfSl9KV19KX0pLG9uPXtpbmVydDpuZXcgV2Vha01hcCxcImFyaWEtaGlkZGVuXCI6bmV3IFdlYWtNYXAsbm9uZTpuZXcgV2Vha01hcH07ZnVuY3Rpb24gb3QoZSl7cmV0dXJuXCJpbmVydFwiPT09ZT9vbi5pbmVydDpcImFyaWEtaGlkZGVuXCI9PT1lP29uW1wiYXJpYS1oaWRkZW5cIl06b24ubm9uZX1sZXQgb3I9bmV3IFdlYWtTZXQsb289e30sb2E9MCxvaT1lPT5lJiYoZS5ob3N0fHxvaShlLnBhcmVudE5vZGUpKTtmdW5jdGlvbiBvbChlLG49ITEsdD0hMSl7bGV0IHI9ZVEoZVswXSkuYm9keTtyZXR1cm4gZnVuY3Rpb24oZSxuLHQscil7bGV0IG89XCJkYXRhLWJhc2UtdWktaW5lcnRcIixhPXI/XCJpbmVydFwiOnQ/XCJhcmlhLWhpZGRlblwiOm51bGwsaT1lLm1hcChlPT57aWYobi5jb250YWlucyhlKSlyZXR1cm4gZTtsZXQgdD1vaShlKTtyZXR1cm4gbi5jb250YWlucyh0KT90Om51bGx9KS5maWx0ZXIoZT0+bnVsbCE9ZSksbD1uZXcgU2V0LHM9bmV3IFNldChpKSxjPVtdO29vW29dfHwob29bb109bmV3IFdlYWtNYXApO2xldCB1PW9vW29dO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24gZShuKXshKCFufHxsLmhhcyhuKSkmJihsLmFkZChuKSxuLnBhcmVudE5vZGUmJmUobi5wYXJlbnROb2RlKSl9KSxmdW5jdGlvbiBlKG4peyFufHxzLmhhcyhuKXx8W10uZm9yRWFjaC5jYWxsKG4uY2hpbGRyZW4sbj0+e2lmKFwic2NyaXB0XCIhPT1LKG4pKWlmKGwuaGFzKG4pKWUobik7ZWxzZXtsZXQgZT1hP24uZ2V0QXR0cmlidXRlKGEpOm51bGwsdD1udWxsIT09ZSYmXCJmYWxzZVwiIT09ZSxyPW90KGEpLGk9KHIuZ2V0KG4pfHwwKSsxLGw9KHUuZ2V0KG4pfHwwKSsxO3Iuc2V0KG4saSksdS5zZXQobixsKSxjLnB1c2gobiksMT09PWkmJnQmJm9yLmFkZChuKSwxPT09bCYmbi5zZXRBdHRyaWJ1dGUobyxcIlwiKSwhdCYmYSYmbi5zZXRBdHRyaWJ1dGUoYSxcImluZXJ0XCI9PT1hP1wiXCI6XCJ0cnVlXCIpfX0pfShuKSxsLmNsZWFyKCksb2ErPTEsKCk9PntjLmZvckVhY2goZT0+e2xldCBuPW90KGEpLHQ9KG4uZ2V0KGUpfHwwKS0xLHI9KHUuZ2V0KGUpfHwwKS0xO24uc2V0KGUsdCksdS5zZXQoZSxyKSx0fHwoIW9yLmhhcyhlKSYmYSYmZS5yZW1vdmVBdHRyaWJ1dGUoYSksb3IuZGVsZXRlKGUpKSxyfHxlLnJlbW92ZUF0dHJpYnV0ZShvKX0pLChvYS09MSl8fChvbi5pbmVydD1uZXcgV2Vha01hcCxvbltcImFyaWEtaGlkZGVuXCJdPW5ldyBXZWFrTWFwLG9uLm5vbmU9bmV3IFdlYWtNYXAsb3I9bmV3IFdlYWtTZXQsb289e30pfX0oZS5jb25jYXQoQXJyYXkuZnJvbShyLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbYXJpYS1saXZlXVwiKSkpLHIsbix0KX1sZXQgb3M9W107ZnVuY3Rpb24gb2MoKXtyZXR1cm4gb3Muc2xpY2UoKS5yZXZlcnNlKCkuZmluZChlPT5lLmlzQ29ubmVjdGVkKX1mdW5jdGlvbiBvdShlLG4pe2lmKCFuLmN1cnJlbnQuaW5jbHVkZXMoXCJmbG9hdGluZ1wiKSYmIWUuZ2V0QXR0cmlidXRlKFwicm9sZVwiKT8uaW5jbHVkZXMoXCJkaWFsb2dcIikpcmV0dXJuO2xldCB0PXJkKCkscj1yYyhlLHQpLmZpbHRlcihlPT57bGV0IG49ZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXRhYmluZGV4XCIpfHxcIlwiO3JldHVybiBydShlLHQpfHxlLmhhc0F0dHJpYnV0ZShcImRhdGEtdGFiaW5kZXhcIikmJiFuLnN0YXJ0c1dpdGgoXCItXCIpfSksbz1lLmdldEF0dHJpYnV0ZShcInRhYmluZGV4XCIpO24uY3VycmVudC5pbmNsdWRlcyhcImZsb2F0aW5nXCIpfHwwPT09ci5sZW5ndGg/XCIwXCIhPT1vJiZlLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCIwXCIpOihcIi0xXCIhPT1vfHxlLmhhc0F0dHJpYnV0ZShcImRhdGEtdGFiaW5kZXhcIikmJlwiLTFcIiE9PWUuZ2V0QXR0cmlidXRlKFwiZGF0YS10YWJpbmRleFwiKSkmJihlLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCItMVwiKSxlLnNldEF0dHJpYnV0ZShcImRhdGEtdGFiaW5kZXhcIixcIi0xXCIpKX1sZXQgb2Q9Qy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7cmV0dXJuKDAsbC5qc3gpKFwiYnV0dG9uXCIsey4uLmUsdHlwZTpcImJ1dHRvblwiLHJlZjpuLHRhYkluZGV4Oi0xLHN0eWxlOnQkfSl9KTtmdW5jdGlvbiBvZihlKXtsZXR7Y29udGV4dDpuLGNoaWxkcmVuOnQsZGlzYWJsZWQ6cj0hMSxvcmRlcjpvPVtcImNvbnRlbnRcIl0sZ3VhcmRzOmE9ITAsaW5pdGlhbEZvY3VzOmk9MCxyZXR1cm5Gb2N1czpzPSEwLHJlc3RvcmVGb2N1czpjPSExLG1vZGFsOnU9ITAsdmlzdWFsbHlIaWRkZW5EaXNtaXNzOmQ9ITEsY2xvc2VPbkZvY3VzT3V0OmY9ITAsb3V0c2lkZUVsZW1lbnRzSW5lcnQ6cD0hMSxnZXRJbnNpZGVFbGVtZW50czpoPSgpPT5bXX09ZSx7b3BlbjpnLG9uT3BlbkNoYW5nZTptLGV2ZW50czp2LGRhdGFSZWY6YixlbGVtZW50czp7ZG9tUmVmZXJlbmNlOnksZmxvYXRpbmc6eH19PW4sdz1UKCgpPT5iLmN1cnJlbnQuZmxvYXRpbmdDb250ZXh0Py5ub2RlSWQpLGo9VChoKSxrPVwibnVtYmVyXCI9PXR5cGVvZiBpJiZpPDAsQT1lSih5KSYmayxPPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBIVE1MRWxlbWVudCYmXCJpbmVydFwiaW4gSFRNTEVsZW1lbnQucHJvdG90eXBlLFM9IU98fGEsRT0hU3x8TyYmcCxfPWVBKG8pLFA9ZUEoaSksej1lQShzKSxMPVcoKSxSPXJiKCksTj1DLnVzZVJlZihudWxsKSxEPUMudXNlUmVmKG51bGwpLEI9Qy51c2VSZWYoITEpLE09Qy51c2VSZWYoITEpLEk9Qy51c2VSZWYoLTEpLEg9bnVsbCE9UixVPWUwKHgpLFY9VCgoZT1VKT0+ZT9ycyhlLHJkKCkpOltdKSxxPVQoZT0+e2xldCBuPVYoZSk7cmV0dXJuIF8uY3VycmVudC5tYXAoZT0+eSYmXCJyZWZlcmVuY2VcIj09PWU/eTpVJiZcImZsb2F0aW5nXCI9PT1lP1U6bikuZmlsdGVyKEJvb2xlYW4pLmZsYXQoKX0pO0MudXNlRWZmZWN0KCgpPT57aWYocnx8IXUpcmV0dXJuO2Z1bmN0aW9uIGUoZSl7aWYoXCJUYWJcIj09PWUua2V5KXtlWShVLGVaKGVRKFUpKSkmJjA9PT1WKCkubGVuZ3RoJiYhQSYmZUQoZSk7bGV0IG49cSgpLHQ9ZVgoZSk7XCJyZWZlcmVuY2VcIj09PV8uY3VycmVudFswXSYmdD09PXkmJihlRChlKSxlLnNoaWZ0S2V5P25xKG5bbi5sZW5ndGgtMV0pOm5xKG5bMV0pKSxcImZsb2F0aW5nXCI9PT1fLmN1cnJlbnRbMV0mJnQ9PT1VJiZlLnNoaWZ0S2V5JiYoZUQoZSksbnEoblswXSkpfX1sZXQgbj1lUShVKTtyZXR1cm4gbi5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpLCgpPT57bi5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpfX0sW3IseSxVLHUsXyxBLFYscV0pLEMudXNlRWZmZWN0KCgpPT57aWYoIXImJngpcmV0dXJuIHguYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIixlKSwoKT0+e3gucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzaW5cIixlKX07ZnVuY3Rpb24gZShlKXtsZXQgbj1lWChlKSx0PVYoKS5pbmRleE9mKG4pOy0xIT09dCYmKEkuY3VycmVudD10KX19LFtyLHgsVl0pLEMudXNlRWZmZWN0KCgpPT57aWYoIXImJmYmJngmJmVuKHkpKXJldHVybiB5LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLG4pLHkuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsZSkseC5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIixuKSwoKT0+e3kucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsbikseS5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIixlKSx4LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLG4pfTtmdW5jdGlvbiBlKCl7TS5jdXJyZW50PSEwLHNldFRpbWVvdXQoKCk9PntNLmN1cnJlbnQ9ITF9KX1mdW5jdGlvbiBuKGUpe2xldCBuPWUucmVsYXRlZFRhcmdldCx0PWUuY3VycmVudFRhcmdldCxyPWVYKGUpO3F1ZXVlTWljcm90YXNrKCgpPT57bGV0IG89dygpLGE9IShlWSh5LG4pfHxlWSh4LG4pfHxlWShuLHgpfHxlWShSPy5wb3J0YWxOb2RlLG4pfHxuPy5oYXNBdHRyaWJ1dGUoZTEoXCJmb2N1cy1ndWFyZFwiKSl8fEwmJihlNihMLm5vZGVzUmVmLmN1cnJlbnQsbykuZmluZChlPT5lWShlLmNvbnRleHQ/LmVsZW1lbnRzLmZsb2F0aW5nLG4pfHxlWShlLmNvbnRleHQ/LmVsZW1lbnRzLmRvbVJlZmVyZW5jZSxuKSl8fGU5KEwubm9kZXNSZWYuY3VycmVudCxvKS5maW5kKGU9PltlLmNvbnRleHQ/LmVsZW1lbnRzLmZsb2F0aW5nLGUwKGUuY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcpXS5pbmNsdWRlcyhuKXx8ZS5jb250ZXh0Py5lbGVtZW50cy5kb21SZWZlcmVuY2U9PT1uKSkpO2lmKHQ9PT15JiZVJiZvdShVLF8pLGMmJnQhPT15JiYhcj8uaXNDb25uZWN0ZWQmJmVaKGVRKFUpKT09PWVRKFUpLmJvZHkpe2VuKFUpJiZVLmZvY3VzKCk7bGV0IGU9SS5jdXJyZW50LG49VigpLHQ9bltlXXx8bltuLmxlbmd0aC0xXXx8VTtlbih0KSYmdC5mb2N1cygpfWlmKGIuY3VycmVudC5pbnNpZGVSZWFjdFRyZWUpe2IuY3VycmVudC5pbnNpZGVSZWFjdFRyZWU9ITE7cmV0dXJufShBfHwhdSkmJm4mJmEmJiFNLmN1cnJlbnQmJm4hPT1vYygpJiYoQi5jdXJyZW50PSEwLG0oITEsZSxcImZvY3VzLW91dFwiKSl9KX19LFtyLHkseCxVLHUsTCxSLG0sZixjLFYsQSx3LF8sYl0pO2xldCAkPUMudXNlUmVmKG51bGwpLFo9Qy51c2VSZWYobnVsbCksWT10YigkLFI/LmJlZm9yZUluc2lkZVJlZiksWD10YihaLFI/LmFmdGVySW5zaWRlUmVmKTtmdW5jdGlvbiBRKGUpe3JldHVybiFyJiZkJiZ1PygwLGwuanN4KShvZCx7cmVmOlwic3RhcnRcIj09PWU/TjpELG9uQ2xpY2s6ZT0+bSghMSxlLm5hdGl2ZUV2ZW50KSxjaGlsZHJlbjpcInN0cmluZ1wiPT10eXBlb2YgZD9kOlwiRGlzbWlzc1wifSk6bnVsbH1DLnVzZUVmZmVjdCgoKT0+e2lmKHJ8fCF4KXJldHVybjtsZXQgZT1BcnJheS5mcm9tKFI/LnBvcnRhbE5vZGU/LnF1ZXJ5U2VsZWN0b3JBbGwoYFske2UxKFwicG9ydGFsXCIpfV1gKXx8W10pLG49TD9lOShMLm5vZGVzUmVmLmN1cnJlbnQsdygpKTpbXSx0PUwmJiF1P24ubWFwKGU9PmUuY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcpOltdLG89W3gsbi5maW5kKGU9PmVKKGUuY29udGV4dD8uZWxlbWVudHMuZG9tUmVmZXJlbmNlfHxudWxsKSk/LmNvbnRleHQ/LmVsZW1lbnRzLmRvbVJlZmVyZW5jZSwuLi5lLC4uLnQsLi4uaigpLE4uY3VycmVudCxELmN1cnJlbnQsJC5jdXJyZW50LFouY3VycmVudCxSPy5iZWZvcmVPdXRzaWRlUmVmLmN1cnJlbnQsUj8uYWZ0ZXJPdXRzaWRlUmVmLmN1cnJlbnQsXy5jdXJyZW50LmluY2x1ZGVzKFwicmVmZXJlbmNlXCIpfHxBP3k6bnVsbF0uZmlsdGVyKGU9Pm51bGwhPWUpLGE9dXx8QT9vbChvLCFFLEUpOm9sKG8pO3JldHVybigpPT57YSgpfX0sW3IseSx4LHUsXyxSLEEsUyxFLEwsdyxqXSksRigoKT0+e2lmKHJ8fCFlbihVKSlyZXR1cm47bGV0IGU9ZVooZVEoVSkpO3F1ZXVlTWljcm90YXNrKCgpPT57bGV0IG49cShVKSx0PVAuY3VycmVudCxyPShcIm51bWJlclwiPT10eXBlb2YgdD9uW3RdOnQuY3VycmVudCl8fFUsbz1lWShVLGUpO2t8fG98fCFnfHxucShyLHtwcmV2ZW50U2Nyb2xsOnI9PT1VfSl9KX0sW3IsZyxVLGsscSxQXSksRigoKT0+e3ZhciBlO2lmKHJ8fCFVKXJldHVybjtsZXQgbj1lUShVKTtmdW5jdGlvbiB0KHtyZWFzb246ZSxldmVudDpuLG5lc3RlZDp0fSl7aWYoW1wiaG92ZXJcIixcInNhZmUtcG9seWdvblwiXS5pbmNsdWRlcyhlKSYmXCJtb3VzZWxlYXZlXCI9PT1uLnR5cGUmJihCLmN1cnJlbnQ9ITApLFwib3V0c2lkZS1wcmVzc1wiPT09ZSlpZih0KUIuY3VycmVudD0hMTtlbHNlIGlmKGVCKG4pfHxlTShuKSlCLmN1cnJlbnQ9ITE7ZWxzZXtsZXQgZT0hMTtkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLmZvY3VzKHtnZXQgcHJldmVudFNjcm9sbCgpe3JldHVybiBlPSEwLCExfX0pLGU/Qi5jdXJyZW50PSExOkIuY3VycmVudD0hMH19ZT1lWihuKSxvcz1vcy5maWx0ZXIoZT0+ZS5pc0Nvbm5lY3RlZCksZSYmXCJib2R5XCIhPT1LKGUpJiYob3MucHVzaChlKSxvcy5sZW5ndGg+MjAmJihvcz1vcy5zbGljZSgtMjApKSksdi5vbihcIm9wZW5jaGFuZ2VcIix0KTtsZXQgbz1uLmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO3JldHVybiBvLnNldEF0dHJpYnV0ZShcInRhYmluZGV4XCIsXCItMVwiKSxvLnNldEF0dHJpYnV0ZShcImFyaWEtaGlkZGVuXCIsXCJ0cnVlXCIpLE9iamVjdC5hc3NpZ24oby5zdHlsZSx0JCksSCYmeSYmeS5pbnNlcnRBZGphY2VudEVsZW1lbnQoXCJhZnRlcmVuZFwiLG8pLCgpPT57di5vZmYoXCJvcGVuY2hhbmdlXCIsdCk7bGV0IGU9ZVoobikscj1lWSh4LGUpfHxMJiZlNihMLm5vZGVzUmVmLmN1cnJlbnQsdygpLCExKS5zb21lKG49PmVZKG4uY29udGV4dD8uZWxlbWVudHMuZmxvYXRpbmcsZSkpLGE9ZnVuY3Rpb24oKXtpZihcImJvb2xlYW5cIj09dHlwZW9mIHouY3VycmVudCl7bGV0IGU9eXx8b2MoKTtyZXR1cm4gZSYmZS5pc0Nvbm5lY3RlZD9lOm99cmV0dXJuIHouY3VycmVudC5jdXJyZW50fHxvfSgpO3F1ZXVlTWljcm90YXNrKCgpPT57bGV0IHQ9ZnVuY3Rpb24oZSl7bGV0IG49cmQoKTtyZXR1cm4gcnUoZSxuKT9lOnJzKGUsbilbMF18fGV9KGEpO3ouY3VycmVudCYmIUIuY3VycmVudCYmZW4odCkmJih0PT09ZXx8ZT09PW4uYm9keXx8cikmJnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSxvLnJlbW92ZSgpfSl9fSxbcix4LFUseixiLHYsTCxILHksd10pLEMudXNlRWZmZWN0KCgpPT57cXVldWVNaWNyb3Rhc2soKCk9PntCLmN1cnJlbnQ9ITF9KX0sW3JdKSxGKCgpPT57aWYoIXImJlIpcmV0dXJuIFIuc2V0Rm9jdXNNYW5hZ2VyU3RhdGUoe21vZGFsOnUsY2xvc2VPbkZvY3VzT3V0OmYsb3BlbjpnLG9uT3BlbkNoYW5nZTptLGRvbVJlZmVyZW5jZTp5fSksKCk9PntSLnNldEZvY3VzTWFuYWdlclN0YXRlKG51bGwpfX0sW3IsUix1LGcsbSxmLHldKSxGKCgpPT57IXImJlUmJm91KFUsXyl9LFtyLFUsX10pO2xldCBHPSFyJiZTJiYoIXV8fCFBKSYmKEh8fHUpO3JldHVybigwLGwuanN4cykoQy5GcmFnbWVudCx7Y2hpbGRyZW46W0cmJigwLGwuanN4KSh0Wix7XCJkYXRhLXR5cGVcIjpcImluc2lkZVwiLHJlZjpZLG9uRm9jdXM6ZT0+e2lmKHUpe2xldCBlPXEoKTtucShcInJlZmVyZW5jZVwiPT09b1swXT9lWzBdOmVbZS5sZW5ndGgtMV0pfWVsc2UgaWYoUj8ucHJlc2VydmVUYWJPcmRlciYmUi5wb3J0YWxOb2RlKWlmKEIuY3VycmVudD0hMSxyZyhlLFIucG9ydGFsTm9kZSkpe2xldCBlPXJwKHkpO2U/LmZvY3VzKCl9ZWxzZSBSLmJlZm9yZU91dHNpZGVSZWYuY3VycmVudD8uZm9jdXMoKX19KSwhQSYmUShcInN0YXJ0XCIpLHQsUShcImVuZFwiKSxHJiYoMCxsLmpzeCkodFose1wiZGF0YS10eXBlXCI6XCJpbnNpZGVcIixyZWY6WCxvbkZvY3VzOmU9PntpZih1KW5xKHEoKVswXSk7ZWxzZSBpZihSPy5wcmVzZXJ2ZVRhYk9yZGVyJiZSLnBvcnRhbE5vZGUpaWYoZiYmKEIuY3VycmVudD0hMCkscmcoZSxSLnBvcnRhbE5vZGUpKXtsZXQgZT1yaCh5KTtlPy5mb2N1cygpfWVsc2UgUi5hZnRlck91dHNpZGVSZWYuY3VycmVudD8uZm9jdXMoKX19KV19KX1sZXQgb3A9ey4uLnRWLC4uLnRUfSxvaD1DLmZvcndhcmRSZWYoZnVuY3Rpb24oZSxuKXtsZXR7cmVuZGVyOnQsY2xhc3NOYW1lOnIsZmluYWxGb2N1czpvLC4uLmF9PWUse29wZW46aSxzZXRPcGVuOnMscG9wdXBSZWY6Yyx0cmFuc2l0aW9uU3RhdHVzOnUscG9wdXBQcm9wczpkLG1vdW50ZWQ6ZixpbnN0YW50VHlwZTpwLG9uT3BlbkNoYW5nZUNvbXBsZXRlOmgscGFyZW50OmcsbGFzdE9wZW5DaGFuZ2VSZWFzb246bSxyb290SWQ6dn09bjAoKSx7c2lkZTpiLGFsaWduOnksZmxvYXRpbmdDb250ZXh0Onh9PWZ1bmN0aW9uKCl7bGV0IGU9Qy51c2VDb250ZXh0KHJBKTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogTWVudVBvc2l0aW9uZXJDb250ZXh0IGlzIG1pc3NpbmcuIE1lbnVQb3NpdGlvbmVyIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8TWVudS5Qb3NpdGlvbmVyPi5cIik7cmV0dXJuIGV9KCk7bjUoe29wZW46aSxyZWY6YyxvbkNvbXBsZXRlKCl7aSYmaD8uKCEwKX19KTtsZXR7ZXZlbnRzOnd9PVcoKTtDLnVzZUVmZmVjdCgoKT0+e2Z1bmN0aW9uIGUoZSl7cyghMSxlLmRvbUV2ZW50LGUucmVhc29uKX1yZXR1cm4gdy5vbihcImNsb3NlXCIsZSksKCk9Pnt3Lm9mZihcImNsb3NlXCIsZSl9fSxbdyxzXSk7bGV0IGo9dGooXCJkaXZcIixlLHtzdGF0ZTpDLnVzZU1lbW8oKCk9Pih7dHJhbnNpdGlvblN0YXR1czp1LHNpZGU6YixhbGlnbjp5LG9wZW46aSxuZXN0ZWQ6XCJtZW51XCI9PT1nLnR5cGUsaW5zdGFudDpwfSksW3UsYix5LGksZy50eXBlLHBdKSxyZWY6W24sY10sY3VzdG9tU3R5bGVIb29rTWFwcGluZzpvcCxwcm9wczpbZCxcInN0YXJ0aW5nXCI9PT11P250Om5yLGEse1wiZGF0YS1yb290b3duZXJpZFwiOnZ9XX0pLGs9dm9pZCAwPT09Zy50eXBlfHxcImNvbnRleHQtbWVudVwiPT09Zy50eXBlO3JldHVyblwibWVudWJhclwiPT09Zy50eXBlJiZcIm91dHNpZGUtcHJlc3NcIiE9PW0mJihrPSEwKSwoMCxsLmpzeCkob2Yse2NvbnRleHQ6eCxtb2RhbDohMSxkaXNhYmxlZDohZixyZXR1cm5Gb2N1czpvfHxrLGluaXRpYWxGb2N1czpcIm1lbnVcIj09PWcudHlwZT8tMTowLHJlc3RvcmVGb2N1czohMCxjaGlsZHJlbjpqfSl9KSxvZz1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKSxvbT1DLmZvcndhcmRSZWYoZnVuY3Rpb24oZSxuKXtsZXR7cmVuZGVyOnQsY2xhc3NOYW1lOnIsLi4ub309ZSxbYSxpXT1DLnVzZVN0YXRlKHZvaWQgMCkscz1DLnVzZU1lbW8oKCk9Pih7c2V0TGFiZWxJZDppfSksW2ldKSxjPXRqKFwiZGl2XCIsZSx7cmVmOm4scHJvcHM6e3JvbGU6XCJncm91cFwiLFwiYXJpYS1sYWJlbGxlZGJ5XCI6YSwuLi5vfX0pO3JldHVybigwLGwuanN4KShvZy5Qcm92aWRlcix7dmFsdWU6cyxjaGlsZHJlbjpjfSl9KTtmdW5jdGlvbiBvdihlKXtyZXR1cm4gSChlLFwiYmFzZS11aVwiKX1sZXQgb2I9Qy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7bGV0e2NsYXNzTmFtZTp0LHJlbmRlcjpyLGlkOm8sLi4uYX09ZSxpPW92KG8pLHtzZXRMYWJlbElkOmx9PWZ1bmN0aW9uKCl7bGV0IGU9Qy51c2VDb250ZXh0KG9nKTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogTWVudUdyb3VwUm9vdENvbnRleHQgaXMgbWlzc2luZy4gTWVudSBncm91cCBwYXJ0cyBtdXN0IGJlIHVzZWQgd2l0aGluIDxNZW51Lkdyb3VwPi5cIik7cmV0dXJuIGV9KCk7cmV0dXJuIEYoKCk9PihsKGkpLCgpPT57bCh2b2lkIDApfSksW2wsaV0pLHRqKFwiZGl2XCIsZSx7cmVmOm4scHJvcHM6e2lkOmkscm9sZTpcInByZXNlbnRhdGlvblwiLC4uLmF9fSl9KSxveT17dHlwZTpcInJlZ3VsYXItaXRlbVwifSxveD1DLm1lbW8oQy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7bGV0e2NsYXNzTmFtZTp0LGNsb3NlT25DbGljazpyPSEwLGRpc2FibGVkOm89ITEsaGlnaGxpZ2h0ZWQ6YSxpZDppLG1lbnVFdmVudHM6bCxpdGVtUHJvcHM6cyxyZW5kZXI6YyxhbGxvd01vdXNlVXBUcmlnZ2VyUmVmOnUsdHlwaW5nUmVmOmQsbmF0aXZlQnV0dG9uOmYsLi4ucH09ZSx7Z2V0SXRlbVByb3BzOmgsaXRlbVJlZjpnfT1mdW5jdGlvbihlKXtsZXR7Y2xvc2VPbkNsaWNrOm4sZGlzYWJsZWQ6dD0hMSxoaWdobGlnaHRlZDpyLGlkOm8sbWVudUV2ZW50czphLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6aSx0eXBpbmdSZWY6bCxuYXRpdmVCdXR0b246cyxpdGVtTWV0YWRhdGE6Y309ZSx1PUMudXNlUmVmKG51bGwpLHtnZXRCdXR0b25Qcm9wczpkLGJ1dHRvblJlZjpmfT10cSh7ZGlzYWJsZWQ6dCxmb2N1c2FibGVXaGVuRGlzYWJsZWQ6ITAsbmF0aXZlOnN9KSxwPUMudXNlQ2FsbGJhY2soZT0+dGMoe2lkOm8scm9sZTpcIm1lbnVpdGVtXCIsdGFiSW5kZXg6cj8wOi0xLG9uTW91c2VFbnRlcigpe1wic3VibWVudS10cmlnZ2VyXCI9PT1jLnR5cGUmJmMuc2V0QWN0aXZlKCl9LG9uS2V5VXA6ZT0+e1wiIFwiPT09ZS5rZXkmJmwuY3VycmVudCYmZS5wcmV2ZW50QmFzZVVJSGFuZGxlcigpfSxvbkNsaWNrOmU9PntuJiZhLmVtaXQoXCJjbG9zZVwiLHtkb21FdmVudDplLHJlYXNvbjpcIml0ZW0tcHJlc3NcIn0pfSxvbk1vdXNlVXA6KCk9Pnt1LmN1cnJlbnQmJmkuY3VycmVudCYmXCJyZWd1bGFyLWl0ZW1cIj09PWMudHlwZSYmdS5jdXJyZW50LmNsaWNrKCl9fSxlLGQpLFtvLHIsZCxsLG4sYSxpLGNdKSxoPXRiKHUsZik7cmV0dXJuIEMudXNlTWVtbygoKT0+KHtnZXRJdGVtUHJvcHM6cCxpdGVtUmVmOmh9KSxbcCxoXSl9KHtjbG9zZU9uQ2xpY2s6cixkaXNhYmxlZDpvLGhpZ2hsaWdodGVkOmEsaWQ6aSxtZW51RXZlbnRzOmwsYWxsb3dNb3VzZVVwVHJpZ2dlclJlZjp1LHR5cGluZ1JlZjpkLG5hdGl2ZUJ1dHRvbjpmLGl0ZW1NZXRhZGF0YTpveX0pO3JldHVybiB0aihcImRpdlwiLGUse3N0YXRlOkMudXNlTWVtbygoKT0+KHtkaXNhYmxlZDpvLGhpZ2hsaWdodGVkOmF9KSxbbyxhXSkscmVmOltnLG5dLHByb3BzOltzLHAsaF19KX0pKSxvdz1DLmZvcndhcmRSZWYoZnVuY3Rpb24oZSxuKXtsZXR7aWQ6dCxsYWJlbDpyLG5hdGl2ZUJ1dHRvbjpvPSExLC4uLmF9PWUsaT1DLnVzZVJlZihudWxsKSxzPXRFKHtsYWJlbDpyfSksYz10YihuLHMucmVmLGkpLHtpdGVtUHJvcHM6dSxhY3RpdmVJbmRleDpkLGFsbG93TW91c2VVcFRyaWdnZXJSZWY6Zix0eXBpbmdSZWY6cH09bjAoKSxoPW92KHQpLGc9cy5pbmRleD09PWQse2V2ZW50czptfT1XKCk7cmV0dXJuKDAsbC5qc3gpKG94LHsuLi5hLGlkOmgscmVmOmMsaGlnaGxpZ2h0ZWQ6ZyxtZW51RXZlbnRzOm0saXRlbVByb3BzOnUsYWxsb3dNb3VzZVVwVHJpZ2dlclJlZjpmLHR5cGluZ1JlZjpwLG5hdGl2ZUJ1dHRvbjpvfSl9KTt2YXIgb2o9XCJfX25leHRfYnVpbHRpbl9fXCI7ZnVuY3Rpb24gb2soZSl7cmV0dXJuIGUucmVwbGFjZShuZXcgUmVnRXhwKFwiXlwiLmNvbmNhdChvaikpLFwiXCIpLnJlcGxhY2UobmV3IFJlZ0V4cChcIlwiLmNvbmNhdChcIkBib3VuZGFyeVwiLFwiJFwiKSksXCJcIil9dmFyIG9BPVwiYm91bmRhcnk6XCI7ZnVuY3Rpb24gb08oZSl7cmV0dXJuIGUuc3RhcnRzV2l0aChvQSl9dmFyIG9DPXQoXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZXJyb3JzL2Rldi10b29scy1pbmRpY2F0b3IvdXRpbHMudHNcIik7ZnVuY3Rpb24gb1MoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIG9FKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcjtyPXRbbl0sbiBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW25dPXJ9KX1yZXR1cm4gZX1mdW5jdGlvbiBvXyhlLG4pe3JldHVybiBuPW51bGwhPW4/bjp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pLGV9ZnVuY3Rpb24gb1AoZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG9TKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG9TKGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciBvej1mdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoZSksdD0wO3Q8ZTt0Kyspblt0XT1hcmd1bWVudHNbdF07cmV0dXJuIGZ1bmN0aW9uKGUpe24uZm9yRWFjaChmdW5jdGlvbihuKXtcImZ1bmN0aW9uXCI9PXR5cGVvZiBuP24oZSk6biYmKG4uY3VycmVudD1lKX0pfX07ZnVuY3Rpb24gb0woZSl7dmFyIG4sdCxyPWUubm9kZVN0YXRlLG89ZS5ib3VuZGFyaWVzLGE9ci5wYWdlUGF0aCxpPXIuYm91bmRhcnlUeXBlLHM9ci5zZXRCb3VuZGFyeVR5cGUsYz1vUCgoMCxDLnVzZVN0YXRlKSghMSksMiksdT1jWzBdLGQ9Y1sxXSxmPW9QKCgwLEMudXNlU3RhdGUpKGZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJuZXh0anMtcG9ydGFsXCIpLnNoYWRvd1Jvb3R9KSwxKVswXSxwPSgwLEMudXNlUmVmKShmKSxoPSgwLEMudXNlUmVmKShudWxsKSxnPSgwLEMudXNlUmVmKShudWxsKTsoMCxvQy5POCkoZyxoLHUsZnVuY3Rpb24oKXtkKCExKX0sbnVsbD09KG49aC5jdXJyZW50KT92b2lkIDA6bi5vd25lckRvY3VtZW50KTt2YXIgbT1PYmplY3QudmFsdWVzKG8pLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lfSksdj1tP251bGw9PSh0PW0uc3BsaXQoXCIuXCIpKT92b2lkIDA6dC5wb3AoKTpcImpzXCIsYj0oMCxDLnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhvKS5tYXAoZnVuY3Rpb24oZSl7dmFyIG49b1AoZSwyKSx0PW5bMF0scj1vaygoblsxXXx8XCJcIikuc3BsaXQoXCIvXCIpLnBvcCgpfHxcIlwiLmNvbmNhdCh0LFwiLlwiKS5jb25jYXQodikpO3JldHVyblt0LHJdfSkpfSxbbyx2XSkseT0oYXx8XCJcIikuc3BsaXQoXCIvXCIpLnBvcCgpfHxcIlwiLHg9b2soaT9cInBhZ2UuXCIuY29uY2F0KHYpOnl8fFwicGFnZS5cIi5jb25jYXQodikpLHc9W3tsYWJlbDpiLmxvYWRpbmcsdmFsdWU6XCJsb2FkaW5nXCIsaWNvbjooMCxsLmpzeCkob1Qse30pLGRpc2FibGVkOiFvLmxvYWRpbmd9LHtsYWJlbDpiLmVycm9yLHZhbHVlOlwiZXJyb3JcIixpY29uOigwLGwuanN4KShvUix7fSksZGlzYWJsZWQ6IW8uZXJyb3J9LHtsYWJlbDpiW1wibm90LWZvdW5kXCJdLHZhbHVlOlwibm90LWZvdW5kXCIsaWNvbjooMCxsLmpzeCkob04se30pLGRpc2FibGVkOiFvW1wibm90LWZvdW5kXCJdfV0saj17bGFiZWw6aT9cIlJlc2V0XCI6eCx2YWx1ZTpcInJlc2V0XCIsaWNvbjooMCxsLmpzeCkob0Qse30pLGRpc2FibGVkOm51bGw9PT1pfSxrPSgwLEMudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKGUpe3ZhciBuPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2ZpbGU6ZS5maWxlUGF0aCxpc0FwcFJlbGF0aXZlUGF0aDpcIjFcIn0pO2ZldGNoKFwiXCIuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEh8fFwiXCIsXCIvX19uZXh0anNfbGF1bmNoLWVkaXRvcj9cIikuY29uY2F0KG4udG9TdHJpbmcoKSkpLmNhdGNoKGNvbnNvbGUud2Fybil9LFtdKSxBPSgwLEMudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKGUpe3N3aXRjaChlKXtjYXNlXCJub3QtZm91bmRcIjpjYXNlXCJsb2FkaW5nXCI6Y2FzZVwiZXJyb3JcIjpzKGUpO2JyZWFrO2Nhc2VcInJlc2V0XCI6cyhudWxsKTticmVhaztjYXNlXCJvcGVuLWVkaXRvclwiOmEmJmsoe2ZpbGVQYXRoOmF9KX19LFtzLGEsa10pLE89KDAsQy51c2VNZW1vKShmdW5jdGlvbigpe3JldHVyblwibGF5b3V0XCIhPT1yLnR5cGUmJlwidGVtcGxhdGVcIiE9PXIudHlwZSYmT2JqZWN0LnZhbHVlcyhvKS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT09ZX0pfSxbci50eXBlLG9dKTtyZXR1cm4oMCxsLmpzeHMpKHR2LHtkZWxheTowLG1vZGFsOiExLG9wZW46dSxvbk9wZW5DaGFuZ2U6ZCxjaGlsZHJlbjpbKDAsbC5qc3gpKHRXLHtjbGFzc05hbWU6XCJzZWdtZW50LWJvdW5kYXJ5LXRyaWdnZXJcIixcImRhdGEtbmV4dGpzLWRldi1vdmVybGF5LXNlZ21lbnQtYm91bmRhcnktdHJpZ2dlci1idXR0b25cIjohMCxyZW5kZXI6ZnVuY3Rpb24oZSl7dmFyIG49b3ooZS5yZWYsaCk7cmV0dXJuKDAsbC5qc3gpKG9NLG9fKG9FKHt9LGUpLHtyZWY6bn0pKX0sZGlzYWJsZWQ6IU99KSwoMCxsLmpzeCkocmsse2NvbnRhaW5lcjpwLGNoaWxkcmVuOigwLGwuanN4KShvZSx7Y2xhc3NOYW1lOlwic2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1wb3NpdGlvbmVyXCIsc2lkZTpcImJvdHRvbVwiLGFsaWduOlwiY2VudGVyXCIsc2lkZU9mZnNldDo2LGFycm93UGFkZGluZzo4LHJlZjpnLGNoaWxkcmVuOigwLGwuanN4cykob2gse2NsYXNzTmFtZTpcInNlZ21lbnQtYm91bmRhcnktZHJvcGRvd25cIixjaGlsZHJlbjpbKDAsbC5qc3hzKShvbSx7Y2hpbGRyZW46WygwLGwuanN4KShvYix7Y2xhc3NOYW1lOlwic2VnbWVudC1ib3VuZGFyeS1ncm91cC1sYWJlbFwiLGNoaWxkcmVuOlwiVG9nZ2xlIE92ZXJyaWRlc1wifSksdy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuKDAsbC5qc3hzKShvdyx7Y2xhc3NOYW1lOlwic2VnbWVudC1ib3VuZGFyeS1kcm9wZG93bi1pdGVtXCIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBBKGUudmFsdWUpfSxkaXNhYmxlZDplLmRpc2FibGVkLGNoaWxkcmVuOltlLmljb24sZS5sYWJlbF19LGUudmFsdWUpfSldfSksKDAsbC5qc3gpKG9tLHtjaGlsZHJlbjooMCxsLmpzeHMpKG93LHtjbGFzc05hbWU6XCJzZWdtZW50LWJvdW5kYXJ5LWRyb3Bkb3duLWl0ZW1cIixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIEEoai52YWx1ZSl9LGRpc2FibGVkOmouZGlzYWJsZWQsY2hpbGRyZW46W2ouaWNvbixqLmxhYmVsXX0sai52YWx1ZSl9KV19KX0pfSldfSl9ZnVuY3Rpb24gb1QoKXtyZXR1cm4oMCxsLmpzeHMpKFwic3ZnXCIse3dpZHRoOlwiMjBweFwiLGhlaWdodDpcIjIwcHhcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46WygwLGwuanN4KShcImdcIix7Y2xpcFBhdGg6XCJ1cmwoI2NsaXAwXzI3NTlfMTg2NilcIixjaGlsZHJlbjooMCxsLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMTAgMy41QzEzLjU4OTkgMy41IDE2LjUgNi40MTAxNSAxNi41IDEwQzE2LjUgMTMuNTg5OSAxMy41ODk5IDE2LjUgMTAgMTYuNUM2LjQxMDE1IDE2LjUgMy41IDEzLjU4OTkgMy41IDEwQzMuNSA2LjQxMDE1IDYuNDEwMTUgMy41IDEwIDMuNVpNMiAxMEMyIDE0LjQxODMgNS41ODE3MiAxOCAxMCAxOEMxNC40MTgzIDE4IDE4IDE0LjQxODMgMTggMTBDMTggNS41ODE3MiAxNC40MTgzIDIgMTAgMkM1LjU4MTcyIDIgMiA1LjU4MTcyIDIgMTBaTTEwLjc1IDkuNjI0MDJWNkg5LjI1VjkuODc1QzkuMjUgMTAuMTg5OCA5LjM5ODU4IDEwLjQ4NiA5LjY1MDM5IDEwLjY3NDhMMTEuNTQ5OCAxMi4wOTk2TDEyLjE1MDQgMTIuNTQ5OEwxMy4wNDk4IDExLjM0OTZMMTIuNDUwMiAxMC45MDA0TDEwLjc1IDkuNjI0MDJaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSwoMCxsLmpzeCkoXCJkZWZzXCIse2NoaWxkcmVuOigwLGwuanN4KShcImNsaXBQYXRoXCIse2lkOlwiY2xpcDBfMjc1OV8xODY2XCIsY2hpbGRyZW46KDAsbC5qc3gpKFwicmVjdFwiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIixmaWxsOlwid2hpdGVcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMiAyKVwifSl9KX0pXX0pfWZ1bmN0aW9uIG9SKCl7cmV0dXJuKDAsbC5qc3hzKShcInN2Z1wiLHt3aWR0aDpcIjIwXCIsaGVpZ2h0OlwiMjBcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46WygwLGwuanN4KShcImdcIix7Y2xpcFBhdGg6XCJ1cmwoI2NsaXAwXzI3NTlfMTg4MSlcIixjaGlsZHJlbjooMCxsLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMy41IDcuMzA3NjJWMTIuNjkyNEw3LjMwNzYyIDE2LjVIMTIuNjkyNEwxNi41IDEyLjY5MjRWNy4zMDc2MkwxMi42OTI0IDMuNUg3LjMwNzYyTDMuNSA3LjMwNzYyWk0xOCAxMi44OTk0TDE3Ljk5NTEgMTIuOTk4QzE3Ljk3MjQgMTMuMjI3MSAxNy44NzEyIDEzLjQ0MjMgMTcuNzA3IDEzLjYwNjRMMTMuNjA2NCAxNy43MDdMMTMuNTMzMiAxNy43NzM0QzEzLjM4MDYgMTcuODk4NSAxMy4xOTQ0IDE3Ljk3NTcgMTIuOTk4IDE3Ljk5NTFMMTIuODk5NCAxOEg3LjEwMDU5TDcuMDAxOTUgMTcuOTk1MUM2LjgwNTYyIDE3Ljk3NTcgNi42MTk0IDE3Ljg5ODUgNi40NjY4IDE3Ljc3MzRMNi4zOTM1NSAxNy43MDdMMi4yOTI5NyAxMy42MDY0QzIuMTI4ODMgMTMuNDQyMyAyLjAyNzU2IDEzLjIyNzEgMi4wMDQ4OCAxMi45OThMMiAxMi44OTk0VjcuMTAwNTlDMiA2LjgzNTM5IDIuMTA1NDYgNi41ODEwOSAyLjI5Mjk3IDYuMzkzNTVMNi4zOTM1NSAyLjI5Mjk3QzYuNTU3NzEgMi4xMjg4MyA2Ljc3Mjk0IDIuMDI3NTYgNy4wMDE5NSAyLjAwNDg4TDcuMTAwNTkgMkgxMi44OTk0TDEyLjk5OCAyLjAwNDg4QzEzLjIyNzEgMi4wMjc1NiAxMy40NDIzIDIuMTI4ODMgMTMuNjA2NCAyLjI5Mjk3TDE3LjcwNyA2LjM5MzU1QzE3Ljg5NDUgNi41ODEwOSAxOCA2LjgzNTM5IDE4IDcuMTAwNTlWMTIuODk5NFpNOS4yNSA1Ljc1SDEwLjc1TDEwLjc1IDEwLjc1SDkuMjVMOS4yNSA1Ljc1Wk0xMCAxNEMxMC41NTIzIDE0IDExIDEzLjU1MjMgMTEgMTNDMTEgMTIuNDQ3NyAxMC41NTIzIDEyIDEwIDEyQzkuNDQ3NzIgMTIgOSAxMi40NDc3IDkgMTNDOSAxMy41NTIzIDkuNDQ3NzIgMTQgMTAgMTRaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSwoMCxsLmpzeCkoXCJkZWZzXCIse2NoaWxkcmVuOigwLGwuanN4KShcImNsaXBQYXRoXCIse2lkOlwiY2xpcDBfMjc1OV8xODgxXCIsY2hpbGRyZW46KDAsbC5qc3gpKFwicmVjdFwiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIixmaWxsOlwid2hpdGVcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMiAyKVwifSl9KX0pXX0pfWZ1bmN0aW9uIG9OKCl7cmV0dXJuKDAsbC5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMjBweFwiLGhlaWdodDpcIjIwcHhcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46KDAsbC5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTEwLjU1ODYgMi41QzExLjEzNDEgMi41MDAwNCAxMS42NTg4IDIuODI5NCAxMS45MDkxIDMuMzQ3NjZMMTcuODA3NiAxNS41NjU0QzE4LjEyNzggMTYuMjI5MiAxNy42NDQyIDE2Ljk5OTcgMTYuOTA3MiAxN0gzLjA5Mjc0QzIuMzU1NzQgMTYuOTk5NyAxLjg3MjEgMTYuMjI5MiAyLjE5MjM1IDE1LjU2NTRMOC4wOTA3OSAzLjM0NzY2QzguMzQxMDkgMi44Mjk0IDguODY1ODMgMi41MDAwNCA5LjQ0MTM3IDIuNUgxMC41NTg2Wk0zLjg5MDU5IDE1LjVIMTYuMTA5M0wxMC41NTg2IDRIOS40NDEzN0wzLjg5MDU5IDE1LjVaTTkuMjQ5OTcgNi43NUgxMC43NUwxMC43NSAxMC43NUg5LjI0OTk3TDkuMjQ5OTcgNi43NVpNOS45OTk5NyAxNEMxMC41NTIzIDE0IDExIDEzLjU1MjMgMTEgMTNDMTEgMTIuNDQ3NyAxMC41NTIzIDEyIDkuOTk5OTcgMTJDOS40NDc2OCAxMiA4Ljk5OTk3IDEyLjQ0NzcgOC45OTk5NyAxM0M4Ljk5OTk3IDEzLjU1MjMgOS40NDc2OCAxNCA5Ljk5OTk3IDE0WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gb0QoKXtyZXR1cm4oMCxsLmpzeCkoXCJzdmdcIix7d2lkdGg6XCIyMFwiLGhlaWdodDpcIjIwXCIsdmlld0JveDpcIjAgMCAyMCAyMFwiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOigwLGwuanN4KShcInBhdGhcIix7ZDpcIk05Ljk2NDg0IDNDMTMuODQ2MyAzLjAwMDE4IDE3IDYuMTMwMTIgMTcgMTBDMTcgMTMuODY5OSAxMy44NDYzIDE2Ljk5OTggOS45NjQ4NCAxN0M3LjYyNDA0IDE3IDUuNTQ4NzcgMTUuODYxNyA0LjI3MDUxIDE0LjExMjNMMy44MjgxMiAxMy41MDY4TDUuMDM5MDYgMTIuNjIyMUw1LjQ4MTQ1IDEzLjIyNzVDNi40ODgxNSAxNC42MDUzIDguMTIwOTIgMTUuNSA5Ljk2NDg0IDE1LjVDMTMuMDI1OSAxNS40OTk4IDE1LjUgMTMuMDMzNSAxNS41IDEwQzE1LjUgNi45NjY1NCAxMy4wMjU5IDQuNTAwMTggOS45NjQ4NCA0LjVDNy40MjkwNSA0LjUgNS4yOTU0NCA2LjE5NDI5IDQuNjM4NjcgOC41SDhWMTBIMi43NUMyLjMzNTc5IDEwIDIgOS42NjQyMSAyIDkuMjVWNEgzLjVWNy4yMzczQzQuNTc3ODEgNC43NDM3NiA3LjA2NzQ5IDMgOS45NjQ4NCAzWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gb0IoZSl7cmV0dXJuKDAsbC5qc3gpKFwic3ZnXCIsb18ob0Uoe3N0cm9rZUxpbmVqb2luOlwicm91bmRcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCJ9LGUpLHtjaGlsZHJlbjooMCxsLmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOC43MDcxIDIuMzk2NDRDOC4zMTY1OCAyLjAwNTkyIDcuNjgzNDEgMi4wMDU5MiA3LjI5Mjg5IDIuMzk2NDRMNC40Njk2NiA1LjIxOTY2TDMuOTM5MzMgNS43NDk5OUw0Ljk5OTk5IDYuODEwNjVMNS41MzAzMiA2LjI4MDMyTDcuOTk5OTkgMy44MTA2NUwxMC40Njk3IDYuMjgwMzJMMTEgNi44MTA2NUwxMi4wNjA3IDUuNzQ5OTlMMTEuNTMwMyA1LjIxOTY2TDguNzA3MSAyLjM5NjQ0Wk01LjUzMDMyIDkuNzE5NjZMNC45OTk5OSA5LjE4OTMzTDMuOTM5MzMgMTAuMjVMNC40Njk2NiAxMC43ODAzTDcuMjkyODkgMTMuNjAzNUM3LjY4MzQxIDEzLjk5NDEgOC4zMTY1OCAxMy45OTQxIDguNzA3MSAxMy42MDM1TDExLjUzMDMgMTAuNzgwM0wxMi4wNjA3IDEwLjI1TDExIDkuMTg5MzNMMTAuNDY5NyA5LjcxOTY2TDcuOTk5OTkgMTIuMTg5M0w1LjUzMDMyIDkuNzE5NjZaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSl9ZnVuY3Rpb24gb00oZSl7cmV0dXJuKDAsbC5qc3gpKFwiYnV0dG9uXCIsb18ob0Uoe30sZSkse2NoaWxkcmVuOigwLGwuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1ib3VuZGFyeS10cmlnZ2VyLXRleHRcIixjaGlsZHJlbjooMCxsLmpzeCkob0Ise2NsYXNzTmFtZTpcInBsdXMtaWNvblwifSl9KX0pKX1sZXQgb0k9Qy5jcmVhdGVDb250ZXh0KHtoYXNQcm92aWRlcjohMSx0aW1lb3V0TXM6MCxkZWxheVJlZjp7Y3VycmVudDowfSxpbml0aWFsRGVsYXlSZWY6e2N1cnJlbnQ6MH0sdGltZW91dDpuZXcgZWosY3VycmVudElkUmVmOntjdXJyZW50Om51bGx9LGN1cnJlbnRDb250ZXh0UmVmOntjdXJyZW50Om51bGx9fSk7ZnVuY3Rpb24gb0goZSl7bGV0e2NoaWxkcmVuOm4sZGVsYXk6dCx0aW1lb3V0TXM6cj0wfT1lLG89Qy51c2VSZWYodCksYT1DLnVzZVJlZih0KSxpPUMudXNlUmVmKG51bGwpLHM9Qy51c2VSZWYobnVsbCksYz1laygpO3JldHVybigwLGwuanN4KShvSS5Qcm92aWRlcix7dmFsdWU6Qy51c2VNZW1vKCgpPT4oe2hhc1Byb3ZpZGVyOiEwLGRlbGF5UmVmOm8saW5pdGlhbERlbGF5UmVmOmEsY3VycmVudElkUmVmOmksdGltZW91dE1zOnIsY3VycmVudENvbnRleHRSZWY6cyx0aW1lb3V0OmN9KSxbcixjXSksY2hpbGRyZW46bn0pfWxldCBvRj1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKSxvVT1mdW5jdGlvbihlKXtsZXR7ZGVsYXk6bixjbG9zZURlbGF5OnQsdGltZW91dDpyPTQwMH09ZSxvPUMudXNlTWVtbygoKT0+KHtkZWxheTpuLGNsb3NlRGVsYXk6dH0pLFtuLHRdKTtyZXR1cm4oMCxsLmpzeCkob0YuUHJvdmlkZXIse3ZhbHVlOm8sY2hpbGRyZW46KDAsbC5qc3gpKG9ILHtkZWxheTp7b3BlbjpuLGNsb3NlOnR9LHRpbWVvdXRNczpyLGNoaWxkcmVuOmUuY2hpbGRyZW59KX0pfSxvVj1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBvcSgpe2xldCBlPUMudXNlQ29udGV4dChvVik7aWYodm9pZCAwPT09ZSl0aHJvdyBFcnJvcihcIkJhc2UgVUk6IFRvb2x0aXBSb290Q29udGV4dCBpcyBtaXNzaW5nLiBUb29sdGlwIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8VG9vbHRpcC5Sb290Pi5cIik7cmV0dXJuIGV9ZnVuY3Rpb24gb1coZSl7cmV0dXJuIG51bGwhPWUmJm51bGwhPWUuY2xpZW50WH1mdW5jdGlvbiBvJChlKXtsZXR7ZGlzYWJsZWQ6bj0hMSxkZWZhdWx0T3Blbjp0PSExLG9uT3BlbkNoYW5nZTpyLG9wZW46byxkZWxheTphLGNsb3NlRGVsYXk6aSxob3ZlcmFibGU6cz0hMCx0cmFja0N1cnNvckF4aXM6Yz1cIm5vbmVcIixhY3Rpb25zUmVmOnUsb25PcGVuQ2hhbmdlQ29tcGxldGU6ZH09ZSxmPWE/PzYwMCxwPWk/PzAsW2gsZ109Qy51c2VTdGF0ZShudWxsKSxbbSx2XT1DLnVzZVN0YXRlKG51bGwpLFtiLHldPUMudXNlU3RhdGUoKSx4PUMudXNlUmVmKG51bGwpLFt3LGpdPW40KHtjb250cm9sbGVkOm8sZGVmYXVsdDp0LG5hbWU6XCJUb29sdGlwXCIsc3RhdGU6XCJvcGVuXCJ9KSxrPVQociksQT1UKChlLG4sdCk9PntsZXQgcj1cInRyaWdnZXItaG92ZXJcIj09PXQsbz1lJiZcInRyaWdnZXItZm9jdXNcIj09PXQsYT0hZSYmKFwidHJpZ2dlci1wcmVzc1wiPT09dHx8XCJlc2NhcGUta2V5XCI9PT10KTtmdW5jdGlvbiBpKCl7ayhlLG4sdCksaihlKX1yP0UuZmx1c2hTeW5jKGkpOmkoKSxvfHxhP3kobz9cImZvY3VzXCI6XCJkaXNtaXNzXCIpOlwidHJpZ2dlci1ob3ZlclwiPT09dCYmeSh2b2lkIDApfSk7dyYmbiYmQSghMSx2b2lkIDAsXCJkaXNhYmxlZFwiKTtsZXR7bW91bnRlZDpPLHNldE1vdW50ZWQ6Uyx0cmFuc2l0aW9uU3RhdHVzOl99PW4yKHcpLFA9VCgoKT0+e1MoITEpLGQ/LighMSl9KTtuNSh7ZW5hYmxlZDohdSxvcGVuOncscmVmOngsb25Db21wbGV0ZSgpe3d8fFAoKX19KSxDLnVzZUltcGVyYXRpdmVIYW5kbGUodSwoKT0+KHt1bm1vdW50OlB9KSxbUF0pO2xldCB6PVkoe2VsZW1lbnRzOntyZWZlcmVuY2U6aCxmbG9hdGluZzptfSxvcGVuOncsb25PcGVuQ2hhbmdlKGUsbix0KXtBKGUsbix0cih0KSl9fSksTD1DLnVzZUNvbnRleHQob0YpLHtkZWxheVJlZjpSLGlzSW5zdGFudFBoYXNlOk4saGFzUHJvdmlkZXI6RH09ZnVuY3Rpb24oZSxuPXt9KXtsZXR7b3Blbjp0LG9uT3BlbkNoYW5nZTpyLGZsb2F0aW5nSWQ6b309ZSx7ZW5hYmxlZDphPSEwfT1uLHtjdXJyZW50SWRSZWY6aSxkZWxheVJlZjpsLHRpbWVvdXRNczpzLGluaXRpYWxEZWxheVJlZjpjLGN1cnJlbnRDb250ZXh0UmVmOnUsaGFzUHJvdmlkZXI6ZCx0aW1lb3V0OmZ9PUMudXNlQ29udGV4dChvSSksW3AsaF09Qy51c2VTdGF0ZSghMSk7cmV0dXJuIEYoKCk9PntmdW5jdGlvbiBlKCl7aCghMSksdS5jdXJyZW50Py5zZXRJc0luc3RhbnRQaGFzZSghMSksaS5jdXJyZW50PW51bGwsdS5jdXJyZW50PW51bGwsbC5jdXJyZW50PWMuY3VycmVudH1pZihhJiZpLmN1cnJlbnQmJiF0JiZpLmN1cnJlbnQ9PT1vKXtpZihoKCExKSxzKXJldHVybiBmLnN0YXJ0KHMsZSksKCk9PntmLmNsZWFyKCl9O2UoKX19LFthLHQsbyxpLGwscyxjLHUsZl0pLEYoKCk9PntpZighYXx8IXQpcmV0dXJuO2xldCBlPXUuY3VycmVudCxuPWkuY3VycmVudDt1LmN1cnJlbnQ9e29uT3BlbkNoYW5nZTpyLHNldElzSW5zdGFudFBoYXNlOmh9LGkuY3VycmVudD1vLGwuY3VycmVudD17b3BlbjowLGNsb3NlOmU0KGMuY3VycmVudCxcImNsb3NlXCIpfSxudWxsIT09biYmbiE9PW8/KGYuY2xlYXIoKSxoKCEwKSxlPy5zZXRJc0luc3RhbnRQaGFzZSghMCksZT8ub25PcGVuQ2hhbmdlKCExKSk6KGgoITEpLGU/LnNldElzSW5zdGFudFBoYXNlKCExKSl9LFthLHQsbyxyLGksbCxzLGMsdSxmXSksRigoKT0+KCk9Pnt1LmN1cnJlbnQ9bnVsbH0sW3VdKSxDLnVzZU1lbW8oKCk9Pih7aGFzUHJvdmlkZXI6ZCxkZWxheVJlZjpsLGlzSW5zdGFudFBoYXNlOnB9KSxbZCxsLHBdKX0oeiksQj1OP1wiZGVsYXlcIjpiLE09ZTMoeix7ZW5hYmxlZDohbixtb3VzZU9ubHk6ITAsbW92ZTohMSxoYW5kbGVDbG9zZTpzJiZcImJvdGhcIiE9PWM/ZTcoKTpudWxsLHJlc3RNcygpe2xldCBlPUw/LmRlbGF5LG49XCJvYmplY3RcIj09dHlwZW9mIFIuY3VycmVudD9SLmN1cnJlbnQub3Blbjp2b2lkIDAsdD1mO3JldHVybiBEJiYodD0wIT09bj9hPz9lPz9mOjApLHR9LGRlbGF5KCl7bGV0IGU9XCJvYmplY3RcIj09dHlwZW9mIFIuY3VycmVudD9SLmN1cnJlbnQuY2xvc2U6dm9pZCAwLG49cDtyZXR1cm4gbnVsbD09aSYmRCYmKG49ZSkse2Nsb3NlOm59fX0pLEk9bm4oeix7ZW5hYmxlZDohbn0pLHtnZXRSZWZlcmVuY2VQcm9wczpILGdldEZsb2F0aW5nUHJvcHM6VX09bksoW00sSSxuZih6LHtlbmFibGVkOiFuLHJlZmVyZW5jZVByZXNzOiEwfSksZnVuY3Rpb24oZSxuPXt9KXtsZXR7b3Blbjp0LGRhdGFSZWY6cixlbGVtZW50czp7ZmxvYXRpbmc6byxkb21SZWZlcmVuY2U6YX0scmVmczppfT1lLHtlbmFibGVkOmw9ITAsYXhpczpzPVwiYm90aFwiLHg6Yz1udWxsLHk6dT1udWxsfT1uLGQ9Qy51c2VSZWYoITEpLGY9Qy51c2VSZWYobnVsbCksW3AsaF09Qy51c2VTdGF0ZSgpLFtnLG1dPUMudXNlU3RhdGUoW10pLHY9VCgoZSxuKT0+e2lmKCFkLmN1cnJlbnQmJighci5jdXJyZW50Lm9wZW5FdmVudHx8b1coci5jdXJyZW50Lm9wZW5FdmVudCkpKXt2YXIgdDtsZXQgbyxsLGM7aS5zZXRQb3NpdGlvblJlZmVyZW5jZSgodD17eDplLHk6bixheGlzOnMsZGF0YVJlZjpyLHBvaW50ZXJUeXBlOnB9LG89bnVsbCxsPW51bGwsYz0hMSx7Y29udGV4dEVsZW1lbnQ6YXx8dm9pZCAwLGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpe2xldCBlPWE/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfHx7d2lkdGg6MCxoZWlnaHQ6MCx4OjAseTowfSxuPVwieFwiPT09dC5heGlzfHxcImJvdGhcIj09PXQuYXhpcyxyPVwieVwiPT09dC5heGlzfHxcImJvdGhcIj09PXQuYXhpcyxpPVtcIm1vdXNlZW50ZXJcIixcIm1vdXNlbW92ZVwiXS5pbmNsdWRlcyh0LmRhdGFSZWYuY3VycmVudC5vcGVuRXZlbnQ/LnR5cGV8fFwiXCIpJiZcInRvdWNoXCIhPT10LnBvaW50ZXJUeXBlLHM9ZS53aWR0aCx1PWUuaGVpZ2h0LGQ9ZS54LGY9ZS55O3JldHVybiBudWxsPT1vJiZ0LngmJm4mJihvPWUueC10LngpLG51bGw9PWwmJnQueSYmciYmKGw9ZS55LXQueSksZC09b3x8MCxmLT1sfHwwLHM9MCx1PTAsIWN8fGk/KHM9XCJ5XCI9PT10LmF4aXM/ZS53aWR0aDowLHU9XCJ4XCI9PT10LmF4aXM/ZS5oZWlnaHQ6MCxkPW4mJm51bGwhPXQueD90Lng6ZCxmPXImJm51bGwhPXQueT90Lnk6Zik6YyYmIWkmJih1PVwieFwiPT09dC5heGlzP2UuaGVpZ2h0OnUscz1cInlcIj09PXQuYXhpcz9lLndpZHRoOnMpLGM9ITAse3dpZHRoOnMsaGVpZ2h0OnUseDpkLHk6Zix0b3A6ZixyaWdodDpkK3MsYm90dG9tOmYrdSxsZWZ0OmR9fX0pKX19KSxiPVQoZT0+e251bGw9PWMmJm51bGw9PXUmJih0P2YuY3VycmVudHx8bShbXSk6dihlLmNsaWVudFgsZS5jbGllbnRZKSl9KSx5PWVJKHApP286dCx4PUMudXNlQ2FsbGJhY2soKCk9PntpZigheXx8IWx8fG51bGwhPWN8fG51bGwhPXUpcmV0dXJuO2xldCBlPVEobyk7ZnVuY3Rpb24gbih0KXtlWShvLGVYKHQpKT8oZS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsbiksZi5jdXJyZW50PW51bGwpOnYodC5jbGllbnRYLHQuY2xpZW50WSl9aWYoIXIuY3VycmVudC5vcGVuRXZlbnR8fG9XKHIuY3VycmVudC5vcGVuRXZlbnQpKXtlLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixuKTtsZXQgdD0oKT0+e2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLG4pLGYuY3VycmVudD1udWxsfTtyZXR1cm4gZi5jdXJyZW50PXQsdH1pLnNldFBvc2l0aW9uUmVmZXJlbmNlKGEpfSxbeSxsLGMsdSxvLHIsaSxhLHZdKTtDLnVzZUVmZmVjdCgoKT0+eCgpLFt4LGddKSxDLnVzZUVmZmVjdCgoKT0+e2wmJiFvJiYoZC5jdXJyZW50PSExKX0sW2wsb10pLEMudXNlRWZmZWN0KCgpPT57IWwmJnQmJihkLmN1cnJlbnQ9ITApfSxbbCx0XSksRigoKT0+e2wmJihudWxsIT1jfHxudWxsIT11KSYmKGQuY3VycmVudD0hMSx2KGMsdSkpfSxbbCxjLHUsdl0pO2xldCB3PUMudXNlTWVtbygoKT0+e2Z1bmN0aW9uIGUoZSl7aChlLnBvaW50ZXJUeXBlKX1yZXR1cm57b25Qb2ludGVyRG93bjplLG9uUG9pbnRlckVudGVyOmUsb25Nb3VzZU1vdmU6Yixvbk1vdXNlRW50ZXI6Yn19LFtiXSk7cmV0dXJuIEMudXNlTWVtbygoKT0+bD97cmVmZXJlbmNlOnd9Ont9LFtsLHddKX0oeix7ZW5hYmxlZDohbiYmXCJub25lXCIhPT1jLGF4aXM6XCJub25lXCI9PT1jP3ZvaWQgMDpjfSldKSxWPUMudXNlTWVtbygoKT0+KHtvcGVuOncsc2V0T3BlbjpBLG1vdW50ZWQ6TyxzZXRNb3VudGVkOlMsc2V0VHJpZ2dlckVsZW1lbnQ6Zyxwb3NpdGlvbmVyRWxlbWVudDptLHNldFBvc2l0aW9uZXJFbGVtZW50OnYscG9wdXBSZWY6eCx0cmlnZ2VyUHJvcHM6SCgpLHBvcHVwUHJvcHM6VSgpLGZsb2F0aW5nUm9vdENvbnRleHQ6eixpbnN0YW50VHlwZTpCLHRyYW5zaXRpb25TdGF0dXM6Xyxvbk9wZW5DaGFuZ2VDb21wbGV0ZTpkfSksW3csQSxPLFMsZyxtLHYseCxILFUseixCLF8sZF0pLHE9Qy51c2VNZW1vKCgpPT4oey4uLlYsZGVsYXk6ZixjbG9zZURlbGF5OnAsdHJhY2tDdXJzb3JBeGlzOmMsaG92ZXJhYmxlOnN9KSxbVixmLHAsYyxzXSk7cmV0dXJuKDAsbC5qc3gpKG9WLlByb3ZpZGVyLHt2YWx1ZTpxLGNoaWxkcmVuOmUuY2hpbGRyZW59KX1sZXQgb1o9Qy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7bGV0e2NsYXNzTmFtZTp0LHJlbmRlcjpyLC4uLm99PWUse29wZW46YSxzZXRUcmlnZ2VyRWxlbWVudDppLHRyaWdnZXJQcm9wczpsfT1vcSgpO3JldHVybiB0aihcImJ1dHRvblwiLGUse3N0YXRlOkMudXNlTWVtbygoKT0+KHtvcGVuOmF9KSxbYV0pLHJlZjpbbixpXSxwcm9wczpbbCxvXSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnRGfSl9KSxvWT1DLmNyZWF0ZUNvbnRleHQodm9pZCAwKTtmdW5jdGlvbiBvWChlKXtsZXQgbj1yeCh7cm9vdDplLnJvb3R9KTtyZXR1cm4gbiYmRS5jcmVhdGVQb3J0YWwoZS5jaGlsZHJlbixuKX1mdW5jdGlvbiBvSyhlKXtsZXR7Y2hpbGRyZW46bixrZWVwTW91bnRlZDp0PSExLGNvbnRhaW5lcjpyfT1lLHttb3VudGVkOm99PW9xKCk7cmV0dXJuIG98fHQ/KDAsbC5qc3gpKG9ZLlByb3ZpZGVyLHt2YWx1ZTp0LGNoaWxkcmVuOigwLGwuanN4KShvWCx7cm9vdDpyLGNoaWxkcmVuOm59KX0pOm51bGx9bGV0IG9RPUMuY3JlYXRlQ29udGV4dCh2b2lkIDApO2Z1bmN0aW9uIG9HKCl7bGV0IGU9Qy51c2VDb250ZXh0KG9RKTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKFwiQmFzZSBVSTogVG9vbHRpcFBvc2l0aW9uZXJDb250ZXh0IGlzIG1pc3NpbmcuIFRvb2x0aXBQb3NpdGlvbmVyIHBhcnRzIG11c3QgYmUgcGxhY2VkIHdpdGhpbiA8VG9vbHRpcC5Qb3NpdGlvbmVyPi5cIik7cmV0dXJuIGV9bGV0IG9KPUMuZm9yd2FyZFJlZihmdW5jdGlvbihlLG4pe2xldHtyZW5kZXI6dCxjbGFzc05hbWU6cixhbmNob3I6byxwb3NpdGlvbk1ldGhvZDphPVwiYWJzb2x1dGVcIixzaWRlOmk9XCJ0b3BcIixhbGlnbjpzPVwiY2VudGVyXCIsc2lkZU9mZnNldDpjPTAsYWxpZ25PZmZzZXQ6dT0wLGNvbGxpc2lvbkJvdW5kYXJ5OmQ9XCJjbGlwcGluZy1hbmNlc3RvcnNcIixjb2xsaXNpb25QYWRkaW5nOmY9NSxhcnJvd1BhZGRpbmc6cD01LHN0aWNreTpoPSExLHRyYWNrQW5jaG9yOmc9ITAsY29sbGlzaW9uQXZvaWRhbmNlOm09bmEsLi4udn09ZSx7b3BlbjpiLHNldFBvc2l0aW9uZXJFbGVtZW50OnksbW91bnRlZDp4LGZsb2F0aW5nUm9vdENvbnRleHQ6dyx0cmFja0N1cnNvckF4aXM6aixob3ZlcmFibGU6a309b3EoKSxBPXI0KHthbmNob3I6byxwb3NpdGlvbk1ldGhvZDphLGZsb2F0aW5nUm9vdENvbnRleHQ6dyxtb3VudGVkOngsc2lkZTppLHNpZGVPZmZzZXQ6YyxhbGlnbjpzLGFsaWduT2Zmc2V0OnUsY29sbGlzaW9uQm91bmRhcnk6ZCxjb2xsaXNpb25QYWRkaW5nOmYsc3RpY2t5OmgsYXJyb3dQYWRkaW5nOnAsdHJhY2tBbmNob3I6ZyxrZWVwTW91bnRlZDpmdW5jdGlvbigpe2xldCBlPUMudXNlQ29udGV4dChvWSk7aWYodm9pZCAwPT09ZSl0aHJvdyBFcnJvcihcIkJhc2UgVUk6IDxUb29sdGlwLlBvcnRhbD4gaXMgbWlzc2luZy5cIik7cmV0dXJuIGV9KCksY29sbGlzaW9uQXZvaWRhbmNlOm19KSxPPUMudXNlTWVtbygoKT0+e2xldCBlPXt9O3JldHVybiBiJiZcImJvdGhcIiE9PWomJmt8fChlLnBvaW50ZXJFdmVudHM9XCJub25lXCIpLHtyb2xlOlwicHJlc2VudGF0aW9uXCIsaGlkZGVuOiF4LHN0eWxlOnsuLi5BLnBvc2l0aW9uZXJTdHlsZXMsLi4uZX19fSxbYixqLGsseCxBLnBvc2l0aW9uZXJTdHlsZXNdKSxTPUMudXNlTWVtbygoKT0+KHtwcm9wczpPLC4uLkF9KSxbTyxBXSksRT1DLnVzZU1lbW8oKCk9Pih7b3BlbjpiLHNpZGU6Uy5zaWRlLGFsaWduOlMuYWxpZ24sYW5jaG9ySGlkZGVuOlMuYW5jaG9ySGlkZGVufSksW2IsUy5zaWRlLFMuYWxpZ24sUy5hbmNob3JIaWRkZW5dKSxfPUMudXNlTWVtbygoKT0+KHsuLi5FLGFycm93UmVmOlMuYXJyb3dSZWYsYXJyb3dTdHlsZXM6Uy5hcnJvd1N0eWxlcyxhcnJvd1VuY2VudGVyZWQ6Uy5hcnJvd1VuY2VudGVyZWR9KSxbRSxTLmFycm93UmVmLFMuYXJyb3dTdHlsZXMsUy5hcnJvd1VuY2VudGVyZWRdKSxQPXRqKFwiZGl2XCIsZSx7c3RhdGU6RSxwcm9wczpbUy5wcm9wcyx2XSxyZWY6W24seV0sY3VzdG9tU3R5bGVIb29rTWFwcGluZzp0Vn0pO3JldHVybigwLGwuanN4KShvUS5Qcm92aWRlcix7dmFsdWU6XyxjaGlsZHJlbjpQfSl9KSxvMD17Li4udFYsLi4udFR9LG8xPUMuZm9yd2FyZFJlZihmdW5jdGlvbihlLG4pe2xldHtjbGFzc05hbWU6dCxyZW5kZXI6ciwuLi5vfT1lLHtvcGVuOmEsaW5zdGFudFR5cGU6aSx0cmFuc2l0aW9uU3RhdHVzOmwscG9wdXBQcm9wczpzLHBvcHVwUmVmOmMsb25PcGVuQ2hhbmdlQ29tcGxldGU6dX09b3EoKSx7c2lkZTpkLGFsaWduOmZ9PW9HKCk7cmV0dXJuIG41KHtvcGVuOmEscmVmOmMsb25Db21wbGV0ZSgpe2EmJnU/LighMCl9fSksdGooXCJkaXZcIixlLHtzdGF0ZTpDLnVzZU1lbW8oKCk9Pih7b3BlbjphLHNpZGU6ZCxhbGlnbjpmLGluc3RhbnQ6aSx0cmFuc2l0aW9uU3RhdHVzOmx9KSxbYSxkLGYsaSxsXSkscmVmOltuLGNdLHByb3BzOltzLFwic3RhcnRpbmdcIj09PWw/bnQ6bnIsb10sY3VzdG9tU3R5bGVIb29rTWFwcGluZzpvMH0pfSksbzI9Qy5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7bGV0e2NsYXNzTmFtZTp0LHJlbmRlcjpyLC4uLm99PWUse29wZW46YSxhcnJvd1JlZjppLHNpZGU6bCxhbGlnbjpzLGFycm93VW5jZW50ZXJlZDpjLGFycm93U3R5bGVzOnV9PW9HKCk7cmV0dXJuIHRqKFwiZGl2XCIsZSx7c3RhdGU6Qy51c2VNZW1vKCgpPT4oe29wZW46YSxzaWRlOmwsYWxpZ246cyx1bmNlbnRlcmVkOmN9KSxbYSxsLHMsY10pLHJlZjpbbixpXSxwcm9wczpbe3N0eWxlOnUsXCJhcmlhLWhpZGRlblwiOiEwfSxvXSxjdXN0b21TdHlsZUhvb2tNYXBwaW5nOnRWfSl9KTt2YXIgbzQ9dChcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9jb21wb25lbnRzL3Rvb2x0aXAuY3NzXCIpLG81PXt9O2Z1bmN0aW9uIG8zKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1vNS5zdHlsZVRhZ1RyYW5zZm9ybT15KCksbzUuc2V0QXR0cmlidXRlcz1nKCksbzUuaW5zZXJ0PXAoKSxvNS5kb21BUEk9ZCgpLG81Lmluc2VydFN0eWxlRWxlbWVudD12KCksYygpKG80LlosbzUpLG80LlomJm80LloubG9jYWxzJiZvNC5aLmxvY2Fsczt2YXIgbzY9KDAsQy5mb3J3YXJkUmVmKShmdW5jdGlvbihlLG4pe3ZhciB0LHI9ZS5jbGFzc05hbWUsbz1lLmNoaWxkcmVuLGE9ZS50aXRsZSxpPWUuZGlyZWN0aW9uLHM9dm9pZCAwPT09aT9cInRvcFwiOmksYz1lLmFycm93U2l6ZSx1PXZvaWQgMD09PWM/NjpjLGQ9ZS5vZmZzZXQsZj1lLmJnY29sb3IscD12b2lkIDA9PT1mP1wiIzAwMFwiOmYsaD1lLmNvbG9yLGc9KHQ9KDAsQy51c2VTdGF0ZSkoZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIm5leHRqcy1wb3J0YWxcIikuc2hhZG93Um9vdH0pLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHQpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHQsMSl8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG8zKGUsMSk7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG8zKGUsbil9fSh0LDEpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKVswXSxtPSgwLEMudXNlUmVmKShnKTtyZXR1cm4gYT8oMCxsLmpzeCkob1Use2NoaWxkcmVuOigwLGwuanN4cykobyQse2RlbGF5OjQwMCxjaGlsZHJlbjpbKDAsbC5qc3gpKG9aLHtyZWY6bixyZW5kZXI6ZnVuY3Rpb24oZSl7dmFyIG4sdDtyZXR1cm4oMCxsLmpzeCkoXCJzcGFuXCIsKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByO3I9dFtuXSxuIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbbl09cn0pfXJldHVybiBlfSh7fSxlKSx0PXQ9e2NoaWxkcmVuOm99LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkpfSksbikpfX0pLCgwLGwuanN4KShvSyx7Y29udGFpbmVyOm0sY2hpbGRyZW46KDAsbC5qc3gpKG9KLHtzaWRlOnMsc2lkZU9mZnNldDoodm9pZCAwPT09ZD84OmQpK3UsY2xhc3NOYW1lOlwidG9vbHRpcC1wb3NpdGlvbmVyXCIsc3R5bGU6e1wiLS1hbmNob3Itd2lkdGhcIjpcIlwiLmNvbmNhdCh1LFwicHhcIiksXCItLWFuY2hvci1oZWlnaHRcIjpcIlwiLmNvbmNhdCh1LFwicHhcIil9LGNoaWxkcmVuOigwLGwuanN4cykobzEse2NsYXNzTmFtZTooMCxrLmN4KShcInRvb2x0aXBcIixyKSxzdHlsZTp7YmFja2dyb3VuZENvbG9yOnAsY29sb3I6dm9pZCAwPT09aD9cIiNmZmZcIjpoLFwiLS10b29sdGlwLWJnLWNvbG9yXCI6cCxcIi0tYXJyb3ctc2l6ZVwiOlwiXCIuY29uY2F0KHUsXCJweFwiKX0sY2hpbGRyZW46W2EsKDAsbC5qc3gpKG8yLHtjbGFzc05hbWU6KDAsay5jeCkoXCJ0b29sdGlwLWFycm93XCIsXCJ0b29sdGlwLWFycm93LS1cIi5jb25jYXQocykpLHN0eWxlOntcIi0tYXJyb3ctc2l6ZVwiOlwiXCIuY29uY2F0KHUsXCJweFwiKSxcIi0tdG9vbHRpcC1iZy1jb2xvclwiOnB9fSldfSl9KX0pXX0pfSk6b30pO2Z1bmN0aW9uIG85KGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcjtyPXRbbl0sbiBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW25dPXJ9KX1yZXR1cm4gZX1mdW5jdGlvbiBvOChlLG4pe3JldHVybiBuPW51bGwhPW4/bjp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pLGV9dmFyIG83PWZ1bmN0aW9uKGUpe3ZhciBuLHQ7cmV0dXJuISEobnVsbD09KG49ZS52YWx1ZSk/dm9pZCAwOm4udHlwZSkmJiEhKG51bGw9PSh0PWUudmFsdWUpP3ZvaWQgMDp0LnBhZ2VQYXRoKX07ZnVuY3Rpb24gYWUoZSl7dmFyIG49ZS5wYWdlO3JldHVybigwLGwuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhclwiLGNoaWxkcmVuOlsoMCxsLmpzeCkoYWEse30pLCgwLGwuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1wYWdlLXJvdXRlLWJhci1wYXRoXCIsY2hpbGRyZW46bn0pXX0pfWZ1bmN0aW9uIGFuKGUpe3ZhciBuPWUuYWN0aXZlQm91bmRhcmllc0NvdW50LHQ9ZS5vbkdsb2JhbFJlc2V0LHI9bj4wO3JldHVybigwLGwuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJzZWdtZW50LWV4cGxvcmVyLWZvb3RlclwiLGNoaWxkcmVuOigwLGwuanN4cykoXCJidXR0b25cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1mb290ZXItYnV0dG9uIFwiLmNvbmNhdChyP1wiXCI6XCJzZWdtZW50LWV4cGxvcmVyLWZvb3Rlci1idXR0b24tLWRpc2FibGVkXCIpLG9uQ2xpY2s6cj90OnZvaWQgMCxkaXNhYmxlZDohcix0eXBlOlwiYnV0dG9uXCIsY2hpbGRyZW46WygwLGwuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1mb290ZXItdGV4dFwiLGNoaWxkcmVuOlwiQ2xlYXIgU2VnbWVudCBPdmVycmlkZXNcIn0pLHImJigwLGwuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1mb290ZXItYmFkZ2VcIixjaGlsZHJlbjpufSldfSl9KX1mdW5jdGlvbiBhdChlKXt2YXIgbj1lLmlzQXBwUm91dGVyLHQ9ZS5wYWdlLHI9KDAsai5pOCkoKSxvPSgwLEMudXNlTWVtbykoZnVuY3Rpb24oKXtyZXR1cm4gbj9mdW5jdGlvbiBlKG4pe3ZhciB0LHI9MDtyZXR1cm4obnVsbD09KHQ9bi52YWx1ZSk/dm9pZCAwOnQuc2V0Qm91bmRhcnlUeXBlKSYmbnVsbCE9PW4udmFsdWUuYm91bmRhcnlUeXBlJiYhb08obi52YWx1ZS50eXBlKSYmcisrLE9iamVjdC52YWx1ZXMobi5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuJiYocis9ZShuKSl9KSxyfShyKTowfSxbcixuXSksYT0oMCxDLnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe24mJmZ1bmN0aW9uIGUobil7dmFyIHQ7KG51bGw9PSh0PW4udmFsdWUpP3ZvaWQgMDp0LnNldEJvdW5kYXJ5VHlwZSkmJm4udmFsdWUuc2V0Qm91bmRhcnlUeXBlKG51bGwpLE9iamVjdC52YWx1ZXMobi5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbihuKXtuJiZlKG4pfSl9KHIpfSxbcixuXSk7cmV0dXJuKDAsbC5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNlZ21lbnRzLWV4cGxvcmVyXCI6ITAsY2hpbGRyZW46W24mJigwLGwuanN4KShhZSx7cGFnZTp0fSksKDAsbC5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItY29udGVudFwiLFwiZGF0YS1uZXh0anMtZGV2dG9vbC1zZWdtZW50LWV4cGxvcmVyXCI6ITAsY2hpbGRyZW46bj8oMCxsLmpzeCkoYXIse25vZGU6cixsZXZlbDowLHNlZ21lbnQ6XCJcIn0pOigwLGwuanN4KShcInBcIix7Y2hpbGRyZW46XCJSb3V0ZSBJbmZvIGN1cnJlbnRseSBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdGhlIEFwcCBSb3V0ZXIuXCJ9KX0pLG4mJigwLGwuanN4KShhbix7YWN0aXZlQm91bmRhcmllc0NvdW50Om8sb25HbG9iYWxSZXNldDphfSldfSl9ZnVuY3Rpb24gYXIoZSl7dmFyIG49ZS5zZWdtZW50LHQ9ZS5ub2RlLHI9ZS5sZXZlbCxvPU9iamVjdC5rZXlzKHQuY2hpbGRyZW4pLnNvcnQoZnVuY3Rpb24oZSxuKXt2YXIgcj1lLmluY2x1ZGVzKFwiLlwiKSxvPW4uaW5jbHVkZXMoXCIuXCIpO2lmKHImJiFvKXJldHVybiAtMTtpZighciYmbylyZXR1cm4gMTtpZihyJiZvKXt2YXIgYSxpLGwscyxjLHUsZCxmLHA9bnVsbD09KGk9dC5jaGlsZHJlbltlXSl8fG51bGw9PShhPWkudmFsdWUpP3ZvaWQgMDphLnR5cGUsaD1udWxsPT0ocz10LmNoaWxkcmVuW25dKXx8bnVsbD09KGw9cy52YWx1ZSk/dm9pZCAwOmwudHlwZSxnPWZ1bmN0aW9uKGUpe3JldHVybiBlP1wibGF5b3V0XCI9PT1lPzE6XCJ0ZW1wbGF0ZVwiPT09ZT8yOlwicGFnZVwiPT09ZT8zOm9PKGUpPzQ6NTo1fSxtPWcocCksdj1nKGgpO2lmKG0hPT12KXJldHVybiBtLXY7dmFyIGI9KG51bGw9PSh1PXQuY2hpbGRyZW5bZV0pfHxudWxsPT0oYz11LnZhbHVlKT92b2lkIDA6Yy5wYWdlUGF0aCl8fFwiXCIseT0obnVsbD09KGY9dC5jaGlsZHJlbltuXSl8fG51bGw9PShkPWYudmFsdWUpP3ZvaWQgMDpkLnBhZ2VQYXRoKXx8XCJcIjtyZXR1cm4gYi5sb2NhbGVDb21wYXJlKHkpfXJldHVybiBlLmxvY2FsZUNvbXBhcmUobil9KSxhPTAhPT1yfHxuP246XCJhcHBcIixpPVtdLHM9W10sYz0hMCx1PSExLGQ9dm9pZCAwO3RyeXtmb3IodmFyIGYscD1vW1N5bWJvbC5pdGVyYXRvcl0oKTshKGM9KGY9cC5uZXh0KCkpLmRvbmUpO2M9ITApe3ZhciBoPWYudmFsdWUsZz10LmNoaWxkcmVuW2hdO2lmKGcpe2lmKG83KGcpKXtzLnB1c2goaCk7Y29udGludWV9aS5wdXNoKGgpfX19Y2F0Y2goZSl7dT0hMCxkPWV9ZmluYWxseXt0cnl7Y3x8bnVsbD09cC5yZXR1cm58fHAucmV0dXJuKCl9ZmluYWxseXtpZih1KXRocm93IGR9fWZvcih2YXIgbT1udWxsLHY9by5sZW5ndGgtMTt2Pj0wO3YtLSl7dmFyIGI9dC5jaGlsZHJlbltvW3ZdXTtpZihiJiZiLnZhbHVlKXt2YXIgeT1vTyhiLnZhbHVlLnR5cGUpO2lmKCFtJiYheSl7bT1iO2JyZWFrfX19dmFyIHg9bnVsbCx3PSEwLGo9ITEsQT12b2lkIDA7dHJ5e2Zvcih2YXIgTyxDPW9bU3ltYm9sLml0ZXJhdG9yXSgpOyEodz0oTz1DLm5leHQoKSkuZG9uZSk7dz0hMCl7dmFyIFM9Ty52YWx1ZSxFPXQuY2hpbGRyZW5bU107aWYoRSYmRS52YWx1ZSYmb08oRS52YWx1ZS50eXBlKSl7eD1FO2JyZWFrfX19Y2F0Y2goZSl7aj0hMCxBPWV9ZmluYWxseXt0cnl7d3x8bnVsbD09Qy5yZXR1cm58fEMucmV0dXJuKCl9ZmluYWxseXtpZihqKXRocm93IEF9fW09bXx8eDt2YXIgXz1zLmxlbmd0aD4wLFA9e1wibm90LWZvdW5kXCI6bnVsbCxsb2FkaW5nOm51bGwsZXJyb3I6bnVsbH07cmV0dXJuIHMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgbj10LmNoaWxkcmVuW2VdO2lmKG4mJm4udmFsdWUmJm9PKG4udmFsdWUudHlwZSkpe3ZhciByPW4udmFsdWUudHlwZS5yZXBsYWNlKG9BLFwiXCIpO3IgaW4gUCYmKFBbcl09bi52YWx1ZS5wYWdlUGF0aHx8bnVsbCl9fSksKDAsbC5qc3hzKShsLkZyYWdtZW50LHtjaGlsZHJlbjpbXyYmKDAsbC5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItaXRlbVwiLFwiZGF0YS1uZXh0anMtZGV2dG9vbC1zZWdtZW50LWV4cGxvcmVyLXNlZ21lbnRcIjpuK1wiLVwiK3IsY2hpbGRyZW46KDAsbC5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItaXRlbS1yb3dcIixzdHlsZTpvOSh7fSx7cGFkZGluZ0xlZnQ6XCJcIi5jb25jYXQoKHIrMSkqOCxcInB4XCIpfSksY2hpbGRyZW46KDAsbC5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzZWdtZW50LWV4cGxvcmVyLWZpbGVuYW1lXCIsY2hpbGRyZW46W2EmJigwLGwuanN4cykoXCJzcGFuXCIse2NsYXNzTmFtZTpcInNlZ21lbnQtZXhwbG9yZXItZmlsZW5hbWUtLXBhdGhcIixjaGlsZHJlbjpbYSwoMCxsLmpzeCkoXCJzbWFsbFwiLHtjaGlsZHJlbjpcIi9cIn0pXX0pLHMubGVuZ3RoPjAmJigwLGwuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1maWxlc1wiLGNoaWxkcmVuOnMubWFwKGZ1bmN0aW9uKGUpe3ZhciBuPXQuY2hpbGRyZW5bZV07aWYoIW58fCFuLnZhbHVlfHxvTyhuLnZhbHVlLnR5cGUpKXJldHVybiBudWxsO3ZhciByPW4udmFsdWUucGFnZVBhdGgsbz1yLnNwbGl0KFwiL1wiKS5wb3AoKXx8XCJcIixhPXIuc3RhcnRzV2l0aChvaiksaT1vayhvKSxzPWE/XCJUaGUgZGVmYXVsdCBOZXh0LmpzIFwiLmNvbmNhdChuLnZhbHVlLnR5cGUsXCIgaXMgYmVpbmcgc2hvd24uIFlvdSBjYW4gY3VzdG9taXplIHRoaXMgcGFnZSBieSBhZGRpbmcgeW91ciBvd24gXCIpLmNvbmNhdChpLFwiIGZpbGUgdG8gdGhlIGFwcC8gZGlyZWN0b3J5LlwiKTpudWxsLGM9bnVsbCE9PW4udmFsdWUuYm91bmRhcnlUeXBlO3JldHVybigwLGwuanN4KShvNix7Y2xhc3NOYW1lOlwic2VnbWVudC1leHBsb3Jlci1maWxlLWxhYmVsLXRvb2x0aXAtLVwiKyhhP1wibGdcIjpcInNtXCIpLGRpcmVjdGlvbjphP1wicmlnaHRcIjpcInRvcFwiLHRpdGxlOnMsb2Zmc2V0OjEyLGJnY29sb3I6XCJ2YXIoLS1jb2xvci1ncmF5LTEwMDApXCIsY29sb3I6XCJ2YXIoLS1jb2xvci1ncmF5LTEwMClcIixjaGlsZHJlbjooMCxsLmpzeHMpKFwic3BhblwiLHtjbGFzc05hbWU6KDAsay5jeCkoXCJzZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWxcIixcInNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tXCIuY29uY2F0KG4udmFsdWUudHlwZSksYSYmXCJzZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtLWJ1aWx0aW5cIixjJiZcInNlZ21lbnQtZXhwbG9yZXItZmlsZS1sYWJlbC0tb3ZlcnJpZGRlblwiKSxvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIGU7ZT1uZXcgVVJMU2VhcmNoUGFyYW1zKHtmaWxlOntmaWxlUGF0aDpyfS5maWxlUGF0aCxpc0FwcFJlbGF0aXZlUGF0aDpcIjFcIn0pLGZldGNoKFwiXCIuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEh8fFwiXCIsXCIvX19uZXh0anNfbGF1bmNoLWVkaXRvcj9cIikuY29uY2F0KGUudG9TdHJpbmcoKSkpfSxjaGlsZHJlbjpbKDAsbC5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJzZWdtZW50LWV4cGxvcmVyLWZpbGUtbGFiZWwtdGV4dFwiLGNoaWxkcmVuOml9KSxhPygwLGwuanN4KShhbyx7fSk6KDAsbC5qc3gpKGFpLHtjbGFzc05hbWU6XCJjb2RlLWljb25cIn0pXX0pfSxlKX0pfSksbSYmbS52YWx1ZSYmKDAsbC5qc3gpKG9MLHtub2RlU3RhdGU6bS52YWx1ZSxib3VuZGFyaWVzOlB9KV19KX0pfSksaS5tYXAoZnVuY3Rpb24oZSl7dmFyIG89dC5jaGlsZHJlbltlXTtpZighbylyZXR1cm4gbnVsbDt2YXIgYT1fP2U6bitcIiAvIFwiK2U7cmV0dXJuKDAsbC5qc3gpKGFyLHtzZWdtZW50OmEsbm9kZTpvLGxldmVsOl8/cisxOnJ9LGUpfSldfSl9ZnVuY3Rpb24gYW8oZSl7cmV0dXJuKDAsbC5qc3hzKShcInN2Z1wiLG84KG85KHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjpbKDAsbC5qc3gpKFwicGF0aFwiLHtkOlwiTTE0IDhDMTQgMTEuMzEzNyAxMS4zMTM3IDE0IDggMTRDNC42ODYyOSAxNCAyIDExLjMxMzcgMiA4QzIgNC42ODYyOSA0LjY4NjI5IDIgOCAyQzExLjMxMzcgMiAxNCA0LjY4NjI5IDE0IDhaXCIsZmlsbDpcInZhcigtLWNvbG9yLWdyYXktNDAwKVwifSksKDAsbC5qc3gpKFwicGF0aFwiLHtkOlwiTTcuNzUgN0M4LjMwMjI4IDcuMDAwMDEgOC43NSA3LjQ0NzcyIDguNzUgOFYxMS4yNUg3LjI1VjguNUg2LjI1VjdINy43NVpNOCA0QzguNTUyMjggNCA5IDQuNDQ3NzIgOSA1QzkgNS41NTIyOCA4LjU1MjI4IDYgOCA2QzcuNDQ3NzIgNiA3IDUuNTUyMjggNyA1QzcgNC40NDc3MiA3LjQ0NzcyIDQgOCA0WlwiLGZpbGw6XCJ2YXIoLS1jb2xvci1ncmF5LTkwMClcIn0pXX0pKX1mdW5jdGlvbiBhYSgpe3JldHVybigwLGwuanN4KShcInN2Z1wiLHt3aWR0aDpcIjIwXCIsaGVpZ2h0OlwiMjBcIix2aWV3Qm94OlwiMCAwIDIwIDIwXCIsZmlsbDpcInZhcigtLWNvbG9yLWdyYXktNjAwKVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCxsLmpzeCkoXCJwYXRoXCIse2Q6XCJNNC41IDExLjI1QzQuNSAxMS4zODgxIDQuNjExOTMgMTEuNSA0Ljc1IDExLjVIMTQuNDM5NUwxMS45Mzk1IDlMMTMgNy45Mzk0NUwxNi43ODAzIDExLjcxOTdMMTYuODMyIDExLjc3NjRDMTcuMDcyMyAxMi4wNzA5IDE3LjA1NDkgMTIuNTA1NyAxNi43ODAzIDEyLjc4MDNMMTMgMTYuNTYwNUwxMS45Mzk1IDE1LjVMMTQuNDM5NSAxM0g0Ljc1QzMuNzgzNSAxMyAzIDEyLjIxNjUgMyAxMS4yNVY0LjI1SDQuNVYxMS4yNVpcIn0pfSl9ZnVuY3Rpb24gYWkoZSl7cmV0dXJuKDAsbC5qc3gpKFwic3ZnXCIsbzgobzkoe3dpZHRoOlwiMTJcIixoZWlnaHQ6XCIxMlwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSxlKSx7Y2hpbGRyZW46KDAsbC5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTcuMjI3NjMgMTQuMTgxOUwxMC4yMjc2IDIuMTgxOTNMMTAuNDA5NSAxLjQ1NDMyTDguOTU0MzIgMS4wOTA1Mkw4Ljc3MjQyIDEuODE4MTJMNS43NzI0MiAxMy44MTgxTDUuNTkwNTEgMTQuNTQ1N0w3LjA0NTczIDE0LjkwOTVMNy4yMjc2MyAxNC4xODE5Wk0zLjc1MDAyIDEyLjA2MDdMMy4yMTk2OSAxMS41MzA0TDAuMzk2NDcgOC43MDcxM0MwLjAwNTk0NTU5IDguMzE2NjEgMC4wMDU5NDU1OSA3LjY4MzQ0IDAuMzk2NDcgNy4yOTI5MkwzLjIxOTY5IDQuNDY5NjlMMy43NTAwMiAzLjkzOTM2TDQuODEwNjggNS4wMDAwMkw0LjI4MDM1IDUuNTMwMzVMMS44MTA2OCA4LjAwMDAzTDQuMjgwMzUgMTAuNDY5N0w0LjgxMDY4IDExTDMuNzUwMDIgMTIuMDYwN1pNMTIuMjUgMTIuMDYwN0wxMi43ODA0IDExLjUzMDRMMTUuNjAzNiA4LjcwNzEzQzE1Ljk5NDEgOC4zMTY2MSAxNS45OTQxIDcuNjgzNDQgMTUuNjAzNiA3LjI5MjkyTDEyLjc4MDQgNC40Njk2OUwxMi4yNSAzLjkzOTM2TDExLjE4OTQgNS4wMDAwMkwxMS43MTk3IDUuNTMwMzVMMTQuMTg5NCA4LjAwMDAzTDExLjcxOTcgMTAuNDY5N0wxMS4xODk0IDExTDEyLjI1IDEyLjA2MDdaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSl9fSxcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvaG9va3MvdXNlLWRlbGF5ZWQtcmVuZGVyLnRzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3QuZChuLHtOOigpPT5pfSk7dmFyIHI9dChcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9pbmRleC5qc1wiKTtmdW5jdGlvbiBvKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBhKGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBvKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG8oZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gaSgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sdD1hKCgwLHIudXNlU3RhdGUpKGUpLDIpLG89dFswXSxpPXRbMV0sbD1hKCgwLHIudXNlU3RhdGUpKCExKSwyKSxzPWxbMF0sYz1sWzFdLHU9bi5lbnRlckRlbGF5LGQ9dm9pZCAwPT09dT8xOnUsZj1uLmV4aXREZWxheSxwPXZvaWQgMD09PWY/MDpmO3JldHVybigwLHIudXNlRWZmZWN0KShmdW5jdGlvbigpe3ZhciBuLHQ7cmV0dXJuIGU/KGkoITApLGQ8PTA/YyghMCk6bj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YyghMCl9LGQpKTooYyghMSkscDw9MD9pKCExKTp0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpKCExKX0scCkpLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KG4pLGNsZWFyVGltZW91dCh0KX19LFtlLGQscF0pLHttb3VudGVkOm8scmVuZGVyZWQ6c319fSxcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvc2VnbWVudC1leHBsb3Jlci10cmllLnRzXCI6ZnVuY3Rpb24oZSxuLHQpe1widXNlIHN0cmljdFwiO3QuZChuLHtfYzooKT0+ZCxpODooKT0+Zix0aDooKT0+dX0pO3ZhciByPXQoXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanNcIik7ZnVuY3Rpb24gbyhlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHI7cj10W25dLG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT1yfSl9cmV0dXJuIGV9dmFyIGE9bmV3IFNldCxpPWZ1bmN0aW9uKGUpe3JldHVybiBhLmFkZChlKSxmdW5jdGlvbigpe3JldHVybiBhLmRlbGV0ZShlKX19LGw9ZnVuY3Rpb24oKXtyZXR1cm4gYy5nZXRSb290KCl9LHM9ZnVuY3Rpb24oKXtyZXR1cm4gYy5nZXRSb290KCl9LGM9ZnVuY3Rpb24oZSl7dmFyIG49ZS5nZXRDaGFyYWN0ZXJzLHQ9dm9pZCAwPT09bj9mdW5jdGlvbihlKXtyZXR1cm5bZV19Om4scj1lLmNvbXBhcmUsaT12b2lkIDA9PT1yP2Z1bmN0aW9uKGUsbil7cmV0dXJuIGU9PT1ufTpyLGw9e3ZhbHVlOnZvaWQgMCxjaGlsZHJlbjp7fX07ZnVuY3Rpb24gcygpe3ZhciBlPSEwLG49ITEsdD12b2lkIDA7dHJ5e2Zvcih2YXIgcixvPWFbU3ltYm9sLml0ZXJhdG9yXSgpOyEoZT0ocj1vLm5leHQoKSkuZG9uZSk7ZT0hMCkoMCxyLnZhbHVlKSgpfWNhdGNoKGUpe249ITAsdD1lfWZpbmFsbHl7dHJ5e2V8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobil0aHJvdyB0fX19cmV0dXJue2luc2VydDpmdW5jdGlvbihlKXt2YXIgbj1sLHI9dChlKSxhPSEwLGk9ITEsYz12b2lkIDA7dHJ5e2Zvcih2YXIgdSxkPXJbU3ltYm9sLml0ZXJhdG9yXSgpOyEoYT0odT1kLm5leHQoKSkuZG9uZSk7YT0hMCl7dmFyIGY9dS52YWx1ZTtuLmNoaWxkcmVuW2ZdfHwobi5jaGlsZHJlbltmXT17dmFsdWU6dm9pZCAwLGNoaWxkcmVuOnt9fSksbj1uLmNoaWxkcmVuW2ZdfX1jYXRjaChlKXtpPSEwLGM9ZX1maW5hbGx5e3RyeXthfHxudWxsPT1kLnJldHVybnx8ZC5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgY319bi52YWx1ZT1lLGw9byh7fSxsKSxzKCl9LHJlbW92ZTpmdW5jdGlvbihlKXt2YXIgbj1sLHI9dChlKSxhPVtdLGM9ITAsdT0hMCxkPSExLGY9dm9pZCAwO3RyeXtmb3IodmFyIHAsaD1yW1N5bWJvbC5pdGVyYXRvcl0oKTshKHU9KHA9aC5uZXh0KCkpLmRvbmUpO3U9ITApe3ZhciBnPXAudmFsdWU7aWYoIW4uY2hpbGRyZW5bZ10pe2M9ITE7YnJlYWt9YS5wdXNoKG4pLG49bi5jaGlsZHJlbltnXX19Y2F0Y2goZSl7ZD0hMCxmPWV9ZmluYWxseXt0cnl7dXx8bnVsbD09aC5yZXR1cm58fGgucmV0dXJuKCl9ZmluYWxseXtpZihkKXRocm93IGZ9fWlmKGMmJmkobi52YWx1ZSxlKSl7bi52YWx1ZT12b2lkIDA7Zm9yKHZhciBtPWEubGVuZ3RoLTE7bT49MDttLS0pe3ZhciB2PWFbbV0sYj1yW21dOzA9PT1PYmplY3Qua2V5cyh2LmNoaWxkcmVuW2JdLmNoaWxkcmVuKS5sZW5ndGgmJmRlbGV0ZSB2LmNoaWxkcmVuW2JdfWw9byh7fSxsKSxzKCl9fSxnZXRSb290OmZ1bmN0aW9uKCl7cmV0dXJuIGx9fX0oe2NvbXBhcmU6ZnVuY3Rpb24oZSxuKXtyZXR1cm4hIWUmJiEhbiYmZS5wYWdlUGF0aD09PW4ucGFnZVBhdGgmJmUudHlwZT09PW4udHlwZSYmZS5ib3VuZGFyeVR5cGU9PT1uLmJvdW5kYXJ5VHlwZX0sZ2V0Q2hhcmFjdGVyczpmdW5jdGlvbihlKXtyZXR1cm4gZS5wYWdlUGF0aC5zcGxpdChcIi9cIil9fSksdT1jLmluc2VydCxkPWMucmVtb3ZlO2Z1bmN0aW9uIGYoKXtyZXR1cm4oMCxyLnVzZVN5bmNFeHRlcm5hbFN0b3JlKShpLGwscyl9fSxcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvdXRpbHMvY3gudHNcIjpmdW5jdGlvbihlLG4sdCl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoZSksdD0wO3Q8ZTt0Kyspblt0XT1hcmd1bWVudHNbdF07cmV0dXJuIG4uZmlsdGVyKEJvb2xlYW4pLmpvaW4oXCIgXCIpfXQuZChuLHtjeDooKT0+cn0pfX0sX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fPXt9O2Z1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18oZSl7dmFyIG49X193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW2VdO2lmKHZvaWQgMCE9PW4pcmV0dXJuIG4uZXhwb3J0czt2YXIgdD1fX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bZV09e2lkOmUsZXhwb3J0czp7fX07cmV0dXJuIF9fd2VicGFja19tb2R1bGVzX19bZV0odCx0LmV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyksdC5leHBvcnRzfV9fd2VicGFja19yZXF1aXJlX18ubj1lPT57dmFyIG49ZSYmZS5fX2VzTW9kdWxlPygpPT5lLmRlZmF1bHQ6KCk9PmU7cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uZChuLHthOm59KSxufSwoKCk9Pnt2YXIgZSxuPU9iamVjdC5nZXRQcm90b3R5cGVPZj9lPT5PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk6ZT0+ZS5fX3Byb3RvX187X193ZWJwYWNrX3JlcXVpcmVfXy50PWZ1bmN0aW9uKHQscil7aWYoMSZyJiYodD10aGlzKHQpKSw4JnJ8fFwib2JqZWN0XCI9PXR5cGVvZiB0JiZ0JiYoNCZyJiZ0Ll9fZXNNb2R1bGV8fDE2JnImJlwiZnVuY3Rpb25cIj09dHlwZW9mIHQudGhlbikpcmV0dXJuIHQ7dmFyIG89T2JqZWN0LmNyZWF0ZShudWxsKTtfX3dlYnBhY2tfcmVxdWlyZV9fLnIobyk7dmFyIGE9e307ZT1lfHxbbnVsbCxuKHt9KSxuKFtdKSxuKG4pXTtmb3IodmFyIGk9MiZyJiZ0O1wib2JqZWN0XCI9PXR5cGVvZiBpJiYhfmUuaW5kZXhPZihpKTtpPW4oaSkpT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaSkuZm9yRWFjaChlPT57YVtlXT0oKT0+dFtlXX0pO3JldHVybiBhLmRlZmF1bHQ9KCk9PnQsX193ZWJwYWNrX3JlcXVpcmVfXy5kKG8sYSksb319KSgpLF9fd2VicGFja19yZXF1aXJlX18uZD0oZSxuKT0+e2Zvcih2YXIgdCBpbiBuKV9fd2VicGFja19yZXF1aXJlX18ubyhuLHQpJiYhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGUsdCkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0Om5bdF19KX0sX193ZWJwYWNrX3JlcXVpcmVfXy5vPShlLG4pPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSxfX3dlYnBhY2tfcmVxdWlyZV9fLnI9ZT0+e1widW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9LF9fd2VicGFja19yZXF1aXJlX18ubmM9dm9pZCAwO3ZhciBfX3dlYnBhY2tfZXhwb3J0c19fPXt9O2Zvcih2YXIgX193ZWJwYWNrX2lfXyBpbigoKT0+e1widXNlIHN0cmljdFwiO19fd2VicGFja19yZXF1aXJlX18ucihfX3dlYnBhY2tfZXhwb3J0c19fKSxfX3dlYnBhY2tfcmVxdWlyZV9fLmQoX193ZWJwYWNrX2V4cG9ydHNfXyx7ZGlzcGF0Y2hlcjooKT0+YUgscmVuZGVyQXBwRGV2T3ZlcmxheTooKT0+YVcscmVuZGVyUGFnZXNEZXZPdmVybGF5OigpPT5hJH0pO3ZhciBlLG4sdCxyPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIiksbz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4ociksYT1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIiksaT1fX3dlYnBhY2tfcmVxdWlyZV9fLm4oYSksbD1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9zcmMvYnVpbGQvd2VicGFjay9sb2FkZXJzL2RldnRvb2wvZGV2dG9vbC1zdHlsZS1pbmplY3QuanNcIikscz1fX3dlYnBhY2tfcmVxdWlyZV9fLm4obCksYz1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL3N0eWxlLWxvYWRlckA0LjAuMF93ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3djK2hlbHBlcnNAMC41LjE1X19lc2J1aWxkQDAuMjQuMl8vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCIpLHU9X193ZWJwYWNrX3JlcXVpcmVfXy5uKGMpLGQ9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9zdHlsZS1sb2FkZXJANC4wLjBfd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3YytoZWxwZXJzQDAuNS4xNV9fZXNidWlsZEAwLjI0LjJfL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiKSxmPV9fd2VicGFja19yZXF1aXJlX18ubihkKSxwPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vc3R5bGUtbG9hZGVyQDQuMC4wX3dlYnBhY2tANS45OC4wX0Bzd2MrY29yZUAxLjExLjI0X0Bzd2MraGVscGVyc0AwLjUuMTVfX2VzYnVpbGRAMC4yNC4yXy9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiKSxoPV9fd2VicGFja19yZXF1aXJlX18ubihwKSxnPV9fd2VicGFja19yZXF1aXJlX18oXCIuLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vY3NzLWxvYWRlckA3LjEuMl9AcnNwYWNrK2NvcmVAMS40LjVfQHN3YytoZWxwZXJzQDAuNS4xNV9fd2VicGFja0A1Ljk4LjBfQHN3Yytjb3JlQDEuMTEuMjRfQHN3X3dtN2VlNWljNG1vZnJoaXN1ZHdvbjRxcHE0L25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vc3JjL25leHQtZGV2dG9vbHMvZ2xvYmFsLmNzc1wiKSxtPXt9O20uc3R5bGVUYWdUcmFuc2Zvcm09aCgpLG0uc2V0QXR0cmlidXRlcz11KCksbS5pbnNlcnQ9cygpLG0uZG9tQVBJPWkoKSxtLmluc2VydFN0eWxlRWxlbWVudD1mKCksbygpKGcuWixtKSxnLlomJmcuWi5sb2NhbHMmJmcuWi5sb2NhbHM7dmFyIHY9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL3RvYXN0L3N0eWxlLmNzc1wiKSxiPXt9O2Iuc3R5bGVUYWdUcmFuc2Zvcm09aCgpLGIuc2V0QXR0cmlidXRlcz11KCksYi5pbnNlcnQ9cygpLGIuZG9tQVBJPWkoKSxiLmluc2VydFN0eWxlRWxlbWVudD1mKCksbygpKHYuWixiKSx2LlomJnYuWi5sb2NhbHMmJnYuWi5sb2NhbHM7dmFyIHk9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtcnVudGltZS5qc1wiKSx4PV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QvaW5kZXguanNcIik7ZnVuY3Rpb24gdyhlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9dmFyIGo9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlci9zdGFjay10cmFjZS1wYXJzZXIuY2pzLmpzXCIpLGs9L1xcL19uZXh0KFxcL3N0YXRpY1xcLy4rKS8sQT1TeW1ib2wuZm9yKFwibmV4dC5jb25zb2xlLmVycm9yLmRpZ2VzdFwiKTtmdW5jdGlvbiBPKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiBDKGUsbil7cmV0dXJuIG49bnVsbCE9bj9uOnt9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSksZX12YXIgUz17U21hbGw6MTYvMTQsTWVkaXVtOjEsTGFyZ2U6MTYvMTh9LEU9XCJzdGF0aWMtaW5kaWNhdG9yXCIsXz1cImJ1aWxkLW9rXCIsUD1cImJ1aWxkLWVycm9yXCIsej1cImJlZm9yZS1mYXN0LXJlZnJlc2hcIixMPVwiZmFzdC1yZWZyZXNoXCIsVD1cInZlcnNpb24taW5mb1wiLFI9XCJ1bmhhbmRsZWQtZXJyb3JcIixOPVwidW5oYW5kbGVkLXJlamVjdGlvblwiLEQ9XCJkZWJ1Zy1pbmZvXCIsQj1cImRldi1pbmRpY2F0b3JcIixNPVwiZXJyb3Itb3ZlcmxheS1vcGVuXCIsST1cImVycm9yLW92ZXJsYXktY2xvc2VcIixIPVwiZXJyb3Itb3ZlcmxheS10b2dnbGVcIixGPVwiYnVpbGRpbmctaW5kaWNhdG9yLXNob3dcIixVPVwiYnVpbGRpbmctaW5kaWNhdG9yLWhpZGVcIixWPVwicmVuZGVyaW5nLWluZGljYXRvci1zaG93XCIscT1cInJlbmRlcmluZy1pbmRpY2F0b3ItaGlkZVwiLFc9XCJkZXZ0b29scy1wYW5lbC1vcGVuXCIsJD1cImRldnRvb2xzLXBhbmVsLWNsb3NlXCIsWj1cImRldnRvb2xzLXBhbmVsLXRvZ2dsZVwiLFk9XCJkZXZ0b29scy1wb3NpdGlvblwiLFg9XCJkZXZ0b29scy1zY2FsZVwiLEs9XCJyZXN0YXJ0LXNlcnZlci1idXR0b25cIixRPVwiX19uZXh0anMtZGV2LXRvb2xzLXRoZW1lXCIsRz1cIl9fbmV4dGpzLWRldi10b29scy1wb3NpdGlvblwiLEo9XCJfX25leHRqcy1kZXYtdG9vbHMtc2NhbGVcIixlZT1cInNlZ21lbnQtZXhwbG9yZXItdXBkYXRlLXJvdXRlLXN0YXRlXCIsZW49L1xccysoYXQgT2JqZWN0XFwucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLiopfChyZWFjdF9zdGFja19ib3R0b21fZnJhbWVALiopfChhdCByZWFjdC1zdGFjay1ib3R0b20tZnJhbWUuKil8KHJlYWN0LXN0YWNrLWJvdHRvbS1mcmFtZUAuKikvO2Z1bmN0aW9uIGV0KGUpe3JldHVybiBudWxsPT1lP3ZvaWQgMDplLnNwbGl0KGVuKVswXX12YXIgZXI9KG51bGw9PShlPXByb2Nlc3MuZW52Ll9fTkVYVF9ERVZfSU5ESUNBVE9SKT92b2lkIDA6ZS50b1N0cmluZygpKT09PVwiZmFsc2VcIixlbz17bmV4dElkOjEsYnVpbGRFcnJvcjpudWxsLGVycm9yczpbXSxub3RGb3VuZDohMSxyZW5kZXJpbmdJbmRpY2F0b3I6ITEsc3RhdGljSW5kaWNhdG9yOiExLHNob3dJbmRpY2F0b3I6ITEsZGlzYWJsZURldkluZGljYXRvcjohMSxidWlsZGluZ0luZGljYXRvcjohMSxyZWZyZXNoU3RhdGU6e3R5cGU6XCJpZGxlXCJ9LHZlcnNpb25JbmZvOntpbnN0YWxsZWQ6XCIwLjAuMFwiLHN0YWxlbmVzczpcInVua25vd25cIn0sZGVidWdJbmZvOntkZXZ0b29sc0Zyb250ZW5kVXJsOnZvaWQgMH0saXNEZXZUb29sc1BhbmVsT3BlbjohMSxzaG93UmVzdGFydFNlcnZlckJ1dHRvbjohMSxkZXZUb29sc1Bvc2l0aW9uOlwiYm90dG9tLWxlZnRcIixzY2FsZTpTLk1lZGl1bSxwYWdlOlwiXCJ9LGVhPV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2NsaWVudC5qc1wiKTtmdW5jdGlvbiBlaShlKXtmb3IodmFyIG49YXJndW1lbnRzLmxlbmd0aCx0PUFycmF5KG4+MT9uLTE6MCkscj0xO3I8bjtyKyspdFtyLTFdPWFyZ3VtZW50c1tyXTt2YXIgbz1lLmxlbmd0aC0xO3JldHVybihlLnNsaWNlKDAsbykucmVkdWNlKGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gZStuK3Rbcl19LFwiXCIpK2Vbb10pLnJlcGxhY2UoL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vZyxcIlwiKS5yZXBsYWNlKC9cXHMrL2csXCIgXCIpLnJlcGxhY2UoL1xccyooWzo7LHt9XSlcXHMqL2csXCIkMVwiKS5yZXBsYWNlKC87K30vZyxcIn1cIikudHJpbSgpfWZ1bmN0aW9uIGVsKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgICAgIC8qIGxhdGluLWV4dCAqL1xcbiAgICAgIEBmb250LWZhY2Uge1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdfX25leHRqcy1HZWlzdCc7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBmb250LXdlaWdodDogNDAwIDYwMDtcXG4gICAgICAgIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gICAgICAgIHNyYzogdXJsKC9fX25leHRqc19mb250L2dlaXN0LWxhdGluLWV4dC53b2ZmMikgZm9ybWF0KCd3b2ZmMicpO1xcbiAgICAgICAgdW5pY29kZS1yYW5nZTogVSswMTAwLTAyQkEsIFUrMDJCRC0wMkM1LCBVKzAyQzctMDJDQywgVSswMkNFLTAyRDcsXFxuICAgICAgICAgIFUrMDJERC0wMkZGLCBVKzAzMDQsIFUrMDMwOCwgVSswMzI5LCBVKzFEMDAtMURCRiwgVSsxRTAwLTFFOUYsXFxuICAgICAgICAgIFUrMUVGMi0xRUZGLCBVKzIwMjAsIFUrMjBBMC0yMEFCLCBVKzIwQUQtMjBDMCwgVSsyMTEzLCBVKzJDNjAtMkM3RixcXG4gICAgICAgICAgVStBNzIwLUE3RkY7XFxuICAgICAgfVxcbiAgICAgIC8qIGxhdGluLWV4dCAqL1xcbiAgICAgIEBmb250LWZhY2Uge1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdfX25leHRqcy1HZWlzdCBNb25vJztcXG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDAgNjAwO1xcbiAgICAgICAgZm9udC1kaXNwbGF5OiBzd2FwO1xcbiAgICAgICAgc3JjOiB1cmwoL19fbmV4dGpzX2ZvbnQvZ2Vpc3QtbW9uby1sYXRpbi1leHQud29mZjIpIGZvcm1hdCgnd29mZjInKTtcXG4gICAgICAgIHVuaWNvZGUtcmFuZ2U6IFUrMDEwMC0wMkJBLCBVKzAyQkQtMDJDNSwgVSswMkM3LTAyQ0MsIFUrMDJDRS0wMkQ3LFxcbiAgICAgICAgICBVKzAyREQtMDJGRiwgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsxRDAwLTFEQkYsIFUrMUUwMC0xRTlGLFxcbiAgICAgICAgICBVKzFFRjItMUVGRiwgVSsyMDIwLCBVKzIwQTAtMjBBQiwgVSsyMEFELTIwQzAsIFUrMjExMywgVSsyQzYwLTJDN0YsXFxuICAgICAgICAgIFUrQTcyMC1BN0ZGO1xcbiAgICAgIH1cXG4gICAgICAvKiBsYXRpbiAqL1xcbiAgICAgIEBmb250LWZhY2Uge1xcbiAgICAgICAgZm9udC1mYW1pbHk6ICdfX25leHRqcy1HZWlzdCc7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBmb250LXdlaWdodDogNDAwIDYwMDtcXG4gICAgICAgIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gICAgICAgIHNyYzogdXJsKC9fX25leHRqc19mb250L2dlaXN0LWxhdGluLndvZmYyKSBmb3JtYXQoJ3dvZmYyJyk7XFxuICAgICAgICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNixcXG4gICAgICAgICAgVSswMkRBLCBVKzAyREMsIFUrMDMwNCwgVSswMzA4LCBVKzAzMjksIFUrMjAwMC0yMDZGLCBVKzIwQUMsIFUrMjEyMixcXG4gICAgICAgICAgVSsyMTkxLCBVKzIxOTMsIFUrMjIxMiwgVSsyMjE1LCBVK0ZFRkYsIFUrRkZGRDtcXG4gICAgICB9XFxuICAgICAgLyogbGF0aW4gKi9cXG4gICAgICBAZm9udC1mYWNlIHtcXG4gICAgICAgIGZvbnQtZmFtaWx5OiAnX19uZXh0anMtR2Vpc3QgTW9ubyc7XFxuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XFxuICAgICAgICBmb250LXdlaWdodDogNDAwIDYwMDtcXG4gICAgICAgIGZvbnQtZGlzcGxheTogc3dhcDtcXG4gICAgICAgIHNyYzogdXJsKC9fX25leHRqc19mb250L2dlaXN0LW1vbm8tbGF0aW4ud29mZjIpIGZvcm1hdCgnd29mZjInKTtcXG4gICAgICAgIHVuaWNvZGUtcmFuZ2U6IFUrMDAwMC0wMEZGLCBVKzAxMzEsIFUrMDE1Mi0wMTUzLCBVKzAyQkItMDJCQywgVSswMkM2LFxcbiAgICAgICAgICBVKzAyREEsIFUrMDJEQywgVSswMzA0LCBVKzAzMDgsIFUrMDMyOSwgVSsyMDAwLTIwNkYsIFUrMjBBQywgVSsyMTIyLFxcbiAgICAgICAgICBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEO1xcbiAgICAgIH1cXG4gICAgXCJdLG58fChuPWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKG4pfX0pKSk7cmV0dXJuIGVsPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHR9dmFyIGVzPWZ1bmN0aW9uKCl7cmV0dXJuKDAseC51c2VJbnNlcnRpb25FZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO3JldHVybiBlLnRleHRDb250ZW50PWVpKGVsKCkpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSksZnVuY3Rpb24oKXtkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKGUpfX0sW10pLG51bGx9LGVjPV9fd2VicGFja19yZXF1aXJlX18oXCIuL2Rpc3QvY29tcGlsZWQvcmVhY3QtZG9tL2luZGV4LmpzXCIpO2Z1bmN0aW9uIGV1KGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBlZChlKXt2YXIgbix0LHI9ZS5jaGlsZHJlbixvPXgudXNlUmVmKG51bGwpLGE9eC51c2VSZWYobnVsbCksaT0obj14LnVzZVN0YXRlKCksdD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGV1KGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIGV1KGUsbil9fShuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKVsxXTtyZXR1cm4geC51c2VFZmZlY3QoZnVuY3Rpb24oKXtpZihvLmN1cnJlbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIm5leHRqcy1wb3J0YWxcIiksXCJ1bmRlZmluZWRcIiE9dHlwZW9mIGxvY2FsU3RvcmFnZSl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oUSk7XCJkYXJrXCI9PT1lPyhvLmN1cnJlbnQuY2xhc3NMaXN0LmFkZChcImRhcmtcIiksby5jdXJyZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJsaWdodFwiKSk6XCJsaWdodFwiPT09ZSYmKG8uY3VycmVudC5jbGFzc0xpc3QucmVtb3ZlKFwiZGFya1wiKSxvLmN1cnJlbnQuY2xhc3NMaXN0LmFkZChcImxpZ2h0XCIpKX1udWxsPT09by5jdXJyZW50LnNoYWRvd1Jvb3QmJihhLmN1cnJlbnQ9by5jdXJyZW50LmF0dGFjaFNoYWRvdyh7bW9kZTpcIm9wZW5cIn0pKSxpKHt9KX0sW10pLGEuY3VycmVudD8oMCxlYy5jcmVhdGVQb3J0YWwpKHIsYS5jdXJyZW50KTpudWxsfWZ1bmN0aW9uIGVmKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgICAgICAgOmhvc3Qge1xcbiAgICAgICAgICAvKiBcXG4gICAgICAgICAgICogQWx0aG91Z2ggdGhlIHN0eWxlIGFwcGxpZWQgdG8gdGhlIHNoYWRvdyBob3N0IGlzIGlzb2xhdGVkLFxcbiAgICAgICAgICAgKiB0aGUgZWxlbWVudCB0aGF0IGF0dGFjaGVkIHRoZSBzaGFkb3cgaG9zdCAoaS5lLiBcXFwibmV4dGpzLXBvcnRhbFxcXCIpXFxuICAgICAgICAgICAqIGlzIHN0aWxsIGFmZmVjdGVkIGJ5IHRoZSBwYXJlbnQncyBzdHlsZSAoZS5nLiBcXFwiYm9keVxcXCIpLiBUaGlzIG1heVxcbiAgICAgICAgICAgKiBvY2N1ciBzdHlsZSBjb25mbGljdHMgbGlrZSBcXFwiZGlzcGxheTogZmxleFxcXCIsIHdpdGggb3RoZXIgY2hpbGRyZW5cXG4gICAgICAgICAgICogZWxlbWVudHMgdGhlcmVmb3JlIGdpdmUgdGhlIHNoYWRvdyBob3N0IGFuIGFic29sdXRlIHBvc2l0aW9uLlxcbiAgICAgICAgICAgKi9cXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcblxcbiAgICAgICAgICAtLWNvbG9yLWZvbnQ6ICM3NTc1NzU7XFxuICAgICAgICAgIC0tY29sb3ItYmFja2Ryb3A6IHJnYmEoMjUwLCAyNTAsIDI1MCwgMC44KTtcXG4gICAgICAgICAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMTQ1KTtcXG5cXG4gICAgICAgICAgLS1jb2xvci10aXRsZS1jb2xvcjogIzFmMWYxZjtcXG4gICAgICAgICAgLS1jb2xvci1zdGFjay1ub3RlczogIzc3NztcXG5cXG4gICAgICAgICAgLS1jb2xvci1hY2NlbnRzLTE6ICM4MDgwODA7XFxuICAgICAgICAgIC0tY29sb3ItYWNjZW50cy0yOiAjMjIyMjIyO1xcbiAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMzogIzQwNDA0MDtcXG5cXG4gICAgICAgICAgLS1mb250LXN0YWNrLW1vbm9zcGFjZTogJ19fbmV4dGpzLUdlaXN0IE1vbm8nLCAnR2Vpc3QgTW9ubycsXFxuICAgICAgICAgICAgJ1NGTW9uby1SZWd1bGFyJywgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllcixcXG4gICAgICAgICAgICBtb25vc3BhY2U7XFxuICAgICAgICAgIC0tZm9udC1zdGFjay1zYW5zOiAnX19uZXh0anMtR2Vpc3QnLCAnR2Vpc3QnLCAtYXBwbGUtc3lzdGVtLFxcbiAgICAgICAgICAgICdTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmO1xcblxcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcXG4gICAgICAgICAgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9uZTtcXG5cXG4gICAgICAgICAgLyogVE9ETzogUmVtb3ZlIHJlcGxhY2VkIG9uZXMuICovXFxuICAgICAgICAgIC0tc2hhZG93LXNtOiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTtcXG4gICAgICAgICAgLS1zaGFkb3c6IDAgMXB4IDNweCAwIHJnYigwIDAgMCAvIDAuMSksXFxuICAgICAgICAgICAgMCAxcHggMnB4IC0xcHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gICAgICAgICAgLS1zaGFkb3ctbWQ6IDAgNHB4IDZweCAtMXB4IHJnYigwIDAgMCAvIDAuMSksXFxuICAgICAgICAgICAgMCAycHggNHB4IC0ycHggcmdiKDAgMCAwIC8gMC4xKTtcXG4gICAgICAgICAgLS1zaGFkb3ctbGc6IDAgMTBweCAxNXB4IC0zcHggcmdiKDAgMCAwIC8gMC4xKSxcXG4gICAgICAgICAgICAwIDRweCA2cHggLTRweCByZ2IoMCAwIDAgLyAwLjEpO1xcbiAgICAgICAgICAtLXNoYWRvdy14bDogMCAyMHB4IDI1cHggLTVweCByZ2IoMCAwIDAgLyAwLjEpLFxcbiAgICAgICAgICAgIDAgOHB4IDEwcHggLTZweCByZ2IoMCAwIDAgLyAwLjEpO1xcbiAgICAgICAgICAtLXNoYWRvdy0yeGw6IDAgMjVweCA1MHB4IC0xMnB4IHJnYigwIDAgMCAvIDAuMjUpO1xcbiAgICAgICAgICAtLXNoYWRvdy1pbm5lcjogaW5zZXQgMCAycHggNHB4IDAgcmdiKDAgMCAwIC8gMC4wNSk7XFxuICAgICAgICAgIC0tc2hhZG93LW5vbmU6IDAgMCAjMDAwMDtcXG5cXG4gICAgICAgICAgLS1zaGFkb3ctc21hbGw6IDBweCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNCk7XFxuICAgICAgICAgIC0tc2hhZG93LW1lbnU6IDBweCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wMiksXFxuICAgICAgICAgICAgMHB4IDRweCA4cHggLTRweCByZ2JhKDAsIDAsIDAsIDAuMDQpLFxcbiAgICAgICAgICAgIDBweCAxNnB4IDI0cHggLThweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xcblxcbiAgICAgICAgICAtLWZvY3VzLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAgICAgICAgIC0tZm9jdXMtcmluZzogMnB4IHNvbGlkIHZhcigtLWZvY3VzLWNvbG9yKTtcXG5cXG4gICAgICAgICAgLS10aW1pbmctc3dpZnQ6IGN1YmljLWJlemllcigwLjIzLCAwLjg4LCAwLjI2LCAwLjkyKTtcXG4gICAgICAgICAgLS10aW1pbmctb3ZlcmxheTogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4xKTtcXG4gICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXFxuICAgICAgICAgIC0tdGltaW5nLWJvdW5jZTogbGluZWFyKDAgMCUsIDAuMDA1ODcxIDElLCAwLjAyMjA1OCAyJSwgMC4wNDY2MTIgMyUsIDAuMDc3ODIzIDQlLCAwLjExNDE5OSA1JSwgMC4xNTQ0NDEgNiUsIDAuMTk3NDMxIDcuMDAwMDAwMDAwMDAwMDAxJSwgMC4yNDIyMDggOCUsIDAuMjg3OTU5IDklLCAwLjMzMzk5NSAxMCUsIDAuMzc5NzQzIDExJSwgMC40MjQ3MzIgMTIlLCAwLjQ2ODU4IDEzJSwgMC41MTA5ODIgMTQuMDAwMDAwMDAwMDAwMDAyJSwgMC41NTE3MDIgMTUlLCAwLjU5MDU2NCAxNiUsIDAuNjI3NDQ1IDE3JSwgMC42NjIyNjEgMTglLCAwLjY5NDk3MSAxOSUsIDAuNzI1NTYxIDIwJSwgMC43NTQwNDcgMjElLCAwLjc4MDQ2MiAyMiUsIDAuODA0ODYxIDIzJSwgMC44MjczMSAyNCUsIDAuODQ3ODg4IDI1JSwgMC44NjY2NzkgMjYlLCAwLjg4Mzc3NSAyNyUsIDAuODk5MjcyIDI4LjAwMDAwMDAwMDAwMDAwNCUsIDAuOTEzMjY3IDI4Ljk5OTk5OTk5OTk5OTk5NiUsIDAuOTI1ODU2IDMwJSwgMC45MzcxMzcgMzElLCAwLjk0NzIwNSAzMiUsIDAuOTU2MTUzIDMzJSwgMC45NjQwNyAzNCUsIDAuOTcxMDQzIDM1JSwgMC45NzcxNTMgMzYlLCAwLjk4MjQ3OSAzNyUsIDAuOTg3MDk0IDM4JSwgMC45OTEwNjYgMzklLCAwLjk5NDQ2MiA0MCUsIDAuOTk3MzM5IDQxJSwgMC45OTk3NTUgNDIlLCAxLjAwMTc2MSA0MyUsIDEuMDAzNDA0IDQ0JSwgMS4wMDQ3MjcgNDUlLCAxLjAwNTc3IDQ2JSwgMS4wMDY1NjkgNDclLCAxLjAwNzE1NyA0OCUsIDEuMDA3NTYzIDQ5JSwgMS4wMDc4MTMgNTAlLCAxLjAwNzkzMSA1MSUsIDEuMDA3OTM5IDUyJSwgMS4wMDc4NTUgNTMlLCAxLjAwNzY5NyA1NCUsIDEuMDA3NDc3IDU1LjAwMDAwMDAwMDAwMDAxJSwgMS4wMDcyMSA1Ni4wMDAwMDAwMDAwMDAwMSUsIDEuMDA2OTA3IDU2Ljk5OTk5OTk5OTk5OTk5JSwgMS4wMDY1NzYgNTcuOTk5OTk5OTk5OTk5OTklLCAxLjAwNjIyOCA1OSUsIDEuMDA1ODY4IDYwJSwgMS4wMDU1MDMgNjElLCAxLjAwNTEzNyA2MiUsIDEuMDA0Nzc2IDYzJSwgMS4wMDQ0MjIgNjQlLCAxLjAwNDA3OCA2NSUsIDEuMDAzNzQ2IDY2JSwgMS4wMDM0MjkgNjclLCAxLjAwMzEyNyA2OCUsIDEuMDAyODQgNjklLCAxLjAwMjU3MSA3MCUsIDEuMDAyMzE4IDcxJSwgMS4wMDIwODIgNzIlLCAxLjAwMTg2MyA3MyUsIDEuMDAxNjYgNzQlLCAxLjAwMTQ3MyA3NSUsIDEuMDAxMzAxIDc2JSwgMS4wMDExNDMgNzclLCAxLjAwMSA3OCUsIDEuMDAwODY5IDc5JSwgMS4wMDA3NTIgODAlLCAxLjAwMDY0NSA4MSUsIDEuMDAwNTUgODIlLCAxLjAwMDQ2NCA4MyUsIDEuMDAwMzg4IDg0JSwgMS4wMDAzMjEgODUlLCAxLjAwMDI2MSA4NiUsIDEuMDAwMjA5IDg3JSwgMS4wMDAxNjMgODglLCAxLjAwMDEyMyA4OSUsIDEuMDAwMDg4IDkwJSk7XFxuXFxuICAgICAgICAgIC0tcm91bmRlZC1ub25lOiAwcHg7XFxuICAgICAgICAgIC0tcm91bmRlZC1zbTogMnB4O1xcbiAgICAgICAgICAtLXJvdW5kZWQtbWQ6IDRweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLW1kLTI6IDZweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLWxnOiA4cHg7XFxuICAgICAgICAgIC0tcm91bmRlZC14bDogMTJweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLTJ4bDogMTZweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLTN4bDogMjRweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLTR4bDogMzJweDtcXG4gICAgICAgICAgLS1yb3VuZGVkLWZ1bGw6IDk5OTlweDtcXG5cXG4gICAgICAgICAgLyogXFxuICAgICAgICAgICAgVGhpcyB2YWx1ZSBnZXRzIHNldCBmcm9tIHRoZSBEZXYgVG9vbHMgcHJlZmVyZW5jZXMsXFxuICAgICAgICAgICAgYW5kIHdlIHVzZSB0aGUgZm9sbG93aW5nIC0tc2l6ZS0qIHZhcmlhYmxlcyB0byBcXG4gICAgICAgICAgICBzY2FsZSB0aGUgcmVsZXZhbnQgZWxlbWVudHMuXFxuXFxuICAgICAgICAgICAgVGhlIHJlYXNvbiB3aHkgd2UgZG9uJ3QgcmVseSBvbiByZW0gdmFsdWVzIGlzIGJlY2F1c2VcXG4gICAgICAgICAgICBpZiBhbiBhcHAgc2V0cyB0aGVpciByb290IGZvbnQgc2l6ZSB0byBzb21ldGhpbmcgdGlueSwgXFxuICAgICAgICAgICAgaXQgZmVlbHMgdW5leHBlY3RlZCB0byBoYXZlIHRoZSBhcHAgcm9vdCBzaXplIGxlYWsgXFxuICAgICAgICAgICAgaW50byBhIE5leHQuanMgc3VyZmFjZS5cXG5cXG4gICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvZGlzY3Vzc2lvbnMvNzY4MTJcXG4gICAgICAgICAgKi9cXG4gICAgICAgICAgLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlOiBcIixcIjtcXG4gICAgICAgICAgLS1zaXplLTE6IGNhbGMoMXB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMjogY2FsYygycHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0zOiBjYWxjKDNweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTQ6IGNhbGMoNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtNTogY2FsYyg1cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS02OiBjYWxjKDZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTc6IGNhbGMoN3B4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtODogY2FsYyg4cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS05OiBjYWxjKDlweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTEwOiBjYWxjKDEwcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0xMTogY2FsYygxMXB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMTI6IGNhbGMoMTJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTEzOiBjYWxjKDEzcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0xNDogY2FsYygxNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMTU6IGNhbGMoMTVweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTE2OiBjYWxjKDE2cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0xNzogY2FsYygxN3B4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMTg6IGNhbGMoMThweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTIwOiBjYWxjKDIwcHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0yMjogY2FsYygyMnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMjQ6IGNhbGMoMjRweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTI2OiBjYWxjKDI2cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0yODogY2FsYygyOHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMzA6IGNhbGMoMzBweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTMyOiBjYWxjKDMycHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS0zNDogY2FsYygzNHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtMzY6IGNhbGMoMzZweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTM4OiBjYWxjKDM4cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS00MDogY2FsYyg0MHB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtNDI6IGNhbGMoNDJweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG4gICAgICAgICAgLS1zaXplLTQ0OiBjYWxjKDQ0cHggLyB2YXIoLS1uZXh0anMtZGV2LXRvb2xzLXNjYWxlKSk7XFxuICAgICAgICAgIC0tc2l6ZS00NjogY2FsYyg0NnB4IC8gdmFyKC0tbmV4dGpzLWRldi10b29scy1zY2FsZSkpO1xcbiAgICAgICAgICAtLXNpemUtNDg6IGNhbGMoNDhweCAvIHZhcigtLW5leHRqcy1kZXYtdG9vbHMtc2NhbGUpKTtcXG5cXG4gICAgICAgICAgQG1lZGlhIHByaW50IHtcXG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuXFxuICAgICAgICBoMSxcXG4gICAgICAgIGgyLFxcbiAgICAgICAgaDMsXFxuICAgICAgICBoNCxcXG4gICAgICAgIGg1LFxcbiAgICAgICAgaDYge1xcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBhIHtcXG4gICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcXG4gICAgICAgICAgJjpob3ZlciB7XFxuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcXG4gICAgICAgICAgfVxcbiAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgXCJdLG58fChuPWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKG4pfX0pKSk7cmV0dXJuIGVmPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHR9ZnVuY3Rpb24gZXAoZSl7dmFyIG49ZS5zY2FsZTtyZXR1cm4oMCx5LmpzeCkoXCJzdHlsZVwiLHtjaGlsZHJlbjplaShlZigpLFN0cmluZyh2b2lkIDA9PT1uPzE6bikpfSl9ZnVuY3Rpb24gZWgoZSl7aWYoXCJcIj09PWUudHJpbSgpKXRocm93IEVycm9yKFwiY2FuJ3QgZGVjb2RlIGVtcHR5IGhleFwiKTt2YXIgbj1wYXJzZUludChlLDE2KTtpZihpc05hTihuKSl0aHJvdyBFcnJvcihcImludmFsaWQgaGV4OiBgXCIuY29uY2F0KGUsXCJgXCIpKTtyZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQobil9dmFyIGVnPS9eX19UVVJCT1BBQ0tfXyhbYS16QS1aMC05XyRdKylfXyQvLGVtPS9odHRwcz86XFwvXFwvW15cXHMvJC4/I10uW15cXHMpJ1wiXSovaSxldj1uZXcgUmVnRXhwKFwiKFwiLmNvbmNhdCgvX19UVVJCT1BBQ0tfX1thLXpBLVowLTlfJF0rX18vZy5zb3VyY2UsXCJ8XFxcXHMrKVwiKSksZWI9ZnVuY3Rpb24oZSl7dmFyIG49ZS50ZXh0LHQ9ZS5tYXRjaGVyLHI9bi5zcGxpdChldik7cmV0dXJuKDAseS5qc3gpKHkuRnJhZ21lbnQse2NoaWxkcmVuOnIubWFwKGZ1bmN0aW9uKGUsbil7aWYoZW0udGVzdChlKSl7dmFyIHI9ZW0uZXhlYyhlKVswXTtyZXR1cm5cImZ1bmN0aW9uXCIhPXR5cGVvZiB0fHx0KHIpPygwLHkuanN4KSh4LkZyYWdtZW50LHtjaGlsZHJlbjooMCx5LmpzeCkoXCJhXCIse2hyZWY6cix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub3JlZmVycmVyIG5vb3BlbmVyXCIsY2hpbGRyZW46ZX0pfSxcImxpbmstXCIuY29uY2F0KG4pKTplfXRyeXt2YXIgbz1mdW5jdGlvbihlKXt2YXIgbj1lLm1hdGNoKGVnKTtpZighbilyZXR1cm4gZTtmb3IodmFyIHQ9blsxXSxyPVwiXCIsbz0wLGE9XCJcIixpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBsPXRbaV07aWYoMD09PW8pXCJfXCI9PT1sP289MTpcIiRcIj09PWw/bz0yOnIrPWw7ZWxzZSBpZigxPT09bylcIl9cIj09PWw/KHIrPVwiIFwiLG89MCk6XCIkXCI9PT1sPyhyKz1cIl9cIixvPTIpOihyKz1sLG89MCk7ZWxzZSBpZigyPT09bylpZigyPT09YS5sZW5ndGgmJihyKz1laChhKSxhPVwiXCIpLFwiX1wiPT09bCl7aWYoXCJcIiE9PWEpdGhyb3cgRXJyb3IoXCJpbnZhbGlkIGhleDogYFwiLmNvbmNhdChhLFwiYFwiKSk7bz0zfWVsc2UgaWYoXCIkXCI9PT1sKXtpZihcIlwiIT09YSl0aHJvdyBFcnJvcihcImludmFsaWQgaGV4OiBgXCIuY29uY2F0KGEsXCJgXCIpKTtvPTB9ZWxzZSBhKz1sO2Vsc2UgaWYoMz09PW8paWYoXCJfXCI9PT1sKXRocm93IEVycm9yKFwiaW52YWxpZCBoZXg6IGBcIi5jb25jYXQoYStsLFwiYFwiKSk7ZWxzZVwiJFwiPT09bD8ocis9ZWgoYSksYT1cIlwiLG89MCk6YSs9bH1yZXR1cm4gcn0oZSk7aWYobyE9PWUpcmV0dXJuKDAseS5qc3hzKShcImlcIix7Y2hpbGRyZW46W1wie1wiLG8sXCJ9XCJdfSxcImlkZW50LVwiLmNvbmNhdChuKSl9Y2F0Y2godCl7cmV0dXJuKDAseS5qc3hzKShcImlcIix7Y2hpbGRyZW46W1wie1wiLGUsXCIgKGRlY29kaW5nIGZhaWxlZDogXCIsXCJcIit0LFwiKVwiLFwifVwiXX0sXCJpZGVudC1cIi5jb25jYXQobikpfXJldHVybigwLHkuanN4KSh4LkZyYWdtZW50LHtjaGlsZHJlbjplfSxcInRleHQtXCIuY29uY2F0KG4pKX0pfSl9LGV5PVsvXndlYnBhY2staW50ZXJuYWw6XFwvXFwvXFwvKFxcKFtcXHctXStcXClcXC8pPy8sL14od2VicGFjazpcXC9cXC9cXC98d2VicGFjazpcXC9cXC8oX05fRVxcLyk/KShcXChbXFx3LV0rXFwpXFwvKT8vXTtmdW5jdGlvbiBleChlKXt2YXIgbj0hMCx0PSExLHI9dm9pZCAwO3RyeXtmb3IodmFyIG8sYT1leVtTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShvPWEubmV4dCgpKS5kb25lKTtuPSEwKXt2YXIgaT1vLnZhbHVlO2lmKGkudGVzdChlKSlyZXR1cm4hMDtlPWUucmVwbGFjZShpLFwiXCIpfX1jYXRjaChlKXt0PSEwLHI9ZX1maW5hbGx5e3RyeXtufHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKHQpdGhyb3cgcn19cmV0dXJuITF9ZnVuY3Rpb24gZXcoZSl7dmFyIG49ITAsdD0hMSxyPXZvaWQgMDt0cnl7Zm9yKHZhciBvLGE9ZXlbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0obz1hLm5leHQoKSkuZG9uZSk7bj0hMCl7dmFyIGk9by52YWx1ZTtlPWUucmVwbGFjZShpLFwiXCIpfX1jYXRjaChlKXt0PSEwLHI9ZX1maW5hbGx5e3RyeXtufHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKHQpdGhyb3cgcn19cmV0dXJuIGV9ZnVuY3Rpb24gZWooZSxuLHQscixvLGEsaSl7dHJ5e3ZhciBsPWVbYV0oaSkscz1sLnZhbHVlfWNhdGNoKGUpe3QoZSk7cmV0dXJufWwuZG9uZT9uKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gZWsoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcyx0PWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT1lLmFwcGx5KG4sdCk7ZnVuY3Rpb24gaShlKXtlaihhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXtlaihhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfX1mdW5jdGlvbiBlQShlLG4pe3ZhciB0LHIsbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119LGk9T2JqZWN0LmNyZWF0ZSgoXCJmdW5jdGlvblwiPT10eXBlb2YgSXRlcmF0b3I/SXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpO3JldHVybiBpLm5leHQ9bCgwKSxpLnRocm93PWwoMSksaS5yZXR1cm49bCgyKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJihpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGk7ZnVuY3Rpb24gbChsKXtyZXR1cm4gZnVuY3Rpb24ocyl7dmFyIGM9W2wsc107aWYodCl0aHJvdyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO2Zvcig7aSYmKGk9MCxjWzBdJiYoYT0wKSksYTspdHJ5e2lmKHQ9MSxyJiYobz0yJmNbMF0/ci5yZXR1cm46Y1swXT9yLnRocm93fHwoKG89ci5yZXR1cm4pJiZvLmNhbGwociksMCk6ci5uZXh0KSYmIShvPW8uY2FsbChyLGNbMV0pKS5kb25lKXJldHVybiBvO3N3aXRjaChyPTAsbyYmKGM9WzImY1swXSxvLnZhbHVlXSksY1swXSl7Y2FzZSAwOmNhc2UgMTpvPWM7YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOmNbMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxyPWNbMV0sYz1bMF07Y29udGludWU7Y2FzZSA3OmM9YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShvPShvPWEudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pJiYoNj09PWNbMF18fDI9PT1jWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1jWzBdJiYoIW98fGNbMV0+b1swXSYmY1sxXTxvWzNdKSl7YS5sYWJlbD1jWzFdO2JyZWFrfWlmKDY9PT1jWzBdJiZhLmxhYmVsPG9bMV0pe2EubGFiZWw9b1sxXSxvPWM7YnJlYWt9aWYobyYmYS5sYWJlbDxvWzJdKXthLmxhYmVsPW9bMl0sYS5vcHMucHVzaChjKTticmVha31vWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9Yz1uLmNhbGwoZSxhKX1jYXRjaChlKXtjPVs2LGVdLHI9MH1maW5hbGx5e3Q9bz0wfWlmKDUmY1swXSl0aHJvdyBjWzFdO3JldHVybnt2YWx1ZTpjWzBdP2NbMV06dm9pZCAwLGRvbmU6ITB9fX19ZnVuY3Rpb24gZU8oZSxuKXt2YXIgdDtyZXR1cm5cImZpbGU6Ly9cIj09PWUuZmlsZXx8KG51bGw9PSh0PWUuZmlsZSk/dm9pZCAwOnQubWF0Y2goL2h0dHBzPzpcXC9cXC8vKSk/UHJvbWlzZS5yZXNvbHZlKHtlcnJvcjohMSxyZWFzb246bnVsbCxleHRlcm5hbDohMCxzb3VyY2VTdGFja0ZyYW1lOmUsb3JpZ2luYWxTdGFja0ZyYW1lOm51bGwsb3JpZ2luYWxDb2RlRnJhbWU6bnVsbCxpZ25vcmVkOiEwfSk6ZWsoZnVuY3Rpb24oKXt2YXIgdCxyO3JldHVybiBlQSh0aGlzLGZ1bmN0aW9uKG8pe2lmKFwicmVqZWN0ZWRcIj09PW4uc3RhdHVzKXRocm93IEVycm9yKG4ucmVhc29uKTtyZXR1cm5bMix7ZXJyb3I6ITEscmVhc29uOm51bGwsZXh0ZXJuYWw6ITEsc291cmNlU3RhY2tGcmFtZTplLG9yaWdpbmFsU3RhY2tGcmFtZToocj1uLnZhbHVlKS5vcmlnaW5hbFN0YWNrRnJhbWUsb3JpZ2luYWxDb2RlRnJhbWU6ci5vcmlnaW5hbENvZGVGcmFtZXx8bnVsbCxpZ25vcmVkOihudWxsPT0odD1yLm9yaWdpbmFsU3RhY2tGcmFtZSk/dm9pZCAwOnQuaWdub3JlZCl8fCExfV19KX0pKCkuY2F0Y2goZnVuY3Rpb24obil7dmFyIHQscjtyZXR1cm57ZXJyb3I6ITAscmVhc29uOm51bGwhPShyPW51bGwhPSh0PW51bGw9PW4/dm9pZCAwOm4ubWVzc2FnZSk/dDpudWxsPT1uP3ZvaWQgMDpuLnRvU3RyaW5nKCkpP3I6XCJVbmtub3duIEVycm9yXCIsZXh0ZXJuYWw6ITEsc291cmNlU3RhY2tGcmFtZTplLG9yaWdpbmFsU3RhY2tGcmFtZTpudWxsLG9yaWdpbmFsQ29kZUZyYW1lOm51bGwsaWdub3JlZDohMX19KX1mdW5jdGlvbiBlQyhlLG4sdCl7cmV0dXJuIGVrKGZ1bmN0aW9uKCl7dmFyIHIsbyxhLGk7cmV0dXJuIGVBKHRoaXMsZnVuY3Rpb24obCl7c3dpdGNoKGwubGFiZWwpe2Nhc2UgMDpyPXtmcmFtZXM6ZSxpc1NlcnZlcjpcInNlcnZlclwiPT09bixpc0VkZ2VTZXJ2ZXI6XCJlZGdlLXNlcnZlclwiPT09bixpc0FwcERpcmVjdG9yeTp0fSxvPXZvaWQgMCxhPXZvaWQgMCxsLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBsLnRyeXMucHVzaChbMSwzLCw0XSksWzQsZmV0Y2goXCIvX19uZXh0anNfb3JpZ2luYWwtc3RhY2stZnJhbWVzXCIse21ldGhvZDpcIlBPU1RcIixib2R5OkpTT04uc3RyaW5naWZ5KHIpfSldO2Nhc2UgMjpyZXR1cm4gbz1sLnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGE9bC5zZW50KCkrXCJcIixbMyw0XTtjYXNlIDQ6aWYoIShvJiZvLm9rJiYyMDQhPT1vLnN0YXR1cykpcmV0dXJuWzMsNl07cmV0dXJuWzQsby5qc29uKCldO2Nhc2UgNTpyZXR1cm4gaT1sLnNlbnQoKSxbMixQcm9taXNlLmFsbChlLm1hcChmdW5jdGlvbihlLG4pe3JldHVybiBlTyhlLGlbbl0pfSkpXTtjYXNlIDY6aWYoIW8pcmV0dXJuWzMsOF07cmV0dXJuWzQsby50ZXh0KCldO2Nhc2UgNzphPWwuc2VudCgpLGwubGFiZWw9ODtjYXNlIDg6cmV0dXJuWzIsUHJvbWlzZS5hbGwoZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGVPKGUse3N0YXR1czpcInJlamVjdGVkXCIscmVhc29uOlwiRmFpbGVkIHRvIGZldGNoIHRoZSBvcmlnaW5hbCBzdGFjayBmcmFtZXMgXCIuY29uY2F0KGE/XCI6IFwiLmNvbmNhdChhKTpcIlwiKX0pfSkpXX19KX0pKCl9ZnVuY3Rpb24gZVMoZSl7aWYoIWUuZmlsZSlyZXR1cm5cIlwiO3ZhciBuPWV4KGUuZmlsZSksdD1cIlwiO2lmKG4pdD1ldyhlLmZpbGUpO2Vsc2UgdHJ5e3ZhciByLG89bmV3IFVSTChlLmZpbGUpLGE9XCJcIjsobnVsbD09KHI9Z2xvYmFsVGhpcy5sb2NhdGlvbik/dm9pZCAwOnIub3JpZ2luKSE9PW8ub3JpZ2luJiYoXCJudWxsXCI9PT1vLm9yaWdpbj9hKz1vLnByb3RvY29sOmErPW8ub3JpZ2luKSxhKz1vLnBhdGhuYW1lLHQ9ZXcoYSl9Y2F0Y2gobil7dD1ldyhlLmZpbGUpfXJldHVybiFleChlLmZpbGUpJiZudWxsIT1lLmxpbmVOdW1iZXImJnQmJlwiPGFub255bW91cz5cIiE9PWUuZmlsZSYmKG51bGwhPWUuY29sdW1uP3QrPVwiIChcIi5jb25jYXQoZS5saW5lTnVtYmVyLFwiOlwiKS5jb25jYXQoZS5jb2x1bW4sXCIpXCIpOnQrPVwiIChcIi5jb25jYXQoZS5saW5lTnVtYmVyLFwiKVwiKSksdH1mdW5jdGlvbiBlRSgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxuPWUuZmlsZSx0PWUubGluZU51bWJlcixyPWUuY29sdW1uO3JldHVybigwLHgudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7aWYobnVsbCE9biYmbnVsbCE9dCYmbnVsbCE9cil7dmFyIGU9bmV3IFVSTFNlYXJjaFBhcmFtcztlLmFwcGVuZChcImZpbGVcIixuKSxlLmFwcGVuZChcImxpbmVOdW1iZXJcIixTdHJpbmcodCkpLGUuYXBwZW5kKFwiY29sdW1uXCIsU3RyaW5nKHIpKSxzZWxmLmZldGNoKFwiXCIuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEh8fFwiXCIsXCIvX19uZXh0anNfbGF1bmNoLWVkaXRvcj9cIikuY29uY2F0KGUudG9TdHJpbmcoKSkpLnRoZW4oZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKGUpe2NvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBvcGVuIGZpbGUgXCInLmNvbmNhdChuLFwiIChcIikuY29uY2F0KHQsXCI6XCIpLmNvbmNhdChyLCcpXCIgaW4geW91ciBlZGl0b3IuIENhdXNlOicpLGUpfSl9fSxbbix0LHJdKX1mdW5jdGlvbiBlXyhlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gZVAoZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIGV6KGUpe3JldHVybigwLHkuanN4KShcInN2Z1wiLGVQKGVfKHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJub25lXCJ9LGUpLHtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixkOlwiTTExLjUgOS43NVYxMS4yNUMxMS41IDExLjM4ODEgMTEuMzg4MSAxMS41IDExLjI1IDExLjVINC43NUM0LjYxMTkzIDExLjUgNC41IDExLjM4ODEgNC41IDExLjI1TDQuNSA0Ljc1QzQuNSA0LjYxMTkzIDQuNjExOTMgNC41IDQuNzUgNC41SDYuMjVIN1YzSDYuMjVINC43NUMzLjc4MzUgMyAzIDMuNzgzNSAzIDQuNzVWMTEuMjVDMyAxMi4yMTY1IDMuNzgzNSAxMyA0Ljc1IDEzSDExLjI1QzEyLjIxNjUgMTMgMTMgMTIuMjE2NSAxMyAxMS4yNVY5Ljc1VjlIMTEuNVY5Ljc1Wk04LjUgM0g5LjI1SDEyLjI0OTVDMTIuNjYzNyAzIDEyLjk5OTUgMy4zMzU3OSAxMi45OTk1IDMuNzVWNi43NVY3LjVIMTEuNDk5NVY2Ljc1VjUuNTYwNjZMOC41MzAzMyA4LjUyOTc4TDggOS4wNjAxMUw2LjkzOTM0IDcuOTk5NDVMNy40Njk2NyA3LjQ2OTEyTDEwLjQzODggNC41SDkuMjVIOC41VjNaXCJ9KX0pKX1mdW5jdGlvbiBlTChlKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIixlUChlXyh7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGhlaWdodDpcIjE2XCIsc3Ryb2tlTGluZWpvaW46XCJyb3VuZFwiLHZpZXdCb3g6XCItNCAtNCAyNCAyNFwiLHdpZHRoOlwiMTZcIn0sZSkse2NoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk04LjU1ODQ2IDJINy40NDE0OEwxLjg4OTc1IDEzLjVIMTQuMTEwMkw4LjU1ODQ2IDJaTTkuOTA5MjkgMS4zNDc4OEM5LjY1OTAyIDAuODI5NDU2IDkuMTM0MTMgMC41IDguNTU4NDYgMC41SDcuNDQxNDhDNi44NjU4MSAwLjUgNi4zNDA5MiAwLjgyOTQ1NCA2LjA5MDY1IDEuMzQ3ODdMMC4xOTI2MDggMTMuNTY1M0MtMC4xMjc5NDMgMTQuMjI5MyAwLjM1NTgzNSAxNSAxLjA5MzE2IDE1SDE0LjkwNjhDMTUuNjQ0MSAxNSAxNi4xMjc5IDE0LjIyOTMgMTUuODA3MyAxMy41NjUzTDkuOTA5MjkgMS4zNDc4OFpNOC43NDk5NyA0Ljc1VjUuNVY4VjguNzVINy4yNDk5N1Y4VjUuNVY0Ljc1SDguNzQ5OTdaTTcuOTk5OTcgMTJDOC41NTIyNiAxMiA4Ljk5OTk3IDExLjU1MjMgOC45OTk5NyAxMUM4Ljk5OTk3IDEwLjQ0NzcgOC41NTIyNiAxMCA3Ljk5OTk3IDEwQzcuNDQ3NjkgMTAgNi45OTk5NyAxMC40NDc3IDYuOTk5OTcgMTFDNi45OTk5NyAxMS41NTIzIDcuNDQ3NjkgMTIgNy45OTk5NyAxMlpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pKX1mdW5jdGlvbiBlVChlKXt2YXIgbj1lLmxhbmc7aWYoIW4pcmV0dXJuKDAseS5qc3gpKGVCLHt9KTtzd2l0Y2gobi50b0xvd2VyQ2FzZSgpKXtjYXNlXCJqc3hcIjpjYXNlXCJ0c3hcIjpyZXR1cm4oMCx5LmpzeCkoZU0se30pO2Nhc2VcInRzXCI6Y2FzZVwidHlwZXNjcmlwdFwiOnJldHVybigwLHkuanN4KShlRCx7fSk7Y2FzZVwiamF2YXNjcmlwdFwiOmNhc2VcImpzXCI6Y2FzZVwibWpzXCI6cmV0dXJuKDAseS5qc3gpKGVOLHt9KTtjYXNlXCJqc29uXCI6cmV0dXJuKDAseS5qc3gpKGVSLHt9KTtkZWZhdWx0OnJldHVybigwLHkuanN4KShlQix7fSl9fWZ1bmN0aW9uIGVSKCl7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIse2NsaXBSdWxlOlwiZXZlbm9kZFwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxMzIxLjQ1IDEzMzMuMzNcIix3aWR0aDpcIjE2XCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTIyMS4zNyA2MTguNDRoNzU3Ljk0VjQwNS4xNUg3NTUuMTRjLTIzLjUgMC01Ni4zMi0xMi43NC03MS44Mi0yOC4yNC0xNS41LTE1LjUtMjUtNDMuNDctMjUtNjYuOTdWODIuODlIODguMzljLTEuOTkgMC0zLjQ5IDEtNC40OSAyLTEuNSAxLTIgMi41LTIgNC41djExNTUuMDRjMCAxLjUgMSAzLjUgMiA0LjUgMSAxLjQ5IDMgMS45OSA0LjQ5IDEuOTlIOTcyLjhjMiAwIDEuODktLjk5IDIuODktMS45OSAxLjUtMSAzLjYxLTMgMy42MS00LjV2LTEyMS4wOUgyMjEuMzZjLTQ0Ljk2IDAtODItMzYuOS04Mi04MS45OVY3MDAuNDRjMC00NS4xIDM2LjktODIgODItODJ6bTEyNi41MSAxMTcuNDdoNzUuMjR2MTQ2LjYxYzAgMzAuNzktMi40NCA1NC4yMy03LjMzIDcwLjMxLTQuOTIgMTYuMDMtMTQuOCAyOS42Ny0yOS42NSA0MC44NS0xNC44NiAxMS4xMi0zMy45MSAxNi43Mi01Ny4wNSAxNi43Mi0yNC41MyAwLTQzLjUxLTMuNzEtNTYuOTQtMTEuMDYtMTMuNS03LjM2LTIzLjg5LTE4LjEtMzEuMjMtMzIuMy03LjM1LTE0LjE0LTExLjY5LTMxLjY3LTEyLjk5LTUyLjUzbDcxLjUtMTAuODFjLjExIDExLjgxIDEuMDcgMjAuNjEgMi44MSAyNi4zMyAxLjc2IDUuNzggNC43NSAxMC4zNyA5IDEzLjk1IDIuODcgMi4zMyA2Ljk0IDMuNDYgMTIuMjUgMy40NiA4LjQgMCAxNC41OC0zLjQ2IDE4LjUzLTEwLjM3IDMuOS02LjkyIDUuODctMTguNiA1Ljg3LTM1VjczNS45MnptMTEyLjc3IDE4MC42N2w3MS4xNy00Ljk3YzEuNTQgMTIuODEgNC42OSAyMi42MiA5LjQ0IDI5LjI4IDcuNzQgMTAuODggMTguNzQgMTYuMzQgMzMuMDkgMTYuMzQgMTAuNjggMCAxOC45My0yLjc2IDI0LjY4LTguMzYgNS44MS01LjU4IDguNy0xMi4wNyA4LjctMTkuNDEgMC02Ljk3LTIuNzEtMTMuMjYtOC4yLTE4Ljc5LTUuNDctNS41My0xOC4yMy0xMC42OC0zOC4yOC0xNS42NS0zMi44OS04LjE3LTU2LjI3LTE5LjEtNzAuMjYtMzIuNzQtMTQuMTItMTMuNTctMjEuMTgtMzAuOTItMjEuMTgtNTIuMDMgMC0xMy44MyAzLjYxLTI2Ljg5IDEwLjg1LTM5LjIxIDcuMjItMTIuMzggMTguMDctMjIuMDYgMzIuNTktMjkuMDkgMTQuNTItNy4wNCAzNC40LTEwLjU2IDU5LjY1LTEwLjU2IDMxIDAgNTQuNjIgNi40MSA3MC44OCAxOS4yOSAxNi4yOCAxMi44MSAyNS45MiAzMy4yNCAyOS4wNCA2MS4yN2wtNzAuNSA0LjY1Yy0xLjg3LTEyLjI1LTUuODEtMjEuMTctMTEuODEtMjYuNy02LjA1LTUuNi0xNC4zNS04LjM2LTI0LjktOC4zNi04LjcxIDAtMTUuMzEgMi4wNy0xOS43MyA2LjE2LTQuNCA0LjA5LTYuNTkgOS4xMi02LjU5IDE1LjAyIDAgNC4yNyAxLjgxIDguMTEgNS4zNyAxMS41NyAzLjQ1IDMuNTkgMTEuOCA2Ljg1IDI1LjAyIDkuOTMgMzIuNzUgNy44NiA1Ni4yIDE1Ljg0IDcwLjMxIDIzLjg3IDE0LjE4IDguMDUgMjQuNTIgMTcuOTggMzAuOTYgMjkuOTIgNi40NCAxMS44OCA5LjY2IDI1LjIgOS42NiAzOS45NiAwIDE3LjI5LTQuMyAzMy4yNC0xMi44OCA0Ny44OS04LjYzIDE0LjU4LTIwLjYxIDI1LjctMzYuMDggMzMuMjQtMTUuNDEgNy41NC0zNC44NSAxMS4zMS01OC4zMyAxMS4zMS00MS4yNCAwLTY5LjgxLTguODYtODUuNjgtMjYuNTItMTUuODgtMTcuNjUtMjQuODUtNDAuMDktMjYuOTYtNjcuM3ptMjQ4Ljc0LTQ1LjVjMC00NC4wNSAxMS4wMi03OC4zNiAzMy4wOS0xMDIuODcgMjIuMDktMjQuNTcgNTIuODItMzYuODIgOTIuMjQtMzYuODIgNDAuMzggMCA3MS41IDEyLjA3IDkzLjM0IDM2LjEzIDIxLjg2IDI0LjEzIDMyLjc3IDU3Ljk0IDMyLjc3IDEwMS4zNyAwIDMxLjU0LTQuNzUgNTcuMzYtMTQuMyA3Ny41NC05LjU0IDIwLjE4LTIzLjM3IDM1Ljg5LTQxLjQgNDcuMTMtMTguMDcgMTEuMjQtNDAuNTUgMTYuODQtNjcuNDggMTYuODQtMjcuMzMgMC00OS45OS00LjgzLTY3Ljk0LTE0LjUyLTE3LjkyLTkuNzQtMzIuNDktMjUuMDctNDMuNjItNDYuMDYtMTEuMTMtMjAuOTItMTYuNzItNDcuMTktMTYuNzItNzguNzR6bTc0Ljg5LjE5YzAgMjcuMjEgNC41NyA0Ni44MSAxMy42OCA1OC42OCA5LjEzIDExLjg4IDIxLjU3IDE3Ljg1IDM3LjI2IDE3Ljg1IDE2LjEgMCAyOC42NS01Ljg0IDM3LjQ1LTE3LjQ3IDguODctMTEuNjggMTMuMjgtMzIuNTQgMTMuMjgtNjIuNzcgMC0yNS4zOS00LjYzLTQzLjkyLTEzLjg0LTU1LjYxLTkuMjYtMTEuNzYtMjEuNzUtMTcuNi0zNy41Ni0xNy42LTE1LjEzIDAtMjcuMzQgNS45Ny0zNi40OSAxNy44NS05LjIxIDExLjg4LTEzLjc4IDMxLjYxLTEzLjc4IDU5LjA3em0yMDkuMDgtMTM1LjM2aDY5Ljk5bDkwLjk4IDE0OS4wNVY3MzUuOTFoNzAuODN2MjY5Ljk2aC03MC44M2wtOTAuNDgtMTQ4LjI0djE0OC4yNGgtNzAuNDlWNzM1Ljkxem02Ny43MS0xMTcuNDdoMTc4LjM3YzQ1LjEgMCA4MiAzNy4wNCA4MiA4MnYzNDAuOTFjMCA0NC45Ni0zNy4wMyA4MS45OS04MiA4MS45OWgtMTc4LjM3djE0N2MwIDE3LjUtNi45OSAzMi45OS0xOC41IDQ0LjUtMTEuNSAxMS40OS0yNyAxOC41LTQ0LjUgMTguNUg2Mi45N2MtMTcuNSAwLTMyLjk5LTctNDQuNS0xOC41LTExLjQ5LTExLjUtMTguNS0yNy0xOC41LTQ0LjVWNjMuNDljMC0xNy41IDctMzMgMTguNS00NC41UzQ1Ljk3LjQ5IDYyLjk3LjQ5SDcwMC4xYzEuNS0uNSAzLS41IDQuNS0uNSA3IDAgMTQgMyAxOSA3LjQ5aDFjMSAuNSAxLjUgMSAyLjUgMmwzMjUuNDYgMzI5LjQ3YzUuNSA1LjUgOS41IDEzIDkuNSAyMS41IDAgMi41LS41IDQuNS0xIDd2MjUwLjk4ek03MzIuNjEgMzAzLjQ3Vjk2Ljk5bDIzMi40OCAyMzUuNDdINzYxLjZjLTcuOTkgMC0xNC45OS0zLjUtMjAuNS04LjQ5LTQuOTktNS04LjQ5LTEyLjUtOC40OS0yMC41elwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gZU4oKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7aGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDUwIDUwXCIsd2lkdGg6XCIxNlwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNIDQzLjMzNTkzOCA0IEwgNi42Njc5NjkgNCBDIDUuMTk1MzEzIDQgNCA1LjE5NTMxMyA0IDYuNjY3OTY5IEwgNCA0My4zMzIwMzEgQyA0IDQ0LjgwNDY4OCA1LjE5NTMxMyA0NiA2LjY2Nzk2OSA0NiBMIDQzLjMzMjAzMSA0NiBDIDQ0LjgwNDY4OCA0NiA0NiA0NC44MDQ2ODggNDYgNDMuMzM1OTM4IEwgNDYgNi42Njc5NjkgQyA0NiA1LjE5NTMxMyA0NC44MDQ2ODggNCA0My4zMzU5MzggNCBaIE0gMjcgMzYuMTgzNTk0IEMgMjcgNDAuMTc5Njg4IDI0LjY1NjI1IDQyIDIxLjIzNDM3NSA0MiBDIDE4LjE0MDYyNSA0MiAxNS45MTAxNTYgMzkuOTI1NzgxIDE1IDM4IEwgMTguMTQ0NTMxIDM2LjA5NzY1NiBDIDE4Ljc1IDM3LjE3MTg3NSAxOS42NzE4NzUgMzggMjEgMzggQyAyMi4yNjk1MzEgMzggMjMgMzcuNTAzOTA2IDIzIDM1LjU3NDIxOSBMIDIzIDIzIEwgMjcgMjMgWiBNIDM1LjY3NTc4MSA0MiBDIDMyLjEzMjgxMyA0MiAzMC4xMjEwOTQgNDAuMjE0ODQ0IDI5IDM4IEwgMzIgMzYgQyAzMi44MTY0MDYgMzcuMzM1OTM4IDMzLjcwNzAzMSAzOC42MTMyODEgMzUuNTg5ODQ0IDM4LjYxMzI4MSBDIDM3LjE3MTg3NSAzOC42MTMyODEgMzggMzcuODI0MjE5IDM4IDM2LjczMDQ2OSBDIDM4IDM1LjQyNTc4MSAzNy4xNDA2MjUgMzQuOTYwOTM4IDM1LjQwMjM0NCAzNC4xOTkyMTkgTCAzNC40NDkyMTkgMzMuNzg5MDYzIEMgMzEuNjk1MzEzIDMyLjYxNzE4OCAyOS44NjMyODEgMzEuMTQ4NDM4IDI5Ljg2MzI4MSAyOC4wMzkwNjMgQyAyOS44NjMyODEgMjUuMTc5Njg4IDMyLjA0Njg3NSAyMyAzNS40NTMxMjUgMjMgQyAzNy44Nzg5MDYgMjMgMzkuNjIxMDk0IDIzLjg0Mzc1IDQwLjg3ODkwNiAyNi4wNTQ2ODggTCAzNy45MTAxNTYgMjcuOTY0ODQ0IEMgMzcuMjUzOTA2IDI2Ljc4OTA2MyAzNi41NTA3ODEgMjYuMzI4MTI1IDM1LjQ1MzEyNSAyNi4zMjgxMjUgQyAzNC4zMzU5MzggMjYuMzI4MTI1IDMzLjYyODkwNiAyNy4wMzkwNjMgMzMuNjI4OTA2IDI3Ljk2NDg0NCBDIDMzLjYyODkwNiAyOS4xMDkzNzUgMzQuMzM1OTM4IDI5LjU3MDMxMyAzNS45NzI2NTYgMzAuMjgxMjUgTCAzNi45MjU3ODEgMzAuNjkxNDA2IEMgNDAuMTcxODc1IDMyLjA3ODEyNSA0MiAzMy40OTYwOTQgNDIgMzYuNjgzNTk0IEMgNDIgNDAuMTE3MTg4IDM5LjMwMDc4MSA0MiAzNS42NzU3ODEgNDIgWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gZUQoKXtyZXR1cm4oMCx5LmpzeHMpKFwic3ZnXCIse2ZpbGw6XCJub25lXCIsaGVpZ2h0OlwiMTRcIix2aWV3Qm94OlwiMCAwIDUxMiA1MTJcIix3aWR0aDpcIjE0XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJyZWN0XCIse2ZpbGw6XCJjdXJyZW50Q29sb3JcIixoZWlnaHQ6XCI1MTJcIixyeDpcIjUwXCIsd2lkdGg6XCI1MTJcIn0pLCgwLHkuanN4KShcInJlY3RcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGhlaWdodDpcIjUxMlwiLHJ4OlwiNTBcIix3aWR0aDpcIjUxMlwifSksKDAseS5qc3gpKFwicGF0aFwiLHtjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwibTMxNi45MzkgNDA3LjQyNHY1MC4wNjFjOC4xMzggNC4xNzIgMTcuNzYzIDcuMyAyOC44NzUgOS4zODZzMjIuODIzIDMuMTI5IDM1LjEzNSAzLjEyOWMxMS45OTkgMCAyMy4zOTctMS4xNDcgMzQuMTk2LTMuNDQyIDEwLjc5OS0yLjI5NCAyMC4yNjgtNi4wNzUgMjguNDA2LTExLjM0MiA4LjEzOC01LjI2NiAxNC41ODEtMTIuMTUgMTkuMzI4LTIwLjY1czcuMTIxLTE5LjAwNyA3LjEyMS0zMS41MjJjMC05LjA3NC0xLjM1Ni0xNy4wMjYtNC4wNjktMjMuODU3cy02LjYyNS0xMi45MDYtMTEuNzM4LTE4LjIyNWMtNS4xMTItNS4zMTktMTEuMjQyLTEwLjA5MS0xOC4zODktMTQuMzE1cy0xNS4yMDctOC4yMTMtMjQuMTgtMTEuOTY3Yy02LjU3My0yLjcxMi0xMi40NjgtNS4zNDUtMTcuNjg1LTcuOS01LjIxNy0yLjU1Ni05LjY1MS01LjE2My0xMy4zMDMtNy44MjItMy42NTItMi42Ni02LjQ2OS01LjQ3Ni04LjQ1MS04LjQ0OC0xLjk4Mi0yLjk3My0yLjk3NC02LjMzNi0yLjk3NC0xMC4wOTEgMC0zLjQ0MS44ODctNi41NDQgMi42NjEtOS4zMDhzNC4yNzgtNS4xMzYgNy41MTItNy4xMThjMy4yMzUtMS45ODEgNy4xOTktMy41MiAxMS44OTQtNC42MTUgNC42OTYtMS4wOTUgOS45MTItMS42NDIgMTUuNjUxLTEuNjQyIDQuMTczIDAgOC41ODEuMzEzIDEzLjIyNC45MzggNC42NDMuNjI2IDkuMzEyIDEuNTkxIDE0LjAwOCAyLjg5NCA0LjY5NSAxLjMwNCA5LjI1OSAyLjk0NyAxMy42OTQgNC45MjggNC40MzQgMS45ODIgOC41MjkgNC4yNzYgMTIuMjg1IDYuODg0di00Ni43NzZjLTcuNjE2LTIuOTItMTUuOTM3LTUuMDg0LTI0Ljk2Mi02LjQ5MnMtMTkuMzgxLTIuMTEyLTMxLjA2Ni0yLjExMmMtMTEuODk1IDAtMjMuMTYzIDEuMjc4LTMzLjgwNSAzLjgzM3MtMjAuMDA2IDYuNTQ0LTI4LjA5MyAxMS45NjdjLTguMDg2IDUuNDI0LTE0LjQ3NiAxMi4zMzMtMTkuMTcxIDIwLjcyOS00LjY5NSA4LjM5NS03LjA0MyAxOC40MzMtNy4wNDMgMzAuMTE0IDAgMTQuOTE0IDQuMzA0IDI3LjYzOCAxMi45MTIgMzguMTcyIDguNjA3IDEwLjUzMyAyMS42NzUgMTkuNDUgMzkuMjA0IDI2Ljc1MSA2Ljg4NiAyLjgxNiAxMy4zMDMgNS41NzkgMTkuMjUgOC4yOTFzMTEuMDg2IDUuNTI4IDE1LjQxNSA4LjQ0OGM0LjMzIDIuOTIgNy43NDcgNi4xMDEgMTAuMjUyIDkuNTQzIDIuNTA0IDMuNDQxIDMuNzU2IDcuMzUyIDMuNzU2IDExLjczMyAwIDMuMjMzLS43ODMgNi4yMzEtMi4zNDggOC45OTVzLTMuOTM5IDUuMTYyLTcuMTIxIDcuMTk2LTcuMTQ3IDMuNjI0LTExLjg5NCA0Ljc3MWMtNC43NDggMS4xNDgtMTAuMzAzIDEuNzIxLTE2LjY2OCAxLjcyMS0xMC44NTEgMC0yMS41OTctMS45MDMtMzIuMjQtNS43MS0xMC42NDItMy44MDYtMjAuNTAyLTkuNTE2LTI5LjU3OS0xNy4xM3ptLTg0LjE1OS0xMjMuMzQyaDY0LjIydi00MS4wODJoLTE3OXY0MS4wODJoNjMuOTA2djE4Mi45MThoNTAuODc0elwiLGZpbGw6XCJ2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMClcIixmaWxsUnVsZTpcImV2ZW5vZGRcIn0pXX0pfWZ1bmN0aW9uIGVCKCl7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxN1wiLGZpbGw6XCJub25lXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLGNoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0xNC41IDd2N2EyLjUgMi41IDAgMCAxLTIuNSAyLjVINEEyLjUgMi41IDAgMCAxIDEuNSAxNFYuNWg3LjU4NmExIDEgMCAwIDEgLjcwNy4yOTNsNC40MTQgNC40MTRhMSAxIDAgMCAxIC4yOTMuNzA3Vjd6TTEzIDd2N2ExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVYyaDV2NWg1ek05LjUgMi42MjFWNS41aDIuODc5TDkuNSAyLjYyMXpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pfWZ1bmN0aW9uIGVNKCl7cmV0dXJuKDAseS5qc3hzKShcInN2Z1wiLHtoZWlnaHQ6XCIxNlwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsd2lkdGg6XCIxNlwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJnXCIse2NsaXBQYXRoOlwidXJsKCNmaWxlX3JlYWN0X2NsaXAwXzg3Ml8zMTgzKVwiLGNoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk00LjUgMS45Mzc4MkM0LjcwMTI5IDEuODIxNjEgNC45OTQ3MiAxLjc4NTggNS40MTMxNSAxLjkxMDUzQzUuODMyOTggMi4wMzU2NyA2LjMzMTM5IDIuMzEwNzMgNi44NzYyNyAyLjczOTQ4QzcuMDExMzYgMi44NDU3OCA3LjE0ODAzIDIuOTYwNTIgNy4yODU3MyAzLjA4MzMxQzYuODYyMTcgMy41MzQ0NiA2LjQ0MjM5IDQuMDQzNTggNi4wMzc1MiA0LjYwMDkyQzUuMzUyNDMgNC42NzI4OCA0LjcwMTY0IDQuNzgxODYgNC4wOTkxNiA0LjkyMzA5QzQuMDYxNjcgNC43NDI0NCA0LjAzMDY0IDQuNTY2NzEgNC4wMDYxMiA0LjM5NjU2QzMuOTA3MjUgMy43MTAzMSAzLjkxODI1IDMuMTQxMTQgNC4wMTk3OSAyLjcxNDk5QzQuMTIwOTkgMi4yOTAyNSA0LjI5ODcxIDIuMDU0MDQgNC41IDEuOTM3ODJaTTcuNDk0NjYgMS45NTM2MUM3LjY2MjI1IDIuMDg1NDggNy44MzA5MiAyLjIyODA0IDcuOTk5OTkgMi4zODA2N0M4LjE2OTA2IDIuMjI4MDQgOC4zMzc3MyAyLjA4NTQ4IDguNTA1MzIgMS45NTM2MUM5LjEwOTIxIDEuNDc4NDIgOS43MTk4MiAxLjEyNTQ5IDEwLjMwMTIgMC45NTIyMDJDMTAuODgzOSAwLjc3ODQ5NiAxMS40ODM4IDAuNzczOCAxMiAxLjA3MThDMTIuNTE2MSAxLjM2OTggMTIuODEyIDEuODkxNjkgMTIuOTUzIDIuNDgzMjJDMTMuMDkzNiAzLjA3MzMzIDEzLjA5MzIgMy43Nzg1OCAxMi45ODM2IDQuNTM5MTdDMTIuOTUzMiA0Ljc1MDI0IDEyLjkxNDEgNC45Njc2IDEyLjg2NjUgNS4xOTAzNEMxMy4wODMyIDUuMjYwNDQgMTMuMjkxIDUuMzM1MjQgMTMuNDg5IDUuNDE0NDRDMTQuMjAyNSA1LjY5OTgzIDE0LjgxMzQgNi4wNTIxNyAxNS4yNTQyIDYuNDY4OTlDMTUuNjk2IDYuODg2OCAxNiA3LjQwNCAxNiA4QzE2IDguNTk2IDE1LjY5NiA5LjExMzE5IDE1LjI1NDIgOS41MzEwMUMxNC44MTM0IDkuOTQ3ODMgMTQuMjAyNSAxMC4zMDAyIDEzLjQ4OSAxMC41ODU2QzEzLjI5MSAxMC42NjQ4IDEzLjA4MzIgMTAuNzM5NiAxMi44NjY1IDEwLjgwOTdDMTIuOTE0MSAxMS4wMzI0IDEyLjk1MzIgMTEuMjQ5OCAxMi45ODM3IDExLjQ2MDhDMTMuMDkzMiAxMi4yMjE0IDEzLjA5MzYgMTIuOTI2NyAxMi45NTMgMTMuNTE2OEMxMi44MTIgMTQuMTA4MyAxMi41MTYxIDE0LjYzMDIgMTIgMTQuOTI4MkMxMS40ODM5IDE1LjIyNjIgMTAuODgzOSAxNS4yMjE1IDEwLjMwMTIgMTUuMDQ3OEM5LjcxOTg0IDE0Ljg3NDUgOS4xMDkyMyAxNC41MjE2IDguNTA1MzQgMTQuMDQ2NEM4LjMzNzc1IDEzLjkxNDUgOC4xNjkwNiAxMy43NzE5IDcuOTk5OTkgMTMuNjE5M0M3LjgzMDkxIDEzLjc3MTkgNy42NjIyMyAxMy45MTQ1IDcuNDk0NjQgMTQuMDQ2NEM2Ljg5MDc1IDE0LjUyMTYgNi4yODAxNCAxNC44NzQ1IDUuNjk4NzkgMTUuMDQ3OEM1LjExNjA1IDE1LjIyMTUgNC41MTYxMyAxNS4yMjYyIDMuOTk5OTggMTQuOTI4MkMzLjQ4MzgzIDE0LjYzMDIgMy4xODc5NCAxNC4xMDgzIDMuMDQ3IDEzLjUxNjhDMi45MDY0IDEyLjkyNjcgMi45MDY3NCAxMi4yMjE0IDMuMDE2MzIgMTEuNDYwOEMzLjA0NjczIDExLjI0OTggMy4wODU4NiAxMS4wMzI0IDMuMTMzNTEgMTAuODA5N0MyLjkxNjc5IDEwLjczOTUgMi43MDkgMTAuNjY0OCAyLjUxMSAxMC41ODU2QzEuNzk3NTIgMTAuMzAwMiAxLjE4NjU4IDkuOTQ3ODMgMC43NDU4MzMgOS41MzEwMUMwLjMwNDAyOCA5LjExMzE5IDAgOC41OTYgMCA4QzAgNy40MDQgMC4zMDQwMjggNi44ODY4IDAuNzQ1ODMzIDYuNDY4OTlDMS4xODY1OCA2LjA1MjE3IDEuNzk3NTIgNS42OTk4MyAyLjUxMSA1LjQxNDQ0QzIuNzA5IDUuMzM1MjQgMi45MTY4IDUuMjYwNDQgMy4xMzM1MiA1LjE5MDM0QzMuMDg1ODcgNC45Njc2IDMuMDQ2NzUgNC43NTAyNCAzLjAxNjM0IDQuNTM5MTdDMi45MDY3NiAzLjc3ODU4IDIuOTA2NDIgMy4wNzMzMiAzLjA0NzAyIDIuNDgzMjFDMy4xODc5NiAxLjg5MTY5IDMuNDgzODUgMS4zNjk4IDQgMS4wNzE4QzQuNTE2MTUgMC43NzM3OTggNS4xMTYwNyAwLjc3ODQ5NSA1LjY5ODgxIDAuOTUyMjAxQzYuMjgwMTYgMS4xMjU0OSA2Ljg5MDc3IDEuNDc4NDEgNy40OTQ2NiAxLjk1MzYxWk03LjM2NzQ3IDQuNTEwMjVDNy41NzczNSA0LjI1MTk0IDcuNzg4ODEgNC4wMDkyNyA3Ljk5OTk5IDMuNzgzNTZDOC4yMTExNyA0LjAwOTI3IDguNDIyNjMgNC4yNTE5NCA4LjYzMjUxIDQuNTEwMjVDOC40MjM2OSA0LjUwMzQ2IDguMjEyNzQgNC41IDggNC41QzcuNzg3MjUgNC41IDcuNTc2MyA0LjUwMzQ1IDcuMzY3NDcgNC41MTAyNVpNOC43MTQyNSAzLjA4MzMxQzkuMTM3ODEgMy41MzQ0NyA5LjU1NzU5IDQuMDQzNTggOS45NjI0NiA0LjYwMDkyQzEwLjY0NzUgNC42NzI4OCAxMS4yOTgzIDQuNzgxODYgMTEuOTAwOCA0LjkyMzA5QzExLjkzODMgNC43NDI0NCAxMS45NjkzIDQuNTY2NzEgMTEuOTkzOSA0LjM5NjU3QzEyLjA5MjcgMy43MTAzMSAxMi4wODE3IDMuMTQxMTQgMTEuOTgwMiAyLjcxNDk5QzExLjg3OSAyLjI5MDI1IDExLjcwMTMgMi4wNTQwNCAxMS41IDEuOTM3ODJDMTEuMjk4NyAxLjgyMTYxIDExLjAwNTMgMS43ODU4IDEwLjU4NjggMS45MTA1M0MxMC4xNjcgMi4wMzU2OCA5LjY2ODU5IDIuMzEwNzMgOS4xMjM3MSAyLjczOTQ4QzguOTg4NjIgMi44NDU3OCA4Ljg1MTk2IDIuOTYwNTIgOC43MTQyNSAzLjA4MzMxWk04IDUuNUM4LjQ4NDMzIDUuNSA4Ljk1NjM4IDUuNTE4ODUgOS40MTE4OCA1LjU1NDU2QzkuNjcwNTYgNS45MzExOCA5LjkyMjkgNi4zMzA1NiAxMC4xNjUxIDYuNzVDMTAuNDA3MiA3LjE2OTQ0IDEwLjYyNjkgNy41ODc2NiAxMC44MjM3IDcuOTk5OThDMTAuNjI2OSA4LjQxMjMyIDEwLjQwNzIgOC44MzA1NSAxMC4xNjUgOS4yNUM5LjkyMjg4IDkuNjY5NDQgOS42NzA1MyAxMC4wNjg4IDkuNDExODUgMTAuNDQ1NEM4Ljk1NjM2IDEwLjQ4MTIgOC40ODQzMiAxMC41IDggMTAuNUM3LjUxNTY3IDEwLjUgNy4wNDM2MyAxMC40ODEyIDYuNTg4MTMgMTAuNDQ1NEM2LjMyOTQ1IDEwLjA2ODggNi4wNzcxIDkuNjY5NDQgNS44MzQ5NCA5LjI1QzUuNTkyNzcgOC44MzA1NSA1LjM3MzA2IDguNDEyMzIgNS4xNzYyNCA3Ljk5OTk4QzUuMzczMDYgNy41ODc2NSA1LjU5Mjc1IDcuMTY5NDQgNS44MzQ5MiA2Ljc1QzYuMDc3MDggNi4zMzA1NiA2LjMyOTQyIDUuOTMxMTggNi41ODgxIDUuNTU0NTZDNy4wNDM2MSA1LjUxODg0IDcuNTE1NjYgNS41IDggNS41Wk0xMS4wMzExIDYuMjVDMTEuMTM3NSA2LjQzNDIzIDExLjIzOTkgNi42MTg2NCAxMS4zMzg1IDYuODAyODdDMTEuNDU3MiA2LjQ5MTk3IDExLjU2MTYgNi4xODc1MiAxMS42NTE1IDUuODkxNzhDMTEuMzUwNSA1LjgyMTc1IDExLjAzNDYgNS43NTk5NiAxMC43MDYgNS43MDczNkMxMC44MTYzIDUuODg0OCAxMC45MjQ3IDYuMDY1NzYgMTEuMDMxMSA2LjI1Wk0xMS4wMzExIDkuNzVDMTEuMTM3NCA5LjU2NTc2IDExLjIzOTkgOS4zODEzMyAxMS4zMzg1IDkuMTk3MDlDMTEuNDU3MiA5LjUwODAxIDExLjU2MTcgOS44MTI0NiAxMS42NTE1IDEwLjEwODJDMTEuMzUwNSAxMC4xNzgyIDExLjAzNDYgMTAuMjQgMTAuNzA1OSAxMC4yOTI2QzEwLjgxNjIgMTAuMTE1MiAxMC45MjQ3IDkuOTM0MjQgMTEuMDMxMSA5Ljc1Wk0xMS45MjQ5IDcuOTk5OThDMTIuMjA1MSA4LjYyOTI3IDEyLjQzNjIgOS4yNDczOCAxMi42MTUxIDkuODM5NzdDMTIuNzkwMyA5Ljc4MTkxIDEyLjk1OCA5LjcyMDkyIDEzLjExNzYgOS42NTcwOEMxMy43NjE0IDkuMzk5NTggMTQuMjQ4OCA5LjEwNTQ3IDE0LjU2NzEgOC44MDQ0NkMxNC44ODQzIDguNTA0NDUgMTUgOC4yMzI0MyAxNSA4QzE1IDcuNzY3NTcgMTQuODg0MyA3LjQ5NTU1IDE0LjU2NzEgNy4xOTU1NEMxNC4yNDg4IDYuODk0NTMgMTMuNzYxNCA2LjYwMDQyIDEzLjExNzYgNi4zNDI5MkMxMi45NTggNi4yNzkwNyAxMi43OTAzIDYuMjE4MDggMTIuNjE1MSA2LjE2MDIyQzEyLjQzNjIgNi43NTI2IDEyLjIwNTEgNy4zNzA2OSAxMS45MjQ5IDcuOTk5OThaTTkuOTYyNDQgMTEuMzk5MUMxMC42NDc1IDExLjMyNzEgMTEuMjk4MyAxMS4yMTgxIDExLjkwMDggMTEuMDc2OUMxMS45MzgzIDExLjI1NzYgMTEuOTY5NCAxMS40MzMzIDExLjk5MzkgMTEuNjAzNEMxMi4wOTI4IDEyLjI4OTcgMTIuMDgxNyAxMi44NTg5IDExLjk4MDIgMTMuMjg1QzExLjg3OSAxMy43MDk4IDExLjcwMTMgMTMuOTQ2IDExLjUgMTQuMDYyMkMxMS4yOTg3IDE0LjE3ODQgMTEuMDA1MyAxNC4yMTQyIDEwLjU4NjggMTQuMDg5NUMxMC4xNjcgMTMuOTY0MyA5LjY2ODYxIDEzLjY4OTMgOS4xMjM3MyAxMy4yNjA1QzguOTg4NjMgMTMuMTU0MiA4Ljg1MTk2IDEzLjAzOTUgOC43MTQyNCAxMi45MTY3QzkuMTM3OCAxMi40NjU1IDkuNTU3NTggMTEuOTU2NCA5Ljk2MjQ0IDExLjM5OTFaTTguNjMyNDkgMTEuNDg5OEM4LjQyMjYyIDExLjc0ODEgOC4yMTExNiAxMS45OTA3IDcuOTk5OTkgMTIuMjE2NEM3Ljc4ODgxIDExLjk5MDcgNy41NzczNyAxMS43NDgxIDcuMzY3NDkgMTEuNDg5N0M3LjU3NjMxIDExLjQ5NjUgNy43ODcyNiAxMS41IDggMTEuNUM4LjIxMjczIDExLjUgOC40MjM2NyAxMS40OTY1IDguNjMyNDkgMTEuNDg5OFpNNC45Njg5MSA5Ljc1QzUuMDc1MjggOS45MzQyNCA1LjE4Mzc1IDEwLjExNTIgNS4yOTQwNCAxMC4yOTI2QzQuOTY1NCAxMC4yNCA0LjY0OTUxIDEwLjE3ODIgNC4zNDg0NCAxMC4xMDgyQzQuNDM4MzMgOS44MTI0NiA0LjU0Mjc2IDkuNTA4IDQuNjYxNTIgOS4xOTcwOEM0Ljc2MDA1IDkuMzgxMzMgNC44NjI1NCA5LjU2NTc1IDQuOTY4OTEgOS43NVpNNi4wMzc1NCAxMS4zOTkxQzUuMzUyNDQgMTEuMzI3MSA0LjcwMTYzIDExLjIxODEgNC4wOTkxNCAxMS4wNzY5QzQuMDYxNjUgMTEuMjU3NiA0LjAzMDYyIDExLjQzMzMgNC4wMDYxIDExLjYwMzRDMy45MDcyMyAxMi4yODk3IDMuOTE4MjMgMTIuODU4OSA0LjAxOTc3IDEzLjI4NUM0LjEyMDk3IDEzLjcwOTggNC4yOTg2OSAxMy45NDYgNC40OTk5OCAxNC4wNjIyQzQuNzAxMjcgMTQuMTc4NCA0Ljk5NDcgMTQuMjE0MiA1LjQxMzEzIDE0LjA4OTVDNS44MzI5NiAxMy45NjQzIDYuMzMxMzcgMTMuNjg5MyA2Ljg3NjI1IDEzLjI2MDVDNy4wMTEzNSAxMy4xNTQyIDcuMTQ4MDIgMTMuMDM5NSA3LjI4NTczIDEyLjkxNjdDNi44NjIxNyAxMi40NjU1IDYuNDQyNCAxMS45NTY0IDYuMDM3NTQgMTEuMzk5MVpNNC4wNzUwNyA3Ljk5OTk4QzMuNzk0ODQgOC42MjkyNyAzLjU2MzgxIDkuMjQ3MzcgMy4zODQ4OSA5LjgzOTc3QzMuMjA5NjkgOS43ODE5MSAzLjA0MiA5LjcyMDkyIDIuODgyMzkgOS42NTcwOEMyLjIzODY0IDkuMzk5NTggMS43NTEyMyA5LjEwNTQ3IDEuNDMyOTQgOC44MDQ0NkMxLjExNTcxIDguNTA0NDUgMSA4LjIzMjQzIDEgOEMxIDcuNzY3NTcgMS4xMTU3MSA3LjQ5NTU1IDEuNDMyOTQgNy4xOTU1NEMxLjc1MTIzIDYuODk0NTMgMi4yMzg2NCA2LjYwMDQyIDIuODgyMzkgNi4zNDI5MkMzLjA0MiA2LjI3OTA3IDMuMjA5NyA2LjIxODA4IDMuMzg0OSA2LjE2MDIyQzMuNTYzODMgNi43NTI2MSAzLjc5NDg0IDcuMzcwNjkgNC4wNzUwNyA3Ljk5OTk4Wk00LjY2MTUyIDYuODAyODdDNC41NDI3NyA2LjQ5MTk3IDQuNDM4MzUgNi4xODc1MiA0LjM0ODQ2IDUuODkxNzhDNC42NDk1MiA1LjgyMTc1IDQuOTY1MzkgNS43NTk5NiA1LjI5NDAyIDUuNzA3MzZDNS4xODM3MyA1Ljg4NDggNS4wNzUyNiA2LjA2NTc2IDQuOTY4ODkgNi4yNUM0Ljg2MjUzIDYuNDM0MjMgNC43NjAwNSA2LjYxODY0IDQuNjYxNTIgNi44MDI4N1pNOS4yNSA4QzkuMjUgOC42OTAzNiA4LjY5MDM2IDkuMjUgOCA5LjI1QzcuMzA5NjQgOS4yNSA2Ljc1IDguNjkwMzYgNi43NSA4QzYuNzUgNy4zMDk2NSA3LjMwOTY0IDYuNzUgOCA2Ljc1QzguNjkwMzYgNi43NSA5LjI1IDcuMzA5NjUgOS4yNSA4WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSksKDAseS5qc3gpKFwiZGVmc1wiLHtjaGlsZHJlbjooMCx5LmpzeCkoXCJjbGlwUGF0aFwiLHtpZDpcImZpbGVfcmVhY3RfY2xpcDBfODcyXzMxODNcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJyZWN0XCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLGZpbGw6XCJ3aGl0ZVwifSl9KX0pXX0pfXZhciBlST1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9kaXN0L2NvbXBpbGVkL2Fuc2VyL2luZGV4LmpzXCIpLGVIPV9fd2VicGFja19yZXF1aXJlX18ubihlSSksZUY9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpL2luZGV4LmpzXCIpLGVVPV9fd2VicGFja19yZXF1aXJlX18ubihlRik7ZnVuY3Rpb24gZVYoZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfWZ1bmN0aW9uIGVxKGUpe3ZhciBuLHQ9ZS5zdGFja0ZyYW1lLHI9ZS5jb2RlRnJhbWUsbz0oMCx4LnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIGUsbjtyZXR1cm4oZnVuY3Rpb24oZSl7dmFyIG49ZUgoKS5hbnNpVG9Kc29uKGUse2pzb246ITAsdXNlX2NsYXNzZXM6ITAscmVtb3ZlX2VtcHR5OiEwfSksdD1bXSxyPVtdLG89ITAsYT0hMSxpPXZvaWQgMDt0cnl7Zm9yKHZhciBsLHM9bltTeW1ib2wuaXRlcmF0b3JdKCk7IShvPShsPXMubmV4dCgpKS5kb25lKTtvPSEwKXt2YXIgYz1sLnZhbHVlO2lmKFwic3RyaW5nXCI9PXR5cGVvZiBjLmNvbnRlbnQmJmMuY29udGVudC5pbmNsdWRlcyhcIlxcblwiKSlmb3IodmFyIHU9Yy5jb250ZW50LnNwbGl0KFwiXFxuXCIpLGQ9MDtkPHUubGVuZ3RoO2QrKyl7dmFyIGY9dVtkXTtmJiZyLnB1c2goZnVuY3Rpb24oZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfShmdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt9LGMpLHtjb250ZW50OmZ9KSksZDx1Lmxlbmd0aC0xJiYodC5wdXNoKHIpLHI9W10pfWVsc2Ugci5wdXNoKGMpfX1jYXRjaChlKXthPSEwLGk9ZX1maW5hbGx5e3RyeXtvfHxudWxsPT1zLnJldHVybnx8cy5yZXR1cm4oKX1maW5hbGx5e2lmKGEpdGhyb3cgaX19cmV0dXJuIHIubGVuZ3RoPjAmJnQucHVzaChyKSx0fSkoKG49KGU9ci5zcGxpdCgvXFxyP1xcbi9nKSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09L14+PyArXFxkKyArXFx8IFsgXSsvLmV4ZWMoZVUoKShlKSk/bnVsbDovXj4/ICtcXGQrICtcXHwgKCAqKS8uZXhlYyhlVSgpKGUpKX0pLmZpbHRlcihCb29sZWFuKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUucG9wKCl9KS5yZWR1Y2UoZnVuY3Rpb24oZSxuKXtyZXR1cm4gaXNOYU4oZSk/bi5sZW5ndGg6TWF0aC5taW4oZSxuLmxlbmd0aCl9LE5hTikpPjE/ZS5tYXAoZnVuY3Rpb24oZSx0KXtyZXR1cm5+KHQ9ZS5pbmRleE9mKFwifFwiKSk/ZS5zdWJzdHJpbmcoMCx0KStlLnN1YnN0cmluZyh0KS5yZXBsYWNlKFwiXlxcXFwge1wiLmNvbmNhdChuLFwifVwiKSxcIlwiKTplfSkuam9pbihcIlxcblwiKTplLmpvaW4oXCJcXG5cIikpLm1hcChmdW5jdGlvbihlKXt2YXIgbixyLG8sYSxpLGwscyxjLHU7cmV0dXJue2xpbmU6ZSxwYXJzZWRMaW5lOihuPWUscj10LCgobnVsbD09KG89blswXSk/dm9pZCAwOm8uY29udGVudCk9PT1cIj5cInx8KG51bGw9PShhPW5bMF0pP3ZvaWQgMDphLmNvbnRlbnQpPT09XCIgXCIpJiYocz1udWxsPT0obD1uWzFdKXx8bnVsbD09KHU9bC5jb250ZW50KXx8bnVsbD09KGM9dS5yZXBsYWNlKFwifFwiLFwiXCIpKT92b2lkIDA6Yy50cmltKCkpLHtsaW5lTnVtYmVyOnMsaXNFcnJvcmVkTGluZTpzPT09KG51bGw9PShpPXIubGluZU51bWJlcik/dm9pZCAwOmkudG9TdHJpbmcoKSl9KX19KX0sW3IsdF0pLGE9ZUUoe2ZpbGU6dC5maWxlLGxpbmVOdW1iZXI6dC5saW5lTnVtYmVyLGNvbHVtbjp0LmNvbHVtbn0pLGk9bnVsbD09dHx8bnVsbD09KG49dC5maWxlKT92b2lkIDA6bi5zcGxpdChcIi5cIikucG9wKCk7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNvZGVmcmFtZVwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY29kZS1mcmFtZS1oZWFkZXJcIixjaGlsZHJlbjooMCx5LmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWxpbmtcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWljb25cIixjaGlsZHJlbjooMCx5LmpzeCkoZVQse2xhbmc6aX0pfSksKDAseS5qc3hzKShcInNwYW5cIix7XCJkYXRhLXRleHRcIjohMCxjaGlsZHJlbjpbZVModCksXCIgQFwiLFwiIFwiLCgwLHkuanN4KShlYix7dGV4dDp0Lm1ldGhvZE5hbWV9KV19KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWxhYmVsXCI6XCJPcGVuIGluIGVkaXRvclwiLFwiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstc291cmNlLWZpbGVcIjohMCxvbkNsaWNrOmEsY2hpbGRyZW46KDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWljb25cIixcImRhdGEtaWNvblwiOlwicmlnaHRcIixjaGlsZHJlbjooMCx5LmpzeCkoZXose3dpZHRoOjE2LGhlaWdodDoxNn0pfSl9KV19KX0pLCgwLHkuanN4KShcInByZVwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLXByZVwiLGNoaWxkcmVuOigwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWxpbmVzXCIsY2hpbGRyZW46by5tYXAoZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89ZS5saW5lLGE9ZS5wYXJzZWRMaW5lLGk9YS5saW5lTnVtYmVyLGw9YS5pc0Vycm9yZWRMaW5lLHM9e307cmV0dXJuIGkmJihzW1wiZGF0YS1uZXh0anMtY29kZWZyYW1lLWxpbmVcIl09aSksbCYmKHNbXCJkYXRhLW5leHRqcy1jb2RlZnJhbWUtbGluZS0tZXJyb3JlZFwiXT0hMCksKDAseS5qc3gpKFwiZGl2XCIsKHQ9ZVYoe30scykscj1yPXtjaGlsZHJlbjpvLm1hcChmdW5jdGlvbihlLG4pe3JldHVybigwLHkuanN4KShcInNwYW5cIix7c3R5bGU6ZVYoe2NvbG9yOmUuZmc/XCJ2YXIoLS1jb2xvci1cIi5jb25jYXQoZS5mZyxcIilcIik6dm9pZCAwfSxcImJvbGRcIj09PWUuZGVjb3JhdGlvbj97Zm9udFdlaWdodDo1MDB9OlwiaXRhbGljXCI9PT1lLmRlY29yYXRpb24/e2ZvbnRTdHlsZTpcIml0YWxpY1wifTp2b2lkIDApLGNoaWxkcmVuOmUuY29udGVudH0sXCJmcmFtZS1cIi5jb25jYXQobikpfSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMocikpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QocikpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHIsZSkpfSksdCksXCJsaW5lLVwiLmNvbmNhdChuKSl9KX0pfSldfSl9ZnVuY3Rpb24gZVcoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfXZhciBlJD1bXCJbZGF0YS1uZXh0LW1hcmtdXCIsXCJbZGF0YS1pc3N1ZXMtb3Blbl1cIixcIiNuZXh0anMtZGV2LXRvb2xzLW1lbnVcIixcIltkYXRhLW5leHRqcy1lcnJvci1vdmVybGF5LW5hdl1cIixcIltkYXRhLWluZm8tcG9wb3Zlcl1cIixcIltkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1vdmVybGF5XVwiLFwiW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlcl1cIixcIltkYXRhLW5leHRqcy1lcnJvci1vdmVybGF5LWZvb3Rlcl1cIl0sZVo9ZnVuY3Rpb24oZSl7dmFyIG4sdCxyLG8sYSxpLGwscz1lLmNoaWxkcmVuLGM9ZS5jbGFzc05hbWUsdT1lLm9uQ2xvc2UsZD1lW1wiYXJpYS1sYWJlbGxlZGJ5XCJdLGY9ZVtcImFyaWEtZGVzY3JpYmVkYnlcIl0scD0oZS5kaWFsb2dSZXNpemVyUmVmLGZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCIsXCJvbkNsb3NlXCIsXCJhcmlhLWxhYmVsbGVkYnlcIixcImFyaWEtZGVzY3JpYmVkYnlcIixcImRpYWxvZ1Jlc2l6ZXJSZWZcIl0pKSxoPXgudXNlUmVmKG51bGwpLGc9KG49eC51c2VTdGF0ZShcInVuZGVmaW5lZFwiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50Lmhhc0ZvY3VzKCk/XCJkaWFsb2dcIjp2b2lkIDApLHQ9MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShuKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShuLDIpfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBlVyhlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBlVyhlLG4pfX0obix0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksbT1nWzBdLHY9Z1sxXTtyZXR1cm4gcj1oLmN1cnJlbnQsbz1lJCxhPWZ1bmN0aW9uKGUpe3JldHVybiBlLnByZXZlbnREZWZhdWx0KCksbnVsbD09dT92b2lkIDA6dSgpfSx4LnVzZUVmZmVjdChmdW5jdGlvbigpe2lmKG51bGwhPXImJm51bGwhPWEpe3ZhciBlPWZ1bmN0aW9uKGUpeyEoIXJ8fHIuY29udGFpbnMoZS50YXJnZXQpKSYmKG8uc29tZShmdW5jdGlvbihuKXtyZXR1cm4gZS50YXJnZXQuY2xvc2VzdChuKX0pfHxhKGUpKX0sbj1yLmdldFJvb3ROb2RlKCk7cmV0dXJuIG4uYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixlKSxuLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLGUse3Bhc3NpdmU6ITF9KSxmdW5jdGlvbigpe24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixlKSxuLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLGUpfX19LFthLHIsb10pLHgudXNlRWZmZWN0KGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXt2KGRvY3VtZW50Lmhhc0ZvY3VzKCk/XCJkaWFsb2dcIjp2b2lkIDApfTtpZihudWxsIT1oLmN1cnJlbnQpcmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIixlKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIixlKSxmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNcIixlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIixlKX19LFtdKSx4LnVzZUVmZmVjdChmdW5jdGlvbigpe3ZhciBlLG4sdD1oLmN1cnJlbnQscj1udWxsPT10P3ZvaWQgMDp0LmdldFJvb3ROb2RlKCksbz0oZT1yLG51bGwhPShuPVNoYWRvd1Jvb3QpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZuW1N5bWJvbC5oYXNJbnN0YW5jZV0/ISFuW1N5bWJvbC5oYXNJbnN0YW5jZV0oZSk6ZSBpbnN0YW5jZW9mIG4pP251bGw9PXI/dm9pZCAwOnIuYWN0aXZlRWxlbWVudDpudWxsO3JldHVybiBudWxsPT10fHx0LmZvY3VzKCksZnVuY3Rpb24oKXtudWxsPT10fHx0LmJsdXIoKSxudWxsPT1vfHxvLmZvY3VzKCl9fSxbXSksKDAseS5qc3gpKFwiZGl2XCIsKGk9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7cmVmOmgsdGFiSW5kZXg6LTEsXCJkYXRhLW5leHRqcy1kaWFsb2dcIjohMCxyb2xlOm0sXCJhcmlhLWxhYmVsbGVkYnlcIjpkLFwiYXJpYS1kZXNjcmliZWRieVwiOmYsXCJhcmlhLW1vZGFsXCI6XCJ0cnVlXCIsY2xhc3NOYW1lOmMsb25LZXlEb3duOmZ1bmN0aW9uKGUpe1wiRXNjYXBlXCI9PT1lLmtleSYmKG51bGw9PXV8fHUoKSl9fSxwKSxsPWw9e2NoaWxkcmVuOnN9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGksT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QobCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGksZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGwsZSkpfSksaSkpfSxlWT1mdW5jdGlvbihlKXt2YXIgbix0LHI9ZS5jaGlsZHJlbixvPWUuY2xhc3NOYW1lLGE9ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sbi5pbmRleE9mKHQpPj0wfHwob1t0XT1lW3RdKTtyZXR1cm4gb30oZSxuKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLCEobi5pbmRleE9mKHQpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkmJihvW3RdPWVbdF0pfXJldHVybiBvfShlLFtcImNoaWxkcmVuXCIsXCJjbGFzc05hbWVcIl0pO3JldHVybigwLHkuanN4KShcImRpdlwiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe1wiZGF0YS1uZXh0anMtZGlhbG9nLWJvZHlcIjohMCxjbGFzc05hbWU6b30sYSksdD10PXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX0sZVg9ZnVuY3Rpb24oZSl7dmFyIG4sdCxyPWUuY2hpbGRyZW4sbz1lLmNsYXNzTmFtZSxhPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCJdKTtyZXR1cm4oMCx5LmpzeCkoXCJkaXZcIiwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtcImRhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XCI6ITAsY2xhc3NOYW1lOm99LGEpLHQ9dD17Y2hpbGRyZW46cn0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9O2Z1bmN0aW9uIGVLKGUpe3ZhciBuLHQ7cmV0dXJuKDAseS5qc3gpKFwiZGl2XCIsKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyXCI6ITB9LGUpLHQ9dD17Y2hpbGRyZW46ZS5jaGlsZHJlbn0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gZVEoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLXJvb3RdIHtcXG4gICAgLS1uZXh0LWRpYWxvZy1yYWRpdXM6IHZhcigtLXJvdW5kZWQteGwpO1xcbiAgICAtLW5leHQtZGlhbG9nLW1heC13aWR0aDogOTYwcHg7XFxuICAgIC0tbmV4dC1kaWFsb2ctcm93LXBhZGRpbmc6IDE2cHg7XFxuICAgIC0tbmV4dC1kaWFsb2ctcGFkZGluZzogMTJweDtcXG4gICAgLS1uZXh0LWRpYWxvZy1ub3RjaC1oZWlnaHQ6IDQycHg7XFxuICAgIC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoOiAxcHg7XFxuXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSA1NnB4KTtcXG4gICAgbWF4LXdpZHRoOiB2YXIoLS1uZXh0LWRpYWxvZy1tYXgtd2lkdGgpO1xcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgICBzY2FsZTogMC45NztcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogc2NhbGUsIG9wYWNpdHk7XFxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXRyYW5zaXRpb24tZHVyYXRpb24pO1xcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tdGltaW5nLW92ZXJsYXkpO1xcblxcbiAgICAmW2RhdGEtcmVuZGVyZWQ9J3RydWUnXSB7XFxuICAgICAgb3BhY2l0eTogMTtcXG4gICAgICBzY2FsZTogMTtcXG4gICAgfVxcblxcbiAgICBbZGF0YS1uZXh0anMtc2Nyb2xsLWZhZGVyXVtkYXRhLXNpZGU9J3RvcCddIHtcXG4gICAgICBsZWZ0OiAxcHg7XFxuICAgICAgdG9wOiBjYWxjKFxcbiAgICAgICAgdmFyKC0tbmV4dC1kaWFsb2ctbm90Y2gtaGVpZ2h0KSArIHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aClcXG4gICAgICApO1xcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1uZXh0LWRpYWxvZy1wYWRkaW5nKSk7XFxuICAgICAgb3BhY2l0eTogMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZ10ge1xcbiAgICBvdXRsaW5lOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZ10sXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nXSAqIHtcXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xcbiAgICAgIHdpZHRoOiA2cHg7XFxuICAgICAgaGVpZ2h0OiA2cHg7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDFyZW0gMXJlbTtcXG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xcbiAgICB9XFxuXFxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7XFxuICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgfVxcblxcbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XFxuICAgICAgYm9yZGVyLXJhZGl1czogMCAwIDFyZW0gMXJlbTtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIH1cXG5cXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS01MDApO1xcbiAgICB9XFxuICB9XFxuXFxuICAvKiBQbGFjZSBvdmVyZmxvdzogaGlkZGVuIG9uIHRoaXMgc28gd2UgY2FuIGJyZWFrIG91dCBmcm9tIFtkYXRhLW5leHRqcy1kaWFsb2ddICovXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLXNpemVyXSB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tdGltaW5nLW92ZXJsYXkpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgIG1hcmdpbjogOHB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XVtkYXRhLXJlbmRlcmVkPSd0cnVlJ11cXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcF0ge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSB7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHBhZGRpbmc6IHZhcigtLW5leHQtZGlhbG9nLXBhZGRpbmcpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSA+IFtkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyXSB7XFxuICAgIGZsZXgtc2hyaW5rOiAwO1xcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdID4gW2RhdGEtbmV4dGpzLWRpYWxvZy1ib2R5XSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgZmxleDogMSAxIGF1dG87XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC1oZWlnaHQ6IDgxMnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDE1cHgpO1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1yb290XSB7XFxuICAgICAgLS1uZXh0LWRpYWxvZy1tYXgtd2lkdGg6IDU0MHB4O1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1yb290XSB7XFxuICAgICAgLS1uZXh0LWRpYWxvZy1tYXgtd2lkdGg6IDcyMHB4O1xcbiAgICB9XFxuICB9XFxuXFxuICBAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1yb290XSB7XFxuICAgICAgLS1uZXh0LWRpYWxvZy1tYXgtd2lkdGg6IDk2MHB4O1xcbiAgICB9XFxuICB9XFxuXCJdLG58fChuPWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKG4pfX0pKSk7cmV0dXJuIGVRPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHR9dmFyIGVHPWVpKGVRKCkpLGVKPV9fd2VicGFja19yZXF1aXJlX18oXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L3V0aWxzL2N4LnRzXCIpO2Z1bmN0aW9uIGUwKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBlMShlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gZTIoZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIGU0KGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBlMChlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBlMChlLG4pfX0oZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX12YXIgZTU9XCJmdW5jdGlvblwiPT10eXBlb2YgeC51c2VBY3Rpb25TdGF0ZT9mdW5jdGlvbihlKXt2YXIgbj1lNCh4LnVzZUFjdGlvblN0YXRlKGZ1bmN0aW9uKG4sdCl7cmV0dXJuXCJyZXNldFwiPT09dD97c3RhdGU6XCJpbml0aWFsXCJ9OlwiY29weVwiPT09dD9uYXZpZ2F0b3IuY2xpcGJvYXJkP25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm57c3RhdGU6XCJzdWNjZXNzXCJ9fSxmdW5jdGlvbihlKXtyZXR1cm57c3RhdGU6XCJlcnJvclwiLGVycm9yOmV9fSk6e3N0YXRlOlwiZXJyb3JcIixlcnJvcjpcIkNvcHkgdG8gY2xpcGJvYXJkIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCJ9Om59LHtzdGF0ZTpcImluaXRpYWxcIn0pLDMpLHQ9blswXSxyPW5bMV0sbz1uWzJdO3JldHVyblt0LGZ1bmN0aW9uKCl7eC5zdGFydFRyYW5zaXRpb24oZnVuY3Rpb24oKXtyKFwiY29weVwiKX0pfSx4LnVzZUNhbGxiYWNrKGZ1bmN0aW9uKCl7cihcInJlc2V0XCIpfSxbcl0pLG9dfTpmdW5jdGlvbihlKXt2YXIgbj1lNCh4LnVzZVJlZHVjZXIoZnVuY3Rpb24oZSxuKXtyZXR1cm5cInJlc2V0XCI9PT1uLnR5cGU/e3N0YXRlOlwiaW5pdGlhbFwifTpcImNvcGllZFwiPT09bi50eXBlP3tzdGF0ZTpcInN1Y2Nlc3NcIn06XCJjb3B5aW5nXCI9PT1uLnR5cGU/e3N0YXRlOlwicGVuZGluZ1wifTpcImVycm9yXCI9PT1uLnR5cGU/e3N0YXRlOlwiZXJyb3JcIixlcnJvcjpuLmVycm9yfTplfSx7c3RhdGU6XCJpbml0aWFsXCJ9KSwyKSx0PW5bMF0scj1uWzFdLG89eC51c2VDYWxsYmFjayhmdW5jdGlvbigpe3Ioe3R5cGU6XCJyZXNldFwifSl9LFtdKSxhPVwicGVuZGluZ1wiPT09dC5zdGF0ZTtyZXR1cm5bdCxmdW5jdGlvbigpe2F8fChuYXZpZ2F0b3IuY2xpcGJvYXJkPyhyKHt0eXBlOlwiY29weWluZ1wifSksbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZSkudGhlbihmdW5jdGlvbigpe3Ioe3R5cGU6XCJjb3BpZWRcIn0pfSxmdW5jdGlvbihlKXtyKHt0eXBlOlwiZXJyb3JcIixlcnJvcjplfSl9KSk6cih7dHlwZTpcImVycm9yXCIsZXJyb3I6XCJDb3B5IHRvIGNsaXBib2FyZCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwifSkpfSxvLGFdfTtmdW5jdGlvbiBlMyhlKXt2YXIgbj1lLmFjdGlvbkxhYmVsLHQ9ZS5zdWNjZXNzTGFiZWwscj1lLmNvbnRlbnQsbz1lLmljb24sYT1lLmRpc2FibGVkLGk9ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sbi5pbmRleE9mKHQpPj0wfHwob1t0XT1lW3RdKTtyZXR1cm4gb30oZSxuKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLCEobi5pbmRleE9mKHQpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkmJihvW3RdPWVbdF0pfXJldHVybiBvfShlLFtcImFjdGlvbkxhYmVsXCIsXCJzdWNjZXNzTGFiZWxcIixcImNvbnRlbnRcIixcImljb25cIixcImRpc2FibGVkXCJdKSxsPWU0KGU1KHIpLDQpLHM9bFswXSxjPWxbMV0sdT1sWzJdLGQ9bFszXSxmPVwiZXJyb3JcIj09PXMuc3RhdGU/cy5lcnJvcjpudWxsO3gudXNlRWZmZWN0KGZ1bmN0aW9uKCl7bnVsbCE9PWYmJmNvbnNvbGUud2FybihmKX0sW2ZdKSx4LnVzZUVmZmVjdChmdW5jdGlvbigpe2lmKFwic3VjY2Vzc1wiPT09cy5zdGF0ZSl7dmFyIGU9c2V0VGltZW91dChmdW5jdGlvbigpe3UoKX0sMmUzKTtyZXR1cm4gZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZSl9fX0sW2Qscy5zdGF0ZSx1XSk7dmFyIHA9IW5hdmlnYXRvci5jbGlwYm9hcmR8fGR8fGF8fCEhZixoPVwic3VjY2Vzc1wiPT09cy5zdGF0ZT90Om4sZz1cInN1Y2Nlc3NcIj09PXMuc3RhdGU/KDAseS5qc3gpKGU5LHt9KTpvfHwoMCx5LmpzeCkoZTYse3dpZHRoOjE0LGhlaWdodDoxNCxjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXRvb2xiYXItYnV0dG9uLWljb25cIn0pO3JldHVybigwLHkuanN4cykoXCJidXR0b25cIixlMihlMSh7fSxpKSx7dHlwZTpcImJ1dHRvblwiLHRpdGxlOmgsXCJhcmlhLWxhYmVsXCI6aCxcImFyaWEtZGlzYWJsZWRcIjpwLGRpc2FibGVkOnAsXCJkYXRhLW5leHRqcy1jb3B5LWJ1dHRvblwiOiEwLGNsYXNzTmFtZTooMCxlSi5jeCkoaS5jbGFzc05hbWUsXCJuZXh0anMtZGF0YS1jb3B5LWJ1dHRvblwiLFwibmV4dGpzLWRhdGEtY29weS1idXR0b24tLVwiLmNvbmNhdChzLnN0YXRlKSksb25DbGljazpmdW5jdGlvbigpe3B8fGMoKX0sY2hpbGRyZW46W2csXCJlcnJvclwiPT09cy5zdGF0ZT9cIiBcIi5jb25jYXQocy5lcnJvcik6bnVsbF19KSl9ZnVuY3Rpb24gZTYoZSl7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIsZTIoZTEoe3dpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSkse2NoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk0yLjQwNi40MzhjLS44NDUgMC0xLjUzMS42ODUtMS41MzEgMS41M3Y2LjU2M2MwIC44NDYuNjg2IDEuNTMxIDEuNTMxIDEuNTMxSDMuOTM3VjguNzVIMi40MDZhLjIxOS4yMTkgMCAwIDEtLjIxOS0uMjE5VjEuOTdjMC0uMTIxLjA5OC0uMjE5LjIyLS4yMTloNC44MTJjLjEyIDAgLjIxOC4wOTguMjE4LjIxOXYuNjU2SDguNzV2LS42NTZjMC0uODQ2LS42ODYtMS41MzItMS41MzEtMS41MzJIMi40MDZ6bTQuMzc1IDMuNWMtLjg0NSAwLTEuNTMxLjY4NS0xLjUzMSAxLjUzdjYuNTYzYzAgLjg0Ni42ODYgMS41MzEgMS41MzEgMS41MzFoNC44MTNjLjg0NSAwIDEuNTMxLS42ODUgMS41MzEtMS41M1Y1LjQ2OGMwLS44NDYtLjY4Ni0xLjUzMi0xLjUzMS0xLjUzMkg2Ljc4em0tLjIxOCAxLjUzYzAtLjEyLjA5Ny0uMjE4LjIxOC0uMjE4aDQuODEzYy4xMiAwIC4yMTkuMDk4LjIxOS4yMTl2Ni41NjJjMCAuMTIxLS4wOTguMjE5LS4yMi4yMTlINi43ODJhLjIxOS4yMTkgMCAwIDEtLjIxOC0uMjE5VjUuNDd6XCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSl9ZnVuY3Rpb24gZTkoKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7aGVpZ2h0OlwiMTZcIix4bGlua1RpdGxlOlwiY29waWVkXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixmaWxsOlwiY3VycmVudENvbG9yXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTEzLjc4IDQuMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNmwtNy4yNSA3LjI1YS43NS43NSAwIDAgMS0xLjA2IDBMMi4yMiA5LjI4YS43NTEuNzUxIDAgMCAxIC4wMTgtMS4wNDIuNzUxLjc1MSAwIDAgMSAxLjA0Mi0uMDE4TDYgMTAuOTRsNi43Mi02LjcyYS43NS43NSAwIDAgMSAxLjA2IDBaXCJ9KX0pfWZ1bmN0aW9uIGU4KGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiBlNyhlLG4pe3JldHVybiBuPW51bGwhPW4/bjp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pLGV9dmFyIG5lPWZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdylyZXR1cm4hMTt2YXIgZT1cImNocm9tZVwiaW4gd2luZG93JiZ3aW5kb3cuY2hyb21lLG49d2luZG93Lm5hdmlnYXRvci52ZW5kb3I7cmV0dXJuIG51bGwhPWUmJlwiR29vZ2xlIEluYy5cIj09PW59KCk7ZnVuY3Rpb24gbm4oZSl7cmV0dXJuKDAseS5qc3hzKShcInN2Z1wiLGU3KGU4KHt3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIix2aWV3Qm94OlwiMCAwIDE0IDE0XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjpbKDAseS5qc3gpKFwibWFza1wiLHtpZDpcIm5vZGVqc19pY29uX21hc2tfYVwiLHN0eWxlOnttYXNrVHlwZTpcImx1bWluYW5jZVwifSxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIwXCIseTpcIjBcIix3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNNi42Ny4wODkgMS4yMDUgMy4yNTZhLjY2My42NjMgMCAwIDAtLjMzLjU3M3Y2LjMzOWMwIC4yMzcuMTI2LjQ1NS4zMy41NzRsNS40NjYgMy4xN2EuNjYuNjYgMCAwIDAgLjY2IDBsNS40NjUtMy4xN2EuNjY0LjY2NCAwIDAgMCAuMzI5LS41NzRWMy44MjlhLjY2My42NjMgMCAwIDAtLjMzLS41NzNMNy4zMy4wODlhLjY2My42NjMgMCAwIDAtLjY2MSAwXCIsZmlsbDpcIiNmZmZcIn0pfSksKDAseS5qc3gpKFwiZ1wiLHttYXNrOlwidXJsKCNub2RlanNfaWNvbl9tYXNrX2EpXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTE4LjY0OCAyLjcxNyAzLjI0OC00Ljg2LTQuNjQ4IDExLjMxbDE1LjQgNy41OCA3Ljg5Ni0xNi4xNzR6XCIsZmlsbDpcInVybCgjbm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2IpXCJ9KX0pLCgwLHkuanN4KShcIm1hc2tcIix7aWQ6XCJub2RlanNfaWNvbl9tYXNrX2NcIixzdHlsZTp7bWFza1R5cGU6XCJsdW1pbmFuY2VcIn0sbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiMVwiLHk6XCIwXCIsd2lkdGg6XCIxMlwiLGhlaWdodDpcIjE0XCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTEuMDEgMTAuNTdhLjY2My42NjMgMCAwIDAgLjE5NS4xN2w0LjY4OCAyLjcyLjc4MS40NWEuNjYuNjYgMCAwIDAgLjUxLjA2M2w1Ljc2NC0xMC41OTdhLjY1My42NTMgMCAwIDAtLjE1My0uMTIyTDkuMjE2IDEuMTggNy4zMjUuMDg3YS42ODguNjg4IDAgMCAwLS4xNzEtLjA3TDEuMDEgMTAuNTd6XCIsZmlsbDpcIiNmZmZcIn0pfSksKDAseS5qc3gpKFwiZ1wiLHttYXNrOlwidXJsKCNub2RlanNfaWNvbl9tYXNrX2MpXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTS01LjY0NyA0Ljk1OCA1LjIyNiAxOS43MzRsMTQuMzgtMTAuNjY3TDguNzM0LTUuNzEtNS42NDcgNC45NTh6XCIsZmlsbDpcInVybCgjbm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2QpXCJ9KX0pLCgwLHkuanN4cykoXCJnXCIse2NoaWxkcmVuOlsoMCx5LmpzeCkoXCJtYXNrXCIse2lkOlwibm9kZWpzX2ljb25fbWFza19lXCIsc3R5bGU6e21hc2tUeXBlOlwibHVtaW5hbmNlXCJ9LG1hc2tVbml0czpcInVzZXJTcGFjZU9uVXNlXCIseDpcIjFcIix5OlwiMFwiLHdpZHRoOlwiMTNcIixoZWlnaHQ6XCIxNFwiLGNoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZDpcIk02LjkzNC4wMDRBLjY2NS42NjUgMCAwIDAgNi42Ny4wOUwxLjIyIDMuMjQ3bDUuODc3IDEwLjc0NmEuNjU1LjY1NSAwIDAgMCAuMjM1LS4wOGw1LjQ2NS0zLjE3YS42NjUuNjY1IDAgMCAwIC4zMTktLjQ1M0w3LjEyNi4wMTVhLjY4NC42ODQgMCAwIDAtLjE4OS0uMDFcIixmaWxsOlwiI2ZmZlwifSl9KSwoMCx5LmpzeCkoXCJnXCIse21hc2s6XCJ1cmwoI25vZGVqc19pY29uX21hc2tfZSlcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMS4yMi4wMDJ2MTMuOTkyaDExLjg5NFYuMDAySDEuMjJ6XCIsZmlsbDpcInVybCgjbm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2YpXCJ9KX0pXX0pLCgwLHkuanN4cykoXCJkZWZzXCIse2NoaWxkcmVuOlsoMCx5LmpzeHMpKFwibGluZWFyR3JhZGllbnRcIix7aWQ6XCJub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfYlwiLHgxOlwiMTAuOTQzXCIseTE6XCItMS4wODRcIix4MjpcIjIuOTk3XCIseTI6XCIxNS4wNjJcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuM1wiLHN0b3BDb2xvcjpcIiMzRTg2M0RcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjVcIixzdG9wQ29sb3I6XCIjNTU5MzRGXCJ9KSwoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi44XCIsc3RvcENvbG9yOlwiIzVBQUQ0NVwifSldfSksKDAseS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2RcIix4MTpcIi0uMTQ1XCIseTE6XCIxMi40MzFcIix4MjpcIjE0LjI3N1wiLHkyOlwiMS44MThcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNTdcIixzdG9wQ29sb3I6XCIjM0U4NjNEXCJ9KSwoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi43MlwiLHN0b3BDb2xvcjpcIiM2MTk4NTdcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMVwiLHN0b3BDb2xvcjpcIiM3NkFDNjRcIn0pXX0pLCgwLHkuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9mXCIseDE6XCIxLjIyNVwiLHkxOlwiNi45OThcIix4MjpcIjEzLjExNlwiLHkyOlwiNi45OThcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuMTZcIixzdG9wQ29sb3I6XCIjNkJCRjQ3XCJ9KSwoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi4zOFwiLHN0b3BDb2xvcjpcIiM3OUI0NjFcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjQ3XCIsc3RvcENvbG9yOlwiIzc1QUM2NFwifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuN1wiLHN0b3BDb2xvcjpcIiM2NTlFNUFcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjlcIixzdG9wQ29sb3I6XCIjM0U4NjNEXCJ9KV19KV19KV19KSl9ZnVuY3Rpb24gbnQoZSl7cmV0dXJuKDAseS5qc3hzKShcInN2Z1wiLGU3KGU4KHt3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIix2aWV3Qm94OlwiMCAwIDE0IDE0XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjpbKDAseS5qc3gpKFwibWFza1wiLHtpZDpcIm5vZGVqc19pY29uX21hc2tfYVwiLHN0eWxlOnttYXNrVHlwZTpcImx1bWluYW5jZVwifSxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIwXCIseTpcIjBcIix3aWR0aDpcIjE0XCIsaGVpZ2h0OlwiMTRcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNNi42Ny4wODkgMS4yMDUgMy4yNTZhLjY2My42NjMgMCAwIDAtLjMzLjU3M3Y2LjMzOWMwIC4yMzcuMTI2LjQ1NS4zMy41NzRsNS40NjYgMy4xN2EuNjYuNjYgMCAwIDAgLjY2IDBsNS40NjUtMy4xN2EuNjY0LjY2NCAwIDAgMCAuMzI5LS41NzRWMy44MjlhLjY2My42NjMgMCAwIDAtLjMzLS41NzNMNy4zMy4wODlhLjY2My42NjMgMCAwIDAtLjY2MSAwXCIsZmlsbDpcIiNmZmZcIn0pfSksKDAseS5qc3gpKFwiZ1wiLHttYXNrOlwidXJsKCNub2RlanNfaWNvbl9tYXNrX2EpXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTE4LjY0OCAyLjcxNyAzLjI0OC00Ljg2LTQuNjQ2IDExLjMxbDE1LjM5OSA3LjU4IDcuODk2LTE2LjE3NHpcIixmaWxsOlwidXJsKCNub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfYilcIn0pfSksKDAseS5qc3gpKFwibWFza1wiLHtpZDpcIm5vZGVqc19pY29uX21hc2tfY1wiLHN0eWxlOnttYXNrVHlwZTpcImx1bWluYW5jZVwifSxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIxXCIseTpcIjBcIix3aWR0aDpcIjEyXCIsaGVpZ2h0OlwiMTVcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMS4wMSAxMC41NzFhLjY2LjY2IDAgMCAwIC4xOTUuMTcybDQuNjg4IDIuNzE4Ljc4MS40NTFhLjY2LjY2IDAgMCAwIC41MS4wNjNsNS43NjQtMTAuNTk3YS42NTMuNjUzIDAgMCAwLS4xNTMtLjEyMkw5LjIxNiAxLjE4MSA3LjMyNS4wOWEuNjg4LjY4OCAwIDAgMC0uMTcxLS4wN0wxLjAxIDEwLjU3MnpcIixmaWxsOlwiI2ZmZlwifSl9KSwoMCx5LmpzeCkoXCJnXCIse21hc2s6XCJ1cmwoI25vZGVqc19pY29uX21hc2tfYylcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNLTUuNjQ3IDQuOTYgNS4yMjYgMTkuNzM2IDE5LjYwNiA5LjA3IDguNzM0LTUuNzA3LTUuNjQ3IDQuOTZ6XCIsZmlsbDpcInVybCgjbm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2QpXCJ9KX0pLCgwLHkuanN4cykoXCJnXCIse2NoaWxkcmVuOlsoMCx5LmpzeCkoXCJtYXNrXCIse2lkOlwibm9kZWpzX2ljb25fbWFza19lXCIsc3R5bGU6e21hc2tUeXBlOlwibHVtaW5hbmNlXCJ9LG1hc2tVbml0czpcInVzZXJTcGFjZU9uVXNlXCIseDpcIjFcIix5OlwiMFwiLHdpZHRoOlwiMTNcIixoZWlnaHQ6XCIxNFwiLGNoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZDpcIk02LjkzNS4wMDNhLjY2NS42NjUgMCAwIDAtLjI2NC4wODVsLTUuNDUgMy4xNTggNS44NzcgMTAuNzQ3YS42NTMuNjUzIDAgMCAwIC4yMzUtLjA4Mmw1LjQ2NS0zLjE3YS42NjUuNjY1IDAgMCAwIC4zMTktLjQ1Mkw3LjEyNy4wMTRhLjY4NC42ODQgMCAwIDAtLjE4OS0uMDFcIixmaWxsOlwiI2ZmZlwifSl9KSwoMCx5LmpzeCkoXCJnXCIse21hc2s6XCJ1cmwoI25vZGVqc19pY29uX21hc2tfZSlcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMS4yMjIuMDAxdjEzLjk5MmgxMS44OTNWMEgxLjIyMnpcIixmaWxsOlwidXJsKCNub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfZilcIn0pfSldfSksKDAseS5qc3hzKShcImRlZnNcIix7Y2hpbGRyZW46WygwLHkuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5vZGVqc19pY29uX2xpbmVhcl9ncmFkaWVudF9iXCIseDE6XCIxMC45NDRcIix5MTpcIi0xLjA4NFwiLHgyOlwiMi45OTdcIix5MjpcIjE1LjA2MlwiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi4zXCIsc3RvcENvbG9yOlwiIzY3Njc2N1wifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNVwiLHN0b3BDb2xvcjpcIiM4NTg1ODVcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjhcIixzdG9wQ29sb3I6XCIjOTg5QTk4XCJ9KV19KSwoMCx5LmpzeHMpKFwibGluZWFyR3JhZGllbnRcIix7aWQ6XCJub2RlanNfaWNvbl9saW5lYXJfZ3JhZGllbnRfZFwiLHgxOlwiLS4xNDVcIix5MTpcIjEyLjQzM1wiLHgyOlwiMTQuMjc3XCIseTI6XCIxLjgxOVwiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi41N1wiLHN0b3BDb2xvcjpcIiM3NDc0NzRcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjcyXCIsc3RvcENvbG9yOlwiIzcwNzA3MFwifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIxXCIsc3RvcENvbG9yOlwiIzkyOTI5MlwifSldfSksKDAseS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibm9kZWpzX2ljb25fbGluZWFyX2dyYWRpZW50X2ZcIix4MTpcIjEuMjI2XCIseTE6XCI2Ljk5N1wiLHgyOlwiMTMuMTE3XCIseTI6XCI2Ljk5N1wiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi4xNlwiLHN0b3BDb2xvcjpcIiM4Nzg3ODdcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiLjM4XCIsc3RvcENvbG9yOlwiI0E5QTlBOVwifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuNDdcIixzdG9wQ29sb3I6XCIjQTVBNUE1XCJ9KSwoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIi43XCIsc3RvcENvbG9yOlwiIzhGOEY4RlwifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIuOVwiLHN0b3BDb2xvcjpcIiM2MjYyNjJcIn0pXX0pXX0pXX0pKX12YXIgbnI9XCJMZWFybiBtb3JlIGFib3V0IGVuYWJsaW5nIE5vZGUuanMgaW5zcGVjdG9yIGZvciBzZXJ2ZXIgY29kZSB3aXRoIENocm9tZSBEZXZUb29sc1wiO2Z1bmN0aW9uIG5vKGUpe3ZhciBuPWUuZGV2dG9vbHNGcm9udGVuZFVybHx8XCJcIjtyZXR1cm4gbiYmbmU/KDAseS5qc3gpKGUzLHtcImRhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWRldnRvb2xzLXVybFwiOiEwLGNsYXNzTmFtZTpcIm5vZGVqcy1pbnNwZWN0b3ItYnV0dG9uXCIsYWN0aW9uTGFiZWw6XCJDb3B5IENocm9tZSBEZXZUb29scyBVUkxcIixzdWNjZXNzTGFiZWw6XCJDb3BpZWRcIixjb250ZW50Om4saWNvbjooMCx5LmpzeCkobm4se2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktdG9vbGJhci1idXR0b24taWNvblwiLHdpZHRoOjE0LGhlaWdodDoxNH0pfSk6KDAseS5qc3gpKFwiYVwiLHt0aXRsZTpucixcImFyaWEtbGFiZWxcIjpucixjbGFzc05hbWU6XCJub2RlanMtaW5zcGVjdG9yLWJ1dHRvblwiLGhyZWY6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9jb25maWd1cmluZy9kZWJ1Z2dpbmcjc2VydmVyLXNpZGUtY29kZVwiLHRhcmdldDpcIl9ibGFua1wiLHJlbDpcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixjaGlsZHJlbjooMCx5LmpzeCkobnQse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktdG9vbGJhci1idXR0b24taWNvblwiLHdpZHRoOjE0LGhlaWdodDoxNH0pfSl9ZnVuY3Rpb24gbmEoZSl7dmFyIG49ZS5lcnJvcjtyZXR1cm4oMCx5LmpzeCkoZTMse1wiZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktc3RhY2tcIjohMCxjbGFzc05hbWU6XCJjb3B5LXN0YWNrLXRyYWNlLWJ1dHRvblwiLGFjdGlvbkxhYmVsOlwiQ29weSBTdGFjayBUcmFjZVwiLHN1Y2Nlc3NMYWJlbDpcIlN0YWNrIFRyYWNlIENvcGllZFwiLGNvbnRlbnQ6bi5zdGFja3x8XCJcIixkaXNhYmxlZDohbi5zdGFja30pfWZ1bmN0aW9uIG5pKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBubChlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfWZ1bmN0aW9uIG5zKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9ZnVuY3Rpb24gbmMoZSxuKXtyZXR1cm4gbmwoZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fG5kKGUsbil8fG5zKCl9ZnVuY3Rpb24gbnUoZSl7cmV0dXJuIG5sKGUpfHxmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8bmQoZSl8fG5zKCl9ZnVuY3Rpb24gbmQoZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbmkoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbmkoZSxuKX19dmFyIG5mPVwiaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9oeWRyYXRpb24tbWlzbWF0Y2hcIixucD1cImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3JlYWN0LWh5ZHJhdGlvbi1lcnJvclwiLG5oPVsvXkluIEhUTUwsICguKz8pIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwoLis/KT5cXC4oLiopXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yXFwuKC4qKS8sL15JbiBIVE1MLCAoLis/KSBjYW5ub3QgYmUgYSBkZXNjZW5kYW50IG9mIDwoLis/KT5cXC5cXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3JcXC4oLiopLywvXkluIEhUTUwsIHRleHQgbm9kZXMgY2Fubm90IGJlIGEgY2hpbGQgb2YgPCguKz8pPlxcLlxcblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvclxcLi8sL15JbiBIVE1MLCB3aGl0ZXNwYWNlIHRleHQgbm9kZXMgY2Fubm90IGJlIGEgY2hpbGQgb2YgPCguKz8pPlxcLiBNYWtlIHN1cmUgeW91IGRvbid0IGhhdmUgYW55IGV4dHJhIHdoaXRlc3BhY2UgYmV0d2VlbiB0YWdzIG9uIGVhY2ggbGluZSBvZiB5b3VyIHNvdXJjZSBjb2RlXFwuXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yXFwuL107ZnVuY3Rpb24gbmcoZSl7cmV0dXJuIG5oLnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIG4udGVzdChlKX0pfXZhciBubT1bXCJodHRwczovL25leHRqcy5vcmdcIixcImh0dHBzOi8vcmVhY3QuZGV2XCJdO2Z1bmN0aW9uIG52KGUpe3JldHVybiBubS5zb21lKGZ1bmN0aW9uKG4pe3JldHVybiBlLnN0YXJ0c1dpdGgobil9KX1mdW5jdGlvbiBuYihlKXt2YXIgbj1mdW5jdGlvbihlKXt2YXIgbix0LHIsbz0obj1lLHQ9bnYscj1BcnJheS5mcm9tKG4ubWF0Y2hBbGwoL2h0dHBzPzpcXC9cXC9bXlxccy8kLj8jXS5bXlxccyknXCJdKi9naSksZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF19KSx0P3IuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpfSk6cik7aWYoMD09PW8ubGVuZ3RoKXJldHVybiBudWxsO3ZhciBhPW9bMF07cmV0dXJuIGE9PT1uZj9ucDphfShlLmVycm9yTWVzc2FnZSk7cmV0dXJuIG4/KDAseS5qc3gpKFwiYVwiLHt0aXRsZTpcIkdvIHRvIHJlbGF0ZWQgZG9jdW1lbnRhdGlvblwiLFwiYXJpYS1sYWJlbFwiOlwiR28gdG8gcmVsYXRlZCBkb2N1bWVudGF0aW9uXCIsY2xhc3NOYW1lOlwiZG9jcy1saW5rLWJ1dHRvblwiLGhyZWY6bix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsY2hpbGRyZW46KDAseS5qc3gpKG55LHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXRvb2xiYXItYnV0dG9uLWljb25cIix3aWR0aDoxNCxoZWlnaHQ6MTR9KX0pOigwLHkuanN4KShcImJ1dHRvblwiLHt0aXRsZTpcIk5vIHJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBmb3VuZFwiLFwiYXJpYS1sYWJlbFwiOlwiTm8gcmVsYXRlZCBkb2N1bWVudGF0aW9uIGZvdW5kXCIsY2xhc3NOYW1lOlwiZG9jcy1saW5rLWJ1dHRvblwiLGRpc2FibGVkOiEwLGNoaWxkcmVuOigwLHkuanN4KShueSx7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS10b29sYmFyLWJ1dHRvbi1pY29uXCIsd2lkdGg6MTQsaGVpZ2h0OjE0fSl9KX1mdW5jdGlvbiBueShlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSksdD10PXtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMCAuODc1aDQuMzc1QzUuNDQ4Ljg3NSA2LjQwMSAxLjM5IDcgMi4xODdBMy4yNzYgMy4yNzYgMCAwIDEgOS42MjUuODc1SDE0djExLjE1Nkg5LjRjLS41MjIgMC0xLjAyMy4yMDgtMS4zOTIuNTc3bC0uNTQ0LjU0M2gtLjkyOGwtLjU0NC0uNTQzYy0uMzY5LS4zNy0uODctLjU3Ny0xLjM5Mi0uNTc3SDBWLjg3NXptNi4zNDQgMy4yODFhMS45NjkgMS45NjkgMCAwIDAtMS45NjktMS45NjhIMS4zMTJ2OC41M0g0LjZjLjYyMiAwIDEuMjI1LjE3NyAxLjc0NC41MDJWNC4xNTZ6bTEuMzEyIDcuMDY0VjQuMTU2YzAtMS4wODcuODgyLTEuOTY4IDEuOTY5LTEuOTY4aDMuMDYzdjguNTNIOS40Yy0uNjIyIDAtMS4yMjUuMTc3LTEuNzQ0LjUwMnpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gbngoZSl7dmFyIG49ZS5lcnJvcix0PWUuZGVidWdJbmZvLHI9ZS5mZWVkYmFja0J1dHRvbjtyZXR1cm4oMCx5LmpzeHMpKFwic3BhblwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXRvb2xiYXJcIixjaGlsZHJlbjpbciwoMCx5LmpzeCkobmEse2Vycm9yOm59KSwoMCx5LmpzeCkobmIse2Vycm9yTWVzc2FnZTpuLm1lc3NhZ2V9KSwoMCx5LmpzeCkobm8se2RldnRvb2xzRnJvbnRlbmRVcmw6bnVsbD09dD92b2lkIDA6dC5kZXZ0b29sc0Zyb250ZW5kVXJsfSldfSl9ZnVuY3Rpb24gbncoZSl7dmFyIG4sdDtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIiwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2xhc3NOYW1lOlwidGh1bWJzLXVwLWljb25cIn0sZSksdD10PXtjaGlsZHJlbjooMCx5LmpzeCkoXCJnXCIse2lkOlwidGh1bWItdXAtMTZcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2lkOlwiVW5pb25cIixmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTYuODk1MzEgMi4yMzk1OUM2LjcyOTg0IDIuMTIxNCA2LjUgMi4yMzk2OCA2LjUgMi40NDMwM1Y1LjI0OTg5QzYuNSA2LjIxNjM5IDUuNzE2NSA2Ljk5OTg5IDQuNzUgNi45OTk4OUgyLjVWMTMuNDk5OUgxMi4xODg0QzEyLjc2MiAxMy40OTk5IDEzLjI2MiAxMy4xMDk1IDEzLjQwMTEgMTIuNTUzMUwxNC40MDExIDguNTUzMDZDMTQuNTk4NCA3Ljc2NDEyIDE0LjAwMTcgNi45OTk4OSAxMy4xODg0IDYuOTk5ODlIOS4yNUg4LjVWNi4yNDk4OVYzLjUxNDQ2QzguNSAzLjQzMzcyIDguNDYxMDEgMy4zNTc5NSA4LjM5NTMxIDMuMzExMDJMNi44OTUzMSAyLjIzOTU5Wk01IDIuNDQzMDNDNSAxLjAxOTYzIDYuNjA4OSAwLjE5MTY1NiA3Ljc2NzE3IDEuMDE4OTlMOS4yNjcxNyAyLjA5MDQyQzkuNzI3MDYgMi40MTg5MiAxMCAyLjk0OTI5IDEwIDMuNTE0NDZWNS40OTk4OUgxMy4xODg0QzE0Ljk3NzUgNS40OTk4OSAxNi4yOTAzIDcuMTgxMjEgMTUuODU2MyA4LjkxNjg2TDE0Ljg1NjMgMTIuOTE2OUMxNC41NTAzIDE0LjE0MTEgMTMuNDUwMyAxNC45OTk5IDEyLjE4ODQgMTQuOTk5OUgxLjc1SDFWMTQuMjQ5OVY2LjI0OTg5VjUuNDk5ODlIMS43NUg0Ljc1QzQuODg4MDcgNS40OTk4OSA1IDUuMzg3OTYgNSA1LjI0OTg5VjIuNDQzMDNaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gbmooZSl7dmFyIG4sdDtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIiwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2xhc3NOYW1lOlwidGh1bWJzLWRvd24taWNvblwifSxlKSx0PXQ9e2NoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbFJ1bGU6XCJldmVub2RkXCIsY2xpcFJ1bGU6XCJldmVub2RkXCIsZDpcIk01Ljg5NTMxIDEyLjc2MDNDNS43Mjk4NCAxMi44Nzg1IDUuNSAxMi43NjAyIDUuNSAxMi41NTY5VjkuNzVDNS41IDguNzgzNSA0LjcxNjUgOCAzLjc1IDhIMS41VjEuNUgxMS4xODg0QzExLjc2MiAxLjUgMTIuMjYyIDEuODkwMzcgMTIuNDAxMSAyLjQ0NjgzTDEzLjQwMTEgNi40NDY4M0MxMy41OTg0IDcuMjM1NzYgMTMuMDAxNyA4IDEyLjE4ODQgOEg4LjI1SDcuNVY4Ljc1VjExLjQ4NTRDNy41IDExLjU2NjIgNy40NjEwMSAxMS42NDE5IDcuMzk1MzEgMTEuNjg4OUw1Ljg5NTMxIDEyLjc2MDNaTTQgMTIuNTU2OUM0IDEzLjk4MDMgNS42MDg5IDE0LjgwODIgNi43NjcxNyAxMy45ODA5TDguMjY3MTcgMTIuOTA5NUM4LjcyNzA2IDEyLjU4MSA5IDEyLjA1MDYgOSAxMS40ODU0VjkuNUgxMi4xODg0QzEzLjk3NzUgOS41IDE1LjI5MDMgNy44MTg2OCAxNC44NTYzIDYuMDgzMDNMMTMuODU2MyAyLjA4MzAzQzEzLjU1MDMgMC44NTg4MTYgMTIuNDUwMyAwIDExLjE4ODQgMEgwLjc1SDBWMC43NVY4Ljc1VjkuNUgwLjc1SDMuNzVDMy44ODgwNyA5LjUgNCA5LjYxMTkzIDQgOS43NVYxMi41NTY5WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX1mdW5jdGlvbiBuayhlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gbkEoZSxuLHQscixvLGEsaSl7dHJ5e3ZhciBsPWVbYV0oaSkscz1sLnZhbHVlfWNhdGNoKGUpe3QoZSk7cmV0dXJufWwuZG9uZT9uKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gbk8oZSxuLHQpe3JldHVybiBuIGluIGU/T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7dmFsdWU6dCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmVbbl09dCxlfWZ1bmN0aW9uIG5DKGUpe3ZhciBuLHQscj1lLmVycm9yQ29kZSxvPWUuY2xhc3NOYW1lLGE9KG49KDAseC51c2VTdGF0ZSkoe30pLHQ9MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShuKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShuLDIpfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuayhlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBuayhlLG4pfX0obix0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksaT1hWzBdLGw9YVsxXSxzPWlbcl0sYz1wcm9jZXNzLmVudi5fX05FWFRfVEVMRU1FVFJZX0RJU0FCTEVELHU9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oZSl7dmFyIG47cmV0dXJuKG49ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG8sYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvWzBdKXRocm93IG9bMV07cmV0dXJuIG9bMV19LHRyeXM6W10sb3BzOltdfSxpPU9iamVjdC5jcmVhdGUoKFwiZnVuY3Rpb25cIj09dHlwZW9mIEl0ZXJhdG9yP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gaS5uZXh0PWwoMCksaS50aHJvdz1sKDEpLGkucmV0dXJuPWwoMiksXCJmdW5jdGlvblwiPT10eXBlb2YgU3ltYm9sJiYoaVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxpO2Z1bmN0aW9uIGwobCl7cmV0dXJuIGZ1bmN0aW9uKHMpe3ZhciBjPVtsLHNdO2lmKHQpdGhyb3cgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtmb3IoO2kmJihpPTAsY1swXSYmKGE9MCkpLGE7KXRyeXtpZih0PTEsciYmKG89MiZjWzBdP3IucmV0dXJuOmNbMF0/ci50aHJvd3x8KChvPXIucmV0dXJuKSYmby5jYWxsKHIpLDApOnIubmV4dCkmJiEobz1vLmNhbGwocixjWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gocj0wLG8mJihjPVsyJmNbMF0sby52YWx1ZV0pLGNbMF0pe2Nhc2UgMDpjYXNlIDE6bz1jO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTpjWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKysscj1jWzFdLGM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpjPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEobz0obz1hLnRyeXMpLmxlbmd0aD4wJiZvW28ubGVuZ3RoLTFdKSYmKDY9PT1jWzBdfHwyPT09Y1swXSkpe2E9MDtjb250aW51ZX1pZigzPT09Y1swXSYmKCFvfHxjWzFdPm9bMF0mJmNbMV08b1szXSkpe2EubGFiZWw9Y1sxXTticmVha31pZig2PT09Y1swXSYmYS5sYWJlbDxvWzFdKXthLmxhYmVsPW9bMV0sbz1jO2JyZWFrfWlmKG8mJmEubGFiZWw8b1syXSl7YS5sYWJlbD1vWzJdLGEub3BzLnB1c2goYyk7YnJlYWt9b1syXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfWM9bi5jYWxsKGUsYSl9Y2F0Y2goZSl7Yz1bNixlXSxyPTB9ZmluYWxseXt0PW89MH1pZig1JmNbMF0pdGhyb3cgY1sxXTtyZXR1cm57dmFsdWU6Y1swXT9jWzFdOnZvaWQgMCxkb25lOiEwfX19fSh0aGlzLGZ1bmN0aW9uKG4pe3N3aXRjaChuLmxhYmVsKXtjYXNlIDA6bChmdW5jdGlvbihuKXt2YXIgdCxvO3JldHVybiB0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXtuTyhlLG4sdFtuXSl9KX1yZXR1cm4gZX0oe30sbiksbz1udWxsIT0obz1uTyh7fSxyLGUpKT9vOnt9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobykpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QobykpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sZSkpfSksdH0pLG4ubGFiZWw9MTtjYXNlIDE6cmV0dXJuIG4udHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCxmZXRjaChcIlwiLmNvbmNhdChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIfHxcIlwiLFwiL19fbmV4dGpzX2Vycm9yX2ZlZWRiYWNrP1wiKS5jb25jYXQobmV3IFVSTFNlYXJjaFBhcmFtcyh7ZXJyb3JDb2RlOnIsd2FzSGVscGZ1bDplLnRvU3RyaW5nKCl9KSkpXTtjYXNlIDI6cmV0dXJuIG4uc2VudCgpLm9rfHxjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIHJlY29yZCBmZWVkYmFjayBvbiB0aGUgc2VydmVyLlwiKSxbMyw0XTtjYXNlIDM6cmV0dXJuIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gcmVjb3JkIGZlZWRiYWNrOlwiLG4uc2VudCgpKSxbMyw0XTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSxmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbyl7dmFyIGE9bi5hcHBseShlLHQpO2Z1bmN0aW9uIGkoZSl7bkEoYSxyLG8saSxsLFwibmV4dFwiLGUpfWZ1bmN0aW9uIGwoZSl7bkEoYSxyLG8saSxsLFwidGhyb3dcIixlKX1pKHZvaWQgMCl9KX0pKCl9LFtyXSk7cmV0dXJuKDAseS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTooMCxlSi5jeCkoXCJlcnJvci1mZWVkYmFja1wiLG8pLHJvbGU6XCJyZWdpb25cIixcImFyaWEtbGFiZWxcIjpcIkVycm9yIGZlZWRiYWNrXCIsY2hpbGRyZW46dm9pZCAwIT09cz8oMCx5LmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcImVycm9yLWZlZWRiYWNrLXRoYW5rc1wiLHJvbGU6XCJzdGF0dXNcIixcImFyaWEtbGl2ZVwiOlwicG9saXRlXCIsY2hpbGRyZW46XCJUaGFua3MgZm9yIHlvdXIgZmVlZGJhY2shXCJ9KTooMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx5LmpzeCkoXCJwXCIse2NoaWxkcmVuOigwLHkuanN4KShcImFcIix7aHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy90ZWxlbWV0cnkjZXJyb3ItZmVlZGJhY2tcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsdGFyZ2V0OlwiX2JsYW5rXCIsY2hpbGRyZW46XCJXYXMgdGhpcyBoZWxwZnVsP1wifSl9KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWRpc2FibGVkXCI6Yz9cInRydWVcIjp2b2lkIDAsXCJhcmlhLWxhYmVsXCI6XCJNYXJrIGFzIGhlbHBmdWxcIixvbkNsaWNrOmM/dm9pZCAwOmZ1bmN0aW9uKCl7cmV0dXJuIHUoITApfSxjbGFzc05hbWU6KDAsZUouY3gpKFwiZmVlZGJhY2stYnV0dG9uXCIsITA9PT1zJiZcInZvdGVkXCIpLHRpdGxlOmM/XCJGZWVkYmFjayBkaXNhYmxlZCBkdWUgdG8gc2V0dGluZyBORVhUX1RFTEVNRVRSWV9ESVNBQkxFRFwiOnZvaWQgMCx0eXBlOlwiYnV0dG9uXCIsY2hpbGRyZW46KDAseS5qc3gpKG53LHtcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCJ9KX0pLCgwLHkuanN4KShcImJ1dHRvblwiLHtcImFyaWEtZGlzYWJsZWRcIjpjP1widHJ1ZVwiOnZvaWQgMCxcImFyaWEtbGFiZWxcIjpcIk1hcmsgYXMgbm90IGhlbHBmdWxcIixvbkNsaWNrOmM/dm9pZCAwOmZ1bmN0aW9uKCl7cmV0dXJuIHUoITEpfSxjbGFzc05hbWU6KDAsZUouY3gpKFwiZmVlZGJhY2stYnV0dG9uXCIsITE9PT1zJiZcInZvdGVkXCIpLHRpdGxlOmM/XCJGZWVkYmFjayBkaXNhYmxlZCBkdWUgdG8gc2V0dGluZyBORVhUX1RFTEVNRVRSWV9ESVNBQkxFRFwiOnZvaWQgMCx0eXBlOlwiYnV0dG9uXCIsY2hpbGRyZW46KDAseS5qc3gpKG5qLHtcImFyaWEtaGlkZGVuXCI6XCJ0cnVlXCIsc3R5bGU6e3RyYW5zbGF0ZTpcIjFweCAxcHhcIn19KX0pXX0pfSl9ZnVuY3Rpb24gblMoZSl7dmFyIG49ZS5lcnJvckNvZGU7cmV0dXJuKDAseS5qc3gpKFwiZm9vdGVyXCIse1wiZGF0YS1uZXh0anMtZXJyb3Itb3ZlcmxheS1mb290ZXJcIjohMCxjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LWZvb3RlclwiLGNoaWxkcmVuOm4/KDAseS5qc3gpKG5DLHtjbGFzc05hbWU6XCJlcnJvci1mZWVkYmFja1wiLGVycm9yQ29kZTpufSk6bnVsbH0pfXZhciBuRT1cIlxcbiAgLmVycm9yLW92ZXJsYXktZm9vdGVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcblxcbiAgICBnYXA6IDhweDtcXG4gICAgcGFkZGluZzogMTJweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgfVxcblxcbiAgLmVycm9yLWZlZWRiYWNrIHtcXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XFxuXFxuICAgIHAge1xcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgICBtYXJnaW46IDA7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFwiLmNvbmNhdChcIlxcbiAgLmVycm9yLWZlZWRiYWNrIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA4cHg7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICB9XFxuXFxuICAuZXJyb3ItZmVlZGJhY2stdGhhbmtzIHtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcGFkZGluZy1yaWdodDogNHB4OyAvKiBUbyBtYXRjaCB0aGUgNHB4IGlubmVyIHBhZGRpbmcgb2YgdGhlIHRodW1icyB1cCBhbmQgZG93biBpY29ucyAqL1xcbiAgfVxcblxcbiAgLmZlZWRiYWNrLWJ1dHRvbiB7XFxuICAgIGJhY2tncm91bmQ6IG5vbmU7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZCk7XFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG5cXG4gICAgJjpmb2N1cyB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgIH1cXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0xMDApO1xcbiAgICB9XFxuXFxuICAgICY6YWN0aXZlIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTIwMCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5mZWVkYmFjay1idXR0b25bYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcXG4gICAgb3BhY2l0eTogMC43O1xcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgfVxcblxcbiAgLmZlZWRiYWNrLWJ1dHRvbi52b3RlZCB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMjAwKTtcXG4gIH1cXG5cXG4gIC50aHVtYnMtdXAtaWNvbixcXG4gIC50aHVtYnMtZG93bi1pY29uIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMTYpO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgfVxcblwiLFwiXFxuXCIpO2Z1bmN0aW9uIG5fKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBuUChlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbl8oZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbl8oZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbnooZSl7dmFyIG49ZS5lcnJvck1lc3NhZ2UsdD1uUCgoMCx4LnVzZVN0YXRlKSghMSksMikscj10WzBdLG89dFsxXSxhPW5QKCgwLHgudXNlU3RhdGUpKCExKSwyKSxpPWFbMF0sbD1hWzFdLHM9KDAseC51c2VSZWYpKG51bGwpO3JldHVybigwLHgudXNlTGF5b3V0RWZmZWN0KShmdW5jdGlvbigpe3MuY3VycmVudCYmbChzLmN1cnJlbnQuc2Nyb2xsSGVpZ2h0PjIwMCl9LFtuXSksKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfd3JhcHBlclwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJwXCIse3JlZjpzLGlkOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2Rlc2NcIixjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzYyBcIi5jb25jYXQoaSYmIXI/XCJ0cnVuY2F0ZWRcIjpcIlwiKSxjaGlsZHJlbjpufSksaSYmIXImJigwLHkuanN4cykoeS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZ3JhZGllbnRfb3ZlcmxheVwifSksKDAseS5qc3gpKFwiYnV0dG9uXCIse29uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gbyghMCl9LGNsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19leHBhbmRfYnV0dG9uXCIsXCJhcmlhLWV4cGFuZGVkXCI6cixcImFyaWEtY29udHJvbHNcIjpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjXCIsY2hpbGRyZW46XCJTaG93IE1vcmVcIn0pXX0pXX0pfWZ1bmN0aW9uIG5MKGUpe3ZhciBuPWUuZXJyb3JUeXBlO3JldHVybigwLHkuanN4KShcInNwYW5cIix7aWQ6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWxcIixjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWxcIixjaGlsZHJlbjpufSl9ZnVuY3Rpb24gblQoZSl7dmFyIG49ZS50aXRsZSx0PWUuY2xhc3NOYW1lO3JldHVybigwLHkuanN4KShcInN2Z1wiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJhcmlhLWxhYmVsXCI6bixjbGFzc05hbWU6dCxjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOS4yNDk5NiAxMi4wNjA4TDguNzE5NjMgMTEuNTMwNEw1Ljg5NjQxIDguNzA3MjJDNS41MDU4OCA4LjMxNjcgNS41MDU4OCA3LjY4MzUzIDUuODk2NDEgNy4yOTMwMUw4LjcxOTYzIDQuNDY5NzhMOS4yNDk5NiAzLjkzOTQ1TDEwLjMxMDYgNS4wMDAxMUw5Ljc4MDI5IDUuNTMwNDRMNy4zMTA2MiA4LjAwMDExTDkuNzgwMjkgMTAuNDY5OEwxMC4zMTA2IDExLjAwMDFMOS4yNDk5NiAxMi4wNjA4WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gblIoZSl7dmFyIG49ZS50aXRsZSx0PWUuY2xhc3NOYW1lO3JldHVybigwLHkuanN4KShcInN2Z1wiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2xhc3NOYW1lOnQsXCJhcmlhLWxhYmVsXCI6bixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNi43NTAxMSAzLjkzOTQ1TDcuMjgwNDQgNC40Njk3OEwxMC4xMDM3IDcuMjkzMDFDMTAuNDk0MiA3LjY4MzUzIDEwLjQ5NDIgOC4zMTY3IDEwLjEwMzcgOC43MDcyMkw3LjI4MDQ0IDExLjUzMDRMNi43NTAxMSAxMi4wNjA4TDUuNjg5NDUgMTEuMDAwMUw2LjIxOTc4IDEwLjQ2OThMOC42ODk0NSA4LjAwMDExTDYuMjE5NzggNS41MzA0NEw1LjY4OTQ1IDUuMDAwMTFMNi43NTAxMSAzLjkzOTQ1WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9ZnVuY3Rpb24gbk4oZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIG5EKGUpe3ZhciBuLHQscj1lLnJ1bnRpbWVFcnJvcnMsbz1lLmFjdGl2ZUlkeCxhPWUub25BY3RpdmVJbmRleENoYW5nZSxpPSgwLHgudXNlQ2FsbGJhY2spKGZ1bmN0aW9uKCl7cmV0dXJuKDAseC5zdGFydFRyYW5zaXRpb24pKGZ1bmN0aW9uKCl7bz4wJiZhKE1hdGgubWF4KDAsby0xKSl9KX0sW28sYV0pLGw9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXtyZXR1cm4oMCx4LnN0YXJ0VHJhbnNpdGlvbikoZnVuY3Rpb24oKXtvPHIubGVuZ3RoLTEmJmEoTWF0aC5tYXgoMCxNYXRoLm1pbihyLmxlbmd0aC0xLG8rMSkpKX0pfSxbbyxyLmxlbmd0aCxhXSkscz0oMCx4LnVzZVJlZikobnVsbCksYz0oMCx4LnVzZVJlZikobnVsbCksdT0obj0oMCx4LnVzZVN0YXRlKShudWxsKSx0PTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0obil8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksYS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0obiwyKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbk4oZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbk4oZSxuKX19KG4sdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLGQ9dVswXSxmPXVbMV0scD0oMCx4LnVzZUNhbGxiYWNrKShmdW5jdGlvbihlKXtmKGUpfSxbXSk7cmV0dXJuKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oZSl7XCJBcnJvd0xlZnRcIj09PWUua2V5PyhlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxpJiZpKCkpOlwiQXJyb3dSaWdodFwiPT09ZS5rZXkmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxsJiZsKCkpfTtpZihudWxsIT1kKXt2YXIgbj1kLmdldFJvb3ROb2RlKCksdD1zZWxmLmRvY3VtZW50O3JldHVybiBuLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsZSksbiE9PXQmJnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKSxmdW5jdGlvbigpe24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKSxuIT09dCYmdC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLGUpfX19LFtkLGwsaV0pLCgwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpe2lmKG51bGwhPWQpe3ZhciBlLG4sdD1kLmdldFJvb3ROb2RlKCk7aWYoZT10LG51bGwhPShuPVNoYWRvd1Jvb3QpJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZuW1N5bWJvbC5oYXNJbnN0YW5jZV0/ISFuW1N5bWJvbC5oYXNJbnN0YW5jZV0oZSk6ZSBpbnN0YW5jZW9mIG4pe3ZhciBhPXQuYWN0aXZlRWxlbWVudDswPT09bz9zLmN1cnJlbnQmJmE9PT1zLmN1cnJlbnQmJnMuY3VycmVudC5ibHVyKCk6bz09PXIubGVuZ3RoLTEmJmMuY3VycmVudCYmYT09PWMuY3VycmVudCYmYy5jdXJyZW50LmJsdXIoKX19fSxbZCxvLHIubGVuZ3RoXSksKDAseS5qc3hzKShcIm5hdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXBhZ2luYXRpb24gZGlhbG9nLWV4Y2x1ZGUtY2xvc2luZy1mcm9tLW91dHNpZGUtY2xpY2tcIixyZWY6cCxjaGlsZHJlbjpbKDAseS5qc3gpKFwiYnV0dG9uXCIse3JlZjpzLHR5cGU6XCJidXR0b25cIixkaXNhYmxlZDowPT09byxcImFyaWEtZGlzYWJsZWRcIjowPT09byxvbkNsaWNrOmksXCJkYXRhLW5leHRqcy1kaWFsb2ctZXJyb3ItcHJldmlvdXNcIjohMCxjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LXBhZ2luYXRpb24tYnV0dG9uXCIsY2hpbGRyZW46KDAseS5qc3gpKG5ULHt0aXRsZTpcInByZXZpb3VzXCIsY2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1wYWdpbmF0aW9uLWJ1dHRvbi1pY29uXCJ9KX0pLCgwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1wYWdpbmF0aW9uLWNvdW50XCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtZGlhbG9nLWVycm9yLWluZGV4XCI6byxjaGlsZHJlbjpbbysxLFwiL1wiXX0pLCgwLHkuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyLXRvdGFsLWNvdW50XCI6ITAsY2hpbGRyZW46ci5sZW5ndGh8fDF9KV19KSwoMCx5LmpzeCkoXCJidXR0b25cIix7cmVmOmMsdHlwZTpcImJ1dHRvblwiLGRpc2FibGVkOm8+PXIubGVuZ3RoLTEsXCJhcmlhLWRpc2FibGVkXCI6bz49ci5sZW5ndGgtMSxvbkNsaWNrOmwsXCJkYXRhLW5leHRqcy1kaWFsb2ctZXJyb3ItbmV4dFwiOiEwLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1idXR0b25cIixjaGlsZHJlbjooMCx5LmpzeCkoblIse3RpdGxlOlwibmV4dFwiLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1idXR0b24taWNvblwifSl9KV19KX1mdW5jdGlvbiBuQihlKXt2YXIgbj1lLmluc3RhbGxlZCx0PWUuc3RhbGVuZXNzLHI9ZS5leHBlY3RlZCxvPVwiXCIsYT1cIlwiLGk9XCJcIixsPVwiTmV4dC5qcyBcIi5jb25jYXQobik7c3dpdGNoKHQpe2Nhc2VcIm5ld2VyLXRoYW4tbnBtXCI6Y2FzZVwiZnJlc2hcIjpvPWwsYT1cIkxhdGVzdCBhdmFpbGFibGUgdmVyc2lvbiBpcyBkZXRlY3RlZCAoXCIuY29uY2F0KG4sXCIpLlwiKSxpPVwiZnJlc2hcIjticmVhaztjYXNlXCJzdGFsZS1wYXRjaFwiOmNhc2VcInN0YWxlLW1pbm9yXCI6bz1cIlwiLmNvbmNhdChsLFwiIChzdGFsZSlcIiksYT1cIlRoZXJlIGlzIGEgbmV3ZXIgdmVyc2lvbiAoXCIuY29uY2F0KHIsXCIpIGF2YWlsYWJsZSwgdXBncmFkZSByZWNvbW1lbmRlZCEgXCIpLGk9XCJzdGFsZVwiO2JyZWFrO2Nhc2VcInN0YWxlLW1ham9yXCI6bz1cIlwiLmNvbmNhdChsLFwiIChvdXRkYXRlZClcIiksYT1cIkFuIG91dGRhdGVkIHZlcnNpb24gZGV0ZWN0ZWQgKGxhdGVzdCBpcyBcIi5jb25jYXQocixcIiksIHVwZ3JhZGUgaXMgaGlnaGx5IHJlY29tbWVuZGVkIVwiKSxpPVwib3V0ZGF0ZWRcIjticmVhaztjYXNlXCJzdGFsZS1wcmVyZWxlYXNlXCI6bz1cIlwiLmNvbmNhdChsLFwiIChzdGFsZSlcIiksYT1cIlRoZXJlIGlzIGEgbmV3ZXIgY2FuYXJ5IHZlcnNpb24gKFwiLmNvbmNhdChyLFwiKSBhdmFpbGFibGUsIHBsZWFzZSB1cGdyYWRlISBcIiksaT1cInN0YWxlXCI7YnJlYWs7Y2FzZVwidW5rbm93blwiOm89XCJcIi5jb25jYXQobCxcIiAodW5rbm93bilcIiksYT1cIk5vIE5leHQuanMgdmVyc2lvbiBkYXRhIHdhcyBmb3VuZC5cIixpPVwidW5rbm93blwifXJldHVybnt0ZXh0Om8saW5kaWNhdG9yQ2xhc3M6aSx0aXRsZTphfX1mdW5jdGlvbiBuTShlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTRcIixoZWlnaHQ6XCIxNFwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSksdD10PXtjaGlsZHJlbjooMCx5LmpzeCkoXCJjaXJjbGVcIix7Y3g6XCI3XCIsY3k6XCI3XCIscjpcIjUuNVwiLHN0cm9rZVdpZHRoOlwiM1wifSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkpfSksbikpfWZ1bmN0aW9uIG5JKGUpe3ZhciBuPWUudmVyc2lvbkluZm8sdD1lLmJ1bmRsZXJOYW1lLHI9bi5zdGFsZW5lc3Msbz1uQihuKSxhPW8udGV4dCxpPW8uaW5kaWNhdG9yQ2xhc3MsbD1vLnRpdGxlLHM9XCJUdXJib3BhY2tcIj09PXQ7cmV0dXJuIHIuc3RhcnRzV2l0aChcInN0YWxlXCIpPygwLHkuanN4cykoXCJhXCIse2NsYXNzTmFtZTpcIm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMgZGlhbG9nLWV4Y2x1ZGUtY2xvc2luZy1mcm9tLW91dHNpZGUtY2xpY2tcIix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsaHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ZlcnNpb24tc3RhbGVuZXNzXCIsY2hpbGRyZW46WygwLHkuanN4KShuTSx7Y2xhc3NOYW1lOigwLGVKLmN4KShcInZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvclwiLGkpfSksKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLXZlcnNpb24tY2hlY2tlclwiOiEwLHRpdGxlOmwsY2hpbGRyZW46YX0pLCgwLHkuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOigwLGVKLmN4KShzJiZcInR1cmJvcGFjay10ZXh0XCIpLGNoaWxkcmVuOnR9KV19KTooMCx5LmpzeHMpKFwic3BhblwiLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIGRpYWxvZy1leGNsdWRlLWNsb3NpbmctZnJvbS1vdXRzaWRlLWNsaWNrXCIsY2hpbGRyZW46WygwLHkuanN4KShuTSx7Y2xhc3NOYW1lOigwLGVKLmN4KShcInZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvclwiLGkpfSksKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLXZlcnNpb24tY2hlY2tlclwiOiEwLHRpdGxlOmwsY2hpbGRyZW46YX0pLCgwLHkuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOigwLGVKLmN4KShzJiZcInR1cmJvcGFjay10ZXh0XCIpLGNoaWxkcmVuOnR9KV19KX1mdW5jdGlvbiBuSChlKXt2YXIgbj1lLnJ1bnRpbWVFcnJvcnMsdD1lLmFjdGl2ZUlkeCxyPWUuc2V0QWN0aXZlSW5kZXgsbz1lLnZlcnNpb25JbmZvLGE9cHJvY2Vzcy5lbnYuX19ORVhUX0JVTkRMRVJ8fFwiV2VicGFja1wiO3JldHVybigwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1lcnJvci1vdmVybGF5LW5hdlwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkobkYse3NpZGU6XCJsZWZ0XCIsY2hpbGRyZW46KDAseS5qc3gpKG5ELHtydW50aW1lRXJyb3JzOm51bGwhPW4/bjpbXSxhY3RpdmVJZHg6bnVsbCE9dD90OjAsb25BY3RpdmVJbmRleENoYW5nZTpudWxsIT1yP3I6ZnVuY3Rpb24oKXt9fSl9KSxvJiYoMCx5LmpzeCkobkYse3NpZGU6XCJyaWdodFwiLGNoaWxkcmVuOigwLHkuanN4KShuSSx7dmVyc2lvbkluZm86byxidW5kbGVyTmFtZTphfSl9KV19KX1mdW5jdGlvbiBuRihlKXt2YXIgbj1lLmNoaWxkcmVuLHQ9ZS5zaWRlO3JldHVybigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1ub3RjaFwiLFwiZGF0YS1zaWRlXCI6dm9pZCAwPT09dD9cImxlZnRcIjp0LGNoaWxkcmVuOltuLCgwLHkuanN4KShuVSx7fSldfSl9ZnVuY3Rpb24gblUoKXtyZXR1cm4oMCx5LmpzeHMpKFwic3ZnXCIse3dpZHRoOlwiNjBcIixoZWlnaHQ6XCI0MlwiLHZpZXdCb3g6XCIwIDAgNjAgNDJcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LW5vdGNoLXRhaWxcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwibm9uZVwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwibWFza1wiLHtpZDpcImVycm9yX292ZXJsYXlfbmF2X21hc2swXzI2NjdfMTQ2ODdcIixzdHlsZTp7bWFza1R5cGU6XCJhbHBoYVwifSxtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCIwXCIseTpcIi0xXCIsd2lkdGg6XCI2MFwiLGhlaWdodDpcIjQzXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJtYXNrXCIse2lkOlwiZXJyb3Jfb3ZlcmxheV9uYXZfcGF0aF8xX291dHNpZGVfMV8yNjY3XzE0Njg3XCIsbWFza1VuaXRzOlwidXNlclNwYWNlT25Vc2VcIix4OlwiMFwiLHk6XCItMVwiLHdpZHRoOlwiNjBcIixoZWlnaHQ6XCI0M1wiLGZpbGw6XCJibGFja1wiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJyZWN0XCIse2ZpbGw6XCJ3aGl0ZVwiLHk6XCItMVwiLHdpZHRoOlwiNjBcIixoZWlnaHQ6XCI0M1wifSksKDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTEgMEw4LjA3ODMgMEMxNS43NzIgMCAyMi43ODM2IDQuNDEzMjQgMjYuMTExIDExLjM1MDFMMzQuODg4OSAyOS42NDk4QzM4LjIxNjQgMzYuNTg2OCA0NS4yMjggNDEgNTIuOTIxNyA0MUg2MEgxTDEgMFpcIn0pXX0pLCgwLHkuanN4KShcInBhdGhcIix7ZDpcIk0xIDBMOC4wNzgzIDBDMTUuNzcyIDAgMjIuNzgzNiA0LjQxMzI0IDI2LjExMSAxMS4zNTAxTDM0Ljg4ODkgMjkuNjQ5OEMzOC4yMTY0IDM2LjU4NjggNDUuMjI4IDQxIDUyLjkyMTcgNDFINjBIMUwxIDBaXCIsZmlsbDpcIndoaXRlXCJ9KSwoMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMSAwVi0xSDBWMEwxIDBaTTEgNDFIMFY0MkgxVjQxWk0zNC44ODg5IDI5LjY0OThMMzMuOTg3MyAzMC4wODIzTDM0Ljg4ODkgMjkuNjQ5OFpNMjYuMTExIDExLjM1MDFMMjcuMDEyNyAxMC45MTc3TDI2LjExMSAxMS4zNTAxWk0xIDFIOC4wNzgzVi0xSDFWMVpNNjAgNDBIMVY0Mkg2MFY0MFpNMiA0MVYwTDAgMEwwIDQxSDJaTTI1LjIwOTQgMTEuNzgyNkwzMy45ODczIDMwLjA4MjNMMzUuNzkwNiAyOS4yMTc0TDI3LjAxMjcgMTAuOTE3N0wyNS4yMDk0IDExLjc4MjZaTTUyLjkyMTcgNDJINjBWNDBINTIuOTIxN1Y0MlpNMzMuOTg3MyAzMC4wODIzQzM3LjQ4MTEgMzcuMzY2MSA0NC44NDMzIDQyIDUyLjkyMTcgNDJWNDBDNDUuNjEyNyA0MCAzOC45NTE3IDM1LjgwNzQgMzUuNzkwNiAyOS4yMTc0TDMzLjk4NzMgMzAuMDgyM1pNOC4wNzgzIDFDMTUuMzg3MyAxIDIyLjA0ODMgNS4xOTI1NyAyNS4yMDk0IDExLjc4MjZMMjcuMDEyNyAxMC45MTc3QzIzLjUxODggMy42MzM5IDE2LjE1NjcgLTEgOC4wNzgzIC0xVjFaXCIsZmlsbDpcImJsYWNrXCIsbWFzazpcInVybCgjZXJyb3Jfb3ZlcmxheV9uYXZfcGF0aF8xX291dHNpZGVfMV8yNjY3XzE0Njg3KVwifSldfSksKDAseS5qc3hzKShcImdcIix7bWFzazpcInVybCgjZXJyb3Jfb3ZlcmxheV9uYXZfbWFzazBfMjY2N18xNDY4NylcIixjaGlsZHJlbjpbKDAseS5qc3hzKShcIm1hc2tcIix7aWQ6XCJlcnJvcl9vdmVybGF5X25hdl9wYXRoXzNfb3V0c2lkZV8yXzI2NjdfMTQ2ODdcIixtYXNrVW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLHg6XCItMVwiLHk6XCIwLjAyNDQxNDFcIix3aWR0aDpcIjYwXCIsaGVpZ2h0OlwiNDNcIixmaWxsOlwiYmxhY2tcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwicmVjdFwiLHtmaWxsOlwid2hpdGVcIix4OlwiLTFcIix5OlwiMC4wMjQ0MTQxXCIsd2lkdGg6XCI2MFwiLGhlaWdodDpcIjQzXCJ9KSwoMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMCAxLjAyNDQxSDcuMDc4M0MxNC43NzIgMS4wMjQ0MSAyMS43ODM2IDUuNDM3NjUgMjUuMTExIDEyLjM3NDZMMzMuODg4OSAzMC42NzQzQzM3LjIxNjQgMzcuNjExMiA0NC4yMjggNDIuMDI0NCA1MS45MjE3IDQyLjAyNDRINTlIMEwwIDEuMDI0NDFaXCJ9KV19KSwoMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMCAxLjAyNDQxSDcuMDc4M0MxNC43NzIgMS4wMjQ0MSAyMS43ODM2IDUuNDM3NjUgMjUuMTExIDEyLjM3NDZMMzMuODg4OSAzMC42NzQzQzM3LjIxNjQgMzcuNjExMiA0NC4yMjggNDIuMDI0NCA1MS45MjE3IDQyLjAyNDRINTlIMEwwIDEuMDI0NDFaXCIsZmlsbDpcInZhcigtLWJhY2tncm91bmQtY29sb3IpXCJ9KSwoMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMCAxLjAyNDQxTDAgMC4wMjQ0MTQxSC0xVjEuMDI0NDFIMFpNMCA0Mi4wMjQ0SC0xVjQzLjAyNDRIMEwwIDQyLjAyNDRaTTMzLjg4ODkgMzAuNjc0M0wzMi45ODczIDMxLjEwNjhMMzMuODg4OSAzMC42NzQzWk0yNS4xMTEgMTIuMzc0NkwyNi4wMTI3IDExLjk0MjFMMjUuMTExIDEyLjM3NDZaTTAgMi4wMjQ0MUg3LjA3ODNWMC4wMjQ0MTQxSDBMMCAyLjAyNDQxWk01OSA0MS4wMjQ0SDBMMCA0My4wMjQ0SDU5VjQxLjAyNDRaTTEgNDIuMDI0NEwxIDEuMDI0NDFILTFMLTEgNDIuMDI0NEgxWk0yNC4yMDk0IDEyLjgwNzFMMzIuOTg3MyAzMS4xMDY4TDM0Ljc5MDYgMzAuMjQxOEwyNi4wMTI3IDExLjk0MjFMMjQuMjA5NCAxMi44MDcxWk01MS45MjE3IDQzLjAyNDRINTlWNDEuMDI0NEg1MS45MjE3VjQzLjAyNDRaTTMyLjk4NzMgMzEuMTA2OEMzNi40ODExIDM4LjM5MDUgNDMuODQzMyA0My4wMjQ0IDUxLjkyMTcgNDMuMDI0NFY0MS4wMjQ0QzQ0LjYxMjcgNDEuMDI0NCAzNy45NTE3IDM2LjgzMTggMzQuNzkwNiAzMC4yNDE4TDMyLjk4NzMgMzEuMTA2OFpNNy4wNzgzIDIuMDI0NDFDMTQuMzg3MyAyLjAyNDQxIDIxLjA0ODMgNi4yMTY5OSAyNC4yMDk0IDEyLjgwNzFMMjYuMDEyNyAxMS45NDIxQzIyLjUxODggNC42NTgzMSAxNS4xNTY3IDAuMDI0NDE0MSA3LjA3ODMgMC4wMjQ0MTQxVjIuMDI0NDFaXCIsZmlsbDpcInZhcigtLXN0cm9rZS1jb2xvcilcIixtYXNrOlwidXJsKCNlcnJvcl9vdmVybGF5X25hdl9wYXRoXzNfb3V0c2lkZV8yXzI2NjdfMTQ2ODcpXCJ9KV19KV19KX1mdW5jdGlvbiBuVihlKXt2YXIgbix0LHI9ZS5jaGlsZHJlbixvPWUub25DbG9zZSxhPWUuZm9vdGVyLGk9ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sbi5pbmRleE9mKHQpPj0wfHwob1t0XT1lW3RdKTtyZXR1cm4gb30oZSxuKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLCEobi5pbmRleE9mKHQpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkmJihvW3RdPWVbdF0pfXJldHVybiBvfShlLFtcImNoaWxkcmVuXCIsXCJvbkNsb3NlXCIsXCJmb290ZXJcIl0pO3JldHVybigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1kaWFsb2ctY29udGFpbmVyXCIsY2hpbGRyZW46WygwLHkuanN4KShlWiwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtcImFyaWEtbGFiZWxsZWRieVwiOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCIsXCJhcmlhLWRlc2NyaWJlZGJ5XCI6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiLGNsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktZGlhbG9nLXNjcm9sbFwiLG9uQ2xvc2U6b30saSksdD10PXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKSxhXX0pfWZ1bmN0aW9uIG5xKGUpe3ZhciBuPWUuY2hpbGRyZW47cmV0dXJuKDAseS5qc3gpKGVLLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcIixjaGlsZHJlbjpufSl9ZnVuY3Rpb24gblcoZSl7dmFyIG49ZS5jaGlsZHJlbjtyZXR1cm4oMCx5LmpzeCkoZVkse2NsYXNzTmFtZTpcIm5leHRqcy1jb250YWluZXItZXJyb3JzLWJvZHlcIixjaGlsZHJlbjpufSl9dmFyIG4kPTAsblo9ZnVuY3Rpb24oZSl7dmFyIHIsbyxhPWUuY2xhc3NOYW1lLGk9ZS5jaGlsZHJlbixsPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJjbGFzc05hbWVcIixcImNoaWxkcmVuXCJdKTtyZXR1cm4geC51c2VFZmZlY3QoZnVuY3Rpb24oKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe2lmKCEobiQrKz4wKSl7dmFyIGU9d2luZG93LmlubmVyV2lkdGgtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO2U+MCYmKG49ZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQsZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQ9XCJcIi5jb25jYXQoZSxcInB4XCIpKSx0PWRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3csZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz1cImhpZGRlblwifX0pLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpezAhPT1uJCYmMD09LS1uJCYmKHZvaWQgMCE9PW4mJihkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodD1uLG49dm9pZCAwKSx2b2lkIDAhPT10JiYoZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz10LHQ9dm9pZCAwKSl9KX19LFtdKSwoMCx5LmpzeCkoXCJkaXZcIiwocj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtcImRhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XCI6ITAsY2xhc3NOYW1lOmF9LGwpLG89bz17Y2hpbGRyZW46aX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhvKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChvKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkocixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobyxlKSl9KSxyKSl9O2Z1bmN0aW9uIG5ZKGUpe3ZhciBuLHQscj1lLmNoaWxkcmVuLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sbi5pbmRleE9mKHQpPj0wfHwob1t0XT1lW3RdKTtyZXR1cm4gb30oZSxuKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLCEobi5pbmRleE9mKHQpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkmJihvW3RdPWVbdF0pfXJldHVybiBvfShlLFtcImNoaWxkcmVuXCJdKTtyZXR1cm4oMCx5LmpzeCkoblosKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7fSxvKSx0PXQ9e2NoaWxkcmVuOnJ9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkpfSksbikpfWZ1bmN0aW9uIG5YKGUpe3ZhciBuPU1hdGgubWluKGUuZXJyb3JDb3VudC1lLmFjdGl2ZUlkeC0xLDIpO3JldHVybigwLHkuanN4KShcImRpdlwiLHtcImFyaWEtaGlkZGVuXCI6ITAsY2xhc3NOYW1lOlwiZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2tcIixjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLXN0YWNrXCIsXCJkYXRhLXN0YWNrLWNvdW50XCI6bixjaGlsZHJlbjpbKDAseS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyIGVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyLTFcIixjaGlsZHJlbjpcIjFcIn0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllciBlcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllci0yXCIsY2hpbGRyZW46XCIyXCJ9KV19KX0pfWZ1bmN0aW9uIG5LKGUpe3ZhciBuPWUuZW52aXJvbm1lbnROYW1lO3JldHVybigwLHkuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1lbnZpcm9ubWVudC1uYW1lLWxhYmVsXCI6ITAsY2hpbGRyZW46bn0pfXZhciBuUT1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2Vycm9ycy9kZXYtdG9vbHMtaW5kaWNhdG9yL3V0aWxzLnRzXCIpLG5HPSgwLHguZm9yd2FyZFJlZikoZnVuY3Rpb24oZSxuKXt2YXIgdD1lLnN0b3Ascj1lLmJsdXIsbz1lLnNpZGUsYT1lLnN0eWxlLGk9ZS5oZWlnaHQ7cmV0dXJuKDAseS5qc3gpKFwiZGl2XCIse3JlZjpuLFwiYXJpYS1oaWRkZW5cIjohMCxcImRhdGEtbmV4dGpzLXNjcm9sbC1mYWRlclwiOiEwLGNsYXNzTmFtZTpcIm5leHRqcy1zY3JvbGwtZmFkZXJcIixcImRhdGEtc2lkZVwiOm8sc3R5bGU6ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCItLXN0b3BcIjp0LFwiLS1ibHVyXCI6cixcIi0taGVpZ2h0XCI6XCJcIi5jb25jYXQoaSxcInB4XCIpfSxhKX0pfSk7ZnVuY3Rpb24gbkooZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIG4wKGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBuSihlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBuSihlLG4pfX0oZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX12YXIgbjE9KDAseC5mb3J3YXJkUmVmKShmdW5jdGlvbihlLG4pe3ZhciB0LHIsbyxhLGksbCxzLGMsdSxkLGY9ZS5jaGlsZHJlbixwPWUubWVhc3VyZSxoPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJjaGlsZHJlblwiLFwibWVhc3VyZVwiXSksZz0oMCx4LnVzZVJlZikobnVsbCksbT1uMCgodD1nLHI9cCxhPShvPW4wKCgwLHgudXNlU3RhdGUpKDApLDIpKVswXSxpPW9bMV0scz0obD1uMCgoMCx4LnVzZVN0YXRlKSghMCksMikpWzBdLGM9bFsxXSwoMCx4LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtpZihyKXt2YXIgZSxuPXQuY3VycmVudDtpZihuKXt2YXIgbz1uZXcgUmVzaXplT2JzZXJ2ZXIoZnVuY3Rpb24obil7dmFyIHQ9bjAobiwxKVswXS5jb250ZW50UmVjdDtjbGVhclRpbWVvdXQoZSksZT13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2MoITEpfSwxMDApLGkodC5oZWlnaHQpfSk7cmV0dXJuIG8ub2JzZXJ2ZShuKSxmdW5jdGlvbigpe3JldHVybiBvLmRpc2Nvbm5lY3QoKX19fX0sW3JdKSxbYSxzXSksMiksdj1tWzBdLGI9bVsxXTtyZXR1cm4oMCx5LmpzeCkoXCJkaXZcIiwodT1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt9LGgpLGQ9ZD17cmVmOm4sc3R5bGU6e2hlaWdodDpiP1wiYXV0b1wiOnYsdHJhbnNpdGlvbjpcImhlaWdodCAyNTBtcyB2YXIoLS10aW1pbmctc3dpZnQpXCJ9LGNoaWxkcmVuOigwLHkuanN4KShcImRpdlwiLHtyZWY6ZyxjaGlsZHJlbjpmfSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoZCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QoZCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHUsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQsZSkpfSksdSkpfSk7ZnVuY3Rpb24gbjIoZSl7dmFyIG49ZS5maXhlZCx0PWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJmaXhlZFwiXSk7cmV0dXJuKDAseS5qc3gpKFwiZGl2XCIsZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3BcIjohMCxcImRhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZFwiOiEhbnx8dm9pZCAwfSx0KSl9ZnVuY3Rpb24gbjQoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIG41KGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiBuMyhlLG4pe3JldHVybiBuPW51bGwhPW4/bjp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pLGV9ZnVuY3Rpb24gbjYoZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG40KGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG40KGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIG45KGUpe3ZhciBuPWUuZXJyb3JNZXNzYWdlLHQ9ZS5lcnJvclR5cGUscj1lLmNoaWxkcmVuLG89ZS5lcnJvckNvZGUsYT1lLmVycm9yQ291bnQsaT1lLmVycm9yLGw9ZS5kZWJ1Z0luZm8scz1lLmlzQnVpbGRFcnJvcixjPWUub25DbG9zZSx1PWUudmVyc2lvbkluZm8sZD1lLnJ1bnRpbWVFcnJvcnMsZj1lLmFjdGl2ZUlkeCxwPWUuc2V0QWN0aXZlSW5kZXgsaD1lLmlzVHVyYm9wYWNrLGc9ZS5kaWFsb2dSZXNpemVyUmVmLG09ZS5yZW5kZXJlZCx2PXZvaWQgMD09PW18fG0sYj1lLnRyYW5zaXRpb25EdXJhdGlvbk1zLHc9e1wiZGF0YS1yZW5kZXJlZFwiOnYsc3R5bGU6e1wiLS10cmFuc2l0aW9uLWR1cmF0aW9uXCI6XCJcIi5jb25jYXQoYixcIm1zXCIpfX0saj1uNih4LnVzZVN0YXRlKCEhYiksMiksaz1qWzBdLEE9alsxXSxPPXgudXNlUmVmKG51bGwpLEM9ISFvLFM9eC51c2VSZWYobnVsbCk7cmV0dXJuKDAsblEuUDUpKFMsbnVsbCx2KSwoMCx5LmpzeHMpKG5ZLG4zKG41KHt9LHcpLHtjaGlsZHJlbjpbKDAseS5qc3gpKG4yLHtmaXhlZDpzfSksKDAseS5qc3hzKShcImRpdlwiLG4zKG41KHtcImRhdGEtbmV4dGpzLWRpYWxvZy1yb290XCI6ITAsb25UcmFuc2l0aW9uRW5kOmZ1bmN0aW9uKGUpe3ZhciBuPWUucHJvcGVydHlOYW1lLHQ9ZS50YXJnZXQ7XCJzY2FsZVwiPT09biYmdD09PVMuY3VycmVudCYmQSghMSl9LHJlZjpTfSx3KSx7Y2hpbGRyZW46WygwLHkuanN4KShuSCx7cnVudGltZUVycm9yczpkLGFjdGl2ZUlkeDpmLHNldEFjdGl2ZUluZGV4OnAsdmVyc2lvbkluZm86dSxpc1R1cmJvcGFjazpofSksKDAseS5qc3hzKShuVix7b25DbG9zZTpjLGRpYWxvZ1Jlc2l6ZXJSZWY6ZyxcImRhdGEtaGFzLWZvb3RlclwiOkMsb25TY3JvbGw6ZnVuY3Rpb24oZSl7aWYoTy5jdXJyZW50KXt2YXIgbix0LHI9KG49ZS5jdXJyZW50VGFyZ2V0LnNjcm9sbFRvcC8xNyxNYXRoLm1pbihNYXRoLm1heChuLCh0PW42KFswLDFdLDIpKVswXSksdFsxXSkpO08uY3VycmVudC5zdHlsZS5vcGFjaXR5PVN0cmluZyhyKX19LGZvb3RlcjpDJiYoMCx5LmpzeCkoblMse2Vycm9yQ29kZTpvfSksY2hpbGRyZW46WygwLHkuanN4KShuMSx7cmVmOmcsbWVhc3VyZTohayxcImRhdGEtbmV4dGpzLWRpYWxvZy1zaXplclwiOiEwLGNoaWxkcmVuOigwLHkuanN4cykoZVgse2NoaWxkcmVuOlsoMCx5LmpzeHMpKG5xLHtjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2Vycm9yX3RpdGxlXCIsXCJkYXRhLW5leHRqcy1lcnJvci1jb2RlXCI6byxjaGlsZHJlbjpbKDAseS5qc3hzKShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1lcnJvci1sYWJlbC1ncm91cFwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkobkwse2Vycm9yVHlwZTp0fSksaS5lbnZpcm9ubWVudE5hbWUmJigwLHkuanN4KShuSyx7ZW52aXJvbm1lbnROYW1lOmkuZW52aXJvbm1lbnROYW1lfSldfSksKDAseS5qc3gpKG54LHtlcnJvcjppLGRlYnVnSW5mbzpsfSldfSksKDAseS5qc3gpKG56LHtlcnJvck1lc3NhZ2U6bn0pXX0pLCgwLHkuanN4KShuVyx7Y2hpbGRyZW46cn0pXX0pfSksKDAseS5qc3gpKG5YLHtlcnJvckNvdW50OmEsYWN0aXZlSWR4Om51bGwhPWY/ZjowfSldfSksKDAseS5qc3gpKG5HLHtyZWY6TyxzaWRlOlwidG9wXCIsc3RvcDpcIjUwJVwiLGJsdXI6XCI0cHhcIixoZWlnaHQ6NDh9KV19KSldfSkpfXZhciBuOD1cIlxcbiAgXCIuY29uY2F0KFwiXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcXG4gICAgcGFkZGluZzogaW5pdGlhbDtcXG4gICAgdG9wOiAxMHZoO1xcbiAgfVxcblwiLFwiXFxuICBcIikuY29uY2F0KFwiXFxuICAuZXJyb3Itb3ZlcmxheS1kaWFsb2ctY29udGFpbmVyIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gICAgYm9yZGVyOiB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLW5leHQtZGlhbG9nLXJhZGl1cykgdmFyKC0tbmV4dC1kaWFsb2ctcmFkaXVzKTtcXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1lbnUpO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS1kaWFsb2ctc2Nyb2xsIHtcXG4gICAgb3ZlcmZsb3cteTogYXV0bztcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgfVxcblwiLFwiXFxuICBcIikuY29uY2F0KFwiXFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IGgxIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTIwKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjQpO1xcbiAgICBmb250LXdlaWdodDogYm9sZDtcXG4gICAgbWFyZ2luOiBjYWxjKDE2cHggKiAxLjUpIDA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10aXRsZS1oMSk7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHNtYWxsIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMSk7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBzbWFsbCA+IHNwYW4ge1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IGRpdiA+IHNtYWxsIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBtYXJnaW4tdG9wOiA0cHg7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyID4gcCA+IGEge1xcbiAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyXFxuICAgID4gLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMTZweDtcXG4gICAgcmlnaHQ6IDE2cHg7XFxuICB9XFxuXCIsXCJcXG4gIFwiKS5jb25jYXQoXCJcIixcIlxcblxcbiAgXCIpLmNvbmNhdChcIlxcbiAgW2RhdGEtbmV4dGpzLWVycm9yLW92ZXJsYXktbmF2XSB7XFxuICAgIC0tc3Ryb2tlLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIC0tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuXFxuICAgIHdpZHRoOiAxMDAlO1xcblxcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHotaW5kZXg6IDI7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIHRyYW5zbGF0ZTogdmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKSB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpO1xcbiAgICBtYXgtd2lkdGg6IHZhcigtLW5leHQtZGlhbG9nLW1heC13aWR0aCk7XFxuXFxuICAgIC5lcnJvci1vdmVybGF5LW5vdGNoIHtcXG4gICAgICB0cmFuc2xhdGU6IGNhbGModmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKSAqIC0xKTtcXG4gICAgICB3aWR0aDogYXV0bztcXG4gICAgICBoZWlnaHQ6IHZhcigtLW5leHQtZGlhbG9nLW5vdGNoLWhlaWdodCk7XFxuICAgICAgcGFkZGluZzogMTJweDtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcXG4gICAgICBib3JkZXI6IHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tc3Ryb2tlLWNvbG9yKTtcXG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG5cXG4gICAgICAmW2RhdGEtc2lkZT0nbGVmdCddIHtcXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1uZXh0LWRpYWxvZy1yYWRpdXMpIDAgMCAwO1xcblxcbiAgICAgICAgLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCB7XFxuICAgICAgICAgIHJpZ2h0OiAtNTRweDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgID4gKjpub3QoLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCkge1xcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG5cXG4gICAgICAmW2RhdGEtc2lkZT0ncmlnaHQnXSB7XFxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLW5leHQtZGlhbG9nLXJhZGl1cykgMCAwO1xcblxcbiAgICAgICAgLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCB7XFxuICAgICAgICAgIGxlZnQ6IC01NHB4O1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgID4gKjpub3QoLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCkge1xcbiAgICAgICAgICBtYXJnaW4tbGVmdDogLTEycHg7XFxuICAgICAgICB9XFxuICAgICAgfVxcblxcbiAgICAgIC5lcnJvci1vdmVybGF5LW5vdGNoLXRhaWwge1xcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgdG9wOiBjYWxjKHZhcigtLW5leHQtZGlhbG9nLWJvcmRlci13aWR0aCkgKiAtMSk7XFxuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgICAgIHotaW5kZXg6IC0xO1xcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMCUgKyB2YXIoLS1uZXh0LWRpYWxvZy1ib3JkZXItd2lkdGgpKTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xcbiAgICBbZGF0YS1uZXh0anMtZXJyb3Itb3ZlcmxheS1uYXZdIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcXG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1uZXh0LWRpYWxvZy1yYWRpdXMpIHZhcigtLW5leHQtZGlhbG9nLXJhZGl1cykgMCAwO1xcbiAgICAgIGJvcmRlcjogdmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1zdHJva2UtY29sb3IpO1xcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICB0cmFuc2xhdGU6IDAgdmFyKC0tbmV4dC1kaWFsb2ctYm9yZGVyLXdpZHRoKTtcXG4gICAgICBcXG4gICAgICAuZXJyb3Itb3ZlcmxheS1ub3RjaCB7XFxuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICAgICAgYm9yZGVyOiAwO1xcblxcbiAgICAgICAgJltkYXRhLXNpZGU9XFxcImxlZnRcXFwiXSwgJltkYXRhLXNpZGU9XFxcInJpZ2h0XFxcIl0ge1xcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgLmVycm9yLW92ZXJsYXktbm90Y2gtdGFpbCB7XFxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XFxuICAgICAgICB9XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXCIsXCJcXG4gIFwiKS5jb25jYXQoXCJcXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWwge1xcbiAgICBwYWRkaW5nOiAycHggNnB4O1xcbiAgICBtYXJnaW46IDA7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbWQtMik7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXJlZC0xMDApO1xcbiAgICBmb250LXdlaWdodDogNjAwO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTkwMCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gIH1cXG5cIixcIlxcbiAgXCIpLmNvbmNhdChcIlxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc193cmFwcGVyIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgfVxcblxcbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTkwMCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGxldHRlci1zcGFjaW5nOiAtMC4zMnB4O1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yNCk7XFxuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XFxuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXG4gIH1cXG5cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzYy50cnVuY2F0ZWQge1xcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG5cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZ3JhZGllbnRfb3ZlcmxheSB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgaGVpZ2h0OiA4NXB4O1xcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgMTgwZGVnLFxcbiAgICAgIHJnYmEoMjUwLCAyNTAsIDI1MCwgMCkgMCUsXFxuICAgICAgdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApIDEwMCVcXG4gICAgKTtcXG4gIH1cXG5cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZXhwYW5kX2J1dHRvbiB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAxMHB4O1xcbiAgICBsZWZ0OiA1MCU7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcGFkZGluZzogNnB4IDhweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xcbiAgICBib3gtc2hhZG93OlxcbiAgICAgIDBweCAycHggMnB4IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMTAwKSxcXG4gICAgICAwcHggOHB4IDhweCAtOHB4IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEzKTtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcXG4gIH1cXG5cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZXhwYW5kX2J1dHRvbjpob3ZlciB7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gIH1cXG5cIixcIlxcbiAgXCIpLmNvbmNhdChcIlxcbiAgLmVycm9yLW92ZXJsYXktdG9vbGJhciB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGdhcDogNnB4O1xcbiAgfVxcblxcbiAgLm5vZGVqcy1pbnNwZWN0b3ItYnV0dG9uLFxcbiAgLmNvcHktc3RhY2stdHJhY2UtYnV0dG9uLFxcbiAgLmRvY3MtbGluay1idXR0b24ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG5cXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMjgpO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjgpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtYWxsKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG5cXG4gICAgc3ZnIHtcXG4gICAgICB3aWR0aDogdmFyKC0tc2l6ZS0xNCk7XFxuICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE0KTtcXG4gICAgfVxcblxcbiAgICAmOmZvY3VzIHtcXG4gICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgfVxcblxcbiAgICAmOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTEwMCk7XFxuICAgIH1cXG5cXG4gICAgJjpub3QoOmRpc2FibGVkKTphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktYWxwaGEtMjAwKTtcXG4gICAgfVxcblxcbiAgICAmOmRpc2FibGVkIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktdG9vbGJhci1idXR0b24taWNvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICB9XFxuXCIsXCJcXG5cXG4gIFtkYXRhLW5leHRqcy1lcnJvci1sYWJlbC1ncm91cF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDhweDtcXG4gIH1cXG5cIik7ZnVuY3Rpb24gbjcoZSl7dmFyIG4sdCxyPWUuZmlsZSxvPWUubG9jYXRpb24sYT1lRSh7ZmlsZTpyLGxpbmVOdW1iZXI6bnVsbCE9KG49bnVsbD09bz92b2lkIDA6by5saW5lKT9uOjEsY29sdW1uOm51bGwhPSh0PW51bGw9PW8/dm9pZCAwOm8uY29sdW1uKT90OjB9KTtyZXR1cm4oMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtcIjohMCxcImRhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLWltcG9ydC10cmFjZVwiOiEwLHJvbGU6XCJsaW5rXCIsb25DbGljazphLHRpdGxlOlwiQ2xpY2sgdG8gb3BlbiBpbiB5b3VyIGVkaXRvclwiLGNoaWxkcmVuOltyLG8/XCI6XCIuY29uY2F0KG8ubGluZSxcIjpcIikuY29uY2F0KG8uY29sdW1uKTpudWxsLCgwLHkuanN4cykoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHZpZXdCb3g6XCIwIDAgMjQgMjRcIixmaWxsOlwibm9uZVwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLHN0cm9rZVdpZHRoOlwiMlwiLHN0cm9rZUxpbmVjYXA6XCJyb3VuZFwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDZcIn0pLCgwLHkuanN4KShcInBvbHlsaW5lXCIse3BvaW50czpcIjE1IDMgMjEgMyAyMSA5XCJ9KSwoMCx5LmpzeCkoXCJsaW5lXCIse3gxOlwiMTBcIix5MTpcIjE0XCIseDI6XCIyMVwiLHkyOlwiM1wifSldfSldfSl9ZnVuY3Rpb24gdGUoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfXZhciB0bj1mdW5jdGlvbihlKXt2YXIgbix0LHIsbyxhLGksbCxzLGMsdSxkPWUuY29udGVudCxmPXgudXNlTWVtbyhmdW5jdGlvbigpe3ZhciBlLG4sdDtyZXR1cm4gbj1mdW5jdGlvbihlKXt2YXIgbix0LHI9ZS5zaGlmdCgpO2lmKCFyKXJldHVybiBudWxsO3ZhciBvPShuPXIuc3BsaXQoXCI6XCIsMyksdD0zLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMyl8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRlKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHRlKGUsbil9fShuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxhPW9bMF0saT1vWzFdLGw9b1syXSxzPU51bWJlcihpKSxjPU51bWJlcihsKSx1PSFOdW1iZXIuaXNOYU4ocykmJiFOdW1iZXIuaXNOYU4oYyk7cmV0dXJue2ZpbGVOYW1lOnU/YTpyLGxvY2F0aW9uOnU/e2xpbmU6cyxjb2x1bW46Y306dm9pZCAwfX0oZT1kLnNwbGl0KFwiXFxuXCIpKSx0PWZ1bmN0aW9uKGUpe2lmKGUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4vUmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3I6Ly50ZXN0KGUpfSl8fGUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4vSW1wb3J0IHRyYWNlIGZvciByZXF1ZXN0ZWQgbW9kdWxlOi8udGVzdChlKX0pKXtmb3IodmFyIG49W107Ly4rXFwuLisvLnRlc3QoZVtlLmxlbmd0aC0xXSkmJiFlW2UubGVuZ3RoLTFdLmluY2x1ZGVzKFwiOlwiKTspe3ZhciB0PWUucG9wKCkudHJpbSgpO24udW5zaGlmdCh0KX1yZXR1cm4gbn1yZXR1cm5bXX0oZSkse2ZpbGU6bixzb3VyY2U6ZS5qb2luKFwiXFxuXCIpLGltcG9ydFRyYWNlRmlsZXM6dH19LFtkXSkscD1mLmZpbGUsaD1mLnNvdXJjZSxnPWYuaW1wb3J0VHJhY2VGaWxlcyxtPXgudXNlTWVtbyhmdW5jdGlvbigpe3JldHVybiBlSCgpLmFuc2lUb0pzb24oaCx7anNvbjohMCx1c2VfY2xhc3NlczohMCxyZW1vdmVfZW1wdHk6ITB9KX0sW2hdKSx2PWVFKHtmaWxlOm51bGw9PXA/dm9pZCAwOnAuZmlsZU5hbWUsbGluZU51bWJlcjpudWxsIT0oaT1udWxsPT1wfHxudWxsPT0obj1wLmxvY2F0aW9uKT92b2lkIDA6bi5saW5lKT9pOjEsY29sdW1uOm51bGwhPShsPW51bGw9PXB8fG51bGw9PSh0PXAubG9jYXRpb24pP3ZvaWQgMDp0LmNvbHVtbik/bDowfSksYj17ZmlsZTpudWxsIT0ocz1udWxsPT1wP3ZvaWQgMDpwLmZpbGVOYW1lKT9zOm51bGwsbWV0aG9kTmFtZTpcIlwiLGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOm51bGwhPShjPW51bGw9PXB8fG51bGw9PShyPXAubG9jYXRpb24pP3ZvaWQgMDpyLmxpbmUpP2M6bnVsbCxjb2x1bW46bnVsbCE9KHU9bnVsbD09cHx8bnVsbD09KG89cC5sb2NhdGlvbik/dm9pZCAwOm8uY29sdW1uKT91Om51bGx9LHc9bnVsbD09Ynx8bnVsbD09KGE9Yi5maWxlKT92b2lkIDA6YS5zcGxpdChcIi5cIikucG9wKCk7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNvZGVmcmFtZVwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY29kZS1mcmFtZS1oZWFkZXJcIixjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtbGlua1wiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImNvZGUtZnJhbWUtaWNvblwiLGNoaWxkcmVuOigwLHkuanN4KShlVCx7bGFuZzp3fSl9KSwoMCx5LmpzeCkoXCJzcGFuXCIse1wiZGF0YS10ZXh0XCI6ITAsY2hpbGRyZW46ZVMoYil9KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWxhYmVsXCI6XCJPcGVuIGluIGVkaXRvclwiLFwiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstc291cmNlLWZpbGVcIjohMCxvbkNsaWNrOnYsY2hpbGRyZW46KDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLWljb25cIixcImRhdGEtaWNvblwiOlwicmlnaHRcIixjaGlsZHJlbjooMCx5LmpzeCkoZXose3dpZHRoOjE2LGhlaWdodDoxNn0pfSl9KV19KX0pLCgwLHkuanN4KShcInByZVwiLHtjbGFzc05hbWU6XCJjb2RlLWZyYW1lLXByZVwiLGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiY29kZS1mcmFtZS1saW5lc1wiLGNoaWxkcmVuOlttLm1hcChmdW5jdGlvbihlLG4pe3JldHVybigwLHkuanN4KShcInNwYW5cIix7c3R5bGU6ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7Y29sb3I6ZS5mZz9cInZhcigtLWNvbG9yLVwiLmNvbmNhdChlLmZnLFwiKVwiKTp2b2lkIDB9LFwiYm9sZFwiPT09ZS5kZWNvcmF0aW9uP3tmb250V2VpZ2h0OjUwMH06XCJpdGFsaWNcIj09PWUuZGVjb3JhdGlvbj97Zm9udFN0eWxlOlwiaXRhbGljXCJ9OnZvaWQgMCksY2hpbGRyZW46KDAseS5qc3gpKGViLHt0ZXh0OmUuY29udGVudH0pfSxcInRlcm1pbmFsLWVudHJ5LVwiLmNvbmNhdChuKSl9KSxnLm1hcChmdW5jdGlvbihlKXtyZXR1cm4oMCx5LmpzeCkobjcse2lzU291cmNlRmlsZTohMSxmaWxlOmV9LGUpfSldfSl9KV19KX0sdHQ9ZnVuY3Rpb24oZSl7dmFyIG49ZS5zcGxpdChcIlxcblwiKTtyZXR1cm4gZVUoKShuWzFdfHxcIlwiKS5yZXBsYWNlKC9eRXJyb3I6IC8sXCJcIil9LHRyPWZ1bmN0aW9uKGUpe3ZhciBuLHQscj1lLm1lc3NhZ2Usbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSxuLmluZGV4T2YodCk+PTB8fChvW3RdPWVbdF0pO3JldHVybiBvfShlLG4pO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sIShuLmluZGV4T2YodCk+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0KSYmKG9bdF09ZVt0XSl9cmV0dXJuIG99KGUsW1wibWVzc2FnZVwiXSksYT0oMCx4LnVzZUNhbGxiYWNrKShmdW5jdGlvbigpe30sW10pLGk9RXJyb3IociksbD0oMCx4LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHR0KHIpfHxcIkZhaWxlZCB0byBjb21waWxlXCJ9LFtyXSk7cmV0dXJuKDAseS5qc3gpKG45LChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe2Vycm9yVHlwZTpcIkJ1aWxkIEVycm9yXCIsZXJyb3JNZXNzYWdlOmwsb25DbG9zZTphLGVycm9yOml9LG8pLHQ9dD17Y2hpbGRyZW46KDAseS5qc3gpKHRuLHtjb250ZW50OnJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9LHRvPWZ1bmN0aW9uKGUpe3ZhciBuLHQ9ZS5mcmFtZSxyPW51bGwhPShuPXQub3JpZ2luYWxTdGFja0ZyYW1lKT9uOnQuc291cmNlU3RhY2tGcmFtZSxvPSEhdC5vcmlnaW5hbENvZGVGcmFtZSxhPWVFKG8/e2ZpbGU6ci5maWxlLGxpbmVOdW1iZXI6ci5saW5lTnVtYmVyLGNvbHVtbjpyLmNvbHVtbn06dm9pZCAwKSxpPWVTKHIpO3JldHVybiBpPygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXCI6ITAsXCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lLW5vLXNvdXJjZVwiOiFvLFwiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZS1pZ25vcmVkXCI6dC5pZ25vcmVkLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImNhbGwtc3RhY2stZnJhbWUtbWV0aG9kLW5hbWVcIixjaGlsZHJlbjpbKDAseS5qc3gpKGViLHt0ZXh0OnIubWV0aG9kTmFtZX0pLG8mJigwLHkuanN4KShcImJ1dHRvblwiLHtvbkNsaWNrOmEsY2xhc3NOYW1lOlwib3Blbi1pbi1lZGl0b3ItYnV0dG9uXCIsXCJhcmlhLWxhYmVsXCI6XCJPcGVuIFwiLmNvbmNhdChyLm1ldGhvZE5hbWUsXCIgaW4gZWRpdG9yXCIpLGNoaWxkcmVuOigwLHkuanN4KShleix7d2lkdGg6MTYsaGVpZ2h0OjE2fSl9KSx0LmVycm9yPygwLHkuanN4KShcImJ1dHRvblwiLHtjbGFzc05hbWU6XCJzb3VyY2UtbWFwcGluZy1lcnJvci1idXR0b25cIixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGNvbnNvbGUuZXJyb3IodC5yZWFzb24pfSx0aXRsZTpcIlNvdXJjZW1hcHBpbmcgZmFpbGVkLiBDbGljayB0byBsb2cgY2F1c2Ugb2YgZXJyb3IuXCIsY2hpbGRyZW46KDAseS5qc3gpKGVMLHt3aWR0aDoxNixoZWlnaHQ6MTZ9KX0pOm51bGxdfSksKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJjYWxsLXN0YWNrLWZyYW1lLWZpbGUtc291cmNlXCIsXCJkYXRhLWhhcy1zb3VyY2VcIjpvLGNoaWxkcmVuOml9KV19KTpudWxsfTtmdW5jdGlvbiB0YSgpe3JldHVybigwLHkuanN4KShcInN2Z1wiLHt3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTguNzA3MjIgMi4zOTY0MUM4LjMxNjcgMi4wMDU4OCA3LjY4MzUzIDIuMDA1ODggNy4yOTMwMSAyLjM5NjQxTDQuNDY5NzggNS4yMTk2M0wzLjkzOTQ1IDUuNzQ5OTZMNS4wMDAxMSA2LjgxMDYyTDUuNTMwNDQgNi4yODAyOUw4LjAwMDExIDMuODEwNjJMMTAuNDY5OCA2LjI4MDI5TDExLjAwMDEgNi44MTA2MkwxMi4wNjA4IDUuNzQ5OTZMMTEuNTMwNCA1LjIxOTYzTDguNzA3MjIgMi4zOTY0MVpNNS41MzA0NCA5LjcxOTYzTDUuMDAwMTEgOS4xODkzTDMuOTM5NDUgMTAuMjVMNC40Njk3OCAxMC43ODAzTDcuMjkzMDEgMTMuNjAzNUM3LjY4MzUzIDEzLjk5NCA4LjMxNjcgMTMuOTk0IDguNzA3MjIgMTMuNjAzNUwxMS41MzA0IDEwLjc4MDNMMTIuMDYwOCAxMC4yNUwxMS4wMDAxIDkuMTg5M0wxMC40Njk4IDkuNzE5NjNMOC4wMDAxMSAxMi4xODkzTDUuNTMwNDQgOS43MTk2M1pcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pfWZ1bmN0aW9uIHRpKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stY29udGFpbmVyXSB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgbWFyZ2luLXRvcDogOHB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2staGVhZGVyXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgbWluLWhlaWdodDogdmFyKC0tc2l6ZS0yOCk7XFxuICAgIHBhZGRpbmc6IDhweCA4cHggMTJweCA0cHg7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stdGl0bGVdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDhweDtcXG5cXG4gICAgbWFyZ2luOiAwO1xcblxcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvdW50XSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcblxcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS0yMCk7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuICAgIGdhcDogNHB4O1xcblxcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTEpO1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0xNik7XFxuXFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWlnbm9yZWQtbGlzdC10b2dnbGUtYnV0dG9uXSB7XFxuICAgIGFsbDogdW5zZXQ7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogNnB4O1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcXG4gICAgcGFkZGluZzogNHB4IDZweDtcXG4gICAgbWFyZ2luLXJpZ2h0OiAtNnB4O1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGVhc2U7XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgfVxcblxcbiAgICAmOmZvY3VzIHtcXG4gICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgfVxcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuICB9XFxuXCJdLG58fChuPWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKG4pfX0pKSk7cmV0dXJuIHRpPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHR9ZnVuY3Rpb24gdGwoZSl7dmFyIG49ZS5mcmFtZXMsdD1lLmlzSWdub3JlTGlzdE9wZW4scj1lLmlnbm9yZWRGcmFtZXNUYWxseSxvPWUub25Ub2dnbGVJZ25vcmVMaXN0O3JldHVybigwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvbnRhaW5lclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1oZWFkZXJcIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcInBcIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLXRpdGxlXCI6ITAsY2hpbGRyZW46W1wiQ2FsbCBTdGFjayBcIiwoMCx5LmpzeCkoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb3VudFwiOiEwLGNoaWxkcmVuOm4ubGVuZ3RofSldfSkscj4wJiYoMCx5LmpzeHMpKFwiYnV0dG9uXCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1pZ25vcmVkLWxpc3QtdG9nZ2xlLWJ1dHRvblwiOnQsb25DbGljazpvLGNoaWxkcmVuOltcIlwiLmNvbmNhdCh0P1wiSGlkZVwiOlwiU2hvd1wiLFwiIFwiKS5jb25jYXQocixcIiBpZ25vcmUtbGlzdGVkIGZyYW1lKHMpXCIpLCgwLHkuanN4KSh0YSx7fSldfSldfSksbi5tYXAoZnVuY3Rpb24oZSxuKXtyZXR1cm4hZS5pZ25vcmVkfHx0PygwLHkuanN4KSh0byx7ZnJhbWU6ZX0sbik6bnVsbH0pXX0pfXZhciB0cz1laSh0aSgpKTtmdW5jdGlvbiB0YyhlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gdHUoZSl7dmFyIG4sdCxyPWUuZnJhbWVzLG89ZS5kaWFsb2dSZXNpemVyUmVmLGE9KDAseC51c2VSZWYpKE5hTiksaT0obj0oMCx4LnVzZVN0YXRlKSghMSksdD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRjKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHRjKGUsbil9fShuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxsPWlbMF0scz1pWzFdLGM9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiByLnJlZHVjZShmdW5jdGlvbihlLG4pe3JldHVybiBlKyArISFuLmlnbm9yZWR9LDApfSxbcl0pO3JldHVybigwLHkuanN4KSh0bCx7ZnJhbWVzOnIsaXNJZ25vcmVMaXN0T3BlbjpsLG9uVG9nZ2xlSWdub3JlTGlzdDpmdW5jdGlvbigpe3ZhciBlPW51bGw9PW8/dm9pZCAwOm8uY3VycmVudDtpZihlKXt2YXIgbj0obnVsbD09ZT92b2lkIDA6ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkuaGVpZ2h0O2EuY3VycmVudHx8KGEuY3VycmVudD1uKSxsPyhlLnN0eWxlLmhlaWdodD1cIlwiLmNvbmNhdChhLmN1cnJlbnQsXCJweFwiKSxlLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsZnVuY3Rpb24gbigpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIixuKSxzKCExKX0pKTpzKCEwKX19LGlnbm9yZWRGcmFtZXNUYWxseTpjfSl9ZnVuY3Rpb24gdGQoKXt2YXIgZSxuLHQ9KGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSkuY29sbGFwc2VkO3JldHVybigwLHkuanN4KShcInN2Z1wiLChlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jaGV2cm9uLWljb25cIjohMCxcImRhdGEtY29sbGFwc2VkXCI6dCx3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIixmaWxsOlwibm9uZVwifSxcImJvb2xlYW5cIj09dHlwZW9mIHQ/e3N0eWxlOnt0cmFuc2Zvcm06dD92b2lkIDA6XCJyb3RhdGUoOTBkZWcpXCJ9fTp7fSksbj1uPXtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse3N0eWxlOntmaWxsOlwidmFyKC0tY29sb3ItZm9udClcIn0sZmlsbFJ1bGU6XCJldmVub2RkXCIsZDpcIm02Ljc1IDMuOTQuNTMuNTMgMi44MjQgMi44MjNhMSAxIDAgMCAxIDAgMS40MTRMNy4yOCAxMS41M2wtLjUzLjUzTDUuNjkgMTFsLjUzLS41M0w4LjY5IDggNi4yMiA1LjUzIDUuNjkgNWwxLjA2LTEuMDZaXCIsY2xpcFJ1bGU6XCJldmVub2RkXCJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlKSl9ZnVuY3Rpb24gdGYoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIHRwKGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiB0ZihlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiB0ZihlLG4pfX0oZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiB0aChlKXt2YXIgbj1lLnJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZix0PXRwKCgwLHgudXNlU3RhdGUpKCEwKSwyKSxyPXRbMF0sbz10WzFdLGE9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBlPVtdO3JldHVybiBuLnNwbGl0KFwiXFxuXCIpLmZvckVhY2goZnVuY3Rpb24obix0KXt2YXIgcixvLGE9XCIrXCI9PT1uWzBdfHxcIi1cIj09PW5bMF0saT1cIj5cIj09PW5bMF0sbD1hfHxpLHM9bD9uWzBdOlwiXCIsYz1sP24uaW5kZXhPZihzKTotMSx1PXRwKGw/W24uc2xpY2UoMCxjKSxuLnNsaWNlKGMrMSldOltuLFwiXCJdLDIpLGQ9dVswXSxmPXVbMV07YT9lLnB1c2goKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZVwiOiEwLFwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZlwiOlwiK1wiPT09cz9cImFkZFwiOlwicmVtb3ZlXCIsY2hpbGRyZW46KDAseS5qc3hzKShcInNwYW5cIix7Y2hpbGRyZW46W2QsKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXCI6ITAsY2hpbGRyZW46c30pLGYsXCJcXG5cIl19KX0sXCJjb21wLWRpZmZcIit0KSk6ZS5wdXNoKCgwLHkuanN4cykoXCJzcGFuXCIsKHI9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWxpbmVcIjohMH0saT97XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1kaWZmXCI6XCJlcnJvclwifTp2b2lkIDApLG89bz17Y2hpbGRyZW46W2QsKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXCI6ITAsY2hpbGRyZW46c30pLGYsXCJcXG5cIl19LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobykpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QobykpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG8sZSkpfSksciksXCJjb21wLWRpZmZcIit0KSl9KSxlfSxbbl0pO3JldHVybigwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sXCI6ITAsXCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWNvbGxhcHNlXCI6cixjaGlsZHJlbjpbKDAseS5qc3gpKFwiYnV0dG9uXCIse1wiYXJpYS1leHBhbmRlZFwiOiFyLFwiYXJpYS1sYWJlbFwiOlwiY29tcGxldGUgQ29tcG9uZW50IFN0YWNrXCIsXCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWNvbGxhcHNlLWJ1dHRvblwiOiEwLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gbyghcil9LGNoaWxkcmVuOigwLHkuanN4KSh0ZCx7Y29sbGFwc2VkOnJ9KX0pLCgwLHkuanN4KShcInByZVwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2NvbXBvbmVudC1zdGFja1wiLGNoaWxkcmVuOigwLHkuanN4KShcImNvZGVcIix7Y2hpbGRyZW46YX0pfSldfSl9dmFyIHRnPVN5bWJvbC5mb3IoXCJOZXh0anNFcnJvclwiKTtmdW5jdGlvbiB0bShlKXtyZXR1cm4gZVt0Z118fG51bGx9ZnVuY3Rpb24gdHYoZSxuLHQscixvLGEsaSl7dHJ5e3ZhciBsPWVbYV0oaSkscz1sLnZhbHVlfWNhdGNoKGUpe3QoZSk7cmV0dXJufWwuZG9uZT9uKHMpOlByb21pc2UucmVzb2x2ZShzKS50aGVuKHIsbyl9ZnVuY3Rpb24gdGIoZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcyx0PWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT1lLmFwcGx5KG4sdCk7ZnVuY3Rpb24gaShlKXt0dihhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXt0dihhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfX1mdW5jdGlvbiB0eShlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gdHgoZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIHR3KGUsbil7dmFyIHQscixvLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX0saT1PYmplY3QuY3JlYXRlKChcImZ1bmN0aW9uXCI9PXR5cGVvZiBJdGVyYXRvcj9JdGVyYXRvcjpPYmplY3QpLnByb3RvdHlwZSk7cmV0dXJuIGkubmV4dD1sKDApLGkudGhyb3c9bCgxKSxpLnJldHVybj1sKDIpLFwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBsKGwpe3JldHVybiBmdW5jdGlvbihzKXt2YXIgYz1bbCxzXTtpZih0KXRocm93IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDtpJiYoaT0wLGNbMF0mJihhPTApKSxhOyl0cnl7aWYodD0xLHImJihvPTImY1swXT9yLnJldHVybjpjWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsY1sxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYz1bMiZjWzBdLG8udmFsdWVdKSxjWzBdKXtjYXNlIDA6Y2FzZSAxOm89YzticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6Y1sxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLHI9Y1sxXSxjPVswXTtjb250aW51ZTtjYXNlIDc6Yz1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKG89KG89YS50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSkmJig2PT09Y1swXXx8Mj09PWNbMF0pKXthPTA7Y29udGludWV9aWYoMz09PWNbMF0mJighb3x8Y1sxXT5vWzBdJiZjWzFdPG9bM10pKXthLmxhYmVsPWNbMV07YnJlYWt9aWYoNj09PWNbMF0mJmEubGFiZWw8b1sxXSl7YS5sYWJlbD1vWzFdLG89YzticmVha31pZihvJiZhLmxhYmVsPG9bMl0pe2EubGFiZWw9b1syXSxhLm9wcy5wdXNoKGMpO2JyZWFrfW9bMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1jPW4uY2FsbChlLGEpfWNhdGNoKGUpe2M9WzYsZV0scj0wfWZpbmFsbHl7dD1vPTB9aWYoNSZjWzBdKXRocm93IGNbMV07cmV0dXJue3ZhbHVlOmNbMF0/Y1sxXTp2b2lkIDAsZG9uZTohMH19fX12YXIgdGo9ZnVuY3Rpb24oZSl7aWYoXCJ1c2VcImluIHgpe3ZhciBuPWUuZnJhbWVzO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIG4pdGhyb3cgRXJyb3IoXCJJbnZhcmlhbnQ6IGZyYW1lcyBtdXN0IGJlIGEgZnVuY3Rpb24gd2hlbiB0aGUgUmVhY3QgdmVyc2lvbiBoYXMgUmVhY3QudXNlLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuXCIpO3JldHVybiB4LnVzZShuKCkpfWlmKCFBcnJheS5pc0FycmF5KGUuZnJhbWVzKSl0aHJvdyBFcnJvcihcIkludmFyaWFudDogZnJhbWVzIG11c3QgYmUgYW4gYXJyYXkgd2hlbiB0aGUgUmVhY3QgdmVyc2lvbiBkb2VzIG5vdCBoYXZlIFJlYWN0LnVzZS4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzLlwiKTtyZXR1cm4gZS5mcmFtZXN9O2Z1bmN0aW9uIHRrKGUpe3ZhciBuPWUuZXJyb3IsdD1lLmRpYWxvZ1Jlc2l6ZXJSZWYscj10aihuKSxvPSgwLHgudXNlTWVtbykoZnVuY3Rpb24oKXt2YXIgZSxuPXIuZmluZEluZGV4KGZ1bmN0aW9uKGUpe3JldHVybiFlLmlnbm9yZWQmJiEhZS5vcmlnaW5hbENvZGVGcmFtZSYmISFlLm9yaWdpbmFsU3RhY2tGcmFtZX0pO3JldHVybiBudWxsIT0oZT1yW25dKT9lOm51bGx9LFtyXSk7cmV0dXJuKDAseS5qc3hzKSh5LkZyYWdtZW50LHtjaGlsZHJlbjpbbyYmKDAseS5qc3gpKGVxLHtzdGFja0ZyYW1lOm8ub3JpZ2luYWxTdGFja0ZyYW1lLGNvZGVGcmFtZTpvLm9yaWdpbmFsQ29kZUZyYW1lfSksci5sZW5ndGg+MCYmKDAseS5qc3gpKHR1LHtkaWFsb2dSZXNpemVyUmVmOnQsZnJhbWVzOnJ9KV19KX12YXIgdEE9XCJcXG4gIFwiLmNvbmNhdChcIlxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWxdIHtcXG4gICAgcGFkZGluZzogOHB4IDA7XFxuICAgIG1hcmdpbjogOHB4IDA7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3ludGF4LWNvbnN0YW50KTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgbGluZS1oZWlnaHQ6IDEuMzNlbTsgLyogMTZweCBpbiAxMnB4IGZvbnQgc2l6ZSAqL1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kLTIpO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZV0ge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XFxuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKDUgLyAzKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1kaWZmPSdlcnJvciddIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYW1iZXItMTAwKTtcXG4gICAgYm94LXNoYWRvdzogMnB4IDAgMCAwIHZhcigtLWNvbG9yLWFtYmVyLTkwMCkgaW5zZXQ7XFxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtY29sbGFwc2UtYnV0dG9uXSB7XFxuICAgIGFsbDogdW5zZXQ7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xcbiAgICAmOmZvY3VzIHtcXG4gICAgICBvdXRsaW5lOiBub25lO1xcbiAgICB9XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0nYWRkJ10ge1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmVlbi0zMDApO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtbGluZS1zaWduXSB7XFxuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDI0cHggKiAtMSk7XFxuICAgIG1hcmdpbi1yaWdodDogMjRweDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1kaWZmPSdhZGQnXVxcbiAgICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1saW5lLXNpZ25dIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyZWVuLTkwMCk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0ncmVtb3ZlJ10ge1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1yZWQtMzAwKTtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1kaWZmPSdyZW1vdmUnXVxcbiAgICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1saW5lLXNpZ25dIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXJlZC05MDApO1xcbiAgICBtYXJnaW4tbGVmdDogY2FsYygyNHB4ICogLTEpO1xcbiAgICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj0nZXJyb3InXVxcbiAgICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1saW5lLXNpZ25dIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFtYmVyLTkwMCk7XFxuICB9XFxuICBcXG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1oaW50XSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgZm9udC1zaXplOiAwO1xcbiAgICBoZWlnaHQ6IDA7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tdGFnLWFkamFjZW50PSdmYWxzZSddIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMSk7XFxuICB9XFxuICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19jb21wb25lbnQtc3RhY2sge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1jb2xsYXBzZT0ndHJ1ZSddXFxuICAgIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2NvbXBvbmVudC1zdGFja1xcbiAgICBjb2RlIHtcXG4gICAgbWF4LWhlaWdodDogMTIwcHg7XFxuICAgIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20scmdiYSgwLDAsMCwwKSAwJSxibGFjayAxMCUpO1xcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcXG4gIH1cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2NvbXBvbmVudC1zdGFjayBjb2RlIHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICAgIHNjcm9sbC1zbmFwLXR5cGU6IHkgbWFuZGF0b3J5O1xcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XFxuICB9XFxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZl0ge1xcbiAgICBzY3JvbGwtc25hcC1hbGlnbjogY2VudGVyO1xcbiAgfVxcbiAgLmVycm9yLW92ZXJsYXktaHlkcmF0aW9uLWVycm9yLWRpZmYtcGx1cy1pY29uIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyZWVuLTkwMCk7XFxuICB9XFxuICAuZXJyb3Itb3ZlcmxheS1oeWRyYXRpb24tZXJyb3ItZGlmZi1taW51cy1pY29uIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXJlZC05MDApO1xcbiAgfVxcblwiLFwiXFxuXCIpO2Z1bmN0aW9uIHRPKGUpe3JldHVybiBlJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sP1wic3ltYm9sXCI6dHlwZW9mIGV9ZnVuY3Rpb24gdEMoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIHRTKGUpe3ZhciBuLHQscixvLGEsaT1lLnJ1bnRpbWVFcnJvcnMsbD1lLmdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzLHM9KHI9KDAseC51c2VTdGF0ZSkoMCksbz0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KHIpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KHIsMil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRDKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHRDKGUsbil9fShyLG8pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxjPXNbMF0sdT1zWzFdLGQ9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiAwPT09aS5sZW5ndGh9LFtpLmxlbmd0aF0pLGY9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBlO3JldHVybiBudWxsIT0oZT1pW2NdKT9lOm51bGx9LFtjLGldKSxwPShuPW51bGw9PWY/dm9pZCAwOmYuZXJyb3IsdD1sLCgwLHgudXNlTWVtbykoZnVuY3Rpb24oKXtpZih2b2lkIDA9PT1uKXJldHVybiB0TDt2YXIgZSxyLG8sYT10KG4pO2lmKG51bGwhPT1hKXJldHVybntoeWRyYXRpb25XYXJuaW5nOm51bGwhPShyPWEud2FybmluZyk/cjpudWxsLG5vdGVzOm51bGwscmVhY3RPdXRwdXRDb21wb25lbnREaWZmOm51bGwhPShvPWEucmVhY3RPdXRwdXRDb21wb25lbnREaWZmKT9vOm51bGx9O2lmKCEobmcoKGU9bikubWVzc2FnZSl8fC9IeWRyYXRpb24gZmFpbGVkIGJlY2F1c2UgdGhlIHNlcnZlciByZW5kZXJlZCAodGV4dHxIVE1MKSBkaWRuJ3QgbWF0Y2ggdGhlIGNsaWVudFxcLi8udGVzdChlLm1lc3NhZ2UpfHwvQSB0cmVlIGh5ZHJhdGVkIGJ1dCBzb21lIGF0dHJpYnV0ZXMgb2YgdGhlIHNlcnZlciByZW5kZXJlZCBIVE1MIGRpZG4ndCBtYXRjaCB0aGUgY2xpZW50IHByb3BlcnRpZXMuLy50ZXN0KGUubWVzc2FnZSkpKXJldHVybiB0TDt2YXIgaT1mdW5jdGlvbihlKXt2YXIgbj1lLm1lc3NhZ2U7aWYobmcobikpe3ZhciB0PW5jKG4uc3BsaXQoXCJcXG5cXG5cIiksMikscj10WzBdLG89dFsxXSxhPSh2b2lkIDA9PT1vP1wiXCI6bykudHJpbSgpO3JldHVybnttZXNzYWdlOlwiXCI9PT1hP24udHJpbSgpOnIudHJpbSgpLGRpZmY6YSxub3RlczpudWxsfX12YXIgaT1uYyhuLnNwbGl0KFwiXCIuY29uY2F0KG5mKSksMiksbD1pWzBdLHM9aVsxXSxjPWwudHJpbSgpO2lmKHZvaWQgMCE9PXMmJnMubGVuZ3RoPjEpe3ZhciB1PVtdO3Muc3BsaXQoXCJcXG5cIikuZm9yRWFjaChmdW5jdGlvbihlKXtcIlwiIT09ZS50cmltKCkmJihlLnRyaW0oKS5zdGFydHNXaXRoKFwiYXQgXCIpfHx1LnB1c2goZSkpfSk7dmFyIGQ9bnUoYy5zcGxpdChcIlxcblxcblwiKSksZj1kWzBdLHA9ZC5zbGljZSgxKTtyZXR1cm57bWVzc2FnZTpmLGRpZmY6dS5qb2luKFwiXFxuXCIpLG5vdGVzOnAuam9pbihcIlxcblxcblwiKXx8bnVsbH19dmFyIGg9bnUoYy5zcGxpdChcIlxcblxcblwiKSk7cmV0dXJue21lc3NhZ2U6aFswXSxkaWZmOm51bGwsbm90ZXM6aC5zbGljZSgxKS5qb2luKFwiXFxuXFxuXCIpfX0obiksbD1pLm1lc3NhZ2Uscz1pLm5vdGVzLGM9aS5kaWZmO3JldHVybiBudWxsPT09bD90TDp7aHlkcmF0aW9uV2FybmluZzpsLG5vdGVzOnMscmVhY3RPdXRwdXRDb21wb25lbnREaWZmOmN9fSxbbix0XSkpO2lmKGR8fCFmKXJldHVybntpc0xvYWRpbmc6ZCxhY3RpdmVJZHg6YyxzZXRBY3RpdmVJbmRleDp1LGFjdGl2ZUVycm9yOm51bGwsZXJyb3JEZXRhaWxzOm51bGwsZXJyb3JDb2RlOm51bGwsZXJyb3JUeXBlOm51bGwsbm90ZXM6bnVsbCxoeWRyYXRpb25XYXJuaW5nOm51bGx9O3ZhciBoPWYuZXJyb3IsZz0odm9pZCAwPT09KGE9aCk/XCJ1bmRlZmluZWRcIjp0TyhhKSk9PT1cIm9iamVjdFwiJiZudWxsIT09YSYmXCJfX05FWFRfRVJST1JfQ09ERVwiaW4gYSYmXCJzdHJpbmdcIj09dHlwZW9mIGEuX19ORVhUX0VSUk9SX0NPREU/YS5fX05FWFRfRVJST1JfQ09ERToodm9pZCAwPT09YT9cInVuZGVmaW5lZFwiOnRPKGEpKT09PVwib2JqZWN0XCImJm51bGwhPT1hJiZcImRpZ2VzdFwiaW4gYSYmXCJzdHJpbmdcIj09dHlwZW9mIGEuZGlnZXN0P2EuZGlnZXN0LnNwbGl0KFwiQFwiKS5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLnN0YXJ0c1dpdGgoXCJFXCIpfSk6dm9pZCAwLG09dHooaCxmLnR5cGUpLHY9cC5ub3RlcyxiPXAuaHlkcmF0aW9uV2FybmluZztyZXR1cm57aXNMb2FkaW5nOmQsYWN0aXZlSWR4OmMsc2V0QWN0aXZlSW5kZXg6dSxhY3RpdmVFcnJvcjpmLGVycm9yRGV0YWlsczpwLGVycm9yQ29kZTpnLGVycm9yVHlwZTptLG5vdGVzOnYsaHlkcmF0aW9uV2FybmluZzpifX1mdW5jdGlvbiB0RShlKXtyZXR1cm4gZS5zdGFydHNXaXRoKFwiaHR0cHM6Ly9uZXh0anMub3JnXCIpfWZ1bmN0aW9uIHRfKGUpe3ZhciBuPWUubWVzc2FnZTtyZXR1cm4oMCx5LmpzeCkoZWIse3RleHQ6bixtYXRjaGVyOnRFfSl9ZnVuY3Rpb24gdFAoZSl7dmFyIG49ZS5lcnJvcix0PVwiZW52aXJvbm1lbnROYW1lXCJpbiBuP24uZW52aXJvbm1lbnROYW1lOlwiXCIscj10P1wiWyBcIi5jb25jYXQodCxcIiBdIFwiKTpcIlwiLG89bi5tZXNzYWdlO3JldHVybiBvLnN0YXJ0c1dpdGgocikmJihvPW8uc2xpY2Uoci5sZW5ndGgpKSwoMCx5LmpzeCkoeS5GcmFnbWVudCx7Y2hpbGRyZW46KDAseS5qc3gpKGViLHt0ZXh0Om8sbWF0Y2hlcjp0RX0pfSl9ZnVuY3Rpb24gdHooZSxuKXtyZXR1cm5cInJlY292ZXJhYmxlXCI9PT1uP1wiUmVjb3ZlcmFibGUgXCIuY29uY2F0KGUubmFtZSk6XCJjb25zb2xlXCI9PT1uP1wiQ29uc29sZSBcIi5jb25jYXQoZS5uYW1lKTpcIlJ1bnRpbWUgXCIuY29uY2F0KGUubmFtZSl9dmFyIHRMPXtoeWRyYXRpb25XYXJuaW5nOm51bGwsbm90ZXM6bnVsbCxyZWFjdE91dHB1dENvbXBvbmVudERpZmY6bnVsbH07ZnVuY3Rpb24gdFQoZSl7dmFyIG4sdCxyPWUuZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHMsbz1lLnJ1bnRpbWVFcnJvcnMsYT1lLmRlYnVnSW5mbyxpPWUub25DbG9zZSxsPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJnZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlsc1wiLFwicnVudGltZUVycm9yc1wiLFwiZGVidWdJbmZvXCIsXCJvbkNsb3NlXCJdKSxzPSgwLHgudXNlUmVmKShudWxsKSxjPXRTKHtydW50aW1lRXJyb3JzOm8sZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6cn0pLHU9Yy5pc0xvYWRpbmcsZD1jLmVycm9yQ29kZSxmPWMuZXJyb3JUeXBlLHA9Yy5ub3RlcyxoPWMuaHlkcmF0aW9uV2FybmluZyxnPWMuYWN0aXZlSWR4LG09Yy5lcnJvckRldGFpbHMsdj1jLmFjdGl2ZUVycm9yLGI9Yy5zZXRBY3RpdmVJbmRleDtpZih1KXJldHVybigwLHkuanN4KShuWix7Y2hpbGRyZW46KDAseS5qc3gpKG4yLHt9KX0pO2lmKCF2KXJldHVybiBudWxsO3ZhciB3PXYuZXJyb3Isaj1bXCJzZXJ2ZXJcIixcImVkZ2Utc2VydmVyXCJdLmluY2x1ZGVzKHRtKHcpfHxcIlwiKTtyZXR1cm4oMCx5LmpzeHMpKG45LChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe2Vycm9yQ29kZTpkLGVycm9yVHlwZTpmLGVycm9yTWVzc2FnZTpoPygwLHkuanN4KSh0Xyx7bWVzc2FnZTpofSk6KDAseS5qc3gpKHRQLHtlcnJvcjp3fSksb25DbG9zZTpqP3ZvaWQgMDppLGRlYnVnSW5mbzphLGVycm9yOncscnVudGltZUVycm9yczpvLGFjdGl2ZUlkeDpnLHNldEFjdGl2ZUluZGV4OmIsZGlhbG9nUmVzaXplclJlZjpzfSxsKSx0PXQ9e2NoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImVycm9yLW92ZXJsYXktbm90ZXMtY29udGFpbmVyXCIsY2hpbGRyZW46W3A/KDAseS5qc3gpKHkuRnJhZ21lbnQse2NoaWxkcmVuOigwLHkuanN4KShcInBcIix7aWQ6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX25vdGVzXCIsY2xhc3NOYW1lOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19ub3Rlc1wiLGNoaWxkcmVuOnB9KX0pOm51bGwsaD8oMCx5LmpzeCkoXCJwXCIse2lkOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19saW5rXCIsY2xhc3NOYW1lOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19saW5rXCIsY2hpbGRyZW46KDAseS5qc3gpKGViLHt0ZXh0OlwiU2VlIG1vcmUgaW5mbyBoZXJlOiBcIi5jb25jYXQobnApfSl9KTpudWxsXX0pLG0ucmVhY3RPdXRwdXRDb21wb25lbnREaWZmPygwLHkuanN4KSh0aCx7cmVhY3RPdXRwdXRDb21wb25lbnREaWZmOm0ucmVhY3RPdXRwdXRDb21wb25lbnREaWZmfHxcIlwifSk6bnVsbCwoMCx5LmpzeCkoeC5TdXNwZW5zZSx7ZmFsbGJhY2s6KDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZXJyb3Itc3VzcGVuZGVkXCI6ITB9KSxjaGlsZHJlbjooMCx5LmpzeCkodGsse2Vycm9yOnYsZGlhbG9nUmVzaXplclJlZjpzfSx2LmlkLnRvU3RyaW5nKCkpfSldfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX12YXIgdFI9eC5mb3J3YXJkUmVmKGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPWUub25DbGljayxhPWUuY2hpbGRyZW4saT1lLmNsYXNzTmFtZSxsPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJvbkNsaWNrXCIsXCJjaGlsZHJlblwiLFwiY2xhc3NOYW1lXCJdKTtyZXR1cm4oMCx5LmpzeCkoXCJkaXZcIiwodD1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt9LGwpLHI9cj17cmVmOm4sb25DbGljazpmdW5jdGlvbihlKXtyZXR1cm4gZS50YXJnZXQuY2xvc2VzdChcImFcIil8fGUucHJldmVudERlZmF1bHQoKSxudWxsPT1vP3ZvaWQgMDpvKCl9LGNsYXNzTmFtZTooMCxlSi5jeCkoXCJuZXh0anMtdG9hc3RcIixpKSxjaGlsZHJlbjphfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHIpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHIpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpKX0pLHQpKX0pO2Z1bmN0aW9uIHROKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiB0RChlKXt2YXIgbix0LHI9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjc1MCxvPShuPSgwLHgudXNlU3RhdGUpKCExKSx0PTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0obil8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksYS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0obiwyKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gdE4oZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gdE4oZSxuKX19KG4sdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLGE9b1swXSxpPW9bMV0sbD0oMCx4LnVzZVJlZikobnVsbCkscz0oMCx4LnVzZVJlZikobnVsbCk7cmV0dXJuKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aWYocy5jdXJyZW50JiYoY2xlYXJUaW1lb3V0KHMuY3VycmVudCkscy5jdXJyZW50PW51bGwpLGUpbnVsbD09PWwuY3VycmVudCYmKGwuY3VycmVudD1EYXRlLm5vdygpKSxpKCEwKTtlbHNlIGlmKG51bGw9PT1sLmN1cnJlbnQpaSghMSk7ZWxzZXt2YXIgbj1EYXRlLm5vdygpLWwuY3VycmVudCx0PXIqTWF0aC5jZWlsKG4vciktbjt0PjA/cy5jdXJyZW50PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpKCExKSxsLmN1cnJlbnQ9bnVsbH0sdCk6KGkoITEpLGwuY3VycmVudD1udWxsKX1yZXR1cm4gZnVuY3Rpb24oKXtzLmN1cnJlbnQmJmNsZWFyVGltZW91dChzLmN1cnJlbnQpfX0sW2Uscl0pLGF9ZnVuY3Rpb24gdEIoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIHRNKGUpe3ZhciBuLHQscj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCxvPSgwLHgudXNlUmVmKShudWxsKSxhPShuPSgwLHgudXNlU3RhdGUpKCExKSx0PTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0obil8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksYS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0obiwyKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gdEIoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gdEIoZSxuKX19KG4sdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLGk9YVswXSxsPWFbMV07cmV0dXJuKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aWYoZT4wKXt2YXIgbj1vLmN1cnJlbnQ/RGF0ZS5ub3coKS1vLmN1cnJlbnQ6LTE7aWYoby5jdXJyZW50PURhdGUubm93KCksIShuPD1yKSl7bCghMCk7dmFyIHQ9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtsKCExKX0scik7cmV0dXJuIGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHQpfX19fSxbZSxyXSksaX1mdW5jdGlvbiB0SShlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gdEgoZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHRJKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHRJKGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIHRGKGUpe3ZhciBuPXRIKCgwLHgudXNlU3RhdGUpKDApLDIpLHQ9blswXSxyPW5bMV07cmV0dXJuKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIG49ZS5jdXJyZW50O2lmKG4pe3ZhciB0PW5ldyBSZXNpemVPYnNlcnZlcihmdW5jdGlvbihlKXtyKHRIKGUsMSlbMF0uY29udGVudFJlY3Qud2lkdGgpfSk7cmV0dXJuIHQub2JzZXJ2ZShuKSxmdW5jdGlvbigpe3JldHVybiB0LmRpc2Nvbm5lY3QoKX19fSxbZV0pLHR9ZnVuY3Rpb24gdFUoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIHRWKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX1mdW5jdGlvbiB0cShlLG4pe3JldHVybiBuPW51bGwhPW4/bjp7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pLGV9ZnVuY3Rpb24gdFcoZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPXt9LGE9T2JqZWN0LmtleXMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sbi5pbmRleE9mKHQpPj0wfHwob1t0XT1lW3RdKTtyZXR1cm4gb30oZSxuKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgYT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLCEobi5pbmRleE9mKHQpPj0wKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsdCkmJihvW3RdPWVbdF0pfXJldHVybiBvfWZ1bmN0aW9uIHQkKGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiB0VShlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiB0VShlLG4pfX0oZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiB0Wigpe3ZhciBlLG4sdD0oZT1bXCJcXG4gICAgICAgICAgW2RhdGEtbmV4dC1iYWRnZS1yb290XSB7XFxuICAgICAgICAgICAgLS10aW1pbmc6IGN1YmljLWJlemllcigwLjIzLCAwLjg4LCAwLjI2LCAwLjkyKTtcXG4gICAgICAgICAgICAtLWR1cmF0aW9uLWxvbmc6IDI1MG1zO1xcbiAgICAgICAgICAgIC0tY29sb3Itb3V0ZXItYm9yZGVyOiAjMTcxNzE3O1xcbiAgICAgICAgICAgIC0tY29sb3ItaW5uZXItYm9yZGVyOiBoc2xhKDAsIDAlLCAxMDAlLCAwLjE0KTtcXG4gICAgICAgICAgICAtLWNvbG9yLWhvdmVyLWFscGhhLXN1YnRsZTogaHNsYSgwLCAwJSwgMTAwJSwgMC4xMyk7XFxuICAgICAgICAgICAgLS1jb2xvci1ob3Zlci1hbHBoYS1lcnJvcjogaHNsYSgwLCAwJSwgMTAwJSwgMC4yKTtcXG4gICAgICAgICAgICAtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yLTI6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMjUpO1xcbiAgICAgICAgICAgIC0tbWFyay1zaXplOiBjYWxjKHZhcigtLXNpemUpIC0gdmFyKC0tc2l6ZS0yKSAqIDIpO1xcblxcbiAgICAgICAgICAgIC0tZm9jdXMtY29sb3I6IHZhcigtLWNvbG9yLWJsdWUtODAwKTtcXG4gICAgICAgICAgICAtLWZvY3VzLXJpbmc6IDJweCBzb2xpZCB2YXIoLS1mb2N1cy1jb2xvcik7XFxuXFxuICAgICAgICAgICAgJjpoYXMoW2RhdGEtbmV4dC1iYWRnZV1bZGF0YS1lcnJvcj0ndHJ1ZSddKSB7XFxuICAgICAgICAgICAgICAtLWZvY3VzLWNvbG9yOiAjZmZmO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1kaXNhYmxlZC1pY29uXSB7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1uZXh0LWJhZGdlXSB7XFxuICAgICAgICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUpO1xcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzpcXG4gICAgICAgICAgICAgIDAgMCAwIDFweCB2YXIoLS1jb2xvci1vdXRlci1ib3JkZXIpLFxcbiAgICAgICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNvbG9yLWlubmVyLWJvcmRlciksXFxuICAgICAgICAgICAgICAwcHggMTZweCAzMnB4IC04cHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcXG4gICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNDhweCk7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgICAgICAgICAgc2NhbGU6IDE7XFxuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgICAgICB3aWxsLWNoYW5nZTogc2NhbGUsIGJveC1zaGFkb3csIHdpZHRoLCBiYWNrZ3JvdW5kO1xcbiAgICAgICAgICAgIHRyYW5zaXRpb246XFxuICAgICAgICAgICAgICBzY2FsZSB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgdmFyKC0tdGltaW5nKSxcXG4gICAgICAgICAgICAgIHdpZHRoIHZhcigtLWR1cmF0aW9uLWxvbmcpIHZhcigtLXRpbWluZyksXFxuICAgICAgICAgICAgICBib3gtc2hhZG93IHZhcigtLWR1cmF0aW9uLWxvbmcpIHZhcigtLXRpbWluZyksXFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kIHZhcigtLWR1cmF0aW9uLXNob3J0KSBlYXNlO1xcblxcbiAgICAgICAgICAgICY6YWN0aXZlW2RhdGEtZXJyb3I9J2ZhbHNlJ10ge1xcbiAgICAgICAgICAgICAgc2NhbGU6IDAuOTU7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICZbZGF0YS1hbmltYXRlPSd0cnVlJ106bm90KDpob3Zlcikge1xcbiAgICAgICAgICAgICAgc2NhbGU6IDEuMDI7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICZbZGF0YS1lcnJvcj0nZmFsc2UnXTpoYXMoW2RhdGEtbmV4dC1tYXJrXTpmb2N1cy12aXNpYmxlKSB7XFxuICAgICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAzcHg7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICZbZGF0YS1lcnJvcj0ndHJ1ZSddIHtcXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNjYTJhMzA7XFxuICAgICAgICAgICAgICAtLWNvbG9yLWlubmVyLWJvcmRlcjogI2U1NDg0ZDtcXG5cXG4gICAgICAgICAgICAgIFtkYXRhLW5leHQtbWFya10ge1xcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ob3Zlci1hbHBoYS1lcnJvcik7XFxuICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwcHg7XFxuXFxuICAgICAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XFxuICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XFxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3ItMik7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgJltkYXRhLWVycm9yLWV4cGFuZGVkPSdmYWxzZSddW2RhdGEtZXJyb3I9J3RydWUnXSB+IFtkYXRhLWRvdF0ge1xcbiAgICAgICAgICAgICAgc2NhbGU6IDE7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgID4gZGl2IHtcXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb2xsYXBzZV06Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzXTpoYXMoW2RhdGEtaXNzdWVzLW9wZW5dOmZvY3VzLXZpc2libGUpIHtcXG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1kb3RdIHtcXG4gICAgICAgICAgICBjb250ZW50OiAnJztcXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS04KTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtOCk7XFxuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY29sb3Itb3V0ZXItYm9yZGVyKTtcXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICAgICAgICAgIHRvcDogMnB4O1xcbiAgICAgICAgICAgIHJpZ2h0OiAwcHg7XFxuICAgICAgICAgICAgc2NhbGU6IDA7XFxuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogc2NhbGUgMjAwbXMgdmFyKC0tdGltaW5nKTtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS1kdXJhdGlvbi1zaG9ydCk7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzXSB7XFxuICAgICAgICAgICAgLS1wYWRkaW5nLWxlZnQ6IDhweDtcXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIGdhcDogMnB4O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XFxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS0zMik7XFxuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1cmF0aW9uLXNob3J0KSBlYXNlO1xcblxcbiAgICAgICAgICAgICY6aGFzKFtkYXRhLWlzc3Vlcy1vcGVuXTpob3Zlcikge1xcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3IpO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmOmhhcyhbZGF0YS1pc3N1ZXMtY29sbGFwc2VdKSB7XFxuICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKHZhcigtLXBhZGRpbmctbGVmdCkgLyAyKTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgW2RhdGEtY3Jvc3NdIHtcXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZTogMHB4IC0xcHg7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlcy1vcGVuXSB7XFxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEzKTtcXG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XFxuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIGdhcDogMnB4O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTM2KTtcXG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICAgICAgICAgIHotaW5kZXg6IDI7XFxuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG5cXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgICAgb3V0bGluZTogMDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzLWNvbGxhcHNlXSB7XFxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtMjQpO1xcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yNCk7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1cmF0aW9uLXNob3J0KSBlYXNlO1xcblxcbiAgICAgICAgICAgICY6aG92ZXIge1xcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3IpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1jcm9zc10ge1xcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTIpO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLW5leHQtbWFya10ge1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1tYXJrLXNpemUpO1xcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tbWFyay1zaXplKTtcXG4gICAgICAgICAgICBtYXJnaW46IDAgMnB4O1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tZHVyYXRpb24tbG9uZykgdmFyKC0tdGltaW5nKTtcXG5cXG4gICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgICAgb3V0bGluZTogMDtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgJjpob3ZlciB7XFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ob3Zlci1hbHBoYS1zdWJ0bGUpO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICBzdmcge1xcbiAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XFxuICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS00MCk7XFxuICAgICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtNDApO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtYW5pbWF0aW9uXSB7XFxuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcXG4gICAgICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyIGNlbnRlcjtcXG4gICAgICAgICAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xcblxcbiAgICAgICAgICAgICZbZGF0YS1hbmltYXRlPSdmYWxzZSddIHtcXG4gICAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1leGl0XSxcXG4gICAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1lbnRlcl0ge1xcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDBtcztcXG4gICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgPiAqIHtcXG4gICAgICAgICAgICAgIGdyaWQtYXJlYTogMSAvIDE7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1leGl0XSB7XFxuICAgICAgICAgICAgICBhbmltYXRpb246IGZhZGVPdXQgMzAwbXMgdmFyKC0tdGltaW5nKSBmb3J3YXJkcztcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LWVudGVyXSB7XFxuICAgICAgICAgICAgICBhbmltYXRpb246IGZhZGVJbiAzMDBtcyB2YXIoLS10aW1pbmcpIGZvcndhcmRzO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtcGx1cmFsXSB7XFxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgICAgICZbZGF0YS1hbmltYXRlPSd0cnVlJ10ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMzAwbXMgdmFyKC0tdGltaW5nKSBmb3J3YXJkcztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgLnBhdGgwIHtcXG4gICAgICAgICAgICBhbmltYXRpb246IGRyYXcwIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgLnBhdGgxIHtcXG4gICAgICAgICAgICBhbmltYXRpb246IGRyYXcxIDEuNXMgZWFzZS1vdXQgaW5maW5pdGU7XFxuICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjNzO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC5wYXVzZWQge1xcbiAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIEBrZXlmcmFtZXMgZmFkZUluIHtcXG4gICAgICAgICAgICAwJSB7XFxuICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xcbiAgICAgICAgICAgICAgZmlsdGVyOiBibHVyKDJweCk7XFxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xcbiAgICAgICAgICAgICAgZmlsdGVyOiBibHVyKDBweCk7XFxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIEBrZXlmcmFtZXMgZmFkZU91dCB7XFxuICAgICAgICAgICAgMCUge1xcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigwcHgpO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAxMDAlIHtcXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDA7XFxuICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpO1xcbiAgICAgICAgICAgICAgZmlsdGVyOiBibHVyKDJweCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIEBrZXlmcmFtZXMgZHJhdzAge1xcbiAgICAgICAgICAgIDAlLFxcbiAgICAgICAgICAgIDI1JSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogLTI5LjY7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIDI1JSxcXG4gICAgICAgICAgICA1MCUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIDUwJSxcXG4gICAgICAgICAgICA3NSUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIDc1JSxcXG4gICAgICAgICAgICAxMDAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAyOS42O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGRyYXcxIHtcXG4gICAgICAgICAgICAwJSxcXG4gICAgICAgICAgICAyMCUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMS42O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAyMCUsXFxuICAgICAgICAgICAgNTAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA1MCUsXFxuICAgICAgICAgICAgNzUlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA3NSUsXFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMTEuNjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XFxuICAgICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LWV4aXRdLFxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1lbnRlcl0sXFxuICAgICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LXBsdXJhbF0ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwbXMgIWltcG9ydGFudDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG4gICAgICAgIFwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiB0Wj1mdW5jdGlvbigpe3JldHVybiB0fSx0fXZhciB0WT0oMCx4LmZvcndhcmRSZWYpKGZ1bmN0aW9uKGUsbil7dmFyIHQ9ZS5kaXNhYmxlZCxyPWUuaXNzdWVDb3VudCxvPWUuaXNEZXZCdWlsZGluZyxhPWUuaXNEZXZSZW5kZXJpbmcsaT1lLmlzQnVpbGRFcnJvcixsPWUub25UcmlnZ2VyQ2xpY2sscz1lLnRvZ2dsZUVycm9yT3ZlcmxheSxjPWUuc2NhbGUsdT10VyhlLFtcImRpc2FibGVkXCIsXCJpc3N1ZUNvdW50XCIsXCJpc0RldkJ1aWxkaW5nXCIsXCJpc0RldlJlbmRlcmluZ1wiLFwiaXNCdWlsZEVycm9yXCIsXCJvblRyaWdnZXJDbGlja1wiLFwidG9nZ2xlRXJyb3JPdmVybGF5XCIsXCJzY2FsZVwiXSksZD1yPjAsZj10JCgoMCx4LnVzZVN0YXRlKShkKSwyKSxwPWZbMF0saD1mWzFdLGc9dCQoKDAseC51c2VTdGF0ZSkoITEpLDIpLG09Z1swXSx2PWdbMV0sYj10TShyLDE1MCksdz0oMCx4LnVzZVJlZikobnVsbCksaj0oMCx4LnVzZVJlZikobnVsbCksaz10RihqKSxBPXREKG98fGEpLE89cHx8dDtyZXR1cm4oMCx4LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXtoKGQpfSxbZF0pLCgwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHQtYmFkZ2Utcm9vdFwiOiEwLHN0eWxlOntcIi0tc2l6ZVwiOlwiXCIuY29uY2F0KDM2Lyh2b2lkIDA9PT1jPzE6YyksXCJweFwiKSxcIi0tZHVyYXRpb24tc2hvcnRcIjpcIlwiLmNvbmNhdCgxNTAsXCJtc1wiKSxkaXNwbGF5OnQmJighZHx8bSk/XCJub25lXCI6XCJibG9ja1wifSxjaGlsZHJlbjpbKDAseS5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZWkodFooKSl9KSwoMCx5LmpzeCkoXCJkaXZcIix7XCJkYXRhLW5leHQtYmFkZ2VcIjohMCxcImRhdGEtZXJyb3JcIjpkLFwiZGF0YS1lcnJvci1leHBhbmRlZFwiOk8sXCJkYXRhLWFuaW1hdGVcIjpiLHN0eWxlOnt3aWR0aDowPT09az9cImF1dG9cIjprfSxjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse3JlZjpqLGNoaWxkcmVuOlshdCYmKDAseS5qc3gpKFwiYnV0dG9uXCIsdHEodFYoe3JlZjpmdW5jdGlvbigpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoZSksdD0wO3Q8ZTt0Kyspblt0XT1hcmd1bWVudHNbdF07dmFyIHI9bi5maWx0ZXIoQm9vbGVhbik7cmV0dXJuIHIubGVuZ3RoPD0xP3JbMF18fG51bGw6ZnVuY3Rpb24oZSl7dmFyIG49ITAsdD0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciBhLGk9cltTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShhPWkubmV4dCgpKS5kb25lKTtuPSEwKXt2YXIgbD1hLnZhbHVlO1wiZnVuY3Rpb25cIj09dHlwZW9mIGw/bChlKTpsJiYobC5jdXJyZW50PWUpfX1jYXRjaChlKXt0PSEwLG89ZX1maW5hbGx5e3RyeXtufHxudWxsPT1pLnJldHVybnx8aS5yZXR1cm4oKX1maW5hbGx5e2lmKHQpdGhyb3cgb319fX0odyxuKSxcImRhdGEtbmV4dC1tYXJrXCI6ITAsXCJkYXRhLW5leHQtbWFyay1sb2FkaW5nXCI6QSxvbkNsaWNrOmx9LHUpLHtjaGlsZHJlbjooMCx5LmpzeCkodEsse2lzTG9hZGluZzpBLGlzRGV2QnVpbGRpbmc6b30pfSkpLE8mJigwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLWlzc3Vlc1wiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiYnV0dG9uXCIse1wiZGF0YS1pc3N1ZXMtb3BlblwiOiEwLFwiYXJpYS1sYWJlbFwiOlwiT3BlbiBpc3N1ZXMgb3ZlcmxheVwiLG9uQ2xpY2s6cyxjaGlsZHJlbjpbdCYmKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1kaXNhYmxlZC1pY29uXCI6ITAsY2hpbGRyZW46KDAseS5qc3gpKHRRLHt9KX0pLCgwLHkuanN4KSh0WCx7YW5pbWF0ZTpiLFwiZGF0YS1pc3N1ZXMtY291bnQtYW5pbWF0aW9uXCI6ITAsY2hpbGRyZW46cn0sciksXCIgXCIsKDAseS5qc3hzKShcImRpdlwiLHtjaGlsZHJlbjpbXCJJc3N1ZVwiLHI+MSYmKDAseS5qc3gpKFwic3BhblwiLHtcImFyaWEtaGlkZGVuXCI6ITAsXCJkYXRhLWlzc3Vlcy1jb3VudC1wbHVyYWxcIjohMCxcImRhdGEtYW5pbWF0ZVwiOmImJjI9PT1yLGNoaWxkcmVuOlwic1wifSldfSldfSksIWkmJigwLHkuanN4KShcImJ1dHRvblwiLHtcImRhdGEtaXNzdWVzLWNvbGxhcHNlXCI6ITAsXCJhcmlhLWxhYmVsXCI6XCJDb2xsYXBzZSBpc3N1ZXMgYmFkZ2VcIixvbkNsaWNrOmZ1bmN0aW9uKCl7dmFyIGU7dD92KCEwKTpoKCExKSxudWxsPT0oZT13LmN1cnJlbnQpfHxlLmZvY3VzKCl9LGNoaWxkcmVuOigwLHkuanN4KSh0Ryx7XCJkYXRhLWNyb3NzXCI6ITB9KX0pXX0pXX0pfSksKDAseS5qc3gpKFwiZGl2XCIse1wiYXJpYS1oaWRkZW5cIjohMCxcImRhdGEtZG90XCI6ITB9KV19KX0pO2Z1bmN0aW9uIHRYKGUpe3ZhciBuPWUuY2hpbGRyZW4sdD1lLmFuaW1hdGUscj10VyhlLFtcImNoaWxkcmVuXCIsXCJhbmltYXRlXCJdKTtyZXR1cm4oMCx5LmpzeHMpKFwiZGl2XCIsdHEodFYoe30scikse1wiZGF0YS1hbmltYXRlXCI6dm9pZCAwPT09dHx8dCxjaGlsZHJlbjpbKDAseS5qc3gpKFwiZGl2XCIse1wiYXJpYS1oaWRkZW5cIjohMCxcImRhdGEtaXNzdWVzLWNvdW50LWV4aXRcIjohMCxjaGlsZHJlbjpuLTF9KSwoMCx5LmpzeCkoXCJkaXZcIix7XCJkYXRhLWlzc3Vlcy1jb3VudFwiOiEwLFwiZGF0YS1pc3N1ZXMtY291bnQtZW50ZXJcIjohMCxjaGlsZHJlbjpufSldfSkpfWZ1bmN0aW9uIHRLKGUpe3ZhciBuPWUuaXNMb2FkaW5nLHQ9ZS5pc0RldkJ1aWxkaW5nP1wicmdiYSgyNTUsMjU1LDI1NSwwLjcpXCI6XCJ3aGl0ZVwiO3JldHVybigwLHkuanN4cykoXCJzdmdcIix7d2lkdGg6XCI0MFwiLGhlaWdodDpcIjQwXCIsdmlld0JveDpcIjAgMCA0MCA0MFwiLGZpbGw6XCJub25lXCIsXCJkYXRhLW5leHQtbWFyay1sb2FkaW5nXCI6bixjaGlsZHJlbjpbKDAseS5qc3hzKShcImdcIix7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDguNSwgMTMpXCIsY2hpbGRyZW46WygwLHkuanN4KShcInBhdGhcIix7Y2xhc3NOYW1lOm4/XCJwYXRoMFwiOlwicGF1c2VkXCIsZDpcIk0xMy4zIDE1LjIgTDIuMzQgMSBWMTIuNlwiLGZpbGw6XCJub25lXCIsc3Ryb2tlOlwidXJsKCNuZXh0X2xvZ29fcGFpbnQwX2xpbmVhcl8xMzU3XzEwODUzKVwiLHN0cm9rZVdpZHRoOlwiMS44NlwiLG1hc2s6XCJ1cmwoI25leHRfbG9nb19tYXNrMClcIixzdHJva2VEYXNoYXJyYXk6XCIyOS42XCIsc3Ryb2tlRGFzaG9mZnNldDpcIjI5LjZcIn0pLCgwLHkuanN4KShcInBhdGhcIix7Y2xhc3NOYW1lOm4/XCJwYXRoMVwiOlwicGF1c2VkXCIsZDpcIk0xMS44MjUgMS41IFYxMy4xXCIsc3Ryb2tlV2lkdGg6XCIxLjg2XCIsc3Ryb2tlOlwidXJsKCNuZXh0X2xvZ29fcGFpbnQxX2xpbmVhcl8xMzU3XzEwODUzKVwiLHN0cm9rZURhc2hhcnJheTpcIjExLjZcIixzdHJva2VEYXNob2Zmc2V0OlwiMTEuNlwifSldfSksKDAseS5qc3hzKShcImRlZnNcIix7Y2hpbGRyZW46WygwLHkuanN4cykoXCJsaW5lYXJHcmFkaWVudFwiLHtpZDpcIm5leHRfbG9nb19wYWludDBfbGluZWFyXzEzNTdfMTA4NTNcIix4MTpcIjkuOTU1NTVcIix5MTpcIjExLjEyMjZcIix4MjpcIjE1LjQ3NzhcIix5MjpcIjE3Ljk2NzFcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3RvcFwiLHtzdG9wQ29sb3I6dH0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMC42MDQwNzJcIixzdG9wQ29sb3I6dCxzdG9wT3BhY2l0eTpcIjBcIn0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMVwiLHN0b3BDb2xvcjp0LHN0b3BPcGFjaXR5OlwiMFwifSldfSksKDAseS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibmV4dF9sb2dvX3BhaW50MV9saW5lYXJfMTM1N18xMDg1M1wiLHgxOlwiMTEuODIyMlwiLHkxOlwiMS40MDAzOVwiLHgyOlwiMTEuNzkxXCIseTI6XCI5LjYyNTQyXCIsZ3JhZGllbnRVbml0czpcInVzZXJTcGFjZU9uVXNlXCIsY2hpbGRyZW46WygwLHkuanN4KShcInN0b3BcIix7c3RvcENvbG9yOnR9KSwoMCx5LmpzeCkoXCJzdG9wXCIse29mZnNldDpcIjFcIixzdG9wQ29sb3I6dCxzdG9wT3BhY2l0eTpcIjBcIn0pXX0pLCgwLHkuanN4cykoXCJtYXNrXCIse2lkOlwibmV4dF9sb2dvX21hc2swXCIsY2hpbGRyZW46WygwLHkuanN4KShcInJlY3RcIix7d2lkdGg6XCIxMDAlXCIsaGVpZ2h0OlwiMTAwJVwiLGZpbGw6XCJ3aGl0ZVwifSksKDAseS5qc3gpKFwicmVjdFwiLHt3aWR0aDpcIjVcIixoZWlnaHQ6XCIxLjVcIixmaWxsOlwiYmxhY2tcIn0pXX0pXX0pXX0pfWZ1bmN0aW9uIHRRKCl7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTJcIixoZWlnaHQ6XCIxMlwiLHZpZXdCb3g6XCIwIDAgMTIgMTJcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMy45ODA3MSAxLjEyNUwxLjEyNSAzLjk4MDcxTDEuMTI1IDguMDE5MjlMMy45ODA3MSAxMC44NzVIOC4wMTkyOUwxMC44NzUgOC4wMTkyOVYzLjk4MDcxTDguMDE5MjkgMS4xMjVIMy45ODA3MVpNMy44MjUzOCAwQzMuNjI2NDcgMCAzLjQzNTcgMC4wNzkwMTc2IDMuMjk1MDUgMC4yMTk2N0wwLjIxOTY3IDMuMjk1MDVDMC4wNzkwMTc2IDMuNDM1NyAwIDMuNjI2NDcgMCAzLjgyNTM4VjguMTc0NjJDMCA4LjM3MzUzIDAuMDc5MDE3OCA4LjU2NDMgMC4yMTk2NyA4LjcwNDk1TDMuMjk1MDUgMTEuNzgwM0MzLjQzNTcgMTEuOTIxIDMuNjI2NDcgMTIgMy44MjUzOCAxMkg4LjE3NDYyQzguMzczNTMgMTIgOC41NjQzIDExLjkyMSA4LjcwNDk1IDExLjc4MDNMMTEuNzgwMyA4LjcwNDk1QzExLjkyMSA4LjU2NDMgMTIgOC4zNzM1MyAxMiA4LjE3NDYyVjMuODI1MzhDMTIgMy42MjY0NyAxMS45MjEgMy40MzU3IDExLjc4MDMgMy4yOTUwNUw4LjcwNDk1IDAuMjE5NjdDOC41NjQzIDAuMDc5MDE3NyA4LjM3MzUzIDAgOC4xNzQ2MiAwSDMuODI1MzhaTTYuNTYyNSAyLjgxMjVWMy4zNzVWNlY2LjU2MjVINS40Mzc1VjZWMy4zNzVWMi44MTI1SDYuNTYyNVpNNiA5QzYuNDE0MjEgOSA2Ljc1IDguNjY0MjEgNi43NSA4LjI1QzYuNzUgNy44MzU3OSA2LjQxNDIxIDcuNSA2IDcuNUM1LjU4NTc5IDcuNSA1LjI1IDcuODM1NzkgNS4yNSA4LjI1QzUuMjUgOC42NjQyMSA1LjU4NTc5IDkgNiA5WlwiLGZpbGw6XCIjRUFFQUVBXCJ9KX0pfWZ1bmN0aW9uIHRHKGUpe3JldHVybigwLHkuanN4KShcInN2Z1wiLHRxKHRWKHt3aWR0aDpcIjEyXCIsaGVpZ2h0OlwiMTJcIix2aWV3Qm94OlwiMCAwIDE0IDE0XCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMy4wODg4OSAxMS44Mzg0TDIuNjI0ODYgMTIuMzAyNEwxLjY5Njc4IDExLjM3NDRMMi4xNjA4MiAxMC45MTAzTDYuMDcxNzggNi45OTkzN0wyLjE2MDgyIDMuMDg4NDFMMS42OTY3OCAyLjYyNDM3TDIuNjI0ODYgMS42OTYyOUwzLjA4ODg5IDIuMTYwMzNMNi45OTk4NiA2LjA3MTI5TDEwLjkxMDggMi4xNjAzM0wxMS4zNzQ5IDEuNjk2MjlMMTIuMzAyOSAyLjYyNDM3TDExLjgzODkgMy4wODg0MUw3LjkyNzkzIDYuOTk5MzdMMTEuODM4OSAxMC45MTAzTDEyLjMwMjkgMTEuMzc0NEwxMS4zNzQ5IDEyLjMwMjRMMTAuOTEwOCAxMS44Mzg0TDYuOTk5ODYgNy45Mjc0NEwzLjA4ODg5IDExLjgzODRaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9KSl9dmFyIHRKPV9fd2VicGFja19yZXF1aXJlX18oXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2hvb2tzL3VzZS1kZWxheWVkLXJlbmRlci50c1wiKSx0MD1fX3dlYnBhY2tfcmVxdWlyZV9fKFwiLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2Vycm9ycy9kZXYtdG9vbHMtaW5kaWNhdG9yL2Rldi10b29scy1pbmZvL2Rldi10b29scy1pbmZvLnRzeFwiKTtmdW5jdGlvbiB0MShlKXt2YXIgbix0O3JldHVybigwLHkuanN4cykodDAueCwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt0aXRsZTpcIlR1cmJvcGFja1wiLGxlYXJuTW9yZUxpbms6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS90dXJib3BhY2tcIn0sZSksdD10PXtjaGlsZHJlbjpbKDAseS5qc3hzKShcImFydGljbGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tYXJ0aWNsZVwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJUdXJib3BhY2sgaXMgYW4gaW5jcmVtZW50YWwgYnVuZGxlciBvcHRpbWl6ZWQgZm9yIEphdmFTY3JpcHQgYW5kIFR5cGVTY3JpcHQsIHdyaXR0ZW4gaW4gUnVzdCwgYW5kIGJ1aWx0IGludG8gTmV4dC5qcy4gVHVyYm9wYWNrIGNhbiBiZSB1c2VkIGluIE5leHQuanMgaW4gYm90aCB0aGVcIixcIiBcIiwoMCx5LmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjpcInBhZ2VzXCJ9KSxcIiBhbmRcIixcIiBcIiwoMCx5LmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjpcImFwcFwifSksXCIgZGlyZWN0b3JpZXMgZm9yIGZhc3RlciBsb2NhbCBkZXZlbG9wbWVudC5cIl19KSwoMCx5LmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJUbyBlbmFibGUgVHVyYm9wYWNrLCB1c2UgdGhlXCIsXCIgXCIsKDAseS5qc3gpKFwiY29kZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlXCIsY2hpbGRyZW46XCItLXR1cmJvcGFja1wifSksXCIgZmxhZyB3aGVuIHJ1bm5pbmcgdGhlIE5leHQuanMgZGV2ZWxvcG1lbnQgc2VydmVyLlwiXX0pXX0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWNvbnRhaW5lclwiLGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9ja1wiLGNoaWxkcmVuOlsoMCx5LmpzeCkoZTMse2FjdGlvbkxhYmVsOlwiQ29weSBOZXh0LmpzIFR1cmJvcGFjayBDb21tYW5kXCIsc3VjY2Vzc0xhYmVsOlwiTmV4dC5qcyBUdXJib3BhY2sgQ29tbWFuZCBDb3BpZWRcIixjb250ZW50OlwiLS10dXJib3BhY2tcIixjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb3B5LWJ1dHRvblwifSksKDAseS5qc3gpKFwicHJlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stcHJlXCIsY2hpbGRyZW46KDAseS5qc3hzKShcImNvZGVcIix7Y2hpbGRyZW46WygwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpcIiAgXCJ9KSwoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lXCIsY2hpbGRyZW46XCJ7XCJ9KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOltcIiAgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24ta2V5XCIsY2hpbGRyZW46J1wic2NyaXB0c1wiJ30pLFwiOiBcIixcIntcIl19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZSBkZXYtdG9vbHMtaW5mby1oaWdobGlnaHRcIixjaGlsZHJlbjpbXCIgICAgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24ta2V5XCIsY2hpbGRyZW46J1wiZGV2XCInfSksXCI6XCIsXCIgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24tdmFsdWVcIixjaGlsZHJlbjonXCJuZXh0IGRldiAtLXR1cmJvcGFja1wiJ30pLFwiLFwiXX0pLCgwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lXCIsY2hpbGRyZW46W1wiICAgIFwiLCgwLHkuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1qc29uLWtleVwiLGNoaWxkcmVuOidcImJ1aWxkXCInfSksXCI6XCIsXCIgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24tdmFsdWVcIixjaGlsZHJlbjonXCJuZXh0IGJ1aWxkXCInfSksXCIsXCJdfSksKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpbXCIgICAgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24ta2V5XCIsY2hpbGRyZW46J1wic3RhcnRcIid9KSxcIjpcIixcIiBcIiwoMCx5LmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi12YWx1ZVwiLGNoaWxkcmVuOidcIm5leHQgc3RhcnRcIid9KSxcIixcIl19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZVwiLGNoaWxkcmVuOltcIiAgICBcIiwoMCx5LmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi1rZXlcIixjaGlsZHJlbjonXCJsaW50XCInfSksXCI6XCIsXCIgXCIsKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWpzb24tdmFsdWVcIixjaGlsZHJlbjonXCJuZXh0IGxpbnRcIid9KV19KSwoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZS1ibG9jay1saW5lXCIsY2hpbGRyZW46XCIgIH1cIn0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpcIn1cIn0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmVcIixjaGlsZHJlbjpcIiAgXCJ9KV19KX0pXX0pfSldfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX1mdW5jdGlvbiB0MihlKXt2YXIgbj1lLnJvdXRlclR5cGU7cmV0dXJuKDAseS5qc3hzKShcImFydGljbGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tYXJ0aWNsZVwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpbXCJUaGUgcGF0aFwiLFwiIFwiLCgwLHkuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0pLFwiIFwiLCdpcyBtYXJrZWQgYXMgXCJzdGF0aWNcIiBzaW5jZSBpdCB3aWxsIGJlIHByZXJlbmRlcmVkIGR1cmluZyB0aGUgYnVpbGQgdGltZS4nXX0pLCgwLHkuanN4cykoXCJwXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXBhcmFncmFwaFwiLGNoaWxkcmVuOltcIldpdGggU3RhdGljIFJlbmRlcmluZywgcm91dGVzIGFyZSByZW5kZXJlZCBhdCBidWlsZCB0aW1lLCBvciBpbiB0aGUgYmFja2dyb3VuZCBhZnRlclwiLFwiIFwiLCgwLHkuanN4KShcImFcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tbGlua1wiLGhyZWY6XCJwYWdlc1wiPT09bj9cImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9pbmNyZW1lbnRhbC1zdGF0aWMtcmVnZW5lcmF0aW9uXCI6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb25cIix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsY2hpbGRyZW46XCJkYXRhIHJldmFsaWRhdGlvblwifSksXCIuXCJdfSksKDAseS5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpcIlN0YXRpYyByZW5kZXJpbmcgaXMgdXNlZnVsIHdoZW4gYSByb3V0ZSBoYXMgZGF0YSB0aGF0IGlzIG5vdCBwZXJzb25hbGl6ZWQgdG8gdGhlIHVzZXIgYW5kIGNhbiBiZSBrbm93biBhdCBidWlsZCB0aW1lLCBzdWNoIGFzIGEgc3RhdGljIGJsb2cgcG9zdCBvciBhIHByb2R1Y3QgcGFnZS5cIn0pXX0pfWZ1bmN0aW9uIHQ0KGUpe3ZhciBuPWUucm91dGVyVHlwZTtyZXR1cm4oMCx5LmpzeHMpKFwiYXJ0aWNsZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1hcnRpY2xlXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJwXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXBhcmFncmFwaFwiLGNoaWxkcmVuOltcIlRoZSBwYXRoXCIsXCIgXCIsKDAseS5qc3gpKFwiY29kZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlXCIsY2hpbGRyZW46d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfSksXCIgXCIsJ2lzIG1hcmtlZCBhcyBcImR5bmFtaWNcIiBzaW5jZSBpdCB3aWxsIGJlIHJlbmRlcmVkIGZvciBlYWNoIHVzZXIgYXQnLFwiIFwiLCgwLHkuanN4KShcInN0cm9uZ1wiLHtjaGlsZHJlbjpcInJlcXVlc3QgdGltZVwifSksXCIuXCJdfSksKDAseS5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1wYXJhZ3JhcGhcIixjaGlsZHJlbjpcIkR5bmFtaWMgcmVuZGVyaW5nIGlzIHVzZWZ1bCB3aGVuIGEgcm91dGUgaGFzIGRhdGEgdGhhdCBpcyBwZXJzb25hbGl6ZWQgdG8gdGhlIHVzZXIgb3IgaGFzIGluZm9ybWF0aW9uIHRoYXQgY2FuIG9ubHkgYmUga25vd24gYXQgcmVxdWVzdCB0aW1lLCBzdWNoIGFzIGNvb2tpZXMgb3IgdGhlIFVSTCdzIHNlYXJjaCBwYXJhbXMuXCJ9KSxcInBhZ2VzXCI9PT1uPygwLHkuanN4cykoXCJwXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXBhZ3JhcGhcIixjaGlsZHJlbjpbXCJFeHBvcnRpbmcgdGhlXCIsXCIgXCIsKDAseS5qc3gpKFwiYVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1saW5rXCIsaHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vZGF0YS1mZXRjaGluZy9nZXQtc2VydmVyLXNpZGUtcHJvcHNcIix0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsY2hpbGRyZW46XCJnZXRTZXJ2ZXJTaWRlUHJvcHNcIn0pLFwiIFwiLFwiZnVuY3Rpb24gd2lsbCBvcHQgdGhlIHJvdXRlIGludG8gZHluYW1pYyByZW5kZXJpbmcuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYnkgdGhlIHNlcnZlciBvbiBldmVyeSByZXF1ZXN0LlwiXX0pOigwLHkuanN4cykoXCJwXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXBhcmFncmFwaFwiLGNoaWxkcmVuOltcIkR1cmluZyByZW5kZXJpbmcsIGlmIGFcIixcIiBcIiwoMCx5LmpzeCkoXCJhXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWxpbmtcIixocmVmOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzI2R5bmFtaWMtYXBpc1wiLHRhcmdldDpcIl9ibGFua1wiLHJlbDpcIm5vb3BlbmVyIG5vcmVmZXJyZXJcIixjaGlsZHJlbjpcIkR5bmFtaWMgQVBJXCJ9KSxcIiBcIixcIm9yIGFcIixcIiBcIiwoMCx5LmpzeCkoXCJhXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWxpbmtcIixocmVmOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL2ZldGNoXCIsdGFyZ2V0OlwiX2JsYW5rXCIscmVsOlwibm9vcGVuZXIgbm9yZWZlcnJlclwiLGNoaWxkcmVuOlwiZmV0Y2hcIn0pLFwiIFwiLFwib3B0aW9uIG9mXCIsXCIgXCIsKDAseS5qc3gpKFwiY29kZVwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1jb2RlXCIsY2hpbGRyZW46XCJ7IGNhY2hlOiAnbm8tc3RvcmUnIH1cIn0pLFwiIFwiLFwiaXMgZGlzY292ZXJlZCwgTmV4dC5qcyB3aWxsIHN3aXRjaCB0byBkeW5hbWljYWxseSByZW5kZXJpbmcgdGhlIHdob2xlIHJvdXRlLlwiXX0pXX0pfXZhciB0NT17cGFnZXM6e3N0YXRpYzpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3N0YXRpYy1zaXRlLWdlbmVyYXRpb25cIixkeW5hbWljOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvcGFnZXMvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLXNpZGUtcmVuZGVyaW5nXCJ9LGFwcDp7c3RhdGljOlwiaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3NlcnZlci1jb21wb25lbnRzI3N0YXRpYy1yZW5kZXJpbmctZGVmYXVsdFwiLGR5bmFtaWM6XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLWNvbXBvbmVudHMjZHluYW1pYy1yZW5kZXJpbmdcIn19O2Z1bmN0aW9uIHQzKGUpe3ZhciBuLHQscj1lLnJvdXRlVHlwZSxvPWUucm91dGVyVHlwZSxhPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb30oZSxbXCJyb3V0ZVR5cGVcIixcInJvdXRlclR5cGVcIl0pLGk9XCJTdGF0aWNcIj09PXIsbD1pP3Q1W29dLnN0YXRpYzp0NVtvXS5keW5hbWljO3JldHVybigwLHkuanN4KSh0MC54LChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3RpdGxlOlwiXCIuY29uY2F0KHIsXCIgUm91dGVcIiksbGVhcm5Nb3JlTGluazpsfSxhKSx0PXQ9e2NoaWxkcmVuOmk/KDAseS5qc3gpKHQyLHtyb3V0ZXJUeXBlOm99KTooMCx5LmpzeCkodDQse3JvdXRlclR5cGU6b30pfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX1mdW5jdGlvbiB0Nigpe3JldHVybigwLHkuanN4KShcInN2Z1wiLHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAyMCAyMFwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsOlwiY3VycmVudENvbG9yXCIsZmlsbFJ1bGU6XCJldmVub2RkXCIsZDpcIm05LjcgMy43MzYuMDQ1LS4yMzZoLjUxbC4wNDQuMjM2YTIuMDI0IDIuMDI0IDAgMCAwIDEuMzM0IDEuNTM2Yy4xOS4wNjYuMzc1LjE0My41NTQuMjMuNjE4LjMwMSAxLjM5OC4yOSAyLjAzLS4xNDNsLjE5OS0uMTM2LjM2LjM2MS0uMTM1LjE5OWEyLjAyNCAyLjAyNCAwIDAgMC0uMTQzIDIuMDNjLjA4Ny4xNzkuMTY0LjM2NC4yMy41NTQuMjI0LjY1Ljc4MyAxLjE5MiAxLjUzNiAxLjMzNGwuMjM2LjA0NHYuNTFsLS4yMzYuMDQ0YTIuMDI0IDIuMDI0IDAgMCAwLTEuNTM2IDEuMzM0IDQuOTUgNC45NSAwIDAgMS0uMjMuNTU0IDIuMDI0IDIuMDI0IDAgMCAwIC4xNDMgMi4wM2wuMTM2LjE5OS0uMzYxLjM2LS4xOTktLjEzNWEyLjAyNCAyLjAyNCAwIDAgMC0yLjAzLS4xNDNjLS4xNzkuMDg3LS4zNjQuMTY0LS41NTQuMjNhMi4wMjQgMi4wMjQgMCAwIDAtMS4zMzQgMS41MzZsLS4wNDQuMjM2aC0uNTFsLS4wNDQtLjIzNmEyLjAyNCAyLjAyNCAwIDAgMC0xLjMzNC0xLjUzNiA0Ljk1MiA0Ljk1MiAwIDAgMS0uNTU0LS4yMyAyLjAyNCAyLjAyNCAwIDAgMC0yLjAzLjE0M2wtLjE5OS4xMzYtLjM2LS4zNjEuMTM1LS4xOTlhMi4wMjQgMi4wMjQgMCAwIDAgLjE0My0yLjAzIDQuOTU4IDQuOTU4IDAgMCAxLS4yMy0uNTU0IDIuMDI0IDIuMDI0IDAgMCAwLTEuNTM2LTEuMzM0bC0uMjM2LS4wNDR2LS41MWwuMjM2LS4wNDRhMi4wMjQgMi4wMjQgMCAwIDAgMS41MzYtMS4zMzQgNC45NiA0Ljk2IDAgMCAxIC4yMy0uNTU0IDIuMDI0IDIuMDI0IDAgMCAwLS4xNDMtMi4wM2wtLjEzNi0uMTk5LjM2MS0uMzYuMTk5LjEzNWEyLjAyNCAyLjAyNCAwIDAgMCAyLjAzLjE0M2MuMTc5LS4wODcuMzY0LS4xNjQuNTU0LS4yM2EyLjAyNCAyLjAyNCAwIDAgMCAxLjMzNC0xLjUzNlpNOC41IDJoM2wuMjc0IDEuNDZjLjAzNC4xODUuMTcuMzMzLjM0OC4zOTQuMjQ4LjA4Ni40OS4xODYuNzIyLjMuMTcuMDgyLjM3LjA3NC41MjYtLjAzM2wxLjIyNi0uODM5IDIuMTIyIDIuMTIyLS44NCAxLjIyNmEuNTI0LjUyNCAwIDAgMC0uMDMyLjUyNmMuMTE0LjIzMy4yMTQuNDc0LjMuNzIyLjA2MS4xNzcuMjEuMzE0LjM5NC4zNDhMMTggOC41djNsLTEuNDYuMjc0YS41MjQuNTI0IDAgMCAwLS4zOTQuMzQ4IDYuNDcgNi40NyAwIDAgMS0uMy43MjIuNTI0LjUyNCAwIDAgMCAuMDMzLjUyNmwuODM5IDEuMjI2LTIuMTIyIDIuMTIyLTEuMjI2LS44NGEuNTI0LjUyNCAwIDAgMC0uNTI2LS4wMzIgNi40NzcgNi40NzcgMCAwIDEtLjcyMi4zLjUyNC41MjQgMCAwIDAtLjM0OC4zOTRMMTEuNSAxOGgtM2wtLjI3NC0xLjQ2YS41MjQuNTI0IDAgMCAwLS4zNDgtLjM5NCA2LjQ3NyA2LjQ3NyAwIDAgMS0uNzIyLS4zLjUyNC41MjQgMCAwIDAtLjUyNi4wMzNsLTEuMjI2LjgzOS0yLjEyMi0yLjEyMi44NC0xLjIyNmEuNTI0LjUyNCAwIDAgMCAuMDMyLS41MjYgNi40NTMgNi40NTMgMCAwIDEtLjMtLjcyMi41MjQuNTI0IDAgMCAwLS4zOTQtLjM0OEwyIDExLjV2LTNsMS40Ni0uMjc0YS41MjQuNTI0IDAgMCAwIC4zOTQtLjM0OGMuMDg2LS4yNDguMTg2LS40OS4zLS43MjJhLjUyNC41MjQgMCAwIDAtLjAzMy0uNTI2bC0uODM5LTEuMjI2IDIuMTIyLTIuMTIyIDEuMjI2Ljg0YS41MjQuNTI0IDAgMCAwIC41MjYuMDMyIDYuNDYgNi40NiAwIDAgMSAuNzIyLS4zLjUyNC41MjQgMCAwIDAgLjM0OC0uMzk0TDguNSAyWm0zIDhhMS41IDEuNSAwIDEgMS0zIDAgMS41IDEuNSAwIDAgMSAzIDBabTEuNSAwYTMgMyAwIDEgMS02IDAgMyAzIDAgMCAxIDYgMFpcIixjbGlwUnVsZTpcImV2ZW5vZGRcIn0pfSl9ZnVuY3Rpb24gdDkoKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsOlwiY3VycmVudENvbG9yXCIsZmlsbFJ1bGU6XCJldmVub2RkXCIsZDpcIm0uMTkxIDIuMDYzLjU2LjQ5OCAxMy41IDEyIC41NjEuNDk4Ljk5Ny0xLjEyMS0uNTYtLjQ5OC0xLjgxLTEuNjA4IDIuODgtMy4zNDJ2LS45OGwtMy4yMDQtMy43MkMxMC42NDUuOTIzIDYuMzY1LjY4NiAzLjU5NCAzLjA4TDEuNzQ4IDEuNDQgMS4xODguOTQuMTkgMi4wNjNaTTE0Ljc2MSA4bC0yLjQ0MiAyLjgzNi0xLjY1LTEuNDY2YTMuMDAxIDMuMDAxIDAgMCAwLTQuMzQyLTMuODZsLTEuNi0xLjQyMmE1LjI1MyA1LjI1MyAwIDAgMSA3LjI1MS42ODJMMTQuNzYgOFpNNy41MjYgNi41NzZsMS45NDIgMS43MjdhMS40OTkgMS40OTkgMCAwIDAtMS45NDItMS43MjdabS03Ljg0NS45MzUgMS43MjItMiAxLjEzNy45NzlMMS4yNCA4bDIuNzgyIDMuMjNBNS4yNSA1LjI1IDAgMCAwIDkuOSAxMi43MDNsLjU0IDEuNGE2Ljc1MSA2Ljc1MSAwIDAgMS03LjU1NS0xLjg5MkwtLjMxOCA4LjQ5di0uOThaXCIsY2xpcFJ1bGU6XCJldmVub2RkXCJ9KX0pfWZ1bmN0aW9uIHQ4KCl7cmV0dXJuKDAseS5qc3hzKShcInN2Z1wiLHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6XCIyMFwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46WygwLHkuanN4KShcImdcIix7Y2xpcFBhdGg6XCJ1cmwoI2xpZ2h0X2ljb25fY2xpcF9wYXRoKVwiLGNoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNOC43NS43NVYwaC0xLjV2MmgxLjVWLjc1Wk0zLjI2IDQuMzJsLS41My0uNTMtLjM1NC0uMzUzLS41My0uNTMgMS4wNi0xLjA2MS41My41My4zNTQuMzU0LjUzLjUzLTEuMDYgMS4wNlptOC40Mi0xLjA2LjUzLS41My4zNTMtLjM1NC41My0uNTMgMS4wNjEgMS4wNi0uNTMuNTMtLjM1NC4zNTQtLjUzLjUzLTEuMDYtMS4wNlpNOCAxMS4yNWEzLjI1IDMuMjUgMCAxIDAgMC02LjUgMy4yNSAzLjI1IDAgMCAwIDAgNi41Wm0wIDEuNWE0Ljc1IDQuNzUgMCAxIDAgMC05LjUgNC43NSA0Ljc1IDAgMCAwIDAgOS41Wm02LTUuNWgydjEuNWgtMnYtMS41Wm0tMTMuMjUgMEgwdjEuNWgydi0xLjVILjc1Wm0xLjYyIDUuMzItLjUzLjUzIDEuMDYgMS4wNi41My0uNTMuMzU0LS4zNTMuNTMtLjUzLTEuMDYtMS4wNjEtLjUzLjUzLS4zNTQuMzU0Wm0xMC4yIDEuMDYuNTMuNTMgMS4wNi0xLjA2LS41My0uNTMtLjM1NC0uMzU0LS41My0uNTMtMS4wNiAxLjA2LjUzLjUzLjM1My4zNTRaTTguNzUgMTR2MmgtMS41di0yaDEuNVpcIixjbGlwUnVsZTpcImV2ZW5vZGRcIn0pfSksKDAseS5qc3gpKFwiZGVmc1wiLHtjaGlsZHJlbjooMCx5LmpzeCkoXCJjbGlwUGF0aFwiLHtpZDpcImxpZ2h0X2ljb25fY2xpcF9wYXRoXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsOlwiY3VycmVudENvbG9yXCIsZDpcIk0wIDBoMTZ2MTZIMHpcIn0pfSl9KV19KX1mdW5jdGlvbiB0Nygpe3JldHVybigwLHkuanN4KShcInN2Z1wiLHtcImRhdGEtdGVzdGlkXCI6XCJnZWlzdC1pY29uXCIsaGVpZ2h0OlwiMTZcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMS41IDguMDAwMDVDMS41IDUuNTMwODkgMi45OTE5OCAzLjQwOTMyIDUuMTIzNDkgMi40ODg4OUM0Ljg4MTM2IDMuMTk4NTggNC43NSAzLjk1OTM2IDQuNzUgNC43NTAxQzQuNzUgOC42MTYwOSA3Ljg4NDAxIDExLjc1MDEgMTEuNzUgMTEuNzUwMUMxMS44OTk1IDExLjc1MDEgMTIuMDQ4IDExLjc0NTQgMTIuMTk1MyAxMS43MzYxQzExLjA5NTUgMTMuMTE2NCA5LjQwMDQ3IDE0LjAwMDEgNy41IDE0LjAwMDFDNC4xODYyOSAxNC4wMDAxIDEuNSAxMS4zMTM4IDEuNSA4LjAwMDA1Wk02LjQxNzA2IDAuNTc3NzU5QzIuNzg3ODQgMS4xMDMxIDAgNC4yMjUzNiAwIDguMDAwMDVDMCAxMi4xNDIyIDMuMzU3ODYgMTUuNTAwMSA3LjUgMTUuNTAwMUMxMC41Nzk4IDE1LjUwMDEgMTMuMjI0NCAxMy42NDM4IDE0LjM3OTIgMTAuOTkyMUwxMy40NTg4IDkuOTc5N0MxMi45MjE4IDEwLjE1NSAxMi4zNDc4IDEwLjI1MDEgMTEuNzUgMTAuMjUwMUM4LjcxMjQzIDEwLjI1MDEgNi4yNSA3Ljc4NzY3IDYuMjUgNC43NTAxQzYuMjUgMy42MzQzMSA2LjU4MTQ2IDIuNTk4MjMgNy4xNTExMSAxLjczMjE3TDYuNDE3MDYgMC41Nzc3NTlaTTEzLjI1IDFWMS43NVYyLjc1TDE0LjI1IDIuNzVIMTVWNC4yNUgxNC4yNUgxMy4yNVY1LjI1VjZIMTEuNzVWNS4yNVY0LjI1SDEwLjc1TDEwIDQuMjVWMi43NUgxMC43NUwxMS43NSAyLjc1VjEuNzVWMUgxMy4yNVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pfWZ1bmN0aW9uIHJlKCl7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIse3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHN0cm9rZUxpbmVqb2luOlwicm91bmRcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGw6XCJjdXJyZW50Q29sb3JcIixmaWxsUnVsZTpcImV2ZW5vZGRcIixkOlwiTTAgMmExIDEgMCAwIDEgMS0xaDE0YTEgMSAwIDAgMSAxIDF2OC41YTEgMSAwIDAgMS0xIDFIOC43NXYzaDEuNzVWMTZoLTV2LTEuNWgxLjc1di0zSDFhMSAxIDAgMCAxLTEtMVYyWm0xLjUuNVYxMGgxM1YyLjVoLTEzWlwiLGNsaXBSdWxlOlwiZXZlbm9kZFwifSl9KX1mdW5jdGlvbiBybihlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gcnQoZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJuKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHJuKGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfXZhciBycj1wcm9jZXNzLmVudi5fX05FWFRfREVWX0lORElDQVRPUl9QT1NJVElPTnx8XCJib3R0b20tbGVmdFwiLHJvPVwiX19uZXh0anNfaGlkZV9zaG9ydGN1dFwiO2Z1bmN0aW9uIHJhKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiByaShlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8cnMoZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX1mdW5jdGlvbiBybChlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gcmEoZSl9KGUpfHxmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8cnMoZSl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIHJzKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJhKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHJhKGUsbil9fWZ1bmN0aW9uIHJjKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgLnNob3J0Y3V0LXJlY29yZGVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGdhcDogOHB4O1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLXNhbnMpO1xcblxcbiAgICAuc2hvcnRjdXQtcmVjb3JkZXItYnV0dG9uIHtcXG4gICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgZ2FwOiA0cHg7XFxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWdyYXktNTAwKTtcXG4gICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWxnKTtcXG4gICAgICBwYWRkaW5nOiA2cHggOHB4O1xcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMTUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KTtcXG5cXG4gICAgICAmW2RhdGEtaGFzLXNob3J0Y3V0PSd0cnVlJ10ge1xcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcblxcbiAgICAgICAgJjpob3ZlciB7XFxuICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS01MDApO1xcbiAgICAgICAgfVxcbiAgICAgIH1cXG5cXG4gICAgICAmOmhvdmVyIHtcXG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS02MDApO1xcbiAgICAgIH1cXG5cXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XFxuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICAgIH1cXG5cXG4gICAgICAmW2RhdGEtcHJpc3RpbmU9J2ZhbHNlJ106OnBsYWNlaG9sZGVyIHtcXG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICB9XFxuXFxuICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIGtiZCB7XFxuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XFxuICAgICAgbWluLXdpZHRoOiAyMHB4O1xcbiAgICAgIGhlaWdodDogMjBweDtcXG4gICAgICBmb250LXNpemU6IDE0cHg7XFxuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcblxcbiAgICAgICZbZGF0YS1zeW1ib2w9J2ZhbHNlJ10ge1xcbiAgICAgICAgcGFkZGluZzogMCA0cHg7XFxuICAgICAgfVxcbiAgICB9XFxuXFxuICAgIC5zaG9ydGN1dC1yZWNvcmRlci1jbGVhci1idXR0b24ge1xcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgICB3aWR0aDogMjBweDtcXG4gICAgICBoZWlnaHQ6IDIwcHg7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIHZhcigtLXRpbWluZy1zd2lmdCk7XFxuXFxuICAgICAgJjpob3ZlciB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTMwMCk7XFxuICAgICAgfVxcblxcbiAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgICB9XFxuXFxuICAgICAgc3ZnIHtcXG4gICAgICAgIHdpZHRoOiAxNHB4O1xcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgLnNob3J0Y3V0LXJlY29yZGVyLWtleXMge1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogMnB4O1xcbiAgfVxcblxcbiAgLnNob3J0Y3V0LXJlY29yZGVyLXRvb2x0aXAge1xcbiAgICAtLWdhcDogOHB4O1xcbiAgICAtLWJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiBjYWxjKDEwMCUgKyB2YXIoLS1nYXApKTtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICBzY2FsZTogMC45NjtcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgIHRyYW5zaXRpb246XFxuICAgICAgb3BhY2l0eSAxNTBtcyB2YXIoLS10aW1pbmctc3dpZnQpLFxcbiAgICAgIHNjYWxlIDE1MG1zIHZhcigtLXRpbWluZy1zd2lmdCk7XFxuXFxuICAgICZbZGF0YS1zaG93PSd0cnVlJ10ge1xcbiAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgc2NhbGU6IDE7XFxuICAgIH1cXG5cXG4gICAgc3ZnIHtcXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xcbiAgICAgIGJvdHRvbTogLTZweDtcXG4gICAgICBsZWZ0OiA1MCU7XFxuICAgIH1cXG5cXG4gICAgLnNob3J0Y3V0LXJlY29yZGVyLXN0YXR1cyB7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIGdhcDogNnB4O1xcbiAgICB9XFxuXFxuICAgIC5zaG9ydGN1dC1yZWNvcmRlci1zdGF0dXMtaWNvbiB7XFxuICAgICAgd2lkdGg6IDdweDtcXG4gICAgICBoZWlnaHQ6IDdweDtcXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgICAgZmxleC1zaHJpbms6IDA7XFxuICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcmVkLTcwMCk7XFxuXFxuICAgICAgJltkYXRhLXN1Y2Nlc3M9J3RydWUnXSB7XFxuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmVlbi03MDApO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiByYz1mdW5jdGlvbigpe3JldHVybiB0fSx0fXZhciBydT1bXCJNZXRhXCIsXCJDb250cm9sXCIsXCJDdHJsXCIsXCJBbHRcIixcIk9wdGlvblwiLFwiU2hpZnRcIl07ZnVuY3Rpb24gcmQoZSl7dmFyIG49ZS52YWx1ZSx0PWUub25DaGFuZ2Uscj1yaSgoMCx4LnVzZVN0YXRlKSghMSksMiksbz1yWzBdLGE9clsxXSxpPXJpKCgwLHgudXNlU3RhdGUpKG51bGwhPW4/bjpbXSksMiksbD1pWzBdLHM9aVsxXSxjPXJpKCgwLHgudXNlU3RhdGUpKCExKSwyKSx1PWNbMF0sZD1jWzFdLGY9KDAseC51c2VSZWYpKG51bGwpLHA9KDAseC51c2VSZWYpKG51bGwpLGg9ISFufHxsLmxlbmd0aD4wO2Z1bmN0aW9uIGcoKXt2YXIgZTtudWxsPT0oZT1wLmN1cnJlbnQpfHxlLmZvY3VzKCkscyhbXSksZCghMSksc2V0VGltZW91dChmdW5jdGlvbigpe2EoITApfSksdChudWxsKX1mdW5jdGlvbiBtKCl7dmFyIGU7Zi5jdXJyZW50JiZjbGVhclRpbWVvdXQoZi5jdXJyZW50KSxhKCEwKSxudWxsPT0oZT1wLmN1cnJlbnQpfHxlLmZvY3VzKCl9cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJzaG9ydGN1dC1yZWNvcmRlclwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiYnV0dG9uXCIse2NsYXNzTmFtZTpcInNob3J0Y3V0LXJlY29yZGVyLWJ1dHRvblwiLHJlZjpwLG9uQ2xpY2s6bSxvbkZvY3VzOm0sb25CbHVyOmZ1bmN0aW9uKCl7ZCghMSksYSghMSl9LG9uS2V5RG93bjpmdW5jdGlvbihlKXtlLnRhcmdldD09PXAuY3VycmVudCYmXCJUYWJcIiE9PWUua2V5JiYoZi5jdXJyZW50JiZjbGVhclRpbWVvdXQoZi5jdXJyZW50KSxvfHxhKCEwKSwzIT09bC5sZW5ndGgmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxzKGZ1bmN0aW9uKHQpe2lmKHQuaW5jbHVkZXMoZS5rZXkpKXJldHVybiB0O2lmKCFydS5pbmNsdWRlcyhlLmtleSkpe3ZhciByPXQuZmluZEluZGV4KGZ1bmN0aW9uKGUpe3JldHVybiFydS5pbmNsdWRlcyhlKX0pO2lmKC0xIT09cil7dmFyIG89cmwodCk7cmV0dXJuIG9bcl09ZS5rZXksbihvKSxvfXZhciBhPXJsKHQpLmNvbmNhdChbZS5rZXldKTtyZXR1cm4gbihhKSxhfWZvcih2YXIgaT1ybCh0KSxsPXJ1LmluZGV4T2YoZS5rZXkpLHM9MCxjPTA7YzxpLmxlbmd0aDtjKyspaWYocnUuaW5jbHVkZXMoaVtjXSkpe2lmKGw8cnUuaW5kZXhPZihpW2NdKSl7cz1jO2JyZWFrfXM9YysxfWVsc2UgYnJlYWs7cmV0dXJuIGkuc3BsaWNlKHMsMCxlLmtleSksbihpKSxpfSkpKTtmdW5jdGlvbiBuKGUpe2YuY3VycmVudD13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2QoITApLHQoZS5qb2luKFwiK1wiKSksZi5jdXJyZW50PXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YSghMSl9LDFlMyl9LDE4MCl9fSxcImRhdGEtaGFzLXNob3J0Y3V0XCI6aCxcImRhdGEtc2hvcnRjdXQtcmVjb3JkZXJcIjpcInRydWVcIixjaGlsZHJlbjpbaD8oMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2hvcnRjdXQtcmVjb3JkZXIta2V5c1wiLGNoaWxkcmVuOmwubWFwKGZ1bmN0aW9uKGUpe3JldHVybigwLHkuanN4KShycCx7Y2hpbGRyZW46ZX0sZSl9KX0pOlwiUmVjb3JkIFNob3J0Y3V0XCIsaCYmKDAseS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNob3J0Y3V0LXJlY29yZGVyLWNsZWFyLWJ1dHRvblwiLHJvbGU6XCJidXR0b25cIixvbkNsaWNrOmcsb25Gb2N1czpmdW5jdGlvbihlKXtyZXR1cm4gZS5zdG9wUHJvcGFnYXRpb24oKX0sb25LZXlEb3duOmZ1bmN0aW9uKGUpeyhcIkVudGVyXCI9PT1lLmtleXx8XCIgXCI9PT1lLmtleSkmJihnKCksZS5zdG9wUHJvcGFnYXRpb24oKSl9LFwiYXJpYS1sYWJlbFwiOlwiQ2xlYXIgc2hvcnRjdXRcIix0YWJJbmRleDowLGNoaWxkcmVuOigwLHkuanN4KShyZyx7fSl9KV19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNob3J0Y3V0LXJlY29yZGVyLXRvb2x0aXBcIixcImRhdGEtc2hvd1wiOm8sY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwic2hvcnRjdXQtcmVjb3JkZXItc3RhdHVzXCIsY2hpbGRyZW46WygwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJzaG9ydGN1dC1yZWNvcmRlci1zdGF0dXMtaWNvblwiLFwiZGF0YS1zdWNjZXNzXCI6dX0pLHU/XCJTaG9ydGN1dCBzZXRcIjpcIlJlY29yZGluZ1wiXX0pLCgwLHkuanN4KShyZix7fSldfSldfSl9ZnVuY3Rpb24gcmYoKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7ZmlsbDpcIm5vbmVcIixoZWlnaHQ6XCI2XCIsdmlld0JveDpcIjAgMCAxNCA2XCIsd2lkdGg6XCIxNFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2Q6XCJNMTMuODI4NCAwSDAuMTcxNTdDMC43MDIwMDMgMCAxLjIxMDcxIDAuMjEwNzE0IDEuNTg1NzggMC41ODU3ODdMNS41ODU3OCA0LjU4NTc5QzYuMzY2ODMgNS4zNjY4NCA3LjYzMzE2IDUuMzY2ODMgOC40MTQyMSA0LjU4NTc5TDEyLjQxNDIgMC41ODU3ODZDMTIuNzg5MyAwLjIxMDcxNCAxMy4yOTggMCAxMy44Mjg0IDBaXCIsZmlsbDpcInZhcigtLWJhY2tncm91bmQpXCJ9KX0pfWZ1bmN0aW9uIHJwKGUpe3ZhciBuPWUuY2hpbGRyZW4sdD1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZVwiTWV0YVwiOnJldHVybigwLHkuanN4KShyaCx7fSk7Y2FzZVwiQWx0XCI6Y2FzZVwiT3B0aW9uXCI6cmV0dXJuXCLijKVcIjtjYXNlXCJDb250cm9sXCI6Y2FzZVwiQ3RybFwiOnJldHVyblwiQ3RybFwiO2Nhc2VcIlNoaWZ0XCI6cmV0dXJuXCLih6dcIjtjYXNlXCJFbnRlclwiOnJldHVyblwi4o+OXCI7Y2FzZVwiRXNjYXBlXCI6Y2FzZVwiRXNjXCI6cmV0dXJuXCJFc2NcIjtjYXNlXCIgXCI6Y2FzZVwiU3BhY2VcIjpjYXNlXCJTcGFjZWJhclwiOnJldHVyblwiU3BhY2VcIjtjYXNlXCJBcnJvd1VwXCI6cmV0dXJuXCLihpFcIjtjYXNlXCJBcnJvd0Rvd25cIjpyZXR1cm5cIuKGk1wiO2Nhc2VcIkFycm93TGVmdFwiOnJldHVyblwi4oaQXCI7Y2FzZVwiQXJyb3dSaWdodFwiOnJldHVyblwi4oaSXCI7Y2FzZVwiVGFiXCI6cmV0dXJuXCJUYWJcIjtjYXNlXCJCYWNrc3BhY2VcIjpyZXR1cm5cIuKMq1wiO2Nhc2VcIkRlbGV0ZVwiOnJldHVyblwi4oymXCI7ZGVmYXVsdDppZigxPT09bi5sZW5ndGgpcmV0dXJuIG4udG9VcHBlckNhc2UoKTtyZXR1cm4gbn19KG4pLHI9XCJzdHJpbmdcIj09dHlwZW9mIHQmJjE9PT10Lmxlbmd0aDtyZXR1cm4oMCx5LmpzeCkoXCJrYmRcIix7XCJkYXRhLXN5bWJvbFwiOnIsY2hpbGRyZW46dH0pfWZ1bmN0aW9uIHJoKCl7dmFyIGU9cmkoKDAseC51c2VTdGF0ZSkoXCJcXHhhMFwiKSwyKSxuPWVbMF0sdD1lWzFdLHI9cnYoL15NYWMvKXx8cnYoL15pUGhvbmUvKXx8cnYoL15pUGFkLyl8fHJ2KC9eTWFjLykmJm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cz4xO3JldHVybigwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpeyEwPT09ciYmdChcIuKMmFwiKSwhMT09PXImJnQoXCJDdHJsXCIpfSxbcl0pLCgwLHkuanN4KShcInNwYW5cIix7c3R5bGU6e21pbldpZHRoOlwiMWVtXCIsZGlzcGxheTpcImlubGluZS1ibG9ja1wifSxjaGlsZHJlbjpufSl9ZnVuY3Rpb24gcmcoKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7aGVpZ2h0OlwiMTZcIixzdHJva2VMaW5lam9pbjpcInJvdW5kXCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLHdpZHRoOlwiMTZcIixjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMTIuNDY5NyAxMy41MzAzTDEzIDE0LjA2MDdMMTQuMDYwNyAxM0wxMy41MzAzIDEyLjQ2OTdMOS4wNjA2NSA3Ljk5OTk5TDEzLjUzMDMgMy41MzAzMkwxNC4wNjA3IDIuOTk5OTlMMTMgMS45MzkzM0wxMi40Njk3IDIuNDY5NjZMNy45OTk5OSA2LjkzOTMzTDMuNTMwMzIgMi40Njk2NkwyLjk5OTk5IDEuOTM5MzNMMS45MzkzMyAyLjk5OTk5TDIuNDY5NjYgMy41MzAzMkw2LjkzOTMzIDcuOTk5OTlMMi40Njk2NiAxMi40Njk3TDEuOTM5MzMgMTNMMi45OTk5OSAxNC4wNjA3TDMuNTMwMzIgMTMuNTMwM0w3Ljk5OTk5IDkuMDYwNjVMMTIuNDY5NyAxMy41MzAzWlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSl9dmFyIHJtPWVpKHJjKCkpO2Z1bmN0aW9uIHJ2KGUpe3JldHVyblwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJm51bGwhPXdpbmRvdy5uYXZpZ2F0b3I/ZS50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IucGxhdGZvcm0pOnZvaWQgMH1mdW5jdGlvbiByYihlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gcnkoZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfWZ1bmN0aW9uIHJ4KGUsbil7cmV0dXJuIG49bnVsbCE9bj9uOnt9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSksZX1mdW5jdGlvbiBydyhlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSxuLmluZGV4T2YodCk+PTB8fChvW3RdPWVbdF0pO3JldHVybiBvfShlLG4pO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sIShuLmluZGV4T2YodCk+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0KSYmKG9bdF09ZVt0XSl9cmV0dXJuIG99ZnVuY3Rpb24gcmooZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJiKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHJiKGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIHJrKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgLnByZWZlcmVuY2VzLWNvbnRhaW5lciB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcblxcbiAgQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSB7XFxuICAgIC5wcmVmZXJlbmNlcy1jb250YWluZXIge1xcbiAgICAgIHdpZHRoOiA0ODBweDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLnByZWZlcmVuY2Utc2VjdGlvbjpmaXJzdC1jaGlsZCB7XFxuICAgIHBhZGRpbmctdG9wOiAwO1xcbiAgfVxcblxcbiAgLnByZWZlcmVuY2Utc2VjdGlvbiB7XFxuICAgIHBhZGRpbmc6IDEycHggMDtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDI0cHg7XFxuICB9XFxuXFxuICAucHJlZmVyZW5jZS1zZWN0aW9uOmxhc3QtY2hpbGQge1xcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xcbiAgfVxcblxcbiAgLnByZWZlcmVuY2UtaGVhZGVyIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgZmxleDogMTtcXG4gIH1cXG5cXG4gIC5wcmVmZXJlbmNlLWhlYWRlciBsYWJlbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuXFxuICAucHJlZmVyZW5jZS1kZXNjcmlwdGlvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG5cXG4gIC5zZWxlY3QtYnV0dG9uLFxcbiAgLmFjdGlvbi1idXR0b24ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDhweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbGcpO1xcbiAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgcGFkZGluZzogNnB4IDhweDtcXG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDE1MG1zIHZhcigtLXRpbWluZy1zd2lmdCk7XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS01MDApO1xcbiAgICB9XFxuXFxuICAgIHN2ZyB7XFxuICAgICAgd2lkdGg6IDE0cHg7XFxuICAgICAgaGVpZ2h0OiAxNHB4O1xcbiAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xcbiAgICB9XFxuICB9XFxuXFxuICAuc2VsZWN0LWJ1dHRvbiB7XFxuICAgICY6Zm9jdXMtd2l0aGluIHtcXG4gICAgICBvdXRsaW5lOiB2YXIoLS1mb2N1cy1yaW5nKTtcXG4gICAgICBvdXRsaW5lLW9mZnNldDogLTFweDtcXG4gICAgfVxcblxcbiAgICBzZWxlY3Qge1xcbiAgICAgIGFsbDogdW5zZXQ7XFxuICAgIH1cXG5cXG4gICAgb3B0aW9uIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIDpnbG9iYWwoLmljb24pIHtcXG4gICAgd2lkdGg6IDE4cHg7XFxuICAgIGhlaWdodDogMThweDtcXG4gICAgY29sb3I6ICM2NjY7XFxuICB9XFxuXCJdLG58fChuPWUuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKG4pfX0pKSk7cmV0dXJuIHJrPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LHR9ZnVuY3Rpb24gckEoZSl7dmFyIG4sdD1lLnNldFBvc2l0aW9uLHI9ZS5wb3NpdGlvbixvPWUuaGlkZSxhPWUuc2NhbGUsaT1lLnNldFNjYWxlLGw9ZS5oaWRlU2hvcnRjdXQscz1lLnNldEhpZGVTaG9ydGN1dCxjPXJ3KGUsW1wic2V0UG9zaXRpb25cIixcInBvc2l0aW9uXCIsXCJoaWRlXCIsXCJzY2FsZVwiLFwic2V0U2NhbGVcIixcImhpZGVTaG9ydGN1dFwiLFwic2V0SGlkZVNob3J0Y3V0XCJdKSx1PXJqKCgwLHgudXNlU3RhdGUpKGZ1bmN0aW9uKCl7aWYoXCJ1bmRlZmluZWRcIj09dHlwZW9mIGxvY2FsU3RvcmFnZSlyZXR1cm5cInN5c3RlbVwiO3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKFEpO3JldHVyblwiZGFya1wiPT09ZXx8XCJsaWdodFwiPT09ZT9lOlwic3lzdGVtXCJ9KCkpLDIpLGQ9dVswXSxmPXVbMV07ZnVuY3Rpb24gcChlKXt2YXIgbj1cIi9fX25leHRqc19yZXN0YXJ0X2RldlwiO2UmJihuPVwiL19fbmV4dGpzX3Jlc3RhcnRfZGV2P2ludmFsaWRhdGVQZXJzaXN0ZW50Q2FjaGVcIiksZmV0Y2gobix7bWV0aG9kOlwiUE9TVFwifSkudGhlbihmdW5jdGlvbigpe30pfXJldHVybigwLHkuanN4cykodDAueCxyeChyeSh7dGl0bGU6XCJQcmVmZXJlbmNlc1wifSxjKSx7Y2hpbGRyZW46WygwLHkuanN4KShcImgyXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLXNlY3Rpb24tdGl0bGVcIixjaGlsZHJlbjpcIkdlbmVyYWxcIn0pLCgwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZXMtY29udGFpbmVyXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwibGFiZWxcIix7aHRtbEZvcjpcInRoZW1lXCIsY2hpbGRyZW46XCJUaGVtZVwifSksKDAseS5qc3gpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46XCJTZWxlY3QgeW91ciB0aGVtZSBwcmVmZXJlbmNlLlwifSldfSksKDAseS5qc3hzKShyTyx7aWQ6XCJ0aGVtZVwiLG5hbWU6XCJ0aGVtZVwiLHByZWZpeDooMCx5LmpzeCkockMse3RoZW1lOmR9KSx2YWx1ZTpkLG9uQ2hhbmdlOmZ1bmN0aW9uKGUpe3ZhciBuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCJuZXh0anMtcG9ydGFsXCIpO2lmKG4pe2lmKGYoZS50YXJnZXQudmFsdWUpLFwic3lzdGVtXCI9PT1lLnRhcmdldC52YWx1ZSl7bi5jbGFzc0xpc3QucmVtb3ZlKFwiZGFya1wiKSxuLmNsYXNzTGlzdC5yZW1vdmUoXCJsaWdodFwiKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShRKTtyZXR1cm59XCJkYXJrXCI9PT1lLnRhcmdldC52YWx1ZT8obi5jbGFzc0xpc3QuYWRkKFwiZGFya1wiKSxuLmNsYXNzTGlzdC5yZW1vdmUoXCJsaWdodFwiKSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShRLFwiZGFya1wiKSk6KG4uY2xhc3NMaXN0LnJlbW92ZShcImRhcmtcIiksbi5jbGFzc0xpc3QuYWRkKFwibGlnaHRcIiksbG9jYWxTdG9yYWdlLnNldEl0ZW0oUSxcImxpZ2h0XCIpKX19LGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJvcHRpb25cIix7dmFsdWU6XCJzeXN0ZW1cIixjaGlsZHJlbjpcIlN5c3RlbVwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwibGlnaHRcIixjaGlsZHJlbjpcIkxpZ2h0XCJ9KSwoMCx5LmpzeCkoXCJvcHRpb25cIix7dmFsdWU6XCJkYXJrXCIsY2hpbGRyZW46XCJEYXJrXCJ9KV19KV19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtaGVhZGVyXCIsY2hpbGRyZW46WygwLHkuanN4KShcImxhYmVsXCIse2h0bWxGb3I6XCJwb3NpdGlvblwiLGNoaWxkcmVuOlwiUG9zaXRpb25cIn0pLCgwLHkuanN4KShcInBcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1kZXNjcmlwdGlvblwiLGNoaWxkcmVuOlwiQWRqdXN0IHRoZSBwbGFjZW1lbnQgb2YgeW91ciBkZXYgdG9vbHMuXCJ9KV19KSwoMCx5LmpzeHMpKHJPLHtpZDpcInBvc2l0aW9uXCIsbmFtZTpcInBvc2l0aW9uXCIsdmFsdWU6cixvbkNoYW5nZTpmdW5jdGlvbihlKXt0KGUudGFyZ2V0LnZhbHVlKSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShHLGUudGFyZ2V0LnZhbHVlKX0sY2hpbGRyZW46WygwLHkuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcImJvdHRvbS1sZWZ0XCIsY2hpbGRyZW46XCJCb3R0b20gTGVmdFwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwiYm90dG9tLXJpZ2h0XCIsY2hpbGRyZW46XCJCb3R0b20gUmlnaHRcIn0pLCgwLHkuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcInRvcC1sZWZ0XCIsY2hpbGRyZW46XCJUb3AgTGVmdFwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwidG9wLXJpZ2h0XCIsY2hpbGRyZW46XCJUb3AgUmlnaHRcIn0pXX0pXX0pLCgwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwibGFiZWxcIix7aHRtbEZvcjpcInNpemVcIixjaGlsZHJlbjpcIlNpemVcIn0pLCgwLHkuanN4KShcInBcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1kZXNjcmlwdGlvblwiLGNoaWxkcmVuOlwiQWRqdXN0IHRoZSBzaXplIG9mIHlvdXIgZGV2IHRvb2xzLlwifSldfSksKDAseS5qc3gpKHJPLHtpZDpcInNpemVcIixuYW1lOlwic2l6ZVwiLHZhbHVlOmEsb25DaGFuZ2U6ZnVuY3Rpb24oZSl7aShOdW1iZXIoZS50YXJnZXQudmFsdWUpKX0sY2hpbGRyZW46T2JqZWN0LmVudHJpZXMoUykubWFwKGZ1bmN0aW9uKGUpe3ZhciBuPXJqKGUsMiksdD1uWzBdLHI9blsxXTtyZXR1cm4oMCx5LmpzeCkoXCJvcHRpb25cIix7dmFsdWU6cixjaGlsZHJlbjp0fSx0KX0pfSldfSksKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLXNlY3Rpb25cIixjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWhlYWRlclwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJsYWJlbFwiLHtpZDpcImhpZGUtZGV2LXRvb2xzXCIsY2hpbGRyZW46XCJIaWRlIERldiBUb29scyBmb3IgdGhpcyBzZXNzaW9uXCJ9KSwoMCx5LmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtZGVzY3JpcHRpb25cIixjaGlsZHJlbjpcIkhpZGUgRGV2IFRvb2xzIHVudGlsIHlvdSByZXN0YXJ0IHlvdXIgZGV2IHNlcnZlciwgb3IgMSBkYXkuXCJ9KV19KSwoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1jb250cm9sXCIsY2hpbGRyZW46KDAseS5qc3hzKShcImJ1dHRvblwiLHtcImFyaWEtZGVzY3JpYmVkYnlcIjpcImhpZGUtZGV2LXRvb2xzXCIsbmFtZTpcImhpZGUtZGV2LXRvb2xzXCIsXCJkYXRhLWhpZGUtZGV2LXRvb2xzXCI6ITAsY2xhc3NOYW1lOlwiYWN0aW9uLWJ1dHRvblwiLG9uQ2xpY2s6byxjaGlsZHJlbjpbKDAseS5qc3gpKHQ5LHt9KSwoMCx5LmpzeCkoXCJzcGFuXCIse2NoaWxkcmVuOlwiSGlkZVwifSldfSl9KV19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtaGVhZGVyXCIsY2hpbGRyZW46WygwLHkuanN4KShcImxhYmVsXCIse2lkOlwiaGlkZS1kZXYtdG9vbHNcIixjaGlsZHJlbjpcIkhpZGUgRGV2IFRvb2xzIHNob3J0Y3V0XCJ9KSwoMCx5LmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtZGVzY3JpcHRpb25cIixjaGlsZHJlbjpcIlNldCBhIGN1c3RvbSBrZXlib2FyZCBzaG9ydGN1dCB0byB0b2dnbGUgdmlzaWJpbGl0eS5cIn0pXX0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWNvbnRyb2xcIixjaGlsZHJlbjooMCx5LmpzeCkocmQse3ZhbHVlOm51bGwhPShuPW51bGw9PWw/dm9pZCAwOmwuc3BsaXQoXCIrXCIpKT9uOm51bGwsb25DaGFuZ2U6c30pfSldfSksKDAseS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwibGFiZWxcIix7Y2hpbGRyZW46XCJEaXNhYmxlIERldiBUb29scyBmb3IgdGhpcyBwcm9qZWN0XCJ9KSwoMCx5LmpzeHMpKFwicFwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlLWRlc2NyaXB0aW9uXCIsY2hpbGRyZW46W1wiVG8gZGlzYWJsZSB0aGlzIFVJIGNvbXBsZXRlbHksIHNldFwiLFwiIFwiLCgwLHkuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwiZGV2SW5kaWNhdG9yczogZmFsc2VcIn0pLFwiIFwiLFwiaW4geW91ciBcIiwoMCx5LmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjpcIm5leHQuY29uZmlnXCJ9KSxcIiBcIixcImZpbGUuXCJdfSldfSl9KV19KSwoMCx5LmpzeCkoXCJoMlwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5mby1zZWN0aW9uLXRpdGxlXCIsY2hpbGRyZW46XCJEZXZlbG9wbWVudCBTZXJ2ZXJcIn0pLCgwLHkuanN4KShcImRpdlwiLHtjbGFzc05hbWU6XCJwcmVmZXJlbmNlcy1jb250YWluZXJcIixjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2Utc2VjdGlvblwiLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtaGVhZGVyXCIsY2hpbGRyZW46WygwLHkuanN4KShcImxhYmVsXCIse2lkOlwicmVzdGFydC1kZXYtc2VydmVyXCIsY2hpbGRyZW46XCJSZXN0YXJ0IERldiBTZXJ2ZXJcIn0pLCgwLHkuanN4KShcInBcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1kZXNjcmlwdGlvblwiLGNoaWxkcmVuOlwiUmVzdGFydHMgdGhlIGRldmVsb3BtZW50IHNlcnZlciB3aXRob3V0IG5lZWRpbmcgdG8gbGVhdmUgdGhlIGJyb3dzZXIuXCJ9KV19KSwoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1jb250cm9sXCIsY2hpbGRyZW46KDAseS5qc3gpKFwiYnV0dG9uXCIse1wiYXJpYS1kZXNjcmliZWRieVwiOlwicmVzdGFydC1kZXYtc2VydmVyXCIsdGl0bGU6XCJSZXN0YXJ0cyB0aGUgZGV2ZWxvcG1lbnQgc2VydmVyIHdpdGhvdXQgbmVlZGluZyB0byBsZWF2ZSB0aGUgYnJvd3Nlci5cIixuYW1lOlwicmVzdGFydC1kZXYtc2VydmVyXCIsXCJkYXRhLXJlc3RhcnQtZGV2LXNlcnZlclwiOiEwLGNsYXNzTmFtZTpcImFjdGlvbi1idXR0b25cIixvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHAoITEpfSxjaGlsZHJlbjooMCx5LmpzeCkoXCJzcGFuXCIse2NoaWxkcmVuOlwiUmVzdGFydFwifSl9KX0pXX0pfSkscHJvY2Vzcy5lbnYuX19ORVhUX0JVTkRMRVJfSEFTX1BFUlNJU1RFTlRfQ0FDSEU/KDAseS5qc3gpKFwiZGl2XCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2VzLWNvbnRhaW5lclwiLGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1zZWN0aW9uXCIsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1oZWFkZXJcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwibGFiZWxcIix7aWQ6XCJyZXNldC1idW5kbGVyLWNhY2hlXCIsY2hpbGRyZW46XCJSZXNldCBCdW5kbGVyIENhY2hlXCJ9KSwoMCx5LmpzeCkoXCJwXCIse2NsYXNzTmFtZTpcInByZWZlcmVuY2UtZGVzY3JpcHRpb25cIixjaGlsZHJlbjpcIkNsZWFycyB0aGUgYnVuZGxlciBjYWNoZSBhbmQgcmVzdGFydHMgdGhlIGRldiBzZXJ2ZXIuIEhlbHBmdWwgaWYgeW91IGFyZSBzZWVpbmcgc3RhbGUgZXJyb3JzIG9yIGNoYW5nZXMgYXJlIG5vdCBhcHBlYXJpbmcuXCJ9KV19KSwoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicHJlZmVyZW5jZS1jb250cm9sXCIsY2hpbGRyZW46KDAseS5qc3gpKFwiYnV0dG9uXCIse1wiYXJpYS1kZXNjcmliZWRieVwiOlwicmVzZXQtYnVuZGxlci1jYWNoZVwiLHRpdGxlOlwiQ2xlYXJzIHRoZSBidW5kbGVyIGNhY2hlIGFuZCByZXN0YXJ0cyB0aGUgZGV2IHNlcnZlci4gSGVscGZ1bCBpZiB5b3UgYXJlIHNlZWluZyBzdGFsZSBlcnJvcnMgb3IgY2hhbmdlcyBhcmUgbm90IGFwcGVhcmluZy5cIixuYW1lOlwicmVzZXQtYnVuZGxlci1jYWNoZVwiLFwiZGF0YS1yZXNldC1idW5kbGVyLWNhY2hlXCI6ITAsY2xhc3NOYW1lOlwiYWN0aW9uLWJ1dHRvblwiLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gcCghMCl9LGNoaWxkcmVuOigwLHkuanN4KShcInNwYW5cIix7Y2hpbGRyZW46XCJSZXNldCBDYWNoZVwifSl9KX0pXX0pfSk6bnVsbF19KSl9ZnVuY3Rpb24gck8oZSl7dmFyIG49ZS5jaGlsZHJlbix0PWUucHJlZml4LHI9cncoZSxbXCJjaGlsZHJlblwiLFwicHJlZml4XCJdKTtyZXR1cm4oMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcInNlbGVjdC1idXR0b25cIixjaGlsZHJlbjpbdCwoMCx5LmpzeCkoXCJzZWxlY3RcIixyeChyeSh7fSxyKSx7Y2hpbGRyZW46bn0pKSwoMCx5LmpzeCkockUse30pXX0pfWZ1bmN0aW9uIHJDKGUpe3N3aXRjaChlLnRoZW1lKXtjYXNlXCJzeXN0ZW1cIjpyZXR1cm4oMCx5LmpzeCkocmUse30pO2Nhc2VcImRhcmtcIjpyZXR1cm4oMCx5LmpzeCkodDcse30pO2Nhc2VcImxpZ2h0XCI6cmV0dXJuKDAseS5qc3gpKHQ4LHt9KTtkZWZhdWx0OnJldHVybiBudWxsfX12YXIgclM9ZWkocmsoKSk7ZnVuY3Rpb24gckUoKXtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIix7d2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLFwiYXJpYS1oaWRkZW5cIjohMCxjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMTQuMDYwNyA1LjQ5OTk5TDEzLjUzMDMgNi4wMzAzMkw4LjcwNzEgMTAuODUzNUM4LjMxNjU4IDExLjI0NDEgNy42ODM0MSAxMS4yNDQxIDcuMjkyODkgMTAuODUzNUwyLjQ2OTY2IDYuMDMwMzJMMS45MzkzMyA1LjQ5OTk5TDIuOTk5OTkgNC40MzkzM0wzLjUzMDMyIDQuOTY5NjZMNy45OTk5OSA5LjQzOTMzTDEyLjQ2OTcgNC45Njk2NkwxMyA0LjQzOTMzTDE0LjA2MDcgNS40OTk5OVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0pfWZ1bmN0aW9uIHJfKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiByUChlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gcnooZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIHJMKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb31mdW5jdGlvbiByVChlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gcl8oZSl9KGUpfHxmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8clIoZSl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIHJSKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHJfKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIHJfKGUsbil9fWZ1bmN0aW9uIHJOKGUpe3ZhciBuPWUuY2hpbGRyZW4sdD1lLnBhZGRpbmcscj1lLnBvc2l0aW9uLG89ZS5zZXRQb3NpdGlvbixhPWUub25EcmFnU3RhcnQsaT1lLmRyYWdIYW5kbGVTZWxlY3RvcixsPWUuZGlzYWJsZURyYWcscz1yTChlLFtcImNoaWxkcmVuXCIsXCJwYWRkaW5nXCIsXCJwb3NpdGlvblwiLFwic2V0UG9zaXRpb25cIixcIm9uRHJhZ1N0YXJ0XCIsXCJkcmFnSGFuZGxlU2VsZWN0b3JcIixcImRpc2FibGVEcmFnXCJdKSxjPWZ1bmN0aW9uKGUpe3ZhciBuPSgwLHgudXNlUmVmKShudWxsKSx0PSgwLHgudXNlUmVmKSh7c3RhdGU6XCJpZGxlXCJ9KSxyPSgwLHgudXNlUmVmKShudWxsKSxvPSgwLHgudXNlUmVmKSh7eDowLHk6MH0pLGE9KDAseC51c2VSZWYpKHt4OjAseTowfSksaT0oMCx4LnVzZVJlZikoMCksbD0oMCx4LnVzZVJlZikoW10pLHM9KDAseC51c2VDYWxsYmFjaykoZnVuY3Rpb24oKXt2YXIgZSxvO1wiZHJhZ1wiPT09dC5jdXJyZW50LnN0YXRlJiYobnVsbD09KG89bi5jdXJyZW50KXx8by5yZWxlYXNlUG9pbnRlckNhcHR1cmUodC5jdXJyZW50LnBvaW50ZXJJZCkpLHQuY3VycmVudD1cImRyYWdcIj09PXQuY3VycmVudC5zdGF0ZT97c3RhdGU6XCJkcmFnLWVuZFwifTp7c3RhdGU6XCJpZGxlXCJ9LG51bGwhPT1yLmN1cnJlbnQmJihyLmN1cnJlbnQoKSxyLmN1cnJlbnQ9bnVsbCksbC5jdXJyZW50PVtdLG51bGw9PShlPW4uY3VycmVudCl8fGUuY2xhc3NMaXN0LnJlbW92ZShcImRldi10b29scy1ncmFiYmluZ1wiKX0sW10pO2Z1bmN0aW9uIGMoZSl7bi5jdXJyZW50JiYoYS5jdXJyZW50PWUsbi5jdXJyZW50LnN0eWxlLnRyYW5zbGF0ZT1cIlwiLmNvbmNhdChlLngsXCJweCBcIikuY29uY2F0KGUueSxcInB4XCIpKX1mdW5jdGlvbiB1KGUpe2lmKFwiZHJhZy1lbmRcIj09PXQuY3VycmVudC5zdGF0ZSl7dmFyIHI7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksdC5jdXJyZW50PXtzdGF0ZTpcImlkbGVcIn0sbnVsbD09KHI9bi5jdXJyZW50KXx8ci5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIix1KX19ZnVuY3Rpb24gZChyKXtpZihcInByZXNzXCI9PT10LmN1cnJlbnQuc3RhdGUpe3ZhciBzLHUsZCxmLHA9ci5jbGllbnRYLW8uY3VycmVudC54LGg9ci5jbGllbnRZLW8uY3VycmVudC55O01hdGguc3FydChwKnAraCpoKT49ZS50aHJlc2hvbGQmJih0LmN1cnJlbnQ9e3N0YXRlOlwiZHJhZ1wiLHBvaW50ZXJJZDpyLnBvaW50ZXJJZH0sbnVsbD09KHU9bi5jdXJyZW50KXx8dS5zZXRQb2ludGVyQ2FwdHVyZShyLnBvaW50ZXJJZCksbnVsbD09KGQ9bi5jdXJyZW50KXx8ZC5jbGFzc0xpc3QuYWRkKFwiZGV2LXRvb2xzLWdyYWJiaW5nXCIpLG51bGw9PShmPWUub25EcmFnU3RhcnQpfHxmLmNhbGwoZSkpfWlmKFwiZHJhZ1wiPT09dC5jdXJyZW50LnN0YXRlKXt2YXIgZz17eDpyLmNsaWVudFgseTpyLmNsaWVudFl9LG09Zy54LW8uY3VycmVudC54LHY9Zy55LW8uY3VycmVudC55O28uY3VycmVudD1nLGMoe3g6YS5jdXJyZW50LngrbSx5OmEuY3VycmVudC55K3Z9KTt2YXIgYj1EYXRlLm5vdygpO2ItaS5jdXJyZW50Pj0xMCYmKGwuY3VycmVudD1yVChsLmN1cnJlbnQuc2xpY2UoLTUpKS5jb25jYXQoW3twb3NpdGlvbjpnLHRpbWVzdGFtcDpifV0pKSxpLmN1cnJlbnQ9YixudWxsPT0ocz1lLm9uRHJhZyl8fHMuY2FsbChlLGEuY3VycmVudCl9fWZ1bmN0aW9uIGYoKXt2YXIgbix0PWZ1bmN0aW9uKGUpe2lmKGUubGVuZ3RoPDIpcmV0dXJue3g6MCx5OjB9O3ZhciBuPWVbMF0sdD1lW2UubGVuZ3RoLTFdLHI9dC50aW1lc3RhbXAtbi50aW1lc3RhbXA7cmV0dXJuIDA9PT1yP3t4OjAseTowfTp7eDoxZTMqKCh0LnBvc2l0aW9uLngtbi5wb3NpdGlvbi54KS9yKSx5OjFlMyooKHQucG9zaXRpb24ueS1uLnBvc2l0aW9uLnkpL3IpfX0obC5jdXJyZW50KTtzKCksbnVsbD09KG49ZS5vbkRyYWdFbmQpfHxuLmNhbGwoZSxhLmN1cnJlbnQsdCl9cmV0dXJuKDAseC51c2VMYXlvdXRFZmZlY3QpKGZ1bmN0aW9uKCl7ZS5kaXNhYmxlZCYmcygpfSxbcyxlLmRpc2FibGVkXSkse3JlZjpuLG9uUG9pbnRlckRvd246ZnVuY3Rpb24oYSl7dmFyIGksbDswPT09YS5idXR0b24mJihsPWEudGFyZ2V0LCghZS5kcmFnSGFuZGxlU2VsZWN0b3J8fCFuLmN1cnJlbnR8fCFsfHxsLm1hdGNoZXMmJmwubWF0Y2hlcyhlLmRyYWdIYW5kbGVTZWxlY3RvcikpJiYoby5jdXJyZW50PXt4OmEuY2xpZW50WCx5OmEuY2xpZW50WX0sdC5jdXJyZW50PXtzdGF0ZTpcInByZXNzXCJ9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcm1vdmVcIixkKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLGYpLG51bGwhPT1yLmN1cnJlbnQmJihyLmN1cnJlbnQoKSxyLmN1cnJlbnQ9bnVsbCksci5jdXJyZW50PWZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVybW92ZVwiLGQpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIsZil9LG51bGw9PShpPW4uY3VycmVudCl8fGkuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdSkpKX0sYW5pbWF0ZTpmdW5jdGlvbih0KXt2YXIgcj1uLmN1cnJlbnQ7bnVsbCE9PXImJihyLnN0eWxlLnRyYW5zaXRpb249XCJ0cmFuc2xhdGUgNDkxLjIybXMgdmFyKC0tdGltaW5nLWJvdW5jZSlcIixyLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsZnVuY3Rpb24gbihvKXtpZihcInRyYW5zbGF0ZVwiPT09by5wcm9wZXJ0eU5hbWUpe3ZhciBpO251bGw9PShpPWUub25BbmltYXRpb25FbmQpfHxpLmNhbGwoZSx0KSxhLmN1cnJlbnQ9e3g6MCx5OjB9LHIuc3R5bGUudHJhbnNpdGlvbj1cIlwiLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIixuKX19KSxjKHQudHJhbnNsYXRpb24pKX19fSh7ZGlzYWJsZWQ6dm9pZCAwIT09bCYmbCx0aHJlc2hvbGQ6NSxvbkRyYWdTdGFydDphLG9uRHJhZ0VuZDpmdW5jdGlvbihlLG4pe3ZhciBvLGEsaSxsLHMsYyxmLHAsaCxnLG0sdixiLHkseCx3LGosayxBO2lmKDA9PT1NYXRoLnNxcnQoZS54KmUueCtlLnkqZS55KSl7bnVsbD09KG89dS5jdXJyZW50KXx8by5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcInRyYW5zbGF0ZVwiKTtyZXR1cm59ZCgoeT0oYT17eDplLngrckQobi54KSx5OmUueStyRChuLnkpfSkueCx4PWEueSxqPU9iamVjdC5lbnRyaWVzKHc9KHA9Mip0LGg9KG51bGw9PShjPXUuY3VycmVudCk/dm9pZCAwOmMub2Zmc2V0V2lkdGgpfHwwLGc9KG51bGw9PShmPXUuY3VycmVudCk/dm9pZCAwOmYub2Zmc2V0SGVpZ2h0KXx8MCxtPXdpbmRvdy5pbm5lcldpZHRoLWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCx7XCJ0b3AtbGVmdFwiOnt4OjAtKHY9KGw9KGk9cikuaW5jbHVkZXMoXCJyaWdodFwiKSxzPWkuaW5jbHVkZXMoXCJib3R0b21cIikse3g6bD93aW5kb3cuaW5uZXJXaWR0aC1tLXAtaDowLHk6cz93aW5kb3cuaW5uZXJIZWlnaHQtcC1nOjB9KSkueCx5OjAtdi55fSxcInRvcC1yaWdodFwiOnt4OndpbmRvdy5pbm5lcldpZHRoLW0tcC1oLXYueCx5OjAtdi55fSxcImJvdHRvbS1sZWZ0XCI6e3g6MC12LngseTp3aW5kb3cuaW5uZXJIZWlnaHQtcC1nLXYueX0sXCJib3R0b20tcmlnaHRcIjp7eDp3aW5kb3cuaW5uZXJXaWR0aC1tLXAtaC12LngseTp3aW5kb3cuaW5uZXJIZWlnaHQtcC1nLXYueX19KSkubWFwKGZ1bmN0aW9uKGUpe3ZhciBuLHQscj0odD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG49ZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksYS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0obiwyKXx8clIobix0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksbz1yWzBdLGE9clsxXTtyZXR1cm57a2V5Om8sZGlzdGFuY2U6TWF0aC5zcXJ0KE1hdGgucG93KHktYS54LDIpK01hdGgucG93KHgtYS55LDIpKX19KSxrPShiPU1hdGgpLm1pbi5hcHBseShiLHJUKGoubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmRpc3RhbmNlfSkpKSwoQT1qLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGlzdGFuY2U9PT1rfSkpP3t0cmFuc2xhdGlvbjp3W0Eua2V5XSxjb3JuZXI6QS5rZXl9Ontjb3JuZXI6cix0cmFuc2xhdGlvbjp3W3JdfSkpfSxvbkFuaW1hdGlvbkVuZDpmdW5jdGlvbihlKXt2YXIgbj1lLmNvcm5lcjtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGU7bnVsbD09KGU9dS5jdXJyZW50KXx8ZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eShcInRyYW5zbGF0ZVwiKSxvKG4pfSl9LGRyYWdIYW5kbGVTZWxlY3RvcjppfSksdT1jLnJlZixkPWMuYW5pbWF0ZSxmPXJMKGMsW1wicmVmXCIsXCJhbmltYXRlXCJdKTtyZXR1cm4oMCx5LmpzeCkoXCJkaXZcIixyeihyUChyeihyUCh7fSxzKSx7cmVmOnV9KSxmKSx7c3R5bGU6e3RvdWNoQWN0aW9uOlwibm9uZVwifSxjaGlsZHJlbjpufSkpfWZ1bmN0aW9uIHJEKGUpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTouOTk5O3JldHVybiBlLzFlMypuLygxLW4pfWZ1bmN0aW9uIHJCKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiByTShlLG4sdCl7cmV0dXJuIG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTp0LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT10LGV9ZnVuY3Rpb24gckkoZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3JNKGUsbix0W25dKX0pfXJldHVybiBlfWZ1bmN0aW9uIHJIKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb31mdW5jdGlvbiByRihlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gckIoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gckIoZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gclUoZSl7dmFyIG49ZS5zdGF0ZSx0PWUuZXJyb3JDb3VudCxyPWUuaXNCdWlsZEVycm9yLG89ckgoZSxbXCJzdGF0ZVwiLFwiZXJyb3JDb3VudFwiLFwiaXNCdWlsZEVycm9yXCJdKSxhPXJGKCgwLHgudXNlU3RhdGUpKCEwKSwyKSxpPWFbMF0sbD1hWzFdO3JldHVybigwLHkuanN4KShyJCxySSh7cm91dGVyVHlwZTpuLnJvdXRlclR5cGUsc2VtdmVyOm4udmVyc2lvbkluZm8uaW5zdGFsbGVkLGlzc3VlQ291bnQ6dCxpc0RldkJ1aWxkaW5nOm4uYnVpbGRpbmdJbmRpY2F0b3IsaXNEZXZSZW5kZXJpbmc6bi5yZW5kZXJpbmdJbmRpY2F0b3IsaXNTdGF0aWNSb3V0ZTpuLnN0YXRpY0luZGljYXRvcixoaWRlOmZ1bmN0aW9uKCl7bCghMSksZmV0Y2goXCIvX19uZXh0anNfZGlzYWJsZV9kZXZfaW5kaWNhdG9yXCIse21ldGhvZDpcIlBPU1RcIn0pfSx0b2dnbGVWaXNpYmlsaXR5OmZ1bmN0aW9uKCl7bCghaSl9LGlzVHVyYm9wYWNrOiEhcHJvY2Vzcy5lbnYuVFVSQk9QQUNLLGRpc2FibGVkOm4uZGlzYWJsZURldkluZGljYXRvcnx8IWksaXNCdWlsZEVycm9yOnIscGFnZTpuLnBhZ2V9LG8pKX12YXIgclY9KDAseC5jcmVhdGVDb250ZXh0KSh7fSkscnE9e1Jvb3Q6XCJyb290XCIsVHVyYm86XCJ0dXJib1wiLFJvdXRlOlwicm91dGVcIixQcmVmZXJlbmNlczpcInByZWZlcmVuY2VzXCIsU2VnbWVudEV4cGxvcmVyOlwic2VnbWVudC1leHBsb3JlclwifSxyVz1wcm9jZXNzLmVudi5fX05FWFRfREVWVE9PTF9TRUdNRU5UX0VYUExPUkVSP19fd2VicGFja19yZXF1aXJlX18oXCIuL3NyYy9uZXh0LWRldnRvb2xzL2Rldi1vdmVybGF5L2NvbXBvbmVudHMvZXJyb3JzL2Rldi10b29scy1pbmRpY2F0b3IvZGV2LXRvb2xzLWluZm8vc2VnbWVudHMtZXhwbG9yZXIudHN4XCIpLlc6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07ZnVuY3Rpb24gciQoZSl7dmFyIG4sdCxyLG8sYSxpLGwscz1lLnJvdXRlclR5cGUsYz1lLmRpc2FibGVkLHU9ZS5pc3N1ZUNvdW50LGQ9ZS5pc0RldkJ1aWxkaW5nLGY9ZS5pc0RldlJlbmRlcmluZyxwPWUuaXNTdGF0aWNSb3V0ZSxoPWUuaXNUdXJib3BhY2ssZz1lLmlzQnVpbGRFcnJvcixtPWUuaGlkZSx2PWUudG9nZ2xlVmlzaWJpbGl0eSxiPWUuZGlzcGF0Y2gsdz1lLnNjYWxlLGo9ZS5zZXRTY2FsZSxrPWUucGFnZSxBPSgwLHgudXNlUmVmKShudWxsKSxPPSgwLHgudXNlUmVmKShudWxsKSxDPSgwLHgudXNlUmVmKShudWxsKSxTPXJGKCgwLHgudXNlU3RhdGUpKG51bGwpLDIpLEU9U1swXSxfPVNbMV0sUD1yRigoMCx4LnVzZVN0YXRlKShcInVuZGVmaW5lZFwiIT10eXBlb2YgbG9jYWxTdG9yYWdlJiZsb2NhbFN0b3JhZ2UuZ2V0SXRlbShHKT9sb2NhbFN0b3JhZ2UuZ2V0SXRlbShHKTpyciksMiksej1QWzBdLEw9UFsxXSxUPXJGKCgwLHgudXNlU3RhdGUpKC0xKSwyKSxSPVRbMF0sTj1UWzFdLEQ9ckYoKHQ9KG49cnQoKDAseC51c2VTdGF0ZSkoZnVuY3Rpb24oKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgbG9jYWxTdG9yYWdlKXJldHVybiBudWxsO3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKHJvKTtyZXR1cm4gZXx8bnVsbH0oKSksMikpWzBdLHI9blsxXSxbdCxmdW5jdGlvbihlKXtyKGUpLG51bGw9PT1lP2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHJvKTpsb2NhbFN0b3JhZ2Uuc2V0SXRlbShybyxlKX1dKSwyKSxCPURbMF0sST1EWzFdLEY9RT09PXJxLlJvb3QsVT1FPT09cnEuVHVyYm8sVj1FPT09cnEuUm91dGUscT1FPT09cnEuUHJlZmVyZW5jZXMsVz1FPT09cnEuU2VnbWVudEV4cGxvcmVyLCQ9KDAsdEouTikoRix7ZW50ZXJEZWxheTowLGV4aXREZWxheTpuUS5LN30pLFo9JC5tb3VudGVkLFk9JC5yZW5kZXJlZDtmdW5jdGlvbiBYKGUpe2lmKFwiZmlyc3RcIj09PWUpcmV0dXJuIHZvaWQgc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlLG49bnVsbD09KGU9Ty5jdXJyZW50KT92b2lkIDA6ZS5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT1cIm1lbnVpdGVtXCJdJyk7biYmWChOdW1iZXIoblswXS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWluZGV4XCIpKSl9KTtpZihcImxhc3RcIj09PWUpcmV0dXJuIHZvaWQgc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlLG49bnVsbD09KGU9Ty5jdXJyZW50KT92b2lkIDA6ZS5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT1cIm1lbnVpdGVtXCJdJyk7biYmWChuLmxlbmd0aC0xKX0pO3ZhciBuLHQ9bnVsbD09KG49Ty5jdXJyZW50KT92b2lkIDA6bi5xdWVyeVNlbGVjdG9yKCdbZGF0YS1pbmRleD1cIicuY29uY2F0KGUsJ1wiXScpKTt0JiYoTihlKSxudWxsPT10fHx0LmZvY3VzKCkpfWZ1bmN0aW9uIEsoKXtfKHJxLlJvb3QpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtYKFIpfSxuUS5LNyl9ZnVuY3Rpb24gUSgpe18oZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1ycS5Sb290P251bGw6ZX0pfSgwLG5RLlA1KShPLEMsRiksKDAsblEuTzgpKE8sQyxaLFEpLG89Qj9yTSh7fSxCLGZ1bmN0aW9uKCl7digpO3ZhciBlPUEuY3VycmVudDtlJiYoZS5kYXRhc2V0LmhpZGRlbj1cInRydWVcIj09PWUuZGF0YXNldC5oaWRkZW4/XCJmYWxzZVwiOlwidHJ1ZVwiKX0pOnt9LGE9QywoMCx4LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbihlKXtpZihuPWEsISh0PSgwLG5RLnZZKShuLmN1cnJlbnQpKXx8XCJ0cnVlXCIhPT10LmNvbnRlbnRFZGl0YWJsZSYmXCJJTlBVVFwiIT09dC50YWdOYW1lJiZcIlRFWFRBUkVBXCIhPT10LnRhZ05hbWUmJlwiU0VMRUNUXCIhPT10LnRhZ05hbWUmJlwidHJ1ZVwiIT09dC5kYXRhc2V0W1wic2hvcnRjdXQtcmVjb3JkZXJcIl18fHQuaGFzQXR0cmlidXRlKFwicmVhZG9ubHlcIikpe3ZhciBuLHQscj1bXTtlLm1ldGFLZXkmJnIucHVzaChcIk1ldGFcIiksZS5jdHJsS2V5JiZyLnB1c2goXCJDb250cm9sXCIpLGUuYWx0S2V5JiZyLnB1c2goXCJBbHRcIiksZS5zaGlmdEtleSYmci5wdXNoKFwiU2hpZnRcIiksXCJNZXRhXCIhPT1lLmtleSYmXCJDb250cm9sXCIhPT1lLmtleSYmXCJBbHRcIiE9PWUua2V5JiZcIlNoaWZ0XCIhPT1lLmtleSYmci5wdXNoKGUua2V5KTt2YXIgaT1yLmpvaW4oXCIrXCIpO29baV0mJihlLnByZXZlbnREZWZhdWx0KCksb1tpXSgpKX19O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKSxmdW5jdGlvbigpe3JldHVybiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIixlKX19LFtvXSksKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aWYobnVsbD09PUUpe3ZhciBlPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtOKC0xKX0sblEuSzcpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBjbGVhclRpbWVvdXQoZSl9fX0sW0VdKTt2YXIgSj1yRih6LnNwbGl0KFwiLVwiLDIpLDIpLGVlPUpbMF0sZW49SlsxXSxldD0ock0oaT17fSxlZSxcImNhbGMoMTAwJSArIDhweClcIiksck0oaSxlbiwwKSxpKTtyZXR1cm4oMCx5LmpzeHMpKHRSLHtyZWY6QSxcImRhdGEtbmV4dGpzLXRvYXN0XCI6ITAsc3R5bGU6KHJNKGw9e1wiLS1hbmltYXRlLW91dC1kdXJhdGlvbi1tc1wiOlwiXCIuY29uY2F0KG5RLks3LFwibXNcIiksXCItLWFuaW1hdGUtb3V0LXRpbWluZy1mdW5jdGlvblwiOm5RLnVELGJveFNoYWRvdzpcIm5vbmVcIn0sZWUsXCJcIi5jb25jYXQoMjAsXCJweFwiKSksck0obCxlbixcIlwiLmNvbmNhdCgyMCxcInB4XCIpKSxsKSxjaGlsZHJlbjpbKDAseS5qc3gpKHJOLHtwYWRkaW5nOjIwLG9uRHJhZ1N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIF8obnVsbCl9LHBvc2l0aW9uOnosc2V0UG9zaXRpb246ZnVuY3Rpb24oZSl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oRyxlKSxMKGUpfSxjaGlsZHJlbjooMCx5LmpzeCkodFkse3JlZjpDLFwiYXJpYS1oYXNwb3B1cFwiOlwibWVudVwiLFwiYXJpYS1leHBhbmRlZFwiOkYsXCJhcmlhLWNvbnRyb2xzXCI6XCJuZXh0anMtZGV2LXRvb2xzLW1lbnVcIixcImFyaWEtbGFiZWxcIjpcIlwiLmNvbmNhdChGP1wiQ2xvc2VcIjpcIk9wZW5cIixcIiBOZXh0LmpzIERldiBUb29sc1wiKSxcImRhdGEtbmV4dGpzLWRldi10b29scy1idXR0b25cIjohMCxkaXNhYmxlZDpjLGlzc3VlQ291bnQ6dSxvblRyaWdnZXJDbGljazpmdW5jdGlvbigpe0U9PT1ycS5Sb290P18obnVsbCk6KF8ocnEuUm9vdCksc2V0VGltZW91dChmdW5jdGlvbigpe1goXCJmaXJzdFwiKX0pKX0sdG9nZ2xlRXJyb3JPdmVybGF5OmZ1bmN0aW9uKCl7Yih7dHlwZTpIfSl9LGlzRGV2QnVpbGRpbmc6ZCxpc0RldlJlbmRlcmluZzpmLGlzQnVpbGRFcnJvcjpnLHNjYWxlOnd9KX0pLCgwLHkuanN4KSh0Myx7aXNPcGVuOlYsY2xvc2U6Syx0cmlnZ2VyUmVmOkMsc3R5bGU6ZXQscm91dGVyVHlwZTpzLHJvdXRlVHlwZTpwP1wiU3RhdGljXCI6XCJEeW5hbWljXCJ9KSwoMCx5LmpzeCkodDEse2lzT3BlbjpVLGNsb3NlOkssdHJpZ2dlclJlZjpDLHN0eWxlOmV0fSksKDAseS5qc3gpKHJBLHtpc09wZW46cSxjbG9zZTpLLHRyaWdnZXJSZWY6QyxzdHlsZTpldCxoaWRlOmZ1bmN0aW9uKCl7XyhudWxsKSxtKCl9LHNldFBvc2l0aW9uOkwscG9zaXRpb246eixzY2FsZTp3LHNldFNjYWxlOmosaGlkZVNob3J0Y3V0OkIsc2V0SGlkZVNob3J0Y3V0Okl9KSxwcm9jZXNzLmVudi5fX05FWFRfREVWVE9PTF9TRUdNRU5UX0VYUExPUkVSPygwLHkuanN4KShyVyx7aXNPcGVuOlcsY2xvc2U6Syx0cmlnZ2VyUmVmOkMsc3R5bGU6ZXQscm91dGVyVHlwZTpzLHBhZ2U6a30pOm51bGwsWiYmKDAseS5qc3gpKFwiZGl2XCIse3JlZjpPLGlkOlwibmV4dGpzLWRldi10b29scy1tZW51XCIscm9sZTpcIm1lbnVcIixkaXI6XCJsdHJcIixcImFyaWEtb3JpZW50YXRpb25cIjpcInZlcnRpY2FsXCIsXCJhcmlhLWxhYmVsXCI6XCJOZXh0LmpzIERldiBUb29scyBJdGVtc1wiLHRhYkluZGV4Oi0xLGNsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItbWVudVwiLG9uS2V5RG93bjpmdW5jdGlvbihlKXtzd2l0Y2goZS5wcmV2ZW50RGVmYXVsdCgpLGUua2V5KXtjYXNlXCJBcnJvd0Rvd25cIjpYKFIrMSk7YnJlYWs7Y2FzZVwiQXJyb3dVcFwiOlgoUi0xKTticmVhaztjYXNlXCJIb21lXCI6WChcImZpcnN0XCIpO2JyZWFrO2Nhc2VcIkVuZFwiOlgoXCJsYXN0XCIpfX0sXCJkYXRhLXJlbmRlcmVkXCI6WSxzdHlsZTpldCxjaGlsZHJlbjooMCx5LmpzeHMpKHJWLlByb3ZpZGVyLHt2YWx1ZTp7Y2xvc2VNZW51OlEsc2VsZWN0ZWRJbmRleDpSLHNldFNlbGVjdGVkSW5kZXg6Tn0sY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZGljYXRvci1pbm5lclwiLGNoaWxkcmVuOlt1PjAmJigwLHkuanN4KShyWSx7dGl0bGU6XCJcIi5jb25jYXQodSxcIiBcIikuY29uY2F0KDE9PT11P1wiaXNzdWVcIjpcImlzc3Vlc1wiLFwiIGZvdW5kLiBDbGljayB0byB2aWV3IGRldGFpbHMgaW4gdGhlIGRldiBvdmVybGF5LlwiKSxpbmRleDowLGxhYmVsOlwiSXNzdWVzXCIsdmFsdWU6KDAseS5qc3gpKHJYLHtjaGlsZHJlbjp1fSksb25DbGljazpmdW5jdGlvbigpe18obnVsbCksdT4wJiZiKHt0eXBlOk19KX19KSwoMCx5LmpzeCkoclkse3RpdGxlOlwiQ3VycmVudCByb3V0ZSBpcyBcIi5jb25jYXQocD9cInN0YXRpY1wiOlwiZHluYW1pY1wiLFwiLlwiKSxsYWJlbDpcIlJvdXRlXCIsaW5kZXg6MSx2YWx1ZTpwP1wiU3RhdGljXCI6XCJEeW5hbWljXCIsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBfKHJxLlJvdXRlKX0sXCJkYXRhLW5leHRqcy1yb3V0ZS10eXBlXCI6cD9cInN0YXRpY1wiOlwiZHluYW1pY1wifSksaD8oMCx5LmpzeCkoclkse3RpdGxlOlwiVHVyYm9wYWNrIGlzIGVuYWJsZWQuXCIsbGFiZWw6XCJUdXJib3BhY2tcIix2YWx1ZTpcIkVuYWJsZWRcIn0pOigwLHkuanN4KShyWSx7aW5kZXg6Mix0aXRsZTpcIkxlYXJuIGFib3V0IFR1cmJvcGFjayBhbmQgaG93IHRvIGVuYWJsZSBpdCBpbiB5b3VyIGFwcGxpY2F0aW9uLlwiLGxhYmVsOlwiVHJ5IFR1cmJvcGFja1wiLHZhbHVlOigwLHkuanN4KShyWix7fSksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBfKHJxLlR1cmJvKX19KV19KSwoMCx5LmpzeHMpKFwiZGl2XCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItZm9vdGVyXCIsY2hpbGRyZW46WygwLHkuanN4KShyWSx7XCJkYXRhLXByZWZlcmVuY2VzXCI6ITAsbGFiZWw6XCJQcmVmZXJlbmNlc1wiLHZhbHVlOigwLHkuanN4KSh0Nix7fSksb25DbGljazpmdW5jdGlvbigpe3JldHVybiBfKHJxLlByZWZlcmVuY2VzKX0saW5kZXg6aD8yOjN9KSxwcm9jZXNzLmVudi5fX05FWFRfREVWVE9PTF9TRUdNRU5UX0VYUExPUkVSPygwLHkuanN4KShyWSx7XCJkYXRhLXNlZ21lbnQtZXhwbG9yZXJcIjohMCxsYWJlbDpcIlJvdXRlIEluZm9cIix2YWx1ZTooMCx5LmpzeCkoclose30pLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gXyhycS5TZWdtZW50RXhwbG9yZXIpfSxpbmRleDpoPzM6NH0pOm51bGxdfSldfSl9KV19KX1mdW5jdGlvbiByWigpe3JldHVybigwLHkuanN4KShcInN2Z1wiLHt4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsd2lkdGg6XCIxNlwiLGhlaWdodDpcIjE2XCIsdmlld0JveDpcIjAgMCAxNiAxNlwiLGZpbGw6XCJub25lXCIsY2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsOlwiIzY2NlwiLGZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNNS41MDAxMSAxLjkzOTQ1TDYuMDMwNDQgMi40Njk3OEwxMC44NTM3IDcuMjkzQzExLjI0NDIgNy42ODM1MyAxMS4yNDQyIDguMzE2NjkgMTAuODUzNyA4LjcwNzIyTDYuMDMwNDQgMTMuNTMwNEw1LjUwMDExIDE0LjA2MDhMNC40Mzk0NSAxMy4wMDAxTDQuOTY5NzggMTIuNDY5OEw5LjQzOTQ1IDguMDAwMTFMNC45Njk3OCAzLjUzMDQ0TDQuNDM5NDUgMy4wMDAxMUw1LjUwMDExIDEuOTM5NDVaXCJ9KX0pfWZ1bmN0aW9uIHJZKGUpe3ZhciBuLHQscj1lLmluZGV4LG89ZS5sYWJlbCxhPWUudmFsdWUsaT1lLm9uQ2xpY2ssbD1lLmhyZWYscz1ySChlLFtcImluZGV4XCIsXCJsYWJlbFwiLFwidmFsdWVcIixcIm9uQ2xpY2tcIixcImhyZWZcIl0pLGM9XCJmdW5jdGlvblwiPT10eXBlb2YgaXx8XCJzdHJpbmdcIj09dHlwZW9mIGwsdT0oMCx4LnVzZUNvbnRleHQpKHJWKSxkPXUuY2xvc2VNZW51LGY9dS5zZWxlY3RlZEluZGV4LHA9dS5zZXRTZWxlY3RlZEluZGV4LGg9Zj09PXI7ZnVuY3Rpb24gZygpe2MmJihudWxsPT1pfHxpKCksZCgpLGwmJndpbmRvdy5vcGVuKGwsXCJfYmxhbmtcIixcIm5vb3BlbmVyLCBub3JlZmVycmVyXCIpKX1yZXR1cm4oMCx5LmpzeHMpKFwiZGl2XCIsKG49ckkoe2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItaXRlbVwiLFwiZGF0YS1pbmRleFwiOnIsXCJkYXRhLXNlbGVjdGVkXCI6aCxvbkNsaWNrOmcsb25Nb3VzZU1vdmU6ZnVuY3Rpb24oKXtjJiZ2b2lkIDAhPT1yJiZmIT09ciYmcChyKX0sb25Nb3VzZUxlYXZlOmZ1bmN0aW9uKCl7cmV0dXJuIHAoLTEpfSxvbktleURvd246ZnVuY3Rpb24oZSl7KFwiRW50ZXJcIj09PWUua2V5fHxcIiBcIj09PWUua2V5KSYmZygpfSxyb2xlOmM/XCJtZW51aXRlbVwiOnZvaWQgMCx0YWJJbmRleDpoPzA6LTF9LHMpLHQ9dD17Y2hpbGRyZW46WygwLHkuanN4KShcInNwYW5cIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZGljYXRvci1sYWJlbFwiLGNoaWxkcmVuOm99KSwoMCx5LmpzeCkoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItdmFsdWVcIixjaGlsZHJlbjphfSldfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX1mdW5jdGlvbiByWChlKXt2YXIgbj1lLmNoaWxkcmVuO3JldHVybigwLHkuanN4cykoXCJzcGFuXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmRpY2F0b3ItaXNzdWUtY291bnRcIixcImRhdGEtaGFzLWlzc3Vlc1wiOm4+MCxjaGlsZHJlbjpbKDAseS5qc3gpKFwic3BhblwiLHtjbGFzc05hbWU6XCJkZXYtdG9vbHMtaW5kaWNhdG9yLWlzc3VlLWNvdW50LWluZGljYXRvclwifSksbl19KX1mdW5jdGlvbiBySyhlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3htbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9LGUpLHQ9dD17Y2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtkOlwiTTQuMzA5NjkgOC4zNzg5MUgyLjM4NzgyQzIuOTgwNSAxMC4zNjQ3IDQuODIxODggMTEuODEyNCA3LjAwMDEyIDExLjgxMjVDOC44MTk3NyAxMS44MTI0IDEwLjQwNDMgMTAuODAyNCAxMS4yMjI4IDkuMzA5NTdMMTEuNTM4MiA4LjczNDM4TDEyLjY4OTYgOS4zNjUyM0wxMi4zNzQxIDkuOTQwNDNMMTIuMTY4MSAxMC4yODkxQzExLjA4MTUgMTEuOTkzIDkuMTczMjQgMTMuMTI0OSA3LjAwMDEyIDEzLjEyNUM0LjQyMjA3IDEzLjEyNDkgMi4yMTc0NyAxMS41MzIyIDEuMzEzNiA5LjI3NzM0VjExLjM3NUgwLjAwMTA5ODYzVjcuNzIyNjZMMC4wMTQ3NzA1IDcuNTg5ODRDMC4wNzYwMzA0IDcuMjkwODkgMC4zNDAyNzggNy4wNjY0MSAwLjY1NzM0OSA3LjA2NjQxSDQuMzA5NjlWOC4zNzg5MVpNNy4wMDAxMiAwLjg3NUM5LjU3Njg1IDAuODc1MTE4IDExLjc4MTkgMi40NjU2OSAxMi42ODY2IDQuNzE4NzVWMi42MjVIMTMuOTk5MVY2LjI3NzM0QzEzLjk5OTEgNi42Mzk3NCAxMy43MDUzIDYuOTMzNTQgMTMuMzQyOSA2LjkzMzU5SDkuNjg5NThWNS42MjEwOUgxMS42MTE1QzExLjAxODYgMy42MzU2IDkuMTc4MTMgMi4xODc2MyA3LjAwMDEyIDIuMTg3NUM1LjE3MTMxIDIuMTg3NTcgMy41Nzk1OSAzLjIwNzcxIDIuNzY0NzcgNC43MTI4OUwyLjQ1MjI3IDUuMjkwMDRMMS4yOTc5NyA0LjY2NTA0TDEuNjEwNDcgNC4wODc4OUMyLjY0NTQ3IDIuMTc2MDUgNC42NzA1MiAwLjg3NTA2OCA3LjAwMDEyIDAuODc1WlwiLGZpbGw6XCIjQTM1MjAwXCJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gclEoZSl7cmV0dXJuIGUuc2hvd0J1dHRvbj8oMCx5LmpzeHMpKFwiYnV0dG9uXCIse2NsYXNzTmFtZTpcInJlc3RhcnQtZGV2LXNlcnZlci1idXR0b25cIixvbkNsaWNrOmZ1bmN0aW9uKCl7ZmV0Y2goXCIvX19uZXh0anNfcmVzdGFydF9kZXY/aW52YWxpZGF0ZVBlcnNpc3RlbnRDYWNoZVwiLHttZXRob2Q6XCJQT1NUXCJ9KS50aGVuKGZ1bmN0aW9uKCl7fSl9LHRpdGxlOlwiQ2xlYXJzIHRoZSBidW5kbGVyIGNhY2hlIGFuZCByZXN0YXJ0cyB0aGUgZGV2IHNlcnZlci4gSGVscGZ1bCBpZiB5b3UgYXJlIHNlZWluZyBzdGFsZSBlcnJvcnMgb3IgY2hhbmdlcyBhcmUgbm90IGFwcGVhcmluZy5cIixjaGlsZHJlbjpbKDAseS5qc3gpKHJLLHt3aWR0aDoxNCxoZWlnaHQ6MTR9KSxcIkNsZWFyIEJ1bmRsZXIgQ2FjaGUgJiBSZXN0YXJ0XCJdfSk6bnVsbH1mdW5jdGlvbiByRygpe3ZhciBlLG4sdD0oZT1bXCJcXG4gIFtkYXRhLW5leHRqcy12ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3I9J2ZyZXNoJ10ge1xcbiAgICBmaWxsOiB2YXIoLS1jb2xvci1ncmVlbi04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLWdyZWVuLTMwMCk7XFxuICB9XFxuICBbZGF0YS1uZXh0anMtdmVyc2lvbi1zdGFsZW5lc3MtaW5kaWNhdG9yPSdzdGFsZSddIHtcXG4gICAgZmlsbDogdmFyKC0tY29sb3ItYW1iZXItODAwKTtcXG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvcj0nb3V0ZGF0ZWQnXSB7XFxuICAgIGZpbGw6IHZhcigtLWNvbG9yLXJlZC04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLXJlZC0zMDApO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvcj0ndW5rbm93biddIHtcXG4gICAgZmlsbDogdmFyKC0tY29sb3ItZ3JheS04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gckc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBySihlKXt2YXIgbj1lLnZlcnNpb25JbmZvLHQ9bi5zdGFsZW5lc3Mscj1uQihuKSxvPXIudGV4dCxhPXIuaW5kaWNhdG9yQ2xhc3MsaT1yLnRpdGxlO3JldHVybiB0LnN0YXJ0c1dpdGgoXCJzdGFsZVwiKT8oMCx5LmpzeHMpKFwiYVwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWJcIjohMCx0YXJnZXQ6XCJfYmxhbmtcIixyZWw6XCJub29wZW5lciBub3JlZmVycmVyXCIsaHJlZjpcImh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3ZlcnNpb24tc3RhbGVuZXNzXCIsdGl0bGU6aSxjaGlsZHJlbjpbKDAseS5qc3gpKG5NLHtcImRhdGEtbmV4dGpzLXZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvclwiOmF9KSwoMCx5LmpzeCkoXCJzcGFuXCIse2NoaWxkcmVuOm99KV19KTooMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZm9vdGVyLXRhYlwiOiEwLHRpdGxlOmksY2hpbGRyZW46WygwLHkuanN4KShuTSx7XCJkYXRhLW5leHRqcy12ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3JcIjphfSksKDAseS5qc3gpKFwic3BhblwiLHtjaGlsZHJlbjpvfSldfSl9dmFyIHIwPWVpKHJHKCkpO2Z1bmN0aW9uIHIxKCl7dmFyIGUsbix0PShlPVtcIlxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlcl0ge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTIwMCk7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLXJvdW5kZWQteGwpIHZhcigtLXJvdW5kZWQteGwpO1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZm9vdGVyLXRhYi1ncm91cF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcGFkZGluZzogMTJweDtcXG4gICAgZ2FwOiA4cHg7XFxuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XFxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG5cXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWItYnVuZGxlci1uYW1lPSdUVVJCT1BBQ0snXSB7XFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcXG4gICAgICB0byByaWdodCxcXG4gICAgICB2YXIoLS1jb2xvci10dXJib3BhY2stdGV4dC1yZWQpIDAlLFxcbiAgICAgIHZhcigtLWNvbG9yLXR1cmJvcGFjay10ZXh0LWJsdWUpIDEwMCVcXG4gICAgKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcXG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgfVxcblwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiByMT1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIHIyKGUpe3ZhciBuPWUudmVyc2lvbkluZm8sdD1lLmlzRHJhZ2dhYmxlLHI9ZS5zaG93UmVzdGFydFNlcnZlckJ1dHRvbixvPShwcm9jZXNzLmVudi5fX05FWFRfQlVORExFUnx8XCJXRUJQQUNLXCIpLnRvVXBwZXJDYXNlKCk7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3RlclwiOiEwLFwiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZHJhZ2dhYmxlXCI6dCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWItZ3JvdXBcIjohMCxjaGlsZHJlbjpbKDAseS5qc3gpKHJKLHt2ZXJzaW9uSW5mbzpufSksKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWJcIjohMCxjaGlsZHJlbjpbKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWItYnVuZGxlci1uYW1lXCI6byxjaGlsZHJlbjpvfSksKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWItYnVuZGxlci1zdGF0dXNcIjohMCxjaGlsZHJlbjpcImVuYWJsZWRcIn0pXX0pXX0pLHImJigwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlci10YWItZ3JvdXBcIjohMCxjaGlsZHJlbjooMCx5LmpzeCkoclEse3Nob3dCdXR0b246ITB9KX0pXX0pfXZhciByND1laShyMSgpKTtmdW5jdGlvbiByNShlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixcImFyaWEtaGlkZGVuXCI6ITB9LGUpLHQ9dD17Y2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTE0LjA2MDcgNS40OTk5OUwxMy41MzAzIDYuMDMwMzJMOC43MDcxIDEwLjg1MzVDOC4zMTY1OCAxMS4yNDQxIDcuNjgzNDEgMTEuMjQ0MSA3LjI5Mjg5IDEwLjg1MzVMMi40Njk2NiA2LjAzMDMyTDEuOTM5MzMgNS40OTk5OUwyLjk5OTk5IDQuNDM5MzNMMy41MzAzMiA0Ljk2OTY2TDcuOTk5OTkgOS40MzkzM0wxMi40Njk3IDQuOTY5NjZMMTMgNC40MzkzM0wxNC4wNjA3IDUuNDk5OTlaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkpfSksbikpfWZ1bmN0aW9uIHIzKGUpe3ZhciBuLHQscj1lLmNoaWxkcmVuLG89ZS5wcmVmaXgsYT1mdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJue307dmFyIHQscixvPWZ1bmN0aW9uKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89e30sYT1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSxuLmluZGV4T2YodCk+PTB8fChvW3RdPWVbdF0pO3JldHVybiBvfShlLG4pO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl0PWFbcl0sIShuLmluZGV4T2YodCk+PTApJiZPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZSx0KSYmKG9bdF09ZVt0XSl9cmV0dXJuIG99KGUsW1wiY2hpbGRyZW5cIixcInByZWZpeFwiXSk7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLXNlbGVjdFwiOiEwLGNoaWxkcmVuOltvLCgwLHkuanN4KShcInNlbGVjdFwiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe30sYSksdD10PXtjaGlsZHJlbjpyfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKSwoMCx5LmpzeCkocjUse3dpZHRoOjE2LGhlaWdodDoxNn0pXX0pfWZ1bmN0aW9uIHI2KGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiByOShlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gcjYoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gcjYoZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gcjgoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3NdIHtcXG4gICAgcGFkZGluZzogMTZweDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uXTpmaXJzdC1jaGlsZCB7XFxuICAgIHBhZGRpbmctdG9wOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb25dIHtcXG4gICAgcGFkZGluZzogMTJweCAwO1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogMjRweDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uXTpsYXN0LWNoaWxkIHtcXG4gICAgcGFkZGluZy1ib3R0b206IDA7XFxuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1oZWFkZXJdIHtcXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcXG4gICAgZmxleDogMTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWhlYWRlcl0gbGFiZWwge1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24tZGVzY3JpcHRpb25dIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLXNlbGVjdF0sXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1hY3Rpb24tYnV0dG9uXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogOHB4O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1sZyk7XFxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1zZWxlY3RdIHtcXG4gICAgJjpmb2N1cy13aXRoaW4ge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICB9XFxuXFxuICAgIHNlbGVjdCB7XFxuICAgICAgYWxsOiB1bnNldDtcXG4gICAgfVxcblxcbiAgICBvcHRpb24ge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgOmdsb2JhbCguaWNvbikge1xcbiAgICB3aWR0aDogMThweDtcXG4gICAgaGVpZ2h0OiAxOHB4O1xcbiAgICBjb2xvcjogIzY2NjtcXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gcjg9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiByNyhlKXtzd2l0Y2goZS50aGVtZSl7Y2FzZVwic3lzdGVtXCI6cmV0dXJuKDAseS5qc3gpKHJlLHt9KTtjYXNlXCJkYXJrXCI6cmV0dXJuKDAseS5qc3gpKHQ3LHt9KTtjYXNlXCJsaWdodFwiOnJldHVybigwLHkuanN4KSh0OCx7fSk7ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gb2UoZSl7dmFyIG49ZS5kZXZUb29sc1Bvc2l0aW9uLHQ9ZS5zY2FsZSxyPWUuaGFuZGxlUG9zaXRpb25DaGFuZ2Usbz1lLmhhbmRsZVNjYWxlQ2hhbmdlLGE9cjkoKDAseC51c2VTdGF0ZSkoZnVuY3Rpb24oKXtpZihcInVuZGVmaW5lZFwiPT10eXBlb2YgbG9jYWxTdG9yYWdlKXJldHVyblwic3lzdGVtXCI7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oUSk7cmV0dXJuXCJkYXJrXCI9PT1lfHxcImxpZ2h0XCI9PT1lP2U6XCJzeXN0ZW1cIn0oKSksMiksaT1hWzBdLGw9YVsxXTtmdW5jdGlvbiBzKGUpe3ZhciBuPVwiL19fbmV4dGpzX3Jlc3RhcnRfZGV2XCI7ZSYmKG49XCIvX19uZXh0anNfcmVzdGFydF9kZXY/aW52YWxpZGF0ZVBlcnNpc3RlbnRDYWNoZVwiKSxmZXRjaChuLHttZXRob2Q6XCJQT1NUXCJ9KS50aGVuKGZ1bmN0aW9uKCl7fSl9cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzXCI6ITAsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uXCI6ITAsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWhlYWRlclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJsYWJlbFwiLHtodG1sRm9yOlwidGhlbWVcIixjaGlsZHJlbjpcIlRoZW1lXCJ9KSwoMCx5LmpzeCkoXCJwXCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1kZXNjcmlwdGlvblwiOiEwLGNoaWxkcmVuOlwiU2VsZWN0IHlvdXIgdGhlbWUgcHJlZmVyZW5jZS5cIn0pXX0pLCgwLHkuanN4cykocjMse2lkOlwidGhlbWVcIixuYW1lOlwidGhlbWVcIixwcmVmaXg6KDAseS5qc3gpKHI3LHt0aGVtZTppfSksdmFsdWU6aSxvbkNoYW5nZTpmdW5jdGlvbihlKXt2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwibmV4dGpzLXBvcnRhbFwiKTtpZihuKXtpZihsKGUudGFyZ2V0LnZhbHVlKSxcInN5c3RlbVwiPT09ZS50YXJnZXQudmFsdWUpe24uY2xhc3NMaXN0LnJlbW92ZShcImRhcmtcIiksbi5jbGFzc0xpc3QucmVtb3ZlKFwibGlnaHRcIiksbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oUSk7cmV0dXJufVwiZGFya1wiPT09ZS50YXJnZXQudmFsdWU/KG4uY2xhc3NMaXN0LmFkZChcImRhcmtcIiksbi5jbGFzc0xpc3QucmVtb3ZlKFwibGlnaHRcIiksbG9jYWxTdG9yYWdlLnNldEl0ZW0oUSxcImRhcmtcIikpOihuLmNsYXNzTGlzdC5yZW1vdmUoXCJkYXJrXCIpLG4uY2xhc3NMaXN0LmFkZChcImxpZ2h0XCIpLGxvY2FsU3RvcmFnZS5zZXRJdGVtKFEsXCJsaWdodFwiKSl9fSxjaGlsZHJlbjpbKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwic3lzdGVtXCIsY2hpbGRyZW46XCJTeXN0ZW1cIn0pLCgwLHkuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcImxpZ2h0XCIsY2hpbGRyZW46XCJMaWdodFwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwiZGFya1wiLGNoaWxkcmVuOlwiRGFya1wifSldfSldfSksKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb25cIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24taGVhZGVyXCI6ITAsY2hpbGRyZW46WygwLHkuanN4KShcImxhYmVsXCIse2h0bWxGb3I6XCJwb3NpdGlvblwiLGNoaWxkcmVuOlwiUG9zaXRpb25cIn0pLCgwLHkuanN4KShcInBcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWRlc2NyaXB0aW9uXCI6ITAsY2hpbGRyZW46XCJBZGp1c3QgdGhlIHBsYWNlbWVudCBvZiB5b3VyIGRldiB0b29scy5cIn0pXX0pLCgwLHkuanN4cykocjMse2lkOlwicG9zaXRpb25cIixuYW1lOlwicG9zaXRpb25cIix2YWx1ZTpuLG9uQ2hhbmdlOnIsY2hpbGRyZW46WygwLHkuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcImJvdHRvbS1sZWZ0XCIsY2hpbGRyZW46XCJCb3R0b20gTGVmdFwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwiYm90dG9tLXJpZ2h0XCIsY2hpbGRyZW46XCJCb3R0b20gUmlnaHRcIn0pLCgwLHkuanN4KShcIm9wdGlvblwiLHt2YWx1ZTpcInRvcC1sZWZ0XCIsY2hpbGRyZW46XCJUb3AgTGVmdFwifSksKDAseS5qc3gpKFwib3B0aW9uXCIse3ZhbHVlOlwidG9wLXJpZ2h0XCIsY2hpbGRyZW46XCJUb3AgUmlnaHRcIn0pXX0pXX0pLCgwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uXCI6ITAsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWhlYWRlclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJsYWJlbFwiLHtodG1sRm9yOlwic2l6ZVwiLGNoaWxkcmVuOlwiU2l6ZVwifSksKDAseS5qc3gpKFwicFwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24tZGVzY3JpcHRpb25cIjohMCxjaGlsZHJlbjpcIkFkanVzdCB0aGUgc2l6ZSBvZiB5b3VyIGRldiB0b29scy5cIn0pXX0pLCgwLHkuanN4KShyMyx7aWQ6XCJzaXplXCIsbmFtZTpcInNpemVcIix2YWx1ZTp0LG9uQ2hhbmdlOm8sY2hpbGRyZW46T2JqZWN0LmVudHJpZXMoUykubWFwKGZ1bmN0aW9uKGUpe3ZhciBuPXI5KGUsMiksdD1uWzBdLHI9blsxXTtyZXR1cm4oMCx5LmpzeCkoXCJvcHRpb25cIix7dmFsdWU6cixjaGlsZHJlbjp0fSx0KX0pfSldfSksKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb25cIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24taGVhZGVyXCI6ITAsY2hpbGRyZW46WygwLHkuanN4KShcImxhYmVsXCIse2lkOlwiaGlkZS1kZXYtdG9vbHNcIixjaGlsZHJlbjpcIkhpZGUgRGV2IFRvb2xzIGZvciB0aGlzIHNlc3Npb25cIn0pLCgwLHkuanN4KShcInBcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWRlc2NyaXB0aW9uXCI6ITAsY2hpbGRyZW46XCJIaWRlIERldiBUb29scyB1bnRpbCB5b3UgcmVzdGFydCB5b3VyIGRldiBzZXJ2ZXIsIG9yIDEgZGF5LlwifSldfSksKDAseS5qc3gpKFwiZGl2XCIse2NoaWxkcmVuOigwLHkuanN4cykoXCJidXR0b25cIix7XCJhcmlhLWRlc2NyaWJlZGJ5XCI6XCJoaWRlLWRldi10b29sc1wiLG5hbWU6XCJoaWRlLWRldi10b29sc1wiLFwiZGF0YS1oaWRlLWRldi10b29sc1wiOiEwLFwiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1hY3Rpb24tYnV0dG9uXCI6ITAsb25DbGljazpmdW5jdGlvbigpe2ZldGNoKFwiL19fbmV4dGpzX2Rpc2FibGVfZGV2X2luZGljYXRvclwiLHttZXRob2Q6XCJQT1NUXCJ9KX0sY2hpbGRyZW46WygwLHkuanN4KSh0OSx7fSksKDAseS5qc3gpKFwic3BhblwiLHtjaGlsZHJlbjpcIkhpZGVcIn0pXX0pfSldfSksKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvblwiOiEwLGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWhlYWRlclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJsYWJlbFwiLHtjaGlsZHJlbjpcIkRpc2FibGUgRGV2IFRvb2xzIGZvciB0aGlzIHByb2plY3RcIn0pLCgwLHkuanN4cykoXCJwXCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1kZXNjcmlwdGlvblwiOiEwLGNoaWxkcmVuOltcIlRvIGRpc2FibGUgdGhpcyBVSSBjb21wbGV0ZWx5LCBzZXRcIixcIiBcIiwoMCx5LmpzeCkoXCJjb2RlXCIse2NsYXNzTmFtZTpcImRldi10b29scy1pbmZvLWNvZGVcIixjaGlsZHJlbjpcImRldkluZGljYXRvcnM6IGZhbHNlXCJ9KSxcIiBpbiB5b3VyIFwiLCgwLHkuanN4KShcImNvZGVcIix7Y2xhc3NOYW1lOlwiZGV2LXRvb2xzLWluZm8tY29kZVwiLGNoaWxkcmVuOlwibmV4dC5jb25maWdcIn0pLFwiIGZpbGUuXCJdfSldfSl9KSwoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvblwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1oZWFkZXJcIjohMCxjaGlsZHJlbjpbKDAseS5qc3gpKFwibGFiZWxcIix7aWQ6XCJyZXN0YXJ0LWRldi1zZXJ2ZXJcIixjaGlsZHJlbjpcIlJlc3RhcnQgRGV2IFNlcnZlclwifSksKDAseS5qc3gpKFwicFwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24tZGVzY3JpcHRpb25cIjohMCxjaGlsZHJlbjpcIlJlc3RhcnRzIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIgd2l0aG91dCBuZWVkaW5nIHRvIGxlYXZlIHRoZSBicm93c2VyLlwifSldfSksKDAseS5qc3gpKFwiZGl2XCIse2NoaWxkcmVuOigwLHkuanN4KShcImJ1dHRvblwiLHtcImFyaWEtZGVzY3JpYmVkYnlcIjpcInJlc3RhcnQtZGV2LXNlcnZlclwiLHRpdGxlOlwiUmVzdGFydHMgdGhlIGRldmVsb3BtZW50IHNlcnZlciB3aXRob3V0IG5lZWRpbmcgdG8gbGVhdmUgdGhlIGJyb3dzZXIuXCIsbmFtZTpcInJlc3RhcnQtZGV2LXNlcnZlclwiLFwiZGF0YS1yZXN0YXJ0LWRldi1zZXJ2ZXJcIjohMCxcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXNldHRpbmdzLXNlY3Rpb24tYWN0aW9uLWJ1dHRvblwiOiEwLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gcyghMSl9LGNoaWxkcmVuOigwLHkuanN4KShcInNwYW5cIix7Y2hpbGRyZW46XCJSZXN0YXJ0XCJ9KX0pfSldfSkscHJvY2Vzcy5lbnYuX19ORVhUX1RVUkJPUEFDS19QRVJTSVNURU5UX0NBQ0hFPygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uXCI6ITAsY2hpbGRyZW46WygwLHkuanN4cykoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWhlYWRlclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJsYWJlbFwiLHtpZDpcInJlc2V0LWJ1bmRsZXItY2FjaGVcIixjaGlsZHJlbjpcIlJlc2V0IEJ1bmRsZXIgQ2FjaGVcIn0pLCgwLHkuanN4KShcInBcIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1zZXR0aW5ncy1zZWN0aW9uLWRlc2NyaXB0aW9uXCI6ITAsY2hpbGRyZW46XCJDbGVhcnMgdGhlIGJ1bmRsZXIgY2FjaGUgYW5kIHJlc3RhcnRzIHRoZSBkZXYgc2VydmVyLiBIZWxwZnVsIGlmIHlvdSBhcmUgc2VlaW5nIHN0YWxlIGVycm9ycyBvciBjaGFuZ2VzIGFyZSBub3QgYXBwZWFyaW5nLlwifSldfSksKDAseS5qc3gpKFwiZGl2XCIse2NoaWxkcmVuOigwLHkuanN4KShcImJ1dHRvblwiLHtcImFyaWEtZGVzY3JpYmVkYnlcIjpcInJlc2V0LWJ1bmRsZXItY2FjaGVcIix0aXRsZTpcIkNsZWFycyB0aGUgYnVuZGxlciBjYWNoZSBhbmQgcmVzdGFydHMgdGhlIGRldiBzZXJ2ZXIuIEhlbHBmdWwgaWYgeW91IGFyZSBzZWVpbmcgc3RhbGUgZXJyb3JzIG9yIGNoYW5nZXMgYXJlIG5vdCBhcHBlYXJpbmcuXCIsbmFtZTpcInJlc2V0LWJ1bmRsZXItY2FjaGVcIixcImRhdGEtcmVzZXQtYnVuZGxlci1jYWNoZVwiOiEwLFwiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtc2V0dGluZ3Mtc2VjdGlvbi1hY3Rpb24tYnV0dG9uXCI6ITAsb25DbGljazpmdW5jdGlvbigpe3JldHVybiBzKCEwKX0sY2hpbGRyZW46KDAseS5qc3gpKFwic3BhblwiLHtjaGlsZHJlbjpcIlJlc2V0IENhY2hlXCJ9KX0pfSldfSk6bnVsbF19KX12YXIgb249ZWkocjgoKSk7ZnVuY3Rpb24gb3QoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyLWZyYW1lLXNrZWxldG9uLWJhcl0ge1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTIpO1xcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxcbiAgICAgIDkwZGVnLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMjAwKSAyNSUsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0xMDApIDUwJSxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTIwMCkgNzUlXFxuICAgICk7XFxuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xcbiAgICBhbmltYXRpb246IHNrZWxldG9uLXNoaW1tZXIgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWUtc2tlbGV0b24tYmFyPScxJ10ge1xcbiAgICB3aWR0aDogNzUlO1xcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyLWZyYW1lLXNrZWxldG9uLWJhcj0nMiddIHtcXG4gICAgd2lkdGg6IDM2LjUlO1xcbiAgfVxcblxcbiAgQGtleWZyYW1lcyBza2VsZXRvbi1zaGltbWVyIHtcXG4gICAgMCUge1xcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7XFxuICAgIH1cXG4gICAgMTAwJSB7XFxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwO1xcbiAgICB9XFxuICB9XFxuXFxuICAvKiBSZXNwZWN0IHVzZXIncyBtb3Rpb24gcHJlZmVyZW5jZXMgKi9cXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XFxuICAgIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWUtc2tlbGV0b24tYmFyPScxJ10sXFxuICAgIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWUtc2tlbGV0b24tYmFyPScyJ10ge1xcbiAgICAgIGFuaW1hdGlvbjogbm9uZTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XFxuICAgIH1cXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gb3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvcigpe3JldHVybigwLHkuanN4cykoeS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1za2VsZXRvbi1iYXJcIjpcIjFcIn0pLCgwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1za2VsZXRvbi1iYXJcIjpcIjJcIn0pXX0pfXZhciBvbz1laShvdCgpKTtmdW5jdGlvbiBvYSgpe3ZhciBlLG4sdD0oZT1bXCJcXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgZ2FwOiA0cHg7XFxuICAgIHBhZGRpbmc6IDhweDtcXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcblxcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcXG4gICAgICBtYXgtd2lkdGg6IDExMnB4O1xcbiAgICB9XFxuXFxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgICAgIG1heC13aWR0aDogMTM4cHg7XFxuICAgICAgd2lkdGg6IDEwMCU7XFxuICAgIH1cXG5cXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAgICAgbWF4LXdpZHRoOiAxNzIuNXB4O1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICB9XFxuXFxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgICAgIG1heC13aWR0aDogMjMwcHg7XFxuICAgICAgd2lkdGg6IDEwMCU7XFxuICAgIH1cXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWVdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgcGFkZGluZzogMTBweCA4cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbGcpO1xcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG4gICAgfVxcblxcbiAgICAmOmFjdGl2ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0zMDApO1xcbiAgICB9XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyLWZyYW1lLWFjdGl2ZT0ndHJ1ZSddIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDApO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1lcnJvci10eXBlXSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWUtc291cmNlXSB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEzKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMTgpO1xcbiAgfVxcblxcbiAgLyogRWxsaXBzaXMgZm9yIGxvbmcgc3RhY2sgZnJhbWUgc291cmNlIG9yIHNtYWxsIGRldmljZXMuICovXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyLWZyYW1lLWVycm9yLXR5cGVdLFxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1zb3VyY2VdIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gb2E9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvaShlKXt2YXIgbj1lLnJ1bnRpbWVFcnJvcnMsdD1lLmFjdGl2ZUlkeCxyPWUuc2V0QWN0aXZlSW5kZXg7cmV0dXJuIDA9PT1uLmxlbmd0aD9udWxsOigwLHkuanN4KShcImFzaWRlXCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyXCI6ITAsY2hpbGRyZW46bi5tYXAoZnVuY3Rpb24oZSxuKXt2YXIgbz1uPT09dDtyZXR1cm4oMCx5LmpzeCkob3Mse3J1bnRpbWVFcnJvcjplLGlkeDpuLGlzQWN0aXZlOm8sc2V0QWN0aXZlSW5kZXg6cn0sbil9KX0pfXZhciBvbD0oMCx4Lm1lbW8pKGZ1bmN0aW9uKGUpe3ZhciBuPWUucnVudGltZUVycm9yLHQ9dGoobikscj0oMCx4LnVzZU1lbW8pKGZ1bmN0aW9uKCl7dmFyIGUsbj10LmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4hZS5pZ25vcmVkJiYhIWUub3JpZ2luYWxDb2RlRnJhbWUmJiEhZS5vcmlnaW5hbFN0YWNrRnJhbWV9KTtyZXR1cm4gbnVsbCE9KGU9dFtuXSk/ZTpudWxsfSxbdF0pO2lmKCEobnVsbD09cj92b2lkIDA6ci5vcmlnaW5hbFN0YWNrRnJhbWUpKXJldHVybiBudWxsO3ZhciBvPXR6KG4uZXJyb3Isbi50eXBlKSxhPWVTKHIub3JpZ2luYWxTdGFja0ZyYW1lKTtyZXR1cm4oMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx5LmpzeCkoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1zaWRlYmFyLWZyYW1lLWVycm9yLXR5cGVcIjohMCxjaGlsZHJlbjpvfSksKDAseS5qc3gpKFwic3BhblwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1zb3VyY2VcIjohMCxjaGlsZHJlbjphfSldfSl9KSxvcz0oMCx4Lm1lbW8pKGZ1bmN0aW9uKGUpe3ZhciBuPWUucnVudGltZUVycm9yLHQ9ZS5pZHgscj1lLmlzQWN0aXZlLG89ZS5zZXRBY3RpdmVJbmRleDtyZXR1cm4oMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLXNpZGViYXItZnJhbWVcIjohMCxcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtc2lkZWJhci1mcmFtZS1hY3RpdmVcIjpyLG9uQ2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gbyh0KX0sY2hpbGRyZW46KDAseS5qc3gpKHguU3VzcGVuc2Use2ZhbGxiYWNrOigwLHkuanN4KShvcix7fSksY2hpbGRyZW46KDAseS5qc3gpKG9sLHtydW50aW1lRXJyb3I6bn0pfSl9KX0pLG9jPWVpKG9hKCkpO2Z1bmN0aW9uIG91KCl7dmFyIGUsbix0PShlPVtcIlxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbl0ge1xcbiAgICBtYXJnaW46IDhweCAwO1xcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1oZWFkZXJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcGFkZGluZzogMTJweDtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XFxuICAgIGdhcDogNnB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1pY29uXSB7XFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgOTBkZWcsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0yMDApIDI1JSxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTEwMCkgNTAlLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMjAwKSA3NSVcXG4gICAgKTtcXG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XFxuICAgIGFuaW1hdGlvbjogc2tlbGV0b24tc2hpbW1lciAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xcbiAgICBmbGV4LXNocmluazogMDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24taGVhZGVyLWJhcl0ge1xcbiAgICB3aWR0aDogNDIuOSU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWJ1dHRvbl0ge1xcbiAgICB3aWR0aDogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcXG4gICAgICA5MGRlZyxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTIwMCkgMjUlLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMTAwKSA1MCUsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0yMDApIDc1JVxcbiAgICApO1xcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcXG4gICAgYW5pbWF0aW9uOiBza2VsZXRvbi1zaGltbWVyIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XFxuICAgIGZsZXgtc2hyaW5rOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1jb250ZW50XSB7XFxuICAgIHBhZGRpbmc6IDEycHg7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmVdIHtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XFxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcXG4gICAgICA5MGRlZyxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTIwMCkgMjUlLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMTAwKSA1MCUsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0yMDApIDc1JVxcbiAgICApO1xcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcXG4gICAgYW5pbWF0aW9uOiBza2VsZXRvbi1zaGltbWVyIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XFxuICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24tbGluZV06bGFzdC1jaGlsZCB7XFxuICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmUtMV0ge1xcbiAgICB3aWR0aDogMzIuNSU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmUtMl0ge1xcbiAgICB3aWR0aDogNTYuOCU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmUtM10ge1xcbiAgICB3aWR0aDogMjkuNiU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb250YWluZXJdIHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBtYXJnaW4tdG9wOiA4cHg7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb3VudC1za2VsZXRvbl0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMjApO1xcbiAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgOTBkZWcsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0yMDApIDI1JSxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTEwMCkgNTAlLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMjAwKSA3NSVcXG4gICAgKTtcXG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XFxuICAgIGFuaW1hdGlvbjogc2tlbGV0b24tc2hpbW1lciAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2staWdub3JlZC1saXN0LXRvZ2dsZS1idXR0b24tc2tlbGV0b25dIHtcXG4gICAgYWxsOiB1bnNldDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xcbiAgICBwYWRkaW5nOiA0cHggNnB4O1xcbiAgICBtYXJnaW4tcmlnaHQ6IC02cHg7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1za2VsZXRvbi1iYXJdIHtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTEyKTtcXG4gICAgd2lkdGg6IDE0OHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxcbiAgICAgIDkwZGVnLFxcbiAgICAgIHZhcigtLWNvbG9yLWdyYXktMjAwKSAyNSUsXFxuICAgICAgdmFyKC0tY29sb3ItZ3JheS0xMDApIDUwJSxcXG4gICAgICB2YXIoLS1jb2xvci1ncmF5LTIwMCkgNzUlXFxuICAgICk7XFxuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xcbiAgICBhbmltYXRpb246IHNrZWxldG9uLXNoaW1tZXIgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcXG4gIH1cXG5cXG4gIEBrZXlmcmFtZXMgc2tlbGV0b24tc2hpbW1lciB7XFxuICAgIDAlIHtcXG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwO1xcbiAgICB9XFxuICAgIDEwMCUge1xcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLyogUmVzcGVjdCB1c2VyJ3MgbW90aW9uIHByZWZlcmVuY2VzICovXFxuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xcbiAgICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWljb25dLFxcbiAgICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWhlYWRlci1iYXJdLFxcbiAgICBbZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWJ1dHRvbl0sXFxuICAgIFtkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24tbGluZV0sXFxuICAgIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvdW50LXNrZWxldG9uXSxcXG4gICAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stc2tlbGV0b24tYmFyXSB7XFxuICAgICAgYW5pbWF0aW9uOiBub25lO1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG4gICAgfVxcbiAgfVxcblwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBvdT1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIG9kKCl7cmV0dXJuKDAseS5qc3hzKSh5LkZyYWdtZW50LHtjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvblwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWhlYWRlclwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24taWNvblwiOiEwfSksKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmVcIjohMCxcImRhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1oZWFkZXItYmFyXCI6ITB9KV19KSwoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWNvbnRlbnRcIjohMCxjaGlsZHJlbjpbKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmVcIjohMCxcImRhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1saW5lLTFcIjohMH0pLCgwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNvZGVmcmFtZS1za2VsZXRvbi1saW5lXCI6ITAsXCJkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24tbGluZS0yXCI6ITB9KSwoMCx5LmpzeCkoXCJkaXZcIix7XCJkYXRhLW5leHRqcy1jb2RlZnJhbWUtc2tlbGV0b24tbGluZVwiOiEwLFwiZGF0YS1uZXh0anMtY29kZWZyYW1lLXNrZWxldG9uLWxpbmUtM1wiOiEwfSldfSldfSksKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1jb250YWluZXJcIjohMCxjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtY2FsbC1zdGFjay1oZWFkZXJcIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcInBcIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLXRpdGxlXCI6ITAsY2hpbGRyZW46W1wiQ2FsbCBTdGFja1wiLFwiIFwiLCgwLHkuanN4KShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvdW50XCI6ITAsXCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNvdW50LXNrZWxldG9uXCI6ITB9KV19KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWlnbm9yZWQtbGlzdC10b2dnbGUtYnV0dG9uXCI6ITAsXCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWlnbm9yZWQtbGlzdC10b2dnbGUtYnV0dG9uLXNrZWxldG9uXCI6ITAsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwiLGNoaWxkcmVuOigwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWNhbGwtc3RhY2stc2tlbGV0b24tYmFyXCI6ITB9KX0pXX0pfSldfSl9dmFyIG9mPWVpKG91KCkpO2Z1bmN0aW9uIG9wKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBvaChlLG4sdCxyLG8sYSxpKXt0cnl7dmFyIGw9ZVthXShpKSxzPWwudmFsdWV9Y2F0Y2goZSl7dChlKTtyZXR1cm59bC5kb25lP24ocyk6UHJvbWlzZS5yZXNvbHZlKHMpLnRoZW4ocixvKX1mdW5jdGlvbiBvZyhlLG4sdCl7cmV0dXJuIG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTp0LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT10LGV9ZnVuY3Rpb24gb20oKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtaXNzdWUtZmVlZGJhY2stYnV0dG9uLWdyb3VwXSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc21hbGwpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWlzc3VlLWZlZWRiYWNrLWJ1dHRvbi1ncm91cF0gYnV0dG9uIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1pc3N1ZS1mZWVkYmFjay1idXR0b24tZ3JvdXBdIGJ1dHRvbjpmaXJzdC1jaGlsZCB7XFxuICAgIHBhZGRpbmc6IDRweCAzcHggNHB4IDVweDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKSAwIDAgdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1pc3N1ZS1mZWVkYmFjay1idXR0b24tZ3JvdXBdIGJ1dHRvbjpsYXN0LWNoaWxkIHtcXG4gICAgcGFkZGluZzogNHB4IDVweCA0cHggM3B4O1xcbiAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXJvdW5kZWQtZnVsbCkgdmFyKC0tcm91bmRlZC1mdWxsKSAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWlzc3VlLWZlZWRiYWNrLXNlcGFyYXRvcl0ge1xcbiAgICB3aWR0aDogMXB4O1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gb209ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvdihlKXt2YXIgbix0LHI9ZS5lcnJvckNvZGUsbz0obj0oMCx4LnVzZVN0YXRlKSh7fSksdD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIG9wKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIG9wKGUsbil9fShuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxhPW9bMF0saT1vWzFdLGw9YVtyXSxzPXByb2Nlc3MuZW52Ll9fTkVYVF9URUxFTUVUUllfRElTQUJMRUQsYz0oMCx4LnVzZUNhbGxiYWNrKShmdW5jdGlvbihlKXt2YXIgbjtyZXR1cm4obj1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlLG4pe3ZhciB0LHIsbyxhPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119LGk9T2JqZWN0LmNyZWF0ZSgoXCJmdW5jdGlvblwiPT10eXBlb2YgSXRlcmF0b3I/SXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpO3JldHVybiBpLm5leHQ9bCgwKSxpLnRocm93PWwoMSksaS5yZXR1cm49bCgyKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJihpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGk7ZnVuY3Rpb24gbChsKXtyZXR1cm4gZnVuY3Rpb24ocyl7dmFyIGM9W2wsc107aWYodCl0aHJvdyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO2Zvcig7aSYmKGk9MCxjWzBdJiYoYT0wKSksYTspdHJ5e2lmKHQ9MSxyJiYobz0yJmNbMF0/ci5yZXR1cm46Y1swXT9yLnRocm93fHwoKG89ci5yZXR1cm4pJiZvLmNhbGwociksMCk6ci5uZXh0KSYmIShvPW8uY2FsbChyLGNbMV0pKS5kb25lKXJldHVybiBvO3N3aXRjaChyPTAsbyYmKGM9WzImY1swXSxvLnZhbHVlXSksY1swXSl7Y2FzZSAwOmNhc2UgMTpvPWM7YnJlYWs7Y2FzZSA0OnJldHVybiBhLmxhYmVsKysse3ZhbHVlOmNbMV0sZG9uZTohMX07Y2FzZSA1OmEubGFiZWwrKyxyPWNbMV0sYz1bMF07Y29udGludWU7Y2FzZSA3OmM9YS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoIShvPShvPWEudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pJiYoNj09PWNbMF18fDI9PT1jWzBdKSl7YT0wO2NvbnRpbnVlfWlmKDM9PT1jWzBdJiYoIW98fGNbMV0+b1swXSYmY1sxXTxvWzNdKSl7YS5sYWJlbD1jWzFdO2JyZWFrfWlmKDY9PT1jWzBdJiZhLmxhYmVsPG9bMV0pe2EubGFiZWw9b1sxXSxvPWM7YnJlYWt9aWYobyYmYS5sYWJlbDxvWzJdKXthLmxhYmVsPW9bMl0sYS5vcHMucHVzaChjKTticmVha31vWzJdJiZhLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWV9Yz1uLmNhbGwoZSxhKX1jYXRjaChlKXtjPVs2LGVdLHI9MH1maW5hbGx5e3Q9bz0wfWlmKDUmY1swXSl0aHJvdyBjWzFdO3JldHVybnt2YWx1ZTpjWzBdP2NbMV06dm9pZCAwLGRvbmU6ITB9fX19KHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDppKGZ1bmN0aW9uKG4pe3ZhciB0LG87cmV0dXJuIHQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe29nKGUsbix0W25dKX0pfXJldHVybiBlfSh7fSxuKSxvPW51bGwhPShvPW9nKHt9LHIsZSkpP286e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhvKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChvKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobyxlKSl9KSx0fSksbi5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gbi50cnlzLnB1c2goWzEsMywsNF0pLFs0LGZldGNoKFwiXCIuY29uY2F0KHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEh8fFwiXCIsXCIvX19uZXh0anNfZXJyb3JfZmVlZGJhY2s/XCIpLmNvbmNhdChuZXcgVVJMU2VhcmNoUGFyYW1zKHtlcnJvckNvZGU6cix3YXNIZWxwZnVsOmUudG9TdHJpbmcoKX0pKSldO2Nhc2UgMjpyZXR1cm4gbi5zZW50KCkub2t8fGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gcmVjb3JkIGZlZWRiYWNrIG9uIHRoZSBzZXJ2ZXIuXCIpLFszLDRdO2Nhc2UgMzpyZXR1cm4gY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byByZWNvcmQgZmVlZGJhY2s6XCIsbi5zZW50KCkpLFszLDRdO2Nhc2UgNDpyZXR1cm5bMl19fSl9LGZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocixvKXt2YXIgYT1uLmFwcGx5KGUsdCk7ZnVuY3Rpb24gaShlKXtvaChhLHIsbyxpLGwsXCJuZXh0XCIsZSl9ZnVuY3Rpb24gbChlKXtvaChhLHIsbyxpLGwsXCJ0aHJvd1wiLGUpfWkodm9pZCAwKX0pfSkoKX0sW3JdKTtyZXR1cm4oMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtaXNzdWUtZmVlZGJhY2stYnV0dG9uLWdyb3VwXCI6ITAsY2hpbGRyZW46WygwLHkuanN4KShcImJ1dHRvblwiLHtcImFyaWEtZGlzYWJsZWRcIjpzP1widHJ1ZVwiOnZvaWQgMCxcImFyaWEtbGFiZWxcIjpcIk1hcmsgYXMgaGVscGZ1bFwiLG9uQ2xpY2s6cz92b2lkIDA6ZnVuY3Rpb24oKXtyZXR1cm4gYyghMCl9LGNsYXNzTmFtZTooMCxlSi5jeCkoXCJmZWVkYmFjay1idXR0b25cIiwhMD09PWwmJlwidm90ZWRcIiksdGl0bGU6cz9cIkZlZWRiYWNrIGRpc2FibGVkIGR1ZSB0byBzZXR0aW5nIE5FWFRfVEVMRU1FVFJZX0RJU0FCTEVEXCI6dm9pZCAwLHR5cGU6XCJidXR0b25cIixjaGlsZHJlbjooMCx5LmpzeCkobncse1wiYXJpYS1oaWRkZW5cIjpcInRydWVcIn0pfSksKDAseS5qc3gpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtaXNzdWUtZmVlZGJhY2stc2VwYXJhdG9yXCI6ITB9KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJhcmlhLWRpc2FibGVkXCI6cz9cInRydWVcIjp2b2lkIDAsXCJhcmlhLWxhYmVsXCI6XCJNYXJrIGFzIG5vdCBoZWxwZnVsXCIsb25DbGljazpzP3ZvaWQgMDpmdW5jdGlvbigpe3JldHVybiBjKCExKX0sY2xhc3NOYW1lOigwLGVKLmN4KShcImZlZWRiYWNrLWJ1dHRvblwiLCExPT09bCYmXCJ2b3RlZFwiKSx0aXRsZTpzP1wiRmVlZGJhY2sgZGlzYWJsZWQgZHVlIHRvIHNldHRpbmcgTkVYVF9URUxFTUVUUllfRElTQUJMRURcIjp2b2lkIDAsdHlwZTpcImJ1dHRvblwiLGNoaWxkcmVuOigwLHkuanN4KShuaix7XCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwiLHN0eWxlOnt0cmFuc2xhdGU6XCIxcHggMXB4XCJ9fSl9KV19KX12YXIgb2I9ZWkob20oKSk7ZnVuY3Rpb24gb3koKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1jb250ZW50LWxheW91dF0ge1xcbiAgICBmbGV4OiAxO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBwYWRkaW5nOiAxNHB4O1xcbiAgfVxcblwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBveT1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIG94KGUpe3ZhciBuPWUuZXJyb3IsdD1lLmVycm9yVHlwZSxyPWUubWVzc2FnZSxvPWUuZGVidWdJbmZvLGE9ZS5jaGlsZHJlbixpPWUuZXJyb3JDb2RlLGw9ZS5lbnZpcm9ubWVudE5hbWU7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtY29udGVudC1sYXlvdXRcIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXJcIixjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2Vycm9yX3RpdGxlXCIsXCJkYXRhLW5leHRqcy1lcnJvci1jb2RlXCI6aSxjaGlsZHJlbjpbKDAseS5qc3hzKShcInNwYW5cIix7XCJkYXRhLW5leHRqcy1lcnJvci1sYWJlbC1ncm91cFwiOiEwLGNoaWxkcmVuOlsoMCx5LmpzeCkobkwse2Vycm9yVHlwZTp0fSksbCYmKDAseS5qc3gpKG5LLHtlbnZpcm9ubWVudE5hbWU6bH0pXX0pLCgwLHkuanN4KShueCx7ZXJyb3I6bixkZWJ1Z0luZm86byxmZWVkYmFja0J1dHRvbjppJiYoMCx5LmpzeCkob3Yse2Vycm9yQ29kZTppfSl9KV19KSwoMCx5LmpzeCkobnose2Vycm9yTWVzc2FnZTpyfSldfSksYV19KX12YXIgb3c9ZWkob3koKSk7ZnVuY3Rpb24gb2ooZSl7dmFyIG4sdDtyZXR1cm4oMCx5LmpzeCkoXCJzdmdcIiwobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt3aWR0aDpcIjEyXCIsaGVpZ2h0OlwiMTJcIix2aWV3Qm94OlwiMCAwIDEyIDEyXCIsZmlsbDpcIm5vbmVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9LGUpLHQ9dD17Y2hpbGRyZW46KDAseS5qc3gpKFwicGF0aFwiLHtmaWxsUnVsZTpcImV2ZW5vZGRcIixjbGlwUnVsZTpcImV2ZW5vZGRcIixkOlwiTTMuOTgwNzEgMS4xMjVMMS4xMjUgMy45ODA3MUwxLjEyNSA4LjAxOTI5TDMuOTgwNzEgMTAuODc1SDguMDE5MjlMMTAuODc1IDguMDE5MjlWMy45ODA3MUw4LjAxOTI5IDEuMTI1SDMuOTgwNzFaTTMuODI1MzggMEMzLjYyNjQ3IDAgMy40MzU3IDAuMDc5MDE3NiAzLjI5NTA1IDAuMjE5NjdMMC4yMTk2NyAzLjI5NTA1QzAuMDc5MDE3NiAzLjQzNTcgMCAzLjYyNjQ3IDAgMy44MjUzOFY4LjE3NDYyQzAgOC4zNzM1MyAwLjA3OTAxNzggOC41NjQzIDAuMjE5NjcgOC43MDQ5NUwzLjI5NTA1IDExLjc4MDNDMy40MzU3IDExLjkyMSAzLjYyNjQ3IDEyIDMuODI1MzggMTJIOC4xNzQ2MkM4LjM3MzUzIDEyIDguNTY0MyAxMS45MjEgOC43MDQ5NSAxMS43ODAzTDExLjc4MDMgOC43MDQ5NUMxMS45MjEgOC41NjQzIDEyIDguMzczNTMgMTIgOC4xNzQ2MlYzLjgyNTM4QzEyIDMuNjI2NDcgMTEuOTIxIDMuNDM1NyAxMS43ODAzIDMuMjk1MDVMOC43MDQ5NSAwLjIxOTY3QzguNTY0MyAwLjA3OTAxNzcgOC4zNzM1MyAwIDguMTc0NjIgMEgzLjgyNTM4Wk02LjU2MjUgMi44MTI1VjMuMzc1VjZWNi41NjI1SDUuNDM3NVY2VjMuMzc1VjIuODEyNUg2LjU2MjVaTTYgOUM2LjQxNDIxIDkgNi43NSA4LjY2NDIxIDYuNzUgOC4yNUM2Ljc1IDcuODM1NzkgNi40MTQyMSA3LjUgNiA3LjVDNS41ODU3OSA3LjUgNS4yNSA3LjgzNTc5IDUuMjUgOC4yNUM1LjI1IDguNjY0MjEgNS41ODU3OSA5IDYgOVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gb2soKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1lbXB0eV0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4OiAxO1xcbiAgICBwYWRkaW5nOiAxMnB4O1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktY29udGVudF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgZmxleDogMTtcXG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNTAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktaWNvbl0ge1xcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbiAgICBwYWRkaW5nOiA4cHg7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xcblxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktdGl0bGVdIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGZvbnQtc2l6ZTogMTZweDtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTIwKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC10YWItaXNzdWVzLWVtcHR5LXN1YnRpdGxlXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTIxKTtcXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gb2s9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvQSgpe3JldHVybigwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHlcIjohMCxjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlcy1lbXB0eS1jb250ZW50XCI6ITAsY2hpbGRyZW46WygwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktaWNvblwiOiEwLGNoaWxkcmVuOigwLHkuanN4KShvaix7d2lkdGg6MTYsaGVpZ2h0OjE2fSl9KSwoMCx5LmpzeCkoXCJoM1wiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktdGl0bGVcIjohMCxjaGlsZHJlbjpcIk5vIElzc3VlcyBGb3VuZFwifSksKDAseS5qc3gpKFwicFwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXMtZW1wdHktc3VidGl0bGVcIjohMCxjaGlsZHJlbjpcIklzc3VlcyB3aWxsIGFwcGVhciBoZXJlIHdoZW4gdGhleSBvY2N1ci5cIn0pXX0pfSl9dmFyIG9PPWVpKG9rKCkpO2Z1bmN0aW9uIG9DKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBvUygpe3ZhciBlLG4sdD0oZT1bXCJcIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gb1M9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvRShlKXt2YXIgbj1lLm5vdGVzLHQ9ZS5idWlsZEVycm9yLHI9ZS5oeWRyYXRpb25XYXJuaW5nLG89ZS5lcnJvckRldGFpbHMsYT1lLmFjdGl2ZUVycm9yLGk9ZS5lcnJvclR5cGUsbD1lLmRlYnVnSW5mbyxzPWUuZXJyb3JDb2RlO3JldHVybiB0PygwLHkuanN4KShveix7bWVzc2FnZTp0LGRlYnVnSW5mbzpsfSk6KDAseS5qc3gpKG9fLHtub3RlczpuLGh5ZHJhdGlvbldhcm5pbmc6cixlcnJvckRldGFpbHM6byxhY3RpdmVFcnJvcjphLGVycm9yVHlwZTppLGRlYnVnSW5mbzpsLGVycm9yQ29kZTpzfSl9ZnVuY3Rpb24gb18oZSl7dmFyIG49ZS5ub3Rlcyx0PWUuaHlkcmF0aW9uV2FybmluZyxyPWUuZXJyb3JEZXRhaWxzLG89ZS5hY3RpdmVFcnJvcixhPWUuZXJyb3JUeXBlLGk9ZS5kZWJ1Z0luZm8sbD1lLmVycm9yQ29kZTtyZXR1cm4gbyYmYT8oMCx5LmpzeHMpKG94LHtlcnJvcjpvLmVycm9yLGVycm9yVHlwZTphLG1lc3NhZ2U6by5lcnJvci5tZXNzYWdlLGRlYnVnSW5mbzppLGVycm9yQ29kZTpsLGVudmlyb25tZW50TmFtZTpvLmVycm9yLmVudmlyb25tZW50TmFtZSxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtjbGFzc05hbWU6XCJlcnJvci1vdmVybGF5LW5vdGVzLWNvbnRhaW5lclwiLGNoaWxkcmVuOltuPygwLHkuanN4KSh5LkZyYWdtZW50LHtjaGlsZHJlbjooMCx5LmpzeCkoXCJwXCIse2lkOlwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19ub3Rlc1wiLGNsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbm90ZXNcIixjaGlsZHJlbjpufSl9KTpudWxsLHQ/KDAseS5qc3gpKFwicFwiLHtpZDpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbGlua1wiLGNsYXNzTmFtZTpcIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbGlua1wiLGNoaWxkcmVuOigwLHkuanN4KShlYix7dGV4dDpcIlNlZSBtb3JlIGluZm8gaGVyZTogXCIuY29uY2F0KG5wKX0pfSk6bnVsbF19KSwobnVsbD09cj92b2lkIDA6ci5yZWFjdE91dHB1dENvbXBvbmVudERpZmYpPygwLHkuanN4KSh0aCx7cmVhY3RPdXRwdXRDb21wb25lbnREaWZmOnIucmVhY3RPdXRwdXRDb21wb25lbnREaWZmfHxcIlwifSk6bnVsbCwoMCx5LmpzeCkoeC5TdXNwZW5zZSx7ZmFsbGJhY2s6KDAseS5qc3gpKG9kLHt9KSxjaGlsZHJlbjooMCx5LmpzeCkob1Ase2Vycm9yOm99LG8uaWQudG9TdHJpbmcoKSl9KV19KTooMCx5LmpzeCkob0Ese30pfWZ1bmN0aW9uIG9QKGUpe3ZhciBuLHQscj1lLmVycm9yLG89KG49KDAseC51c2VTdGF0ZSkoITEpLHQ9MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShuKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShuLDIpfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBvQyhlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBvQyhlLG4pfX0obix0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSksYT1vWzBdLGk9b1sxXSxsPXRqKHIpLHM9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3JldHVybiBsLnJlZHVjZShmdW5jdGlvbihlLG4pe3JldHVybiBlKyArISFuLmlnbm9yZWR9LDApfSxbbF0pLGM9KDAseC51c2VNZW1vKShmdW5jdGlvbigpe3ZhciBlLG49bC5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIWUuaWdub3JlZCYmISFlLm9yaWdpbmFsQ29kZUZyYW1lJiYhIWUub3JpZ2luYWxTdGFja0ZyYW1lfSk7cmV0dXJuIG51bGwhPShlPWxbbl0pP2U6bnVsbH0sW2xdKTtyZXR1cm4oMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOltjJiZjLm9yaWdpbmFsU3RhY2tGcmFtZSYmYy5vcmlnaW5hbENvZGVGcmFtZSYmKDAseS5qc3gpKGVxLHtzdGFja0ZyYW1lOmMub3JpZ2luYWxTdGFja0ZyYW1lLGNvZGVGcmFtZTpjLm9yaWdpbmFsQ29kZUZyYW1lfSksbC5sZW5ndGg+MCYmKDAseS5qc3gpKHRsLHtmcmFtZXM6bCxpc0lnbm9yZUxpc3RPcGVuOmEsb25Ub2dnbGVJZ25vcmVMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIGkoIWEpfSxpZ25vcmVkRnJhbWVzVGFsbHk6c30pXX0pfWZ1bmN0aW9uIG96KGUpe3ZhciBuPWUubWVzc2FnZSx0PWUuZGVidWdJbmZvLHI9RXJyb3Iobiksbz0oMCx4LnVzZU1lbW8pKGZ1bmN0aW9uKCl7cmV0dXJuIHR0KG4pfHxcIkZhaWxlZCB0byBjb21waWxlXCJ9LFtuXSk7cmV0dXJuKDAseS5qc3gpKG94LHtlcnJvclR5cGU6XCJCdWlsZCBFcnJvclwiLGVycm9yOnIsbWVzc2FnZTpvLGRlYnVnSW5mbzp0LGNoaWxkcmVuOigwLHkuanN4KSh0bix7Y29udGVudDpufSl9KX12YXIgb0w9ZWkob1MoKSk7ZnVuY3Rpb24gb1QoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtdGFiLWlzc3Vlc10ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4OiAxO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgfVxcblwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBvVD1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIG9SKGUpe3ZhciBuPWUuZGVidWdJbmZvLHQ9ZS5ydW50aW1lRXJyb3JzLHI9ZS5nZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlscyxvPWUuYnVpbGRFcnJvcixhPXRTKHtydW50aW1lRXJyb3JzOnQsZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6cn0pLGk9YS5lcnJvckNvZGUsbD1hLmVycm9yVHlwZSxzPWEuaHlkcmF0aW9uV2FybmluZyxjPWEuYWN0aXZlRXJyb3IsdT1hLmFjdGl2ZUlkeCxkPWEuc2V0QWN0aXZlSW5kZXgsZj1hLm5vdGVzLHA9YS5lcnJvckRldGFpbHM7cmV0dXJuKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLXRhYi1pc3N1ZXNcIjohMCxjaGlsZHJlbjpbbz9udWxsOigwLHkuanN4KShvaSx7cnVudGltZUVycm9yczp0LGVycm9yVHlwZTpsLGFjdGl2ZUlkeDp1LHNldEFjdGl2ZUluZGV4OmR9KSwoMCx5LmpzeCkob0Use2J1aWxkRXJyb3I6byxub3RlczpmLGh5ZHJhdGlvbldhcm5pbmc6cyxlcnJvckRldGFpbHM6cCxhY3RpdmVFcnJvcjpjLGVycm9yVHlwZTpsLGRlYnVnSW5mbzpuLGVycm9yQ29kZTppfSldfSl9dmFyIG9OPWVpKG9UKCkpLG9EPXByb2Nlc3MuZW52Ll9fTkVYVF9ERVZUT09MX1NFR01FTlRfRVhQTE9SRVI/X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvY29tcG9uZW50cy9vdmVydmlldy9zZWdtZW50LWV4cGxvcmVyLnRzeFwiKS51OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9O2Z1bmN0aW9uIG9CKGUpe3ZhciBuPWUucm91dGVyVHlwZSx0PWUucGFnZTtyZXR1cm4oMCx5LmpzeCkob0Qse2lzQXBwUm91dGVyOlwiYXBwXCI9PT1uLHBhZ2U6dH0pfWZ1bmN0aW9uIG9NKGUpe3ZhciBuPWUucm91dGVyVHlwZSx0PWUucGFnZTtyZXR1cm4oMCx5LmpzeCkob0Ise3JvdXRlclR5cGU6bixwYWdlOnR9KX1mdW5jdGlvbiBvSShlKXt2YXIgbj1lLmFjdGl2ZVRhYix0PWUuZGV2VG9vbHNQb3NpdGlvbixyPWUuc2NhbGUsbz1lLnJvdXRlclR5cGUsYT1lLmhhbmRsZVBvc2l0aW9uQ2hhbmdlLGk9ZS5oYW5kbGVTY2FsZUNoYW5nZSxsPWUuZGVidWdJbmZvLHM9ZS5ydW50aW1lRXJyb3JzLGM9ZS5nZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlscyx1PWUuYnVpbGRFcnJvcixkPWUucGFnZTtzd2l0Y2gobil7Y2FzZVwic2V0dGluZ3NcIjpyZXR1cm4oMCx5LmpzeCkob2Use2RldlRvb2xzUG9zaXRpb246dCxzY2FsZTpyLGhhbmRsZVBvc2l0aW9uQ2hhbmdlOmEsaGFuZGxlU2NhbGVDaGFuZ2U6aX0pO2Nhc2VcInJvdXRlXCI6cmV0dXJuKDAseS5qc3gpKG9NLHtyb3V0ZXJUeXBlOm8scGFnZTpkfSk7Y2FzZVwiaXNzdWVzXCI6cmV0dXJuKDAseS5qc3gpKG9SLHtkZWJ1Z0luZm86bCxydW50aW1lRXJyb3JzOnMsZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6YyxidWlsZEVycm9yOnV9KTtkZWZhdWx0OnJldHVybiBudWxsfX1mdW5jdGlvbiBvSChlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3dpZHRoOlwiMTJcIixoZWlnaHQ6XCIxMlwiLHZpZXdCb3g6XCIwIDAgMTQgMTRcIixmaWxsOlwibm9uZVwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn0sZSksdD10PXtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMy4wODg4OSAxMS44Mzg0TDIuNjI0ODYgMTIuMzAyNEwxLjY5Njc4IDExLjM3NDRMMi4xNjA4MiAxMC45MTAzTDYuMDcxNzggNi45OTkzN0wyLjE2MDgyIDMuMDg4NDFMMS42OTY3OCAyLjYyNDM3TDIuNjI0ODYgMS42OTYyOUwzLjA4ODg5IDIuMTYwMzNMNi45OTk4NiA2LjA3MTI5TDEwLjkxMDggMi4xNjAzM0wxMS4zNzQ5IDEuNjk2MjlMMTIuMzAyOSAyLjYyNDM3TDExLjgzODkgMy4wODg0MUw3LjkyNzkzIDYuOTk5MzdMMTEuODM4OSAxMC45MTAzTDEyLjMwMjkgMTEuMzc0NEwxMS4zNzQ5IDEyLjMwMjRMMTAuOTEwOCAxMS44Mzg0TDYuOTk5ODYgNy45Mjc0NEwzLjA4ODg5IDExLjgzODRaXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifSl9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpOihmdW5jdGlvbihlLG4pe3ZhciB0PU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dC5wdXNoLmFwcGx5KHQscil9cmV0dXJuIHR9KShPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkpfSksbikpfWZ1bmN0aW9uIG9GKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBvVShlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gb1YoZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIG9xKGUsbil7aWYobnVsbD09ZSlyZXR1cm57fTt2YXIgdCxyLG89ZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybnt9O3ZhciB0LHIsbz17fSxhPU9iamVjdC5rZXlzKGUpO2ZvcihyPTA7cjxhLmxlbmd0aDtyKyspdD1hW3JdLG4uaW5kZXhPZih0KT49MHx8KG9bdF09ZVt0XSk7cmV0dXJuIG99KGUsbik7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXQ9YVtyXSwhKG4uaW5kZXhPZih0KT49MCkmJk9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpJiYob1t0XT1lW3RdKX1yZXR1cm4gb31mdW5jdGlvbiBvVyhlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gb0YoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gb0YoZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gbyQoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICAgICAgICAgIFtkYXRhLW5leHQtYmFkZ2Utcm9vdF0ge1xcbiAgICAgICAgICAgIC0tdGltaW5nOiBjdWJpYy1iZXppZXIoMC4yMywgMC44OCwgMC4yNiwgMC45Mik7XFxuICAgICAgICAgICAgLS1kdXJhdGlvbi1sb25nOiAyNTBtcztcXG4gICAgICAgICAgICAtLWNvbG9yLW91dGVyLWJvcmRlcjogIzE3MTcxNztcXG4gICAgICAgICAgICAtLWNvbG9yLWlubmVyLWJvcmRlcjogaHNsYSgwLCAwJSwgMTAwJSwgMC4xNCk7XFxuICAgICAgICAgICAgLS1jb2xvci1ob3Zlci1hbHBoYS1zdWJ0bGU6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMTMpO1xcbiAgICAgICAgICAgIC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3I6IGhzbGEoMCwgMCUsIDEwMCUsIDAuMik7XFxuICAgICAgICAgICAgLS1jb2xvci1ob3Zlci1hbHBoYS1lcnJvci0yOiBoc2xhKDAsIDAlLCAxMDAlLCAwLjI1KTtcXG4gICAgICAgICAgICAtLW1hcmstc2l6ZTogY2FsYyh2YXIoLS1zaXplKSAtIHZhcigtLXNpemUtMikgKiAyKTtcXG5cXG4gICAgICAgICAgICAtLWZvY3VzLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAgICAgICAgICAgLS1mb2N1cy1yaW5nOiAycHggc29saWQgdmFyKC0tZm9jdXMtY29sb3IpO1xcblxcbiAgICAgICAgICAgICY6aGFzKFtkYXRhLW5leHQtYmFkZ2VdW2RhdGEtZXJyb3I9J3RydWUnXSkge1xcbiAgICAgICAgICAgICAgLS1mb2N1cy1jb2xvcjogI2ZmZjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtZGlzYWJsZWQtaWNvbl0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtbmV4dC1iYWRnZV0ge1xcbiAgICAgICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplKTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xcbiAgICAgICAgICAgIGJveC1zaGFkb3c6XFxuICAgICAgICAgICAgICAwIDAgMCAxcHggdmFyKC0tY29sb3Itb3V0ZXItYm9yZGVyKSxcXG4gICAgICAgICAgICAgIGluc2V0IDAgMCAwIDFweCB2YXIoLS1jb2xvci1pbm5lci1ib3JkZXIpLFxcbiAgICAgICAgICAgICAgMHB4IDE2cHggMzJweCAtOHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XFxuICAgICAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDQ4cHgpO1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgICAgICAgIHNjYWxlOiAxO1xcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IHNjYWxlLCBib3gtc2hhZG93LCB3aWR0aCwgYmFja2dyb3VuZDtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxcbiAgICAgICAgICAgICAgc2NhbGUgdmFyKC0tZHVyYXRpb24tc2hvcnQpIHZhcigtLXRpbWluZyksXFxuICAgICAgICAgICAgICB3aWR0aCB2YXIoLS1kdXJhdGlvbi1sb25nKSB2YXIoLS10aW1pbmcpLFxcbiAgICAgICAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1kdXJhdGlvbi1sb25nKSB2YXIoLS10aW1pbmcpLFxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmFjdGl2ZVtkYXRhLWVycm9yPSdmYWxzZSddIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAwLjk1O1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0ndHJ1ZSddOm5vdCg6aG92ZXIpIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAxLjAyO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtZXJyb3I9J2ZhbHNlJ106aGFzKFtkYXRhLW5leHQtbWFya106Zm9jdXMtdmlzaWJsZSkge1xcbiAgICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogM3B4O1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAmW2RhdGEtZXJyb3I9J3RydWUnXSB7XFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjY2EyYTMwO1xcbiAgICAgICAgICAgICAgLS1jb2xvci1pbm5lci1ib3JkZXI6ICNlNTQ4NGQ7XFxuXFxuICAgICAgICAgICAgICBbZGF0YS1uZXh0LW1hcmtdIHtcXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtZXJyb3IpO1xcbiAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMHB4O1xcblxcbiAgICAgICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xcbiAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yLTIpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICZbZGF0YS1lcnJvci1leHBhbmRlZD0nZmFsc2UnXVtkYXRhLWVycm9yPSd0cnVlJ10gfiBbZGF0YS1kb3RdIHtcXG4gICAgICAgICAgICAgIHNjYWxlOiAxO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICA+IGRpdiB7XFxuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtY29sbGFwc2VdOmZvY3VzLXZpc2libGUge1xcbiAgICAgICAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlc106aGFzKFtkYXRhLWlzc3Vlcy1vcGVuXTpmb2N1cy12aXNpYmxlKSB7XFxuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtZG90XSB7XFxuICAgICAgICAgICAgY29udGVudDogJyc7XFxuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtOCk7XFxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTgpO1xcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XFxuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNvbG9yLW91dGVyLWJvcmRlcik7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgICAgICAgICB0b3A6IDJweDtcXG4gICAgICAgICAgICByaWdodDogMHB4O1xcbiAgICAgICAgICAgIHNjYWxlOiAwO1xcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHNjYWxlIDIwMG1zIHZhcigtLXRpbWluZyk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tZHVyYXRpb24tc2hvcnQpO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlc10ge1xcbiAgICAgICAgICAgIC0tcGFkZGluZy1sZWZ0OiA4cHg7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBnYXA6IDJweDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMzIpO1xcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmhhcyhbZGF0YS1pc3N1ZXMtb3Blbl06aG92ZXIpIHtcXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yKTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgJjpoYXMoW2RhdGEtaXNzdWVzLWNvbGxhcHNlXSkge1xcbiAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYyh2YXIoLS1wYWRkaW5nLWxlZnQpIC8gMik7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIFtkYXRhLWNyb3NzXSB7XFxuICAgICAgICAgICAgICB0cmFuc2xhdGU6IDBweCAtMXB4O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1pc3N1ZXMtb3Blbl0ge1xcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMyk7XFxuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICAgICAgICBnYXA6IDJweDtcXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0zNik7XFxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgICAgICAgICB6LWluZGV4OiAyO1xcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuXFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb2xsYXBzZV0ge1xcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMjQpO1xcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS1kdXJhdGlvbi1zaG9ydCkgZWFzZTtcXG5cXG4gICAgICAgICAgICAmOmhvdmVyIHtcXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWhvdmVyLWFscGhhLWVycm9yKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtY3Jvc3NdIHtcXG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tc2l6ZS0xMik7XFxuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTEyKTtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBbZGF0YS1uZXh0LW1hcmtdIHtcXG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tbWFyay1zaXplKTtcXG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLW1hcmstc2l6ZSk7XFxuICAgICAgICAgICAgbWFyZ2luOiAwIDJweDtcXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWR1cmF0aW9uLWxvbmcpIHZhcigtLXRpbWluZyk7XFxuXFxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcXG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICY6aG92ZXIge1xcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItaG92ZXItYWxwaGEtc3VidGxlKTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgc3ZnIHtcXG4gICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xcbiAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUtNDApO1xcbiAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTQwKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LWFuaW1hdGlvbl0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XFxuICAgICAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlciBjZW50ZXI7XFxuICAgICAgICAgICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcXG5cXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0nZmFsc2UnXSB7XFxuICAgICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZXhpdF0sXFxuICAgICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZW50ZXJdIHtcXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwbXM7XFxuICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgID4gKiB7XFxuICAgICAgICAgICAgICBncmlkLWFyZWE6IDEgLyAxO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZXhpdF0ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlT3V0IDMwMG1zIHZhcigtLXRpbWluZykgZm9yd2FyZHM7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1lbnRlcl0ge1xcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBmYWRlSW4gMzAwbXMgdmFyKC0tdGltaW5nKSBmb3J3YXJkcztcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgW2RhdGEtaXNzdWVzLWNvdW50LXBsdXJhbF0ge1xcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgICAgICAmW2RhdGEtYW5pbWF0ZT0ndHJ1ZSddIHtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbjogZmFkZUluIDMwMG1zIHZhcigtLXRpbWluZykgZm9yd2FyZHM7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC5wYXRoMCB7XFxuICAgICAgICAgICAgYW5pbWF0aW9uOiBkcmF3MCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIC5wYXRoMSB7XFxuICAgICAgICAgICAgYW5pbWF0aW9uOiBkcmF3MSAxLjVzIGVhc2Utb3V0IGluZmluaXRlO1xcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcztcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICAucGF1c2VkIHtcXG4gICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7XFxuICAgICAgICAgICAgMCUge1xcbiAgICAgICAgICAgICAgb3BhY2l0eTogMDtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigycHgpO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIDEwMCUge1xcbiAgICAgICAgICAgICAgb3BhY2l0eTogMTtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigwcHgpO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGZhZGVPdXQge1xcbiAgICAgICAgICAgIDAlIHtcXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XFxuICAgICAgICAgICAgICBmaWx0ZXI6IGJsdXIoMHB4KTtcXG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xcbiAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTtcXG4gICAgICAgICAgICAgIGZpbHRlcjogYmx1cigycHgpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgfVxcblxcbiAgICAgICAgICBAa2V5ZnJhbWVzIGRyYXcwIHtcXG4gICAgICAgICAgICAwJSxcXG4gICAgICAgICAgICAyNSUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0yOS42O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAyNSUsXFxuICAgICAgICAgICAgNTAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA1MCUsXFxuICAgICAgICAgICAgNzUlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICA3NSUsXFxuICAgICAgICAgICAgMTAwJSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMjkuNjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgQGtleWZyYW1lcyBkcmF3MSB7XFxuICAgICAgICAgICAgMCUsXFxuICAgICAgICAgICAgMjAlIHtcXG4gICAgICAgICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTEuNjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgMjAlLFxcbiAgICAgICAgICAgIDUwJSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgNTAlLFxcbiAgICAgICAgICAgIDc1JSB7XFxuICAgICAgICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgNzUlLFxcbiAgICAgICAgICAgIDEwMCUge1xcbiAgICAgICAgICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDExLjY7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuXFxuICAgICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1leGl0XSxcXG4gICAgICAgICAgICBbZGF0YS1pc3N1ZXMtY291bnQtZW50ZXJdLFxcbiAgICAgICAgICAgIFtkYXRhLWlzc3Vlcy1jb3VudC1wbHVyYWxdIHtcXG4gICAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMG1zICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICB9XFxuICAgICAgICBcIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gbyQ9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBvWihlKXt2YXIgbj1lLmRpc2FibGVkLHQ9ZS5pc3N1ZUNvdW50LHI9ZS5pc0RldkJ1aWxkaW5nLG89ZS5pc0RldlJlbmRlcmluZyxhPWUuaXNCdWlsZEVycm9yLGk9ZS5vblRyaWdnZXJDbGljayxsPWUudG9nZ2xlRXJyb3JPdmVybGF5LHM9ZS5zY2FsZSxjPW9xKGUsW1wiZGlzYWJsZWRcIixcImlzc3VlQ291bnRcIixcImlzRGV2QnVpbGRpbmdcIixcImlzRGV2UmVuZGVyaW5nXCIsXCJpc0J1aWxkRXJyb3JcIixcIm9uVHJpZ2dlckNsaWNrXCIsXCJ0b2dnbGVFcnJvck92ZXJsYXlcIixcInNjYWxlXCJdKSx1PXQ+MCxkPW9XKCgwLHgudXNlU3RhdGUpKHUpLDIpLGY9ZFswXSxwPWRbMV0saD1vVygoMCx4LnVzZVN0YXRlKSghMSksMiksZz1oWzBdLG09aFsxXSx2PXRNKHQsMTUwKSxiPSgwLHgudXNlUmVmKShudWxsKSx3PSgwLHgudXNlUmVmKShudWxsKSxqPXRGKHcpLGs9dEQocnx8byksQT1mfHxuO3JldHVybigwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpe3AodSl9LFt1XSksKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dC1iYWRnZS1yb290XCI6ITAsc3R5bGU6e1wiLS1zaXplXCI6XCJcIi5jb25jYXQoMzYvKHZvaWQgMD09PXM/MTpzKSxcInB4XCIpLFwiLS1kdXJhdGlvbi1zaG9ydFwiOlwiXCIuY29uY2F0KDE1MCxcIm1zXCIpLGRpc3BsYXk6biYmKCF1fHxnKT9cIm5vbmVcIjpcImJsb2NrXCJ9LGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzdHlsZVwiLHtjaGlsZHJlbjplaShvJCgpKX0pLCgwLHkuanN4KShcImRpdlwiLHtcImRhdGEtbmV4dC1iYWRnZVwiOiEwLFwiZGF0YS1lcnJvclwiOnUsXCJkYXRhLWVycm9yLWV4cGFuZGVkXCI6QSxcImRhdGEtYW5pbWF0ZVwiOnYsc3R5bGU6e3dpZHRoOjA9PT1qP1wiYXV0b1wiOmp9LGNoaWxkcmVuOigwLHkuanN4cykoXCJkaXZcIix7cmVmOncsY2hpbGRyZW46WyFuJiYoMCx5LmpzeCkoXCJidXR0b25cIixvVihvVSh7cmVmOmIsXCJkYXRhLW5leHQtbWFya1wiOiEwLFwiZGF0YS1uZXh0LW1hcmstbG9hZGluZ1wiOmssb25DbGljazppfSxjKSx7Y2hpbGRyZW46KDAseS5qc3gpKG9YLHtpc0xvYWRpbmc6ayxpc0RldkJ1aWxkaW5nOnJ9KX0pKSxBJiYoMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1pc3N1ZXNcIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImJ1dHRvblwiLHtcImRhdGEtaXNzdWVzLW9wZW5cIjohMCxcImFyaWEtbGFiZWxcIjpcIk9wZW4gaXNzdWVzIG92ZXJsYXlcIixvbkNsaWNrOmwsY2hpbGRyZW46W24mJigwLHkuanN4KShcImRpdlwiLHtcImRhdGEtZGlzYWJsZWQtaWNvblwiOiEwLGNoaWxkcmVuOigwLHkuanN4KShvaix7fSl9KSwoMCx5LmpzeCkob1kse2FuaW1hdGU6dixcImRhdGEtaXNzdWVzLWNvdW50LWFuaW1hdGlvblwiOiEwLGNoaWxkcmVuOnR9LHQpLFwiIFwiLCgwLHkuanN4cykoXCJkaXZcIix7Y2hpbGRyZW46W1wiSXNzdWVcIix0PjEmJigwLHkuanN4KShcInNwYW5cIix7XCJhcmlhLWhpZGRlblwiOiEwLFwiZGF0YS1pc3N1ZXMtY291bnQtcGx1cmFsXCI6ITAsXCJkYXRhLWFuaW1hdGVcIjp2JiYyPT09dCxjaGlsZHJlbjpcInNcIn0pXX0pXX0pLCFhJiYoMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLWlzc3Vlcy1jb2xsYXBzZVwiOiEwLFwiYXJpYS1sYWJlbFwiOlwiQ29sbGFwc2UgaXNzdWVzIGJhZGdlXCIsb25DbGljazpmdW5jdGlvbigpe3ZhciBlO24/bSghMCk6cCghMSksbnVsbD09KGU9Yi5jdXJyZW50KXx8ZS5mb2N1cygpfSxjaGlsZHJlbjooMCx5LmpzeCkob0gse1wiZGF0YS1jcm9zc1wiOiEwfSl9KV19KV19KX0pLCgwLHkuanN4KShcImRpdlwiLHtcImFyaWEtaGlkZGVuXCI6ITAsXCJkYXRhLWRvdFwiOiEwfSldfSl9ZnVuY3Rpb24gb1koZSl7dmFyIG49ZS5jaGlsZHJlbix0PWUuYW5pbWF0ZSxyPW9xKGUsW1wiY2hpbGRyZW5cIixcImFuaW1hdGVcIl0pO3JldHVybigwLHkuanN4cykoXCJkaXZcIixvVihvVSh7fSxyKSx7XCJkYXRhLWFuaW1hdGVcIjp2b2lkIDA9PT10fHx0LGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJkaXZcIix7XCJhcmlhLWhpZGRlblwiOiEwLFwiZGF0YS1pc3N1ZXMtY291bnQtZXhpdFwiOiEwLGNoaWxkcmVuOm4tMX0pLCgwLHkuanN4KShcImRpdlwiLHtcImRhdGEtaXNzdWVzLWNvdW50XCI6ITAsXCJkYXRhLWlzc3Vlcy1jb3VudC1lbnRlclwiOiEwLGNoaWxkcmVuOm59KV19KSl9ZnVuY3Rpb24gb1goZSl7dmFyIG49ZS5pc0xvYWRpbmcsdD1lLmlzRGV2QnVpbGRpbmc/XCJyZ2JhKDI1NSwyNTUsMjU1LDAuNylcIjpcIndoaXRlXCI7cmV0dXJuKDAseS5qc3hzKShcInN2Z1wiLHt3aWR0aDpcIjQwXCIsaGVpZ2h0OlwiNDBcIix2aWV3Qm94OlwiMCAwIDQwIDQwXCIsZmlsbDpcIm5vbmVcIixcImRhdGEtbmV4dC1tYXJrLWxvYWRpbmdcIjpuLGNoaWxkcmVuOlsoMCx5LmpzeHMpKFwiZ1wiLHt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoOC41LCAxMylcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwicGF0aFwiLHtjbGFzc05hbWU6bj9cInBhdGgwXCI6XCJwYXVzZWRcIixkOlwiTTEzLjMgMTUuMiBMMi4zNCAxIFYxMi42XCIsZmlsbDpcIm5vbmVcIixzdHJva2U6XCJ1cmwoI25leHRfbG9nb19wYWludDBfbGluZWFyXzEzNTdfMTA4NTMpXCIsc3Ryb2tlV2lkdGg6XCIxLjg2XCIsbWFzazpcInVybCgjbmV4dF9sb2dvX21hc2swKVwiLHN0cm9rZURhc2hhcnJheTpcIjI5LjZcIixzdHJva2VEYXNob2Zmc2V0OlwiMjkuNlwifSksKDAseS5qc3gpKFwicGF0aFwiLHtjbGFzc05hbWU6bj9cInBhdGgxXCI6XCJwYXVzZWRcIixkOlwiTTExLjgyNSAxLjUgVjEzLjFcIixzdHJva2VXaWR0aDpcIjEuODZcIixzdHJva2U6XCJ1cmwoI25leHRfbG9nb19wYWludDFfbGluZWFyXzEzNTdfMTA4NTMpXCIsc3Ryb2tlRGFzaGFycmF5OlwiMTEuNlwiLHN0cm9rZURhc2hvZmZzZXQ6XCIxMS42XCJ9KV19KSwoMCx5LmpzeHMpKFwiZGVmc1wiLHtjaGlsZHJlbjpbKDAseS5qc3hzKShcImxpbmVhckdyYWRpZW50XCIse2lkOlwibmV4dF9sb2dvX3BhaW50MF9saW5lYXJfMTM1N18xMDg1M1wiLHgxOlwiOS45NTU1NVwiLHkxOlwiMTEuMTIyNlwiLHgyOlwiMTUuNDc3OFwiLHkyOlwiMTcuOTY3MVwiLGdyYWRpZW50VW5pdHM6XCJ1c2VyU3BhY2VPblVzZVwiLGNoaWxkcmVuOlsoMCx5LmpzeCkoXCJzdG9wXCIse3N0b3BDb2xvcjp0fSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIwLjYwNDA3MlwiLHN0b3BDb2xvcjp0LHN0b3BPcGFjaXR5OlwiMFwifSksKDAseS5qc3gpKFwic3RvcFwiLHtvZmZzZXQ6XCIxXCIsc3RvcENvbG9yOnQsc3RvcE9wYWNpdHk6XCIwXCJ9KV19KSwoMCx5LmpzeHMpKFwibGluZWFyR3JhZGllbnRcIix7aWQ6XCJuZXh0X2xvZ29fcGFpbnQxX2xpbmVhcl8xMzU3XzEwODUzXCIseDE6XCIxMS44MjIyXCIseTE6XCIxLjQwMDM5XCIseDI6XCIxMS43OTFcIix5MjpcIjkuNjI1NDJcIixncmFkaWVudFVuaXRzOlwidXNlclNwYWNlT25Vc2VcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwic3RvcFwiLHtzdG9wQ29sb3I6dH0pLCgwLHkuanN4KShcInN0b3BcIix7b2Zmc2V0OlwiMVwiLHN0b3BDb2xvcjp0LHN0b3BPcGFjaXR5OlwiMFwifSldfSksKDAseS5qc3hzKShcIm1hc2tcIix7aWQ6XCJuZXh0X2xvZ29fbWFzazBcIixjaGlsZHJlbjpbKDAseS5qc3gpKFwicmVjdFwiLHt3aWR0aDpcIjEwMCVcIixoZWlnaHQ6XCIxMDAlXCIsZmlsbDpcIndoaXRlXCJ9KSwoMCx5LmpzeCkoXCJyZWN0XCIse3dpZHRoOlwiNVwiLGhlaWdodDpcIjEuNVwiLGZpbGw6XCJibGFja1wifSldfSldfSldfSl9ZnVuY3Rpb24gb0soZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIG9RKGUsbix0KXtyZXR1cm4gbiBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se3ZhbHVlOnQsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW25dPXQsZX1mdW5jdGlvbiBvRyhlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gb0soZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gb0soZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gb0ooZSl7dmFyIG4sdD1lLnN0YXRlLHI9ZS5kaXNwYXRjaCxvPWUuZXJyb3JDb3VudCxhPWUuaXNCdWlsZEVycm9yLGk9b0coKDAseC51c2VTdGF0ZSkoITEpLDIpLGw9aVswXSxzPWlbMV0sYz1vRyh0LmRldlRvb2xzUG9zaXRpb24uc3BsaXQoXCItXCIsMiksMiksdT1jWzBdLGQ9Y1sxXTtyZXR1cm4oMCx5LmpzeCkodFIse1wiZGF0YS1uZXh0anMtdG9hc3RcIjohMCxzdHlsZToob1Eobj17XCItLWFuaW1hdGUtb3V0LWR1cmF0aW9uLW1zXCI6XCJcIi5jb25jYXQoblEuSzcsXCJtc1wiKSxcIi0tYW5pbWF0ZS1vdXQtdGltaW5nLWZ1bmN0aW9uXCI6blEudUQsYm94U2hhZG93Olwibm9uZVwifSx1LFwiXCIuY29uY2F0KDIwLFwicHhcIikpLG9RKG4sZCxcIlwiLmNvbmNhdCgyMCxcInB4XCIpKSxvUShuLFwidmlzaWJpbGl0eVwiLHQuaXNEZXZUb29sc1BhbmVsT3Blbnx8dC5pc0Vycm9yT3ZlcmxheU9wZW4/XCJoaWRkZW5cIjpcInZpc2libGVcIiksbiksY2hpbGRyZW46KDAseS5qc3gpKHJOLHtwYWRkaW5nOjIwLG9uRHJhZ1N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHMoITEpfSxwb3NpdGlvbjp0LmRldlRvb2xzUG9zaXRpb24sc2V0UG9zaXRpb246ZnVuY3Rpb24oZSl7cih7dHlwZTpZLGRldlRvb2xzUG9zaXRpb246ZX0pLGxvY2FsU3RvcmFnZS5zZXRJdGVtKEcsZSl9LGNoaWxkcmVuOigwLHkuanN4KShvWix7XCJhcmlhLWhhc3BvcHVwXCI6XCJtZW51XCIsXCJhcmlhLWV4cGFuZGVkXCI6bCxcImFyaWEtY29udHJvbHNcIjpcIm5leHRqcy1kZXYtdG9vbHMtbWVudVwiLFwiYXJpYS1sYWJlbFwiOlwiXCIuY29uY2F0KGw/XCJDbG9zZVwiOlwiT3BlblwiLFwiIE5leHQuanMgRGV2IFRvb2xzXCIpLFwiZGF0YS1uZXh0anMtZGV2LXRvb2xzLWJ1dHRvblwiOiEwLGRpc2FibGVkOnQuZGlzYWJsZURldkluZGljYXRvcixpc3N1ZUNvdW50Om8sb25UcmlnZ2VyQ2xpY2s6ZnVuY3Rpb24oKXtyKHt0eXBlOlp9KX0sdG9nZ2xlRXJyb3JPdmVybGF5OmZ1bmN0aW9uKCl7cih7dHlwZTpNfSkscih7dHlwZTpXfSl9LGlzRGV2QnVpbGRpbmc6dC5idWlsZGluZ0luZGljYXRvcixpc0RldlJlbmRlcmluZzp0LnJlbmRlcmluZ0luZGljYXRvcixpc0J1aWxkRXJyb3I6YSxzY2FsZTp0LnNjYWxlfSl9KX0pfWZ1bmN0aW9uIG8wKGUpe3ZhciBuLHQ7cmV0dXJuKDAseS5qc3gpKFwic3ZnXCIsKG49ZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByLG8sYTtyPWUsbz1uLGE9dFtuXSxvIGluIHI/T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7dmFsdWU6YSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnJbb109YX0pfXJldHVybiBlfSh7eG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHdpZHRoOlwiMTZcIixoZWlnaHQ6XCIxNlwiLHZpZXdCb3g6XCIwIDAgMTYgMTZcIixmaWxsOlwibm9uZVwifSxlKSx0PXQ9e2NoaWxkcmVuOigwLHkuanN4KShcInBhdGhcIix7ZDpcIk0xNSAxNEMxNSAxNC41NTIzIDE0LjU1MjMgMTUgMTQgMTVIMTBWMTMuNUgxMy41VjEwSDE1VjE0Wk0yLjUgMTMuNDk5SDZWMTQuOTk5SDJDMS40NDc3MiAxNC45OTkgMSAxNC41NTEzIDEgMTMuOTk5VjkuOTk5MDJIMi41VjEzLjQ5OVpNNiAyLjVIMi41VjZIMVYyQzEgMS40NDc3MiAxLjQ0NzcyIDEgMiAxSDZWMi41Wk0xNCAxQzE0LjU1MjMgMSAxNSAxLjQ0NzcyIDE1IDJWNkgxMy41VjIuNUgxMFYxSDE0WlwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn0pfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKX1mdW5jdGlvbiBvMShlKXt2YXIgbix0O3JldHVybigwLHkuanN4KShcInN2Z1wiLChuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciB0PW51bGwhPWFyZ3VtZW50c1tuXT9hcmd1bWVudHNbbl06e30scj1PYmplY3Qua2V5cyh0KTtcImZ1bmN0aW9uXCI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYocj1yLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIuZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgcixvLGE7cj1lLG89bixhPXRbbl0sbyBpbiByP09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se3ZhbHVlOmEsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpyW29dPWF9KX1yZXR1cm4gZX0oe3htbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIix3aWR0aDpcIjE2XCIsaGVpZ2h0OlwiMTZcIix2aWV3Qm94OlwiMCAwIDE2IDE2XCIsZmlsbDpcIm5vbmVcIn0sZSksdD10PXtjaGlsZHJlbjooMCx5LmpzeCkoXCJwYXRoXCIse2ZpbGxSdWxlOlwiZXZlbm9kZFwiLGNsaXBSdWxlOlwiZXZlbm9kZFwiLGQ6XCJNMSA2VjQuNUg0LjVWMUg2VjVDNiA1LjU1MjI4IDUuNTUyMjggNiA1IDZIMVpNMTEuNSAxSDEwVjVDMTAgNS41NTIyOCAxMC40NDc3IDYgMTEgNkgxNVY0LjVIMTEuNVYxWk0xNS4wNCAxMS41VjEwSDExQzEwLjQ0NzcgMTAgMTAgMTAuNDQ3NyAxMCAxMVYxNUgxMS41VjExLjVIMTUuMDRaTTQuNSAxNUg2VjExQzYgMTAuNDQ3NyA1LjU1MjI4IDEwIDUgMTBIMVYxMS41SDQuNVYxNVpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9KX0sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh0KSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdCh0KSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobixlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKSl9KSxuKSl9ZnVuY3Rpb24gbzIoZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfXZhciBvND1cIm5leHRqcy1kZXZ0b29scy1kaW1lbnNpb25zXCIsbzU9KDAseC5jcmVhdGVDb250ZXh0KShudWxsKSxvMz1mdW5jdGlvbihlKXt2YXIgbj0uOTUqd2luZG93LmlubmVyV2lkdGgsdD0uOTUqd2luZG93LmlubmVySGVpZ2h0O3JldHVybnt3aWR0aDpNYXRoLm1pbihuLE1hdGgubWF4KGUubWluV2lkdGgsZS53aWR0aCkpLGhlaWdodDpNYXRoLm1pbih0LE1hdGgubWF4KGUubWluSGVpZ2h0LGUuaGVpZ2h0KSl9fSxvNj1mdW5jdGlvbigpe3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKG80KTtpZighZSlyZXR1cm4gbnVsbDt0cnl7dmFyIG4sdD1KU09OLnBhcnNlKGUpO2lmKCh2b2lkIDA9PT10P1widW5kZWZpbmVkXCI6KG49dCkmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJm4uY29uc3RydWN0b3I9PT1TeW1ib2w/XCJzeW1ib2xcIjp0eXBlb2Ygbik9PVwib2JqZWN0XCImJm51bGwhPT10JiZcIm51bWJlclwiPT10eXBlb2YgdC53aWR0aCYmXCJudW1iZXJcIj09dHlwZW9mIHQuaGVpZ2h0KXJldHVybnt3aWR0aDp0LndpZHRoLGhlaWdodDp0LmhlaWdodH07cmV0dXJuIG51bGx9Y2F0Y2goZSl7cmV0dXJuIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKG80KSxudWxsfX0sbzk9ZnVuY3Rpb24oZSl7dmFyIG4sdCxyLG8sYT1lLnZhbHVlLGk9ZS5jaGlsZHJlbixsPW51bGwhPShyPWEubWluV2lkdGgpP3I6MTAwLHM9bnVsbCE9KG89YS5taW5IZWlnaHQpP286ODAsYz0obj0oMCx4LnVzZVN0YXRlKShudWxsKSx0PTIsZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0obil8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksYS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0obiwyKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gbzIoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gbzIoZSxuKX19KG4sdCl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCkpLHU9Y1swXSxkPWNbMV07cmV0dXJuKDAseC51c2VMYXlvdXRFZmZlY3QpKGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXtpZihhLnJlc2l6ZVJlZi5jdXJyZW50KXt2YXIgZT1vNigpO2lmKGUpe3ZhciBuLHQscj1vMygobj1mdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHt9LGUpLHQ9dD17bWluV2lkdGg6bnVsbCE9bD9sOjEwMCxtaW5IZWlnaHQ6bnVsbCE9cz9zOjgwfSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKTooZnVuY3Rpb24oZSxuKXt2YXIgdD1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QucHVzaC5hcHBseSh0LHIpfXJldHVybiB0fSkoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpKX0pLG4pKSxvPXIuaGVpZ2h0LGk9ci53aWR0aDthLnJlc2l6ZVJlZi5jdXJyZW50LnN0eWxlLndpZHRoPVwiXCIuY29uY2F0KGksXCJweFwiKSxhLnJlc2l6ZVJlZi5jdXJyZW50LnN0eWxlLmhlaWdodD1cIlwiLmNvbmNhdChvLFwicHhcIil9fX07cmV0dXJuIGUoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLGUpLGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsZSl9fSxbYS5yZXNpemVSZWYsbCxzXSksKDAseS5qc3gpKG81LlByb3ZpZGVyLHt2YWx1ZTp7cmVzaXplUmVmOmEucmVzaXplUmVmLG1pbldpZHRoOmwsbWluSGVpZ2h0OnMsZGV2VG9vbHNQb3NpdGlvbjphLmRldlRvb2xzUG9zaXRpb24sZHJhZ2dpbmdEaXJlY3Rpb246dSxzZXREcmFnZ2luZ0RpcmVjdGlvbjpkfSxjaGlsZHJlbjppfSl9LG84PWZ1bmN0aW9uKCl7dmFyIGU9KDAseC51c2VDb250ZXh0KShvNSk7aWYoIWUpdGhyb3cgRXJyb3IoXCJ1c2VSZXNpemUgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFJlc2l6ZSBwcm92aWRlclwiKTtyZXR1cm4gZX0sbzc9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9jc3MtbG9hZGVyQDcuMS4yX0Byc3BhY2srY29yZUAxLjQuNV9Ac3djK2hlbHBlcnNAMC41LjE1X193ZWJwYWNrQDUuOTguMF9Ac3djK2NvcmVAMS4xMS4yNF9Ac3dfd203ZWU1aWM0bW9mcmhpc3Vkd29uNHFwcTQvbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zcmMvbmV4dC1kZXZ0b29scy9kZXYtb3ZlcmxheS9jb21wb25lbnRzL2RldnRvb2xzLXBhbmVsL3Jlc2l6ZS9yZXNpemUtaGFuZGxlLmNzc1wiKSxhZT17fTtmdW5jdGlvbiBhbihlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9YWUuc3R5bGVUYWdUcmFuc2Zvcm09aCgpLGFlLnNldEF0dHJpYnV0ZXM9dSgpLGFlLmluc2VydD1zKCksYWUuZG9tQVBJPWkoKSxhZS5pbnNlcnRTdHlsZUVsZW1lbnQ9ZigpLG8oKShvNy5aLGFlKSxvNy5aJiZvNy5aLmxvY2FscyYmbzcuWi5sb2NhbHM7dmFyIGF0PWZ1bmN0aW9uKGUpe3ZhciBuLHQscj1lLmRpcmVjdGlvbixvPW84KCksYT1vLnJlc2l6ZVJlZixpPW8ubWluV2lkdGgsbD1vLm1pbkhlaWdodCxzPW8uZGV2VG9vbHNQb3NpdGlvbixjPW8uZHJhZ2dpbmdEaXJlY3Rpb24sdT1vLnNldERyYWdnaW5nRGlyZWN0aW9uLGQ9KG49KDAseC51c2VTdGF0ZSkoe3RvcDowLHJpZ2h0OjAsYm90dG9tOjAsbGVmdDowfSksdD0yLGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sMil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGFuKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIGFuKGUsbil9fShuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxmPWRbMF0scD1kWzFdO2lmKCgwLHgudXNlTGF5b3V0RWZmZWN0KShmdW5jdGlvbigpe2lmKGEuY3VycmVudCl7dmFyIGU9YS5jdXJyZW50LG49d2luZG93LmdldENvbXB1dGVkU3R5bGUoZSk7cCh7dG9wOnBhcnNlRmxvYXQobi5ib3JkZXJUb3BXaWR0aCl8fDAscmlnaHQ6cGFyc2VGbG9hdChuLmJvcmRlclJpZ2h0V2lkdGgpfHwwLGJvdHRvbTpwYXJzZUZsb2F0KG4uYm9yZGVyQm90dG9tV2lkdGgpfHwwLGxlZnQ6cGFyc2VGbG9hdChuLmJvcmRlckxlZnRXaWR0aCl8fDB9KX19LFthXSksISghcy5zcGxpdChcIi1cIikuaW5jbHVkZXMocikmJighci5pbmNsdWRlcyhcIi1cIil8fHI9PT1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZVwidG9wLWxlZnRcIjpyZXR1cm5cImJvdHRvbS1yaWdodFwiO2Nhc2VcInRvcC1yaWdodFwiOnJldHVyblwiYm90dG9tLWxlZnRcIjtjYXNlXCJib3R0b20tbGVmdFwiOnJldHVyblwidG9wLXJpZ2h0XCI7Y2FzZVwiYm90dG9tLXJpZ2h0XCI6cmV0dXJuXCJ0b3AtbGVmdFwiO2RlZmF1bHQ6cmV0dXJuIG51bGx9fShzKSkpKXJldHVybiBudWxsO3ZhciBoPWYubGVmdCtmLnJpZ2h0LGc9Zi50b3ArZi5ib3R0b20sbT1yLmluY2x1ZGVzKFwiLVwiKTtyZXR1cm4oMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicmVzaXplLWNvbnRhaW5lciBcIi5jb25jYXQocixcIiBcIikuY29uY2F0KGMmJmMhPT1yP1wibm8taG92ZXJcIjpcIlwiKSxvbk1vdXNlRG93bjpmdW5jdGlvbihlKXtpZihlLnByZXZlbnREZWZhdWx0KCksYS5jdXJyZW50KXt1KHIpO3ZhciBuPWEuY3VycmVudCx0PW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1uLm9mZnNldExlZnQscz1uLm9mZnNldFRvcCxjPWUuY2xpZW50WCxkPWUuY2xpZW50WSxmPWZ1bmN0aW9uKGUpe3ZhciBhPWFyKHIsZS5jbGllbnRYLWMsZS5jbGllbnRZLWQsdCxvLHMsaSxsKSx1PWEubmV3V2lkdGgsZj1hLm5ld0hlaWdodCxwPWEubmV3TGVmdCxoPWEubmV3VG9wO24uc3R5bGUud2lkdGg9XCJcIi5jb25jYXQodSxcInB4XCIpLG4uc3R5bGUuaGVpZ2h0PVwiXCIuY29uY2F0KGYsXCJweFwiKSwoci5pbmNsdWRlcyhcImxlZnRcIil8fFwibGVmdFwiPT09cikmJihuLnN0eWxlLmxlZnQ9XCJcIi5jb25jYXQocCxcInB4XCIpKSwoci5pbmNsdWRlcyhcInRvcFwiKXx8XCJ0b3BcIj09PXIpJiYobi5zdHlsZS50b3A9XCJcIi5jb25jYXQoaCxcInB4XCIpKX0scD1mdW5jdGlvbigpe3UobnVsbCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLGYpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIscCk7dmFyIGU9YS5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49ZS53aWR0aCx0PWUuaGVpZ2h0O2xvY2FsU3RvcmFnZS5zZXRJdGVtKFwibmV4dGpzLWRldnRvb2xzLWRpbWVuc2lvbnNcIixKU09OLnN0cmluZ2lmeSh7d2lkdGg6bixoZWlnaHQ6dH0pKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLGYpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIscCl9fX0pLCFtJiYoMCx5LmpzeCkoXCJkaXZcIix7Y2xhc3NOYW1lOlwicmVzaXplLWxpbmUgXCIuY29uY2F0KHIsXCIgXCIpLmNvbmNhdChjPT09cj9cImRyYWdnaW5nXCI6XCJcIiksc3R5bGU6e1wiLS1ib3JkZXItaG9yaXpvbnRhbFwiOlwiXCIuY29uY2F0KGgsXCJweFwiKSxcIi0tYm9yZGVyLXZlcnRpY2FsXCI6XCJcIi5jb25jYXQoZyxcInB4XCIpLFwiLS1ib3JkZXItdG9wXCI6XCJcIi5jb25jYXQoZi50b3AsXCJweFwiKSxcIi0tYm9yZGVyLXJpZ2h0XCI6XCJcIi5jb25jYXQoZi5yaWdodCxcInB4XCIpLFwiLS1ib3JkZXItYm90dG9tXCI6XCJcIi5jb25jYXQoZi5ib3R0b20sXCJweFwiKSxcIi0tYm9yZGVyLWxlZnRcIjpcIlwiLmNvbmNhdChmLmxlZnQsXCJweFwiKX19KV19KX0sYXI9ZnVuY3Rpb24oZSxuLHQscixvLGEsaSxsKXt2YXIgcz0uOTUqd2luZG93LmlubmVyV2lkdGgsYz0uOTUqd2luZG93LmlubmVySGVpZ2h0O3N3aXRjaChlKXtjYXNlXCJyaWdodFwiOnJldHVybntuZXdXaWR0aDpNYXRoLm1pbihzLE1hdGgubWF4KGksci53aWR0aCtuKSksbmV3SGVpZ2h0OnIuaGVpZ2h0LG5ld0xlZnQ6byxuZXdUb3A6YX07Y2FzZVwibGVmdFwiOnZhciB1PU1hdGgubWluKHMsTWF0aC5tYXgoaSxyLndpZHRoLW4pKSxkPXUtci53aWR0aDtyZXR1cm57bmV3V2lkdGg6dSxuZXdIZWlnaHQ6ci5oZWlnaHQsbmV3TGVmdDpvLWQsbmV3VG9wOmF9O2Nhc2VcImJvdHRvbVwiOnJldHVybntuZXdXaWR0aDpyLndpZHRoLG5ld0hlaWdodDpNYXRoLm1pbihjLE1hdGgubWF4KGwsci5oZWlnaHQrdCkpLG5ld0xlZnQ6byxuZXdUb3A6YX07Y2FzZVwidG9wXCI6dmFyIGY9TWF0aC5taW4oYyxNYXRoLm1heChsLHIuaGVpZ2h0LXQpKSxwPWYtci5oZWlnaHQ7cmV0dXJue25ld1dpZHRoOnIud2lkdGgsbmV3SGVpZ2h0OmYsbmV3TGVmdDpvLG5ld1RvcDphLXB9O2Nhc2VcInRvcC1sZWZ0XCI6dmFyIGg9TWF0aC5taW4ocyxNYXRoLm1heChpLHIud2lkdGgtbikpLGc9TWF0aC5taW4oYyxNYXRoLm1heChsLHIuaGVpZ2h0LXQpKSxtPWgtci53aWR0aCx2PWctci5oZWlnaHQ7cmV0dXJue25ld1dpZHRoOmgsbmV3SGVpZ2h0OmcsbmV3TGVmdDpvLW0sbmV3VG9wOmEtdn07Y2FzZVwidG9wLXJpZ2h0XCI6dmFyIGI9TWF0aC5taW4oYyxNYXRoLm1heChsLHIuaGVpZ2h0LXQpKSx5PWItci5oZWlnaHQ7cmV0dXJue25ld1dpZHRoOk1hdGgubWluKHMsTWF0aC5tYXgoaSxyLndpZHRoK24pKSxuZXdIZWlnaHQ6YixuZXdMZWZ0Om8sbmV3VG9wOmEteX07Y2FzZVwiYm90dG9tLWxlZnRcIjp2YXIgeD1NYXRoLm1pbihzLE1hdGgubWF4KGksci53aWR0aC1uKSksdz14LXIud2lkdGg7cmV0dXJue25ld1dpZHRoOngsbmV3SGVpZ2h0Ok1hdGgubWluKGMsTWF0aC5tYXgobCxyLmhlaWdodCt0KSksbmV3TGVmdDpvLXcsbmV3VG9wOmF9O2Nhc2VcImJvdHRvbS1yaWdodFwiOnJldHVybntuZXdXaWR0aDpNYXRoLm1pbihzLE1hdGgubWF4KGksci53aWR0aCtuKSksbmV3SGVpZ2h0Ok1hdGgubWluKGMsTWF0aC5tYXgobCxyLmhlaWdodCt0KSksbmV3TGVmdDpvLG5ld1RvcDphfTtkZWZhdWx0OnJldHVybiBudWxsfX07ZnVuY3Rpb24gYW8oZSxuKXsobnVsbD09bnx8bj5lLmxlbmd0aCkmJihuPWUubGVuZ3RoKTtmb3IodmFyIHQ9MCxyPUFycmF5KG4pO3Q8bjt0Kyspclt0XT1lW3RdO3JldHVybiByfWZ1bmN0aW9uIGFhKGUsbix0KXtyZXR1cm4gbiBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se3ZhbHVlOnQsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW25dPXQsZX1mdW5jdGlvbiBhaShlLG4pe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShlKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSwhbnx8YS5sZW5ndGghPT1uKTtpPSEwKTt9Y2F0Y2goZSl7bD0hMCxyPWV9ZmluYWxseXt0cnl7aXx8bnVsbD09by5yZXR1cm58fG8ucmV0dXJuKCl9ZmluYWxseXtpZihsKXRocm93IHJ9fXJldHVybiBhfX0oZSxuKXx8ZnVuY3Rpb24oZSxuKXtpZihlKXtpZihcInN0cmluZ1wiPT10eXBlb2YgZSlyZXR1cm4gYW8oZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gYW8oZSxuKX19KGUsbil8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXFxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIil9KCl9ZnVuY3Rpb24gYWwoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICAvKiBUT0RPOiBCZXR0ZXIgb3ZlcnJpZGUgZGlhbG9nIGhlYWRlciBzdHlsZS4gVGhpcyBjb25mbGljdHMgd2l0aCBpc3N1ZXMgdGFiIGNvbnRlbnQuICovXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZGlhbG9nLWhlYWRlcl0ge1xcbiAgICBmbGV4LXNocmluazogMDtcXG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWRpYWxvZy1jb250ZW50XSB7XFxuICAgIGZsZXg6IDE7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIG1pbi1oZWlnaHQ6IDA7IC8vIHdoYXQgYWxsb3dzIGNvbnRlbnQgdG8gb3ZlcmZsb3dcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1kaWFsb2ctYm9keV0ge1xcbiAgICBmbGV4OiAxO1xcbiAgICBvdmVyZmxvdzogYXV0bztcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1vdmVybGF5XSB7XFxuICAgIG1hcmdpbjogYXV0bztcXG4gICAgd2lkdGg6IDUyNXB4O1xcbiAgICBoZWlnaHQ6IDM3NXB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLW92ZXJsYXktYmFja2Ryb3BdIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLW92ZXJsYXktYmFja2Ryb3A9J3RydWUnXSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZHJhZ2dhYmxlXSB7XFxuICAgIC8qIEZvciByZXNwb25zaXZlbmVzcyAqL1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWRpYWxvZ10ge1xcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQteGwpO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIG1pbi13aWR0aDogNDAwcHg7XFxuICAgIG1pbi1oZWlnaHQ6IDM1MHB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlcl0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtaGVhZGVyLXRhYi1ncm91cF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBwYWRkaW5nOiA4cHg7XFxuICAgIGdhcDogNnB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci10YWJdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1tZC0yKTtcXG4gICAgcGFkZGluZzogNHB4IDEycHg7XFxuICAgIGZvbnQtc2l6ZTogMTRweDtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyMDBtcyBlYXNlO1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XFxuICAgIH1cXG5cXG4gICAgJjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci10YWI9J3RydWUnXSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtaGVhZGVyLXRhYi1pc3N1ZXMtYmFkZ2VdIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXJlZC00MDApO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcmVkLTkwMCk7XFxuICAgIGZvbnQtc2l6ZTogMTFweDtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG4gICAgcGFkZGluZzogMnB4IDZweDtcXG4gICAgd2lkdGg6IDIwcHg7XFxuICAgIGhlaWdodDogMjBweDtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1oZWFkZXItYWN0aW9uLWJ1dHRvbi1ncm91cF0ge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDRweDtcXG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci1hY3Rpb24tYnV0dG9uXSB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIHBhZGRpbmc6IDZweDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciwgY29sb3I7XFxuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDIwMG1zO1xcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZTtcXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS0yMDApO1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIH1cXG5cXG4gICAgJjphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWRyYWdnYWJsZT0ndHJ1ZSddIHtcXG4gICAgY3Vyc29yOiBtb3ZlO1xcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgJiA+ICoge1xcbiAgICAgIGN1cnNvcjogYXV0bztcXG4gICAgICAvKiB1c2VyLXNlbGVjdDogYXV0bzsgZm9sbG93cyB0aGUgcGFyZW50IChwYXJlbnQgbm9uZSAtPiBjaGlsZCBub25lKSwgc28gcmVzZXQgdGhlIGRpcmVjdCBjaGlsZCB0byB0ZXh0ICovXFxuICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7XFxuICAgIH1cXG4gIH1cXG5cIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gYWw9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBhcyhlKXt2YXIgbix0LHIsbyxhLGksbD1lLnN0YXRlLHM9ZS5kaXNwYXRjaCxjPWUuaXNzdWVDb3VudCx1PWUucnVudGltZUVycm9ycyxkPWUuZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHMsZj1haSgobj1cIl9fbmV4dGpzLWRldnRvb2xzLWFjdGl2ZS10YWJcIix0PVwiaXNzdWVzXCIsbz0ocj1haSgoMCx4LnVzZVN0YXRlKShmdW5jdGlvbigpe2lmKFwidW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZXNzaW9uU3RvcmFnZSl7dmFyIGU9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShuKTtyZXR1cm4gbnVsbCE9ZT9lOnR9cmV0dXJuIHR9KSwyKSlbMF0sYT1yWzFdLCgwLHgudXNlRWZmZWN0KShmdW5jdGlvbigpe1widW5kZWZpbmVkXCIhPXR5cGVvZiB3aW5kb3cmJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZXNzaW9uU3RvcmFnZSYmc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShuLG8pfSxbbixvXSksW28sYV0pLDIpLHA9ZlswXSxoPWZbMV0sZz1haSgoMCx4LnVzZVN0YXRlKSghMSksMiksbT1nWzBdLHY9Z1sxXSxiPWFpKCgwLHgudXNlU3RhdGUpKCExKSwyKSx3PWJbMF0saj1iWzFdLGs9KDAseC51c2VSZWYpKG51bGwpO2wuaXNFcnJvck92ZXJsYXlPcGVuIT09dyYmKGwuaXNFcnJvck92ZXJsYXlPcGVuJiYodighMCksaChcImlzc3Vlc1wiKSksaihsLmlzRXJyb3JPdmVybGF5T3BlbikpO3ZhciBBPWFpKGwuZGV2VG9vbHNQb3NpdGlvbi5zcGxpdChcIi1cIiwyKSwyKSxPPUFbMF0sQz1BWzFdLFM9ZnVuY3Rpb24oKXtzKHt0eXBlOiR9KSxzKHt0eXBlOkl9KX07cmV0dXJuKDAseS5qc3gpKG85LHt2YWx1ZTp7cmVzaXplUmVmOmssbWluV2lkdGg6NDAwLG1pbkhlaWdodDozNTAsZGV2VG9vbHNQb3NpdGlvbjpsLmRldlRvb2xzUG9zaXRpb259LGNoaWxkcmVuOigwLHkuanN4cykoblose3JlZjprLFwiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtb3ZlcmxheVwiOiEwLHN0eWxlOm0/e306KGFhKGk9e30sTyxcIlwiLmNvbmNhdCgyMCxcInB4XCIpKSxhYShpLEMsXCJcIi5jb25jYXQoMjAsXCJweFwiKSksYWEoaSxcInRvcFwiPT09Tz9cImJvdHRvbVwiOlwidG9wXCIsXCJhdXRvXCIpLGFhKGksXCJsZWZ0XCI9PT1DP1wicmlnaHRcIjpcImxlZnRcIixcImF1dG9cIiksaSksY2hpbGRyZW46WygwLHkuanN4KShuMix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1vdmVybGF5LWJhY2tkcm9wXCI6bSxvbkNsaWNrOlN9KSwoMCx5LmpzeCkock4se1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZHJhZ2dhYmxlXCI6ITAscGFkZGluZzoyMCxvbkRyYWdTdGFydDpmdW5jdGlvbigpe30scG9zaXRpb246bC5kZXZUb29sc1Bvc2l0aW9uLHNldFBvc2l0aW9uOmZ1bmN0aW9uKGUpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKEcsZSkscyh7dHlwZTpZLGRldlRvb2xzUG9zaXRpb246ZX0pfSxkcmFnSGFuZGxlU2VsZWN0b3I6XCJbZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtaGVhZGVyXSwgW2RhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWZvb3Rlcl1cIixkaXNhYmxlRHJhZzptLGNoaWxkcmVuOigwLHkuanN4cykoeS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHkuanN4cykoZVose1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZGlhbG9nXCI6ITAsXCJhcmlhLWxhYmVsbGVkYnlcIjpcIm5leHRqc19fY29udGFpbmVyX2Rldl90b29sc19wYW5lbF9sYWJlbFwiLFwiYXJpYS1kZXNjcmliZWRieVwiOlwibmV4dGpzX19jb250YWluZXJfZGV2X3Rvb2xzX3BhbmVsX2Rlc2NcIixvbkNsb3NlOlMsY2hpbGRyZW46WygwLHkuanN4cykoZVgse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZGlhbG9nLWNvbnRlbnRcIjohMCxjaGlsZHJlbjpbKDAseS5qc3gpKGVLLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWRpYWxvZy1oZWFkZXJcIjohMCxjaGlsZHJlbjooMCx5LmpzeHMpKFwiZGl2XCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtaGVhZGVyXCI6ITAsXCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1kcmFnZ2FibGVcIjohbSxjaGlsZHJlbjpbKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci10YWItZ3JvdXBcIjohMCxjaGlsZHJlbjpbKDAseS5qc3hzKShcImJ1dHRvblwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci10YWJcIjpcImlzc3Vlc1wiPT09cCxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGgoXCJpc3N1ZXNcIil9LGNoaWxkcmVuOltcIklzc3Vlc1wiLGM+MD8oMCx5LmpzeCkoXCJzcGFuXCIse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtaGVhZGVyLXRhYi1pc3N1ZXMtYmFkZ2VcIjohMCxjaGlsZHJlbjpjfSk6bnVsbF19KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1oZWFkZXItdGFiXCI6XCJyb3V0ZVwiPT09cCxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGgoXCJyb3V0ZVwiKX0sY2hpbGRyZW46XCJSb3V0ZSBJbmZvXCJ9KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1oZWFkZXItdGFiXCI6XCJzZXR0aW5nc1wiPT09cCxvbkNsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGgoXCJzZXR0aW5nc1wiKX0sY2hpbGRyZW46XCJTZXR0aW5nc1wifSldfSksKDAseS5qc3hzKShcImRpdlwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci1hY3Rpb24tYnV0dG9uLWdyb3VwXCI6ITAsY2hpbGRyZW46WygwLHkuanN4KShcImJ1dHRvblwiLHtcImRhdGEtbmV4dGpzLWRldnRvb2xzLXBhbmVsLWhlYWRlci1hY3Rpb24tYnV0dG9uXCI6ITAsb25DbGljazpmdW5jdGlvbigpe3YoZnVuY3Rpb24oZSl7cmV0dXJuIWV9KSxzKHt0eXBlOkl9KX0sY2hpbGRyZW46bT8oMCx5LmpzeCkobzEse3dpZHRoOjE2LGhlaWdodDoxNn0pOigwLHkuanN4KShvMCx7d2lkdGg6MTYsaGVpZ2h0OjE2fSl9KSwoMCx5LmpzeCkoXCJidXR0b25cIix7XCJkYXRhLW5leHRqcy1kZXZ0b29scy1wYW5lbC1oZWFkZXItYWN0aW9uLWJ1dHRvblwiOiEwLG9uQ2xpY2s6UyxjaGlsZHJlbjooMCx5LmpzeCkob0gse3dpZHRoOjE2LGhlaWdodDoxNn0pfSldfSldfSl9KSwoMCx5LmpzeCkoZVkse1wiZGF0YS1uZXh0anMtZGV2dG9vbHMtcGFuZWwtZGlhbG9nLWJvZHlcIjohMCxjaGlsZHJlbjooMCx5LmpzeCkob0kse3BhZ2U6bC5wYWdlLGFjdGl2ZVRhYjpwLGRldlRvb2xzUG9zaXRpb246bC5kZXZUb29sc1Bvc2l0aW9uLHNjYWxlOmwuc2NhbGUscm91dGVyVHlwZTpsLnJvdXRlclR5cGUsaGFuZGxlUG9zaXRpb25DaGFuZ2U6ZnVuY3Rpb24oZSl7cyh7dHlwZTpZLGRldlRvb2xzUG9zaXRpb246ZS50YXJnZXQudmFsdWV9KSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShHLGUudGFyZ2V0LnZhbHVlKX0saGFuZGxlU2NhbGVDaGFuZ2U6ZnVuY3Rpb24oZSl7cyh7dHlwZTpYLHNjYWxlOk51bWJlcihlLnRhcmdldC52YWx1ZSl9KSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShKLGUudGFyZ2V0LnZhbHVlKX0sZGVidWdJbmZvOmwuZGVidWdJbmZvLHJ1bnRpbWVFcnJvcnM6dSxnZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlsczpkLGJ1aWxkRXJyb3I6bC5idWlsZEVycm9yfSl9KV19KSwoMCx5LmpzeCkocjIse3ZlcnNpb25JbmZvOmwudmVyc2lvbkluZm8saXNEcmFnZ2FibGU6IW0sc2hvd1Jlc3RhcnRTZXJ2ZXJCdXR0b246bC5zaG93UmVzdGFydFNlcnZlckJ1dHRvbn0pXX0pLCFtJiYoMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx5LmpzeCkoYXQse2RpcmVjdGlvbjpcInRvcFwifSksKDAseS5qc3gpKGF0LHtkaXJlY3Rpb246XCJyaWdodFwifSksKDAseS5qc3gpKGF0LHtkaXJlY3Rpb246XCJib3R0b21cIn0pLCgwLHkuanN4KShhdCx7ZGlyZWN0aW9uOlwibGVmdFwifSksKDAseS5qc3gpKGF0LHtkaXJlY3Rpb246XCJ0b3AtbGVmdFwifSksKDAseS5qc3gpKGF0LHtkaXJlY3Rpb246XCJ0b3AtcmlnaHRcIn0pLCgwLHkuanN4KShhdCx7ZGlyZWN0aW9uOlwiYm90dG9tLWxlZnRcIn0pLCgwLHkuanN4KShhdCx7ZGlyZWN0aW9uOlwiYm90dG9tLXJpZ2h0XCJ9KV19KV19KX0pXX0pfSl9dmFyIGFjPWVpKGFsKCkpO2Z1bmN0aW9uIGF1KCl7dmFyIGUsbix0PShlPVtcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgICAgXCIsXCJcXG4gICAgICBcIl0sbnx8KG49ZS5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUobil9fSkpKTtyZXR1cm4gYXU9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdH1mdW5jdGlvbiBhZCgpe3JldHVybigwLHkuanN4KShcInN0eWxlXCIse2NoaWxkcmVuOmVpKGF1KCksXCJcXG4gIC5uZXh0anMtZGF0YS1jb3B5LWJ1dHRvbiB7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuICB9XFxuICAubmV4dGpzLWRhdGEtY29weS1idXR0b246ZGlzYWJsZWQge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICB9XFxuICAubmV4dGpzLWRhdGEtY29weS1idXR0b24tLWluaXRpYWw6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICB9XFxuICAubmV4dGpzLWRhdGEtY29weS1idXR0b24tLWVycm9yOm5vdCg6ZGlzYWJsZWQpLFxcbiAgLm5leHRqcy1kYXRhLWNvcHktYnV0dG9uLS1lcnJvcjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XFxuICB9XFxuICAubmV4dGpzLWRhdGEtY29weS1idXR0b24tLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCkge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW5zaS1ncmVlbik7XFxuICB9XFxuXCIsJ1xcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWUtbm8tc291cmNlXSB7XFxuICAgIHBhZGRpbmc6IDZweCA4cHg7XFxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcXG5cXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1sZyk7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZS1uby1zb3VyY2VdOmxhc3QtY2hpbGQge1xcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWUtaWdub3JlZD1cInRydWVcIl0ge1xcbiAgICBvcGFjaXR5OiAwLjY7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0ge1xcbiAgICB1c2VyLXNlbGVjdDogdGV4dDtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuXFxuICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0O1xcbiAgICAtbW96LXVzZXItc2VsZWN0OiB0ZXh0O1xcbiAgICAtbXMtdXNlci1zZWxlY3Q6IHRleHQ7XFxuXFxuICAgIHBhZGRpbmc6IDZweCA4cHg7XFxuXFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbGcpO1xcbiAgfVxcblxcbiAgLmNhbGwtc3RhY2stZnJhbWUtbWV0aG9kLW5hbWUge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDRweDtcXG5cXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcblxcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2cHgpO1xcbiAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS0xNnB4KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLm9wZW4taW4tZWRpdG9yLWJ1dHRvbiwgLnNvdXJjZS1tYXBwaW5nLWVycm9yLWJ1dHRvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcbiAgICBwYWRkaW5nOiA0cHg7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1mb250KTtcXG5cXG4gICAgc3ZnIHtcXG4gICAgICB3aWR0aDogdmFyKC0tc2l6ZS0xNik7XFxuICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgfVxcblxcbiAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xcbiAgICB9XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmNhbGwtc3RhY2stZnJhbWUtZmlsZS1zb3VyY2Uge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTQpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuICB9XFxuJyx0cyxcIlxcbiAgW2RhdGEtbmV4dGpzLWVudmlyb25tZW50LW5hbWUtbGFiZWxdIHtcXG4gICAgcGFkZGluZzogMnB4IDZweDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kLTIpO1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTkwMCk7XFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTIwKTtcXG4gIH1cXG5cIixcIlxcbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICAvKiBzZWNvbmRhcnkgei1pbmRleCwgLTEgdGhhbiB0b2FzdCB6LWluZGV4ICovXFxuICAgIHotaW5kZXg6IDIxNDc0ODM2NDY7XFxuXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgcGFkZGluZzogMTB2aCAxNXB4IDA7XFxuICB9XFxuXFxuICBAbWVkaWEgKG1heC1oZWlnaHQ6IDgxMnB4KSB7XFxuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xcbiAgICAgIHBhZGRpbmc6IDE1cHggMTVweCAwO1xcbiAgICB9XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wXSB7XFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcXG4gICAgdG9wOiAwO1xcbiAgICByaWdodDogMDtcXG4gICAgYm90dG9tOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1iYWNrZHJvcCk7XFxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcXG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG4gICAgei1pbmRleDogLTE7XFxuICB9XFxuXFxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wLWZpeGVkXSB7XFxuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XFxuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xcbiAgfVxcblwiLGVHLG44LG5FLFwiXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXIge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zdGFjay1sYXllci1oZWlnaHQpO1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC14bCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgdHJhbnNpdGlvbjpcXG4gICAgICB0cmFuc2xhdGUgMzUwbXMgdmFyKC0tdGltaW5nLXN3aWZ0KSxcXG4gICAgICBib3gtc2hhZG93IDM1MG1zIHZhcigtLXRpbWluZy1zd2lmdCk7XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMSB7XFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zaXplLTI0KSk7XFxuICB9XFxuXFxuICAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMiB7XFxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zaXplLTQ4KSk7XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgYm90dG9tOiAtMXB4O1xcbiAgICBoZWlnaHQ6IDA7XFxuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLXN0YWNrIHtcXG4gICAgLS1zdGFjay1sYXllci1oZWlnaHQ6IDQ0cHg7XFxuICAgIC0tc3RhY2stbGF5ZXItaGVpZ2h0LWhhbGY6IGNhbGModmFyKC0tc3RhY2stbGF5ZXItaGVpZ2h0KSAvIDIpO1xcbiAgICAtLXN0YWNrLWxheWVyLXRyaW06IDEzcHg7XFxuICAgIC0tc2hhZG93OiAwcHggMC45MjVweCAwLjkyNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMDIpLFxcbiAgICAgIDBweCAzLjdweCA3LjRweCAtMy43cHggcmdiYSgwLCAwLCAwLCAwLjA0KSxcXG4gICAgICAwcHggMTQuOHB4IDIyLjJweCAtNy40cHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcXG5cXG4gICAgZGlzcGxheTogZ3JpZDtcXG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlciBjZW50ZXI7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBwb3NpdGlvbjogZml4ZWQ7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICAgIHotaW5kZXg6IC0xO1xcbiAgICBtYXgtd2lkdGg6IHZhcigtLW5leHQtZGlhbG9nLW1heC13aWR0aCk7XFxuXFxuICAgIC5lcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllciB7XFxuICAgICAgZ3JpZC1hcmVhOiAxIC8gMTtcXG4gICAgICAvKiBIaWRlICovXFxuICAgICAgdHJhbnNsYXRlOiAwIGNhbGModmFyKC0tc3RhY2stbGF5ZXItaGVpZ2h0KSAqIC0xKTtcXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzEnXSxcXG4gICAgJltkYXRhLXN0YWNrLWNvdW50PScyJ10ge1xcbiAgICAgIC5lcnJvci1vdmVybGF5LWJvdHRvbS1zdGFjay1sYXllci0xIHtcXG4gICAgICAgIHRyYW5zbGF0ZTogMFxcbiAgICAgICAgICBjYWxjKHZhcigtLXN0YWNrLWxheWVyLWhlaWdodC1oYWxmKSAqIC0xIC0gdmFyKC0tc3RhY2stbGF5ZXItdHJpbSkpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzInXSB7XFxuICAgICAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyLTIge1xcbiAgICAgICAgdHJhbnNsYXRlOiAwIGNhbGModmFyKC0tc3RhY2stbGF5ZXItdHJpbSkgKiAtMSAqIDIpO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAvKiBPbmx5IHRoZSBib3R0b20gc3RhY2sgc2hvdWxkIGhhdmUgdGhlIHNoYWRvdyAqL1xcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzEnXSAuZXJyb3Itb3ZlcmxheS1ib3R0b20tc3RhY2stbGF5ZXItMSB7XFxuICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTtcXG4gICAgfVxcblxcbiAgICAmW2RhdGEtc3RhY2stY291bnQ9JzInXSB7XFxuICAgICAgLmVycm9yLW92ZXJsYXktYm90dG9tLXN0YWNrLWxheWVyLTIge1xcbiAgICAgICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cIixcIlxcbiAgLmVycm9yLW92ZXJsYXktcGFnaW5hdGlvbiB7XFxuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA4cHg7XFxuICAgIHdpZHRoOiBmaXQtY29udGVudDtcXG4gIH1cXG5cXG4gIC5lcnJvci1vdmVybGF5LXBhZ2luYXRpb24tY291bnQge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLTE2KTtcXG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcXG4gIH1cXG5cXG4gIC5lcnJvci1vdmVybGF5LXBhZ2luYXRpb24tYnV0dG9uIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuXFxuICAgIHdpZHRoOiB2YXIoLS1zaXplLTI0KTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS0zMDApO1xcbiAgICBmbGV4LXNocmluazogMDtcXG5cXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgIH1cXG5cXG4gICAgJjpub3QoOmRpc2FibGVkKTphY3RpdmUge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktNTAwKTtcXG4gICAgfVxcblxcbiAgICAmOmRpc2FibGVkIHtcXG4gICAgICBvcGFjaXR5OiAwLjU7XFxuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmVycm9yLW92ZXJsYXktcGFnaW5hdGlvbi1idXR0b24taWNvbiB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgfVxcblwiLCdcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIHtcXG4gICAgLS1jb2RlLWZyYW1lLXBhZGRpbmc6IDEycHg7XFxuICAgIC0tY29kZS1mcmFtZS1saW5lLWhlaWdodDogdmFyKC0tc2l6ZS0xNik7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWNvZGUtZnJhbWUtbGluZS1oZWlnaHQpO1xcbiAgICBtYXJnaW46IDhweCAwO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5rLFxcbiAgLmNvZGUtZnJhbWUtcHJlIHtcXG4gICAgcGFkZGluZzogdmFyKC0tY29kZS1mcmFtZS1wYWRkaW5nKTtcXG4gIH1cXG5cXG4gIC5jb2RlLWZyYW1lLWxpbmsgc3ZnIHtcXG4gICAgZmxleC1zaHJpbms6IDA7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5lcyB7XFxuICAgIG1pbi13aWR0aDogbWF4LWNvbnRlbnQ7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5rIFtkYXRhLXRleHRdIHtcXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgIG1hcmdpbjogYXV0byA2cHg7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1oZWFkZXIge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMDBtcyBlYXNlLW91dDtcXG4gICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICB9XFxuXFxuICBbZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstc291cmNlLWZpbGVdIHtcXG4gICAgcGFkZGluZzogNHB4O1xcbiAgICBtYXJnaW46IC00cHggMCAtNHB4IGF1dG87XFxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtZnVsbCk7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcblxcbiAgICAmOmZvY3VzLXZpc2libGUge1xcbiAgICAgIG91dGxpbmU6IHZhcigtLWZvY3VzLXJpbmcpO1xcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xcbiAgICB9XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktMTAwKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV06OnNlbGVjdGlvbixcXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICo6OnNlbGVjdGlvbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktc2VsZWN0aW9uKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdICo6bm90KGEpIHtcXG4gICAgY29sb3I6IGluaGVyaXQ7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZS1saW5lXVtkYXRhLW5leHRqcy1jb2RlZnJhbWUtbGluZS0tZXJyb3JlZD1cInRydWVcIl0ge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcXG5cXG4gICAgPiBzcGFuIHsgXFxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICAgIHotaW5kZXg6IDE7XFxuICAgIH1cXG5cXG4gICAgJjo6YWZ0ZXIge1xcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XFxuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIHZhcigtLWNvZGUtZnJhbWUtcGFkZGluZykgKiAyKTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLWNvZGUtZnJhbWUtbGluZS1oZWlnaHQpO1xcbiAgICAgIGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jb2RlLWZyYW1lLXBhZGRpbmcpKTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1yZWQtMjAwKTtcXG4gICAgICBib3gtc2hhZG93OiAycHggMCAwIDAgdmFyKC0tY29sb3ItcmVkLTkwMCkgaW5zZXQ7XFxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICB9XFxuICB9XFxuXFxuXFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+ICoge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuXFxuICAuY29kZS1mcmFtZS1saW5rIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBvdXRsaW5lOiAwO1xcbiAgfVxcbiAgLmNvZGUtZnJhbWUtbGluayBbZGF0YS1pY29uPVxcJ3JpZ2h0XFwnXSB7XFxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gZGl2ID4gcHJlIHtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgfVxcblxcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gc3ZnIHtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gIH1cXG4nLFwiXFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdOjpzZWxlY3Rpb24sXFxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdICo6OnNlbGVjdGlvbiB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktc2VsZWN0aW9uKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gKiB7XFxuICAgIGNvbG9yOiBpbmhlcml0O1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gIH1cXG5cXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gPiBkaXYgPiBwIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIG1hcmdpbjogMDtcXG4gIH1cXG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF0gPiBkaXYgPiBwOmhvdmVyIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgfVxcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSBkaXYgPiBwcmUge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB9XFxuXCIsXCJcXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGlua10gc3ZnIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XFxuICB9XFxuICBbZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtdIHtcXG4gICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgfVxcbiAgW2RhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rXTpob3ZlciB7XFxuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gIH1cXG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGluay1pbXBvcnQtdHJhY2VdIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XFxuICB9XFxuXCIsXCJcIixcIlxcbiAgLm5leHRqcy1lcnJvci13aXRoLXN0YXRpYyB7XFxuICAgIGJvdHRvbTogY2FsYygxNnB4ICogNC41KTtcXG4gIH1cXG4gIHAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19saW5rIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gIH1cXG4gIHAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19ub3RlcyB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGFjay1ub3Rlcyk7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xNCk7XFxuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XFxuICB9XFxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keSA+IGgyOm5vdCg6Zmlyc3QtY2hpbGQpIHtcXG4gICAgbWFyZ2luLXRvcDogY2FsYygxNnB4ICsgOHB4KTtcXG4gIH1cXG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5ID4gaDIge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItdGl0bGUtY29sb3IpO1xcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0yMCk7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQ6aG92ZXIge1xcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWVycm9ycyB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcXG4gIH1cXG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzID4gc3ZnIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWhpZGUtYnV0dG9uIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI0cHg7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlKTtcXG4gICAgcGFkZGluZzogMDtcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xcbiAgICBvcGFjaXR5OiAwLjc7XFxuICB9XFxuICAubmV4dGpzLXRvYXN0LWhpZGUtYnV0dG9uOmhvdmVyIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG4gIC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2Vycm9yX3RpdGxlIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xcbiAgfVxcbiAgLmVycm9yLW92ZXJsYXktbm90ZXMtY29udGFpbmVyIHtcXG4gICAgbWFyZ2luOiA4cHggMnB4O1xcbiAgfVxcbiAgLmVycm9yLW92ZXJsYXktbm90ZXMtY29udGFpbmVyIHAge1xcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICB9XFxuXCIsdEEsXCJcXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDRweDtcXG5cXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI2KTtcXG4gICAgcGFkZGluZzogNnB4IDhweCA2cHggNnB4O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtYWxsKTtcXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcm91bmRlZC1mdWxsKTtcXG5cXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgfVxcblxcbiAgYS5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIHtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIH1cXG5cXG4gICAgJjpmb2N1cyB7XFxuICAgICAgb3V0bGluZTogdmFyKC0tZm9jdXMtcmluZyk7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC52ZXJzaW9uLXN0YWxlbmVzcy1pbmRpY2F0b3IuZnJlc2gge1xcbiAgICBmaWxsOiB2YXIoLS1jb2xvci1ncmVlbi04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLWdyZWVuLTMwMCk7XFxuICB9XFxuICAudmVyc2lvbi1zdGFsZW5lc3MtaW5kaWNhdG9yLnN0YWxlIHtcXG4gICAgZmlsbDogdmFyKC0tY29sb3ItYW1iZXItODAwKTtcXG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1hbWJlci0zMDApO1xcbiAgfVxcbiAgLnZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvci5vdXRkYXRlZCB7XFxuICAgIGZpbGw6IHZhcigtLWNvbG9yLXJlZC04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLXJlZC0zMDApO1xcbiAgfVxcbiAgLnZlcnNpb24tc3RhbGVuZXNzLWluZGljYXRvci51bmtub3duIHtcXG4gICAgZmlsbDogdmFyKC0tY29sb3ItZ3JheS04MDApO1xcbiAgICBzdHJva2U6IHZhcigtLWNvbG9yLWdyYXktMzAwKTtcXG4gIH1cXG5cXG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzID4gLnR1cmJvcGFjay10ZXh0IHtcXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxcbiAgICAgIHRvIHJpZ2h0LFxcbiAgICAgIHZhcigtLWNvbG9yLXR1cmJvcGFjay10ZXh0LXJlZCkgMCUsXFxuICAgICAgdmFyKC0tY29sb3ItdHVyYm9wYWNrLXRleHQtYmx1ZSkgMTAwJVxcbiAgICApO1xcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XFxuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB9XFxuXCIsXCJcXG4gIC5yZXN0YXJ0LWRldi1zZXJ2ZXItYnV0dG9uIHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBnYXA6IDRweDtcXG4gICAgbWFyZ2luOiAwIDEycHg7XFxuXFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yNik7XFxuICAgIHBhZGRpbmc6IDZweCA4cHggNnB4IDZweDtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYW1iZXItMTAwKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc21hbGwpO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLWZ1bGwpO1xcblxcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYW1iZXItOTAwKTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTEyKTtcXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgfVxcblwiLFwiXFxuICBbZGF0YS1uZXh0anMtdG9hc3RdIHtcXG4gICAgJltkYXRhLWhpZGRlbj0ndHJ1ZSddIHtcXG4gICAgICBkaXNwbGF5OiBub25lO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWluZGljYXRvci1tZW51IHtcXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktYWxwaGEtNDAwKTtcXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LW1lbnUpO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLXhsKTtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcXG4gICAgei1pbmRleDogMztcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgb3V0bGluZTogMDtcXG4gICAgbWluLXdpZHRoOiAyNDhweDtcXG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1hbmltYXRlLW91dC1kdXJhdGlvbi1tcylcXG4gICAgICB2YXIoLS1hbmltYXRlLW91dC10aW1pbmctZnVuY3Rpb24pO1xcblxcbiAgICAmW2RhdGEtcmVuZGVyZWQ9J3RydWUnXSB7XFxuICAgICAgb3BhY2l0eTogMTtcXG4gICAgICBzY2FsZTogMTtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmRpY2F0b3ItaW5uZXIge1xcbiAgICBwYWRkaW5nOiA2cHg7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmRpY2F0b3ItaXRlbSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIHBhZGRpbmc6IDhweCA2cHg7XFxuICAgIGhlaWdodDogdmFyKC0tc2l6ZS0zNik7XFxuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XFxuICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcblxcbiAgICBzdmcge1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTE2KTtcXG4gICAgICBoZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuXFxuICAgICY6Zm9jdXMtdmlzaWJsZSB7XFxuICAgICAgb3V0bGluZTogMDtcXG4gICAgfVxcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmRpY2F0b3ItZm9vdGVyIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0yMDApO1xcbiAgICBwYWRkaW5nOiA2cHg7XFxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LTQwMCk7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmRpY2F0b3ItaXRlbVtkYXRhLXNlbGVjdGVkPSd0cnVlJ10ge1xcbiAgICBjdXJzb3I6IHBvaW50ZXI7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMjAwKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5kaWNhdG9yLWxhYmVsIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5kaWNhdG9yLXZhbHVlIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLTE0KTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMjApO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS05MDApO1xcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5kaWNhdG9yLWlzc3VlLWNvdW50IHtcXG4gICAgLS1jb2xvci1wcmltYXJ5OiB2YXIoLS1jb2xvci1ncmF5LTgwMCk7XFxuICAgIC0tY29sb3Itc2Vjb25kYXJ5OiB2YXIoLS1jb2xvci1ncmF5LTEwMCk7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBnYXA6IDhweDtcXG4gICAgbWluLXdpZHRoOiB2YXIoLS1zaXplLTQwKTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZC0xMDApO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1zbWFsbCk7XFxuICAgIHBhZGRpbmc6IDJweDtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDEyOHB4O1xcbiAgICBmb250LXdlaWdodDogNTAwO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTMpO1xcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xcblxcbiAgICAmW2RhdGEtaGFzLWlzc3Vlcz0ndHJ1ZSddIHtcXG4gICAgICAtLWNvbG9yLXByaW1hcnk6IHZhcigtLWNvbG9yLXJlZC04MDApO1xcbiAgICAgIC0tY29sb3Itc2Vjb25kYXJ5OiB2YXIoLS1jb2xvci1yZWQtMTAwKTtcXG4gICAgfVxcblxcbiAgICAuZGV2LXRvb2xzLWluZGljYXRvci1pc3N1ZS1jb3VudC1pbmRpY2F0b3Ige1xcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLTgpO1xcbiAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS04KTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcXG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTtcXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgIH1cXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5kaWNhdG9yLXNob3J0Y3V0IHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZ2FwOiA0cHg7XFxuXFxuICAgIGtiZCB7XFxuICAgICAgd2lkdGg6IHZhcigtLXNpemUtMjApO1xcbiAgICAgIGhlaWdodDogdmFyKC0tc2l6ZS0yMCk7XFxuICAgICAgZGlzcGxheTogZmxleDtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJvdW5kZWQtbWQpO1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktNDAwKTtcXG4gICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1zYW5zKTtcXG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWdyYXktMTAwMCk7XFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS0xMik7XFxuICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtMTYpO1xcbiAgICB9XFxuICB9XFxuXFxuICAuZGV2LXRvb2xzLWdyYWJiaW5nIHtcXG4gICAgY3Vyc29yOiBncmFiYmluZztcXG5cXG4gICAgPiAqIHtcXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gICAgfVxcbiAgfVxcblwiLHQwLmcsXCJcXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlIHtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS00MDApO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheS0xMDAwKTtcXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcXG4gICAgcGFkZGluZzogMnB4IDRweDtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTMpO1xcbiAgICB3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kLTIpO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2stY29udGFpbmVyIHtcXG4gICAgcGFkZGluZzogNnB4O1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2sge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZ3JheS1hbHBoYS00MDApO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kLTIpO1xcbiAgICBtaW4td2lkdGg6IDMyNnB4O1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2stcHJlIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtMTIpO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvcHktYnV0dG9uIHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcblxcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgcmlnaHQ6IDhweDtcXG4gICAgdG9wOiA4cHg7XFxuICAgIHBhZGRpbmc6IDRweDtcXG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTI0KTtcXG4gICAgd2lkdGg6IHZhcigtLXNpemUtMjQpO1xcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yb3VuZGVkLW1kLTIpO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ncmF5LWFscGhhLTQwMCk7XFxuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMTAwKTtcXG4gIH1cXG5cXG4gIC5kZXYtdG9vbHMtaW5mby1jb2RlLWJsb2NrLWxpbmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcXG4gICAgcGFkZGluZzogMCAxNnB4O1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2stbGluZS5kZXYtdG9vbHMtaW5mby1oaWdobGlnaHQge1xcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWJsdWUtOTAwKTtcXG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmx1ZS00MDApO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi1rZXkge1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3Itc3ludGF4LWtleXdvcmQpO1xcbiAgfVxcblxcbiAgLmRldi10b29scy1pbmZvLWNvZGUtYmxvY2stanNvbi12YWx1ZSB7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zeW50YXgtbGluayk7XFxuICB9XFxuXCIsXCJcIixyUywnXFxuICAubmV4dGpzLXNjcm9sbC1mYWRlciB7XFxuICAgIC0tYmx1cjogMXB4O1xcbiAgICAtLXN0b3A6IDI1JTtcXG4gICAgLS1oZWlnaHQ6IDE1MHB4O1xcbiAgICAtLWNvbG9yLWJnOiB2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLTEwMCk7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiB2YXIoLS1oZWlnaHQpO1xcbiAgICBsZWZ0OiAwO1xcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIodmFyKC0tYmx1cikpO1xcblxcbiAgICAmW2RhdGEtc2lkZT1cInRvcFwiXSB7XFxuICAgICAgdG9wOiAwO1xcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHRyYW5zcGFyZW50LCB2YXIoLS1jb2xvci1iZykpO1xcbiAgICAgIG1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLWNvbG9yLWJnKSB2YXIoLS1zdG9wKSwgdHJhbnNwYXJlbnQpO1xcbiAgICB9XFxuICB9XFxuJyxhYyxyNCxyMCxvbixvTixvTyxvYyxvbyxvTCxvdyxvYixvZixybSl9KX1mdW5jdGlvbiBhZigpe3ZhciBlLG4sdD0oZT1bXCJcXG4gICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgYWxsOiBpbml0aWFsO1xcblxcbiAgICAgICAgICAvKiB0aGUgZGlyZWN0aW9uIHByb3BlcnR5IGlzIG5vdCByZXNldCBieSAnYWxsJyAqL1xcbiAgICAgICAgICBkaXJlY3Rpb246IGx0cjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIC8qIVxcbiAgICAgICAgICogQm9vdHN0cmFwIFJlYm9vdCB2NC40LjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXFxuICAgICAgICAgKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFRoZSBCb290c3RyYXAgQXV0aG9yc1xcbiAgICAgICAgICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXFxuICAgICAgICAgKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxcbiAgICAgICAgICogRm9ya2VkIGZyb20gTm9ybWFsaXplLmNzcywgbGljZW5zZWQgTUlUIChodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQpXFxuICAgICAgICAgKi9cXG4gICAgICAgICosXFxuICAgICAgICAqOjpiZWZvcmUsXFxuICAgICAgICAqOjphZnRlciB7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICB9XFxuXFxuICAgICAgICA6aG9zdCB7XFxuICAgICAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4xNTtcXG4gICAgICAgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBhcnRpY2xlLFxcbiAgICAgICAgYXNpZGUsXFxuICAgICAgICBmaWdjYXB0aW9uLFxcbiAgICAgICAgZmlndXJlLFxcbiAgICAgICAgZm9vdGVyLFxcbiAgICAgICAgaGVhZGVyLFxcbiAgICAgICAgaGdyb3VwLFxcbiAgICAgICAgbWFpbixcXG4gICAgICAgIG5hdixcXG4gICAgICAgIHNlY3Rpb24ge1xcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIDpob3N0IHtcXG4gICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sXFxuICAgICAgICAgICAgJ0hlbHZldGljYSBOZXVlJywgQXJpYWwsICdOb3RvIFNhbnMnLCBzYW5zLXNlcmlmLFxcbiAgICAgICAgICAgICdBcHBsZSBDb2xvciBFbW9qaScsICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLFxcbiAgICAgICAgICAgICdOb3RvIENvbG9yIEVtb2ppJztcXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xcbiAgICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZm9udCk7XFxuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgICB9XFxuXFxuICAgICAgICA6aG9zdDpub3QoYnV0dG9uKSB7XFxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBbdGFiaW5kZXg9Jy0xJ106Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XFxuICAgICAgICAgIG91dGxpbmU6IDAgIWltcG9ydGFudDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGhyIHtcXG4gICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICAgIGhlaWdodDogMDtcXG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBoMSxcXG4gICAgICAgIGgyLFxcbiAgICAgICAgaDMsXFxuICAgICAgICBoNCxcXG4gICAgICAgIGg1LFxcbiAgICAgICAgaDYge1xcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBwIHtcXG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGFiYnJbdGl0bGVdLFxcbiAgICAgICAgYWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSB7XFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgICAgICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICBjdXJzb3I6IGhlbHA7XFxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XFxuICAgICAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lO1xcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBhZGRyZXNzIHtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIG9sLFxcbiAgICAgICAgdWwsXFxuICAgICAgICBkbCB7XFxuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XFxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBvbCBvbCxcXG4gICAgICAgIHVsIHVsLFxcbiAgICAgICAgb2wgdWwsXFxuICAgICAgICB1bCBvbCB7XFxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBkdCB7XFxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBkZCB7XFxuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcXG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBibG9ja3F1b3RlIHtcXG4gICAgICAgICAgbWFyZ2luOiAwIDAgMTZweDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGIsXFxuICAgICAgICBzdHJvbmcge1xcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZGVyO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgc21hbGwge1xcbiAgICAgICAgICBmb250LXNpemU6IDgwJTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHN1YixcXG4gICAgICAgIHN1cCB7XFxuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICAgICAgICAgZm9udC1zaXplOiA3NSU7XFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBzdWIge1xcbiAgICAgICAgICBib3R0b206IC0wLjI1ZW07XFxuICAgICAgICB9XFxuXFxuICAgICAgICBzdXAge1xcbiAgICAgICAgICB0b3A6IC0wLjVlbTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGEge1xcbiAgICAgICAgICBjb2xvcjogIzAwN2JmZjtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGE6aG92ZXIge1xcbiAgICAgICAgICBjb2xvcjogIzAwNTZiMztcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBhOm5vdChbaHJlZl0pIHtcXG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGE6bm90KFtocmVmXSk6aG92ZXIge1xcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgcHJlLFxcbiAgICAgICAgY29kZSxcXG4gICAgICAgIGtiZCxcXG4gICAgICAgIHNhbXAge1xcbiAgICAgICAgICBmb250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLFxcbiAgICAgICAgICAgICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XFxuICAgICAgICAgIGZvbnQtc2l6ZTogMWVtO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgcHJlIHtcXG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG4gICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgICAgICB9XFxuXFxuICAgICAgICBmaWd1cmUge1xcbiAgICAgICAgICBtYXJnaW46IDAgMCAxNnB4O1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgaW1nIHtcXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgc3ZnIHtcXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHRhYmxlIHtcXG4gICAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGNhcHRpb24ge1xcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcXG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XFxuICAgICAgICAgIGNvbG9yOiAjNmM3NTdkO1xcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHRoIHtcXG4gICAgICAgICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGxhYmVsIHtcXG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBidXR0b24ge1xcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICAgIG1hcmdpbjogMDtcXG4gICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcXG4gICAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYnV0dG9uOmZvY3VzIHtcXG4gICAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZDtcXG4gICAgICAgICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYnV0dG9uOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgaW5wdXQsXFxuICAgICAgICBidXR0b24sXFxuICAgICAgICBzZWxlY3QsXFxuICAgICAgICBvcHRncm91cCxcXG4gICAgICAgIHRleHRhcmVhIHtcXG4gICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcXG4gICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGJ1dHRvbixcXG4gICAgICAgIGlucHV0IHtcXG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBidXR0b24sXFxuICAgICAgICBzZWxlY3Qge1xcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHNlbGVjdCB7XFxuICAgICAgICAgIHdvcmQtd3JhcDogbm9ybWFsO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYnV0dG9uLFxcbiAgICAgICAgW3R5cGU9J2J1dHRvbiddLFxcbiAgICAgICAgW3R5cGU9J3Jlc2V0J10sXFxuICAgICAgICBbdHlwZT0nc3VibWl0J10ge1xcbiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGJ1dHRvbjpub3QoOmRpc2FibGVkKSxcXG4gICAgICAgIFt0eXBlPSdidXR0b24nXTpub3QoOmRpc2FibGVkKSxcXG4gICAgICAgIFt0eXBlPSdyZXNldCddOm5vdCg6ZGlzYWJsZWQpLFxcbiAgICAgICAgW3R5cGU9J3N1Ym1pdCddOm5vdCg6ZGlzYWJsZWQpIHtcXG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxcbiAgICAgICAgW3R5cGU9J2J1dHRvbiddOjotbW96LWZvY3VzLWlubmVyLFxcbiAgICAgICAgW3R5cGU9J3Jlc2V0J106Oi1tb3otZm9jdXMtaW5uZXIsXFxuICAgICAgICBbdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xcbiAgICAgICAgICBwYWRkaW5nOiAwO1xcbiAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBpbnB1dFt0eXBlPSdyYWRpbyddLFxcbiAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIHBhZGRpbmc6IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBpbnB1dFt0eXBlPSdkYXRlJ10sXFxuICAgICAgICBpbnB1dFt0eXBlPSd0aW1lJ10sXFxuICAgICAgICBpbnB1dFt0eXBlPSdkYXRldGltZS1sb2NhbCddLFxcbiAgICAgICAgaW5wdXRbdHlwZT0nbW9udGgnXSB7XFxuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbGlzdGJveDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHRleHRhcmVhIHtcXG4gICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XFxuICAgICAgICAgIHJlc2l6ZTogdmVydGljYWw7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBmaWVsZHNldCB7XFxuICAgICAgICAgIG1pbi13aWR0aDogMDtcXG4gICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgbWFyZ2luOiAwO1xcbiAgICAgICAgICBib3JkZXI6IDA7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBsZWdlbmQge1xcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XFxuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcXG4gICAgICAgICAgcGFkZGluZzogMDtcXG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7XFxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcXG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHByb2dyZXNzIHtcXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgW3R5cGU9J251bWJlciddOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxcbiAgICAgICAgW3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcXG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xcbiAgICAgICAgfVxcblxcbiAgICAgICAgW3R5cGU9J3NlYXJjaCddIHtcXG4gICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XFxuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XFxuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xcbiAgICAgICAgICBmb250OiBpbmhlcml0O1xcbiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIG91dHB1dCB7XFxuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHN1bW1hcnkge1xcbiAgICAgICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XFxuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIHRlbXBsYXRlIHtcXG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcXG4gICAgICAgIH1cXG5cXG4gICAgICAgIFtoaWRkZW5dIHtcXG4gICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgfVxcbiAgICAgIFwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBhZj1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIGFwKCl7cmV0dXJuKDAseS5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZWkoYWYoKSl9KX1mdW5jdGlvbiBhaCgpe3ZhciBlLG4sdD0oZT1bJ1xcbiAgICAgICAgOmhvc3Qge1xcbiAgICAgICAgICAvKiBcXG4gICAgICAgICAgICogQ0FVVElPTjogVEhJUyBJUyBBIFdPUktBUk9VTkQhXFxuICAgICAgICAgICAqIEZvciBub3csIHdlIHVzZSBAYmFiZWwvY29kZS1mcmFtZSB0byBwYXJzZSB0aGUgY29kZSBmcmFtZSB3aGljaCBkb2VzIG5vdCBzdXBwb3J0IG9wdGlvbiB0byBjaGFuZ2UgdGhlIGNvbG9yLlxcbiAgICAgICAgICAgKiB4LXJlZjogaHR0cHM6Ly9naXRodWIuY29tL2JhYmVsL2JhYmVsL2Jsb2IvZWZhNTIzMjRmZjgzNWI3OTRjNDgwODBmMTQ4NzdiNmNhZjMyY2QxNS9wYWNrYWdlcy9iYWJlbC1jb2RlLWZyYW1lL3NyYy9kZWZzLnRzI0w0MC1MNTRcXG4gICAgICAgICAgICogU28sIHdlIGRvIGEgd29ya2Fyb3VuZCBtYXBwaW5nIHRvIGNoYW5nZSB0aGUgY29sb3IgbWF0Y2hpbmcgdGhlIHRoZW1lLlxcbiAgICAgICAgICAgKlxcbiAgICAgICAgICAgKiBGb3IgZXhhbXBsZSwgaW4gQGJhYmVsL2NvZGUtZnJhbWUsIHRoZSBcImtleXdvcmRcIiBpcyBtYXBwZWQgdG8gQU5TSSBcImN5YW5cIi5cXG4gICAgICAgICAgICogV2Ugd2FudCB0aGUgXCJrZXl3b3JkXCIgdG8gdXNlIHRoZSBcInN5bnRheC1rZXl3b3JkXCIgY29sb3IgaW4gdGhlIHRoZW1lLlxcbiAgICAgICAgICAgKiBTbywgd2UgbWFwIHRoZSBcImN5YW5cIiB0byB0aGUgXCJzeW50YXgta2V5d29yZFwiIGluIHRoZSB0aGVtZS5cXG4gICAgICAgICAgICovXFxuICAgICAgICAgIC8qIGN5YW46IGtleXdvcmQgKi9cXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWN5YW46IHZhcigtLWNvbG9yLXN5bnRheC1rZXl3b3JkKTtcXG4gICAgICAgICAgLyogeWVsbG93OiBjYXBpdGFsaXplZCwganN4SWRlbnRpZmllciwgcHVuY3R1YXRpb24gKi9cXG4gICAgICAgICAgLS1jb2xvci1hbnNpLXllbGxvdzogdmFyKC0tY29sb3Itc3ludGF4LWZ1bmN0aW9uKTtcXG4gICAgICAgICAgLyogbWFnZW50YTogbnVtYmVyLCByZWdleCAqL1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktbWFnZW50YTogdmFyKC0tY29sb3Itc3ludGF4LWtleXdvcmQpO1xcbiAgICAgICAgICAvKiBncmVlbjogc3RyaW5nICovXFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1ncmVlbjogdmFyKC0tY29sb3Itc3ludGF4LXN0cmluZyk7XFxuICAgICAgICAgIC8qIGdyYXkgKGJyaWdodCBibGFjayk6IGNvbW1lbnQsIGd1dHRlciAqL1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsYWNrOiB2YXIoLS1jb2xvci1zeW50YXgtY29tbWVudCk7XFxuXFxuICAgICAgICAgIC8qIEFuc2kgLSBUZW1wb3JhcnkgKi9cXG4gICAgICAgICAgLS1jb2xvci1hbnNpLXNlbGVjdGlvbjogdmFyKC0tY29sb3ItZ3JheS1hbHBoYS0zMDApO1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYmc6IHZhcigtLWNvbG9yLWJhY2tncm91bmQtMjAwKTtcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWZnOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcblxcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktd2hpdGU6IHZhcigtLWNvbG9yLWdyYXktNzAwKTtcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJsYWNrOiB2YXIoLS1jb2xvci1ncmF5LTIwMCk7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1ibHVlOiB2YXIoLS1jb2xvci1ibHVlLTcwMCk7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1yZWQ6IHZhcigtLWNvbG9yLXJlZC03MDApO1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlOiB2YXIoLS1jb2xvci1ncmF5LTEwMDApO1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsdWU6IHZhcigtLWNvbG9yLWJsdWUtODAwKTtcXG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1jeWFuOiB2YXIoLS1jb2xvci1ibHVlLTgwMCk7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtZ3JlZW46IHZhcigtLWNvbG9yLWdyZWVuLTgwMCk7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtbWFnZW50YTogdmFyKC0tY29sb3ItYmx1ZS04MDApO1xcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LXJlZDogdmFyKC0tY29sb3ItcmVkLTgwMCk7XFxuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQteWVsbG93OiB2YXIoLS1jb2xvci1hbWJlci05MDApO1xcblxcbiAgICAgICAgICAvKiBCYWNrZ3JvdW5kIExpZ2h0ICovXFxuICAgICAgICAgIC0tY29sb3ItYmFja2dyb3VuZC0xMDA6ICNmZmZmZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmFja2dyb3VuZC0yMDA6ICNmYWZhZmE7XFxuXFxuICAgICAgICAgIC8qIFN5bnRheCBMaWdodCAqL1xcbiAgICAgICAgICAtLWNvbG9yLXN5bnRheC1jb21tZW50OiAjNTQ1NDU0O1xcbiAgICAgICAgICAtLWNvbG9yLXN5bnRheC1jb25zdGFudDogIzE3MTcxNztcXG4gICAgICAgICAgLS1jb2xvci1zeW50YXgtZnVuY3Rpb246ICMwMDU0YWQ7XFxuICAgICAgICAgIC0tY29sb3Itc3ludGF4LWtleXdvcmQ6ICNhNTE4NTA7XFxuICAgICAgICAgIC0tY29sb3Itc3ludGF4LWxpbms6ICMwNjYwNTY7XFxuICAgICAgICAgIC0tY29sb3Itc3ludGF4LXBhcmFtZXRlcjogIzhmM2UwMDtcXG4gICAgICAgICAgLS1jb2xvci1zeW50YXgtcHVuY3R1YXRpb246ICMxNzE3MTc7XFxuICAgICAgICAgIC0tY29sb3Itc3ludGF4LXN0cmluZzogIzAzNjE1NztcXG4gICAgICAgICAgLS1jb2xvci1zeW50YXgtc3RyaW5nLWV4cHJlc3Npb246ICMwNjYwNTY7XFxuXFxuICAgICAgICAgIC8qIEdyYXkgU2NhbGUgTGlnaHQgKi9cXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTEwMDogI2YyZjJmMjtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTIwMDogI2ViZWJlYjtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTMwMDogI2U2ZTZlNjtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTQwMDogI2VhZWFlYTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTUwMDogI2M5YzljOTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTYwMDogI2E4YThhODtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTcwMDogIzhmOGY4ZjtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTgwMDogIzdkN2Q3ZDtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTkwMDogIzY2NjY2NjtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LTEwMDA6ICMxNzE3MTc7XFxuXFxuICAgICAgICAgIC8qIEdyYXkgQWxwaGEgU2NhbGUgTGlnaHQgKi9cXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTEwMDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTIwMDogcmdiYSgwLCAwLCAwLCAwLjA4MSk7XFxuICAgICAgICAgIC0tY29sb3ItZ3JheS1hbHBoYS0zMDA6IHJnYmEoMCwgMCwgMCwgMC4xKTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTQwMDogcmdiYSgwLCAwLCAwLCAwLjA4KTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTUwMDogcmdiYSgwLCAwLCAwLCAwLjIxKTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTYwMDogcmdiYSgwLCAwLCAwLCAwLjM0KTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTcwMDogcmdiYSgwLCAwLCAwLCAwLjQ0KTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTgwMDogcmdiYSgwLCAwLCAwLCAwLjUxKTtcXG4gICAgICAgICAgLS1jb2xvci1ncmF5LWFscGhhLTkwMDogcmdiYSgwLCAwLCAwLCAwLjYwNSk7XFxuICAgICAgICAgIC0tY29sb3ItZ3JheS1hbHBoYS0xMDAwOiByZ2JhKDAsIDAsIDAsIDAuOTEpO1xcblxcbiAgICAgICAgICAvKiBCbHVlIFNjYWxlIExpZ2h0ICovXFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS0xMDA6ICNmMGY3ZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS0yMDA6ICNlZGY2ZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS0zMDA6ICNlMWYwZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS00MDA6ICNjZGU3ZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS01MDA6ICM5OWNlZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS02MDA6ICM1MmFlZmY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS03MDA6ICMwMDcwZjM7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS04MDA6ICMwMDYwZDE7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS05MDA6ICMwMDY3ZDY7XFxuICAgICAgICAgIC0tY29sb3ItYmx1ZS0xMDAwOiAjMDAyNWFkO1xcblxcbiAgICAgICAgICAvKiBSZWQgU2NhbGUgTGlnaHQgKi9cXG4gICAgICAgICAgLS1jb2xvci1yZWQtMTAwOiAjZmZmMGYwO1xcbiAgICAgICAgICAtLWNvbG9yLXJlZC0yMDA6ICNmZmViZWI7XFxuICAgICAgICAgIC0tY29sb3ItcmVkLTMwMDogI2ZmZTVlNTtcXG4gICAgICAgICAgLS1jb2xvci1yZWQtNDAwOiAjZmRkOGQ4O1xcbiAgICAgICAgICAtLWNvbG9yLXJlZC01MDA6ICNmOGJhYmE7XFxuICAgICAgICAgIC0tY29sb3ItcmVkLTYwMDogI2Y4NzI3NDtcXG4gICAgICAgICAgLS1jb2xvci1yZWQtNzAwOiAjZTU0ODRkO1xcbiAgICAgICAgICAtLWNvbG9yLXJlZC04MDA6ICNkYTMwMzY7XFxuICAgICAgICAgIC0tY29sb3ItcmVkLTkwMDogI2NhMmEzMDtcXG4gICAgICAgICAgLS1jb2xvci1yZWQtMTAwMDogIzM4MTMxNjtcXG5cXG4gICAgICAgICAgLyogQW1iZXIgU2NhbGUgTGlnaHQgKi9cXG4gICAgICAgICAgLS1jb2xvci1hbWJlci0xMDA6ICNmZmY2ZTU7XFxuICAgICAgICAgIC0tY29sb3ItYW1iZXItMjAwOiAjZmZmNGQ1O1xcbiAgICAgICAgICAtLWNvbG9yLWFtYmVyLTMwMDogI2ZlZjBjZDtcXG4gICAgICAgICAgLS1jb2xvci1hbWJlci00MDA6ICNmZmRkYmY7XFxuICAgICAgICAgIC0tY29sb3ItYW1iZXItNTAwOiAjZmZjOTZiO1xcbiAgICAgICAgICAtLWNvbG9yLWFtYmVyLTYwMDogI2Y1YjA0NztcXG4gICAgICAgICAgLS1jb2xvci1hbWJlci03MDA6ICNmZmIyMjQ7XFxuICAgICAgICAgIC0tY29sb3ItYW1iZXItODAwOiAjZmY5OTBhO1xcbiAgICAgICAgICAtLWNvbG9yLWFtYmVyLTkwMDogI2EzNTIwMDtcXG4gICAgICAgICAgLS1jb2xvci1hbWJlci0xMDAwOiAjNGUyMDA5O1xcblxcbiAgICAgICAgICAvKiBHcmVlbiBTY2FsZSBMaWdodCAqL1xcbiAgICAgICAgICAtLWNvbG9yLWdyZWVuLTEwMDogI2VmZmJlZjtcXG4gICAgICAgICAgLS1jb2xvci1ncmVlbi0yMDA6ICNlYWZhZWE7XFxuICAgICAgICAgIC0tY29sb3ItZ3JlZW4tMzAwOiAjZGNmNmRjO1xcbiAgICAgICAgICAtLWNvbG9yLWdyZWVuLTQwMDogI2M4ZjFjOTtcXG4gICAgICAgICAgLS1jb2xvci1ncmVlbi01MDA6ICM5OWU1OWY7XFxuICAgICAgICAgIC0tY29sb3ItZ3JlZW4tNjAwOiAjNmNkYTc2O1xcbiAgICAgICAgICAtLWNvbG9yLWdyZWVuLTcwMDogIzQ2YTc1ODtcXG4gICAgICAgICAgLS1jb2xvci1ncmVlbi04MDA6ICMzODhlNGE7XFxuICAgICAgICAgIC0tY29sb3ItZ3JlZW4tOTAwOiAjMjk3YzNiO1xcbiAgICAgICAgICAtLWNvbG9yLWdyZWVuLTEwMDA6ICMxODMxMWU7XFxuXFxuICAgICAgICAgIC8qIFR1cmJvcGFjayBMaWdodCAtIFRlbXBvcmFyeSAqL1xcbiAgICAgICAgICAtLWNvbG9yLXR1cmJvcGFjay10ZXh0LXJlZDogI2ZmMWU1NjtcXG4gICAgICAgICAgLS1jb2xvci10dXJib3BhY2stdGV4dC1ibHVlOiAjMDA5NmZmO1xcbiAgICAgICAgICAtLWNvbG9yLXR1cmJvcGFjay1ib3JkZXItcmVkOiAjZjBhZGJlO1xcbiAgICAgICAgICAtLWNvbG9yLXR1cmJvcGFjay1ib3JkZXItYmx1ZTogI2FkY2NlYTtcXG4gICAgICAgICAgLS1jb2xvci10dXJib3BhY2stYmFja2dyb3VuZC1yZWQ6ICNmZmY3Zjk7XFxuICAgICAgICAgIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtYmx1ZTogI2Y2ZmJmZjtcXG4gICAgICAgIH1cXG4gICAgICAnXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBhaD1mdW5jdGlvbigpe3JldHVybiB0fSx0fWZ1bmN0aW9uIGFnKCl7cmV0dXJuKDAseS5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZWkoYWgoKSl9KX1mdW5jdGlvbiBhbShlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9ZnVuY3Rpb24gYXYoZSxuKXtyZXR1cm4gbj1udWxsIT1uP246e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KSxlfWZ1bmN0aW9uIGFiKGUpe3ZhciBuPWUuc3RhdGUsdD1lLmRpc3BhdGNoLHI9ZS5nZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlscyxvPWUucnVudGltZUVycm9ycyxhPWUuZXJyb3JDb3VudCxpPSEhcHJvY2Vzcy5lbnYuVFVSQk9QQUNLLGw9KDAsdEouTikobi5pc0Vycm9yT3ZlcmxheU9wZW4se2V4aXREZWxheToyMDB9KSxzPWwubW91bnRlZCxjPXtyZW5kZXJlZDpsLnJlbmRlcmVkLHRyYW5zaXRpb25EdXJhdGlvbk1zOjIwMCxpc1R1cmJvcGFjazppLHZlcnNpb25JbmZvOm4udmVyc2lvbkluZm8sZXJyb3JDb3VudDphfTtyZXR1cm4gbnVsbCE9PW4uYnVpbGRFcnJvcj8oMCx5LmpzeCkodHIsYXYoYW0oe30sYykse21lc3NhZ2U6bi5idWlsZEVycm9yLHJlbmRlcmVkOiEwfSkpOm8ubGVuZ3RoJiZzPygwLHkuanN4KSh0VCxhdihhbSh7fSxjKSx7ZGVidWdJbmZvOm4uZGVidWdJbmZvLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOnIscnVudGltZUVycm9yczpvLG9uQ2xvc2U6ZnVuY3Rpb24oKXt0KHt0eXBlOkl9KX19KSk6KDAseS5qc3gpKHguU3VzcGVuc2Use30pfWZ1bmN0aW9uIGF5KGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBheChlLG4sdCl7cmV0dXJuIG4gaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHt2YWx1ZTp0LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVtuXT10LGV9ZnVuY3Rpb24gYXcoZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIHQ9bnVsbCE9YXJndW1lbnRzW25dP2FyZ3VtZW50c1tuXTp7fSxyPU9iamVjdC5rZXlzKHQpO1wiZnVuY3Rpb25cIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJihyPXIuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5mb3JFYWNoKGZ1bmN0aW9uKG4pe2F4KGUsbix0W25dKX0pfXJldHVybiBlfWZ1bmN0aW9uIGFqKGUsbil7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLCFufHxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShlLG4pfHxmdW5jdGlvbihlLG4pe2lmKGUpe2lmKFwic3RyaW5nXCI9PXR5cGVvZiBlKXJldHVybiBheShlLG4pO3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtpZihcIk9iamVjdFwiPT09dCYmZS5jb25zdHJ1Y3RvciYmKHQ9ZS5jb25zdHJ1Y3Rvci5uYW1lKSxcIk1hcFwiPT09dHx8XCJTZXRcIj09PXQpcmV0dXJuIEFycmF5LmZyb20odCk7aWYoXCJBcmd1bWVudHNcIj09PXR8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHQpKXJldHVybiBheShlLG4pfX0oZSxuKXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKX12YXIgYWs9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc3RhdGUuYnVpbGRFcnJvcj8oMCx5LmpzeCkoYU8sYXcoe30sZSkpOigwLHkuanN4KShhQSxhdyh7fSxlKSl9LGFBPWZ1bmN0aW9uKGUpe3ZhciBuLHQscixvPWUuY2hpbGRyZW4sYT1lLnN0YXRlLGk9ZS5pc0FwcERpcixsPWUuZGlzcGF0Y2gscz1hLmVycm9ycyxjPWFqKCgwLHgudXNlU3RhdGUpKHt9KSwyKSx1PWNbMF0sZD1jWzFdLGY9YWooKDAseC51c2VNZW1vKShmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxuPW51bGwsdD0wO3Q8cy5sZW5ndGg7Kyt0KXt2YXIgcj1zW3RdLG89ci5pZDtpZihvIGluIHUpe2UucHVzaCh1W29dKTtjb250aW51ZX1uPXI7YnJlYWt9cmV0dXJuW2Usbl19LFtzLHVdKSwyKSxwPWZbMF0saD1mWzFdO3JldHVybiB0PShuPXtlcnJvcnM6cyxkaXNwYXRjaDpsfSkuZXJyb3JzLHI9bi5kaXNwYXRjaCwoMCx4LnVzZUVmZmVjdCkoZnVuY3Rpb24oKXt2YXIgZSxuLG89KG51bGw9PShlPXByb2Nlc3MuZW52Ll9fTkVYVF9CVU5ETEVSKT92b2lkIDA6ZS50b1VwcGVyQ2FzZSgpKT09PVwiVFVSQk9QQUNLXCImJnByb2Nlc3MuZW52Ll9fTkVYVF9CVU5ETEVSX0hBU19QRVJTSVNURU5UX0NBQ0hFLGE9bnVsbD09KG49dFswXSk/dm9pZCAwOm4uZXJyb3I7aWYobyYmYSl7dmFyIGk9XCJfX25leHRfZXJyb3Jfb3ZlcmxheTpcIi5jb25jYXQod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLFwiOlwiKS5jb25jYXQoYS5tZXNzYWdlKTtyKHt0eXBlOkssc2hvd1Jlc3RhcnRTZXJ2ZXJCdXR0b246XCIxXCI9PT1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGkpfSk7dmFyIGw9ZnVuY3Rpb24oKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKGksXCIxXCIpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJiZWZvcmV1bmxvYWRcIixsKSxmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYmVmb3JldW5sb2FkXCIsbCl9fXIoe3R5cGU6SyxzaG93UmVzdGFydFNlcnZlckJ1dHRvbjohMX0pfSxbdCxyXSksKDAseC51c2VFZmZlY3QpKGZ1bmN0aW9uKCl7aWYobnVsbCE9aCl7dmFyIGUsbix0PSEwO3JldHVybihlPWgsbj1pLHRiKGZ1bmN0aW9uKCl7dmFyIHQscixvLGEsaTtyZXR1cm4gdHcodGhpcyxmdW5jdGlvbihsKXtzd2l0Y2gobC5sYWJlbCl7Y2FzZSAwOnZhciBzLGM7aWYodD17aWQ6ZS5pZCxydW50aW1lOiEwLGVycm9yOmUuZXJyb3IsdHlwZTplLnR5cGV9LCEoXCJ1c2VcImluIHgpKXJldHVyblszLDFdO3JldHVybiByPXR4KHR5KHt9LHQpLHtmcmFtZXM6KGM9KHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGIoZnVuY3Rpb24oKXtyZXR1cm4gdHcodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LGVDKGUuZnJhbWVzLHRtKGUuZXJyb3IpLG4pXTtjYXNlIDE6cmV0dXJuWzIsdC5zZW50KCldfX0pfSkoKX0pKCksZnVuY3Rpb24oKXtyZXR1cm4gY30pfSksdm9pZCAwIT09ZS5jb21wb25lbnRTdGFja0ZyYW1lcyYmKHIuY29tcG9uZW50U3RhY2tGcmFtZXM9ZS5jb21wb25lbnRTdGFja0ZyYW1lcyksWzIscl07Y2FzZSAxOnJldHVybiBhPVt0eSh7fSx0KV0saT17fSxbNCxlQyhlLmZyYW1lcyx0bShlLmVycm9yKSxuKV07Y2FzZSAyOnJldHVybiBvPXR4LmFwcGx5KHZvaWQgMCxhLmNvbmNhdChbKGkuZnJhbWVzPWwuc2VudCgpLGkpXSkpLHZvaWQgMCE9PWUuY29tcG9uZW50U3RhY2tGcmFtZXMmJihvLmNvbXBvbmVudFN0YWNrRnJhbWVzPWUuY29tcG9uZW50U3RhY2tGcmFtZXMpLFsyLG9dO2Nhc2UgMzpyZXR1cm5bMl19fSl9KSgpKS50aGVuKGZ1bmN0aW9uKGUpe3QmJmQoZnVuY3Rpb24obil7dmFyIHQscjtyZXR1cm4gdD1hdyh7fSxuKSxyPW51bGwhPShyPWF4KHt9LGUuaWQsZSkpP3I6e30sT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6KGZ1bmN0aW9uKGUsbil7dmFyIHQ9T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0LnB1c2guYXBwbHkodCxyKX1yZXR1cm4gdH0pKE9iamVjdChyKSkuZm9yRWFjaChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixlKSl9KSx0fSl9KSxmdW5jdGlvbigpe3Q9ITF9fX0sW2gsaV0pLG8oe3J1bnRpbWVFcnJvcnM6cCx0b3RhbEVycm9yQ291bnQ6cy5sZW5ndGh9KX0sYU89ZnVuY3Rpb24oZSl7cmV0dXJuKDAsZS5jaGlsZHJlbikoe3J1bnRpbWVFcnJvcnM6W10sdG90YWxFcnJvckNvdW50OjF9KX07ZnVuY3Rpb24gYUMoKXt2YXIgZSxuLHQ9KGU9W1wiXFxuICAgICAgOmhvc3QoLmRhcmspIHtcXG4gICAgICAgIFwiLFwiXFxuICAgICAgICBcIixcIlxcbiAgICAgIH1cXG5cXG4gICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XFxuICAgICAgICA6aG9zdCg6bm90KC5saWdodCkpIHtcXG4gICAgICAgICAgXCIsXCJcXG4gICAgICAgICAgXCIsXCJcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgIFwiXSxufHwobj1lLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShuKX19KSkpO3JldHVybiBhQz1mdW5jdGlvbigpe3JldHVybiB0fSx0fXZhciBhUz1cIlxcbiAgLyogQmFja2dyb3VuZCBEYXJrICovXFxuICAtLWNvbG9yLWJhY2tncm91bmQtMTAwOiAjMGEwYTBhO1xcbiAgLS1jb2xvci1iYWNrZ3JvdW5kLTIwMDogIzAwMDAwMDtcXG5cXG4gIC8qIFN5bnRheCBEYXJrICovXFxuICAtLWNvbG9yLXN5bnRheC1jb21tZW50OiAjYTBhMGEwO1xcbiAgLS1jb2xvci1zeW50YXgtY29uc3RhbnQ6ICNlZGVkZWQ7XFxuICAtLWNvbG9yLXN5bnRheC1mdW5jdGlvbjogIzUyYTlmZjtcXG4gIC0tY29sb3Itc3ludGF4LWtleXdvcmQ6ICNmNzZlOTk7XFxuICAtLWNvbG9yLXN5bnRheC1saW5rOiAjMGFjNWIyO1xcbiAgLS1jb2xvci1zeW50YXgtcGFyYW1ldGVyOiAjZjFhMTBkO1xcbiAgLS1jb2xvci1zeW50YXgtcHVuY3R1YXRpb246ICNlZGVkZWQ7XFxuICAtLWNvbG9yLXN5bnRheC1zdHJpbmc6ICMwYWM1YjI7XFxuICAtLWNvbG9yLXN5bnRheC1zdHJpbmctZXhwcmVzc2lvbjogIzBhYzViMjtcXG5cXG4gIC8qIEdyYXkgU2NhbGUgRGFyayAqL1xcbiAgLS1jb2xvci1ncmF5LTEwMDogIzFhMWExYTtcXG4gIC0tY29sb3ItZ3JheS0yMDA6ICMxZjFmMWY7XFxuICAtLWNvbG9yLWdyYXktMzAwOiAjMjkyOTI5O1xcbiAgLS1jb2xvci1ncmF5LTQwMDogIzJlMmUyZTtcXG4gIC0tY29sb3ItZ3JheS01MDA6ICM0NTQ1NDU7XFxuICAtLWNvbG9yLWdyYXktNjAwOiAjODc4Nzg3O1xcbiAgLS1jb2xvci1ncmF5LTcwMDogIzhmOGY4ZjtcXG4gIC0tY29sb3ItZ3JheS04MDA6ICM3ZDdkN2Q7XFxuICAtLWNvbG9yLWdyYXktOTAwOiAjYTBhMGEwO1xcbiAgLS1jb2xvci1ncmF5LTEwMDA6ICNlZGVkZWQ7XFxuXFxuICAvKiBHcmF5IEFscGhhIFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0xMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNjYpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTIwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4Nyk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtMzAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTI1KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS00MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNDUpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTUwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIzOSk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtNjAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTA2KTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS03MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NCk7XFxuICAtLWNvbG9yLWdyYXktYWxwaGEtODAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDcpO1xcbiAgLS1jb2xvci1ncmF5LWFscGhhLTkwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYxKTtcXG4gIC0tY29sb3ItZ3JheS1hbHBoYS0xMDAwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIzKTtcXG5cXG4gIC8qIEJsdWUgU2NhbGUgRGFyayAqL1xcbiAgLS1jb2xvci1ibHVlLTEwMDogIzBmMWIyZDtcXG4gIC0tY29sb3ItYmx1ZS0yMDA6ICMxMDI0M2U7XFxuICAtLWNvbG9yLWJsdWUtMzAwOiAjMGYzMDU4O1xcbiAgLS1jb2xvci1ibHVlLTQwMDogIzBkMzg2ODtcXG4gIC0tY29sb3ItYmx1ZS01MDA6ICMwYTQ0ODE7XFxuICAtLWNvbG9yLWJsdWUtNjAwOiAjMDA5MWZmO1xcbiAgLS1jb2xvci1ibHVlLTcwMDogIzAwNzBmMztcXG4gIC0tY29sb3ItYmx1ZS04MDA6ICMwMDYwZDE7XFxuICAtLWNvbG9yLWJsdWUtOTAwOiAjNTJhOWZmO1xcbiAgLS1jb2xvci1ibHVlLTEwMDA6ICNlYWY2ZmY7XFxuXFxuICAvKiBSZWQgU2NhbGUgRGFyayAqL1xcbiAgLS1jb2xvci1yZWQtMTAwOiAjMmExMzE0O1xcbiAgLS1jb2xvci1yZWQtMjAwOiAjM2QxNzE5O1xcbiAgLS1jb2xvci1yZWQtMzAwOiAjNTUxYTFlO1xcbiAgLS1jb2xvci1yZWQtNDAwOiAjNjcxZTIyO1xcbiAgLS1jb2xvci1yZWQtNTAwOiAjODIyMDI1O1xcbiAgLS1jb2xvci1yZWQtNjAwOiAjZTU0ODRkO1xcbiAgLS1jb2xvci1yZWQtNzAwOiAjZTU0ODRkO1xcbiAgLS1jb2xvci1yZWQtODAwOiAjZGEzMDM2O1xcbiAgLS1jb2xvci1yZWQtOTAwOiAjZmY2MzY5O1xcbiAgLS1jb2xvci1yZWQtMTAwMDogI2ZmZWNlZTtcXG5cXG4gIC8qIEFtYmVyIFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItYW1iZXItMTAwOiAjMjcxNzAwO1xcbiAgLS1jb2xvci1hbWJlci0yMDA6ICMzNDFjMDA7XFxuICAtLWNvbG9yLWFtYmVyLTMwMDogIzRhMjkwMDtcXG4gIC0tY29sb3ItYW1iZXItNDAwOiAjNTczMzAwO1xcbiAgLS1jb2xvci1hbWJlci01MDA6ICM2OTNmMDU7XFxuICAtLWNvbG9yLWFtYmVyLTYwMDogI2U3OWMxMztcXG4gIC0tY29sb3ItYW1iZXItNzAwOiAjZmZiMjI0O1xcbiAgLS1jb2xvci1hbWJlci04MDA6ICNmZjk5MGE7XFxuICAtLWNvbG9yLWFtYmVyLTkwMDogI2YxYTEwZDtcXG4gIC0tY29sb3ItYW1iZXItMTAwMDogI2ZlZjNkZDtcXG5cXG4gIC8qIEdyZWVuIFNjYWxlIERhcmsgKi9cXG4gIC0tY29sb3ItZ3JlZW4tMTAwOiAjMGIyMjExO1xcbiAgLS1jb2xvci1ncmVlbi0yMDA6ICMwZjJjMTc7XFxuICAtLWNvbG9yLWdyZWVuLTMwMDogIzExMzUxYjtcXG4gIC0tY29sb3ItZ3JlZW4tNDAwOiAjMGM0NjFiO1xcbiAgLS1jb2xvci1ncmVlbi01MDA6ICMxMjY0Mjc7XFxuICAtLWNvbG9yLWdyZWVuLTYwMDogIzFhOTMzODtcXG4gIC0tY29sb3ItZ3JlZW4tNzAwOiAjNDZhNzU4O1xcbiAgLS1jb2xvci1ncmVlbi04MDA6ICMzODhlNGE7XFxuICAtLWNvbG9yLWdyZWVuLTkwMDogIzYzYzE3NDtcXG4gIC0tY29sb3ItZ3JlZW4tMTAwMDogI2U1ZmJlYjtcXG5cXG4gIC8qIFR1cmJvcGFjayBEYXJrIC0gVGVtcG9yYXJ5ICovXFxuICAtLWNvbG9yLXR1cmJvcGFjay10ZXh0LXJlZDogI2ZmNmQ5MjtcXG4gIC0tY29sb3ItdHVyYm9wYWNrLXRleHQtYmx1ZTogIzQ1YjJmZjtcXG4gIC0tY29sb3ItdHVyYm9wYWNrLWJvcmRlci1yZWQ6ICM2ZTI5M2I7XFxuICAtLWNvbG9yLXR1cmJvcGFjay1ib3JkZXItYmx1ZTogIzI4NGY4MDtcXG4gIC0tY29sb3ItdHVyYm9wYWNrLWJhY2tncm91bmQtcmVkOiAjMjUwZDEyO1xcbiAgLS1jb2xvci10dXJib3BhY2stYmFja2dyb3VuZC1ibHVlOiAjMGExNzIzO1xcblwiLGFFPVwiXFxuICAtLWNvbG9yLWZvbnQ6IHdoaXRlO1xcbiAgLS1jb2xvci1iYWNrZHJvcDogcmdiYSgwLCAwLCAwLCAwLjgpO1xcbiAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ1KTtcXG5cXG4gIC0tY29sb3ItdGl0bGUtY29sb3I6ICNmYWZhZmE7XFxuICAtLWNvbG9yLXN0YWNrLW5vdGVzOiAjYTlhOWE5O1xcblwiO2Z1bmN0aW9uIGFfKCl7cmV0dXJuKDAseS5qc3gpKFwic3R5bGVcIix7Y2hpbGRyZW46ZWkoYUMoKSxhRSxhUyxhRSxhUyl9KX1mdW5jdGlvbiBhUChlLG4peyhudWxsPT1ufHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpO2Zvcih2YXIgdD0wLHI9QXJyYXkobik7dDxuO3QrKylyW3RdPWVbdF07cmV0dXJuIHJ9ZnVuY3Rpb24gYXooZSxuKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gZX0oZSl8fGZ1bmN0aW9uKGUsbil7dmFyIHQscixvPW51bGw9PWU/bnVsbDpcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbXCJAQGl0ZXJhdG9yXCJdO2lmKG51bGwhPW8pe3ZhciBhPVtdLGk9ITAsbD0hMTt0cnl7Zm9yKG89by5jYWxsKGUpOyEoaT0odD1vLm5leHQoKSkuZG9uZSkmJihhLnB1c2godC52YWx1ZSksIW58fGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KGUsbil8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGFQKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIGFQKGUsbil9fShlLG4pfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIGFMKGUpe3ZhciBuLHQscixvPWUuc3RhdGUsYT1lLmRpc3BhdGNoLGk9ZS5nZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlscyxsPWF6KCh0PShuPXJ0KCgwLHgudXNlU3RhdGUpKFwidW5kZWZpbmVkXCIhPXR5cGVvZiBsb2NhbFN0b3JhZ2UmJmxvY2FsU3RvcmFnZS5nZXRJdGVtKEopP051bWJlcihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShKKSk6Uy5NZWRpdW0pLDIpKVswXSxyPW5bMV0sW3QsZnVuY3Rpb24oZSl7cihlKSxsb2NhbFN0b3JhZ2Uuc2V0SXRlbShKLFN0cmluZyhlKSl9XSksMikscz1sWzBdLGM9bFsxXSx1PWF6KCgwLHgudXNlU3RhdGUpKCExKSwyKSxkPXVbMF0sZj11WzFdLHA9bnVsbCE9PW8uYnVpbGRFcnJvcjtyZXR1cm4gcHJvY2Vzcy5lbnYuX19ORVhUX0RFVlRPT0xfTkVXX1BBTkVMX1VJJiZwIT09ZCYmKHAmJihhKHt0eXBlOld9KSxhKHt0eXBlOk19KSksZihwKSksKDAseS5qc3hzKShlZCx7Y2hpbGRyZW46WygwLHkuanN4KShhcCx7fSksKDAseS5qc3gpKGVwLHtzY2FsZTpwcm9jZXNzLmVudi5fX05FWFRfREVWVE9PTF9ORVdfUEFORUxfVUk/by5zY2FsZTpzfSksKDAseS5qc3gpKGFnLHt9KSwoMCx5LmpzeCkoYWQse30pLCgwLHkuanN4KShhXyx7fSksKDAseS5qc3gpKGFrLHtzdGF0ZTpvLGRpc3BhdGNoOmEsaXNBcHBEaXI6ITAsY2hpbGRyZW46ZnVuY3Rpb24oZSl7dmFyIG49ZS5ydW50aW1lRXJyb3JzLHQ9ZS50b3RhbEVycm9yQ291bnQ7cmV0dXJuKDAseS5qc3gpKHkuRnJhZ21lbnQse2NoaWxkcmVuOm8uc2hvd0luZGljYXRvciYmKHByb2Nlc3MuZW52Ll9fTkVYVF9ERVZUT09MX05FV19QQU5FTF9VST8oMCx5LmpzeHMpKHkuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCx5LmpzeCkob0ose3N0YXRlOm8sZGlzcGF0Y2g6YSxlcnJvckNvdW50OnQsaXNCdWlsZEVycm9yOnB9KSwoby5pc0RldlRvb2xzUGFuZWxPcGVufHxvLmlzRXJyb3JPdmVybGF5T3BlbikmJigwLHkuanN4KShhcyx7c3RhdGU6byxkaXNwYXRjaDphLGlzc3VlQ291bnQ6dCxydW50aW1lRXJyb3JzOm4sZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6aX0pXX0pOigwLHkuanN4cykoeS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHkuanN4KShyVSx7c2NhbGU6cyxzZXRTY2FsZTpjLHN0YXRlOm8sZGlzcGF0Y2g6YSxlcnJvckNvdW50OnQsaXNCdWlsZEVycm9yOnB9KSwoMCx5LmpzeCkoYWIse3N0YXRlOm8sZGlzcGF0Y2g6YSxnZXRTcXVhc2hlZEh5ZHJhdGlvbkVycm9yRGV0YWlsczppLHJ1bnRpbWVFcnJvcnM6bixlcnJvckNvdW50OnR9KV19KSl9KX19KV19KX12YXIgYVQ9X193ZWJwYWNrX3JlcXVpcmVfXyhcIi4vc3JjL25leHQtZGV2dG9vbHMvZGV2LW92ZXJsYXkvc2VnbWVudC1leHBsb3Jlci10cmllLnRzXCIpO2Z1bmN0aW9uIGFSKGUsbil7KG51bGw9PW58fG4+ZS5sZW5ndGgpJiYobj1lLmxlbmd0aCk7Zm9yKHZhciB0PTAscj1BcnJheShuKTt0PG47dCsrKXJbdF09ZVt0XTtyZXR1cm4gcn1mdW5jdGlvbiBhTihlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gYVIoZSl9KGUpfHxmdW5jdGlvbihlKXtpZihcInVuZGVmaW5lZFwiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbXCJAQGl0ZXJhdG9yXCJdKXJldHVybiBBcnJheS5mcm9tKGUpfShlKXx8YUQoZSl8fGZ1bmN0aW9uKCl7dGhyb3cgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpfWZ1bmN0aW9uIGFEKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIGFSKGUsbik7dmFyIHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO2lmKFwiT2JqZWN0XCI9PT10JiZlLmNvbnN0cnVjdG9yJiYodD1lLmNvbnN0cnVjdG9yLm5hbWUpLFwiTWFwXCI9PT10fHxcIlNldFwiPT09dClyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZihcIkFyZ3VtZW50c1wiPT09dHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QodCkpcmV0dXJuIGFSKGUsbil9fXZhciBhQj1udWxsLGFNPVtdO2Z1bmN0aW9uIGFJKGUpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoLHQ9QXJyYXkobikscj0wO3I8bjtyKyspdFtyXT1hcmd1bWVudHNbcl07YUI/ZS5hcHBseSh2b2lkIDAsW2FCXS5jb25jYXQoYU4odCkpKTphTS5wdXNoKGZ1bmN0aW9uKG4pe2UuYXBwbHkodm9pZCAwLFtuXS5jb25jYXQoYU4odCkpKX0pfX12YXIgYUg9e29uQnVpbGRPazphSShmdW5jdGlvbihlKXtlKHt0eXBlOl99KX0pLG9uQnVpbGRFcnJvcjphSShmdW5jdGlvbihlLG4pe2Uoe3R5cGU6UCxtZXNzYWdlOm59KX0pLG9uQmVmb3JlUmVmcmVzaDphSShmdW5jdGlvbihlKXtlKHt0eXBlOnp9KX0pLG9uUmVmcmVzaDphSShmdW5jdGlvbihlKXtlKHt0eXBlOkx9KX0pLG9uVmVyc2lvbkluZm86YUkoZnVuY3Rpb24oZSxuKXtlKHt0eXBlOlQsdmVyc2lvbkluZm86bn0pfSksb25TdGF0aWNJbmRpY2F0b3I6YUkoZnVuY3Rpb24oZSxuKXtlKHt0eXBlOkUsc3RhdGljSW5kaWNhdG9yOm59KX0pLG9uRGVidWdJbmZvOmFJKGZ1bmN0aW9uKGUsbil7ZSh7dHlwZTpELGRlYnVnSW5mbzpufSl9KSxvbkRldkluZGljYXRvcjphSShmdW5jdGlvbihlLG4pe2Uoe3R5cGU6QixkZXZJbmRpY2F0b3I6bn0pfSksb25VbmhhbmRsZWRFcnJvcjphSShmdW5jdGlvbihlLG4pe2Uoe3R5cGU6UixyZWFzb246bn0pfSksb25VbmhhbmRsZWRSZWplY3Rpb246YUkoZnVuY3Rpb24oZSxuKXtlKHt0eXBlOk4scmVhc29uOm59KX0pLG9wZW5FcnJvck92ZXJsYXk6YUkoZnVuY3Rpb24oZSl7ZSh7dHlwZTpNfSl9KSxjbG9zZUVycm9yT3ZlcmxheTphSShmdW5jdGlvbihlKXtlKHt0eXBlOkl9KX0pLHRvZ2dsZUVycm9yT3ZlcmxheTphSShmdW5jdGlvbihlKXtlKHt0eXBlOkh9KX0pLGJ1aWxkaW5nSW5kaWNhdG9ySGlkZTphSShmdW5jdGlvbihlKXtlKHt0eXBlOlV9KX0pLGJ1aWxkaW5nSW5kaWNhdG9yU2hvdzphSShmdW5jdGlvbihlKXtlKHt0eXBlOkZ9KX0pLHJlbmRlcmluZ0luZGljYXRvckhpZGU6YUkoZnVuY3Rpb24oZSl7ZSh7dHlwZTpxfSl9KSxyZW5kZXJpbmdJbmRpY2F0b3JTaG93OmFJKGZ1bmN0aW9uKGUpe2Uoe3R5cGU6Vn0pfSksc2VnbWVudEV4cGxvcmVyTm9kZUFkZDphSShmdW5jdGlvbihlLG4peygwLGFULnRoKShuKX0pLHNlZ21lbnRFeHBsb3Jlck5vZGVSZW1vdmU6YUkoZnVuY3Rpb24oZSxuKXsoMCxhVC5fYykobil9KSxzZWdtZW50RXhwbG9yZXJVcGRhdGVSb3V0ZVN0YXRlOmFJKGZ1bmN0aW9uKGUsbil7ZSh7dHlwZTplZSxwYWdlOm59KX0pfTtmdW5jdGlvbiBhRihlKXt2YXIgbix0LHI9ZS5nZXRDb21wb25lbnRTdGFjayxvPWUuZ2V0T3duZXJTdGFjayxhPWUuZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHMsaT1lLmlzUmVjb3ZlcmFibGVFcnJvcixsPShuPWZ1bmN0aW9uKGUsbix0LHIpe3ZhciBvO2Z1bmN0aW9uIGEoZSxvLGEpe3ZhciBpLGw9bihhKSxzPXZvaWQgMD09PWw/dm9pZCAwOmZ1bmN0aW9uKGUpe3ZhciBuPVtdLHQ9ITAscj0hMSxvPXZvaWQgMDt0cnl7Zm9yKHZhciBhLGk9ZS50cmltKCkuc3BsaXQoXCJcXG5cIilbU3ltYm9sLml0ZXJhdG9yXSgpOyEodD0oYT1pLm5leHQoKSkuZG9uZSk7dD0hMCl7dmFyIGw9YS52YWx1ZSxzPS9hdCAoW14gXSspKCBcXCgoLiopXFwpKT8vLmV4ZWMobCk7aWYobnVsbD09cz92b2lkIDA6c1sxXSl7dmFyIGM9c1sxXSx1PXNbM107aWYoIXUpe24ucHVzaCh7Y2FuT3BlbkluRWRpdG9yOiExLGNvbXBvbmVudDpjfSk7Y29udGludWV9aWYobnVsbD09dT92b2lkIDA6dS5pbmNsdWRlcyhcIm5leHQvZGlzdFwiKSlicmVhazt2YXIgZD1mdW5jdGlvbihlKXt2YXIgbix0LHIsbyxhPShyPWUpLnN0YXJ0c1dpdGgoXCJmaWxlOi8vXCIpP1wiZmlsZVwiOnIuaW5jbHVkZXMoXCJ3ZWJwYWNrLWludGVybmFsOi8vXCIpP1wid2VicGFjay1pbnRlcm5hbFwiOnIuc3RhcnRzV2l0aChcImh0dHA6Ly9cIil8fHIuc3RhcnRzV2l0aChcImh0dHBzOi8vXCIpP1wiaHR0cFwiOnIuc3RhcnRzV2l0aChcIi8vXCIpP1wicHJvdG9jb2wtcmVsYXRpdmVcIjpcInVua25vd25cIixpPW51bGw9PWU/dm9pZCAwOmUucmVwbGFjZSgvXih3ZWJwYWNrLWludGVybmFsOlxcL1xcL1xcL3xmaWxlOlxcL1xcLykoXFwoLipcXClcXC8pPy8sXCJcIiksbD0obj1udWxsIT0obz1udWxsPT1pP3ZvaWQgMDppLm1hdGNoKC9eKC4rKTooXFxkKyk6KFxcZCspLykpP286W10sdD00LGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KG4pfHxmdW5jdGlvbihlLG4pe3ZhciB0LHIsbz1udWxsPT1lP251bGw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlW1wiQEBpdGVyYXRvclwiXTtpZihudWxsIT1vKXt2YXIgYT1bXSxpPSEwLGw9ITE7dHJ5e2ZvcihvPW8uY2FsbChlKTshKGk9KHQ9by5uZXh0KCkpLmRvbmUpJiYoYS5wdXNoKHQudmFsdWUpLGEubGVuZ3RoIT09bik7aT0hMCk7fWNhdGNoKGUpe2w9ITAscj1lfWZpbmFsbHl7dHJ5e2l8fG51bGw9PW8ucmV0dXJufHxvLnJldHVybigpfWZpbmFsbHl7aWYobCl0aHJvdyByfX1yZXR1cm4gYX19KG4sNCl8fGZ1bmN0aW9uKGUsbil7aWYoZSl7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGUpcmV0dXJuIHcoZSxuKTt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7aWYoXCJPYmplY3RcIj09PXQmJmUuY29uc3RydWN0b3ImJih0PWUuY29uc3RydWN0b3IubmFtZSksXCJNYXBcIj09PXR8fFwiU2V0XCI9PT10KXJldHVybiBBcnJheS5mcm9tKHQpO2lmKFwiQXJndW1lbnRzXCI9PT10fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCh0KSlyZXR1cm4gdyhlLG4pfX0obix0KXx8ZnVuY3Rpb24oKXt0aHJvdyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKX0oKSkscz1sWzFdLGM9bFsyXSx1PWxbM107c3dpdGNoKGEpe2Nhc2VcImZpbGVcIjpjYXNlXCJ3ZWJwYWNrLWludGVybmFsXCI6cmV0dXJue2Nhbk9wZW5JbkVkaXRvcjohMCxmaWxlOnMsbGluZU51bWJlcjpjP051bWJlcihjKTp2b2lkIDAsY29sdW1uOnU/TnVtYmVyKHUpOnZvaWQgMH07ZGVmYXVsdDpyZXR1cm57Y2FuT3BlbkluRWRpdG9yOiExfX19KHUpO24ucHVzaChmdW5jdGlvbihlKXtmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXt2YXIgdD1udWxsIT1hcmd1bWVudHNbbl0/YXJndW1lbnRzW25dOnt9LHI9T2JqZWN0LmtleXModCk7XCJmdW5jdGlvblwiPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKHI9ci5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxlKS5lbnVtZXJhYmxlfSkpKSxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbyxhO3I9ZSxvPW4sYT10W25dLG8gaW4gcj9PYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHt2YWx1ZTphLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6cltvXT1hfSl9cmV0dXJuIGV9KHtjb21wb25lbnQ6Y30sZCkpfX19Y2F0Y2goZSl7cj0hMCxvPWV9ZmluYWxseXt0cnl7dHx8bnVsbD09aS5yZXR1cm58fGkucmV0dXJuKCl9ZmluYWxseXtpZihyKXRocm93IG99fXJldHVybiBufShsKSxjPXQoYSksdT1mdW5jdGlvbihlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06cHJvY2Vzcy5lbnYuX19ORVhUX0RJU1RfRElSO3JldHVybiBlPyhlPWUuc3BsaXQoXCJcXG5cIikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLmluY2x1ZGVzKFwiKGV2YWwgXCIpJiYoZT1lLnJlcGxhY2UoL2V2YWwgY29kZS9nLFwiZXZhbFwiKS5yZXBsYWNlKC9cXChldmFsIGF0IFteKCldKiBcXCgvLFwiKGZpbGU6Ly9cIikucmVwbGFjZSgvXFwpLC4qJC9nLFwiKVwiKSksZX0pLmpvaW4oXCJcXG5cIiksKDAsai5wYXJzZSkoZSkubWFwKGZ1bmN0aW9uKGUpe3RyeXt2YXIgdD1uZXcgVVJMKGUuZmlsZSkscj1rLmV4ZWModC5wYXRobmFtZSk7aWYocil7dmFyIG8sYT1udWxsPT1ufHxudWxsPT0obz1uLnJlcGxhY2UoL1xcXFwvZyxcIi9cIikpP3ZvaWQgMDpvLnJlcGxhY2UoL1xcLyQvLFwiXCIpO2EmJihlLmZpbGU9XCJmaWxlOi8vXCIrYS5jb25jYXQoci5wb3AoKSkrdC5zZWFyY2gpfX1jYXRjaChlKXt9cmV0dXJuIGV9KSk6W119KChhLnN0YWNrfHxcIlwiKSsoY3x8XCJcIikpLGQ9e2lkOm8sZXJyb3I6YSxmcmFtZXM6dSxjb21wb25lbnRTdGFja0ZyYW1lczpzLHR5cGU6cihhKT9cInJlY292ZXJhYmxlXCI6KGk9YSkmJlwiTkVYVF9DT05TT0xFX0VSUk9SXCI9PT1pW0FdP1wiY29uc29sZVwiOlwicnVudGltZVwifSxmPWUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlLmVycm9yLnN0YWNrIT09ZC5lcnJvci5zdGFjayYmZXQoZS5lcnJvci5zdGFjaykhPT1ldChkLmVycm9yLnN0YWNrKXx8dChlLmVycm9yKSE9PXQoZC5lcnJvcil9KTtyZXR1cm4gZi5sZW5ndGg9PT1lLmxlbmd0aD8oZi5wdXNoKGQpLGYpOmV9cmV0dXJuKDAseC51c2VSZWR1Y2VyKShmdW5jdGlvbihlLG4pe3N3aXRjaChuLnR5cGUpe2Nhc2UgRDpyZXR1cm4gQyhPKHt9LGUpLHtkZWJ1Z0luZm86bi5kZWJ1Z0luZm99KTtjYXNlIEU6cmV0dXJuIEMoTyh7fSxlKSx7c3RhdGljSW5kaWNhdG9yOm4uc3RhdGljSW5kaWNhdG9yfSk7Y2FzZSBfOnJldHVybiBDKE8oe30sZSkse2J1aWxkRXJyb3I6bnVsbH0pO2Nhc2UgUDpyZXR1cm4gQyhPKHt9LGUpLHtidWlsZEVycm9yOm4ubWVzc2FnZX0pO2Nhc2UgejpyZXR1cm4gQyhPKHt9LGUpLHtyZWZyZXNoU3RhdGU6e3R5cGU6XCJwZW5kaW5nXCIsZXJyb3JzOltdfX0pO2Nhc2UgTDpyZXR1cm4gQyhPKHt9LGUpLHtidWlsZEVycm9yOm51bGwsZXJyb3JzOlwicGVuZGluZ1wiPT09ZS5yZWZyZXNoU3RhdGUudHlwZT9lLnJlZnJlc2hTdGF0ZS5lcnJvcnM6W10scmVmcmVzaFN0YXRlOnt0eXBlOlwiaWRsZVwifX0pO2Nhc2UgUjpjYXNlIE46c3dpdGNoKGUucmVmcmVzaFN0YXRlLnR5cGUpe2Nhc2VcImlkbGVcIjpyZXR1cm4gQyhPKHt9LGUpLHtuZXh0SWQ6ZS5uZXh0SWQrMSxlcnJvcnM6YShlLmVycm9ycyxlLm5leHRJZCxuLnJlYXNvbil9KTtjYXNlXCJwZW5kaW5nXCI6cmV0dXJuIEMoTyh7fSxlKSx7bmV4dElkOmUubmV4dElkKzEscmVmcmVzaFN0YXRlOkMoTyh7fSxlLnJlZnJlc2hTdGF0ZSkse2Vycm9yczphKGUuZXJyb3JzLGUubmV4dElkLG4ucmVhc29uKX0pfSk7ZGVmYXVsdDpyZXR1cm4gZX1jYXNlIFQ6cmV0dXJuIEMoTyh7fSxlKSx7dmVyc2lvbkluZm86bi52ZXJzaW9uSW5mb30pO2Nhc2UgQjpyZXR1cm4gQyhPKHt9LGUpLHtzaG93SW5kaWNhdG9yOiEwLGRpc2FibGVEZXZJbmRpY2F0b3I6ZXJ8fCEhbi5kZXZJbmRpY2F0b3IuZGlzYWJsZWRVbnRpbH0pO2Nhc2UgTTpyZXR1cm4gQyhPKHt9LGUpLHtpc0Vycm9yT3ZlcmxheU9wZW46ITB9KTtjYXNlIEk6cmV0dXJuIEMoTyh7fSxlKSx7aXNFcnJvck92ZXJsYXlPcGVuOiExfSk7Y2FzZSBIOnJldHVybiBDKE8oe30sZSkse2lzRXJyb3JPdmVybGF5T3BlbjohZS5pc0Vycm9yT3ZlcmxheU9wZW59KTtjYXNlIEY6cmV0dXJuIEMoTyh7fSxlKSx7YnVpbGRpbmdJbmRpY2F0b3I6ITB9KTtjYXNlIFU6cmV0dXJuIEMoTyh7fSxlKSx7YnVpbGRpbmdJbmRpY2F0b3I6ITF9KTtjYXNlIFY6cmV0dXJuIEMoTyh7fSxlKSx7cmVuZGVyaW5nSW5kaWNhdG9yOiEwfSk7Y2FzZSBxOnJldHVybiBDKE8oe30sZSkse3JlbmRlcmluZ0luZGljYXRvcjohMX0pO2Nhc2UgVzpyZXR1cm4gQyhPKHt9LGUpLHtpc0RldlRvb2xzUGFuZWxPcGVuOiEwfSk7Y2FzZSAkOnJldHVybiBDKE8oe30sZSkse2lzRGV2VG9vbHNQYW5lbE9wZW46ITF9KTtjYXNlIFo6cmV0dXJuIEMoTyh7fSxlKSx7aXNEZXZUb29sc1BhbmVsT3BlbjohZS5pc0RldlRvb2xzUGFuZWxPcGVufSk7Y2FzZSBZOnJldHVybiBDKE8oe30sZSkse2RldlRvb2xzUG9zaXRpb246bi5kZXZUb29sc1Bvc2l0aW9ufSk7Y2FzZSBYOnJldHVybiBDKE8oe30sZSkse3NjYWxlOm4uc2NhbGV9KTtjYXNlIGVlOnJldHVybiBDKE8oe30sZSkse3BhZ2U6bi5wYWdlfSk7Y2FzZSBLOnJldHVybiBDKE8oe30sZSkse3Nob3dSZXN0YXJ0U2VydmVyQnV0dG9uOm4uc2hvd1Jlc3RhcnRTZXJ2ZXJCdXR0b259KTtkZWZhdWx0OnJldHVybiBlfX0sKG89ZSxDKE8oe30sZW8pLHtpc0Vycm9yT3ZlcmxheU9wZW46XCJwYWdlc1wiPT09byxyb3V0ZXJUeXBlOm99KSkpfShlLnJvdXRlclR5cGUscixvLGkpLHQ9MixmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfShuKXx8ZnVuY3Rpb24oZSxuKXt2YXIgdCxyLG89bnVsbD09ZT9udWxsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVtcIkBAaXRlcmF0b3JcIl07aWYobnVsbCE9byl7dmFyIGE9W10saT0hMCxsPSExO3RyeXtmb3Iobz1vLmNhbGwoZSk7IShpPSh0PW8ubmV4dCgpKS5kb25lKSYmKGEucHVzaCh0LnZhbHVlKSxhLmxlbmd0aCE9PW4pO2k9ITApO31jYXRjaChlKXtsPSEwLHI9ZX1maW5hbGx5e3RyeXtpfHxudWxsPT1vLnJldHVybnx8by5yZXR1cm4oKX1maW5hbGx5e2lmKGwpdGhyb3cgcn19cmV0dXJuIGF9fShuLDIpfHxhRChuLHQpfHxmdW5jdGlvbigpe3Rocm93IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpfSgpKSxzPWxbMF0sYz1sWzFdO3JldHVybigwLHgudXNlSW5zZXJ0aW9uRWZmZWN0KShmdW5jdGlvbigpe2FCPWM7dmFyIGU9c2V0VGltZW91dChmdW5jdGlvbigpeyFmdW5jdGlvbihlKXt0cnl7dmFyIG49ITAsdD0hMSxyPXZvaWQgMDt0cnl7Zm9yKHZhciBvLGE9YU1bU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0obz1hLm5leHQoKSkuZG9uZSk7bj0hMCkoMCxvLnZhbHVlKShlKX1jYXRjaChlKXt0PSEwLHI9ZX1maW5hbGx5e3RyeXtufHxudWxsPT1hLnJldHVybnx8YS5yZXR1cm4oKX1maW5hbGx5e2lmKHQpdGhyb3cgcn19fWZpbmFsbHl7YU0ubGVuZ3RoPTB9fShjKX0pO3JldHVybiBmdW5jdGlvbigpe2FCPW51bGwsY2xlYXJUaW1lb3V0KGUpfX0sW10pLCgwLHkuanN4cykoeS5GcmFnbWVudCx7Y2hpbGRyZW46WygwLHkuanN4KShlcyx7fSksKDAseS5qc3gpKGFMLHtzdGF0ZTpzLGRpc3BhdGNoOmMsZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6YX0pXX0pfXZhciBhVT0hMSxhVj0hMTtmdW5jdGlvbiBhcSgpe3JldHVybiBudWxsfWZ1bmN0aW9uIGFXKGUsbix0KXtpZihhVSl0aHJvdyBFcnJvcihcIk5leHQgRGV2VG9vbHM6IFBhZ2VzIERldiBPdmVybGF5IGlzIGFscmVhZHkgbW91bnRlZC4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzXCIpO2lmKCFhVil7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtyLnN0eWxlLmRpc3BsYXk9XCJibG9ja1wiLHIuc3R5bGUucG9zaXRpb249XCJhYnNvbHV0ZVwiLHIuc2V0QXR0cmlidXRlKFwiZGF0YS1uZXh0anMtZGV2LW92ZXJsYXlcIixcInRydWVcIik7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIm5leHRqcy1wb3J0YWxcIik7ci5hcHBlbmRDaGlsZChvKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHIpO3ZhciBhPSgwLGVhLmNyZWF0ZVJvb3QpKG8se2lkZW50aWZpZXJQcmVmaXg6XCJuZHQtXCJ9KTsoMCx4LnN0YXJ0VHJhbnNpdGlvbikoZnVuY3Rpb24oKXthLnJlbmRlcigoMCx5LmpzeCkoYUYse2dldENvbXBvbmVudFN0YWNrOmUsZ2V0T3duZXJTdGFjazpuLGdldFNxdWFzaGVkSHlkcmF0aW9uRXJyb3JEZXRhaWxzOmFxLGlzUmVjb3ZlcmFibGVFcnJvcjp0LHJvdXRlclR5cGU6XCJhcHBcIn0pKX0pLGFWPSEwfX1mdW5jdGlvbiBhJChlLG4sdCxyKXtpZihhVil0aHJvdyBFcnJvcihcIk5leHQgRGV2VG9vbHM6IEFwcCBEZXYgT3ZlcmxheSBpcyBhbHJlYWR5IG1vdW50ZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qc1wiKTtpZighYVUpe3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJuZXh0anMtcG9ydGFsXCIpO28uc3R5bGUucG9zaXRpb249XCJhYnNvbHV0ZVwiLG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGUpe3ZhciBuPSEwLHQ9ITEscj12b2lkIDA7dHJ5e2Zvcih2YXIgYSxpPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEobj0oYT1pLm5leHQoKSkuZG9uZSk7bj0hMCl7dmFyIGw9YS52YWx1ZTtpZihcImNoaWxkTGlzdFwiPT09bC50eXBlKXt2YXIgcz0hMCxjPSExLHU9dm9pZCAwO3RyeXtmb3IodmFyIGQsZj1sLnJlbW92ZWROb2Rlc1tTeW1ib2wuaXRlcmF0b3JdKCk7IShzPShkPWYubmV4dCgpKS5kb25lKTtzPSEwKWQudmFsdWU9PT1vJiZkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG8pfWNhdGNoKGUpe2M9ITAsdT1lfWZpbmFsbHl7dHJ5e3N8fG51bGw9PWYucmV0dXJufHxmLnJldHVybigpfWZpbmFsbHl7aWYoYyl0aHJvdyB1fX19fX1jYXRjaChlKXt0PSEwLHI9ZX1maW5hbGx5e3RyeXtufHxudWxsPT1pLnJldHVybnx8aS5yZXR1cm4oKX1maW5hbGx5e2lmKHQpdGhyb3cgcn19fSkub2JzZXJ2ZShkb2N1bWVudC5ib2R5LHtjaGlsZExpc3Q6ITB9KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG8pO3ZhciBhPSgwLGVhLmNyZWF0ZVJvb3QpKG8pOygwLHguc3RhcnRUcmFuc2l0aW9uKShmdW5jdGlvbigpe2EucmVuZGVyKCgwLHkuanN4KShhRix7Z2V0Q29tcG9uZW50U3RhY2s6ZSxnZXRPd25lclN0YWNrOm4sZ2V0U3F1YXNoZWRIeWRyYXRpb25FcnJvckRldGFpbHM6dCxpc1JlY292ZXJhYmxlRXJyb3I6cixyb3V0ZXJUeXBlOlwicGFnZXNcIn0pKX0pLGFVPSEwfX19KSgpLGV4cG9ydHMuZGlzcGF0Y2hlcj1fX3dlYnBhY2tfZXhwb3J0c19fLmRpc3BhdGNoZXIsZXhwb3J0cy5yZW5kZXJBcHBEZXZPdmVybGF5PV9fd2VicGFja19leHBvcnRzX18ucmVuZGVyQXBwRGV2T3ZlcmxheSxleHBvcnRzLnJlbmRlclBhZ2VzRGV2T3ZlcmxheT1fX3dlYnBhY2tfZXhwb3J0c19fLnJlbmRlclBhZ2VzRGV2T3ZlcmxheSxfX3dlYnBhY2tfZXhwb3J0c19fKS0xPT09W1wiZGlzcGF0Y2hlclwiLFwicmVuZGVyQXBwRGV2T3ZlcmxheVwiLFwicmVuZGVyUGFnZXNEZXZPdmVybGF5XCJdLmluZGV4T2YoX193ZWJwYWNrX2lfXykmJihleHBvcnRzW19fd2VicGFja19pX19dPV9fd2VicGFja19leHBvcnRzX19bX193ZWJwYWNrX2lfX10pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/compiled/picomatch/index.js":
/*!************************************************************!*\
!*** ./node_modules/next/dist/compiled/picomatch/index.js ***!
\************************************************************/
/***/ ((module) => {
eval("(()=>{\"use strict\";var t={170:(t,e,u)=>{const n=u(510);const isWindows=()=>{if(typeof navigator!==\"undefined\"&&navigator.platform){const t=navigator.platform.toLowerCase();return t===\"win32\"||t===\"windows\"}if(typeof process!==\"undefined\"&&process.platform){return process.platform===\"win32\"}return false};function picomatch(t,e,u=false){if(e&&(e.windows===null||e.windows===undefined)){e={...e,windows:isWindows()}}return n(t,e,u)}Object.assign(picomatch,n);t.exports=picomatch},154:t=>{const e=\"\\\\\\\\/\";const u=`[^${e}]`;const n=\"\\\\.\";const o=\"\\\\+\";const s=\"\\\\?\";const r=\"\\\\/\";const a=\"(?=.)\";const i=\"[^/]\";const c=`(?:${r}|$)`;const p=`(?:^|${r})`;const l=`${n}{1,2}${c}`;const f=`(?!${n})`;const A=`(?!${p}${l})`;const _=`(?!${n}{0,1}${c})`;const R=`(?!${l})`;const E=`[^.${r}]`;const h=`${i}*?`;const g=\"/\";const b={DOT_LITERAL:n,PLUS_LITERAL:o,QMARK_LITERAL:s,SLASH_LITERAL:r,ONE_CHAR:a,QMARK:i,END_ANCHOR:c,DOTS_SLASH:l,NO_DOT:f,NO_DOTS:A,NO_DOT_SLASH:_,NO_DOTS_SLASH:R,QMARK_NO_DOT:E,STAR:h,START_ANCHOR:p,SEP:g};const C={...b,SLASH_LITERAL:`[${e}]`,QMARK:u,STAR:`${u}*?`,DOTS_SLASH:`${n}{1,2}(?:[${e}]|$)`,NO_DOT:`(?!${n})`,NO_DOTS:`(?!(?:^|[${e}])${n}{1,2}(?:[${e}]|$))`,NO_DOT_SLASH:`(?!${n}{0,1}(?:[${e}]|$))`,NO_DOTS_SLASH:`(?!${n}{1,2}(?:[${e}]|$))`,QMARK_NO_DOT:`[^.${e}]`,START_ANCHOR:`(?:^|[${e}])`,END_ANCHOR:`(?:[${e}]|$)`,SEP:\"\\\\\"};const y={alnum:\"a-zA-Z0-9\",alpha:\"a-zA-Z\",ascii:\"\\\\x00-\\\\x7F\",blank:\" \\\\t\",cntrl:\"\\\\x00-\\\\x1F\\\\x7F\",digit:\"0-9\",graph:\"\\\\x21-\\\\x7E\",lower:\"a-z\",print:\"\\\\x20-\\\\x7E \",punct:\"\\\\-!\\\"#$%&'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~\",space:\" \\\\t\\\\r\\\\n\\\\v\\\\f\",upper:\"A-Z\",word:\"A-Za-z0-9_\",xdigit:\"A-Fa-f0-9\"};t.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:y,REGEX_BACKSLASH:/\\\\(?![*+?^${}(|)[\\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\\].,$*+?^{}()|\\\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\\\?)((\\W)(\\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,REPLACEMENTS:{\"***\":\"*\",\"**/**\":\"**\",\"**/**/**\":\"**\"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(t){return{\"!\":{type:\"negate\",open:\"(?:(?!(?:\",close:`))${t.STAR})`},\"?\":{type:\"qmark\",open:\"(?:\",close:\")?\"},\"+\":{type:\"plus\",open:\"(?:\",close:\")+\"},\"*\":{type:\"star\",open:\"(?:\",close:\")*\"},\"@\":{type:\"at\",open:\"(?:\",close:\")\"}}},globChars(t){return t===true?C:b}}},697:(t,e,u)=>{const n=u(154);const o=u(96);const{MAX_LENGTH:s,POSIX_REGEX_SOURCE:r,REGEX_NON_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_BACKREF:i,REPLACEMENTS:c}=n;const expandRange=(t,e)=>{if(typeof e.expandRange===\"function\"){return e.expandRange(...t,e)}t.sort();const u=`[${t.join(\"-\")}]`;try{new RegExp(u)}catch(e){return t.map((t=>o.escapeRegex(t))).join(\"..\")}return u};const syntaxError=(t,e)=>`Missing ${t}: \"${e}\" - use \"\\\\\\\\${e}\" to match literal characters`;const parse=(t,e)=>{if(typeof t!==\"string\"){throw new TypeError(\"Expected a string\")}t=c[t]||t;const u={...e};const p=typeof u.maxLength===\"number\"?Math.min(s,u.maxLength):s;let l=t.length;if(l>p){throw new SyntaxError(`Input length: ${l}, exceeds maximum allowed length: ${p}`)}const f={type:\"bos\",value:\"\",output:u.prepend||\"\"};const A=[f];const _=u.capture?\"\":\"?:\";const R=n.globChars(u.windows);const E=n.extglobChars(R);const{DOT_LITERAL:h,PLUS_LITERAL:g,SLASH_LITERAL:b,ONE_CHAR:C,DOTS_SLASH:y,NO_DOT:$,NO_DOT_SLASH:x,NO_DOTS_SLASH:S,QMARK:H,QMARK_NO_DOT:v,STAR:d,START_ANCHOR:L}=R;const globstar=t=>`(${_}(?:(?!${L}${t.dot?y:h}).)*?)`;const T=u.dot?\"\":$;const O=u.dot?H:v;let k=u.bash===true?globstar(u):d;if(u.capture){k=`(${k})`}if(typeof u.noext===\"boolean\"){u.noextglob=u.noext}const m={input:t,index:-1,start:0,dot:u.dot===true,consumed:\"\",output:\"\",prefix:\"\",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:A};t=o.removePrefix(t,m);l=t.length;const w=[];const N=[];const I=[];let B=f;let G;const eos=()=>m.index===l-1;const D=m.peek=(e=1)=>t[m.index+e];const M=m.advance=()=>t[++m.index]||\"\";const remaining=()=>t.slice(m.index+1);const consume=(t=\"\",e=0)=>{m.consumed+=t;m.index+=e};const append=t=>{m.output+=t.output!=null?t.output:t.value;consume(t.value)};const negate=()=>{let t=1;while(D()===\"!\"&&(D(2)!==\"(\"||D(3)===\"?\")){M();m.start++;t++}if(t%2===0){return false}m.negated=true;m.start++;return true};const increment=t=>{m[t]++;I.push(t)};const decrement=t=>{m[t]--;I.pop()};const push=t=>{if(B.type===\"globstar\"){const e=m.braces>0&&(t.type===\"comma\"||t.type===\"brace\");const u=t.extglob===true||w.length&&(t.type===\"pipe\"||t.type===\"paren\");if(t.type!==\"slash\"&&t.type!==\"paren\"&&!e&&!u){m.output=m.output.slice(0,-B.output.length);B.type=\"star\";B.value=\"*\";B.output=k;m.output+=B.output}}if(w.length&&t.type!==\"paren\"){w[w.length-1].inner+=t.value}if(t.value||t.output)append(t);if(B&&B.type===\"text\"&&t.type===\"text\"){B.output=(B.output||B.value)+t.value;B.value+=t.value;return}t.prev=B;A.push(t);B=t};const extglobOpen=(t,e)=>{const n={...E[e],conditions:1,inner:\"\"};n.prev=B;n.parens=m.parens;n.output=m.output;const o=(u.capture?\"(\":\"\")+n.open;increment(\"parens\");push({type:t,value:e,output:m.output?\"\":C});push({type:\"paren\",extglob:true,value:M(),output:o});w.push(n)};const extglobClose=t=>{let n=t.close+(u.capture?\")\":\"\");let o;if(t.type===\"negate\"){let s=k;if(t.inner&&t.inner.length>1&&t.inner.includes(\"/\")){s=globstar(u)}if(s!==k||eos()||/^\\)+$/.test(remaining())){n=t.close=`)$))${s}`}if(t.inner.includes(\"*\")&&(o=remaining())&&/^\\.[^\\\\/.]+$/.test(o)){const u=parse(o,{...e,fastpaths:false}).output;n=t.close=`)${u})${s})`}if(t.prev.type===\"bos\"){m.negatedExtglob=true}}push({type:\"paren\",extglob:true,value:G,output:n});decrement(\"parens\")};if(u.fastpaths!==false&&!/(^[*!]|[/()[\\]{}\"])/.test(t)){let n=false;let s=t.replace(i,((t,e,u,o,s,r)=>{if(o===\"\\\\\"){n=true;return t}if(o===\"?\"){if(e){return e+o+(s?H.repeat(s.length):\"\")}if(r===0){return O+(s?H.repeat(s.length):\"\")}return H.repeat(u.length)}if(o===\".\"){return h.repeat(u.length)}if(o===\"*\"){if(e){return e+o+(s?k:\"\")}return k}return e?t:`\\\\${t}`}));if(n===true){if(u.unescape===true){s=s.replace(/\\\\/g,\"\")}else{s=s.replace(/\\\\+/g,(t=>t.length%2===0?\"\\\\\\\\\":t?\"\\\\\":\"\"))}}if(s===t&&u.contains===true){m.output=t;return m}m.output=o.wrapOutput(s,m,e);return m}while(!eos()){G=M();if(G===\"\\0\"){continue}if(G===\"\\\\\"){const t=D();if(t===\"/\"&&u.bash!==true){continue}if(t===\".\"||t===\";\"){continue}if(!t){G+=\"\\\\\";push({type:\"text\",value:G});continue}const e=/^\\\\+/.exec(remaining());let n=0;if(e&&e[0].length>2){n=e[0].length;m.index+=n;if(n%2!==0){G+=\"\\\\\"}}if(u.unescape===true){G=M()}else{G+=M()}if(m.brackets===0){push({type:\"text\",value:G});continue}}if(m.brackets>0&&(G!==\"]\"||B.value===\"[\"||B.value===\"[^\")){if(u.posix!==false&&G===\":\"){const t=B.value.slice(1);if(t.includes(\"[\")){B.posix=true;if(t.includes(\":\")){const t=B.value.lastIndexOf(\"[\");const e=B.value.slice(0,t);const u=B.value.slice(t+2);const n=r[u];if(n){B.value=e+n;m.backtrack=true;M();if(!f.output&&A.indexOf(B)===1){f.output=C}continue}}}}if(G===\"[\"&&D()!==\":\"||G===\"-\"&&D()===\"]\"){G=`\\\\${G}`}if(G===\"]\"&&(B.value===\"[\"||B.value===\"[^\")){G=`\\\\${G}`}if(u.posix===true&&G===\"!\"&&B.value===\"[\"){G=\"^\"}B.value+=G;append({value:G});continue}if(m.quotes===1&&G!=='\"'){G=o.escapeRegex(G);B.value+=G;append({value:G});continue}if(G==='\"'){m.quotes=m.quotes===1?0:1;if(u.keepQuotes===true){push({type:\"text\",value:G})}continue}if(G===\"(\"){increment(\"parens\");push({type:\"paren\",value:G});continue}if(G===\")\"){if(m.parens===0&&u.strictBrackets===true){throw new SyntaxError(syntaxError(\"opening\",\"(\"))}const t=w[w.length-1];if(t&&m.parens===t.parens+1){extglobClose(w.pop());continue}push({type:\"paren\",value:G,output:m.parens?\")\":\"\\\\)\"});decrement(\"parens\");continue}if(G===\"[\"){if(u.nobracket===true||!remaining().includes(\"]\")){if(u.nobracket!==true&&u.strictBrackets===true){throw new SyntaxError(syntaxError(\"closing\",\"]\"))}G=`\\\\${G}`}else{increment(\"brackets\")}push({type:\"bracket\",value:G});continue}if(G===\"]\"){if(u.nobracket===true||B&&B.type===\"bracket\"&&B.value.length===1){push({type:\"text\",value:G,output:`\\\\${G}`});continue}if(m.brackets===0){if(u.strictBrackets===true){throw new SyntaxError(syntaxError(\"opening\",\"[\"))}push({type:\"text\",value:G,output:`\\\\${G}`});continue}decrement(\"brackets\");const t=B.value.slice(1);if(B.posix!==true&&t[0]===\"^\"&&!t.includes(\"/\")){G=`/${G}`}B.value+=G;append({value:G});if(u.literalBrackets===false||o.hasRegexChars(t)){continue}const e=o.escapeRegex(B.value);m.output=m.output.slice(0,-B.value.length);if(u.literalBrackets===true){m.output+=e;B.value=e;continue}B.value=`(${_}${e}|${B.value})`;m.output+=B.value;continue}if(G===\"{\"&&u.nobrace!==true){increment(\"braces\");const t={type:\"brace\",value:G,output:\"(\",outputIndex:m.output.length,tokensIndex:m.tokens.length};N.push(t);push(t);continue}if(G===\"}\"){const t=N[N.length-1];if(u.nobrace===true||!t){push({type:\"text\",value:G,output:G});continue}let e=\")\";if(t.dots===true){const t=A.slice();const n=[];for(let e=t.length-1;e>=0;e--){A.pop();if(t[e].type===\"brace\"){break}if(t[e].type!==\"dots\"){n.unshift(t[e].value)}}e=expandRange(n,u);m.backtrack=true}if(t.comma!==true&&t.dots!==true){const u=m.output.slice(0,t.outputIndex);const n=m.tokens.slice(t.tokensIndex);t.value=t.output=\"\\\\{\";G=e=\"\\\\}\";m.output=u;for(const t of n){m.output+=t.output||t.value}}push({type:\"brace\",value:G,output:e});decrement(\"braces\");N.pop();continue}if(G===\"|\"){if(w.length>0){w[w.length-1].conditions++}push({type:\"text\",value:G});continue}if(G===\",\"){let t=G;const e=N[N.length-1];if(e&&I[I.length-1]===\"braces\"){e.comma=true;t=\"|\"}push({type:\"comma\",value:G,output:t});continue}if(G===\"/\"){if(B.type===\"dot\"&&m.index===m.start+1){m.start=m.index+1;m.consumed=\"\";m.output=\"\";A.pop();B=f;continue}push({type:\"slash\",value:G,output:b});continue}if(G===\".\"){if(m.braces>0&&B.type===\"dot\"){if(B.value===\".\")B.output=h;const t=N[N.length-1];B.type=\"dots\";B.output+=G;B.value+=G;t.dots=true;continue}if(m.braces+m.parens===0&&B.type!==\"bos\"&&B.type!==\"slash\"){push({type:\"text\",value:G,output:h});continue}push({type:\"dot\",value:G,output:h});continue}if(G===\"?\"){const t=B&&B.value===\"(\";if(!t&&u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){extglobOpen(\"qmark\",G);continue}if(B&&B.type===\"paren\"){const t=D();let e=G;if(B.value===\"(\"&&!/[!=<:]/.test(t)||t===\"<\"&&!/<([!=]|\\w+>)/.test(remaining())){e=`\\\\${G}`}push({type:\"text\",value:G,output:e});continue}if(u.dot!==true&&(B.type===\"slash\"||B.type===\"bos\")){push({type:\"qmark\",value:G,output:v});continue}push({type:\"qmark\",value:G,output:H});continue}if(G===\"!\"){if(u.noextglob!==true&&D()===\"(\"){if(D(2)!==\"?\"||!/[!=<:]/.test(D(3))){extglobOpen(\"negate\",G);continue}}if(u.nonegate!==true&&m.index===0){negate();continue}}if(G===\"+\"){if(u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){extglobOpen(\"plus\",G);continue}if(B&&B.value===\"(\"||u.regex===false){push({type:\"plus\",value:G,output:g});continue}if(B&&(B.type===\"bracket\"||B.type===\"paren\"||B.type===\"brace\")||m.parens>0){push({type:\"plus\",value:G});continue}push({type:\"plus\",value:g});continue}if(G===\"@\"){if(u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){push({type:\"at\",extglob:true,value:G,output:\"\"});continue}push({type:\"text\",value:G});continue}if(G!==\"*\"){if(G===\"$\"||G===\"^\"){G=`\\\\${G}`}const t=a.exec(remaining());if(t){G+=t[0];m.index+=t[0].length}push({type:\"text\",value:G});continue}if(B&&(B.type===\"globstar\"||B.star===true)){B.type=\"star\";B.star=true;B.value+=G;B.output=k;m.backtrack=true;m.globstar=true;consume(G);continue}let e=remaining();if(u.noextglob!==true&&/^\\([^?]/.test(e)){extglobOpen(\"star\",G);continue}if(B.type===\"star\"){if(u.noglobstar===true){consume(G);continue}const n=B.prev;const o=n.prev;const s=n.type===\"slash\"||n.type===\"bos\";const r=o&&(o.type===\"star\"||o.type===\"globstar\");if(u.bash===true&&(!s||e[0]&&e[0]!==\"/\")){push({type:\"star\",value:G,output:\"\"});continue}const a=m.braces>0&&(n.type===\"comma\"||n.type===\"brace\");const i=w.length&&(n.type===\"pipe\"||n.type===\"paren\");if(!s&&n.type!==\"paren\"&&!a&&!i){push({type:\"star\",value:G,output:\"\"});continue}while(e.slice(0,3)===\"/**\"){const u=t[m.index+4];if(u&&u!==\"/\"){break}e=e.slice(3);consume(\"/**\",3)}if(n.type===\"bos\"&&eos()){B.type=\"globstar\";B.value+=G;B.output=globstar(u);m.output=B.output;m.globstar=true;consume(G);continue}if(n.type===\"slash\"&&n.prev.type!==\"bos\"&&!r&&eos()){m.output=m.output.slice(0,-(n.output+B.output).length);n.output=`(?:${n.output}`;B.type=\"globstar\";B.output=globstar(u)+(u.strictSlashes?\")\":\"|$)\");B.value+=G;m.globstar=true;m.output+=n.output+B.output;consume(G);continue}if(n.type===\"slash\"&&n.prev.type!==\"bos\"&&e[0]===\"/\"){const t=e[1]!==void 0?\"|$\":\"\";m.output=m.output.slice(0,-(n.output+B.output).length);n.output=`(?:${n.output}`;B.type=\"globstar\";B.output=`${globstar(u)}${b}|${b}${t})`;B.value+=G;m.output+=n.output+B.output;m.globstar=true;consume(G+M());push({type:\"slash\",value:\"/\",output:\"\"});continue}if(n.type===\"bos\"&&e[0]===\"/\"){B.type=\"globstar\";B.value+=G;B.output=`(?:^|${b}|${globstar(u)}${b})`;m.output=B.output;m.globstar=true;consume(G+M());push({type:\"slash\",value:\"/\",output:\"\"});continue}m.output=m.output.slice(0,-B.output.length);B.type=\"globstar\";B.output=globstar(u);B.value+=G;m.output+=B.output;m.globstar=true;consume(G);continue}const n={type:\"star\",value:G,output:k};if(u.bash===true){n.output=\".*?\";if(B.type===\"bos\"||B.type===\"slash\"){n.output=T+n.output}push(n);continue}if(B&&(B.type===\"bracket\"||B.type===\"paren\")&&u.regex===true){n.output=G;push(n);continue}if(m.index===m.start||B.type===\"slash\"||B.type===\"dot\"){if(B.type===\"dot\"){m.output+=x;B.output+=x}else if(u.dot===true){m.output+=S;B.output+=S}else{m.output+=T;B.output+=T}if(D()!==\"*\"){m.output+=C;B.output+=C}}push(n)}while(m.brackets>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\"]\"));m.output=o.escapeLast(m.output,\"[\");decrement(\"brackets\")}while(m.parens>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\")\"));m.output=o.escapeLast(m.output,\"(\");decrement(\"parens\")}while(m.braces>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\"}\"));m.output=o.escapeLast(m.output,\"{\");decrement(\"braces\")}if(u.strictSlashes!==true&&(B.type===\"star\"||B.type===\"bracket\")){push({type:\"maybe_slash\",value:\"\",output:`${b}?`})}if(m.backtrack===true){m.output=\"\";for(const t of m.tokens){m.output+=t.output!=null?t.output:t.value;if(t.suffix){m.output+=t.suffix}}}return m};parse.fastpaths=(t,e)=>{const u={...e};const r=typeof u.maxLength===\"number\"?Math.min(s,u.maxLength):s;const a=t.length;if(a>r){throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${r}`)}t=c[t]||t;const{DOT_LITERAL:i,SLASH_LITERAL:p,ONE_CHAR:l,DOTS_SLASH:f,NO_DOT:A,NO_DOTS:_,NO_DOTS_SLASH:R,STAR:E,START_ANCHOR:h}=n.globChars(u.windows);const g=u.dot?_:A;const b=u.dot?R:A;const C=u.capture?\"\":\"?:\";const y={negated:false,prefix:\"\"};let $=u.bash===true?\".*?\":E;if(u.capture){$=`(${$})`}const globstar=t=>{if(t.noglobstar===true)return $;return`(${C}(?:(?!${h}${t.dot?f:i}).)*?)`};const create=t=>{switch(t){case\"*\":return`${g}${l}${$}`;case\".*\":return`${i}${l}${$}`;case\"*.*\":return`${g}${$}${i}${l}${$}`;case\"*/*\":return`${g}${$}${p}${l}${b}${$}`;case\"**\":return g+globstar(u);case\"**/*\":return`(?:${g}${globstar(u)}${p})?${b}${l}${$}`;case\"**/*.*\":return`(?:${g}${globstar(u)}${p})?${b}${$}${i}${l}${$}`;case\"**/.*\":return`(?:${g}${globstar(u)}${p})?${i}${l}${$}`;default:{const e=/^(.*?)\\.(\\w+)$/.exec(t);if(!e)return;const u=create(e[1]);if(!u)return;return u+i+e[2]}}};const x=o.removePrefix(t,y);let S=create(x);if(S&&u.strictSlashes!==true){S+=`${p}?`}return S};t.exports=parse},510:(t,e,u)=>{const n=u(716);const o=u(697);const s=u(96);const r=u(154);const isObject=t=>t&&typeof t===\"object\"&&!Array.isArray(t);const picomatch=(t,e,u=false)=>{if(Array.isArray(t)){const n=t.map((t=>picomatch(t,e,u)));const arrayMatcher=t=>{for(const e of n){const u=e(t);if(u)return u}return false};return arrayMatcher}const n=isObject(t)&&t.tokens&&t.input;if(t===\"\"||typeof t!==\"string\"&&!n){throw new TypeError(\"Expected pattern to be a non-empty string\")}const o=e||{};const s=o.windows;const r=n?picomatch.compileRe(t,e):picomatch.makeRe(t,e,false,true);const a=r.state;delete r.state;let isIgnored=()=>false;if(o.ignore){const t={...e,ignore:null,onMatch:null,onResult:null};isIgnored=picomatch(o.ignore,t,u)}const matcher=(u,n=false)=>{const{isMatch:i,match:c,output:p}=picomatch.test(u,r,e,{glob:t,posix:s});const l={glob:t,state:a,regex:r,posix:s,input:u,output:p,match:c,isMatch:i};if(typeof o.onResult===\"function\"){o.onResult(l)}if(i===false){l.isMatch=false;return n?l:false}if(isIgnored(u)){if(typeof o.onIgnore===\"function\"){o.onIgnore(l)}l.isMatch=false;return n?l:false}if(typeof o.onMatch===\"function\"){o.onMatch(l)}return n?l:true};if(u){matcher.state=a}return matcher};picomatch.test=(t,e,u,{glob:n,posix:o}={})=>{if(typeof t!==\"string\"){throw new TypeError(\"Expected input to be a string\")}if(t===\"\"){return{isMatch:false,output:\"\"}}const r=u||{};const a=r.format||(o?s.toPosixSlashes:null);let i=t===n;let c=i&&a?a(t):t;if(i===false){c=a?a(t):t;i=c===n}if(i===false||r.capture===true){if(r.matchBase===true||r.basename===true){i=picomatch.matchBase(t,e,u,o)}else{i=e.exec(c)}}return{isMatch:Boolean(i),match:i,output:c}};picomatch.matchBase=(t,e,u)=>{const n=e instanceof RegExp?e:picomatch.makeRe(e,u);return n.test(s.basename(t))};picomatch.isMatch=(t,e,u)=>picomatch(e,u)(t);picomatch.parse=(t,e)=>{if(Array.isArray(t))return t.map((t=>picomatch.parse(t,e)));return o(t,{...e,fastpaths:false})};picomatch.scan=(t,e)=>n(t,e);picomatch.compileRe=(t,e,u=false,n=false)=>{if(u===true){return t.output}const o=e||{};const s=o.contains?\"\":\"^\";const r=o.contains?\"\":\"$\";let a=`${s}(?:${t.output})${r}`;if(t&&t.negated===true){a=`^(?!${a}).*$`}const i=picomatch.toRegex(a,e);if(n===true){i.state=t}return i};picomatch.makeRe=(t,e={},u=false,n=false)=>{if(!t||typeof t!==\"string\"){throw new TypeError(\"Expected a non-empty string\")}let s={negated:false,fastpaths:true};if(e.fastpaths!==false&&(t[0]===\".\"||t[0]===\"*\")){s.output=o.fastpaths(t,e)}if(!s.output){s=o(t,e)}return picomatch.compileRe(s,e,u,n)};picomatch.toRegex=(t,e)=>{try{const u=e||{};return new RegExp(t,u.flags||(u.nocase?\"i\":\"\"))}catch(t){if(e&&e.debug===true)throw t;return/$^/}};picomatch.constants=r;t.exports=picomatch},716:(t,e,u)=>{const n=u(96);const{CHAR_ASTERISK:o,CHAR_AT:s,CHAR_BACKWARD_SLASH:r,CHAR_COMMA:a,CHAR_DOT:i,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:p,CHAR_LEFT_CURLY_BRACE:l,CHAR_LEFT_PARENTHESES:f,CHAR_LEFT_SQUARE_BRACKET:A,CHAR_PLUS:_,CHAR_QUESTION_MARK:R,CHAR_RIGHT_CURLY_BRACE:E,CHAR_RIGHT_PARENTHESES:h,CHAR_RIGHT_SQUARE_BRACKET:g}=u(154);const isPathSeparator=t=>t===p||t===r;const depth=t=>{if(t.isPrefix!==true){t.depth=t.isGlobstar?Infinity:1}};const scan=(t,e)=>{const u=e||{};const b=t.length-1;const C=u.parts===true||u.scanToEnd===true;const y=[];const $=[];const x=[];let S=t;let H=-1;let v=0;let d=0;let L=false;let T=false;let O=false;let k=false;let m=false;let w=false;let N=false;let I=false;let B=false;let G=false;let D=0;let M;let P;let K={value:\"\",depth:0,isGlob:false};const eos=()=>H>=b;const peek=()=>S.charCodeAt(H+1);const advance=()=>{M=P;return S.charCodeAt(++H)};while(H<b){P=advance();let t;if(P===r){N=K.backslashes=true;P=advance();if(P===l){w=true}continue}if(w===true||P===l){D++;while(eos()!==true&&(P=advance())){if(P===r){N=K.backslashes=true;advance();continue}if(P===l){D++;continue}if(w!==true&&P===i&&(P=advance())===i){L=K.isBrace=true;O=K.isGlob=true;G=true;if(C===true){continue}break}if(w!==true&&P===a){L=K.isBrace=true;O=K.isGlob=true;G=true;if(C===true){continue}break}if(P===E){D--;if(D===0){w=false;L=K.isBrace=true;G=true;break}}}if(C===true){continue}break}if(P===p){y.push(H);$.push(K);K={value:\"\",depth:0,isGlob:false};if(G===true)continue;if(M===i&&H===v+1){v+=2;continue}d=H+1;continue}if(u.noext!==true){const t=P===_||P===s||P===o||P===R||P===c;if(t===true&&peek()===f){O=K.isGlob=true;k=K.isExtglob=true;G=true;if(P===c&&H===v){B=true}if(C===true){while(eos()!==true&&(P=advance())){if(P===r){N=K.backslashes=true;P=advance();continue}if(P===h){O=K.isGlob=true;G=true;break}}continue}break}}if(P===o){if(M===o)m=K.isGlobstar=true;O=K.isGlob=true;G=true;if(C===true){continue}break}if(P===R){O=K.isGlob=true;G=true;if(C===true){continue}break}if(P===A){while(eos()!==true&&(t=advance())){if(t===r){N=K.backslashes=true;advance();continue}if(t===g){T=K.isBracket=true;O=K.isGlob=true;G=true;break}}if(C===true){continue}break}if(u.nonegate!==true&&P===c&&H===v){I=K.negated=true;v++;continue}if(u.noparen!==true&&P===f){O=K.isGlob=true;if(C===true){while(eos()!==true&&(P=advance())){if(P===f){N=K.backslashes=true;P=advance();continue}if(P===h){G=true;break}}continue}break}if(O===true){G=true;if(C===true){continue}break}}if(u.noext===true){k=false;O=false}let U=S;let X=\"\";let F=\"\";if(v>0){X=S.slice(0,v);S=S.slice(v);d-=v}if(U&&O===true&&d>0){U=S.slice(0,d);F=S.slice(d)}else if(O===true){U=\"\";F=S}else{U=S}if(U&&U!==\"\"&&U!==\"/\"&&U!==S){if(isPathSeparator(U.charCodeAt(U.length-1))){U=U.slice(0,-1)}}if(u.unescape===true){if(F)F=n.removeBackslashes(F);if(U&&N===true){U=n.removeBackslashes(U)}}const Q={prefix:X,input:t,start:v,base:U,glob:F,isBrace:L,isBracket:T,isGlob:O,isExtglob:k,isGlobstar:m,negated:I,negatedExtglob:B};if(u.tokens===true){Q.maxDepth=0;if(!isPathSeparator(P)){$.push(K)}Q.tokens=$}if(u.parts===true||u.tokens===true){let e;for(let n=0;n<y.length;n++){const o=e?e+1:v;const s=y[n];const r=t.slice(o,s);if(u.tokens){if(n===0&&v!==0){$[n].isPrefix=true;$[n].value=X}else{$[n].value=r}depth($[n]);Q.maxDepth+=$[n].depth}if(n!==0||r!==\"\"){x.push(r)}e=s}if(e&&e+1<t.length){const n=t.slice(e+1);x.push(n);if(u.tokens){$[$.length-1].value=n;depth($[$.length-1]);Q.maxDepth+=$[$.length-1].depth}}Q.slashes=y;Q.parts=x}return Q};t.exports=scan},96:(t,e,u)=>{const{REGEX_BACKSLASH:n,REGEX_REMOVE_BACKSLASH:o,REGEX_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_GLOBAL:r}=u(154);e.isObject=t=>t!==null&&typeof t===\"object\"&&!Array.isArray(t);e.hasRegexChars=t=>s.test(t);e.isRegexChar=t=>t.length===1&&e.hasRegexChars(t);e.escapeRegex=t=>t.replace(r,\"\\\\$1\");e.toPosixSlashes=t=>t.replace(n,\"/\");e.removeBackslashes=t=>t.replace(o,(t=>t===\"\\\\\"?\"\":t));e.escapeLast=(t,u,n)=>{const o=t.lastIndexOf(u,n);if(o===-1)return t;if(t[o-1]===\"\\\\\")return e.escapeLast(t,u,o-1);return`${t.slice(0,o)}\\\\${t.slice(o)}`};e.removePrefix=(t,e={})=>{let u=t;if(u.startsWith(\"./\")){u=u.slice(2);e.prefix=\"./\"}return u};e.wrapOutput=(t,e={},u={})=>{const n=u.contains?\"\":\"^\";const o=u.contains?\"\":\"$\";let s=`${n}(?:${t})${o}`;if(e.negated===true){s=`(?:^(?!${s}).*$)`}return s};e.basename=(t,{windows:e}={})=>{const u=t.split(e?/[\\\\/]/:\"/\");const n=u[u.length-1];if(n===\"\"){return u[u.length-2]}return n}}};var e={};function __nccwpck_require__(u){var n=e[u];if(n!==undefined){return n.exports}var o=e[u]={exports:{}};var s=true;try{t[u](o,o.exports,__nccwpck_require__);s=false}finally{if(s)delete e[u]}return o.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var u=__nccwpck_require__(170);module.exports=u})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3BpY29tYXRjaC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsT0FBTyxjQUFjLGVBQWUscUJBQXFCLHVEQUF1RCx5Q0FBeUMsa0NBQWtDLG1EQUFtRCxrQ0FBa0MsY0FBYyxnQ0FBZ0MsaURBQWlELEdBQUcsMEJBQTBCLGdCQUFnQiwyQkFBMkIsb0JBQW9CLFNBQVMsZ0JBQWdCLGFBQWEsRUFBRSxHQUFHLGNBQWMsY0FBYyxjQUFjLGNBQWMsZ0JBQWdCLGVBQWUsY0FBYyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsR0FBRyxXQUFXLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsR0FBRyxjQUFjLEVBQUUsRUFBRSxFQUFFLEdBQUcsY0FBYyxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsV0FBVyxFQUFFLElBQUksWUFBWSxTQUFTLHdNQUF3TSxTQUFTLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixHQUFHLElBQUksTUFBTSxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRSwwQkFBMEIsR0FBRyxJQUFJLE1BQU0sRUFBRSwyQkFBMkIsR0FBRyxJQUFJLE1BQU0sRUFBRSwwQkFBMEIsRUFBRSx5QkFBeUIsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsU0FBUyx5TEFBeUwsYUFBYSxFQUFFLDhFQUE4RSxXQUFXLHNFQUFzRSxxREFBcUQseUNBQXlDLGdHQUFnRyw0RUFBNEUsdUNBQXVDLG0zQkFBbTNCLE9BQU8sS0FBSywwQ0FBMEMsT0FBTyxHQUFHLE1BQU0sbUNBQW1DLE1BQU0sa0NBQWtDLE1BQU0sa0NBQWtDLE1BQU0saUNBQWlDLGNBQWMsc0JBQXNCLGVBQWUsZUFBZSxjQUFjLE1BQU0seUdBQXlHLEdBQUcsMEJBQTBCLHNDQUFzQyw2QkFBNkIsU0FBUyxZQUFZLFlBQVksR0FBRyxJQUFJLGNBQWMsU0FBUywrQ0FBK0MsVUFBVSxvQ0FBb0MsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLCtCQUErQixvQkFBb0Isd0JBQXdCLHlDQUF5QyxVQUFVLFNBQVMsTUFBTSxnRUFBZ0UsZUFBZSxRQUFRLHVDQUF1QyxFQUFFLG9DQUFvQyxFQUFFLEdBQUcsU0FBUywwQ0FBMEMsWUFBWSwwQkFBMEIsK0JBQStCLDBCQUEwQixNQUFNLDBKQUEwSixHQUFHLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxFQUFFLFVBQVUsUUFBUSxtQkFBbUIsa0JBQWtCLGtDQUFrQyxjQUFjLE1BQU0sRUFBRSxHQUFHLCtCQUErQixvQkFBb0IsU0FBUyx1S0FBdUssc0JBQXNCLFdBQVcsV0FBVyxXQUFXLFdBQVcsUUFBUSxNQUFNLDRCQUE0QixtQ0FBbUMsdUNBQXVDLHVDQUF1QywyQkFBMkIsY0FBYyxZQUFZLGlCQUFpQiwwQ0FBMEMsa0JBQWtCLGtCQUFrQixRQUFRLDJDQUEyQyxJQUFJLFVBQVUsSUFBSSxZQUFZLGFBQWEsZUFBZSxVQUFVLGFBQWEsb0JBQW9CLE9BQU8sV0FBVyxvQkFBb0IsT0FBTyxTQUFTLGVBQWUsd0JBQXdCLHlEQUF5RCx3RUFBd0UsK0NBQStDLDRDQUE0QyxjQUFjLFlBQVksV0FBVyxvQkFBb0IsK0JBQStCLDZCQUE2QiwrQkFBK0Isd0NBQXdDLHFDQUFxQyxpQkFBaUIsT0FBTyxTQUFTLFVBQVUsS0FBSywwQkFBMEIsU0FBUywrQkFBK0IsU0FBUyxrQkFBa0Isa0JBQWtCLGtDQUFrQyxvQkFBb0IsTUFBTSxvQ0FBb0MsRUFBRSxNQUFNLDZDQUE2QyxFQUFFLFdBQVcsdUJBQXVCLGlDQUFpQyxNQUFNLHNCQUFzQixRQUFRLHFEQUFxRCxjQUFjLDRDQUE0QyxpQkFBaUIsRUFBRSxFQUFFLG1FQUFtRSxpQkFBaUIscUJBQXFCLFNBQVMsY0FBYyxFQUFFLEdBQUcsRUFBRSxHQUFHLHdCQUF3Qix1QkFBdUIsTUFBTSwyQ0FBMkMsRUFBRSxxQkFBcUIsMENBQTBDLGNBQWMsWUFBWSxtQ0FBbUMsYUFBYSxPQUFPLFNBQVMsWUFBWSxNQUFNLHFDQUFxQyxVQUFVLG1DQUFtQywwQkFBMEIsWUFBWSwwQkFBMEIsWUFBWSxNQUFNLG9CQUFvQixTQUFTLGdCQUFnQixFQUFFLEVBQUUsR0FBRyxhQUFhLHNCQUFzQixzQkFBc0IsS0FBSywwREFBMEQsNkJBQTZCLFdBQVcsU0FBUyw2QkFBNkIsU0FBUyxjQUFjLE1BQU0sYUFBYSxTQUFTLGFBQWEsWUFBWSwyQkFBMkIsU0FBUyxrQkFBa0IsR0FBRyxTQUFTLE9BQU8sUUFBUSxNQUFNLG9CQUFvQixFQUFFLFNBQVMsaUNBQWlDLFFBQVEscUJBQXFCLGNBQWMsV0FBVyxZQUFZLFNBQVMsc0JBQXNCLE1BQU0sS0FBSyxPQUFPLG1CQUFtQixNQUFNLG9CQUFvQixFQUFFLFVBQVUsMkRBQTJELDZCQUE2Qix5QkFBeUIsb0JBQW9CLGFBQWEsb0JBQW9CLGlDQUFpQywyQkFBMkIsMkJBQTJCLGFBQWEsTUFBTSxZQUFZLGlCQUFpQixJQUFJLGdDQUFnQyxXQUFXLFlBQVksMkNBQTJDLE9BQU8sRUFBRSxFQUFFLDZDQUE2QyxPQUFPLEVBQUUsRUFBRSwyQ0FBMkMsTUFBTSxXQUFXLFFBQVEsUUFBUSxFQUFFLFNBQVMsMEJBQTBCLG1CQUFtQixXQUFXLFFBQVEsUUFBUSxFQUFFLFNBQVMsWUFBWSwwQkFBMEIsd0JBQXdCLE1BQU0sb0JBQW9CLEVBQUUsU0FBUyxZQUFZLG9CQUFvQixNQUFNLHFCQUFxQixFQUFFLFNBQVMsWUFBWSwwQ0FBMEMsa0RBQWtELHNCQUFzQiw2QkFBNkIsc0JBQXNCLFNBQVMsTUFBTSwrQ0FBK0MsRUFBRSxvQkFBb0IsU0FBUyxZQUFZLG1EQUFtRCxnREFBZ0Qsa0RBQWtELE9BQU8sRUFBRSxFQUFFLEtBQUssc0JBQXNCLE1BQU0sdUJBQXVCLEVBQUUsU0FBUyxZQUFZLGtFQUFrRSxNQUFNLGdDQUFnQyxFQUFFLEVBQUUsRUFBRSxTQUFTLG1CQUFtQiw0QkFBNEIsa0RBQWtELE1BQU0sZ0NBQWdDLEVBQUUsRUFBRSxFQUFFLFNBQVMsc0JBQXNCLHlCQUF5QixpREFBaUQsTUFBTSxFQUFFLEVBQUUsV0FBVyxRQUFRLFFBQVEsRUFBRSxrREFBa0QsU0FBUywrQkFBK0IsMkNBQTJDLDZCQUE2QixZQUFZLFVBQVUsU0FBUyxZQUFZLEVBQUUsRUFBRSxFQUFFLEdBQUcsUUFBUSxHQUFHLGtCQUFrQixTQUFTLFNBQVMscUJBQXFCLG9CQUFvQixTQUFTLHlGQUF5RixVQUFVLFFBQVEsU0FBUyxTQUFTLEdBQUcsc0JBQXNCLHlCQUF5QixNQUFNLDZCQUE2QixFQUFFLFNBQVMsVUFBVSxrQkFBa0Isa0JBQWtCLFdBQVcscUJBQXFCLEtBQUssS0FBSyxRQUFRLHdCQUF3QixNQUFNLHVCQUF1Qix1QkFBdUIsbUJBQW1CLGlCQUFpQixrQ0FBa0Msd0NBQXdDLHNDQUFzQyxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsV0FBVyxrQkFBa0IsNkJBQTZCLE1BQU0sOEJBQThCLEVBQUUsb0JBQW9CLFFBQVEsU0FBUyxZQUFZLGVBQWUsMkJBQTJCLE1BQU0sb0JBQW9CLEVBQUUsU0FBUyxZQUFZLFFBQVEsc0JBQXNCLGdDQUFnQyxhQUFhLE1BQU0sTUFBTSw4QkFBOEIsRUFBRSxTQUFTLFlBQVksd0NBQXdDLGtCQUFrQixjQUFjLFlBQVksUUFBUSxJQUFJLFNBQVMsTUFBTSw4QkFBOEIsRUFBRSxTQUFTLFlBQVksK0JBQStCLDRCQUE0QixzQkFBc0IsY0FBYyxZQUFZLFdBQVcsWUFBWSxTQUFTLDREQUE0RCxNQUFNLDZCQUE2QixFQUFFLFNBQVMsTUFBTSw0QkFBNEIsRUFBRSxTQUFTLFlBQVkseUJBQXlCLGtEQUFrRCx1QkFBdUIsU0FBUyx3QkFBd0IsWUFBWSxRQUFRLGlGQUFpRixPQUFPLEVBQUUsRUFBRSxNQUFNLDZCQUE2QixFQUFFLFNBQVMscURBQXFELE1BQU0sOEJBQThCLEVBQUUsU0FBUyxNQUFNLDhCQUE4QixFQUFFLFNBQVMsWUFBWSxrQ0FBa0MscUNBQXFDLHdCQUF3QixVQUFVLG1DQUFtQyxTQUFTLFVBQVUsWUFBWSw4Q0FBOEMsc0JBQXNCLFNBQVMsc0NBQXNDLE1BQU0sNkJBQTZCLEVBQUUsU0FBUyw0RUFBNEUsTUFBTSxvQkFBb0IsRUFBRSxTQUFTLE1BQU0sb0JBQW9CLEVBQUUsU0FBUyxZQUFZLDhDQUE4QyxNQUFNLHlDQUF5QyxFQUFFLFNBQVMsTUFBTSxvQkFBb0IsRUFBRSxTQUFTLFlBQVkscUJBQXFCLE9BQU8sRUFBRSxFQUFFLDRCQUE0QixNQUFNLFFBQVEscUJBQXFCLE1BQU0sb0JBQW9CLEVBQUUsU0FBUyw0Q0FBNEMsY0FBYyxZQUFZLFdBQVcsV0FBVyxpQkFBaUIsZ0JBQWdCLFdBQVcsU0FBUyxrQkFBa0IsMENBQTBDLHNCQUFzQixTQUFTLG9CQUFvQix3QkFBd0IsV0FBVyxTQUFTLGVBQWUsZUFBZSx5Q0FBeUMsa0RBQWtELDBDQUEwQyxNQUFNLDhCQUE4QixFQUFFLFNBQVMseURBQXlELHNEQUFzRCxpQ0FBaUMsTUFBTSw4QkFBOEIsRUFBRSxTQUFTLDRCQUE0QixxQkFBcUIsZUFBZSxNQUFNLGFBQWEsaUJBQWlCLDBCQUEwQixrQkFBa0IsV0FBVyxxQkFBcUIsa0JBQWtCLGdCQUFnQixXQUFXLFNBQVMscURBQXFELHVEQUF1RCxlQUFlLFNBQVMsRUFBRSxrQkFBa0IsaURBQWlELFdBQVcsZ0JBQWdCLDRCQUE0QixXQUFXLFNBQVMsc0RBQXNELDhCQUE4Qix1REFBdUQsZUFBZSxTQUFTLEVBQUUsa0JBQWtCLFlBQVksWUFBWSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsNEJBQTRCLGdCQUFnQixlQUFlLE1BQU0saUNBQWlDLEVBQUUsU0FBUywrQkFBK0Isa0JBQWtCLFdBQVcsaUJBQWlCLEVBQUUsR0FBRyxZQUFZLEVBQUUsRUFBRSxHQUFHLGtCQUFrQixnQkFBZ0IsZUFBZSxNQUFNLGlDQUFpQyxFQUFFLFNBQVMsNENBQTRDLGtCQUFrQixxQkFBcUIsV0FBVyxtQkFBbUIsZ0JBQWdCLFdBQVcsU0FBUyxTQUFTLDhCQUE4QixrQkFBa0IsZUFBZSxxQ0FBcUMsb0JBQW9CLFFBQVEsU0FBUyw4REFBOEQsV0FBVyxRQUFRLFNBQVMsd0RBQXdELG1CQUFtQixZQUFZLFlBQVksc0JBQXNCLFlBQVksWUFBWSxLQUFLLFlBQVksWUFBWSxjQUFjLFlBQVksYUFBYSxRQUFRLG9CQUFvQiw2RUFBNkUsb0NBQW9DLHNCQUFzQixrQkFBa0IsNkVBQTZFLG9DQUFvQyxvQkFBb0Isa0JBQWtCLHlFQUF5RSxJQUFJLGlDQUFpQyxHQUFHLG9CQUFvQixrRUFBa0UsTUFBTSxzQ0FBc0MsRUFBRSxHQUFHLEVBQUUsdUJBQXVCLFlBQVkseUJBQXlCLDBDQUEwQyxhQUFhLHFCQUFxQixVQUFVLHdCQUF3QixTQUFTLE1BQU0sZ0VBQWdFLGlCQUFpQixRQUFRLHVDQUF1QyxFQUFFLG9DQUFvQyxFQUFFLEdBQUcsVUFBVSxNQUFNLCtHQUErRyx3QkFBd0Isa0JBQWtCLGtCQUFrQiwwQkFBMEIsU0FBUyx5QkFBeUIsNEJBQTRCLGNBQWMsTUFBTSxFQUFFLEdBQUcsbUJBQW1CLGdDQUFnQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEVBQUUsVUFBVSxTQUFTLGlCQUFpQixVQUFVLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLDhCQUE4Qix1QkFBdUIsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUseUJBQXlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsd0JBQXdCLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsaUNBQWlDLGFBQWEscUJBQXFCLGFBQWEsbUJBQW1CLDRCQUE0QixnQkFBZ0IsOEJBQThCLE1BQU0sRUFBRSxHQUFHLFVBQVUsZ0JBQWdCLGVBQWUsZUFBZSxlQUFlLGNBQWMsZUFBZSw0REFBNEQsZ0NBQWdDLHFCQUFxQixxQ0FBcUMsdUJBQXVCLGtCQUFrQixhQUFhLGNBQWMsY0FBYyxvQkFBb0IsdUNBQXVDLG9DQUFvQyxpRUFBaUUsY0FBYyxrQkFBa0Isb0VBQW9FLGdCQUFnQixlQUFlLHdCQUF3QixhQUFhLFNBQVMsNkNBQTZDLGtDQUFrQyw0QkFBNEIsTUFBTSwyQkFBMkIsdUJBQXVCLGVBQWUsRUFBRSxTQUFTLG1FQUFtRSxtQ0FBbUMsY0FBYyxjQUFjLGdCQUFnQixpQkFBaUIsaUJBQWlCLG1DQUFtQyxjQUFjLGdCQUFnQixpQkFBaUIsa0NBQWtDLGFBQWEsaUJBQWlCLE1BQU0sZ0JBQWdCLGdCQUFnQix1QkFBdUIsZUFBZSxHQUFHLElBQUksd0JBQXdCLHFEQUFxRCxXQUFXLE9BQU8seUJBQXlCLGNBQWMsNENBQTRDLFlBQVksa0JBQWtCLGNBQWMsV0FBVyxRQUFRLGdDQUFnQywwQ0FBMEMsK0JBQStCLEtBQUssYUFBYSxPQUFPLHNDQUFzQyw4QkFBOEIsb0RBQW9ELDhCQUE4Qiw2Q0FBNkMsd0JBQXdCLDREQUE0RCxZQUFZLHFCQUFxQixHQUFHLDZCQUE2Qiw0Q0FBNEMsYUFBYSxnQkFBZ0IsY0FBYywwQkFBMEIsMEJBQTBCLFNBQVMsRUFBRSxLQUFLLFNBQVMsR0FBRyxFQUFFLEVBQUUsd0JBQXdCLFNBQVMsRUFBRSxNQUFNLCtCQUErQixhQUFhLFVBQVUsVUFBVSx3QkFBd0Isb0JBQW9CLDRCQUE0QixtREFBbUQsT0FBTyw4QkFBOEIsa0RBQWtELDBCQUEwQixjQUFjLFNBQVMscUNBQXFDLDBCQUEwQixJQUFJLGNBQWMsZ0RBQWdELFNBQVMsNkJBQTZCLGFBQWEsc0JBQXNCLG9CQUFvQixlQUFlLGNBQWMsTUFBTSwrU0FBK1MsUUFBUSxzQ0FBc0MsZ0JBQWdCLHNCQUFzQixrQ0FBa0MsbUJBQW1CLGNBQWMsbUJBQW1CLDJDQUEyQyxXQUFXLFdBQVcsV0FBVyxRQUFRLFNBQVMsUUFBUSxRQUFRLFlBQVksWUFBWSxZQUFZLFlBQVksWUFBWSxZQUFZLFlBQVksWUFBWSxZQUFZLFlBQVksUUFBUSxNQUFNLE1BQU0sT0FBTywrQkFBK0IsbUJBQW1CLGlDQUFpQyxtQkFBbUIsSUFBSSwwQkFBMEIsV0FBVyxZQUFZLE1BQU0sVUFBVSxxQkFBcUIsWUFBWSxVQUFVLE9BQU8sU0FBUyxvQkFBb0IsSUFBSSxtQ0FBbUMsVUFBVSxxQkFBcUIsVUFBVSxTQUFTLFVBQVUsSUFBSSxTQUFTLHVDQUF1QyxpQkFBaUIsZ0JBQWdCLE9BQU8sYUFBYSxTQUFTLE1BQU0sb0JBQW9CLGlCQUFpQixnQkFBZ0IsT0FBTyxhQUFhLFNBQVMsTUFBTSxVQUFVLElBQUksVUFBVSxRQUFRLGlCQUFpQixPQUFPLFFBQVEsYUFBYSxTQUFTLE1BQU0sVUFBVSxVQUFVLFVBQVUsR0FBRywrQkFBK0IscUJBQXFCLG1CQUFtQixLQUFLLFNBQVMsTUFBTSxTQUFTLG1CQUFtQiwwQ0FBMEMseUJBQXlCLGdCQUFnQixtQkFBbUIsT0FBTyxpQkFBaUIsT0FBTyxhQUFhLG1DQUFtQyxVQUFVLHFCQUFxQixZQUFZLFNBQVMsVUFBVSxnQkFBZ0IsT0FBTyxPQUFPLFNBQVMsT0FBTyxVQUFVLDZCQUE2QixnQkFBZ0IsT0FBTyxhQUFhLFNBQVMsTUFBTSxVQUFVLGdCQUFnQixPQUFPLGFBQWEsU0FBUyxNQUFNLFVBQVUsbUNBQW1DLFVBQVUscUJBQXFCLFVBQVUsU0FBUyxVQUFVLG1CQUFtQixnQkFBZ0IsT0FBTyxPQUFPLGFBQWEsU0FBUyxNQUFNLG9DQUFvQyxpQkFBaUIsSUFBSSxTQUFTLDRCQUE0QixnQkFBZ0IsYUFBYSxtQ0FBbUMsVUFBVSxxQkFBcUIsWUFBWSxTQUFTLFVBQVUsT0FBTyxPQUFPLFNBQVMsTUFBTSxhQUFhLE9BQU8sYUFBYSxTQUFTLE9BQU8sbUJBQW1CLFFBQVEsUUFBUSxRQUFRLFNBQVMsU0FBUyxRQUFRLGVBQWUsYUFBYSxLQUFLLHFCQUFxQixlQUFlLGFBQWEsa0JBQWtCLEtBQUssSUFBSSxLQUFLLElBQUksOEJBQThCLDhDQUE4QyxpQkFBaUIsc0JBQXNCLDhCQUE4QixnQkFBZ0IsMEJBQTBCLFNBQVMsMkhBQTJILG9CQUFvQixhQUFhLHdCQUF3QixVQUFVLFdBQVcsb0NBQW9DLE1BQU0sWUFBWSxXQUFXLEtBQUssZ0JBQWdCLGFBQWEscUJBQXFCLGFBQWEsaUJBQWlCLG1CQUFtQixhQUFhLEtBQUssYUFBYSxZQUFZLHVCQUF1QixrQkFBa0IsVUFBVSxJQUFJLG9CQUFvQixxQkFBcUIsVUFBVSxhQUFhLHNCQUFzQixxQkFBcUIsaUNBQWlDLFlBQVksVUFBVSxVQUFVLGVBQWUsY0FBYyxNQUFNLDhGQUE4RixRQUFRLCtEQUErRCw2QkFBNkIsa0RBQWtELHFDQUFxQyxxQ0FBcUMsdURBQXVELHVCQUF1QiwyQkFBMkIsbUJBQW1CLDhDQUE4QyxTQUFTLGFBQWEsSUFBSSxXQUFXLEdBQUcsc0JBQXNCLElBQUksUUFBUSx1QkFBdUIsYUFBYSxjQUFjLFVBQVUsb0JBQW9CLEtBQUssSUFBSSwwQkFBMEIsMEJBQTBCLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUscUJBQXFCLFlBQVksRUFBRSxPQUFPLFVBQVUsZUFBZSxVQUFVLEdBQUcsSUFBSSwrQkFBK0Isc0JBQXNCLFdBQVcscUJBQXFCLFlBQVksU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRiwrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3BpY29tYXRjaC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgdD17MTcwOih0LGUsdSk9Pntjb25zdCBuPXUoNTEwKTtjb25zdCBpc1dpbmRvd3M9KCk9PntpZih0eXBlb2YgbmF2aWdhdG9yIT09XCJ1bmRlZmluZWRcIiYmbmF2aWdhdG9yLnBsYXRmb3JtKXtjb25zdCB0PW5hdmlnYXRvci5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpO3JldHVybiB0PT09XCJ3aW4zMlwifHx0PT09XCJ3aW5kb3dzXCJ9aWYodHlwZW9mIHByb2Nlc3MhPT1cInVuZGVmaW5lZFwiJiZwcm9jZXNzLnBsYXRmb3JtKXtyZXR1cm4gcHJvY2Vzcy5wbGF0Zm9ybT09PVwid2luMzJcIn1yZXR1cm4gZmFsc2V9O2Z1bmN0aW9uIHBpY29tYXRjaCh0LGUsdT1mYWxzZSl7aWYoZSYmKGUud2luZG93cz09PW51bGx8fGUud2luZG93cz09PXVuZGVmaW5lZCkpe2U9ey4uLmUsd2luZG93czppc1dpbmRvd3MoKX19cmV0dXJuIG4odCxlLHUpfU9iamVjdC5hc3NpZ24ocGljb21hdGNoLG4pO3QuZXhwb3J0cz1waWNvbWF0Y2h9LDE1NDp0PT57Y29uc3QgZT1cIlxcXFxcXFxcL1wiO2NvbnN0IHU9YFteJHtlfV1gO2NvbnN0IG49XCJcXFxcLlwiO2NvbnN0IG89XCJcXFxcK1wiO2NvbnN0IHM9XCJcXFxcP1wiO2NvbnN0IHI9XCJcXFxcL1wiO2NvbnN0IGE9XCIoPz0uKVwiO2NvbnN0IGk9XCJbXi9dXCI7Y29uc3QgYz1gKD86JHtyfXwkKWA7Y29uc3QgcD1gKD86Xnwke3J9KWA7Y29uc3QgbD1gJHtufXsxLDJ9JHtjfWA7Y29uc3QgZj1gKD8hJHtufSlgO2NvbnN0IEE9YCg/ISR7cH0ke2x9KWA7Y29uc3QgXz1gKD8hJHtufXswLDF9JHtjfSlgO2NvbnN0IFI9YCg/ISR7bH0pYDtjb25zdCBFPWBbXi4ke3J9XWA7Y29uc3QgaD1gJHtpfSo/YDtjb25zdCBnPVwiL1wiO2NvbnN0IGI9e0RPVF9MSVRFUkFMOm4sUExVU19MSVRFUkFMOm8sUU1BUktfTElURVJBTDpzLFNMQVNIX0xJVEVSQUw6cixPTkVfQ0hBUjphLFFNQVJLOmksRU5EX0FOQ0hPUjpjLERPVFNfU0xBU0g6bCxOT19ET1Q6ZixOT19ET1RTOkEsTk9fRE9UX1NMQVNIOl8sTk9fRE9UU19TTEFTSDpSLFFNQVJLX05PX0RPVDpFLFNUQVI6aCxTVEFSVF9BTkNIT1I6cCxTRVA6Z307Y29uc3QgQz17Li4uYixTTEFTSF9MSVRFUkFMOmBbJHtlfV1gLFFNQVJLOnUsU1RBUjpgJHt1fSo/YCxET1RTX1NMQVNIOmAke259ezEsMn0oPzpbJHtlfV18JClgLE5PX0RPVDpgKD8hJHtufSlgLE5PX0RPVFM6YCg/ISg/Ol58WyR7ZX1dKSR7bn17MSwyfSg/Olske2V9XXwkKSlgLE5PX0RPVF9TTEFTSDpgKD8hJHtufXswLDF9KD86WyR7ZX1dfCQpKWAsTk9fRE9UU19TTEFTSDpgKD8hJHtufXsxLDJ9KD86WyR7ZX1dfCQpKWAsUU1BUktfTk9fRE9UOmBbXi4ke2V9XWAsU1RBUlRfQU5DSE9SOmAoPzpefFske2V9XSlgLEVORF9BTkNIT1I6YCg/Olske2V9XXwkKWAsU0VQOlwiXFxcXFwifTtjb25zdCB5PXthbG51bTpcImEtekEtWjAtOVwiLGFscGhhOlwiYS16QS1aXCIsYXNjaWk6XCJcXFxceDAwLVxcXFx4N0ZcIixibGFuazpcIiBcXFxcdFwiLGNudHJsOlwiXFxcXHgwMC1cXFxceDFGXFxcXHg3RlwiLGRpZ2l0OlwiMC05XCIsZ3JhcGg6XCJcXFxceDIxLVxcXFx4N0VcIixsb3dlcjpcImEtelwiLHByaW50OlwiXFxcXHgyMC1cXFxceDdFIFwiLHB1bmN0OlwiXFxcXC0hXFxcIiMkJSYnKClcXFxcKissLi86Ozw9Pj9AW1xcXFxdXl9ge3x9flwiLHNwYWNlOlwiIFxcXFx0XFxcXHJcXFxcblxcXFx2XFxcXGZcIix1cHBlcjpcIkEtWlwiLHdvcmQ6XCJBLVphLXowLTlfXCIseGRpZ2l0OlwiQS1GYS1mMC05XCJ9O3QuZXhwb3J0cz17TUFYX0xFTkdUSDoxMDI0KjY0LFBPU0lYX1JFR0VYX1NPVVJDRTp5LFJFR0VYX0JBQ0tTTEFTSDovXFxcXCg/IVsqKz9eJHt9KHwpW1xcXV0pL2csUkVHRVhfTk9OX1NQRUNJQUxfQ0hBUlM6L15bXkAhW1xcXS4sJCorP157fSgpfFxcXFwvXSsvLFJFR0VYX1NQRUNJQUxfQ0hBUlM6L1stKis/Ll4ke30ofClbXFxdXS8sUkVHRVhfU1BFQ0lBTF9DSEFSU19CQUNLUkVGOi8oXFxcXD8pKChcXFcpKFxcMyopKS9nLFJFR0VYX1NQRUNJQUxfQ0hBUlNfR0xPQkFMOi8oWy0qKz8uXiR7fSh8KVtcXF1dKS9nLFJFR0VYX1JFTU9WRV9CQUNLU0xBU0g6Lyg/OlxcWy4qP1teXFxcXF1cXF18XFxcXCg/PS4pKS9nLFJFUExBQ0VNRU5UUzp7XCIqKipcIjpcIipcIixcIioqLyoqXCI6XCIqKlwiLFwiKiovKiovKipcIjpcIioqXCJ9LENIQVJfMDo0OCxDSEFSXzk6NTcsQ0hBUl9VUFBFUkNBU0VfQTo2NSxDSEFSX0xPV0VSQ0FTRV9BOjk3LENIQVJfVVBQRVJDQVNFX1o6OTAsQ0hBUl9MT1dFUkNBU0VfWjoxMjIsQ0hBUl9MRUZUX1BBUkVOVEhFU0VTOjQwLENIQVJfUklHSFRfUEFSRU5USEVTRVM6NDEsQ0hBUl9BU1RFUklTSzo0MixDSEFSX0FNUEVSU0FORDozOCxDSEFSX0FUOjY0LENIQVJfQkFDS1dBUkRfU0xBU0g6OTIsQ0hBUl9DQVJSSUFHRV9SRVRVUk46MTMsQ0hBUl9DSVJDVU1GTEVYX0FDQ0VOVDo5NCxDSEFSX0NPTE9OOjU4LENIQVJfQ09NTUE6NDQsQ0hBUl9ET1Q6NDYsQ0hBUl9ET1VCTEVfUVVPVEU6MzQsQ0hBUl9FUVVBTDo2MSxDSEFSX0VYQ0xBTUFUSU9OX01BUks6MzMsQ0hBUl9GT1JNX0ZFRUQ6MTIsQ0hBUl9GT1JXQVJEX1NMQVNIOjQ3LENIQVJfR1JBVkVfQUNDRU5UOjk2LENIQVJfSEFTSDozNSxDSEFSX0hZUEhFTl9NSU5VUzo0NSxDSEFSX0xFRlRfQU5HTEVfQlJBQ0tFVDo2MCxDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6MTIzLENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDo5MSxDSEFSX0xJTkVfRkVFRDoxMCxDSEFSX05PX0JSRUFLX1NQQUNFOjE2MCxDSEFSX1BFUkNFTlQ6MzcsQ0hBUl9QTFVTOjQzLENIQVJfUVVFU1RJT05fTUFSSzo2MyxDSEFSX1JJR0hUX0FOR0xFX0JSQUNLRVQ6NjIsQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRToxMjUsQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDo5MyxDSEFSX1NFTUlDT0xPTjo1OSxDSEFSX1NJTkdMRV9RVU9URTozOSxDSEFSX1NQQUNFOjMyLENIQVJfVEFCOjksQ0hBUl9VTkRFUlNDT1JFOjk1LENIQVJfVkVSVElDQUxfTElORToxMjQsQ0hBUl9aRVJPX1dJRFRIX05PQlJFQUtfU1BBQ0U6NjUyNzksZXh0Z2xvYkNoYXJzKHQpe3JldHVybntcIiFcIjp7dHlwZTpcIm5lZ2F0ZVwiLG9wZW46XCIoPzooPyEoPzpcIixjbG9zZTpgKSkke3QuU1RBUn0pYH0sXCI/XCI6e3R5cGU6XCJxbWFya1wiLG9wZW46XCIoPzpcIixjbG9zZTpcIik/XCJ9LFwiK1wiOnt0eXBlOlwicGx1c1wiLG9wZW46XCIoPzpcIixjbG9zZTpcIikrXCJ9LFwiKlwiOnt0eXBlOlwic3RhclwiLG9wZW46XCIoPzpcIixjbG9zZTpcIikqXCJ9LFwiQFwiOnt0eXBlOlwiYXRcIixvcGVuOlwiKD86XCIsY2xvc2U6XCIpXCJ9fX0sZ2xvYkNoYXJzKHQpe3JldHVybiB0PT09dHJ1ZT9DOmJ9fX0sNjk3Oih0LGUsdSk9Pntjb25zdCBuPXUoMTU0KTtjb25zdCBvPXUoOTYpO2NvbnN0e01BWF9MRU5HVEg6cyxQT1NJWF9SRUdFWF9TT1VSQ0U6cixSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUzphLFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRjppLFJFUExBQ0VNRU5UUzpjfT1uO2NvbnN0IGV4cGFuZFJhbmdlPSh0LGUpPT57aWYodHlwZW9mIGUuZXhwYW5kUmFuZ2U9PT1cImZ1bmN0aW9uXCIpe3JldHVybiBlLmV4cGFuZFJhbmdlKC4uLnQsZSl9dC5zb3J0KCk7Y29uc3QgdT1gWyR7dC5qb2luKFwiLVwiKX1dYDt0cnl7bmV3IFJlZ0V4cCh1KX1jYXRjaChlKXtyZXR1cm4gdC5tYXAoKHQ9Pm8uZXNjYXBlUmVnZXgodCkpKS5qb2luKFwiLi5cIil9cmV0dXJuIHV9O2NvbnN0IHN5bnRheEVycm9yPSh0LGUpPT5gTWlzc2luZyAke3R9OiBcIiR7ZX1cIiAtIHVzZSBcIlxcXFxcXFxcJHtlfVwiIHRvIG1hdGNoIGxpdGVyYWwgY2hhcmFjdGVyc2A7Y29uc3QgcGFyc2U9KHQsZSk9PntpZih0eXBlb2YgdCE9PVwic3RyaW5nXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZ1wiKX10PWNbdF18fHQ7Y29uc3QgdT17Li4uZX07Y29uc3QgcD10eXBlb2YgdS5tYXhMZW5ndGg9PT1cIm51bWJlclwiP01hdGgubWluKHMsdS5tYXhMZW5ndGgpOnM7bGV0IGw9dC5sZW5ndGg7aWYobD5wKXt0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtsfSwgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoOiAke3B9YCl9Y29uc3QgZj17dHlwZTpcImJvc1wiLHZhbHVlOlwiXCIsb3V0cHV0OnUucHJlcGVuZHx8XCJcIn07Y29uc3QgQT1bZl07Y29uc3QgXz11LmNhcHR1cmU/XCJcIjpcIj86XCI7Y29uc3QgUj1uLmdsb2JDaGFycyh1LndpbmRvd3MpO2NvbnN0IEU9bi5leHRnbG9iQ2hhcnMoUik7Y29uc3R7RE9UX0xJVEVSQUw6aCxQTFVTX0xJVEVSQUw6ZyxTTEFTSF9MSVRFUkFMOmIsT05FX0NIQVI6QyxET1RTX1NMQVNIOnksTk9fRE9UOiQsTk9fRE9UX1NMQVNIOngsTk9fRE9UU19TTEFTSDpTLFFNQVJLOkgsUU1BUktfTk9fRE9UOnYsU1RBUjpkLFNUQVJUX0FOQ0hPUjpMfT1SO2NvbnN0IGdsb2JzdGFyPXQ9PmAoJHtffSg/Oig/ISR7TH0ke3QuZG90P3k6aH0pLikqPylgO2NvbnN0IFQ9dS5kb3Q/XCJcIjokO2NvbnN0IE89dS5kb3Q/SDp2O2xldCBrPXUuYmFzaD09PXRydWU/Z2xvYnN0YXIodSk6ZDtpZih1LmNhcHR1cmUpe2s9YCgke2t9KWB9aWYodHlwZW9mIHUubm9leHQ9PT1cImJvb2xlYW5cIil7dS5ub2V4dGdsb2I9dS5ub2V4dH1jb25zdCBtPXtpbnB1dDp0LGluZGV4Oi0xLHN0YXJ0OjAsZG90OnUuZG90PT09dHJ1ZSxjb25zdW1lZDpcIlwiLG91dHB1dDpcIlwiLHByZWZpeDpcIlwiLGJhY2t0cmFjazpmYWxzZSxuZWdhdGVkOmZhbHNlLGJyYWNrZXRzOjAsYnJhY2VzOjAscGFyZW5zOjAscXVvdGVzOjAsZ2xvYnN0YXI6ZmFsc2UsdG9rZW5zOkF9O3Q9by5yZW1vdmVQcmVmaXgodCxtKTtsPXQubGVuZ3RoO2NvbnN0IHc9W107Y29uc3QgTj1bXTtjb25zdCBJPVtdO2xldCBCPWY7bGV0IEc7Y29uc3QgZW9zPSgpPT5tLmluZGV4PT09bC0xO2NvbnN0IEQ9bS5wZWVrPShlPTEpPT50W20uaW5kZXgrZV07Y29uc3QgTT1tLmFkdmFuY2U9KCk9PnRbKyttLmluZGV4XXx8XCJcIjtjb25zdCByZW1haW5pbmc9KCk9PnQuc2xpY2UobS5pbmRleCsxKTtjb25zdCBjb25zdW1lPSh0PVwiXCIsZT0wKT0+e20uY29uc3VtZWQrPXQ7bS5pbmRleCs9ZX07Y29uc3QgYXBwZW5kPXQ9PnttLm91dHB1dCs9dC5vdXRwdXQhPW51bGw/dC5vdXRwdXQ6dC52YWx1ZTtjb25zdW1lKHQudmFsdWUpfTtjb25zdCBuZWdhdGU9KCk9PntsZXQgdD0xO3doaWxlKEQoKT09PVwiIVwiJiYoRCgyKSE9PVwiKFwifHxEKDMpPT09XCI/XCIpKXtNKCk7bS5zdGFydCsrO3QrK31pZih0JTI9PT0wKXtyZXR1cm4gZmFsc2V9bS5uZWdhdGVkPXRydWU7bS5zdGFydCsrO3JldHVybiB0cnVlfTtjb25zdCBpbmNyZW1lbnQ9dD0+e21bdF0rKztJLnB1c2godCl9O2NvbnN0IGRlY3JlbWVudD10PT57bVt0XS0tO0kucG9wKCl9O2NvbnN0IHB1c2g9dD0+e2lmKEIudHlwZT09PVwiZ2xvYnN0YXJcIil7Y29uc3QgZT1tLmJyYWNlcz4wJiYodC50eXBlPT09XCJjb21tYVwifHx0LnR5cGU9PT1cImJyYWNlXCIpO2NvbnN0IHU9dC5leHRnbG9iPT09dHJ1ZXx8dy5sZW5ndGgmJih0LnR5cGU9PT1cInBpcGVcInx8dC50eXBlPT09XCJwYXJlblwiKTtpZih0LnR5cGUhPT1cInNsYXNoXCImJnQudHlwZSE9PVwicGFyZW5cIiYmIWUmJiF1KXttLm91dHB1dD1tLm91dHB1dC5zbGljZSgwLC1CLm91dHB1dC5sZW5ndGgpO0IudHlwZT1cInN0YXJcIjtCLnZhbHVlPVwiKlwiO0Iub3V0cHV0PWs7bS5vdXRwdXQrPUIub3V0cHV0fX1pZih3Lmxlbmd0aCYmdC50eXBlIT09XCJwYXJlblwiKXt3W3cubGVuZ3RoLTFdLmlubmVyKz10LnZhbHVlfWlmKHQudmFsdWV8fHQub3V0cHV0KWFwcGVuZCh0KTtpZihCJiZCLnR5cGU9PT1cInRleHRcIiYmdC50eXBlPT09XCJ0ZXh0XCIpe0Iub3V0cHV0PShCLm91dHB1dHx8Qi52YWx1ZSkrdC52YWx1ZTtCLnZhbHVlKz10LnZhbHVlO3JldHVybn10LnByZXY9QjtBLnB1c2godCk7Qj10fTtjb25zdCBleHRnbG9iT3Blbj0odCxlKT0+e2NvbnN0IG49ey4uLkVbZV0sY29uZGl0aW9uczoxLGlubmVyOlwiXCJ9O24ucHJldj1CO24ucGFyZW5zPW0ucGFyZW5zO24ub3V0cHV0PW0ub3V0cHV0O2NvbnN0IG89KHUuY2FwdHVyZT9cIihcIjpcIlwiKStuLm9wZW47aW5jcmVtZW50KFwicGFyZW5zXCIpO3B1c2goe3R5cGU6dCx2YWx1ZTplLG91dHB1dDptLm91dHB1dD9cIlwiOkN9KTtwdXNoKHt0eXBlOlwicGFyZW5cIixleHRnbG9iOnRydWUsdmFsdWU6TSgpLG91dHB1dDpvfSk7dy5wdXNoKG4pfTtjb25zdCBleHRnbG9iQ2xvc2U9dD0+e2xldCBuPXQuY2xvc2UrKHUuY2FwdHVyZT9cIilcIjpcIlwiKTtsZXQgbztpZih0LnR5cGU9PT1cIm5lZ2F0ZVwiKXtsZXQgcz1rO2lmKHQuaW5uZXImJnQuaW5uZXIubGVuZ3RoPjEmJnQuaW5uZXIuaW5jbHVkZXMoXCIvXCIpKXtzPWdsb2JzdGFyKHUpfWlmKHMhPT1rfHxlb3MoKXx8L15cXCkrJC8udGVzdChyZW1haW5pbmcoKSkpe249dC5jbG9zZT1gKSQpKSR7c31gfWlmKHQuaW5uZXIuaW5jbHVkZXMoXCIqXCIpJiYobz1yZW1haW5pbmcoKSkmJi9eXFwuW15cXFxcLy5dKyQvLnRlc3Qobykpe2NvbnN0IHU9cGFyc2Uobyx7Li4uZSxmYXN0cGF0aHM6ZmFsc2V9KS5vdXRwdXQ7bj10LmNsb3NlPWApJHt1fSkke3N9KWB9aWYodC5wcmV2LnR5cGU9PT1cImJvc1wiKXttLm5lZ2F0ZWRFeHRnbG9iPXRydWV9fXB1c2goe3R5cGU6XCJwYXJlblwiLGV4dGdsb2I6dHJ1ZSx2YWx1ZTpHLG91dHB1dDpufSk7ZGVjcmVtZW50KFwicGFyZW5zXCIpfTtpZih1LmZhc3RwYXRocyE9PWZhbHNlJiYhLyheWyohXXxbLygpW1xcXXt9XCJdKS8udGVzdCh0KSl7bGV0IG49ZmFsc2U7bGV0IHM9dC5yZXBsYWNlKGksKCh0LGUsdSxvLHMscik9PntpZihvPT09XCJcXFxcXCIpe249dHJ1ZTtyZXR1cm4gdH1pZihvPT09XCI/XCIpe2lmKGUpe3JldHVybiBlK28rKHM/SC5yZXBlYXQocy5sZW5ndGgpOlwiXCIpfWlmKHI9PT0wKXtyZXR1cm4gTysocz9ILnJlcGVhdChzLmxlbmd0aCk6XCJcIil9cmV0dXJuIEgucmVwZWF0KHUubGVuZ3RoKX1pZihvPT09XCIuXCIpe3JldHVybiBoLnJlcGVhdCh1Lmxlbmd0aCl9aWYobz09PVwiKlwiKXtpZihlKXtyZXR1cm4gZStvKyhzP2s6XCJcIil9cmV0dXJuIGt9cmV0dXJuIGU/dDpgXFxcXCR7dH1gfSkpO2lmKG49PT10cnVlKXtpZih1LnVuZXNjYXBlPT09dHJ1ZSl7cz1zLnJlcGxhY2UoL1xcXFwvZyxcIlwiKX1lbHNle3M9cy5yZXBsYWNlKC9cXFxcKy9nLCh0PT50Lmxlbmd0aCUyPT09MD9cIlxcXFxcXFxcXCI6dD9cIlxcXFxcIjpcIlwiKSl9fWlmKHM9PT10JiZ1LmNvbnRhaW5zPT09dHJ1ZSl7bS5vdXRwdXQ9dDtyZXR1cm4gbX1tLm91dHB1dD1vLndyYXBPdXRwdXQocyxtLGUpO3JldHVybiBtfXdoaWxlKCFlb3MoKSl7Rz1NKCk7aWYoRz09PVwiXFwwXCIpe2NvbnRpbnVlfWlmKEc9PT1cIlxcXFxcIil7Y29uc3QgdD1EKCk7aWYodD09PVwiL1wiJiZ1LmJhc2ghPT10cnVlKXtjb250aW51ZX1pZih0PT09XCIuXCJ8fHQ9PT1cIjtcIil7Y29udGludWV9aWYoIXQpe0crPVwiXFxcXFwiO3B1c2goe3R5cGU6XCJ0ZXh0XCIsdmFsdWU6R30pO2NvbnRpbnVlfWNvbnN0IGU9L15cXFxcKy8uZXhlYyhyZW1haW5pbmcoKSk7bGV0IG49MDtpZihlJiZlWzBdLmxlbmd0aD4yKXtuPWVbMF0ubGVuZ3RoO20uaW5kZXgrPW47aWYobiUyIT09MCl7Rys9XCJcXFxcXCJ9fWlmKHUudW5lc2NhcGU9PT10cnVlKXtHPU0oKX1lbHNle0crPU0oKX1pZihtLmJyYWNrZXRzPT09MCl7cHVzaCh7dHlwZTpcInRleHRcIix2YWx1ZTpHfSk7Y29udGludWV9fWlmKG0uYnJhY2tldHM+MCYmKEchPT1cIl1cInx8Qi52YWx1ZT09PVwiW1wifHxCLnZhbHVlPT09XCJbXlwiKSl7aWYodS5wb3NpeCE9PWZhbHNlJiZHPT09XCI6XCIpe2NvbnN0IHQ9Qi52YWx1ZS5zbGljZSgxKTtpZih0LmluY2x1ZGVzKFwiW1wiKSl7Qi5wb3NpeD10cnVlO2lmKHQuaW5jbHVkZXMoXCI6XCIpKXtjb25zdCB0PUIudmFsdWUubGFzdEluZGV4T2YoXCJbXCIpO2NvbnN0IGU9Qi52YWx1ZS5zbGljZSgwLHQpO2NvbnN0IHU9Qi52YWx1ZS5zbGljZSh0KzIpO2NvbnN0IG49clt1XTtpZihuKXtCLnZhbHVlPWUrbjttLmJhY2t0cmFjaz10cnVlO00oKTtpZighZi5vdXRwdXQmJkEuaW5kZXhPZihCKT09PTEpe2Yub3V0cHV0PUN9Y29udGludWV9fX19aWYoRz09PVwiW1wiJiZEKCkhPT1cIjpcInx8Rz09PVwiLVwiJiZEKCk9PT1cIl1cIil7Rz1gXFxcXCR7R31gfWlmKEc9PT1cIl1cIiYmKEIudmFsdWU9PT1cIltcInx8Qi52YWx1ZT09PVwiW15cIikpe0c9YFxcXFwke0d9YH1pZih1LnBvc2l4PT09dHJ1ZSYmRz09PVwiIVwiJiZCLnZhbHVlPT09XCJbXCIpe0c9XCJeXCJ9Qi52YWx1ZSs9RzthcHBlbmQoe3ZhbHVlOkd9KTtjb250aW51ZX1pZihtLnF1b3Rlcz09PTEmJkchPT0nXCInKXtHPW8uZXNjYXBlUmVnZXgoRyk7Qi52YWx1ZSs9RzthcHBlbmQoe3ZhbHVlOkd9KTtjb250aW51ZX1pZihHPT09J1wiJyl7bS5xdW90ZXM9bS5xdW90ZXM9PT0xPzA6MTtpZih1LmtlZXBRdW90ZXM9PT10cnVlKXtwdXNoKHt0eXBlOlwidGV4dFwiLHZhbHVlOkd9KX1jb250aW51ZX1pZihHPT09XCIoXCIpe2luY3JlbWVudChcInBhcmVuc1wiKTtwdXNoKHt0eXBlOlwicGFyZW5cIix2YWx1ZTpHfSk7Y29udGludWV9aWYoRz09PVwiKVwiKXtpZihtLnBhcmVucz09PTAmJnUuc3RyaWN0QnJhY2tldHM9PT10cnVlKXt0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoXCJvcGVuaW5nXCIsXCIoXCIpKX1jb25zdCB0PXdbdy5sZW5ndGgtMV07aWYodCYmbS5wYXJlbnM9PT10LnBhcmVucysxKXtleHRnbG9iQ2xvc2Uody5wb3AoKSk7Y29udGludWV9cHVzaCh7dHlwZTpcInBhcmVuXCIsdmFsdWU6RyxvdXRwdXQ6bS5wYXJlbnM/XCIpXCI6XCJcXFxcKVwifSk7ZGVjcmVtZW50KFwicGFyZW5zXCIpO2NvbnRpbnVlfWlmKEc9PT1cIltcIil7aWYodS5ub2JyYWNrZXQ9PT10cnVlfHwhcmVtYWluaW5nKCkuaW5jbHVkZXMoXCJdXCIpKXtpZih1Lm5vYnJhY2tldCE9PXRydWUmJnUuc3RyaWN0QnJhY2tldHM9PT10cnVlKXt0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoXCJjbG9zaW5nXCIsXCJdXCIpKX1HPWBcXFxcJHtHfWB9ZWxzZXtpbmNyZW1lbnQoXCJicmFja2V0c1wiKX1wdXNoKHt0eXBlOlwiYnJhY2tldFwiLHZhbHVlOkd9KTtjb250aW51ZX1pZihHPT09XCJdXCIpe2lmKHUubm9icmFja2V0PT09dHJ1ZXx8QiYmQi50eXBlPT09XCJicmFja2V0XCImJkIudmFsdWUubGVuZ3RoPT09MSl7cHVzaCh7dHlwZTpcInRleHRcIix2YWx1ZTpHLG91dHB1dDpgXFxcXCR7R31gfSk7Y29udGludWV9aWYobS5icmFja2V0cz09PTApe2lmKHUuc3RyaWN0QnJhY2tldHM9PT10cnVlKXt0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoXCJvcGVuaW5nXCIsXCJbXCIpKX1wdXNoKHt0eXBlOlwidGV4dFwiLHZhbHVlOkcsb3V0cHV0OmBcXFxcJHtHfWB9KTtjb250aW51ZX1kZWNyZW1lbnQoXCJicmFja2V0c1wiKTtjb25zdCB0PUIudmFsdWUuc2xpY2UoMSk7aWYoQi5wb3NpeCE9PXRydWUmJnRbMF09PT1cIl5cIiYmIXQuaW5jbHVkZXMoXCIvXCIpKXtHPWAvJHtHfWB9Qi52YWx1ZSs9RzthcHBlbmQoe3ZhbHVlOkd9KTtpZih1LmxpdGVyYWxCcmFja2V0cz09PWZhbHNlfHxvLmhhc1JlZ2V4Q2hhcnModCkpe2NvbnRpbnVlfWNvbnN0IGU9by5lc2NhcGVSZWdleChCLnZhbHVlKTttLm91dHB1dD1tLm91dHB1dC5zbGljZSgwLC1CLnZhbHVlLmxlbmd0aCk7aWYodS5saXRlcmFsQnJhY2tldHM9PT10cnVlKXttLm91dHB1dCs9ZTtCLnZhbHVlPWU7Y29udGludWV9Qi52YWx1ZT1gKCR7X30ke2V9fCR7Qi52YWx1ZX0pYDttLm91dHB1dCs9Qi52YWx1ZTtjb250aW51ZX1pZihHPT09XCJ7XCImJnUubm9icmFjZSE9PXRydWUpe2luY3JlbWVudChcImJyYWNlc1wiKTtjb25zdCB0PXt0eXBlOlwiYnJhY2VcIix2YWx1ZTpHLG91dHB1dDpcIihcIixvdXRwdXRJbmRleDptLm91dHB1dC5sZW5ndGgsdG9rZW5zSW5kZXg6bS50b2tlbnMubGVuZ3RofTtOLnB1c2godCk7cHVzaCh0KTtjb250aW51ZX1pZihHPT09XCJ9XCIpe2NvbnN0IHQ9TltOLmxlbmd0aC0xXTtpZih1Lm5vYnJhY2U9PT10cnVlfHwhdCl7cHVzaCh7dHlwZTpcInRleHRcIix2YWx1ZTpHLG91dHB1dDpHfSk7Y29udGludWV9bGV0IGU9XCIpXCI7aWYodC5kb3RzPT09dHJ1ZSl7Y29uc3QgdD1BLnNsaWNlKCk7Y29uc3Qgbj1bXTtmb3IobGV0IGU9dC5sZW5ndGgtMTtlPj0wO2UtLSl7QS5wb3AoKTtpZih0W2VdLnR5cGU9PT1cImJyYWNlXCIpe2JyZWFrfWlmKHRbZV0udHlwZSE9PVwiZG90c1wiKXtuLnVuc2hpZnQodFtlXS52YWx1ZSl9fWU9ZXhwYW5kUmFuZ2Uobix1KTttLmJhY2t0cmFjaz10cnVlfWlmKHQuY29tbWEhPT10cnVlJiZ0LmRvdHMhPT10cnVlKXtjb25zdCB1PW0ub3V0cHV0LnNsaWNlKDAsdC5vdXRwdXRJbmRleCk7Y29uc3Qgbj1tLnRva2Vucy5zbGljZSh0LnRva2Vuc0luZGV4KTt0LnZhbHVlPXQub3V0cHV0PVwiXFxcXHtcIjtHPWU9XCJcXFxcfVwiO20ub3V0cHV0PXU7Zm9yKGNvbnN0IHQgb2Ygbil7bS5vdXRwdXQrPXQub3V0cHV0fHx0LnZhbHVlfX1wdXNoKHt0eXBlOlwiYnJhY2VcIix2YWx1ZTpHLG91dHB1dDplfSk7ZGVjcmVtZW50KFwiYnJhY2VzXCIpO04ucG9wKCk7Y29udGludWV9aWYoRz09PVwifFwiKXtpZih3Lmxlbmd0aD4wKXt3W3cubGVuZ3RoLTFdLmNvbmRpdGlvbnMrK31wdXNoKHt0eXBlOlwidGV4dFwiLHZhbHVlOkd9KTtjb250aW51ZX1pZihHPT09XCIsXCIpe2xldCB0PUc7Y29uc3QgZT1OW04ubGVuZ3RoLTFdO2lmKGUmJklbSS5sZW5ndGgtMV09PT1cImJyYWNlc1wiKXtlLmNvbW1hPXRydWU7dD1cInxcIn1wdXNoKHt0eXBlOlwiY29tbWFcIix2YWx1ZTpHLG91dHB1dDp0fSk7Y29udGludWV9aWYoRz09PVwiL1wiKXtpZihCLnR5cGU9PT1cImRvdFwiJiZtLmluZGV4PT09bS5zdGFydCsxKXttLnN0YXJ0PW0uaW5kZXgrMTttLmNvbnN1bWVkPVwiXCI7bS5vdXRwdXQ9XCJcIjtBLnBvcCgpO0I9Zjtjb250aW51ZX1wdXNoKHt0eXBlOlwic2xhc2hcIix2YWx1ZTpHLG91dHB1dDpifSk7Y29udGludWV9aWYoRz09PVwiLlwiKXtpZihtLmJyYWNlcz4wJiZCLnR5cGU9PT1cImRvdFwiKXtpZihCLnZhbHVlPT09XCIuXCIpQi5vdXRwdXQ9aDtjb25zdCB0PU5bTi5sZW5ndGgtMV07Qi50eXBlPVwiZG90c1wiO0Iub3V0cHV0Kz1HO0IudmFsdWUrPUc7dC5kb3RzPXRydWU7Y29udGludWV9aWYobS5icmFjZXMrbS5wYXJlbnM9PT0wJiZCLnR5cGUhPT1cImJvc1wiJiZCLnR5cGUhPT1cInNsYXNoXCIpe3B1c2goe3R5cGU6XCJ0ZXh0XCIsdmFsdWU6RyxvdXRwdXQ6aH0pO2NvbnRpbnVlfXB1c2goe3R5cGU6XCJkb3RcIix2YWx1ZTpHLG91dHB1dDpofSk7Y29udGludWV9aWYoRz09PVwiP1wiKXtjb25zdCB0PUImJkIudmFsdWU9PT1cIihcIjtpZighdCYmdS5ub2V4dGdsb2IhPT10cnVlJiZEKCk9PT1cIihcIiYmRCgyKSE9PVwiP1wiKXtleHRnbG9iT3BlbihcInFtYXJrXCIsRyk7Y29udGludWV9aWYoQiYmQi50eXBlPT09XCJwYXJlblwiKXtjb25zdCB0PUQoKTtsZXQgZT1HO2lmKEIudmFsdWU9PT1cIihcIiYmIS9bIT08Ol0vLnRlc3QodCl8fHQ9PT1cIjxcIiYmIS88KFshPV18XFx3Kz4pLy50ZXN0KHJlbWFpbmluZygpKSl7ZT1gXFxcXCR7R31gfXB1c2goe3R5cGU6XCJ0ZXh0XCIsdmFsdWU6RyxvdXRwdXQ6ZX0pO2NvbnRpbnVlfWlmKHUuZG90IT09dHJ1ZSYmKEIudHlwZT09PVwic2xhc2hcInx8Qi50eXBlPT09XCJib3NcIikpe3B1c2goe3R5cGU6XCJxbWFya1wiLHZhbHVlOkcsb3V0cHV0OnZ9KTtjb250aW51ZX1wdXNoKHt0eXBlOlwicW1hcmtcIix2YWx1ZTpHLG91dHB1dDpIfSk7Y29udGludWV9aWYoRz09PVwiIVwiKXtpZih1Lm5vZXh0Z2xvYiE9PXRydWUmJkQoKT09PVwiKFwiKXtpZihEKDIpIT09XCI/XCJ8fCEvWyE9PDpdLy50ZXN0KEQoMykpKXtleHRnbG9iT3BlbihcIm5lZ2F0ZVwiLEcpO2NvbnRpbnVlfX1pZih1Lm5vbmVnYXRlIT09dHJ1ZSYmbS5pbmRleD09PTApe25lZ2F0ZSgpO2NvbnRpbnVlfX1pZihHPT09XCIrXCIpe2lmKHUubm9leHRnbG9iIT09dHJ1ZSYmRCgpPT09XCIoXCImJkQoMikhPT1cIj9cIil7ZXh0Z2xvYk9wZW4oXCJwbHVzXCIsRyk7Y29udGludWV9aWYoQiYmQi52YWx1ZT09PVwiKFwifHx1LnJlZ2V4PT09ZmFsc2Upe3B1c2goe3R5cGU6XCJwbHVzXCIsdmFsdWU6RyxvdXRwdXQ6Z30pO2NvbnRpbnVlfWlmKEImJihCLnR5cGU9PT1cImJyYWNrZXRcInx8Qi50eXBlPT09XCJwYXJlblwifHxCLnR5cGU9PT1cImJyYWNlXCIpfHxtLnBhcmVucz4wKXtwdXNoKHt0eXBlOlwicGx1c1wiLHZhbHVlOkd9KTtjb250aW51ZX1wdXNoKHt0eXBlOlwicGx1c1wiLHZhbHVlOmd9KTtjb250aW51ZX1pZihHPT09XCJAXCIpe2lmKHUubm9leHRnbG9iIT09dHJ1ZSYmRCgpPT09XCIoXCImJkQoMikhPT1cIj9cIil7cHVzaCh7dHlwZTpcImF0XCIsZXh0Z2xvYjp0cnVlLHZhbHVlOkcsb3V0cHV0OlwiXCJ9KTtjb250aW51ZX1wdXNoKHt0eXBlOlwidGV4dFwiLHZhbHVlOkd9KTtjb250aW51ZX1pZihHIT09XCIqXCIpe2lmKEc9PT1cIiRcInx8Rz09PVwiXlwiKXtHPWBcXFxcJHtHfWB9Y29uc3QgdD1hLmV4ZWMocmVtYWluaW5nKCkpO2lmKHQpe0crPXRbMF07bS5pbmRleCs9dFswXS5sZW5ndGh9cHVzaCh7dHlwZTpcInRleHRcIix2YWx1ZTpHfSk7Y29udGludWV9aWYoQiYmKEIudHlwZT09PVwiZ2xvYnN0YXJcInx8Qi5zdGFyPT09dHJ1ZSkpe0IudHlwZT1cInN0YXJcIjtCLnN0YXI9dHJ1ZTtCLnZhbHVlKz1HO0Iub3V0cHV0PWs7bS5iYWNrdHJhY2s9dHJ1ZTttLmdsb2JzdGFyPXRydWU7Y29uc3VtZShHKTtjb250aW51ZX1sZXQgZT1yZW1haW5pbmcoKTtpZih1Lm5vZXh0Z2xvYiE9PXRydWUmJi9eXFwoW14/XS8udGVzdChlKSl7ZXh0Z2xvYk9wZW4oXCJzdGFyXCIsRyk7Y29udGludWV9aWYoQi50eXBlPT09XCJzdGFyXCIpe2lmKHUubm9nbG9ic3Rhcj09PXRydWUpe2NvbnN1bWUoRyk7Y29udGludWV9Y29uc3Qgbj1CLnByZXY7Y29uc3Qgbz1uLnByZXY7Y29uc3Qgcz1uLnR5cGU9PT1cInNsYXNoXCJ8fG4udHlwZT09PVwiYm9zXCI7Y29uc3Qgcj1vJiYoby50eXBlPT09XCJzdGFyXCJ8fG8udHlwZT09PVwiZ2xvYnN0YXJcIik7aWYodS5iYXNoPT09dHJ1ZSYmKCFzfHxlWzBdJiZlWzBdIT09XCIvXCIpKXtwdXNoKHt0eXBlOlwic3RhclwiLHZhbHVlOkcsb3V0cHV0OlwiXCJ9KTtjb250aW51ZX1jb25zdCBhPW0uYnJhY2VzPjAmJihuLnR5cGU9PT1cImNvbW1hXCJ8fG4udHlwZT09PVwiYnJhY2VcIik7Y29uc3QgaT13Lmxlbmd0aCYmKG4udHlwZT09PVwicGlwZVwifHxuLnR5cGU9PT1cInBhcmVuXCIpO2lmKCFzJiZuLnR5cGUhPT1cInBhcmVuXCImJiFhJiYhaSl7cHVzaCh7dHlwZTpcInN0YXJcIix2YWx1ZTpHLG91dHB1dDpcIlwifSk7Y29udGludWV9d2hpbGUoZS5zbGljZSgwLDMpPT09XCIvKipcIil7Y29uc3QgdT10W20uaW5kZXgrNF07aWYodSYmdSE9PVwiL1wiKXticmVha31lPWUuc2xpY2UoMyk7Y29uc3VtZShcIi8qKlwiLDMpfWlmKG4udHlwZT09PVwiYm9zXCImJmVvcygpKXtCLnR5cGU9XCJnbG9ic3RhclwiO0IudmFsdWUrPUc7Qi5vdXRwdXQ9Z2xvYnN0YXIodSk7bS5vdXRwdXQ9Qi5vdXRwdXQ7bS5nbG9ic3Rhcj10cnVlO2NvbnN1bWUoRyk7Y29udGludWV9aWYobi50eXBlPT09XCJzbGFzaFwiJiZuLnByZXYudHlwZSE9PVwiYm9zXCImJiFyJiZlb3MoKSl7bS5vdXRwdXQ9bS5vdXRwdXQuc2xpY2UoMCwtKG4ub3V0cHV0K0Iub3V0cHV0KS5sZW5ndGgpO24ub3V0cHV0PWAoPzoke24ub3V0cHV0fWA7Qi50eXBlPVwiZ2xvYnN0YXJcIjtCLm91dHB1dD1nbG9ic3Rhcih1KSsodS5zdHJpY3RTbGFzaGVzP1wiKVwiOlwifCQpXCIpO0IudmFsdWUrPUc7bS5nbG9ic3Rhcj10cnVlO20ub3V0cHV0Kz1uLm91dHB1dCtCLm91dHB1dDtjb25zdW1lKEcpO2NvbnRpbnVlfWlmKG4udHlwZT09PVwic2xhc2hcIiYmbi5wcmV2LnR5cGUhPT1cImJvc1wiJiZlWzBdPT09XCIvXCIpe2NvbnN0IHQ9ZVsxXSE9PXZvaWQgMD9cInwkXCI6XCJcIjttLm91dHB1dD1tLm91dHB1dC5zbGljZSgwLC0obi5vdXRwdXQrQi5vdXRwdXQpLmxlbmd0aCk7bi5vdXRwdXQ9YCg/OiR7bi5vdXRwdXR9YDtCLnR5cGU9XCJnbG9ic3RhclwiO0Iub3V0cHV0PWAke2dsb2JzdGFyKHUpfSR7Yn18JHtifSR7dH0pYDtCLnZhbHVlKz1HO20ub3V0cHV0Kz1uLm91dHB1dCtCLm91dHB1dDttLmdsb2JzdGFyPXRydWU7Y29uc3VtZShHK00oKSk7cHVzaCh7dHlwZTpcInNsYXNoXCIsdmFsdWU6XCIvXCIsb3V0cHV0OlwiXCJ9KTtjb250aW51ZX1pZihuLnR5cGU9PT1cImJvc1wiJiZlWzBdPT09XCIvXCIpe0IudHlwZT1cImdsb2JzdGFyXCI7Qi52YWx1ZSs9RztCLm91dHB1dD1gKD86Xnwke2J9fCR7Z2xvYnN0YXIodSl9JHtifSlgO20ub3V0cHV0PUIub3V0cHV0O20uZ2xvYnN0YXI9dHJ1ZTtjb25zdW1lKEcrTSgpKTtwdXNoKHt0eXBlOlwic2xhc2hcIix2YWx1ZTpcIi9cIixvdXRwdXQ6XCJcIn0pO2NvbnRpbnVlfW0ub3V0cHV0PW0ub3V0cHV0LnNsaWNlKDAsLUIub3V0cHV0Lmxlbmd0aCk7Qi50eXBlPVwiZ2xvYnN0YXJcIjtCLm91dHB1dD1nbG9ic3Rhcih1KTtCLnZhbHVlKz1HO20ub3V0cHV0Kz1CLm91dHB1dDttLmdsb2JzdGFyPXRydWU7Y29uc3VtZShHKTtjb250aW51ZX1jb25zdCBuPXt0eXBlOlwic3RhclwiLHZhbHVlOkcsb3V0cHV0Omt9O2lmKHUuYmFzaD09PXRydWUpe24ub3V0cHV0PVwiLio/XCI7aWYoQi50eXBlPT09XCJib3NcInx8Qi50eXBlPT09XCJzbGFzaFwiKXtuLm91dHB1dD1UK24ub3V0cHV0fXB1c2gobik7Y29udGludWV9aWYoQiYmKEIudHlwZT09PVwiYnJhY2tldFwifHxCLnR5cGU9PT1cInBhcmVuXCIpJiZ1LnJlZ2V4PT09dHJ1ZSl7bi5vdXRwdXQ9RztwdXNoKG4pO2NvbnRpbnVlfWlmKG0uaW5kZXg9PT1tLnN0YXJ0fHxCLnR5cGU9PT1cInNsYXNoXCJ8fEIudHlwZT09PVwiZG90XCIpe2lmKEIudHlwZT09PVwiZG90XCIpe20ub3V0cHV0Kz14O0Iub3V0cHV0Kz14fWVsc2UgaWYodS5kb3Q9PT10cnVlKXttLm91dHB1dCs9UztCLm91dHB1dCs9U31lbHNle20ub3V0cHV0Kz1UO0Iub3V0cHV0Kz1UfWlmKEQoKSE9PVwiKlwiKXttLm91dHB1dCs9QztCLm91dHB1dCs9Q319cHVzaChuKX13aGlsZShtLmJyYWNrZXRzPjApe2lmKHUuc3RyaWN0QnJhY2tldHM9PT10cnVlKXRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcihcImNsb3NpbmdcIixcIl1cIikpO20ub3V0cHV0PW8uZXNjYXBlTGFzdChtLm91dHB1dCxcIltcIik7ZGVjcmVtZW50KFwiYnJhY2tldHNcIil9d2hpbGUobS5wYXJlbnM+MCl7aWYodS5zdHJpY3RCcmFja2V0cz09PXRydWUpdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKFwiY2xvc2luZ1wiLFwiKVwiKSk7bS5vdXRwdXQ9by5lc2NhcGVMYXN0KG0ub3V0cHV0LFwiKFwiKTtkZWNyZW1lbnQoXCJwYXJlbnNcIil9d2hpbGUobS5icmFjZXM+MCl7aWYodS5zdHJpY3RCcmFja2V0cz09PXRydWUpdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKFwiY2xvc2luZ1wiLFwifVwiKSk7bS5vdXRwdXQ9by5lc2NhcGVMYXN0KG0ub3V0cHV0LFwie1wiKTtkZWNyZW1lbnQoXCJicmFjZXNcIil9aWYodS5zdHJpY3RTbGFzaGVzIT09dHJ1ZSYmKEIudHlwZT09PVwic3RhclwifHxCLnR5cGU9PT1cImJyYWNrZXRcIikpe3B1c2goe3R5cGU6XCJtYXliZV9zbGFzaFwiLHZhbHVlOlwiXCIsb3V0cHV0OmAke2J9P2B9KX1pZihtLmJhY2t0cmFjaz09PXRydWUpe20ub3V0cHV0PVwiXCI7Zm9yKGNvbnN0IHQgb2YgbS50b2tlbnMpe20ub3V0cHV0Kz10Lm91dHB1dCE9bnVsbD90Lm91dHB1dDp0LnZhbHVlO2lmKHQuc3VmZml4KXttLm91dHB1dCs9dC5zdWZmaXh9fX1yZXR1cm4gbX07cGFyc2UuZmFzdHBhdGhzPSh0LGUpPT57Y29uc3QgdT17Li4uZX07Y29uc3Qgcj10eXBlb2YgdS5tYXhMZW5ndGg9PT1cIm51bWJlclwiP01hdGgubWluKHMsdS5tYXhMZW5ndGgpOnM7Y29uc3QgYT10Lmxlbmd0aDtpZihhPnIpe3Rocm93IG5ldyBTeW50YXhFcnJvcihgSW5wdXQgbGVuZ3RoOiAke2F9LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7cn1gKX10PWNbdF18fHQ7Y29uc3R7RE9UX0xJVEVSQUw6aSxTTEFTSF9MSVRFUkFMOnAsT05FX0NIQVI6bCxET1RTX1NMQVNIOmYsTk9fRE9UOkEsTk9fRE9UUzpfLE5PX0RPVFNfU0xBU0g6UixTVEFSOkUsU1RBUlRfQU5DSE9SOmh9PW4uZ2xvYkNoYXJzKHUud2luZG93cyk7Y29uc3QgZz11LmRvdD9fOkE7Y29uc3QgYj11LmRvdD9SOkE7Y29uc3QgQz11LmNhcHR1cmU/XCJcIjpcIj86XCI7Y29uc3QgeT17bmVnYXRlZDpmYWxzZSxwcmVmaXg6XCJcIn07bGV0ICQ9dS5iYXNoPT09dHJ1ZT9cIi4qP1wiOkU7aWYodS5jYXB0dXJlKXskPWAoJHskfSlgfWNvbnN0IGdsb2JzdGFyPXQ9PntpZih0Lm5vZ2xvYnN0YXI9PT10cnVlKXJldHVybiAkO3JldHVybmAoJHtDfSg/Oig/ISR7aH0ke3QuZG90P2Y6aX0pLikqPylgfTtjb25zdCBjcmVhdGU9dD0+e3N3aXRjaCh0KXtjYXNlXCIqXCI6cmV0dXJuYCR7Z30ke2x9JHskfWA7Y2FzZVwiLipcIjpyZXR1cm5gJHtpfSR7bH0keyR9YDtjYXNlXCIqLipcIjpyZXR1cm5gJHtnfSR7JH0ke2l9JHtsfSR7JH1gO2Nhc2VcIiovKlwiOnJldHVybmAke2d9JHskfSR7cH0ke2x9JHtifSR7JH1gO2Nhc2VcIioqXCI6cmV0dXJuIGcrZ2xvYnN0YXIodSk7Y2FzZVwiKiovKlwiOnJldHVybmAoPzoke2d9JHtnbG9ic3Rhcih1KX0ke3B9KT8ke2J9JHtsfSR7JH1gO2Nhc2VcIioqLyouKlwiOnJldHVybmAoPzoke2d9JHtnbG9ic3Rhcih1KX0ke3B9KT8ke2J9JHskfSR7aX0ke2x9JHskfWA7Y2FzZVwiKiovLipcIjpyZXR1cm5gKD86JHtnfSR7Z2xvYnN0YXIodSl9JHtwfSk/JHtpfSR7bH0keyR9YDtkZWZhdWx0Ontjb25zdCBlPS9eKC4qPylcXC4oXFx3KykkLy5leGVjKHQpO2lmKCFlKXJldHVybjtjb25zdCB1PWNyZWF0ZShlWzFdKTtpZighdSlyZXR1cm47cmV0dXJuIHUraStlWzJdfX19O2NvbnN0IHg9by5yZW1vdmVQcmVmaXgodCx5KTtsZXQgUz1jcmVhdGUoeCk7aWYoUyYmdS5zdHJpY3RTbGFzaGVzIT09dHJ1ZSl7Uys9YCR7cH0/YH1yZXR1cm4gU307dC5leHBvcnRzPXBhcnNlfSw1MTA6KHQsZSx1KT0+e2NvbnN0IG49dSg3MTYpO2NvbnN0IG89dSg2OTcpO2NvbnN0IHM9dSg5Nik7Y29uc3Qgcj11KDE1NCk7Y29uc3QgaXNPYmplY3Q9dD0+dCYmdHlwZW9mIHQ9PT1cIm9iamVjdFwiJiYhQXJyYXkuaXNBcnJheSh0KTtjb25zdCBwaWNvbWF0Y2g9KHQsZSx1PWZhbHNlKT0+e2lmKEFycmF5LmlzQXJyYXkodCkpe2NvbnN0IG49dC5tYXAoKHQ9PnBpY29tYXRjaCh0LGUsdSkpKTtjb25zdCBhcnJheU1hdGNoZXI9dD0+e2Zvcihjb25zdCBlIG9mIG4pe2NvbnN0IHU9ZSh0KTtpZih1KXJldHVybiB1fXJldHVybiBmYWxzZX07cmV0dXJuIGFycmF5TWF0Y2hlcn1jb25zdCBuPWlzT2JqZWN0KHQpJiZ0LnRva2VucyYmdC5pbnB1dDtpZih0PT09XCJcInx8dHlwZW9mIHQhPT1cInN0cmluZ1wiJiYhbil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIHBhdHRlcm4gdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nXCIpfWNvbnN0IG89ZXx8e307Y29uc3Qgcz1vLndpbmRvd3M7Y29uc3Qgcj1uP3BpY29tYXRjaC5jb21waWxlUmUodCxlKTpwaWNvbWF0Y2gubWFrZVJlKHQsZSxmYWxzZSx0cnVlKTtjb25zdCBhPXIuc3RhdGU7ZGVsZXRlIHIuc3RhdGU7bGV0IGlzSWdub3JlZD0oKT0+ZmFsc2U7aWYoby5pZ25vcmUpe2NvbnN0IHQ9ey4uLmUsaWdub3JlOm51bGwsb25NYXRjaDpudWxsLG9uUmVzdWx0Om51bGx9O2lzSWdub3JlZD1waWNvbWF0Y2goby5pZ25vcmUsdCx1KX1jb25zdCBtYXRjaGVyPSh1LG49ZmFsc2UpPT57Y29uc3R7aXNNYXRjaDppLG1hdGNoOmMsb3V0cHV0OnB9PXBpY29tYXRjaC50ZXN0KHUscixlLHtnbG9iOnQscG9zaXg6c30pO2NvbnN0IGw9e2dsb2I6dCxzdGF0ZTphLHJlZ2V4OnIscG9zaXg6cyxpbnB1dDp1LG91dHB1dDpwLG1hdGNoOmMsaXNNYXRjaDppfTtpZih0eXBlb2Ygby5vblJlc3VsdD09PVwiZnVuY3Rpb25cIil7by5vblJlc3VsdChsKX1pZihpPT09ZmFsc2Upe2wuaXNNYXRjaD1mYWxzZTtyZXR1cm4gbj9sOmZhbHNlfWlmKGlzSWdub3JlZCh1KSl7aWYodHlwZW9mIG8ub25JZ25vcmU9PT1cImZ1bmN0aW9uXCIpe28ub25JZ25vcmUobCl9bC5pc01hdGNoPWZhbHNlO3JldHVybiBuP2w6ZmFsc2V9aWYodHlwZW9mIG8ub25NYXRjaD09PVwiZnVuY3Rpb25cIil7by5vbk1hdGNoKGwpfXJldHVybiBuP2w6dHJ1ZX07aWYodSl7bWF0Y2hlci5zdGF0ZT1hfXJldHVybiBtYXRjaGVyfTtwaWNvbWF0Y2gudGVzdD0odCxlLHUse2dsb2I6bixwb3NpeDpvfT17fSk9PntpZih0eXBlb2YgdCE9PVwic3RyaW5nXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBpbnB1dCB0byBiZSBhIHN0cmluZ1wiKX1pZih0PT09XCJcIil7cmV0dXJue2lzTWF0Y2g6ZmFsc2Usb3V0cHV0OlwiXCJ9fWNvbnN0IHI9dXx8e307Y29uc3QgYT1yLmZvcm1hdHx8KG8/cy50b1Bvc2l4U2xhc2hlczpudWxsKTtsZXQgaT10PT09bjtsZXQgYz1pJiZhP2EodCk6dDtpZihpPT09ZmFsc2Upe2M9YT9hKHQpOnQ7aT1jPT09bn1pZihpPT09ZmFsc2V8fHIuY2FwdHVyZT09PXRydWUpe2lmKHIubWF0Y2hCYXNlPT09dHJ1ZXx8ci5iYXNlbmFtZT09PXRydWUpe2k9cGljb21hdGNoLm1hdGNoQmFzZSh0LGUsdSxvKX1lbHNle2k9ZS5leGVjKGMpfX1yZXR1cm57aXNNYXRjaDpCb29sZWFuKGkpLG1hdGNoOmksb3V0cHV0OmN9fTtwaWNvbWF0Y2gubWF0Y2hCYXNlPSh0LGUsdSk9Pntjb25zdCBuPWUgaW5zdGFuY2VvZiBSZWdFeHA/ZTpwaWNvbWF0Y2gubWFrZVJlKGUsdSk7cmV0dXJuIG4udGVzdChzLmJhc2VuYW1lKHQpKX07cGljb21hdGNoLmlzTWF0Y2g9KHQsZSx1KT0+cGljb21hdGNoKGUsdSkodCk7cGljb21hdGNoLnBhcnNlPSh0LGUpPT57aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5tYXAoKHQ9PnBpY29tYXRjaC5wYXJzZSh0LGUpKSk7cmV0dXJuIG8odCx7Li4uZSxmYXN0cGF0aHM6ZmFsc2V9KX07cGljb21hdGNoLnNjYW49KHQsZSk9Pm4odCxlKTtwaWNvbWF0Y2guY29tcGlsZVJlPSh0LGUsdT1mYWxzZSxuPWZhbHNlKT0+e2lmKHU9PT10cnVlKXtyZXR1cm4gdC5vdXRwdXR9Y29uc3Qgbz1lfHx7fTtjb25zdCBzPW8uY29udGFpbnM/XCJcIjpcIl5cIjtjb25zdCByPW8uY29udGFpbnM/XCJcIjpcIiRcIjtsZXQgYT1gJHtzfSg/OiR7dC5vdXRwdXR9KSR7cn1gO2lmKHQmJnQubmVnYXRlZD09PXRydWUpe2E9YF4oPyEke2F9KS4qJGB9Y29uc3QgaT1waWNvbWF0Y2gudG9SZWdleChhLGUpO2lmKG49PT10cnVlKXtpLnN0YXRlPXR9cmV0dXJuIGl9O3BpY29tYXRjaC5tYWtlUmU9KHQsZT17fSx1PWZhbHNlLG49ZmFsc2UpPT57aWYoIXR8fHR5cGVvZiB0IT09XCJzdHJpbmdcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgbm9uLWVtcHR5IHN0cmluZ1wiKX1sZXQgcz17bmVnYXRlZDpmYWxzZSxmYXN0cGF0aHM6dHJ1ZX07aWYoZS5mYXN0cGF0aHMhPT1mYWxzZSYmKHRbMF09PT1cIi5cInx8dFswXT09PVwiKlwiKSl7cy5vdXRwdXQ9by5mYXN0cGF0aHModCxlKX1pZighcy5vdXRwdXQpe3M9byh0LGUpfXJldHVybiBwaWNvbWF0Y2guY29tcGlsZVJlKHMsZSx1LG4pfTtwaWNvbWF0Y2gudG9SZWdleD0odCxlKT0+e3RyeXtjb25zdCB1PWV8fHt9O3JldHVybiBuZXcgUmVnRXhwKHQsdS5mbGFnc3x8KHUubm9jYXNlP1wiaVwiOlwiXCIpKX1jYXRjaCh0KXtpZihlJiZlLmRlYnVnPT09dHJ1ZSl0aHJvdyB0O3JldHVybi8kXi99fTtwaWNvbWF0Y2guY29uc3RhbnRzPXI7dC5leHBvcnRzPXBpY29tYXRjaH0sNzE2Oih0LGUsdSk9Pntjb25zdCBuPXUoOTYpO2NvbnN0e0NIQVJfQVNURVJJU0s6byxDSEFSX0FUOnMsQ0hBUl9CQUNLV0FSRF9TTEFTSDpyLENIQVJfQ09NTUE6YSxDSEFSX0RPVDppLENIQVJfRVhDTEFNQVRJT05fTUFSSzpjLENIQVJfRk9SV0FSRF9TTEFTSDpwLENIQVJfTEVGVF9DVVJMWV9CUkFDRTpsLENIQVJfTEVGVF9QQVJFTlRIRVNFUzpmLENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDpBLENIQVJfUExVUzpfLENIQVJfUVVFU1RJT05fTUFSSzpSLENIQVJfUklHSFRfQ1VSTFlfQlJBQ0U6RSxDSEFSX1JJR0hUX1BBUkVOVEhFU0VTOmgsQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDpnfT11KDE1NCk7Y29uc3QgaXNQYXRoU2VwYXJhdG9yPXQ9PnQ9PT1wfHx0PT09cjtjb25zdCBkZXB0aD10PT57aWYodC5pc1ByZWZpeCE9PXRydWUpe3QuZGVwdGg9dC5pc0dsb2JzdGFyP0luZmluaXR5OjF9fTtjb25zdCBzY2FuPSh0LGUpPT57Y29uc3QgdT1lfHx7fTtjb25zdCBiPXQubGVuZ3RoLTE7Y29uc3QgQz11LnBhcnRzPT09dHJ1ZXx8dS5zY2FuVG9FbmQ9PT10cnVlO2NvbnN0IHk9W107Y29uc3QgJD1bXTtjb25zdCB4PVtdO2xldCBTPXQ7bGV0IEg9LTE7bGV0IHY9MDtsZXQgZD0wO2xldCBMPWZhbHNlO2xldCBUPWZhbHNlO2xldCBPPWZhbHNlO2xldCBrPWZhbHNlO2xldCBtPWZhbHNlO2xldCB3PWZhbHNlO2xldCBOPWZhbHNlO2xldCBJPWZhbHNlO2xldCBCPWZhbHNlO2xldCBHPWZhbHNlO2xldCBEPTA7bGV0IE07bGV0IFA7bGV0IEs9e3ZhbHVlOlwiXCIsZGVwdGg6MCxpc0dsb2I6ZmFsc2V9O2NvbnN0IGVvcz0oKT0+SD49Yjtjb25zdCBwZWVrPSgpPT5TLmNoYXJDb2RlQXQoSCsxKTtjb25zdCBhZHZhbmNlPSgpPT57TT1QO3JldHVybiBTLmNoYXJDb2RlQXQoKytIKX07d2hpbGUoSDxiKXtQPWFkdmFuY2UoKTtsZXQgdDtpZihQPT09cil7Tj1LLmJhY2tzbGFzaGVzPXRydWU7UD1hZHZhbmNlKCk7aWYoUD09PWwpe3c9dHJ1ZX1jb250aW51ZX1pZih3PT09dHJ1ZXx8UD09PWwpe0QrKzt3aGlsZShlb3MoKSE9PXRydWUmJihQPWFkdmFuY2UoKSkpe2lmKFA9PT1yKXtOPUsuYmFja3NsYXNoZXM9dHJ1ZTthZHZhbmNlKCk7Y29udGludWV9aWYoUD09PWwpe0QrKztjb250aW51ZX1pZih3IT09dHJ1ZSYmUD09PWkmJihQPWFkdmFuY2UoKSk9PT1pKXtMPUsuaXNCcmFjZT10cnVlO089Sy5pc0dsb2I9dHJ1ZTtHPXRydWU7aWYoQz09PXRydWUpe2NvbnRpbnVlfWJyZWFrfWlmKHchPT10cnVlJiZQPT09YSl7TD1LLmlzQnJhY2U9dHJ1ZTtPPUsuaXNHbG9iPXRydWU7Rz10cnVlO2lmKEM9PT10cnVlKXtjb250aW51ZX1icmVha31pZihQPT09RSl7RC0tO2lmKEQ9PT0wKXt3PWZhbHNlO0w9Sy5pc0JyYWNlPXRydWU7Rz10cnVlO2JyZWFrfX19aWYoQz09PXRydWUpe2NvbnRpbnVlfWJyZWFrfWlmKFA9PT1wKXt5LnB1c2goSCk7JC5wdXNoKEspO0s9e3ZhbHVlOlwiXCIsZGVwdGg6MCxpc0dsb2I6ZmFsc2V9O2lmKEc9PT10cnVlKWNvbnRpbnVlO2lmKE09PT1pJiZIPT09disxKXt2Kz0yO2NvbnRpbnVlfWQ9SCsxO2NvbnRpbnVlfWlmKHUubm9leHQhPT10cnVlKXtjb25zdCB0PVA9PT1ffHxQPT09c3x8UD09PW98fFA9PT1SfHxQPT09YztpZih0PT09dHJ1ZSYmcGVlaygpPT09Zil7Tz1LLmlzR2xvYj10cnVlO2s9Sy5pc0V4dGdsb2I9dHJ1ZTtHPXRydWU7aWYoUD09PWMmJkg9PT12KXtCPXRydWV9aWYoQz09PXRydWUpe3doaWxlKGVvcygpIT09dHJ1ZSYmKFA9YWR2YW5jZSgpKSl7aWYoUD09PXIpe049Sy5iYWNrc2xhc2hlcz10cnVlO1A9YWR2YW5jZSgpO2NvbnRpbnVlfWlmKFA9PT1oKXtPPUsuaXNHbG9iPXRydWU7Rz10cnVlO2JyZWFrfX1jb250aW51ZX1icmVha319aWYoUD09PW8pe2lmKE09PT1vKW09Sy5pc0dsb2JzdGFyPXRydWU7Tz1LLmlzR2xvYj10cnVlO0c9dHJ1ZTtpZihDPT09dHJ1ZSl7Y29udGludWV9YnJlYWt9aWYoUD09PVIpe089Sy5pc0dsb2I9dHJ1ZTtHPXRydWU7aWYoQz09PXRydWUpe2NvbnRpbnVlfWJyZWFrfWlmKFA9PT1BKXt3aGlsZShlb3MoKSE9PXRydWUmJih0PWFkdmFuY2UoKSkpe2lmKHQ9PT1yKXtOPUsuYmFja3NsYXNoZXM9dHJ1ZTthZHZhbmNlKCk7Y29udGludWV9aWYodD09PWcpe1Q9Sy5pc0JyYWNrZXQ9dHJ1ZTtPPUsuaXNHbG9iPXRydWU7Rz10cnVlO2JyZWFrfX1pZihDPT09dHJ1ZSl7Y29udGludWV9YnJlYWt9aWYodS5ub25lZ2F0ZSE9PXRydWUmJlA9PT1jJiZIPT09dil7ST1LLm5lZ2F0ZWQ9dHJ1ZTt2Kys7Y29udGludWV9aWYodS5ub3BhcmVuIT09dHJ1ZSYmUD09PWYpe089Sy5pc0dsb2I9dHJ1ZTtpZihDPT09dHJ1ZSl7d2hpbGUoZW9zKCkhPT10cnVlJiYoUD1hZHZhbmNlKCkpKXtpZihQPT09Zil7Tj1LLmJhY2tzbGFzaGVzPXRydWU7UD1hZHZhbmNlKCk7Y29udGludWV9aWYoUD09PWgpe0c9dHJ1ZTticmVha319Y29udGludWV9YnJlYWt9aWYoTz09PXRydWUpe0c9dHJ1ZTtpZihDPT09dHJ1ZSl7Y29udGludWV9YnJlYWt9fWlmKHUubm9leHQ9PT10cnVlKXtrPWZhbHNlO089ZmFsc2V9bGV0IFU9UztsZXQgWD1cIlwiO2xldCBGPVwiXCI7aWYodj4wKXtYPVMuc2xpY2UoMCx2KTtTPVMuc2xpY2Uodik7ZC09dn1pZihVJiZPPT09dHJ1ZSYmZD4wKXtVPVMuc2xpY2UoMCxkKTtGPVMuc2xpY2UoZCl9ZWxzZSBpZihPPT09dHJ1ZSl7VT1cIlwiO0Y9U31lbHNle1U9U31pZihVJiZVIT09XCJcIiYmVSE9PVwiL1wiJiZVIT09Uyl7aWYoaXNQYXRoU2VwYXJhdG9yKFUuY2hhckNvZGVBdChVLmxlbmd0aC0xKSkpe1U9VS5zbGljZSgwLC0xKX19aWYodS51bmVzY2FwZT09PXRydWUpe2lmKEYpRj1uLnJlbW92ZUJhY2tzbGFzaGVzKEYpO2lmKFUmJk49PT10cnVlKXtVPW4ucmVtb3ZlQmFja3NsYXNoZXMoVSl9fWNvbnN0IFE9e3ByZWZpeDpYLGlucHV0OnQsc3RhcnQ6dixiYXNlOlUsZ2xvYjpGLGlzQnJhY2U6TCxpc0JyYWNrZXQ6VCxpc0dsb2I6Tyxpc0V4dGdsb2I6ayxpc0dsb2JzdGFyOm0sbmVnYXRlZDpJLG5lZ2F0ZWRFeHRnbG9iOkJ9O2lmKHUudG9rZW5zPT09dHJ1ZSl7US5tYXhEZXB0aD0wO2lmKCFpc1BhdGhTZXBhcmF0b3IoUCkpeyQucHVzaChLKX1RLnRva2Vucz0kfWlmKHUucGFydHM9PT10cnVlfHx1LnRva2Vucz09PXRydWUpe2xldCBlO2ZvcihsZXQgbj0wO248eS5sZW5ndGg7bisrKXtjb25zdCBvPWU/ZSsxOnY7Y29uc3Qgcz15W25dO2NvbnN0IHI9dC5zbGljZShvLHMpO2lmKHUudG9rZW5zKXtpZihuPT09MCYmdiE9PTApeyRbbl0uaXNQcmVmaXg9dHJ1ZTskW25dLnZhbHVlPVh9ZWxzZXskW25dLnZhbHVlPXJ9ZGVwdGgoJFtuXSk7US5tYXhEZXB0aCs9JFtuXS5kZXB0aH1pZihuIT09MHx8ciE9PVwiXCIpe3gucHVzaChyKX1lPXN9aWYoZSYmZSsxPHQubGVuZ3RoKXtjb25zdCBuPXQuc2xpY2UoZSsxKTt4LnB1c2gobik7aWYodS50b2tlbnMpeyRbJC5sZW5ndGgtMV0udmFsdWU9bjtkZXB0aCgkWyQubGVuZ3RoLTFdKTtRLm1heERlcHRoKz0kWyQubGVuZ3RoLTFdLmRlcHRofX1RLnNsYXNoZXM9eTtRLnBhcnRzPXh9cmV0dXJuIFF9O3QuZXhwb3J0cz1zY2FufSw5NjoodCxlLHUpPT57Y29uc3R7UkVHRVhfQkFDS1NMQVNIOm4sUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSDpvLFJFR0VYX1NQRUNJQUxfQ0hBUlM6cyxSRUdFWF9TUEVDSUFMX0NIQVJTX0dMT0JBTDpyfT11KDE1NCk7ZS5pc09iamVjdD10PT50IT09bnVsbCYmdHlwZW9mIHQ9PT1cIm9iamVjdFwiJiYhQXJyYXkuaXNBcnJheSh0KTtlLmhhc1JlZ2V4Q2hhcnM9dD0+cy50ZXN0KHQpO2UuaXNSZWdleENoYXI9dD0+dC5sZW5ndGg9PT0xJiZlLmhhc1JlZ2V4Q2hhcnModCk7ZS5lc2NhcGVSZWdleD10PT50LnJlcGxhY2UocixcIlxcXFwkMVwiKTtlLnRvUG9zaXhTbGFzaGVzPXQ9PnQucmVwbGFjZShuLFwiL1wiKTtlLnJlbW92ZUJhY2tzbGFzaGVzPXQ9PnQucmVwbGFjZShvLCh0PT50PT09XCJcXFxcXCI/XCJcIjp0KSk7ZS5lc2NhcGVMYXN0PSh0LHUsbik9Pntjb25zdCBvPXQubGFzdEluZGV4T2YodSxuKTtpZihvPT09LTEpcmV0dXJuIHQ7aWYodFtvLTFdPT09XCJcXFxcXCIpcmV0dXJuIGUuZXNjYXBlTGFzdCh0LHUsby0xKTtyZXR1cm5gJHt0LnNsaWNlKDAsbyl9XFxcXCR7dC5zbGljZShvKX1gfTtlLnJlbW92ZVByZWZpeD0odCxlPXt9KT0+e2xldCB1PXQ7aWYodS5zdGFydHNXaXRoKFwiLi9cIikpe3U9dS5zbGljZSgyKTtlLnByZWZpeD1cIi4vXCJ9cmV0dXJuIHV9O2Uud3JhcE91dHB1dD0odCxlPXt9LHU9e30pPT57Y29uc3Qgbj11LmNvbnRhaW5zP1wiXCI6XCJeXCI7Y29uc3Qgbz11LmNvbnRhaW5zP1wiXCI6XCIkXCI7bGV0IHM9YCR7bn0oPzoke3R9KSR7b31gO2lmKGUubmVnYXRlZD09PXRydWUpe3M9YCg/Ol4oPyEke3N9KS4qJClgfXJldHVybiBzfTtlLmJhc2VuYW1lPSh0LHt3aW5kb3dzOmV9PXt9KT0+e2NvbnN0IHU9dC5zcGxpdChlPy9bXFxcXC9dLzpcIi9cIik7Y29uc3Qgbj11W3UubGVuZ3RoLTFdO2lmKG49PT1cIlwiKXtyZXR1cm4gdVt1Lmxlbmd0aC0yXX1yZXR1cm4gbn19fTt2YXIgZT17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHUpe3ZhciBuPWVbdV07aWYobiE9PXVuZGVmaW5lZCl7cmV0dXJuIG4uZXhwb3J0c312YXIgbz1lW3VdPXtleHBvcnRzOnt9fTt2YXIgcz10cnVlO3RyeXt0W3VdKG8sby5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO3M9ZmFsc2V9ZmluYWxseXtpZihzKWRlbGV0ZSBlW3VdfXJldHVybiBvLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciB1PV9fbmNjd3Bja19yZXF1aXJlX18oMTcwKTttb2R1bGUuZXhwb3J0cz11fSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/picomatch/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js":
/*!************************************************************************!*\
!*** ./node_modules/next/dist/compiled/safe-stable-stringify/index.js ***!
\************************************************************************/
/***/ ((module) => {
eval("(function(){\"use strict\";var e={879:function(e,t){const{hasOwnProperty:n}=Object.prototype;const r=configure();r.configure=configure;r.stringify=r;r.default=r;t.stringify=r;t.configure=configure;e.exports=r;const i=/[\\u0000-\\u001f\\u0022\\u005c\\ud800-\\udfff]/;function strEscape(e){if(e.length<5e3&&!i.test(e)){return`\"${e}\"`}return JSON.stringify(e)}function sort(e,t){if(e.length>200||t){return e.sort(t)}for(let t=1;t<e.length;t++){const n=e[t];let r=t;while(r!==0&&e[r-1]>n){e[r]=e[r-1];r--}e[r]=n}return e}const f=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function isTypedArrayWithEntries(e){return f.call(e)!==undefined&&e.length!==0}function stringifyTypedArray(e,t,n){if(e.length<n){n=e.length}const r=t===\",\"?\"\":\" \";let i=`\"0\":${r}${e[0]}`;for(let f=1;f<n;f++){i+=`${t}\"${f}\":${r}${e[f]}`}return i}function getCircularValueOption(e){if(n.call(e,\"circularValue\")){const t=e.circularValue;if(typeof t===\"string\"){return`\"${t}\"`}if(t==null){return t}if(t===Error||t===TypeError){return{toString(){throw new TypeError(\"Converting circular structure to JSON\")}}}throw new TypeError('The \"circularValue\" argument must be of type string or the value null or undefined')}return'\"[Circular]\"'}function getDeterministicOption(e){let t;if(n.call(e,\"deterministic\")){t=e.deterministic;if(typeof t!==\"boolean\"&&typeof t!==\"function\"){throw new TypeError('The \"deterministic\" argument must be of type boolean or comparator function')}}return t===undefined?true:t}function getBooleanOption(e,t){let r;if(n.call(e,t)){r=e[t];if(typeof r!==\"boolean\"){throw new TypeError(`The \"${t}\" argument must be of type boolean`)}}return r===undefined?true:r}function getPositiveIntegerOption(e,t){let r;if(n.call(e,t)){r=e[t];if(typeof r!==\"number\"){throw new TypeError(`The \"${t}\" argument must be of type number`)}if(!Number.isInteger(r)){throw new TypeError(`The \"${t}\" argument must be an integer`)}if(r<1){throw new RangeError(`The \"${t}\" argument must be >= 1`)}}return r===undefined?Infinity:r}function getItemCount(e){if(e===1){return\"1 item\"}return`${e} items`}function getUniqueReplacerSet(e){const t=new Set;for(const n of e){if(typeof n===\"string\"||typeof n===\"number\"){t.add(String(n))}}return t}function getStrictOption(e){if(n.call(e,\"strict\")){const t=e.strict;if(typeof t!==\"boolean\"){throw new TypeError('The \"strict\" argument must be of type boolean')}if(t){return e=>{let t=`Object can not safely be stringified. Received type ${typeof e}`;if(typeof e!==\"function\")t+=` (${e.toString()})`;throw new Error(t)}}}}function configure(e){e={...e};const t=getStrictOption(e);if(t){if(e.bigint===undefined){e.bigint=false}if(!(\"circularValue\"in e)){e.circularValue=Error}}const n=getCircularValueOption(e);const r=getBooleanOption(e,\"bigint\");const i=getDeterministicOption(e);const f=typeof i===\"function\"?i:undefined;const u=getPositiveIntegerOption(e,\"maximumDepth\");const o=getPositiveIntegerOption(e,\"maximumBreadth\");function stringifyFnReplacer(e,s,l,c,a,g){let p=s[e];if(typeof p===\"object\"&&p!==null&&typeof p.toJSON===\"function\"){p=p.toJSON(e)}p=c.call(s,e,p);switch(typeof p){case\"string\":return strEscape(p);case\"object\":{if(p===null){return\"null\"}if(l.indexOf(p)!==-1){return n}let e=\"\";let t=\",\";const r=g;if(Array.isArray(p)){if(p.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(p);if(a!==\"\"){g+=a;e+=`\\n${g}`;t=`,\\n${g}`}const n=Math.min(p.length,o);let i=0;for(;i<n-1;i++){const n=stringifyFnReplacer(String(i),p,l,c,a,g);e+=n!==undefined?n:\"null\";e+=t}const f=stringifyFnReplacer(String(i),p,l,c,a,g);e+=f!==undefined?f:\"null\";if(p.length-1>o){const n=p.length-o-1;e+=`${t}\"... ${getItemCount(n)} not stringified\"`}if(a!==\"\"){e+=`\\n${r}`}l.pop();return`[${e}]`}let s=Object.keys(p);const y=s.length;if(y===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}let d=\"\";let h=\"\";if(a!==\"\"){g+=a;t=`,\\n${g}`;d=\" \"}const $=Math.min(y,o);if(i&&!isTypedArrayWithEntries(p)){s=sort(s,f)}l.push(p);for(let n=0;n<$;n++){const r=s[n];const i=stringifyFnReplacer(r,p,l,c,a,g);if(i!==undefined){e+=`${h}${strEscape(r)}:${d}${i}`;h=t}}if(y>o){const n=y-o;e+=`${h}\"...\":${d}\"${getItemCount(n)} not stringified\"`;h=t}if(a!==\"\"&&h.length>1){e=`\\n${g}${e}\\n${r}`}l.pop();return`{${e}}`}case\"number\":return isFinite(p)?String(p):t?t(p):\"null\";case\"boolean\":return p===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(p)}default:return t?t(p):undefined}}function stringifyArrayReplacer(e,i,f,s,l,c){if(typeof i===\"object\"&&i!==null&&typeof i.toJSON===\"function\"){i=i.toJSON(e)}switch(typeof i){case\"string\":return strEscape(i);case\"object\":{if(i===null){return\"null\"}if(f.indexOf(i)!==-1){return n}const e=c;let t=\"\";let r=\",\";if(Array.isArray(i)){if(i.length===0){return\"[]\"}if(u<f.length+1){return'\"[Array]\"'}f.push(i);if(l!==\"\"){c+=l;t+=`\\n${c}`;r=`,\\n${c}`}const n=Math.min(i.length,o);let a=0;for(;a<n-1;a++){const e=stringifyArrayReplacer(String(a),i[a],f,s,l,c);t+=e!==undefined?e:\"null\";t+=r}const g=stringifyArrayReplacer(String(a),i[a],f,s,l,c);t+=g!==undefined?g:\"null\";if(i.length-1>o){const e=i.length-o-1;t+=`${r}\"... ${getItemCount(e)} not stringified\"`}if(l!==\"\"){t+=`\\n${e}`}f.pop();return`[${t}]`}f.push(i);let a=\"\";if(l!==\"\"){c+=l;r=`,\\n${c}`;a=\" \"}let g=\"\";for(const e of s){const n=stringifyArrayReplacer(e,i[e],f,s,l,c);if(n!==undefined){t+=`${g}${strEscape(e)}:${a}${n}`;g=r}}if(l!==\"\"&&g.length>1){t=`\\n${c}${t}\\n${e}`}f.pop();return`{${t}}`}case\"number\":return isFinite(i)?String(i):t?t(i):\"null\";case\"boolean\":return i===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(i)}default:return t?t(i):undefined}}function stringifyIndent(e,s,l,c,a){switch(typeof s){case\"string\":return strEscape(s);case\"object\":{if(s===null){return\"null\"}if(typeof s.toJSON===\"function\"){s=s.toJSON(e);if(typeof s!==\"object\"){return stringifyIndent(e,s,l,c,a)}if(s===null){return\"null\"}}if(l.indexOf(s)!==-1){return n}const t=a;if(Array.isArray(s)){if(s.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(s);a+=c;let e=`\\n${a}`;const n=`,\\n${a}`;const r=Math.min(s.length,o);let i=0;for(;i<r-1;i++){const t=stringifyIndent(String(i),s[i],l,c,a);e+=t!==undefined?t:\"null\";e+=n}const f=stringifyIndent(String(i),s[i],l,c,a);e+=f!==undefined?f:\"null\";if(s.length-1>o){const t=s.length-o-1;e+=`${n}\"... ${getItemCount(t)} not stringified\"`}e+=`\\n${t}`;l.pop();return`[${e}]`}let r=Object.keys(s);const g=r.length;if(g===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}a+=c;const p=`,\\n${a}`;let y=\"\";let d=\"\";let h=Math.min(g,o);if(isTypedArrayWithEntries(s)){y+=stringifyTypedArray(s,p,o);r=r.slice(s.length);h-=s.length;d=p}if(i){r=sort(r,f)}l.push(s);for(let e=0;e<h;e++){const t=r[e];const n=stringifyIndent(t,s[t],l,c,a);if(n!==undefined){y+=`${d}${strEscape(t)}: ${n}`;d=p}}if(g>o){const e=g-o;y+=`${d}\"...\": \"${getItemCount(e)} not stringified\"`;d=p}if(d!==\"\"){y=`\\n${a}${y}\\n${t}`}l.pop();return`{${y}}`}case\"number\":return isFinite(s)?String(s):t?t(s):\"null\";case\"boolean\":return s===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(s)}default:return t?t(s):undefined}}function stringifySimple(e,s,l){switch(typeof s){case\"string\":return strEscape(s);case\"object\":{if(s===null){return\"null\"}if(typeof s.toJSON===\"function\"){s=s.toJSON(e);if(typeof s!==\"object\"){return stringifySimple(e,s,l)}if(s===null){return\"null\"}}if(l.indexOf(s)!==-1){return n}let t=\"\";const r=s.length!==undefined;if(r&&Array.isArray(s)){if(s.length===0){return\"[]\"}if(u<l.length+1){return'\"[Array]\"'}l.push(s);const e=Math.min(s.length,o);let n=0;for(;n<e-1;n++){const e=stringifySimple(String(n),s[n],l);t+=e!==undefined?e:\"null\";t+=\",\"}const r=stringifySimple(String(n),s[n],l);t+=r!==undefined?r:\"null\";if(s.length-1>o){const e=s.length-o-1;t+=`,\"... ${getItemCount(e)} not stringified\"`}l.pop();return`[${t}]`}let c=Object.keys(s);const a=c.length;if(a===0){return\"{}\"}if(u<l.length+1){return'\"[Object]\"'}let g=\"\";let p=Math.min(a,o);if(r&&isTypedArrayWithEntries(s)){t+=stringifyTypedArray(s,\",\",o);c=c.slice(s.length);p-=s.length;g=\",\"}if(i){c=sort(c,f)}l.push(s);for(let e=0;e<p;e++){const n=c[e];const r=stringifySimple(n,s[n],l);if(r!==undefined){t+=`${g}${strEscape(n)}:${r}`;g=\",\"}}if(a>o){const e=a-o;t+=`${g}\"...\":\"${getItemCount(e)} not stringified\"`}l.pop();return`{${t}}`}case\"number\":return isFinite(s)?String(s):t?t(s):\"null\";case\"boolean\":return s===true?\"true\":\"false\";case\"undefined\":return undefined;case\"bigint\":if(r){return String(s)}default:return t?t(s):undefined}}function stringify(e,t,n){if(arguments.length>1){let r=\"\";if(typeof n===\"number\"){r=\" \".repeat(Math.min(n,10))}else if(typeof n===\"string\"){r=n.slice(0,10)}if(t!=null){if(typeof t===\"function\"){return stringifyFnReplacer(\"\",{\"\":e},[],t,r,\"\")}if(Array.isArray(t)){return stringifyArrayReplacer(\"\",e,[],getUniqueReplacerSet(t),r,\"\")}}if(r.length!==0){return stringifyIndent(\"\",e,[],r,\"\")}}return stringifySimple(\"\",e,[])}return stringify}}};var t={};function __nccwpck_require__(n){var r=t[n];if(r!==undefined){return r.exports}var i=t[n]={exports:{}};var f=true;try{e[n](i,i.exports,__nccwpck_require__);f=false}finally{if(f)delete t[n]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var n=__nccwpck_require__(879);module.exports=n})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3NhZmUtc3RhYmxlLXN0cmluZ2lmeS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxZQUFZLGFBQWEsT0FBTyxrQkFBa0IsTUFBTSxpQkFBaUIsa0JBQWtCLG9CQUFvQixzQkFBc0IsY0FBYyxZQUFZLGNBQWMsc0JBQXNCLFlBQVksbURBQW1ELHNCQUFzQiw2QkFBNkIsVUFBVSxFQUFFLEdBQUcseUJBQXlCLG1CQUFtQixvQkFBb0IsaUJBQWlCLFlBQVksV0FBVyxLQUFLLGFBQWEsUUFBUSx1QkFBdUIsWUFBWSxJQUFJLE9BQU8sU0FBUyw0SEFBNEgsb0NBQW9DLDJDQUEyQyxvQ0FBb0MsZUFBZSxXQUFXLHVCQUF1QixhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxJQUFJLEtBQUssTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxtQ0FBbUMsOEJBQThCLHdCQUF3Qix3QkFBd0IsVUFBVSxFQUFFLEdBQUcsWUFBWSxTQUFTLDZCQUE2QixPQUFPLFdBQVcsK0RBQStELDBHQUEwRyxxQkFBcUIsbUNBQW1DLE1BQU0sOEJBQThCLGtCQUFrQixnREFBZ0Qsb0dBQW9HLDRCQUE0QiwrQkFBK0IsTUFBTSxnQkFBZ0IsT0FBTyx5QkFBeUIsNEJBQTRCLEVBQUUsc0NBQXNDLDRCQUE0Qix1Q0FBdUMsTUFBTSxnQkFBZ0IsT0FBTyx3QkFBd0IsNEJBQTRCLEVBQUUsb0NBQW9DLHlCQUF5Qiw0QkFBNEIsRUFBRSxnQ0FBZ0MsUUFBUSw2QkFBNkIsRUFBRSwyQkFBMkIsZ0NBQWdDLHlCQUF5QixVQUFVLGVBQWUsU0FBUyxHQUFHLE9BQU8saUNBQWlDLGdCQUFnQixrQkFBa0IsNkNBQTZDLGtCQUFrQixTQUFTLDRCQUE0Qix1QkFBdUIsaUJBQWlCLHlCQUF5QixxRUFBcUUsTUFBTSxXQUFXLDZEQUE2RCxTQUFTLEVBQUUsaUNBQWlDLGFBQWEsR0FBRyxzQkFB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ZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3NhZmUtc3RhYmxlLXN0cmluZ2lmeS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgZT17ODc5OmZ1bmN0aW9uKGUsdCl7Y29uc3R7aGFzT3duUHJvcGVydHk6bn09T2JqZWN0LnByb3RvdHlwZTtjb25zdCByPWNvbmZpZ3VyZSgpO3IuY29uZmlndXJlPWNvbmZpZ3VyZTtyLnN0cmluZ2lmeT1yO3IuZGVmYXVsdD1yO3Quc3RyaW5naWZ5PXI7dC5jb25maWd1cmU9Y29uZmlndXJlO2UuZXhwb3J0cz1yO2NvbnN0IGk9L1tcXHUwMDAwLVxcdTAwMWZcXHUwMDIyXFx1MDA1Y1xcdWQ4MDAtXFx1ZGZmZl0vO2Z1bmN0aW9uIHN0ckVzY2FwZShlKXtpZihlLmxlbmd0aDw1ZTMmJiFpLnRlc3QoZSkpe3JldHVybmBcIiR7ZX1cImB9cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWZ1bmN0aW9uIHNvcnQoZSx0KXtpZihlLmxlbmd0aD4yMDB8fHQpe3JldHVybiBlLnNvcnQodCl9Zm9yKGxldCB0PTE7dDxlLmxlbmd0aDt0Kyspe2NvbnN0IG49ZVt0XTtsZXQgcj10O3doaWxlKHIhPT0wJiZlW3ItMV0+bil7ZVtyXT1lW3ItMV07ci0tfWVbcl09bn1yZXR1cm4gZX1jb25zdCBmPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LmdldFByb3RvdHlwZU9mKE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgSW50OEFycmF5KSksU3ltYm9sLnRvU3RyaW5nVGFnKS5nZXQ7ZnVuY3Rpb24gaXNUeXBlZEFycmF5V2l0aEVudHJpZXMoZSl7cmV0dXJuIGYuY2FsbChlKSE9PXVuZGVmaW5lZCYmZS5sZW5ndGghPT0wfWZ1bmN0aW9uIHN0cmluZ2lmeVR5cGVkQXJyYXkoZSx0LG4pe2lmKGUubGVuZ3RoPG4pe249ZS5sZW5ndGh9Y29uc3Qgcj10PT09XCIsXCI/XCJcIjpcIiBcIjtsZXQgaT1gXCIwXCI6JHtyfSR7ZVswXX1gO2ZvcihsZXQgZj0xO2Y8bjtmKyspe2krPWAke3R9XCIke2Z9XCI6JHtyfSR7ZVtmXX1gfXJldHVybiBpfWZ1bmN0aW9uIGdldENpcmN1bGFyVmFsdWVPcHRpb24oZSl7aWYobi5jYWxsKGUsXCJjaXJjdWxhclZhbHVlXCIpKXtjb25zdCB0PWUuY2lyY3VsYXJWYWx1ZTtpZih0eXBlb2YgdD09PVwic3RyaW5nXCIpe3JldHVybmBcIiR7dH1cImB9aWYodD09bnVsbCl7cmV0dXJuIHR9aWYodD09PUVycm9yfHx0PT09VHlwZUVycm9yKXtyZXR1cm57dG9TdHJpbmcoKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ29udmVydGluZyBjaXJjdWxhciBzdHJ1Y3R1cmUgdG8gSlNPTlwiKX19fXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcImNpcmN1bGFyVmFsdWVcIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nIG9yIHRoZSB2YWx1ZSBudWxsIG9yIHVuZGVmaW5lZCcpfXJldHVybidcIltDaXJjdWxhcl1cIid9ZnVuY3Rpb24gZ2V0RGV0ZXJtaW5pc3RpY09wdGlvbihlKXtsZXQgdDtpZihuLmNhbGwoZSxcImRldGVybWluaXN0aWNcIikpe3Q9ZS5kZXRlcm1pbmlzdGljO2lmKHR5cGVvZiB0IT09XCJib29sZWFuXCImJnR5cGVvZiB0IT09XCJmdW5jdGlvblwiKXt0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgXCJkZXRlcm1pbmlzdGljXCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW4gb3IgY29tcGFyYXRvciBmdW5jdGlvbicpfX1yZXR1cm4gdD09PXVuZGVmaW5lZD90cnVlOnR9ZnVuY3Rpb24gZ2V0Qm9vbGVhbk9wdGlvbihlLHQpe2xldCByO2lmKG4uY2FsbChlLHQpKXtyPWVbdF07aWYodHlwZW9mIHIhPT1cImJvb2xlYW5cIil7dGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIFwiJHt0fVwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBib29sZWFuYCl9fXJldHVybiByPT09dW5kZWZpbmVkP3RydWU6cn1mdW5jdGlvbiBnZXRQb3NpdGl2ZUludGVnZXJPcHRpb24oZSx0KXtsZXQgcjtpZihuLmNhbGwoZSx0KSl7cj1lW3RdO2lmKHR5cGVvZiByIT09XCJudW1iZXJcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIFwiJHt0fVwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXJgKX1pZighTnVtYmVyLmlzSW50ZWdlcihyKSl7dGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIFwiJHt0fVwiIGFyZ3VtZW50IG11c3QgYmUgYW4gaW50ZWdlcmApfWlmKHI8MSl7dGhyb3cgbmV3IFJhbmdlRXJyb3IoYFRoZSBcIiR7dH1cIiBhcmd1bWVudCBtdXN0IGJlID49IDFgKX19cmV0dXJuIHI9PT11bmRlZmluZWQ/SW5maW5pdHk6cn1mdW5jdGlvbiBnZXRJdGVtQ291bnQoZSl7aWYoZT09PTEpe3JldHVyblwiMSBpdGVtXCJ9cmV0dXJuYCR7ZX0gaXRlbXNgfWZ1bmN0aW9uIGdldFVuaXF1ZVJlcGxhY2VyU2V0KGUpe2NvbnN0IHQ9bmV3IFNldDtmb3IoY29uc3QgbiBvZiBlKXtpZih0eXBlb2Ygbj09PVwic3RyaW5nXCJ8fHR5cGVvZiBuPT09XCJudW1iZXJcIil7dC5hZGQoU3RyaW5nKG4pKX19cmV0dXJuIHR9ZnVuY3Rpb24gZ2V0U3RyaWN0T3B0aW9uKGUpe2lmKG4uY2FsbChlLFwic3RyaWN0XCIpKXtjb25zdCB0PWUuc3RyaWN0O2lmKHR5cGVvZiB0IT09XCJib29sZWFuXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBcInN0cmljdFwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBib29sZWFuJyl9aWYodCl7cmV0dXJuIGU9PntsZXQgdD1gT2JqZWN0IGNhbiBub3Qgc2FmZWx5IGJlIHN0cmluZ2lmaWVkLiBSZWNlaXZlZCB0eXBlICR7dHlwZW9mIGV9YDtpZih0eXBlb2YgZSE9PVwiZnVuY3Rpb25cIil0Kz1gICgke2UudG9TdHJpbmcoKX0pYDt0aHJvdyBuZXcgRXJyb3IodCl9fX19ZnVuY3Rpb24gY29uZmlndXJlKGUpe2U9ey4uLmV9O2NvbnN0IHQ9Z2V0U3RyaWN0T3B0aW9uKGUpO2lmKHQpe2lmKGUuYmlnaW50PT09dW5kZWZpbmVkKXtlLmJpZ2ludD1mYWxzZX1pZighKFwiY2lyY3VsYXJWYWx1ZVwiaW4gZSkpe2UuY2lyY3VsYXJWYWx1ZT1FcnJvcn19Y29uc3Qgbj1nZXRDaXJjdWxhclZhbHVlT3B0aW9uKGUpO2NvbnN0IHI9Z2V0Qm9vbGVhbk9wdGlvbihlLFwiYmlnaW50XCIpO2NvbnN0IGk9Z2V0RGV0ZXJtaW5pc3RpY09wdGlvbihlKTtjb25zdCBmPXR5cGVvZiBpPT09XCJmdW5jdGlvblwiP2k6dW5kZWZpbmVkO2NvbnN0IHU9Z2V0UG9zaXRpdmVJbnRlZ2VyT3B0aW9uKGUsXCJtYXhpbXVtRGVwdGhcIik7Y29uc3Qgbz1nZXRQb3NpdGl2ZUludGVnZXJPcHRpb24oZSxcIm1heGltdW1CcmVhZHRoXCIpO2Z1bmN0aW9uIHN0cmluZ2lmeUZuUmVwbGFjZXIoZSxzLGwsYyxhLGcpe2xldCBwPXNbZV07aWYodHlwZW9mIHA9PT1cIm9iamVjdFwiJiZwIT09bnVsbCYmdHlwZW9mIHAudG9KU09OPT09XCJmdW5jdGlvblwiKXtwPXAudG9KU09OKGUpfXA9Yy5jYWxsKHMsZSxwKTtzd2l0Y2godHlwZW9mIHApe2Nhc2VcInN0cmluZ1wiOnJldHVybiBzdHJFc2NhcGUocCk7Y2FzZVwib2JqZWN0XCI6e2lmKHA9PT1udWxsKXtyZXR1cm5cIm51bGxcIn1pZihsLmluZGV4T2YocCkhPT0tMSl7cmV0dXJuIG59bGV0IGU9XCJcIjtsZXQgdD1cIixcIjtjb25zdCByPWc7aWYoQXJyYXkuaXNBcnJheShwKSl7aWYocC5sZW5ndGg9PT0wKXtyZXR1cm5cIltdXCJ9aWYodTxsLmxlbmd0aCsxKXtyZXR1cm4nXCJbQXJyYXldXCInfWwucHVzaChwKTtpZihhIT09XCJcIil7Zys9YTtlKz1gXFxuJHtnfWA7dD1gLFxcbiR7Z31gfWNvbnN0IG49TWF0aC5taW4ocC5sZW5ndGgsbyk7bGV0IGk9MDtmb3IoO2k8bi0xO2krKyl7Y29uc3Qgbj1zdHJpbmdpZnlGblJlcGxhY2VyKFN0cmluZyhpKSxwLGwsYyxhLGcpO2UrPW4hPT11bmRlZmluZWQ/bjpcIm51bGxcIjtlKz10fWNvbnN0IGY9c3RyaW5naWZ5Rm5SZXBsYWNlcihTdHJpbmcoaSkscCxsLGMsYSxnKTtlKz1mIT09dW5kZWZpbmVkP2Y6XCJudWxsXCI7aWYocC5sZW5ndGgtMT5vKXtjb25zdCBuPXAubGVuZ3RoLW8tMTtlKz1gJHt0fVwiLi4uICR7Z2V0SXRlbUNvdW50KG4pfSBub3Qgc3RyaW5naWZpZWRcImB9aWYoYSE9PVwiXCIpe2UrPWBcXG4ke3J9YH1sLnBvcCgpO3JldHVybmBbJHtlfV1gfWxldCBzPU9iamVjdC5rZXlzKHApO2NvbnN0IHk9cy5sZW5ndGg7aWYoeT09PTApe3JldHVyblwie31cIn1pZih1PGwubGVuZ3RoKzEpe3JldHVybidcIltPYmplY3RdXCInfWxldCBkPVwiXCI7bGV0IGg9XCJcIjtpZihhIT09XCJcIil7Zys9YTt0PWAsXFxuJHtnfWA7ZD1cIiBcIn1jb25zdCAkPU1hdGgubWluKHksbyk7aWYoaSYmIWlzVHlwZWRBcnJheVdpdGhFbnRyaWVzKHApKXtzPXNvcnQocyxmKX1sLnB1c2gocCk7Zm9yKGxldCBuPTA7bjwkO24rKyl7Y29uc3Qgcj1zW25dO2NvbnN0IGk9c3RyaW5naWZ5Rm5SZXBsYWNlcihyLHAsbCxjLGEsZyk7aWYoaSE9PXVuZGVmaW5lZCl7ZSs9YCR7aH0ke3N0ckVzY2FwZShyKX06JHtkfSR7aX1gO2g9dH19aWYoeT5vKXtjb25zdCBuPXktbztlKz1gJHtofVwiLi4uXCI6JHtkfVwiJHtnZXRJdGVtQ291bnQobil9IG5vdCBzdHJpbmdpZmllZFwiYDtoPXR9aWYoYSE9PVwiXCImJmgubGVuZ3RoPjEpe2U9YFxcbiR7Z30ke2V9XFxuJHtyfWB9bC5wb3AoKTtyZXR1cm5geyR7ZX19YH1jYXNlXCJudW1iZXJcIjpyZXR1cm4gaXNGaW5pdGUocCk/U3RyaW5nKHApOnQ/dChwKTpcIm51bGxcIjtjYXNlXCJib29sZWFuXCI6cmV0dXJuIHA9PT10cnVlP1widHJ1ZVwiOlwiZmFsc2VcIjtjYXNlXCJ1bmRlZmluZWRcIjpyZXR1cm4gdW5kZWZpbmVkO2Nhc2VcImJpZ2ludFwiOmlmKHIpe3JldHVybiBTdHJpbmcocCl9ZGVmYXVsdDpyZXR1cm4gdD90KHApOnVuZGVmaW5lZH19ZnVuY3Rpb24gc3RyaW5naWZ5QXJyYXlSZXBsYWNlcihlLGksZixzLGwsYyl7aWYodHlwZW9mIGk9PT1cIm9iamVjdFwiJiZpIT09bnVsbCYmdHlwZW9mIGkudG9KU09OPT09XCJmdW5jdGlvblwiKXtpPWkudG9KU09OKGUpfXN3aXRjaCh0eXBlb2YgaSl7Y2FzZVwic3RyaW5nXCI6cmV0dXJuIHN0ckVzY2FwZShpKTtjYXNlXCJvYmplY3RcIjp7aWYoaT09PW51bGwpe3JldHVyblwibnVsbFwifWlmKGYuaW5kZXhPZihpKSE9PS0xKXtyZXR1cm4gbn1jb25zdCBlPWM7bGV0IHQ9XCJcIjtsZXQgcj1cIixcIjtpZihBcnJheS5pc0FycmF5KGkpKXtpZihpLmxlbmd0aD09PTApe3JldHVyblwiW11cIn1pZih1PGYubGVuZ3RoKzEpe3JldHVybidcIltBcnJheV1cIid9Zi5wdXNoKGkpO2lmKGwhPT1cIlwiKXtjKz1sO3QrPWBcXG4ke2N9YDtyPWAsXFxuJHtjfWB9Y29uc3Qgbj1NYXRoLm1pbihpLmxlbmd0aCxvKTtsZXQgYT0wO2Zvcig7YTxuLTE7YSsrKXtjb25zdCBlPXN0cmluZ2lmeUFycmF5UmVwbGFjZXIoU3RyaW5nKGEpLGlbYV0sZixzLGwsYyk7dCs9ZSE9PXVuZGVmaW5lZD9lOlwibnVsbFwiO3QrPXJ9Y29uc3QgZz1zdHJpbmdpZnlBcnJheVJlcGxhY2VyKFN0cmluZyhhKSxpW2FdLGYscyxsLGMpO3QrPWchPT11bmRlZmluZWQ/ZzpcIm51bGxcIjtpZihpLmxlbmd0aC0xPm8pe2NvbnN0IGU9aS5sZW5ndGgtby0xO3QrPWAke3J9XCIuLi4gJHtnZXRJdGVtQ291bnQoZSl9IG5vdCBzdHJpbmdpZmllZFwiYH1pZihsIT09XCJcIil7dCs9YFxcbiR7ZX1gfWYucG9wKCk7cmV0dXJuYFske3R9XWB9Zi5wdXNoKGkpO2xldCBhPVwiXCI7aWYobCE9PVwiXCIpe2MrPWw7cj1gLFxcbiR7Y31gO2E9XCIgXCJ9bGV0IGc9XCJcIjtmb3IoY29uc3QgZSBvZiBzKXtjb25zdCBuPXN0cmluZ2lmeUFycmF5UmVwbGFjZXIoZSxpW2VdLGYscyxsLGMpO2lmKG4hPT11bmRlZmluZWQpe3QrPWAke2d9JHtzdHJFc2NhcGUoZSl9OiR7YX0ke259YDtnPXJ9fWlmKGwhPT1cIlwiJiZnLmxlbmd0aD4xKXt0PWBcXG4ke2N9JHt0fVxcbiR7ZX1gfWYucG9wKCk7cmV0dXJuYHske3R9fWB9Y2FzZVwibnVtYmVyXCI6cmV0dXJuIGlzRmluaXRlKGkpP1N0cmluZyhpKTp0P3QoaSk6XCJudWxsXCI7Y2FzZVwiYm9vbGVhblwiOnJldHVybiBpPT09dHJ1ZT9cInRydWVcIjpcImZhbHNlXCI7Y2FzZVwidW5kZWZpbmVkXCI6cmV0dXJuIHVuZGVmaW5lZDtjYXNlXCJiaWdpbnRcIjppZihyKXtyZXR1cm4gU3RyaW5nKGkpfWRlZmF1bHQ6cmV0dXJuIHQ/dChpKTp1bmRlZmluZWR9fWZ1bmN0aW9uIHN0cmluZ2lmeUluZGVudChlLHMsbCxjLGEpe3N3aXRjaCh0eXBlb2Ygcyl7Y2FzZVwic3RyaW5nXCI6cmV0dXJuIHN0ckVzY2FwZShzKTtjYXNlXCJvYmplY3RcIjp7aWYocz09PW51bGwpe3JldHVyblwibnVsbFwifWlmKHR5cGVvZiBzLnRvSlNPTj09PVwiZnVuY3Rpb25cIil7cz1zLnRvSlNPTihlKTtpZih0eXBlb2YgcyE9PVwib2JqZWN0XCIpe3JldHVybiBzdHJpbmdpZnlJbmRlbnQoZSxzLGwsYyxhKX1pZihzPT09bnVsbCl7cmV0dXJuXCJudWxsXCJ9fWlmKGwuaW5kZXhPZihzKSE9PS0xKXtyZXR1cm4gbn1jb25zdCB0PWE7aWYoQXJyYXkuaXNBcnJheShzKSl7aWYocy5sZW5ndGg9PT0wKXtyZXR1cm5cIltdXCJ9aWYodTxsLmxlbmd0aCsxKXtyZXR1cm4nXCJbQXJyYXldXCInfWwucHVzaChzKTthKz1jO2xldCBlPWBcXG4ke2F9YDtjb25zdCBuPWAsXFxuJHthfWA7Y29uc3Qgcj1NYXRoLm1pbihzLmxlbmd0aCxvKTtsZXQgaT0wO2Zvcig7aTxyLTE7aSsrKXtjb25zdCB0PXN0cmluZ2lmeUluZGVudChTdHJpbmcoaSksc1tpXSxsLGMsYSk7ZSs9dCE9PXVuZGVmaW5lZD90OlwibnVsbFwiO2UrPW59Y29uc3QgZj1zdHJpbmdpZnlJbmRlbnQoU3RyaW5nKGkpLHNbaV0sbCxjLGEpO2UrPWYhPT11bmRlZmluZWQ/ZjpcIm51bGxcIjtpZihzLmxlbmd0aC0xPm8pe2NvbnN0IHQ9cy5sZW5ndGgtby0xO2UrPWAke259XCIuLi4gJHtnZXRJdGVtQ291bnQodCl9IG5vdCBzdHJpbmdpZmllZFwiYH1lKz1gXFxuJHt0fWA7bC5wb3AoKTtyZXR1cm5gWyR7ZX1dYH1sZXQgcj1PYmplY3Qua2V5cyhzKTtjb25zdCBnPXIubGVuZ3RoO2lmKGc9PT0wKXtyZXR1cm5cInt9XCJ9aWYodTxsLmxlbmd0aCsxKXtyZXR1cm4nXCJbT2JqZWN0XVwiJ31hKz1jO2NvbnN0IHA9YCxcXG4ke2F9YDtsZXQgeT1cIlwiO2xldCBkPVwiXCI7bGV0IGg9TWF0aC5taW4oZyxvKTtpZihpc1R5cGVkQXJyYXlXaXRoRW50cmllcyhzKSl7eSs9c3RyaW5naWZ5VHlwZWRBcnJheShzLHAsbyk7cj1yLnNsaWNlKHMubGVuZ3RoKTtoLT1zLmxlbmd0aDtkPXB9aWYoaSl7cj1zb3J0KHIsZil9bC5wdXNoKHMpO2ZvcihsZXQgZT0wO2U8aDtlKyspe2NvbnN0IHQ9cltlXTtjb25zdCBuPXN0cmluZ2lmeUluZGVudCh0LHNbdF0sbCxjLGEpO2lmKG4hPT11bmRlZmluZWQpe3krPWAke2R9JHtzdHJFc2NhcGUodCl9OiAke259YDtkPXB9fWlmKGc+byl7Y29uc3QgZT1nLW87eSs9YCR7ZH1cIi4uLlwiOiBcIiR7Z2V0SXRlbUNvdW50KGUpfSBub3Qgc3RyaW5naWZpZWRcImA7ZD1wfWlmKGQhPT1cIlwiKXt5PWBcXG4ke2F9JHt5fVxcbiR7dH1gfWwucG9wKCk7cmV0dXJuYHske3l9fWB9Y2FzZVwibnVtYmVyXCI6cmV0dXJuIGlzRmluaXRlKHMpP1N0cmluZyhzKTp0P3Qocyk6XCJudWxsXCI7Y2FzZVwiYm9vbGVhblwiOnJldHVybiBzPT09dHJ1ZT9cInRydWVcIjpcImZhbHNlXCI7Y2FzZVwidW5kZWZpbmVkXCI6cmV0dXJuIHVuZGVmaW5lZDtjYXNlXCJiaWdpbnRcIjppZihyKXtyZXR1cm4gU3RyaW5nKHMpfWRlZmF1bHQ6cmV0dXJuIHQ/dChzKTp1bmRlZmluZWR9fWZ1bmN0aW9uIHN0cmluZ2lmeVNpbXBsZShlLHMsbCl7c3dpdGNoKHR5cGVvZiBzKXtjYXNlXCJzdHJpbmdcIjpyZXR1cm4gc3RyRXNjYXBlKHMpO2Nhc2VcIm9iamVjdFwiOntpZihzPT09bnVsbCl7cmV0dXJuXCJudWxsXCJ9aWYodHlwZW9mIHMudG9KU09OPT09XCJmdW5jdGlvblwiKXtzPXMudG9KU09OKGUpO2lmKHR5cGVvZiBzIT09XCJvYmplY3RcIil7cmV0dXJuIHN0cmluZ2lmeVNpbXBsZShlLHMsbCl9aWYocz09PW51bGwpe3JldHVyblwibnVsbFwifX1pZihsLmluZGV4T2YocykhPT0tMSl7cmV0dXJuIG59bGV0IHQ9XCJcIjtjb25zdCByPXMubGVuZ3RoIT09dW5kZWZpbmVkO2lmKHImJkFycmF5LmlzQXJyYXkocykpe2lmKHMubGVuZ3RoPT09MCl7cmV0dXJuXCJbXVwifWlmKHU8bC5sZW5ndGgrMSl7cmV0dXJuJ1wiW0FycmF5XVwiJ31sLnB1c2gocyk7Y29uc3QgZT1NYXRoLm1pbihzLmxlbmd0aCxvKTtsZXQgbj0wO2Zvcig7bjxlLTE7bisrKXtjb25zdCBlPXN0cmluZ2lmeVNpbXBsZShTdHJpbmcobiksc1tuXSxsKTt0Kz1lIT09dW5kZWZpbmVkP2U6XCJudWxsXCI7dCs9XCIsXCJ9Y29uc3Qgcj1zdHJpbmdpZnlTaW1wbGUoU3RyaW5nKG4pLHNbbl0sbCk7dCs9ciE9PXVuZGVmaW5lZD9yOlwibnVsbFwiO2lmKHMubGVuZ3RoLTE+byl7Y29uc3QgZT1zLmxlbmd0aC1vLTE7dCs9YCxcIi4uLiAke2dldEl0ZW1Db3VudChlKX0gbm90IHN0cmluZ2lmaWVkXCJgfWwucG9wKCk7cmV0dXJuYFske3R9XWB9bGV0IGM9T2JqZWN0LmtleXMocyk7Y29uc3QgYT1jLmxlbmd0aDtpZihhPT09MCl7cmV0dXJuXCJ7fVwifWlmKHU8bC5sZW5ndGgrMSl7cmV0dXJuJ1wiW09iamVjdF1cIid9bGV0IGc9XCJcIjtsZXQgcD1NYXRoLm1pbihhLG8pO2lmKHImJmlzVHlwZWRBcnJheVdpdGhFbnRyaWVzKHMpKXt0Kz1zdHJpbmdpZnlUeXBlZEFycmF5KHMsXCIsXCIsbyk7Yz1jLnNsaWNlKHMubGVuZ3RoKTtwLT1zLmxlbmd0aDtnPVwiLFwifWlmKGkpe2M9c29ydChjLGYpfWwucHVzaChzKTtmb3IobGV0IGU9MDtlPHA7ZSsrKXtjb25zdCBuPWNbZV07Y29uc3Qgcj1zdHJpbmdpZnlTaW1wbGUobixzW25dLGwpO2lmKHIhPT11bmRlZmluZWQpe3QrPWAke2d9JHtzdHJFc2NhcGUobil9OiR7cn1gO2c9XCIsXCJ9fWlmKGE+byl7Y29uc3QgZT1hLW87dCs9YCR7Z31cIi4uLlwiOlwiJHtnZXRJdGVtQ291bnQoZSl9IG5vdCBzdHJpbmdpZmllZFwiYH1sLnBvcCgpO3JldHVybmB7JHt0fX1gfWNhc2VcIm51bWJlclwiOnJldHVybiBpc0Zpbml0ZShzKT9TdHJpbmcocyk6dD90KHMpOlwibnVsbFwiO2Nhc2VcImJvb2xlYW5cIjpyZXR1cm4gcz09PXRydWU/XCJ0cnVlXCI6XCJmYWxzZVwiO2Nhc2VcInVuZGVmaW5lZFwiOnJldHVybiB1bmRlZmluZWQ7Y2FzZVwiYmlnaW50XCI6aWYocil7cmV0dXJuIFN0cmluZyhzKX1kZWZhdWx0OnJldHVybiB0P3Qocyk6dW5kZWZpbmVkfX1mdW5jdGlvbiBzdHJpbmdpZnkoZSx0LG4pe2lmKGFyZ3VtZW50cy5sZW5ndGg+MSl7bGV0IHI9XCJcIjtpZih0eXBlb2Ygbj09PVwibnVtYmVyXCIpe3I9XCIgXCIucmVwZWF0KE1hdGgubWluKG4sMTApKX1lbHNlIGlmKHR5cGVvZiBuPT09XCJzdHJpbmdcIil7cj1uLnNsaWNlKDAsMTApfWlmKHQhPW51bGwpe2lmKHR5cGVvZiB0PT09XCJmdW5jdGlvblwiKXtyZXR1cm4gc3RyaW5naWZ5Rm5SZXBsYWNlcihcIlwiLHtcIlwiOmV9LFtdLHQscixcIlwiKX1pZihBcnJheS5pc0FycmF5KHQpKXtyZXR1cm4gc3RyaW5naWZ5QXJyYXlSZXBsYWNlcihcIlwiLGUsW10sZ2V0VW5pcXVlUmVwbGFjZXJTZXQodCkscixcIlwiKX19aWYoci5sZW5ndGghPT0wKXtyZXR1cm4gc3RyaW5naWZ5SW5kZW50KFwiXCIsZSxbXSxyLFwiXCIpfX1yZXR1cm4gc3RyaW5naWZ5U2ltcGxlKFwiXCIsZSxbXSl9cmV0dXJuIHN0cmluZ2lmeX19fTt2YXIgdD17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKG4pe3ZhciByPXRbbl07aWYociE9PXVuZGVmaW5lZCl7cmV0dXJuIHIuZXhwb3J0c312YXIgaT10W25dPXtleHBvcnRzOnt9fTt2YXIgZj10cnVlO3RyeXtlW25dKGksaS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO2Y9ZmFsc2V9ZmluYWxseXtpZihmKWRlbGV0ZSB0W25dfXJldHVybiBpLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBuPV9fbmNjd3Bja19yZXF1aXJlX18oODc5KTttb2R1bGUuZXhwb3J0cz1ufSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js":
/*!*************************************************************!*\
!*** ./node_modules/next/dist/compiled/strip-ansi/index.js ***!
\*************************************************************/
/***/ ((module) => {
"use strict";
eval("\n(()=>{\n \"use strict\";\n var e = {\n 511: (e)=>{\n e.exports = ({ onlyFirst: e = false } = {})=>{\n const r = [\n \"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\n \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"\n ].join(\"|\");\n return new RegExp(r, e ? undefined : \"g\");\n };\n },\n 532: (e, r, _)=>{\n const t = _(511);\n e.exports = (e)=>typeof e === \"string\" ? e.replace(t(), \"\") : e;\n }\n };\n var r = {};\n function __nccwpck_require__(_) {\n var t = r[_];\n if (t !== undefined) {\n return t.exports;\n }\n var a = r[_] = {\n exports: {}\n };\n var n = true;\n try {\n e[_](a, a.exports, __nccwpck_require__);\n n = false;\n } finally{\n if (n) delete r[_];\n }\n return a.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var _ = __nccwpck_require__(532);\n module.exports = _;\n})();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2kvaW5kZXguanMiLCJtYXBwaW5ncyI6IjtBQUFDO0lBQUs7SUFBYSxJQUFJQSxJQUFFO1FBQUMsS0FBSUEsQ0FBQUE7WUFBSUEsRUFBRUMsT0FBTyxHQUFDLENBQUMsRUFBQ0MsV0FBVUYsSUFBRSxLQUFLLEVBQUMsR0FBQyxDQUFDLENBQUM7Z0JBQUksTUFBTUcsSUFBRTtvQkFBQztvQkFBK0g7aUJBQTJELENBQUNDLElBQUksQ0FBQztnQkFBSyxPQUFPLElBQUlDLE9BQU9GLEdBQUVILElBQUVNLFlBQVU7WUFBSTtRQUFDO1FBQUUsS0FBSSxDQUFDTixHQUFFRyxHQUFFSTtZQUFLLE1BQU1DLElBQUVELEVBQUU7WUFBS1AsRUFBRUMsT0FBTyxHQUFDRCxDQUFBQSxJQUFHLE9BQU9BLE1BQUksV0FBU0EsRUFBRVMsT0FBTyxDQUFDRCxLQUFJLE1BQUlSO1FBQUM7SUFBQztJQUFFLElBQUlHLElBQUUsQ0FBQztJQUFFLFNBQVNPLG9CQUFvQkgsQ0FBQztRQUFFLElBQUlDLElBQUVMLENBQUMsQ0FBQ0ksRUFBRTtRQUFDLElBQUdDLE1BQUlGLFdBQVU7WUFBQyxPQUFPRSxFQUFFUCxPQUFPO1FBQUE7UUFBQyxJQUFJVSxJQUFFUixDQUFDLENBQUNJLEVBQUUsR0FBQztZQUFDTixTQUFRLENBQUM7UUFBQztRQUFFLElBQUlXLElBQUU7UUFBSyxJQUFHO1lBQUNaLENBQUMsQ0FBQ08sRUFBRSxDQUFDSSxHQUFFQSxFQUFFVixPQUFPLEVBQUNTO1lBQXFCRSxJQUFFO1FBQUssU0FBUTtZQUFDLElBQUdBLEdBQUUsT0FBT1QsQ0FBQyxDQUFDSSxFQUFFO1FBQUE7UUFBQyxPQUFPSSxFQUFFVixPQUFPO0lBQUE7SUFBQyxJQUFHLE9BQU9TLHdCQUFzQixhQUFZQSxvQkFBb0JHLEVBQUUsR0FBQ0MsWUFBVTtJQUFJLElBQUlQLElBQUVHLG9CQUFvQjtJQUFLSyxPQUFPZCxPQUFPLEdBQUNNO0FBQUMiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgZT17NTExOmU9PntlLmV4cG9ydHM9KHtvbmx5Rmlyc3Q6ZT1mYWxzZX09e30pPT57Y29uc3Qgcj1bXCJbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86KD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKykqfFthLXpBLVpcXFxcZF0rKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT9cXFxcdTAwMDcpXCIsXCIoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKVwiXS5qb2luKFwifFwiKTtyZXR1cm4gbmV3IFJlZ0V4cChyLGU/dW5kZWZpbmVkOlwiZ1wiKX19LDUzMjooZSxyLF8pPT57Y29uc3QgdD1fKDUxMSk7ZS5leHBvcnRzPWU9PnR5cGVvZiBlPT09XCJzdHJpbmdcIj9lLnJlcGxhY2UodCgpLFwiXCIpOmV9fTt2YXIgcj17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKF8pe3ZhciB0PXJbX107aWYodCE9PXVuZGVmaW5lZCl7cmV0dXJuIHQuZXhwb3J0c312YXIgYT1yW19dPXtleHBvcnRzOnt9fTt2YXIgbj10cnVlO3RyeXtlW19dKGEsYS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO249ZmFsc2V9ZmluYWxseXtpZihuKWRlbGV0ZSByW19dfXJldHVybiBhLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBfPV9fbmNjd3Bja19yZXF1aXJlX18oNTMyKTttb2R1bGUuZXhwb3J0cz1ffSkoKTsiXSwibmFtZXMiOlsiZSIsImV4cG9ydHMiLCJvbmx5Rmlyc3QiLCJyIiwiam9pbiIsIlJlZ0V4cCIsInVuZGVmaW5lZCIsIl8iLCJ0IiwicmVwbGFjZSIsIl9fbmNjd3Bja19yZXF1aXJlX18iLCJhIiwibiIsImFiIiwiX19kaXJuYW1lIiwibW9kdWxlIl0sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/lib/is-error.js":
/*!************************************************!*\
!*** ./node_modules/next/dist/lib/is-error.js ***!
\************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"(ssr)/./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E98\",\n enumerable: false,\n configurable: true\n });\n }\n if (err === null) {\n return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E336\",\n enumerable: false,\n configurable: true\n });\n }\n }\n return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + ''), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsbUJBQU8sQ0FBQyxtR0FBK0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGRlZmF1bHQ6IG51bGwsXG4gICAgZ2V0UHJvcGVyRXJyb3I6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBOZXh0RXJyb3IuXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHByaW50IGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIHdpdGggcHJvcGVydGllcyBsaWtlIGBjb2RlYCAmIGBkaWdlc3RgLlxuICovIGRlZmF1bHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNFcnJvcjtcbiAgICB9LFxuICAgIGdldFByb3BlckVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFByb3BlckVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX2lzcGxhaW5vYmplY3QgPSByZXF1aXJlKFwiLi4vc2hhcmVkL2xpYi9pcy1wbGFpbi1vYmplY3RcIik7XG5mdW5jdGlvbiBpc0Vycm9yKGVycikge1xuICAgIHJldHVybiB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJiBlcnIgIT09IG51bGwgJiYgJ25hbWUnIGluIGVyciAmJiAnbWVzc2FnZScgaW4gZXJyO1xufVxuZnVuY3Rpb24gc2FmZVN0cmluZ2lmeShvYmopIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFdlYWtTZXQoKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCAoX2tleSwgdmFsdWUpPT57XG4gICAgICAgIC8vIElmIHZhbHVlIGlzIGFuIG9iamVjdCBhbmQgYWxyZWFkeSBzZWVuLCByZXBsYWNlIHdpdGggXCJbQ2lyY3VsYXJdXCJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChzZWVuLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tDaXJjdWxhcl0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2Vlbi5hZGQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGdldFByb3BlckVycm9yKGVycikge1xuICAgIGlmIChpc0Vycm9yKGVycikpIHtcbiAgICAgICAgcmV0dXJuIGVycjtcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIHByb3ZpZGUgYmV0dGVyIGVycm9yIGZvciBjYXNlIHdoZXJlIGB0aHJvdyB1bmRlZmluZWRgXG4gICAgICAgIC8vIGlzIGNhbGxlZCBpbiBkZXZlbG9wbWVudFxuICAgICAgICBpZiAodHlwZW9mIGVyciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdBbiB1bmRlZmluZWQgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTk4XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignQSBudWxsIGVycm9yIHdhcyB0aHJvd24sICcgKyAnc2VlIGhlcmUgZm9yIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvdGhyZXctdW5kZWZpbmVkJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzMzZcIixcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCgwLCBfaXNwbGFpbm9iamVjdC5pc1BsYWluT2JqZWN0KShlcnIpID8gc2FmZVN0cmluZ2lmeShlcnIpIDogZXJyICsgJycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTM5NFwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/is-error.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/generate/icon-mark.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"IconMark\", ({\n enumerable: true,\n get: function() {\n return IconMark;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst IconMark = ()=>{\n if (false) {}\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"\\xabnxt-icon\\xbb\"\n });\n}; //# sourceMappingURL=icon-mark.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29uLW1hcmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs0Q0FRYUE7OztlQUFBQTs7OztBQUFOLE1BQU1BLFdBQVc7SUFDdEIsSUFBSSxLQUE2QixFQUFFLEVBRWxDO0lBQ0QscUJBQU8scUJBQUNFLFFBQUFBO1FBQUtDLE1BQUs7O0FBQ3BCIiwic291cmNlcyI6WyIvaG9tZS9zcmMvbGliL21ldGFkYXRhL2dlbmVyYXRlL2ljb24tbWFyay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbi8vIFRoaXMgaXMgYSBjbGllbnQgY29tcG9uZW50IHRoYXQgb25seSByZW5kZXJzIGR1cmluZyBTU1IsXG4vLyBidXQgd2lsbCBiZSByZXBsYWNlZCBkdXJpbmcgc3RyZWFtaW5nIHdpdGggYW4gaWNvbiBpbnNlcnRpb24gc2NyaXB0IHRhZy5cbi8vIFdlIGRvbid0IHdhbnQgaXQgdG8gYmUgcHJlc2VudGVkIGFueXdoZXJlIHNvIGl0J3Mgb25seSB2aXNpYmxlIGR1cmluZyBzdHJlYW1pbmcsXG4vLyByaWdodCBhZnRlciB0aGUgaWNvbiBtZXRhIHRhZ3Mgc28gdGhhdCBicm93c2VyIGNhbiBwaWNrIGl0IHVwIGFzIHNvb24gYXMgaXQncyByZW5kZXJlZC5cbi8vIE5vdGU6IHdlIGRvbid0IGp1c3QgZW1pdCB0aGUgc2NyaXB0IGhlcmUgYmVjYXVzZSB3ZSBvbmx5IG5lZWQgdGhlIHNjcmlwdCBpZiBpdCdzIG5vdCBpbiB0aGUgaGVhZCxcbi8vIGFuZCB3ZSBuZWVkIGl0IHRvIGJlIGhvaXN0YWJsZSBhbG9uZ3NpZGUgdGhlIG90aGVyIG1ldGFkYXRhIGJ1dCBzeW5jIHNjcmlwdHMgYXJlIG5vdCBob2lzdGFibGUuXG5leHBvcnQgY29uc3QgSWNvbk1hcmsgPSAoKSA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIDxtZXRhIG5hbWU9XCLCq254dC1pY29uwrtcIiAvPlxufVxuIl0sIm5hbWVzIjpbIkljb25NYXJrIiwid2luZG93IiwibWV0YSIsIm5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/lib/metadata/metadata-constants.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/lib/metadata/metadata-constants.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n METADATA_BOUNDARY_NAME: function() {\n return METADATA_BOUNDARY_NAME;\n },\n OUTLET_BOUNDARY_NAME: function() {\n return OUTLET_BOUNDARY_NAME;\n },\n VIEWPORT_BOUNDARY_NAME: function() {\n return VIEWPORT_BOUNDARY_NAME;\n }\n});\nconst METADATA_BOUNDARY_NAME = '__next_metadata_boundary__';\nconst VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__';\nconst OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__';\n\n//# sourceMappingURL=metadata-constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9tZXRhZGF0YS1jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBSUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL21ldGFkYXRhLWNvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgT1VUTEVUX0JPVU5EQVJZX05BTUU6IG51bGwsXG4gICAgVklFV1BPUlRfQk9VTkRBUllfTkFNRTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBNRVRBREFUQV9CT1VOREFSWV9OQU1FOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1FVEFEQVRBX0JPVU5EQVJZX05BTUU7XG4gICAgfSxcbiAgICBPVVRMRVRfQk9VTkRBUllfTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBPVVRMRVRfQk9VTkRBUllfTkFNRTtcbiAgICB9LFxuICAgIFZJRVdQT1JUX0JPVU5EQVJZX05BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVklFV1BPUlRfQk9VTkRBUllfTkFNRTtcbiAgICB9XG59KTtcbmNvbnN0IE1FVEFEQVRBX0JPVU5EQVJZX05BTUUgPSAnX19uZXh0X21ldGFkYXRhX2JvdW5kYXJ5X18nO1xuY29uc3QgVklFV1BPUlRfQk9VTkRBUllfTkFNRSA9ICdfX25leHRfdmlld3BvcnRfYm91bmRhcnlfXyc7XG5jb25zdCBPVVRMRVRfQk9VTkRBUllfTkFNRSA9ICdfX25leHRfb3V0bGV0X2JvdW5kYXJ5X18nO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZXRhZGF0YS1jb25zdGFudHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/metadata/metadata-constants.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/lib/scheduler.js":
/*!*************************************************!*\
!*** ./node_modules/next/dist/lib/scheduler.js ***!
\*************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n atLeastOneTask: function() {\n return atLeastOneTask;\n },\n scheduleImmediate: function() {\n return scheduleImmediate;\n },\n scheduleOnNextTick: function() {\n return scheduleOnNextTick;\n },\n waitAtLeastOneReactRenderTask: function() {\n return waitAtLeastOneReactRenderTask;\n }\n});\nconst scheduleOnNextTick = (cb)=>{\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(()=>{\n if (false) {} else {\n process.nextTick(cb);\n }\n });\n};\nconst scheduleImmediate = (cb)=>{\n if (false) {} else {\n setImmediate(cb);\n }\n};\nfunction atLeastOneTask() {\n return new Promise((resolve)=>scheduleImmediate(resolve));\n}\nfunction waitAtLeastOneReactRenderTask() {\n if (false) {} else {\n return new Promise((r)=>setImmediate(r));\n }\n}\n\n//# sourceMappingURL=scheduler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9zY2hlZHVsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNWO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFFBQVEsS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNOO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvc2NoZWR1bGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgYXRMZWFzdE9uZVRhc2s6IG51bGwsXG4gICAgc2NoZWR1bGVJbW1lZGlhdGU6IG51bGwsXG4gICAgc2NoZWR1bGVPbk5leHRUaWNrOiBudWxsLFxuICAgIHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGF0TGVhc3RPbmVUYXNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGF0TGVhc3RPbmVUYXNrO1xuICAgIH0sXG4gICAgc2NoZWR1bGVJbW1lZGlhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVJbW1lZGlhdGU7XG4gICAgfSxcbiAgICBzY2hlZHVsZU9uTmV4dFRpY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVPbk5leHRUaWNrO1xuICAgIH0sXG4gICAgd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gd2FpdEF0TGVhc3RPbmVSZWFjdFJlbmRlclRhc2s7XG4gICAgfVxufSk7XG5jb25zdCBzY2hlZHVsZU9uTmV4dFRpY2sgPSAoY2IpPT57XG4gICAgLy8gV2UgdXNlIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKSBoZXJlIHNvIHRoYXQgdGhlIG9wZXJhdGlvbiBpcyBzY2hlZHVsZWQgYXRcbiAgICAvLyB0aGUgZW5kIG9mIHRoZSBwcm9taXNlIGpvYiBxdWV1ZSwgd2UgdGhlbiBhZGQgaXQgdG8gdGhlIG5leHQgcHJvY2VzcyB0aWNrXG4gICAgLy8gdG8gZW5zdXJlIGl0J3MgZXZhbHVhdGVkIGFmdGVyd2FyZHMuXG4gICAgLy9cbiAgICAvLyBUaGlzIHdhcyBpbnNwaXJlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIERhdGFMb2FkZXIgaW50ZXJmYWNlOiBodHRwczovL2dpdGh1Yi5jb20vZ3JhcGhxbC9kYXRhbG9hZGVyL2Jsb2IvZDMzNmJkMTUyODI2NjRlMGJlNGI0YTY1N2NiNzk2ZjA5YmFmYmM2Yi9zcmMvaW5kZXguanMjTDIxMy1MMjU1XG4gICAgLy9cbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT57XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICAgICAgc2V0VGltZW91dChjYiwgMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9jZXNzLm5leHRUaWNrKGNiKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbmNvbnN0IHNjaGVkdWxlSW1tZWRpYXRlID0gKGNiKT0+e1xuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdlZGdlJykge1xuICAgICAgICBzZXRUaW1lb3V0KGNiLCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzZXRJbW1lZGlhdGUoY2IpO1xuICAgIH1cbn07XG5mdW5jdGlvbiBhdExlYXN0T25lVGFzaygpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpPT5zY2hlZHVsZUltbWVkaWF0ZShyZXNvbHZlKSk7XG59XG5mdW5jdGlvbiB3YWl0QXRMZWFzdE9uZVJlYWN0UmVuZGVyVGFzaygpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyKT0+c2V0VGltZW91dChyLCAwKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyKT0+c2V0SW1tZWRpYXRlKHIpKTtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjaGVkdWxlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/lib/scheduler.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/next-devtools/shared/console-error.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/shared/console-error.js ***!
\**********************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("// To distinguish from React error.digest, we use a different symbol here to determine if the error is from console.error or unhandled promise rejection.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createConsoleError: function() {\n return createConsoleError;\n },\n isConsoleError: function() {\n return isConsoleError;\n }\n});\nconst digestSym = Symbol.for('next.console.error.digest');\nfunction createConsoleError(message, environmentName) {\n const error = typeof message === 'string' ? Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n }) : message;\n error[digestSym] = 'NEXT_CONSOLE_ERROR';\n if (environmentName && !error.environmentName) {\n error.environmentName = environmentName;\n }\n return error;\n}\nconst isConsoleError = (error)=>{\n return error && error[digestSym] === 'NEXT_CONSOLE_ERROR';\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=console-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvc2hhcmVkL2NvbnNvbGUtZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvc2hhcmVkL2NvbnNvbGUtZXJyb3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVG8gZGlzdGluZ3Vpc2ggZnJvbSBSZWFjdCBlcnJvci5kaWdlc3QsIHdlIHVzZSBhIGRpZmZlcmVudCBzeW1ib2wgaGVyZSB0byBkZXRlcm1pbmUgaWYgdGhlIGVycm9yIGlzIGZyb20gY29uc29sZS5lcnJvciBvciB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb24uXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZUNvbnNvbGVFcnJvcjogbnVsbCxcbiAgICBpc0NvbnNvbGVFcnJvcjogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjcmVhdGVDb25zb2xlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlQ29uc29sZUVycm9yO1xuICAgIH0sXG4gICAgaXNDb25zb2xlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNDb25zb2xlRXJyb3I7XG4gICAgfVxufSk7XG5jb25zdCBkaWdlc3RTeW0gPSBTeW1ib2wuZm9yKCduZXh0LmNvbnNvbGUuZXJyb3IuZGlnZXN0Jyk7XG5mdW5jdGlvbiBjcmVhdGVDb25zb2xlRXJyb3IobWVzc2FnZSwgZW52aXJvbm1lbnROYW1lKSB7XG4gICAgY29uc3QgZXJyb3IgPSB0eXBlb2YgbWVzc2FnZSA9PT0gJ3N0cmluZycgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKG1lc3NhZ2UpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTM5NFwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSkgOiBtZXNzYWdlO1xuICAgIGVycm9yW2RpZ2VzdFN5bV0gPSAnTkVYVF9DT05TT0xFX0VSUk9SJztcbiAgICBpZiAoZW52aXJvbm1lbnROYW1lICYmICFlcnJvci5lbnZpcm9ubWVudE5hbWUpIHtcbiAgICAgICAgZXJyb3IuZW52aXJvbm1lbnROYW1lID0gZW52aXJvbm1lbnROYW1lO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3I7XG59XG5jb25zdCBpc0NvbnNvbGVFcnJvciA9IChlcnJvcik9PntcbiAgICByZXR1cm4gZXJyb3IgJiYgZXJyb3JbZGlnZXN0U3ltXSA9PT0gJ05FWFRfQ09OU09MRV9FUlJPUic7XG59O1xuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb25zb2xlLWVycm9yLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/shared/console-error.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js":
/*!****************************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js ***!
\****************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n UNDEFINED_MARKER: function() {\n return UNDEFINED_MARKER;\n },\n patchConsoleMethod: function() {\n return patchConsoleMethod;\n }\n});\nconst UNDEFINED_MARKER = '__next_tagged_undefined';\nfunction patchConsoleMethod(methodName, wrapper) {\n const descriptor = Object.getOwnPropertyDescriptor(console, methodName);\n if (descriptor && (descriptor.configurable || descriptor.writable) && typeof descriptor.value === 'function') {\n const originalMethod = descriptor.value;\n const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name');\n const wrapperMethod = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n wrapper(methodName, ...args);\n originalMethod.apply(this, args);\n };\n if (originalName) {\n Object.defineProperty(wrapperMethod, 'name', originalName);\n }\n Object.defineProperty(console, methodName, {\n value: wrapperMethod\n });\n return ()=>{\n Object.defineProperty(console, methodName, {\n value: originalMethod,\n writable: descriptor.writable,\n configurable: descriptor.configurable\n });\n };\n }\n return ()=>{};\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=forward-logs-shared.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvc2hhcmVkL2ZvcndhcmQtbG9ncy1zaGFyZWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBR0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrRUFBK0UsYUFBYTtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvc2hhcmVkL2ZvcndhcmQtbG9ncy1zaGFyZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBVTkRFRklORURfTUFSS0VSOiBudWxsLFxuICAgIHBhdGNoQ29uc29sZU1ldGhvZDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBVTkRFRklORURfTUFSS0VSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFVOREVGSU5FRF9NQVJLRVI7XG4gICAgfSxcbiAgICBwYXRjaENvbnNvbGVNZXRob2Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcGF0Y2hDb25zb2xlTWV0aG9kO1xuICAgIH1cbn0pO1xuY29uc3QgVU5ERUZJTkVEX01BUktFUiA9ICdfX25leHRfdGFnZ2VkX3VuZGVmaW5lZCc7XG5mdW5jdGlvbiBwYXRjaENvbnNvbGVNZXRob2QobWV0aG9kTmFtZSwgd3JhcHBlcikge1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbnNvbGUsIG1ldGhvZE5hbWUpO1xuICAgIGlmIChkZXNjcmlwdG9yICYmIChkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSB8fCBkZXNjcmlwdG9yLndyaXRhYmxlKSAmJiB0eXBlb2YgZGVzY3JpcHRvci52YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsTmFtZSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob3JpZ2luYWxNZXRob2QsICduYW1lJyk7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJNZXRob2QgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGZvcih2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKXtcbiAgICAgICAgICAgICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3JhcHBlcihtZXRob2ROYW1lLCAuLi5hcmdzKTtcbiAgICAgICAgICAgIG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICB9O1xuICAgICAgICBpZiAob3JpZ2luYWxOYW1lKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod3JhcHBlck1ldGhvZCwgJ25hbWUnLCBvcmlnaW5hbE5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb25zb2xlLCBtZXRob2ROYW1lLCB7XG4gICAgICAgICAgICB2YWx1ZTogd3JhcHBlck1ldGhvZFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29uc29sZSwgbWV0aG9kTmFtZSwge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBvcmlnaW5hbE1ldGhvZCxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZGVzY3JpcHRvci53cml0YWJsZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuICgpPT57fTtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9yd2FyZC1sb2dzLXNoYXJlZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js":
/*!**********************************************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js ***!
\**********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AppDevOverlayErrorBoundary\", ({\n enumerable: true,\n get: function() {\n return AppDevOverlayErrorBoundary;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ../../../client/dev/runtime-error-handler */ \"(ssr)/./node_modules/next/dist/client/dev/runtime-error-handler.js\");\nconst _errorboundary = __webpack_require__(/*! ../../../client/components/error-boundary */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _globalerror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../client/components/builtin/global-error */ \"(ssr)/./node_modules/next/dist/client/components/builtin/global-error.js\"));\nconst _segmentexplorernode = __webpack_require__(/*! ./segment-explorer-node */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\nfunction ErroredHtml(param) {\n let { globalError: [GlobalError, globalErrorStyles], error } = param;\n if (!error) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"html\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"head\", {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"body\", {})\n ]\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_errorboundary.ErrorBoundary, {\n errorComponent: _globalerror.default,\n children: [\n globalErrorStyles,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(GlobalError, {\n error: error\n })\n ]\n });\n}\nclass AppDevOverlayErrorBoundary extends _react.PureComponent {\n static getDerivedStateFromError(error) {\n _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError = true;\n return {\n reactError: error\n };\n }\n componentDidCatch(err) {\n if ( true && err.message === _segmentexplorernode.SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE) {\n return;\n }\n _nextdevtools.dispatcher.openErrorOverlay();\n }\n render() {\n const { children, globalError } = this.props;\n const { reactError } = this.state;\n const fallback = /*#__PURE__*/ (0, _jsxruntime.jsx)(ErroredHtml, {\n globalError: globalError,\n error: reactError\n });\n return reactError !== null ? fallback : children;\n }\n constructor(...args){\n super(...args), this.state = {\n reactError: null\n };\n }\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=app-dev-overlay-error-boundary.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9hcHAtZGV2LW92ZXJsYXktZXJyb3ItYm91bmRhcnkuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw4REFBNkQ7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixpQ0FBaUMsbUJBQU8sQ0FBQyxrSEFBeUM7QUFDbEYsb0JBQW9CLG1CQUFPLENBQUMseUhBQW1CO0FBQy9DLGVBQWUsbUJBQU8sQ0FBQyxpR0FBTztBQUM5QixzQkFBc0IsbUJBQU8sQ0FBQyx3R0FBa0M7QUFDaEUsNkJBQTZCLG1CQUFPLENBQUMscUhBQTJDO0FBQ2hGLHVCQUF1QixtQkFBTyxDQUFDLHFIQUEyQztBQUMxRSw4REFBOEQsbUJBQU8sQ0FBQyxpSUFBaUQ7QUFDdkgsNkJBQTZCLG1CQUFPLENBQUMsb0hBQXlCO0FBQzlEO0FBQ0EsVUFBVSx1REFBdUQ7QUFDakU7QUFDQTtBQUNBO0FBQ0EsNkRBQTZEO0FBQzdELDZEQUE2RDtBQUM3RDtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLEtBQXNDO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isd0JBQXdCO0FBQ3hDLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9hcHAtZGV2LW92ZXJsYXktZXJyb3ItYm91bmRhcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJBcHBEZXZPdmVybGF5RXJyb3JCb3VuZGFyeVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwRGV2T3ZlcmxheUVycm9yQm91bmRhcnk7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xuY29uc3QgX2pzeHJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG5jb25zdCBfcmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIik7XG5jb25zdCBfbmV4dGRldnRvb2xzID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9uZXh0LWRldnRvb2xzXCIpO1xuY29uc3QgX3J1bnRpbWVlcnJvcmhhbmRsZXIgPSByZXF1aXJlKFwiLi4vLi4vLi4vY2xpZW50L2Rldi9ydW50aW1lLWVycm9yLWhhbmRsZXJcIik7XG5jb25zdCBfZXJyb3Jib3VuZGFyeSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeVwiKTtcbmNvbnN0IF9nbG9iYWxlcnJvciA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0Ll8ocmVxdWlyZShcIi4uLy4uLy4uL2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLWVycm9yXCIpKTtcbmNvbnN0IF9zZWdtZW50ZXhwbG9yZXJub2RlID0gcmVxdWlyZShcIi4vc2VnbWVudC1leHBsb3Jlci1ub2RlXCIpO1xuZnVuY3Rpb24gRXJyb3JlZEh0bWwocGFyYW0pIHtcbiAgICBsZXQgeyBnbG9iYWxFcnJvcjogW0dsb2JhbEVycm9yLCBnbG9iYWxFcnJvclN0eWxlc10sIGVycm9yIH0gPSBwYXJhbTtcbiAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgIHJldHVybiAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3hzKShcImh0bWxcIiwge1xuICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKFwiaGVhZFwiLCB7fSksXG4gICAgICAgICAgICAgICAgLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4KShcImJvZHlcIiwge30pXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gLyojX19QVVJFX18qLyAoMCwgX2pzeHJ1bnRpbWUuanN4cykoX2Vycm9yYm91bmRhcnkuRXJyb3JCb3VuZGFyeSwge1xuICAgICAgICBlcnJvckNvbXBvbmVudDogX2dsb2JhbGVycm9yLmRlZmF1bHQsXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICBnbG9iYWxFcnJvclN0eWxlcyxcbiAgICAgICAgICAgIC8qI19fUFVSRV9fKi8gKDAsIF9qc3hydW50aW1lLmpzeCkoR2xvYmFsRXJyb3IsIHtcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JcbiAgICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICB9KTtcbn1cbmNsYXNzIEFwcERldk92ZXJsYXlFcnJvckJvdW5kYXJ5IGV4dGVuZHMgX3JlYWN0LlB1cmVDb21wb25lbnQge1xuICAgIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgX3J1bnRpbWVlcnJvcmhhbmRsZXIuUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IgPSB0cnVlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVhY3RFcnJvcjogZXJyb3JcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29tcG9uZW50RGlkQ2F0Y2goZXJyKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiBlcnIubWVzc2FnZSA9PT0gX3NlZ21lbnRleHBsb3Jlcm5vZGUuU0VHTUVOVF9FWFBMT1JFUl9TSU1VTEFURURfRVJST1JfTUVTU0FHRSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIF9uZXh0ZGV2dG9vbHMuZGlzcGF0Y2hlci5vcGVuRXJyb3JPdmVybGF5KCk7XG4gICAgfVxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgeyBjaGlsZHJlbiwgZ2xvYmFsRXJyb3IgfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGNvbnN0IHsgcmVhY3RFcnJvciB9ID0gdGhpcy5zdGF0ZTtcbiAgICAgICAgY29uc3QgZmFsbGJhY2sgPSAvKiNfX1BVUkVfXyovICgwLCBfanN4cnVudGltZS5qc3gpKEVycm9yZWRIdG1sLCB7XG4gICAgICAgICAgICBnbG9iYWxFcnJvcjogZ2xvYmFsRXJyb3IsXG4gICAgICAgICAgICBlcnJvcjogcmVhY3RFcnJvclxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlYWN0RXJyb3IgIT09IG51bGwgPyBmYWxsYmFjayA6IGNoaWxkcmVuO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzKXtcbiAgICAgICAgc3VwZXIoLi4uYXJncyksIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgICAgICByZWFjdEVycm9yOiBudWxsXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtZGV2LW92ZXJsYXktZXJyb3ItYm91bmRhcnkuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js":
/*!*********************************************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js ***!
\*********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ReplaySsrOnlyErrors\", ({\n enumerable: true,\n get: function() {\n return ReplaySsrOnlyErrors;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _useerrorhandler = __webpack_require__(/*! ./use-error-handler */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js\");\nconst _isnextroutererror = __webpack_require__(/*! ../../../../client/components/is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _constants = __webpack_require__(/*! ../../../../shared/lib/errors/constants */ \"(ssr)/./node_modules/next/dist/shared/lib/errors/constants.js\");\nfunction readSsrError() {\n if (typeof document === 'undefined') {\n return null;\n }\n const ssrErrorTemplateTag = document.querySelector('template[data-next-error-message]');\n if (ssrErrorTemplateTag) {\n const message = ssrErrorTemplateTag.getAttribute('data-next-error-message');\n const stack = ssrErrorTemplateTag.getAttribute('data-next-error-stack');\n const digest = ssrErrorTemplateTag.getAttribute('data-next-error-digest');\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n if (digest) {\n ;\n error.digest = digest;\n }\n // Skip Next.js SSR'd internal errors that which will be handled by the error boundaries.\n if ((0, _isnextroutererror.isNextRouterError)(error)) {\n return null;\n }\n error.stack = stack || '';\n return error;\n }\n return null;\n}\nfunction ReplaySsrOnlyErrors(param) {\n let { onBlockingError } = param;\n if (true) {\n // Need to read during render. The attributes will be gone after commit.\n const ssrError = readSsrError();\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (0, _react.useEffect)(()=>{\n if (ssrError !== null) {\n // TODO(veil): Include original Owner Stack (NDX-905)\n // TODO(veil): Mark as recoverable error\n // TODO(veil): console.error\n (0, _useerrorhandler.handleClientError)(ssrError);\n // If it's missing root tags, we can't recover, make it blocking.\n if (ssrError.digest === _constants.MISSING_ROOT_TAGS_ERROR) {\n onBlockingError();\n }\n }\n }, [\n ssrError,\n onBlockingError\n ]);\n }\n return null;\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=replay-ssr-only-errors.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvcmVwbGF5LXNzci1vbmx5LWVycm9ycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHVEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLGVBQWUsbUJBQU8sQ0FBQyxpR0FBTztBQUM5Qix5QkFBeUIsbUJBQU8sQ0FBQyxtSEFBcUI7QUFDdEQsMkJBQTJCLG1CQUFPLENBQUMsb0lBQW9EO0FBQ3ZGLG1CQUFtQixtQkFBTyxDQUFDLDhHQUF5QztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxrQkFBa0I7QUFDNUIsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvZXJyb3JzL3JlcGxheS1zc3Itb25seS1lcnJvcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZXBsYXlTc3JPbmx5RXJyb3JzXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXBsYXlTc3JPbmx5RXJyb3JzO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuY29uc3QgX3VzZWVycm9yaGFuZGxlciA9IHJlcXVpcmUoXCIuL3VzZS1lcnJvci1oYW5kbGVyXCIpO1xuY29uc3QgX2lzbmV4dHJvdXRlcmVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yXCIpO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9zaGFyZWQvbGliL2Vycm9ycy9jb25zdGFudHNcIik7XG5mdW5jdGlvbiByZWFkU3NyRXJyb3IoKSB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHNzckVycm9yVGVtcGxhdGVUYWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0ZW1wbGF0ZVtkYXRhLW5leHQtZXJyb3ItbWVzc2FnZV0nKTtcbiAgICBpZiAoc3NyRXJyb3JUZW1wbGF0ZVRhZykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gc3NyRXJyb3JUZW1wbGF0ZVRhZy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbmV4dC1lcnJvci1tZXNzYWdlJyk7XG4gICAgICAgIGNvbnN0IHN0YWNrID0gc3NyRXJyb3JUZW1wbGF0ZVRhZy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbmV4dC1lcnJvci1zdGFjaycpO1xuICAgICAgICBjb25zdCBkaWdlc3QgPSBzc3JFcnJvclRlbXBsYXRlVGFnLmdldEF0dHJpYnV0ZSgnZGF0YS1uZXh0LWVycm9yLWRpZ2VzdCcpO1xuICAgICAgICBjb25zdCBlcnJvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IobWVzc2FnZSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTM5NFwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkaWdlc3QpIHtcbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIGVycm9yLmRpZ2VzdCA9IGRpZ2VzdDtcbiAgICAgICAgfVxuICAgICAgICAvLyBTa2lwIE5leHQuanMgU1NSJ2QgaW50ZXJuYWwgZXJyb3JzIHRoYXQgd2hpY2ggd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBlcnJvciBib3VuZGFyaWVzLlxuICAgICAgICBpZiAoKDAsIF9pc25leHRyb3V0ZXJlcnJvci5pc05leHRSb3V0ZXJFcnJvcikoZXJyb3IpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlcnJvci5zdGFjayA9IHN0YWNrIHx8ICcnO1xuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gUmVwbGF5U3NyT25seUVycm9ycyhwYXJhbSkge1xuICAgIGxldCB7IG9uQmxvY2tpbmdFcnJvciB9ID0gcGFyYW07XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgLy8gTmVlZCB0byByZWFkIGR1cmluZyByZW5kZXIuIFRoZSBhdHRyaWJ1dGVzIHdpbGwgYmUgZ29uZSBhZnRlciBjb21taXQuXG4gICAgICAgIGNvbnN0IHNzckVycm9yID0gcmVhZFNzckVycm9yKCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9ydWxlcy1vZi1ob29rc1xuICAgICAgICAoMCwgX3JlYWN0LnVzZUVmZmVjdCkoKCk9PntcbiAgICAgICAgICAgIGlmIChzc3JFcnJvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE8odmVpbCk6IEluY2x1ZGUgb3JpZ2luYWwgT3duZXIgU3RhY2sgKE5EWC05MDUpXG4gICAgICAgICAgICAgICAgLy8gVE9ETyh2ZWlsKTogTWFyayBhcyByZWNvdmVyYWJsZSBlcnJvclxuICAgICAgICAgICAgICAgIC8vIFRPRE8odmVpbCk6IGNvbnNvbGUuZXJyb3JcbiAgICAgICAgICAgICAgICAoMCwgX3VzZWVycm9yaGFuZGxlci5oYW5kbGVDbGllbnRFcnJvcikoc3NyRXJyb3IpO1xuICAgICAgICAgICAgICAgIC8vIElmIGl0J3MgbWlzc2luZyByb290IHRhZ3MsIHdlIGNhbid0IHJlY292ZXIsIG1ha2UgaXQgYmxvY2tpbmcuXG4gICAgICAgICAgICAgICAgaWYgKHNzckVycm9yLmRpZ2VzdCA9PT0gX2NvbnN0YW50cy5NSVNTSU5HX1JPT1RfVEFHU19FUlJPUikge1xuICAgICAgICAgICAgICAgICAgICBvbkJsb2NraW5nRXJyb3IoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtcbiAgICAgICAgICAgIHNzckVycm9yLFxuICAgICAgICAgICAgb25CbG9ja2luZ0Vycm9yXG4gICAgICAgIF0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVwbGF5LXNzci1vbmx5LWVycm9ycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js":
/*!*************************************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js ***!
\*************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n coerceError: function() {\n return coerceError;\n },\n decorateDevError: function() {\n return decorateDevError;\n },\n getComponentStack: function() {\n return getComponentStack;\n },\n getOwnerStack: function() {\n return getOwnerStack;\n },\n setComponentStack: function() {\n return setComponentStack;\n },\n setOwnerStack: function() {\n return setOwnerStack;\n },\n setOwnerStackIfAvailable: function() {\n return setOwnerStackIfAvailable;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../lib/is-error */ \"(ssr)/./node_modules/next/dist/lib/is-error.js\"));\nconst ownerStacks = new WeakMap();\nconst componentStacks = new WeakMap();\nfunction getComponentStack(error) {\n return componentStacks.get(error);\n}\nfunction setComponentStack(error, stack) {\n componentStacks.set(error, stack);\n}\nfunction getOwnerStack(error) {\n return ownerStacks.get(error);\n}\nfunction setOwnerStack(error, stack) {\n ownerStacks.set(error, stack);\n}\nfunction coerceError(value) {\n return (0, _iserror.default)(value) ? value : Object.defineProperty(new Error('' + value), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\nfunction setOwnerStackIfAvailable(error) {\n // React 18 and prod does not have `captureOwnerStack`\n if ('captureOwnerStack' in _react.default) {\n setOwnerStack(error, _react.default.captureOwnerStack());\n }\n}\nfunction decorateDevError(thrownValue, errorInfo) {\n const error = coerceError(thrownValue);\n setOwnerStackIfAvailable(error);\n // TODO: change to passing down errorInfo later\n // In development mode, pass along the component stack to the error\n if (errorInfo.componentStack) {\n setComponentStack(error, errorInfo.componentStack);\n }\n return error;\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=stitched-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvc3RpdGNoZWQtZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBUUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlDQUFpQyxtQkFBTyxDQUFDLGtIQUF5QztBQUNsRix3REFBd0QsbUJBQU8sQ0FBQyxpR0FBTztBQUN2RSwwREFBMEQsbUJBQU8sQ0FBQyxnRkFBMEI7QUFDNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvZXJyb3JzL3N0aXRjaGVkLWVycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY29lcmNlRXJyb3I6IG51bGwsXG4gICAgZGVjb3JhdGVEZXZFcnJvcjogbnVsbCxcbiAgICBnZXRDb21wb25lbnRTdGFjazogbnVsbCxcbiAgICBnZXRPd25lclN0YWNrOiBudWxsLFxuICAgIHNldENvbXBvbmVudFN0YWNrOiBudWxsLFxuICAgIHNldE93bmVyU3RhY2s6IG51bGwsXG4gICAgc2V0T3duZXJTdGFja0lmQXZhaWxhYmxlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNvZXJjZUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNvZXJjZUVycm9yO1xuICAgIH0sXG4gICAgZGVjb3JhdGVEZXZFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBkZWNvcmF0ZURldkVycm9yO1xuICAgIH0sXG4gICAgZ2V0Q29tcG9uZW50U3RhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50U3RhY2s7XG4gICAgfSxcbiAgICBnZXRPd25lclN0YWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldE93bmVyU3RhY2s7XG4gICAgfSxcbiAgICBzZXRDb21wb25lbnRTdGFjazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZXRDb21wb25lbnRTdGFjaztcbiAgICB9LFxuICAgIHNldE93bmVyU3RhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2V0T3duZXJTdGFjaztcbiAgICB9LFxuICAgIHNldE93bmVyU3RhY2tJZkF2YWlsYWJsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBzZXRPd25lclN0YWNrSWZBdmFpbGFibGU7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xuY29uc3QgX3JlYWN0ID0gLyojX19QVVJFX18qLyBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuXyhyZXF1aXJlKFwicmVhY3RcIikpO1xuY29uc3QgX2lzZXJyb3IgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5fKHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9saWIvaXMtZXJyb3JcIikpO1xuY29uc3Qgb3duZXJTdGFja3MgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgY29tcG9uZW50U3RhY2tzID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIGdldENvbXBvbmVudFN0YWNrKGVycm9yKSB7XG4gICAgcmV0dXJuIGNvbXBvbmVudFN0YWNrcy5nZXQoZXJyb3IpO1xufVxuZnVuY3Rpb24gc2V0Q29tcG9uZW50U3RhY2soZXJyb3IsIHN0YWNrKSB7XG4gICAgY29tcG9uZW50U3RhY2tzLnNldChlcnJvciwgc3RhY2spO1xufVxuZnVuY3Rpb24gZ2V0T3duZXJTdGFjayhlcnJvcikge1xuICAgIHJldHVybiBvd25lclN0YWNrcy5nZXQoZXJyb3IpO1xufVxuZnVuY3Rpb24gc2V0T3duZXJTdGFjayhlcnJvciwgc3RhY2spIHtcbiAgICBvd25lclN0YWNrcy5zZXQoZXJyb3IsIHN0YWNrKTtcbn1cbmZ1bmN0aW9uIGNvZXJjZUVycm9yKHZhbHVlKSB7XG4gICAgcmV0dXJuICgwLCBfaXNlcnJvci5kZWZhdWx0KSh2YWx1ZSkgPyB2YWx1ZSA6IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJycgKyB2YWx1ZSksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICB2YWx1ZTogXCJFMzk0XCIsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIHNldE93bmVyU3RhY2tJZkF2YWlsYWJsZShlcnJvcikge1xuICAgIC8vIFJlYWN0IDE4IGFuZCBwcm9kIGRvZXMgbm90IGhhdmUgYGNhcHR1cmVPd25lclN0YWNrYFxuICAgIGlmICgnY2FwdHVyZU93bmVyU3RhY2snIGluIF9yZWFjdC5kZWZhdWx0KSB7XG4gICAgICAgIHNldE93bmVyU3RhY2soZXJyb3IsIF9yZWFjdC5kZWZhdWx0LmNhcHR1cmVPd25lclN0YWNrKCkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGRlY29yYXRlRGV2RXJyb3IodGhyb3duVmFsdWUsIGVycm9ySW5mbykge1xuICAgIGNvbnN0IGVycm9yID0gY29lcmNlRXJyb3IodGhyb3duVmFsdWUpO1xuICAgIHNldE93bmVyU3RhY2tJZkF2YWlsYWJsZShlcnJvcik7XG4gICAgLy8gVE9ETzogY2hhbmdlIHRvIHBhc3NpbmcgZG93biBlcnJvckluZm8gbGF0ZXJcbiAgICAvLyBJbiBkZXZlbG9wbWVudCBtb2RlLCBwYXNzIGFsb25nIHRoZSBjb21wb25lbnQgc3RhY2sgdG8gdGhlIGVycm9yXG4gICAgaWYgKGVycm9ySW5mby5jb21wb25lbnRTdGFjaykge1xuICAgICAgICBzZXRDb21wb25lbnRTdGFjayhlcnJvciwgZXJyb3JJbmZvLmNvbXBvbmVudFN0YWNrKTtcbiAgICB9XG4gICAgcmV0dXJuIGVycm9yO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdGl0Y2hlZC1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js":
/*!****************************************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js ***!
\****************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n handleClientError: function() {\n return handleClientError;\n },\n handleConsoleError: function() {\n return handleConsoleError;\n },\n handleGlobalErrors: function() {\n return handleGlobalErrors;\n },\n useErrorHandler: function() {\n return useErrorHandler;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _isnextroutererror = __webpack_require__(/*! ../../../../client/components/is-next-router-error */ \"(ssr)/./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst _console = __webpack_require__(/*! ../../../../client/lib/console */ \"(ssr)/./node_modules/next/dist/client/lib/console.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../lib/is-error */ \"(ssr)/./node_modules/next/dist/lib/is-error.js\"));\nconst _consoleerror = __webpack_require__(/*! ../../../shared/console-error */ \"(ssr)/./node_modules/next/dist/next-devtools/shared/console-error.js\");\nconst _stitchederror = __webpack_require__(/*! ./stitched-error */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\");\nconst _forwardlogs = __webpack_require__(/*! ../forward-logs */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\");\nconst queueMicroTask = globalThis.queueMicrotask || ((cb)=>Promise.resolve().then(cb));\nconst errorQueue = [];\nconst errorHandlers = [];\nconst rejectionQueue = [];\nconst rejectionHandlers = [];\nfunction handleConsoleError(originError, consoleErrorArgs) {\n let error;\n const { environmentName } = (0, _console.parseConsoleArgs)(consoleErrorArgs);\n if ((0, _iserror.default)(originError)) {\n error = (0, _consoleerror.createConsoleError)(originError, environmentName);\n } else {\n error = (0, _consoleerror.createConsoleError)((0, _console.formatConsoleArgs)(consoleErrorArgs), environmentName);\n }\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n errorQueue.push(error);\n for (const handler of errorHandlers){\n // Delayed the error being passed to React Dev Overlay,\n // avoid the state being synchronously updated in the component.\n queueMicroTask(()=>{\n handler(error);\n });\n }\n}\nfunction handleClientError(error) {\n errorQueue.push(error);\n for (const handler of errorHandlers){\n // Delayed the error being passed to React Dev Overlay,\n // avoid the state being synchronously updated in the component.\n queueMicroTask(()=>{\n handler(error);\n });\n }\n}\nfunction useErrorHandler(handleOnUnhandledError, handleOnUnhandledRejection) {\n (0, _react.useEffect)(()=>{\n // Handle queued errors.\n errorQueue.forEach(handleOnUnhandledError);\n rejectionQueue.forEach(handleOnUnhandledRejection);\n // Listen to new errors.\n errorHandlers.push(handleOnUnhandledError);\n rejectionHandlers.push(handleOnUnhandledRejection);\n return ()=>{\n // Remove listeners.\n errorHandlers.splice(errorHandlers.indexOf(handleOnUnhandledError), 1);\n rejectionHandlers.splice(rejectionHandlers.indexOf(handleOnUnhandledRejection), 1);\n // Reset error queues.\n errorQueue.splice(0, errorQueue.length);\n rejectionQueue.splice(0, rejectionQueue.length);\n };\n }, [\n handleOnUnhandledError,\n handleOnUnhandledRejection\n ]);\n}\nfunction onUnhandledError(event) {\n const thrownValue = event.error;\n if ((0, _isnextroutererror.isNextRouterError)(thrownValue)) {\n event.preventDefault();\n return false;\n }\n // When there's an error property present, we log the error to error overlay.\n // Otherwise we don't do anything as it's not logging in the console either.\n if (thrownValue) {\n const error = (0, _stitchederror.coerceError)(thrownValue);\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n handleClientError(error);\n if (_forwardlogs.isTerminalLoggingEnabled) {\n (0, _forwardlogs.forwardUnhandledError)(error);\n }\n }\n}\nfunction onUnhandledRejection(ev) {\n const reason = ev == null ? void 0 : ev.reason;\n if ((0, _isnextroutererror.isNextRouterError)(reason)) {\n ev.preventDefault();\n return;\n }\n const error = (0, _stitchederror.coerceError)(reason);\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n rejectionQueue.push(error);\n for (const handler of rejectionHandlers){\n handler(error);\n }\n if (_forwardlogs.isTerminalLoggingEnabled) {\n (0, _forwardlogs.logUnhandledRejection)(reason);\n }\n}\nfunction handleGlobalErrors() {\n if (typeof window !== 'undefined') {\n try {\n // Increase the number of stack frames on the client\n Error.stackTraceLimit = 50;\n } catch (e) {}\n window.addEventListener('error', onUnhandledError);\n window.addEventListener('unhandledrejection', onUnhandledRejection);\n }\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=use-error-handler.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvdXNlLWVycm9yLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBS0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlDQUFpQyxtQkFBTyxDQUFDLGtIQUF5QztBQUNsRixlQUFlLG1CQUFPLENBQUMsaUdBQU87QUFDOUIsMkJBQTJCLG1CQUFPLENBQUMsb0lBQW9EO0FBQ3ZGLGlCQUFpQixtQkFBTyxDQUFDLDRGQUFnQztBQUN6RCwwREFBMEQsbUJBQU8sQ0FBQyxnRkFBMEI7QUFDNUYsc0JBQXNCLG1CQUFPLENBQUMsMkdBQStCO0FBQzdELHVCQUF1QixtQkFBTyxDQUFDLDZHQUFrQjtBQUNqRCxxQkFBcUIsbUJBQU8sQ0FBQyxtR0FBaUI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGtCQUFrQjtBQUM5QjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvZXJyb3JzL3VzZS1lcnJvci1oYW5kbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaGFuZGxlQ2xpZW50RXJyb3I6IG51bGwsXG4gICAgaGFuZGxlQ29uc29sZUVycm9yOiBudWxsLFxuICAgIGhhbmRsZUdsb2JhbEVycm9yczogbnVsbCxcbiAgICB1c2VFcnJvckhhbmRsZXI6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaGFuZGxlQ2xpZW50RXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaGFuZGxlQ2xpZW50RXJyb3I7XG4gICAgfSxcbiAgICBoYW5kbGVDb25zb2xlRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaGFuZGxlQ29uc29sZUVycm9yO1xuICAgIH0sXG4gICAgaGFuZGxlR2xvYmFsRXJyb3JzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGhhbmRsZUdsb2JhbEVycm9ycztcbiAgICB9LFxuICAgIHVzZUVycm9ySGFuZGxlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB1c2VFcnJvckhhbmRsZXI7XG4gICAgfVxufSk7XG5jb25zdCBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQgPSByZXF1aXJlKFwiQHN3Yy9oZWxwZXJzL18vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0XCIpO1xuY29uc3QgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuY29uc3QgX2lzbmV4dHJvdXRlcmVycm9yID0gcmVxdWlyZShcIi4uLy4uLy4uLy4uL2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yXCIpO1xuY29uc3QgX2NvbnNvbGUgPSByZXF1aXJlKFwiLi4vLi4vLi4vLi4vY2xpZW50L2xpYi9jb25zb2xlXCIpO1xuY29uc3QgX2lzZXJyb3IgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5fKHJlcXVpcmUoXCIuLi8uLi8uLi8uLi9saWIvaXMtZXJyb3JcIikpO1xuY29uc3QgX2NvbnNvbGVlcnJvciA9IHJlcXVpcmUoXCIuLi8uLi8uLi9zaGFyZWQvY29uc29sZS1lcnJvclwiKTtcbmNvbnN0IF9zdGl0Y2hlZGVycm9yID0gcmVxdWlyZShcIi4vc3RpdGNoZWQtZXJyb3JcIik7XG5jb25zdCBfZm9yd2FyZGxvZ3MgPSByZXF1aXJlKFwiLi4vZm9yd2FyZC1sb2dzXCIpO1xuY29uc3QgcXVldWVNaWNyb1Rhc2sgPSBnbG9iYWxUaGlzLnF1ZXVlTWljcm90YXNrIHx8ICgoY2IpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKGNiKSk7XG5jb25zdCBlcnJvclF1ZXVlID0gW107XG5jb25zdCBlcnJvckhhbmRsZXJzID0gW107XG5jb25zdCByZWplY3Rpb25RdWV1ZSA9IFtdO1xuY29uc3QgcmVqZWN0aW9uSGFuZGxlcnMgPSBbXTtcbmZ1bmN0aW9uIGhhbmRsZUNvbnNvbGVFcnJvcihvcmlnaW5FcnJvciwgY29uc29sZUVycm9yQXJncykge1xuICAgIGxldCBlcnJvcjtcbiAgICBjb25zdCB7IGVudmlyb25tZW50TmFtZSB9ID0gKDAsIF9jb25zb2xlLnBhcnNlQ29uc29sZUFyZ3MpKGNvbnNvbGVFcnJvckFyZ3MpO1xuICAgIGlmICgoMCwgX2lzZXJyb3IuZGVmYXVsdCkob3JpZ2luRXJyb3IpKSB7XG4gICAgICAgIGVycm9yID0gKDAsIF9jb25zb2xlZXJyb3IuY3JlYXRlQ29uc29sZUVycm9yKShvcmlnaW5FcnJvciwgZW52aXJvbm1lbnROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvciA9ICgwLCBfY29uc29sZWVycm9yLmNyZWF0ZUNvbnNvbGVFcnJvcikoKDAsIF9jb25zb2xlLmZvcm1hdENvbnNvbGVBcmdzKShjb25zb2xlRXJyb3JBcmdzKSwgZW52aXJvbm1lbnROYW1lKTtcbiAgICB9XG4gICAgKDAsIF9zdGl0Y2hlZGVycm9yLnNldE93bmVyU3RhY2tJZkF2YWlsYWJsZSkoZXJyb3IpO1xuICAgIGVycm9yUXVldWUucHVzaChlcnJvcik7XG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIGVycm9ySGFuZGxlcnMpe1xuICAgICAgICAvLyBEZWxheWVkIHRoZSBlcnJvciBiZWluZyBwYXNzZWQgdG8gUmVhY3QgRGV2IE92ZXJsYXksXG4gICAgICAgIC8vIGF2b2lkIHRoZSBzdGF0ZSBiZWluZyBzeW5jaHJvbm91c2x5IHVwZGF0ZWQgaW4gdGhlIGNvbXBvbmVudC5cbiAgICAgICAgcXVldWVNaWNyb1Rhc2soKCk9PntcbiAgICAgICAgICAgIGhhbmRsZXIoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiBoYW5kbGVDbGllbnRFcnJvcihlcnJvcikge1xuICAgIGVycm9yUXVldWUucHVzaChlcnJvcik7XG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIGVycm9ySGFuZGxlcnMpe1xuICAgICAgICAvLyBEZWxheWVkIHRoZSBlcnJvciBiZWluZyBwYXNzZWQgdG8gUmVhY3QgRGV2IE92ZXJsYXksXG4gICAgICAgIC8vIGF2b2lkIHRoZSBzdGF0ZSBiZWluZyBzeW5jaHJvbm91c2x5IHVwZGF0ZWQgaW4gdGhlIGNvbXBvbmVudC5cbiAgICAgICAgcXVldWVNaWNyb1Rhc2soKCk9PntcbiAgICAgICAgICAgIGhhbmRsZXIoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5mdW5jdGlvbiB1c2VFcnJvckhhbmRsZXIoaGFuZGxlT25VbmhhbmRsZWRFcnJvciwgaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pIHtcbiAgICAoMCwgX3JlYWN0LnVzZUVmZmVjdCkoKCk9PntcbiAgICAgICAgLy8gSGFuZGxlIHF1ZXVlZCBlcnJvcnMuXG4gICAgICAgIGVycm9yUXVldWUuZm9yRWFjaChoYW5kbGVPblVuaGFuZGxlZEVycm9yKTtcbiAgICAgICAgcmVqZWN0aW9uUXVldWUuZm9yRWFjaChoYW5kbGVPblVuaGFuZGxlZFJlamVjdGlvbik7XG4gICAgICAgIC8vIExpc3RlbiB0byBuZXcgZXJyb3JzLlxuICAgICAgICBlcnJvckhhbmRsZXJzLnB1c2goaGFuZGxlT25VbmhhbmRsZWRFcnJvcik7XG4gICAgICAgIHJlamVjdGlvbkhhbmRsZXJzLnB1c2goaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pO1xuICAgICAgICByZXR1cm4gKCk9PntcbiAgICAgICAgICAgIC8vIFJlbW92ZSBsaXN0ZW5lcnMuXG4gICAgICAgICAgICBlcnJvckhhbmRsZXJzLnNwbGljZShlcnJvckhhbmRsZXJzLmluZGV4T2YoaGFuZGxlT25VbmhhbmRsZWRFcnJvciksIDEpO1xuICAgICAgICAgICAgcmVqZWN0aW9uSGFuZGxlcnMuc3BsaWNlKHJlamVjdGlvbkhhbmRsZXJzLmluZGV4T2YoaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb24pLCAxKTtcbiAgICAgICAgICAgIC8vIFJlc2V0IGVycm9yIHF1ZXVlcy5cbiAgICAgICAgICAgIGVycm9yUXVldWUuc3BsaWNlKDAsIGVycm9yUXVldWUubGVuZ3RoKTtcbiAgICAgICAgICAgIHJlamVjdGlvblF1ZXVlLnNwbGljZSgwLCByZWplY3Rpb25RdWV1ZS5sZW5ndGgpO1xuICAgICAgICB9O1xuICAgIH0sIFtcbiAgICAgICAgaGFuZGxlT25VbmhhbmRsZWRFcnJvcixcbiAgICAgICAgaGFuZGxlT25VbmhhbmRsZWRSZWplY3Rpb25cbiAgICBdKTtcbn1cbmZ1bmN0aW9uIG9uVW5oYW5kbGVkRXJyb3IoZXZlbnQpIHtcbiAgICBjb25zdCB0aHJvd25WYWx1ZSA9IGV2ZW50LmVycm9yO1xuICAgIGlmICgoMCwgX2lzbmV4dHJvdXRlcmVycm9yLmlzTmV4dFJvdXRlckVycm9yKSh0aHJvd25WYWx1ZSkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBXaGVuIHRoZXJlJ3MgYW4gZXJyb3IgcHJvcGVydHkgcHJlc2VudCwgd2UgbG9nIHRoZSBlcnJvciB0byBlcnJvciBvdmVybGF5LlxuICAgIC8vIE90aGVyd2lzZSB3ZSBkb24ndCBkbyBhbnl0aGluZyBhcyBpdCdzIG5vdCBsb2dnaW5nIGluIHRoZSBjb25zb2xlIGVpdGhlci5cbiAgICBpZiAodGhyb3duVmFsdWUpIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSAoMCwgX3N0aXRjaGVkZXJyb3IuY29lcmNlRXJyb3IpKHRocm93blZhbHVlKTtcbiAgICAgICAgKDAsIF9zdGl0Y2hlZGVycm9yLnNldE93bmVyU3RhY2tJZkF2YWlsYWJsZSkoZXJyb3IpO1xuICAgICAgICBoYW5kbGVDbGllbnRFcnJvcihlcnJvcik7XG4gICAgICAgIGlmIChfZm9yd2FyZGxvZ3MuaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICAoMCwgX2ZvcndhcmRsb2dzLmZvcndhcmRVbmhhbmRsZWRFcnJvcikoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gb25VbmhhbmRsZWRSZWplY3Rpb24oZXYpIHtcbiAgICBjb25zdCByZWFzb24gPSBldiA9PSBudWxsID8gdm9pZCAwIDogZXYucmVhc29uO1xuICAgIGlmICgoMCwgX2lzbmV4dHJvdXRlcmVycm9yLmlzTmV4dFJvdXRlckVycm9yKShyZWFzb24pKSB7XG4gICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXJyb3IgPSAoMCwgX3N0aXRjaGVkZXJyb3IuY29lcmNlRXJyb3IpKHJlYXNvbik7XG4gICAgKDAsIF9zdGl0Y2hlZGVycm9yLnNldE93bmVyU3RhY2tJZkF2YWlsYWJsZSkoZXJyb3IpO1xuICAgIHJlamVjdGlvblF1ZXVlLnB1c2goZXJyb3IpO1xuICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiByZWplY3Rpb25IYW5kbGVycyl7XG4gICAgICAgIGhhbmRsZXIoZXJyb3IpO1xuICAgIH1cbiAgICBpZiAoX2ZvcndhcmRsb2dzLmlzVGVybWluYWxMb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICAoMCwgX2ZvcndhcmRsb2dzLmxvZ1VuaGFuZGxlZFJlamVjdGlvbikocmVhc29uKTtcbiAgICB9XG59XG5mdW5jdGlvbiBoYW5kbGVHbG9iYWxFcnJvcnMoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBJbmNyZWFzZSB0aGUgbnVtYmVyIG9mIHN0YWNrIGZyYW1lcyBvbiB0aGUgY2xpZW50XG4gICAgICAgICAgICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSA1MDtcbiAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgb25VbmhhbmRsZWRFcnJvcik7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBvblVuaGFuZGxlZFJlamVjdGlvbik7XG4gICAgfVxufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2UtZXJyb3ItaGFuZGxlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js":
/*!**********************************************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js ***!
\**********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useForwardConsoleLog\", ({\n enumerable: true,\n get: function() {\n return useForwardConsoleLog;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _forwardlogs = __webpack_require__(/*! ../forward-logs */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\");\nconst useForwardConsoleLog = (socketRef)=>{\n (0, _react.useEffect)(()=>{\n if (!_forwardlogs.isTerminalLoggingEnabled) {\n return;\n }\n const socket = socketRef.current;\n if (!socket) {\n return;\n }\n const onOpen = ()=>{\n _forwardlogs.logQueue.onSocketReady(socket);\n };\n socket.addEventListener('open', onOpen);\n return ()=>{\n socket.removeEventListener('open', onOpen);\n };\n }, [\n socketRef\n ]);\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=use-forward-console-log.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9lcnJvcnMvdXNlLWZvcndhcmQtY29uc29sZS1sb2cuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix3REFBdUQ7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixlQUFlLG1CQUFPLENBQUMsaUdBQU87QUFDOUIscUJBQXFCLG1CQUFPLENBQUMsbUdBQWlCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RCxhQUFhO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvZXJyb3JzL3VzZS1mb3J3YXJkLWNvbnNvbGUtbG9nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwidXNlRm9yd2FyZENvbnNvbGVMb2dcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHVzZUZvcndhcmRDb25zb2xlTG9nO1xuICAgIH1cbn0pO1xuY29uc3QgX3JlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpO1xuY29uc3QgX2ZvcndhcmRsb2dzID0gcmVxdWlyZShcIi4uL2ZvcndhcmQtbG9nc1wiKTtcbmNvbnN0IHVzZUZvcndhcmRDb25zb2xlTG9nID0gKHNvY2tldFJlZik9PntcbiAgICAoMCwgX3JlYWN0LnVzZUVmZmVjdCkoKCk9PntcbiAgICAgICAgaWYgKCFfZm9yd2FyZGxvZ3MuaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc29ja2V0ID0gc29ja2V0UmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICghc29ja2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb25PcGVuID0gKCk9PntcbiAgICAgICAgICAgIF9mb3J3YXJkbG9ncy5sb2dRdWV1ZS5vblNvY2tldFJlYWR5KHNvY2tldCk7XG4gICAgICAgIH07XG4gICAgICAgIHNvY2tldC5hZGRFdmVudExpc3RlbmVyKCdvcGVuJywgb25PcGVuKTtcbiAgICAgICAgcmV0dXJuICgpPT57XG4gICAgICAgICAgICBzb2NrZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignb3BlbicsIG9uT3Blbik7XG4gICAgICAgIH07XG4gICAgfSwgW1xuICAgICAgICBzb2NrZXRSZWZcbiAgICBdKTtcbn07XG5cbmlmICgodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIGV4cG9ydHMuZGVmYXVsdCA9PT0gJ29iamVjdCcgJiYgZXhwb3J0cy5kZWZhdWx0ICE9PSBudWxsKSkgJiYgdHlwZW9mIGV4cG9ydHMuZGVmYXVsdC5fX2VzTW9kdWxlID09PSAndW5kZWZpbmVkJykge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cy5kZWZhdWx0LCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gIE9iamVjdC5hc3NpZ24oZXhwb3J0cy5kZWZhdWx0LCBleHBvcnRzKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSBleHBvcnRzLmRlZmF1bHQ7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1mb3J3YXJkLWNvbnNvbGUtbG9nLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/use-forward-console-log.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js":
/*!****************************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js ***!
\****************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PROMISE_MARKER: function() {\n return PROMISE_MARKER;\n },\n UNAVAILABLE_MARKER: function() {\n return UNAVAILABLE_MARKER;\n },\n forwardErrorLog: function() {\n return forwardErrorLog;\n },\n forwardUnhandledError: function() {\n return forwardUnhandledError;\n },\n initializeDebugLogForwarding: function() {\n return initializeDebugLogForwarding;\n },\n isTerminalLoggingEnabled: function() {\n return isTerminalLoggingEnabled;\n },\n logQueue: function() {\n return logQueue;\n },\n logStringify: function() {\n return logStringify;\n },\n logUnhandledRejection: function() {\n return logUnhandledRejection;\n },\n preLogSerializationClone: function() {\n return preLogSerializationClone;\n }\n});\nconst _safestablestringify = __webpack_require__(/*! next/dist/compiled/safe-stable-stringify */ \"(ssr)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js\");\nconst _stitchederror = __webpack_require__(/*! ./errors/stitched-error */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js\");\nconst _errorsource = __webpack_require__(/*! ../../../shared/lib/error-source */ \"(ssr)/./node_modules/next/dist/shared/lib/error-source.js\");\nconst _terminalloggingconfig = __webpack_require__(/*! ./terminal-logging-config */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js\");\nconst _forwardlogsshared = __webpack_require__(/*! ../../shared/forward-logs-shared */ \"(ssr)/./node_modules/next/dist/next-devtools/shared/forward-logs-shared.js\");\nconst terminalLoggingConfig = (0, _terminalloggingconfig.getTerminalLoggingConfig)();\nconst PROMISE_MARKER = 'Promise {}';\nconst UNAVAILABLE_MARKER = '[Unable to view]';\nconst maximumDepth = typeof terminalLoggingConfig === 'object' && terminalLoggingConfig.depthLimit ? terminalLoggingConfig.depthLimit : 5;\nconst maximumBreadth = typeof terminalLoggingConfig === 'object' && terminalLoggingConfig.edgeLimit ? terminalLoggingConfig.edgeLimit : 100;\nconst stringify = (0, _safestablestringify.configure)({\n maximumDepth,\n maximumBreadth\n});\nconst isTerminalLoggingEnabled = (0, _terminalloggingconfig.getIsTerminalLoggingEnabled)();\nconst methods = [\n 'log',\n 'info',\n 'warn',\n 'debug',\n 'table',\n 'assert',\n 'dir',\n 'dirxml',\n 'group',\n 'groupCollapsed',\n 'groupEnd',\n 'trace'\n];\nfunction preLogSerializationClone(value, seen) {\n if (seen === void 0) seen = new WeakMap();\n if (value === undefined) return _forwardlogsshared.UNDEFINED_MARKER;\n if (value === null || typeof value !== 'object') return value;\n if (seen.has(value)) return seen.get(value);\n try {\n Object.keys(value);\n } catch (e) {\n return UNAVAILABLE_MARKER;\n }\n try {\n if (typeof value.then === 'function') return PROMISE_MARKER;\n } catch (e) {\n return UNAVAILABLE_MARKER;\n }\n if (Array.isArray(value)) {\n const out = [];\n seen.set(value, out);\n for (const item of value){\n try {\n out.push(preLogSerializationClone(item, seen));\n } catch (e) {\n out.push(UNAVAILABLE_MARKER);\n }\n }\n return out;\n }\n const proto = Object.getPrototypeOf(value);\n if (proto === Object.prototype || proto === null) {\n const out = {};\n seen.set(value, out);\n for (const key of Object.keys(value)){\n try {\n out[key] = preLogSerializationClone(value[key], seen);\n } catch (e) {\n out[key] = UNAVAILABLE_MARKER;\n }\n }\n return out;\n }\n return Object.prototype.toString.call(value);\n}\nconst logStringify = (data)=>{\n try {\n const result = stringify(data);\n return result != null ? result : '\"' + UNAVAILABLE_MARKER + '\"';\n } catch (e) {\n return '\"' + UNAVAILABLE_MARKER + '\"';\n }\n};\nconst afterThisFrame = (cb)=>{\n let timeout;\n const rafId = requestAnimationFrame(()=>{\n timeout = setTimeout(()=>{\n cb();\n });\n });\n return ()=>{\n cancelAnimationFrame(rafId);\n clearTimeout(timeout);\n };\n};\nlet isPatched = false;\nconst serializeEntries = (entries)=>entries.map((clientEntry)=>{\n switch(clientEntry.kind){\n case 'any-logged-error':\n case 'console':\n {\n return {\n ...clientEntry,\n args: clientEntry.args.map(stringifyUserArg)\n };\n }\n case 'formatted-error':\n {\n return clientEntry;\n }\n default:\n {\n return null;\n }\n }\n });\nconst logQueue = {\n entries: [],\n flushScheduled: false,\n cancelFlush: null,\n socket: null,\n sourceType: undefined,\n router: null,\n scheduleLogSend: (entry)=>{\n logQueue.entries.push(entry);\n if (logQueue.flushScheduled) {\n return;\n }\n // safe to deref and use in setTimeout closure since we cancel on new socket\n const socket = logQueue.socket;\n if (!socket) {\n return;\n }\n // we probably dont need this\n logQueue.flushScheduled = true;\n // non blocking log flush, runs at most once per frame\n logQueue.cancelFlush = afterThisFrame(()=>{\n logQueue.flushScheduled = false;\n // just incase\n try {\n const payload = JSON.stringify({\n event: 'browser-logs',\n entries: serializeEntries(logQueue.entries),\n router: logQueue.router,\n // needed for source mapping, we just assign the sourceType from the last error for the whole batch\n sourceType: logQueue.sourceType\n });\n socket.send(payload);\n logQueue.entries = [];\n logQueue.sourceType = undefined;\n } catch (e) {\n // error (make sure u don't infinite loop)\n /* noop */ }\n });\n },\n onSocketReady: (socket)=>{\n if (socket.readyState !== WebSocket.OPEN) {\n // invariant\n return;\n }\n // incase an existing timeout was going to run with a stale socket\n logQueue.cancelFlush == null ? void 0 : logQueue.cancelFlush.call(logQueue);\n logQueue.socket = socket;\n try {\n const payload = JSON.stringify({\n event: 'browser-logs',\n entries: serializeEntries(logQueue.entries),\n router: logQueue.router,\n sourceType: logQueue.sourceType\n });\n socket.send(payload);\n logQueue.entries = [];\n logQueue.sourceType = undefined;\n } catch (e) {\n /** noop just incase */ }\n }\n};\nconst stringifyUserArg = (arg)=>{\n if (arg.kind !== 'arg') {\n return arg;\n }\n return {\n ...arg,\n data: logStringify(arg.data)\n };\n};\nconst createErrorArg = (error)=>{\n const stack = stackWithOwners(error);\n return {\n kind: 'formatted-error-arg',\n prefix: error.message ? error.name + \": \" + error.message : \"\" + error.name,\n stack\n };\n};\nconst createLogEntry = (level, args)=>{\n // do not abstract this, it implicitly relies on which functions call it. forcing the inlined implementation makes you think about callers\n // error capture stack trace maybe\n const stack = stackWithOwners(new Error());\n const stackLines = stack == null ? void 0 : stack.split('\\n');\n const cleanStack = stackLines == null ? void 0 : stackLines.slice(3).join('\\n') // this is probably ignored anyways\n ;\n const entry = {\n kind: 'console',\n consoleMethodStack: cleanStack != null ? cleanStack : null,\n method: level,\n args: args.map((arg)=>{\n if (arg instanceof Error) {\n return createErrorArg(arg);\n }\n return {\n kind: 'arg',\n data: preLogSerializationClone(arg)\n };\n })\n };\n logQueue.scheduleLogSend(entry);\n};\nconst forwardErrorLog = (args)=>{\n const errorObjects = args.filter((arg)=>arg instanceof Error);\n const first = errorObjects.at(0);\n if (first) {\n const source = (0, _errorsource.getErrorSource)(first);\n if (source) {\n logQueue.sourceType = source;\n }\n }\n /**\n * browser shows stack regardless of type of data passed to console.error, so we should do the same\n *\n * do not abstract this, it implicitly relies on which functions call it. forcing the inlined implementation makes you think about callers\n */ const stack = stackWithOwners(new Error());\n const stackLines = stack == null ? void 0 : stack.split('\\n');\n const cleanStack = stackLines == null ? void 0 : stackLines.slice(3).join('\\n');\n const entry = {\n kind: 'any-logged-error',\n method: 'error',\n consoleErrorStack: cleanStack != null ? cleanStack : '',\n args: args.map((arg)=>{\n if (arg instanceof Error) {\n return createErrorArg(arg);\n }\n return {\n kind: 'arg',\n data: preLogSerializationClone(arg)\n };\n })\n };\n logQueue.scheduleLogSend(entry);\n};\nconst createUncaughtErrorEntry = (errorName, errorMessage, fullStack)=>{\n const entry = {\n kind: 'formatted-error',\n prefix: \"Uncaught \" + errorName + \": \" + errorMessage,\n stack: fullStack,\n method: 'error'\n };\n logQueue.scheduleLogSend(entry);\n};\nconst stackWithOwners = (error)=>{\n let ownerStack = '';\n (0, _stitchederror.setOwnerStackIfAvailable)(error);\n ownerStack = (0, _stitchederror.getOwnerStack)(error) || '';\n const stack = (error.stack || '') + ownerStack;\n return stack;\n};\nfunction logUnhandledRejection(reason) {\n if (reason instanceof Error) {\n createUnhandledRejectionErrorEntry(reason, stackWithOwners(reason));\n return;\n }\n createUnhandledRejectionNonErrorEntry(reason);\n}\nconst createUnhandledRejectionErrorEntry = (error, fullStack)=>{\n const source = (0, _errorsource.getErrorSource)(error);\n if (source) {\n logQueue.sourceType = source;\n }\n const entry = {\n kind: 'formatted-error',\n prefix: \" unhandledRejection: \" + error.name + \": \" + error.message,\n stack: fullStack,\n method: 'error'\n };\n logQueue.scheduleLogSend(entry);\n};\nconst createUnhandledRejectionNonErrorEntry = (reason)=>{\n const entry = {\n kind: 'any-logged-error',\n // we can't access the stack since the event is dispatched async and creating an inline error would be meaningless\n consoleErrorStack: '',\n method: 'error',\n args: [\n {\n kind: 'arg',\n data: \" unhandledRejection:\",\n isRejectionMessage: true\n },\n {\n kind: 'arg',\n data: preLogSerializationClone(reason)\n }\n ]\n };\n logQueue.scheduleLogSend(entry);\n};\nconst isHMR = (args)=>{\n const firstArg = args[0];\n if (typeof firstArg !== 'string') {\n return false;\n }\n if (firstArg.startsWith('[Fast Refresh]')) {\n return true;\n }\n if (firstArg.startsWith('[HMR]')) {\n return true;\n }\n return false;\n};\nconst isIgnoredLog = (args)=>{\n if (args.length < 3) {\n return false;\n }\n const [format, styles, label] = args;\n if (typeof format !== 'string' || typeof styles !== 'string' || typeof label !== 'string') {\n return false;\n }\n // kinda hacky, we should define a common format for these strings so we can safely ignore\n return format.startsWith('%c%s%c') && styles.includes('background:');\n};\nfunction forwardUnhandledError(error) {\n createUncaughtErrorEntry(error.name, error.message, stackWithOwners(error));\n}\nconst initializeDebugLogForwarding = (router)=>{\n // probably don't need this\n if (isPatched) {\n return;\n }\n // TODO(rob): why does this break rendering on server, important to know incase the same bug appears in browser\n if (typeof window === 'undefined') {\n return;\n }\n // better to be safe than sorry\n try {\n methods.forEach((method)=>(0, _forwardlogsshared.patchConsoleMethod)(method, function(_) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n if (isHMR(args)) {\n return;\n }\n if (isIgnoredLog(args)) {\n return;\n }\n createLogEntry(method, args);\n }));\n } catch (e) {}\n logQueue.router = router;\n isPatched = true;\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=forward-logs.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9mb3J3YXJkLWxvZ3MuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBV0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDZCQUE2QixtQkFBTyxDQUFDLHdIQUEwQztBQUMvRSx1QkFBdUIsbUJBQU8sQ0FBQyxvSEFBeUI7QUFDeEQscUJBQXFCLG1CQUFPLENBQUMsbUdBQWtDO0FBQy9ELCtCQUErQixtQkFBTyxDQUFDLHdIQUEyQjtBQUNsRSwyQkFBMkIsbUJBQU8sQ0FBQyxvSEFBa0M7QUFDckU7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0dBQXNHLGFBQWE7QUFDbkg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5REFBeUQsYUFBYTtBQUN0RTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL2ZvcndhcmQtbG9ncy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIFBST01JU0VfTUFSS0VSOiBudWxsLFxuICAgIFVOQVZBSUxBQkxFX01BUktFUjogbnVsbCxcbiAgICBmb3J3YXJkRXJyb3JMb2c6IG51bGwsXG4gICAgZm9yd2FyZFVuaGFuZGxlZEVycm9yOiBudWxsLFxuICAgIGluaXRpYWxpemVEZWJ1Z0xvZ0ZvcndhcmRpbmc6IG51bGwsXG4gICAgaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkOiBudWxsLFxuICAgIGxvZ1F1ZXVlOiBudWxsLFxuICAgIGxvZ1N0cmluZ2lmeTogbnVsbCxcbiAgICBsb2dVbmhhbmRsZWRSZWplY3Rpb246IG51bGwsXG4gICAgcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIFBST01JU0VfTUFSS0VSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBST01JU0VfTUFSS0VSO1xuICAgIH0sXG4gICAgVU5BVkFJTEFCTEVfTUFSS0VSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFVOQVZBSUxBQkxFX01BUktFUjtcbiAgICB9LFxuICAgIGZvcndhcmRFcnJvckxvZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkRXJyb3JMb2c7XG4gICAgfSxcbiAgICBmb3J3YXJkVW5oYW5kbGVkRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZm9yd2FyZFVuaGFuZGxlZEVycm9yO1xuICAgIH0sXG4gICAgaW5pdGlhbGl6ZURlYnVnTG9nRm9yd2FyZGluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpbml0aWFsaXplRGVidWdMb2dGb3J3YXJkaW5nO1xuICAgIH0sXG4gICAgaXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzVGVybWluYWxMb2dnaW5nRW5hYmxlZDtcbiAgICB9LFxuICAgIGxvZ1F1ZXVlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGxvZ1F1ZXVlO1xuICAgIH0sXG4gICAgbG9nU3RyaW5naWZ5OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGxvZ1N0cmluZ2lmeTtcbiAgICB9LFxuICAgIGxvZ1VuaGFuZGxlZFJlamVjdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBsb2dVbmhhbmRsZWRSZWplY3Rpb247XG4gICAgfSxcbiAgICBwcmVMb2dTZXJpYWxpemF0aW9uQ2xvbmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lO1xuICAgIH1cbn0pO1xuY29uc3QgX3NhZmVzdGFibGVzdHJpbmdpZnkgPSByZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3NhZmUtc3RhYmxlLXN0cmluZ2lmeVwiKTtcbmNvbnN0IF9zdGl0Y2hlZGVycm9yID0gcmVxdWlyZShcIi4vZXJyb3JzL3N0aXRjaGVkLWVycm9yXCIpO1xuY29uc3QgX2Vycm9yc291cmNlID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9saWIvZXJyb3Itc291cmNlXCIpO1xuY29uc3QgX3Rlcm1pbmFsbG9nZ2luZ2NvbmZpZyA9IHJlcXVpcmUoXCIuL3Rlcm1pbmFsLWxvZ2dpbmctY29uZmlnXCIpO1xuY29uc3QgX2ZvcndhcmRsb2dzc2hhcmVkID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9mb3J3YXJkLWxvZ3Mtc2hhcmVkXCIpO1xuY29uc3QgdGVybWluYWxMb2dnaW5nQ29uZmlnID0gKDAsIF90ZXJtaW5hbGxvZ2dpbmdjb25maWcuZ2V0VGVybWluYWxMb2dnaW5nQ29uZmlnKSgpO1xuY29uc3QgUFJPTUlTRV9NQVJLRVIgPSAnUHJvbWlzZSB7fSc7XG5jb25zdCBVTkFWQUlMQUJMRV9NQVJLRVIgPSAnW1VuYWJsZSB0byB2aWV3XSc7XG5jb25zdCBtYXhpbXVtRGVwdGggPSB0eXBlb2YgdGVybWluYWxMb2dnaW5nQ29uZmlnID09PSAnb2JqZWN0JyAmJiB0ZXJtaW5hbExvZ2dpbmdDb25maWcuZGVwdGhMaW1pdCA/IHRlcm1pbmFsTG9nZ2luZ0NvbmZpZy5kZXB0aExpbWl0IDogNTtcbmNvbnN0IG1heGltdW1CcmVhZHRoID0gdHlwZW9mIHRlcm1pbmFsTG9nZ2luZ0NvbmZpZyA9PT0gJ29iamVjdCcgJiYgdGVybWluYWxMb2dnaW5nQ29uZmlnLmVkZ2VMaW1pdCA/IHRlcm1pbmFsTG9nZ2luZ0NvbmZpZy5lZGdlTGltaXQgOiAxMDA7XG5jb25zdCBzdHJpbmdpZnkgPSAoMCwgX3NhZmVzdGFibGVzdHJpbmdpZnkuY29uZmlndXJlKSh7XG4gICAgbWF4aW11bURlcHRoLFxuICAgIG1heGltdW1CcmVhZHRoXG59KTtcbmNvbnN0IGlzVGVybWluYWxMb2dnaW5nRW5hYmxlZCA9ICgwLCBfdGVybWluYWxsb2dnaW5nY29uZmlnLmdldElzVGVybWluYWxMb2dnaW5nRW5hYmxlZCkoKTtcbmNvbnN0IG1ldGhvZHMgPSBbXG4gICAgJ2xvZycsXG4gICAgJ2luZm8nLFxuICAgICd3YXJuJyxcbiAgICAnZGVidWcnLFxuICAgICd0YWJsZScsXG4gICAgJ2Fzc2VydCcsXG4gICAgJ2RpcicsXG4gICAgJ2RpcnhtbCcsXG4gICAgJ2dyb3VwJyxcbiAgICAnZ3JvdXBDb2xsYXBzZWQnLFxuICAgICdncm91cEVuZCcsXG4gICAgJ3RyYWNlJ1xuXTtcbmZ1bmN0aW9uIHByZUxvZ1NlcmlhbGl6YXRpb25DbG9uZSh2YWx1ZSwgc2Vlbikge1xuICAgIGlmIChzZWVuID09PSB2b2lkIDApIHNlZW4gPSBuZXcgV2Vha01hcCgpO1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gX2ZvcndhcmRsb2dzc2hhcmVkLlVOREVGSU5FRF9NQVJLRVI7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHJldHVybiB2YWx1ZTtcbiAgICBpZiAoc2Vlbi5oYXModmFsdWUpKSByZXR1cm4gc2Vlbi5nZXQodmFsdWUpO1xuICAgIHRyeSB7XG4gICAgICAgIE9iamVjdC5rZXlzKHZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBVTkFWQUlMQUJMRV9NQVJLRVI7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIFBST01JU0VfTUFSS0VSO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIFVOQVZBSUxBQkxFX01BUktFUjtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IG91dCA9IFtdO1xuICAgICAgICBzZWVuLnNldCh2YWx1ZSwgb3V0KTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHZhbHVlKXtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgb3V0LnB1c2gocHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKGl0ZW0sIHNlZW4pKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBvdXQucHVzaChVTkFWQUlMQUJMRV9NQVJLRVIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuICAgIGNvbnN0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKTtcbiAgICBpZiAocHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUgfHwgcHJvdG8gPT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgb3V0ID0ge307XG4gICAgICAgIHNlZW4uc2V0KHZhbHVlLCBvdXQpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZSkpe1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvdXRba2V5XSA9IHByZUxvZ1NlcmlhbGl6YXRpb25DbG9uZSh2YWx1ZVtrZXldLCBzZWVuKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBvdXRba2V5XSA9IFVOQVZBSUxBQkxFX01BUktFUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKTtcbn1cbmNvbnN0IGxvZ1N0cmluZ2lmeSA9IChkYXRhKT0+e1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCAhPSBudWxsID8gcmVzdWx0IDogJ1wiJyArIFVOQVZBSUxBQkxFX01BUktFUiArICdcIic7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gJ1wiJyArIFVOQVZBSUxBQkxFX01BUktFUiArICdcIic7XG4gICAgfVxufTtcbmNvbnN0IGFmdGVyVGhpc0ZyYW1lID0gKGNiKT0+e1xuICAgIGxldCB0aW1lb3V0O1xuICAgIGNvbnN0IHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57XG4gICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICBjYigpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gKCk9PntcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgfTtcbn07XG5sZXQgaXNQYXRjaGVkID0gZmFsc2U7XG5jb25zdCBzZXJpYWxpemVFbnRyaWVzID0gKGVudHJpZXMpPT5lbnRyaWVzLm1hcCgoY2xpZW50RW50cnkpPT57XG4gICAgICAgIHN3aXRjaChjbGllbnRFbnRyeS5raW5kKXtcbiAgICAgICAgICAgIGNhc2UgJ2FueS1sb2dnZWQtZXJyb3InOlxuICAgICAgICAgICAgY2FzZSAnY29uc29sZSc6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY2xpZW50RW50cnksXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzOiBjbGllbnRFbnRyeS5hcmdzLm1hcChzdHJpbmdpZnlVc2VyQXJnKVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ2Zvcm1hdHRlZC1lcnJvcic6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2xpZW50RW50cnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuY29uc3QgbG9nUXVldWUgPSB7XG4gICAgZW50cmllczogW10sXG4gICAgZmx1c2hTY2hlZHVsZWQ6IGZhbHNlLFxuICAgIGNhbmNlbEZsdXNoOiBudWxsLFxuICAgIHNvY2tldDogbnVsbCxcbiAgICBzb3VyY2VUeXBlOiB1bmRlZmluZWQsXG4gICAgcm91dGVyOiBudWxsLFxuICAgIHNjaGVkdWxlTG9nU2VuZDogKGVudHJ5KT0+e1xuICAgICAgICBsb2dRdWV1ZS5lbnRyaWVzLnB1c2goZW50cnkpO1xuICAgICAgICBpZiAobG9nUXVldWUuZmx1c2hTY2hlZHVsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBzYWZlIHRvIGRlcmVmIGFuZCB1c2UgaW4gc2V0VGltZW91dCBjbG9zdXJlIHNpbmNlIHdlIGNhbmNlbCBvbiBuZXcgc29ja2V0XG4gICAgICAgIGNvbnN0IHNvY2tldCA9IGxvZ1F1ZXVlLnNvY2tldDtcbiAgICAgICAgaWYgKCFzb2NrZXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyB3ZSBwcm9iYWJseSBkb250IG5lZWQgdGhpc1xuICAgICAgICBsb2dRdWV1ZS5mbHVzaFNjaGVkdWxlZCA9IHRydWU7XG4gICAgICAgIC8vIG5vbiBibG9ja2luZyBsb2cgZmx1c2gsIHJ1bnMgYXQgbW9zdCBvbmNlIHBlciBmcmFtZVxuICAgICAgICBsb2dRdWV1ZS5jYW5jZWxGbHVzaCA9IGFmdGVyVGhpc0ZyYW1lKCgpPT57XG4gICAgICAgICAgICBsb2dRdWV1ZS5mbHVzaFNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8ganVzdCBpbmNhc2VcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ6ICdicm93c2VyLWxvZ3MnLFxuICAgICAgICAgICAgICAgICAgICBlbnRyaWVzOiBzZXJpYWxpemVFbnRyaWVzKGxvZ1F1ZXVlLmVudHJpZXMpLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZXI6IGxvZ1F1ZXVlLnJvdXRlcixcbiAgICAgICAgICAgICAgICAgICAgLy8gbmVlZGVkIGZvciBzb3VyY2UgbWFwcGluZywgd2UganVzdCBhc3NpZ24gdGhlIHNvdXJjZVR5cGUgZnJvbSB0aGUgbGFzdCBlcnJvciBmb3IgdGhlIHdob2xlIGJhdGNoXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZVR5cGU6IGxvZ1F1ZXVlLnNvdXJjZVR5cGVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzb2NrZXQuc2VuZChwYXlsb2FkKTtcbiAgICAgICAgICAgICAgICBsb2dRdWV1ZS5lbnRyaWVzID0gW107XG4gICAgICAgICAgICAgICAgbG9nUXVldWUuc291cmNlVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIC8vIGVycm9yIChtYWtlIHN1cmUgdSBkb24ndCBpbmZpbml0ZSBsb29wKVxuICAgICAgICAgICAgLyogbm9vcCAqLyB9XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgb25Tb2NrZXRSZWFkeTogKHNvY2tldCk9PntcbiAgICAgICAgaWYgKHNvY2tldC5yZWFkeVN0YXRlICE9PSBXZWJTb2NrZXQuT1BFTikge1xuICAgICAgICAgICAgLy8gaW52YXJpYW50XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gaW5jYXNlIGFuIGV4aXN0aW5nIHRpbWVvdXQgd2FzIGdvaW5nIHRvIHJ1biB3aXRoIGEgc3RhbGUgc29ja2V0XG4gICAgICAgIGxvZ1F1ZXVlLmNhbmNlbEZsdXNoID09IG51bGwgPyB2b2lkIDAgOiBsb2dRdWV1ZS5jYW5jZWxGbHVzaC5jYWxsKGxvZ1F1ZXVlKTtcbiAgICAgICAgbG9nUXVldWUuc29ja2V0ID0gc29ja2V0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBldmVudDogJ2Jyb3dzZXItbG9ncycsXG4gICAgICAgICAgICAgICAgZW50cmllczogc2VyaWFsaXplRW50cmllcyhsb2dRdWV1ZS5lbnRyaWVzKSxcbiAgICAgICAgICAgICAgICByb3V0ZXI6IGxvZ1F1ZXVlLnJvdXRlcixcbiAgICAgICAgICAgICAgICBzb3VyY2VUeXBlOiBsb2dRdWV1ZS5zb3VyY2VUeXBlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNvY2tldC5zZW5kKHBheWxvYWQpO1xuICAgICAgICAgICAgbG9nUXVldWUuZW50cmllcyA9IFtdO1xuICAgICAgICAgICAgbG9nUXVldWUuc291cmNlVHlwZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvKiogbm9vcCBqdXN0IGluY2FzZSAqLyB9XG4gICAgfVxufTtcbmNvbnN0IHN0cmluZ2lmeVVzZXJBcmcgPSAoYXJnKT0+e1xuICAgIGlmIChhcmcua2luZCAhPT0gJ2FyZycpIHtcbiAgICAgICAgcmV0dXJuIGFyZztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYXJnLFxuICAgICAgICBkYXRhOiBsb2dTdHJpbmdpZnkoYXJnLmRhdGEpXG4gICAgfTtcbn07XG5jb25zdCBjcmVhdGVFcnJvckFyZyA9IChlcnJvcik9PntcbiAgICBjb25zdCBzdGFjayA9IHN0YWNrV2l0aE93bmVycyhlcnJvcik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogJ2Zvcm1hdHRlZC1lcnJvci1hcmcnLFxuICAgICAgICBwcmVmaXg6IGVycm9yLm1lc3NhZ2UgPyBlcnJvci5uYW1lICsgXCI6IFwiICsgZXJyb3IubWVzc2FnZSA6IFwiXCIgKyBlcnJvci5uYW1lLFxuICAgICAgICBzdGFja1xuICAgIH07XG59O1xuY29uc3QgY3JlYXRlTG9nRW50cnkgPSAobGV2ZWwsIGFyZ3MpPT57XG4gICAgLy8gZG8gbm90IGFic3RyYWN0IHRoaXMsIGl0IGltcGxpY2l0bHkgcmVsaWVzIG9uIHdoaWNoIGZ1bmN0aW9ucyBjYWxsIGl0LiBmb3JjaW5nIHRoZSBpbmxpbmVkIGltcGxlbWVudGF0aW9uIG1ha2VzIHlvdSB0aGluayBhYm91dCBjYWxsZXJzXG4gICAgLy8gZXJyb3IgY2FwdHVyZSBzdGFjayB0cmFjZSBtYXliZVxuICAgIGNvbnN0IHN0YWNrID0gc3RhY2tXaXRoT3duZXJzKG5ldyBFcnJvcigpKTtcbiAgICBjb25zdCBzdGFja0xpbmVzID0gc3RhY2sgPT0gbnVsbCA/IHZvaWQgMCA6IHN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICBjb25zdCBjbGVhblN0YWNrID0gc3RhY2tMaW5lcyA9PSBudWxsID8gdm9pZCAwIDogc3RhY2tMaW5lcy5zbGljZSgzKS5qb2luKCdcXG4nKSAvLyB0aGlzIGlzIHByb2JhYmx5IGlnbm9yZWQgYW55d2F5c1xuICAgIDtcbiAgICBjb25zdCBlbnRyeSA9IHtcbiAgICAgICAga2luZDogJ2NvbnNvbGUnLFxuICAgICAgICBjb25zb2xlTWV0aG9kU3RhY2s6IGNsZWFuU3RhY2sgIT0gbnVsbCA/IGNsZWFuU3RhY2sgOiBudWxsLFxuICAgICAgICBtZXRob2Q6IGxldmVsLFxuICAgICAgICBhcmdzOiBhcmdzLm1hcCgoYXJnKT0+e1xuICAgICAgICAgICAgaWYgKGFyZyBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUVycm9yQXJnKGFyZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGtpbmQ6ICdhcmcnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHByZUxvZ1NlcmlhbGl6YXRpb25DbG9uZShhcmcpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgIH07XG4gICAgbG9nUXVldWUuc2NoZWR1bGVMb2dTZW5kKGVudHJ5KTtcbn07XG5jb25zdCBmb3J3YXJkRXJyb3JMb2cgPSAoYXJncyk9PntcbiAgICBjb25zdCBlcnJvck9iamVjdHMgPSBhcmdzLmZpbHRlcigoYXJnKT0+YXJnIGluc3RhbmNlb2YgRXJyb3IpO1xuICAgIGNvbnN0IGZpcnN0ID0gZXJyb3JPYmplY3RzLmF0KDApO1xuICAgIGlmIChmaXJzdCkge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSAoMCwgX2Vycm9yc291cmNlLmdldEVycm9yU291cmNlKShmaXJzdCk7XG4gICAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgICAgIGxvZ1F1ZXVlLnNvdXJjZVR5cGUgPSBzb3VyY2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAqIGJyb3dzZXIgc2hvd3Mgc3RhY2sgcmVnYXJkbGVzcyBvZiB0eXBlIG9mIGRhdGEgcGFzc2VkIHRvIGNvbnNvbGUuZXJyb3IsIHNvIHdlIHNob3VsZCBkbyB0aGUgc2FtZVxuICAgKlxuICAgKiBkbyBub3QgYWJzdHJhY3QgdGhpcywgaXQgaW1wbGljaXRseSByZWxpZXMgb24gd2hpY2ggZnVuY3Rpb25zIGNhbGwgaXQuIGZvcmNpbmcgdGhlIGlubGluZWQgaW1wbGVtZW50YXRpb24gbWFrZXMgeW91IHRoaW5rIGFib3V0IGNhbGxlcnNcbiAgICovIGNvbnN0IHN0YWNrID0gc3RhY2tXaXRoT3duZXJzKG5ldyBFcnJvcigpKTtcbiAgICBjb25zdCBzdGFja0xpbmVzID0gc3RhY2sgPT0gbnVsbCA/IHZvaWQgMCA6IHN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICBjb25zdCBjbGVhblN0YWNrID0gc3RhY2tMaW5lcyA9PSBudWxsID8gdm9pZCAwIDogc3RhY2tMaW5lcy5zbGljZSgzKS5qb2luKCdcXG4nKTtcbiAgICBjb25zdCBlbnRyeSA9IHtcbiAgICAgICAga2luZDogJ2FueS1sb2dnZWQtZXJyb3InLFxuICAgICAgICBtZXRob2Q6ICdlcnJvcicsXG4gICAgICAgIGNvbnNvbGVFcnJvclN0YWNrOiBjbGVhblN0YWNrICE9IG51bGwgPyBjbGVhblN0YWNrIDogJycsXG4gICAgICAgIGFyZ3M6IGFyZ3MubWFwKChhcmcpPT57XG4gICAgICAgICAgICBpZiAoYXJnIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRXJyb3JBcmcoYXJnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAga2luZDogJ2FyZycsXG4gICAgICAgICAgICAgICAgZGF0YTogcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKGFyZylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgfTtcbiAgICBsb2dRdWV1ZS5zY2hlZHVsZUxvZ1NlbmQoZW50cnkpO1xufTtcbmNvbnN0IGNyZWF0ZVVuY2F1Z2h0RXJyb3JFbnRyeSA9IChlcnJvck5hbWUsIGVycm9yTWVzc2FnZSwgZnVsbFN0YWNrKT0+e1xuICAgIGNvbnN0IGVudHJ5ID0ge1xuICAgICAgICBraW5kOiAnZm9ybWF0dGVkLWVycm9yJyxcbiAgICAgICAgcHJlZml4OiBcIlVuY2F1Z2h0IFwiICsgZXJyb3JOYW1lICsgXCI6IFwiICsgZXJyb3JNZXNzYWdlLFxuICAgICAgICBzdGFjazogZnVsbFN0YWNrLFxuICAgICAgICBtZXRob2Q6ICdlcnJvcidcbiAgICB9O1xuICAgIGxvZ1F1ZXVlLnNjaGVkdWxlTG9nU2VuZChlbnRyeSk7XG59O1xuY29uc3Qgc3RhY2tXaXRoT3duZXJzID0gKGVycm9yKT0+e1xuICAgIGxldCBvd25lclN0YWNrID0gJyc7XG4gICAgKDAsIF9zdGl0Y2hlZGVycm9yLnNldE93bmVyU3RhY2tJZkF2YWlsYWJsZSkoZXJyb3IpO1xuICAgIG93bmVyU3RhY2sgPSAoMCwgX3N0aXRjaGVkZXJyb3IuZ2V0T3duZXJTdGFjaykoZXJyb3IpIHx8ICcnO1xuICAgIGNvbnN0IHN0YWNrID0gKGVycm9yLnN0YWNrIHx8ICcnKSArIG93bmVyU3RhY2s7XG4gICAgcmV0dXJuIHN0YWNrO1xufTtcbmZ1bmN0aW9uIGxvZ1VuaGFuZGxlZFJlamVjdGlvbihyZWFzb24pIHtcbiAgICBpZiAocmVhc29uIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgY3JlYXRlVW5oYW5kbGVkUmVqZWN0aW9uRXJyb3JFbnRyeShyZWFzb24sIHN0YWNrV2l0aE93bmVycyhyZWFzb24pKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjcmVhdGVVbmhhbmRsZWRSZWplY3Rpb25Ob25FcnJvckVudHJ5KHJlYXNvbik7XG59XG5jb25zdCBjcmVhdGVVbmhhbmRsZWRSZWplY3Rpb25FcnJvckVudHJ5ID0gKGVycm9yLCBmdWxsU3RhY2spPT57XG4gICAgY29uc3Qgc291cmNlID0gKDAsIF9lcnJvcnNvdXJjZS5nZXRFcnJvclNvdXJjZSkoZXJyb3IpO1xuICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgbG9nUXVldWUuc291cmNlVHlwZSA9IHNvdXJjZTtcbiAgICB9XG4gICAgY29uc3QgZW50cnkgPSB7XG4gICAgICAgIGtpbmQ6ICdmb3JtYXR0ZWQtZXJyb3InLFxuICAgICAgICBwcmVmaXg6IFwi4qivIHVuaGFuZGxlZFJlamVjdGlvbjogXCIgKyBlcnJvci5uYW1lICsgXCI6IFwiICsgZXJyb3IubWVzc2FnZSxcbiAgICAgICAgc3RhY2s6IGZ1bGxTdGFjayxcbiAgICAgICAgbWV0aG9kOiAnZXJyb3InXG4gICAgfTtcbiAgICBsb2dRdWV1ZS5zY2hlZHVsZUxvZ1NlbmQoZW50cnkpO1xufTtcbmNvbnN0IGNyZWF0ZVVuaGFuZGxlZFJlamVjdGlvbk5vbkVycm9yRW50cnkgPSAocmVhc29uKT0+e1xuICAgIGNvbnN0IGVudHJ5ID0ge1xuICAgICAgICBraW5kOiAnYW55LWxvZ2dlZC1lcnJvcicsXG4gICAgICAgIC8vIHdlIGNhbid0IGFjY2VzcyB0aGUgc3RhY2sgc2luY2UgdGhlIGV2ZW50IGlzIGRpc3BhdGNoZWQgYXN5bmMgYW5kIGNyZWF0aW5nIGFuIGlubGluZSBlcnJvciB3b3VsZCBiZSBtZWFuaW5nbGVzc1xuICAgICAgICBjb25zb2xlRXJyb3JTdGFjazogJycsXG4gICAgICAgIG1ldGhvZDogJ2Vycm9yJyxcbiAgICAgICAgYXJnczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtpbmQ6ICdhcmcnLFxuICAgICAgICAgICAgICAgIGRhdGE6IFwi4qivIHVuaGFuZGxlZFJlamVjdGlvbjpcIixcbiAgICAgICAgICAgICAgICBpc1JlamVjdGlvbk1lc3NhZ2U6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2luZDogJ2FyZycsXG4gICAgICAgICAgICAgICAgZGF0YTogcHJlTG9nU2VyaWFsaXphdGlvbkNsb25lKHJlYXNvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgIH07XG4gICAgbG9nUXVldWUuc2NoZWR1bGVMb2dTZW5kKGVudHJ5KTtcbn07XG5jb25zdCBpc0hNUiA9IChhcmdzKT0+e1xuICAgIGNvbnN0IGZpcnN0QXJnID0gYXJnc1swXTtcbiAgICBpZiAodHlwZW9mIGZpcnN0QXJnICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChmaXJzdEFyZy5zdGFydHNXaXRoKCdbRmFzdCBSZWZyZXNoXScpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoZmlyc3RBcmcuc3RhcnRzV2l0aCgnW0hNUl0nKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcbmNvbnN0IGlzSWdub3JlZExvZyA9IChhcmdzKT0+e1xuICAgIGlmIChhcmdzLmxlbmd0aCA8IDMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBbZm9ybWF0LCBzdHlsZXMsIGxhYmVsXSA9IGFyZ3M7XG4gICAgaWYgKHR5cGVvZiBmb3JtYXQgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBzdHlsZXMgIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBsYWJlbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBraW5kYSBoYWNreSwgd2Ugc2hvdWxkIGRlZmluZSBhIGNvbW1vbiBmb3JtYXQgZm9yIHRoZXNlIHN0cmluZ3Mgc28gd2UgY2FuIHNhZmVseSBpZ25vcmVcbiAgICByZXR1cm4gZm9ybWF0LnN0YXJ0c1dpdGgoJyVjJXMlYycpICYmIHN0eWxlcy5pbmNsdWRlcygnYmFja2dyb3VuZDonKTtcbn07XG5mdW5jdGlvbiBmb3J3YXJkVW5oYW5kbGVkRXJyb3IoZXJyb3IpIHtcbiAgICBjcmVhdGVVbmNhdWdodEVycm9yRW50cnkoZXJyb3IubmFtZSwgZXJyb3IubWVzc2FnZSwgc3RhY2tXaXRoT3duZXJzKGVycm9yKSk7XG59XG5jb25zdCBpbml0aWFsaXplRGVidWdMb2dGb3J3YXJkaW5nID0gKHJvdXRlcik9PntcbiAgICAvLyBwcm9iYWJseSBkb24ndCBuZWVkIHRoaXNcbiAgICBpZiAoaXNQYXRjaGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gVE9ETyhyb2IpOiB3aHkgZG9lcyB0aGlzIGJyZWFrIHJlbmRlcmluZyBvbiBzZXJ2ZXIsIGltcG9ydGFudCB0byBrbm93IGluY2FzZSB0aGUgc2FtZSBidWcgYXBwZWFycyBpbiBicm93c2VyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gYmV0dGVyIHRvIGJlIHNhZmUgdGhhbiBzb3JyeVxuICAgIHRyeSB7XG4gICAgICAgIG1ldGhvZHMuZm9yRWFjaCgobWV0aG9kKT0+KDAsIF9mb3J3YXJkbG9nc3NoYXJlZC5wYXRjaENvbnNvbGVNZXRob2QpKG1ldGhvZCwgZnVuY3Rpb24oXykge1xuICAgICAgICAgICAgICAgIGZvcih2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNITVIoYXJncykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNJZ25vcmVkTG9nKGFyZ3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY3JlYXRlTG9nRW50cnkobWV0aG9kLCBhcmdzKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICB9IGNhdGNoIChlKSB7fVxuICAgIGxvZ1F1ZXVlLnJvdXRlciA9IHJvdXRlcjtcbiAgICBpc1BhdGNoZWQgPSB0cnVlO1xufTtcblxuaWYgKCh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnZnVuY3Rpb24nIHx8ICh0eXBlb2YgZXhwb3J0cy5kZWZhdWx0ID09PSAnb2JqZWN0JyAmJiBleHBvcnRzLmRlZmF1bHQgIT09IG51bGwpKSAmJiB0eXBlb2YgZXhwb3J0cy5kZWZhdWx0Ll9fZXNNb2R1bGUgPT09ICd1bmRlZmluZWQnKSB7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLmRlZmF1bHQsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgT2JqZWN0LmFzc2lnbihleHBvcnRzLmRlZmF1bHQsIGV4cG9ydHMpO1xuICBtb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMuZGVmYXVsdDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9yd2FyZC1sb2dzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/forward-logs.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js":
/*!*************************************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js ***!
\*************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE: function() {\n return SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE;\n },\n SegmentBoundaryTriggerNode: function() {\n return SegmentBoundaryTriggerNode;\n },\n SegmentStateProvider: function() {\n return SegmentStateProvider;\n },\n SegmentViewNode: function() {\n return SegmentViewNode;\n },\n SegmentViewStateNode: function() {\n return SegmentViewStateNode;\n },\n useSegmentState: function() {\n return useSegmentState;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst _notfound = __webpack_require__(/*! ../../../client/components/not-found */ \"(ssr)/./node_modules/next/dist/client/components/not-found.js\");\nconst SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE = 'NEXT_DEVTOOLS_SIMULATED_ERROR';\nfunction SegmentTrieNode(param) {\n let { type, pagePath } = param;\n const { boundaryType, setBoundaryType } = useSegmentState();\n const nodeState = (0, _react.useMemo)(()=>{\n return {\n type,\n pagePath,\n boundaryType,\n setBoundaryType\n };\n }, [\n type,\n pagePath,\n boundaryType,\n setBoundaryType\n ]);\n // Use `useLayoutEffect` to ensure the state is updated during suspense.\n // `useEffect` won't work as the state is preserved during suspense.\n (0, _react.useLayoutEffect)(()=>{\n _nextdevtools.dispatcher.segmentExplorerNodeAdd(nodeState);\n return ()=>{\n _nextdevtools.dispatcher.segmentExplorerNodeRemove(nodeState);\n };\n }, [\n nodeState\n ]);\n return null;\n}\nfunction NotFoundSegmentNode() {\n (0, _notfound.notFound)();\n}\nfunction ErrorSegmentNode() {\n throw Object.defineProperty(new Error(SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n}\nconst forever = new Promise(()=>{});\nfunction LoadingSegmentNode() {\n (0, _react.use)(forever);\n return null;\n}\nfunction SegmentViewStateNode(param) {\n let { page } = param;\n (0, _react.useLayoutEffect)(()=>{\n _nextdevtools.dispatcher.segmentExplorerUpdateRouteState(page);\n return ()=>{\n _nextdevtools.dispatcher.segmentExplorerUpdateRouteState('');\n };\n }, [\n page\n ]);\n return null;\n}\nfunction SegmentBoundaryTriggerNode() {\n const { boundaryType } = useSegmentState();\n let segmentNode = null;\n if (boundaryType === 'loading') {\n segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingSegmentNode, {});\n } else if (boundaryType === 'not-found') {\n segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(NotFoundSegmentNode, {});\n } else if (boundaryType === 'error') {\n segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorSegmentNode, {});\n }\n return segmentNode;\n}\nfunction SegmentViewNode(param) {\n let { type, pagePath, children } = param;\n const segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentTrieNode, {\n type: type,\n pagePath: pagePath\n }, type);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n segmentNode,\n children\n ]\n });\n}\nconst SegmentStateContext = /*#__PURE__*/ (0, _react.createContext)({\n boundaryType: null,\n setBoundaryType: ()=>{}\n});\nfunction SegmentStateProvider(param) {\n let { children } = param;\n const [boundaryType, setBoundaryType] = (0, _react.useState)(null);\n const [errorBoundaryKey, setErrorBoundaryKey] = (0, _react.useState)(0);\n const reloadBoundary = (0, _react.useCallback)(()=>setErrorBoundaryKey((prev)=>prev + 1), []);\n const setBoundaryTypeAndReload = (0, _react.useCallback)((type)=>{\n if (type === null) {\n reloadBoundary();\n }\n setBoundaryType(type);\n }, [\n reloadBoundary\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentStateContext.Provider, {\n value: {\n boundaryType,\n setBoundaryType: setBoundaryTypeAndReload\n },\n children: children\n }, errorBoundaryKey);\n}\nfunction useSegmentState() {\n return (0, _react.useContext)(SegmentStateContext);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=segment-explorer-node.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBZWFBLHdDQUF3QztlQUF4Q0E7O0lBK0RHQywwQkFBMEI7ZUFBMUJBOztJQTBDQUMsb0JBQW9CO2VBQXBCQTs7SUE3QkFDLGVBQWU7ZUFBZkE7O0lBdkJBQyxvQkFBb0I7ZUFBcEJBOztJQXNGQUMsZUFBZTtlQUFmQTs7OzttQ0FoSlQ7MENBRW9CO3NDQUNGO0FBRWxCLE1BQU1MLDJDQUNYO0FBU0YsU0FBU00sZ0JBQWdCLEtBTXhCO0lBTndCLE1BQ3ZCQyxJQUFJLEVBQ0pDLFFBQVEsRUFJVCxHQU53QjtJQU92QixNQUFNLEVBQUVDLFlBQVksRUFBRUMsZUFBZSxFQUFFLEdBQUdMO0lBQzFDLE1BQU1NLFlBQThCQyxDQUFBQSxHQUFBQSxPQUFBQSxPQUFBQSxFQUFRO1FBQzFDLE9BQU87WUFDTEw7WUFDQUM7WUFDQUM7WUFDQUM7UUFDRjtJQUNGLEdBQUc7UUFBQ0g7UUFBTUM7UUFBVUM7UUFBY0M7S0FBZ0I7SUFFbEQsd0VBQXdFO0lBQ3hFLG9FQUFvRTtJQUNwRUcsQ0FBQUEsR0FBQUEsT0FBQUEsZUFBQUEsRUFBZ0I7UUFDZEMsY0FBQUEsVUFBVSxDQUFDQyxzQkFBc0IsQ0FBQ0o7UUFDbEMsT0FBTztZQUNMRyxjQUFBQSxVQUFVLENBQUNFLHlCQUF5QixDQUFDTDtRQUN2QztJQUNGLEdBQUc7UUFBQ0E7S0FBVTtJQUVkLE9BQU87QUFDVDtBQUVBLFNBQVNNO0lBQ1BDLENBQUFBLEdBQUFBLFVBQUFBLFFBQUFBO0FBQ0Y7QUFFQSxTQUFTQztJQUNQLE1BQU0scUJBQW1ELENBQW5ELElBQUlDLE1BQU1wQiwyQ0FBVjtlQUFBO29CQUFBO3NCQUFBO0lBQWtEO0FBQzFEO0FBRUEsTUFBTXFCLFVBQVUsSUFBSUMsUUFBUSxLQUFPO0FBQ25DLFNBQVNDO0lBQ1BDLENBQUFBLEdBQUFBLE9BQUFBLEdBQUFBLEVBQUlIO0lBQ0osT0FBTztBQUNUO0FBRU8sU0FBU2pCLHFCQUFxQixLQUEwQjtJQUExQixNQUFFcUIsSUFBSSxFQUFvQixHQUExQjtJQUNuQ1osQ0FBQUEsR0FBQUEsT0FBQUEsZUFBQUEsRUFBZ0I7UUFDZEMsY0FBQUEsVUFBVSxDQUFDWSwrQkFBK0IsQ0FBQ0Q7UUFDM0MsT0FBTztZQUNMWCxjQUFBQSxVQUFVLENBQUNZLCtCQUErQixDQUFDO1FBQzdDO0lBQ0YsR0FBRztRQUFDRDtLQUFLO0lBQ1QsT0FBTztBQUNUO0FBRU8sU0FBU3hCO0lBQ2QsTUFBTSxFQUFFUSxZQUFZLEVBQUUsR0FBR0o7SUFDekIsSUFBSXNCLGNBQStCO0lBQ25DLElBQUlsQixpQkFBaUIsV0FBVztRQUM5QmtCLGNBQUFBLFdBQUFBLEdBQWMscUJBQUNKLG9CQUFBQSxDQUFBQTtJQUNqQixPQUFPLElBQUlkLGlCQUFpQixhQUFhO1FBQ3ZDa0IsY0FBQUEsV0FBQUEsR0FBYyxxQkFBQ1YscUJBQUFBLENBQUFBO0lBQ2pCLE9BQU8sSUFBSVIsaUJBQWlCLFNBQVM7UUFDbkNrQixjQUFjLFdBQWRBLEdBQWMscUJBQUNSLGtCQUFBQSxDQUFBQTtJQUNqQjtJQUNBLE9BQU9RO0FBQ1Q7QUFFTyxTQUFTeEIsZ0JBQWdCLEtBUS9CO0lBUitCLE1BQzlCSSxJQUFJLEVBQ0pDLFFBQVEsRUFDUm9CLFFBQVEsRUFLVCxHQVIrQjtJQVM5QixNQUFNRCxjQUNKLFdBRElBLEdBQ0oscUJBQUNyQixpQkFBQUE7UUFBMkJDLE1BQU1BO1FBQU1DLFVBQVVBO09BQTVCRDtJQUd4QixxQkFDRTs7WUFDR29CO1lBQ0FDOzs7QUFHUDtBQUVBLE1BQU1DLHNCQUFBQSxXQUFBQSxHQUFzQkMsQ0FBQUEsR0FBQUEsT0FBQUEsYUFBQUEsRUFHekI7SUFDRHJCLGNBQWM7SUFDZEMsaUJBQWlCLEtBQU87QUFDMUI7QUFFTyxTQUFTUixxQkFBcUIsS0FBcUM7SUFBckMsTUFBRTBCLFFBQVEsRUFBMkIsR0FBckM7SUFDbkMsTUFBTSxDQUFDbkIsY0FBY0MsZ0JBQWdCLEdBQUdxQixDQUFBQSxHQUFBQSxPQUFBQSxRQUFBQSxFQUV0QztJQUVGLE1BQU0sQ0FBQ0Msa0JBQWtCQyxvQkFBb0IsR0FBR0YsQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFBUztJQUN6RCxNQUFNRyxpQkFBaUJDLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQ3JCLElBQU1GLG9CQUFvQixDQUFDRyxPQUFTQSxPQUFPLElBQzNDLEVBQUU7SUFHSixNQUFNQywyQkFBMkJGLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQy9CLENBQUM1QjtRQUNDLElBQUlBLFNBQVMsTUFBTTtZQUNqQjJCO1FBQ0Y7UUFDQXhCLGdCQUFnQkg7SUFDbEIsR0FDQTtRQUFDMkI7S0FBZTtJQUdsQixxQkFDRSxxQkFBQ0wsb0JBQW9CUyxRQUFRO1FBRTNCQyxPQUFPO1lBQ0w5QjtZQUNBQyxpQkFBaUIyQjtRQUNuQjtrQkFFQ1Q7T0FOSUk7QUFTWDtBQUVPLFNBQVMzQjtJQUNkLE9BQU9tQyxDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXWDtBQUNwQiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgdXNlU3RhdGUsXG4gIGNyZWF0ZUNvbnRleHQsXG4gIHVzZUNvbnRleHQsXG4gIHVzZSxcbiAgdXNlTWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBkaXNwYXRjaGVyIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtZGV2dG9vbHMnXG5pbXBvcnQgeyBub3RGb3VuZCB9IGZyb20gJy4uLy4uLy4uL2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZCdcblxuZXhwb3J0IGNvbnN0IFNFR01FTlRfRVhQTE9SRVJfU0lNVUxBVEVEX0VSUk9SX01FU1NBR0UgPVxuICAnTkVYVF9ERVZUT09MU19TSU1VTEFURURfRVJST1InXG5cbmV4cG9ydCB0eXBlIFNlZ21lbnROb2RlU3RhdGUgPSB7XG4gIHR5cGU6IHN0cmluZ1xuICBwYWdlUGF0aDogc3RyaW5nXG4gIGJvdW5kYXJ5VHlwZTogc3RyaW5nIHwgbnVsbFxuICBzZXRCb3VuZGFyeVR5cGU6ICh0eXBlOiAnZXJyb3InIHwgJ25vdC1mb3VuZCcgfCAnbG9hZGluZycgfCBudWxsKSA9PiB2b2lkXG59XG5cbmZ1bmN0aW9uIFNlZ21lbnRUcmllTm9kZSh7XG4gIHR5cGUsXG4gIHBhZ2VQYXRoLFxufToge1xuICB0eXBlOiBzdHJpbmdcbiAgcGFnZVBhdGg6IHN0cmluZ1xufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHsgYm91bmRhcnlUeXBlLCBzZXRCb3VuZGFyeVR5cGUgfSA9IHVzZVNlZ21lbnRTdGF0ZSgpXG4gIGNvbnN0IG5vZGVTdGF0ZTogU2VnbWVudE5vZGVTdGF0ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlLFxuICAgICAgcGFnZVBhdGgsXG4gICAgICBib3VuZGFyeVR5cGUsXG4gICAgICBzZXRCb3VuZGFyeVR5cGUsXG4gICAgfVxuICB9LCBbdHlwZSwgcGFnZVBhdGgsIGJvdW5kYXJ5VHlwZSwgc2V0Qm91bmRhcnlUeXBlXSlcblxuICAvLyBVc2UgYHVzZUxheW91dEVmZmVjdGAgdG8gZW5zdXJlIHRoZSBzdGF0ZSBpcyB1cGRhdGVkIGR1cmluZyBzdXNwZW5zZS5cbiAgLy8gYHVzZUVmZmVjdGAgd29uJ3Qgd29yayBhcyB0aGUgc3RhdGUgaXMgcHJlc2VydmVkIGR1cmluZyBzdXNwZW5zZS5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaGVyLnNlZ21lbnRFeHBsb3Jlck5vZGVBZGQobm9kZVN0YXRlKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkaXNwYXRjaGVyLnNlZ21lbnRFeHBsb3Jlck5vZGVSZW1vdmUobm9kZVN0YXRlKVxuICAgIH1cbiAgfSwgW25vZGVTdGF0ZV0pXG5cbiAgcmV0dXJuIG51bGxcbn1cblxuZnVuY3Rpb24gTm90Rm91bmRTZWdtZW50Tm9kZSgpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBub3RGb3VuZCgpXG59XG5cbmZ1bmN0aW9uIEVycm9yU2VnbWVudE5vZGUoKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgdGhyb3cgbmV3IEVycm9yKFNFR01FTlRfRVhQTE9SRVJfU0lNVUxBVEVEX0VSUk9SX01FU1NBR0UpXG59XG5cbmNvbnN0IGZvcmV2ZXIgPSBuZXcgUHJvbWlzZSgoKSA9PiB7fSlcbmZ1bmN0aW9uIExvYWRpbmdTZWdtZW50Tm9kZSgpOiBSZWFjdC5SZWFjdE5vZGUge1xuICB1c2UoZm9yZXZlcilcbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNlZ21lbnRWaWV3U3RhdGVOb2RlKHsgcGFnZSB9OiB7IHBhZ2U6IHN0cmluZyB9KSB7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2hlci5zZWdtZW50RXhwbG9yZXJVcGRhdGVSb3V0ZVN0YXRlKHBhZ2UpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRpc3BhdGNoZXIuc2VnbWVudEV4cGxvcmVyVXBkYXRlUm91dGVTdGF0ZSgnJylcbiAgICB9XG4gIH0sIFtwYWdlXSlcbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFNlZ21lbnRCb3VuZGFyeVRyaWdnZXJOb2RlKCkge1xuICBjb25zdCB7IGJvdW5kYXJ5VHlwZSB9ID0gdXNlU2VnbWVudFN0YXRlKClcbiAgbGV0IHNlZ21lbnROb2RlOiBSZWFjdC5SZWFjdE5vZGUgPSBudWxsXG4gIGlmIChib3VuZGFyeVR5cGUgPT09ICdsb2FkaW5nJykge1xuICAgIHNlZ21lbnROb2RlID0gPExvYWRpbmdTZWdtZW50Tm9kZSAvPlxuICB9IGVsc2UgaWYgKGJvdW5kYXJ5VHlwZSA9PT0gJ25vdC1mb3VuZCcpIHtcbiAgICBzZWdtZW50Tm9kZSA9IDxOb3RGb3VuZFNlZ21lbnROb2RlIC8+XG4gIH0gZWxzZSBpZiAoYm91bmRhcnlUeXBlID09PSAnZXJyb3InKSB7XG4gICAgc2VnbWVudE5vZGUgPSA8RXJyb3JTZWdtZW50Tm9kZSAvPlxuICB9XG4gIHJldHVybiBzZWdtZW50Tm9kZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2VnbWVudFZpZXdOb2RlKHtcbiAgdHlwZSxcbiAgcGFnZVBhdGgsXG4gIGNoaWxkcmVuLFxufToge1xuICB0eXBlOiBzdHJpbmdcbiAgcGFnZVBhdGg6IHN0cmluZ1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZVxufSk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHNlZ21lbnROb2RlID0gKFxuICAgIDxTZWdtZW50VHJpZU5vZGUga2V5PXt0eXBlfSB0eXBlPXt0eXBlfSBwYWdlUGF0aD17cGFnZVBhdGh9IC8+XG4gIClcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7c2VnbWVudE5vZGV9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gIClcbn1cblxuY29uc3QgU2VnbWVudFN0YXRlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8e1xuICBib3VuZGFyeVR5cGU6ICdub3QtZm91bmQnIHwgJ2Vycm9yJyB8ICdsb2FkaW5nJyB8IG51bGxcbiAgc2V0Qm91bmRhcnlUeXBlOiAodHlwZTogJ25vdC1mb3VuZCcgfCAnZXJyb3InIHwgJ2xvYWRpbmcnIHwgbnVsbCkgPT4gdm9pZFxufT4oe1xuICBib3VuZGFyeVR5cGU6IG51bGwsXG4gIHNldEJvdW5kYXJ5VHlwZTogKCkgPT4ge30sXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gU2VnbWVudFN0YXRlUHJvdmlkZXIoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdE5vZGUgfSkge1xuICBjb25zdCBbYm91bmRhcnlUeXBlLCBzZXRCb3VuZGFyeVR5cGVdID0gdXNlU3RhdGU8XG4gICAgJ25vdC1mb3VuZCcgfCAnZXJyb3InIHwgJ2xvYWRpbmcnIHwgbnVsbFxuICA+KG51bGwpXG5cbiAgY29uc3QgW2Vycm9yQm91bmRhcnlLZXksIHNldEVycm9yQm91bmRhcnlLZXldID0gdXNlU3RhdGUoMClcbiAgY29uc3QgcmVsb2FkQm91bmRhcnkgPSB1c2VDYWxsYmFjayhcbiAgICAoKSA9PiBzZXRFcnJvckJvdW5kYXJ5S2V5KChwcmV2KSA9PiBwcmV2ICsgMSksXG4gICAgW11cbiAgKVxuXG4gIGNvbnN0IHNldEJvdW5kYXJ5VHlwZUFuZFJlbG9hZCA9IHVzZUNhbGxiYWNrKFxuICAgICh0eXBlOiAnbm90LWZvdW5kJyB8ICdlcnJvcicgfCAnbG9hZGluZycgfCBudWxsKSA9PiB7XG4gICAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgICByZWxvYWRCb3VuZGFyeSgpXG4gICAgICB9XG4gICAgICBzZXRCb3VuZGFyeVR5cGUodHlwZSlcbiAgICB9LFxuICAgIFtyZWxvYWRCb3VuZGFyeV1cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFNlZ21lbnRTdGF0ZUNvbnRleHQuUHJvdmlkZXJcbiAgICAgIGtleT17ZXJyb3JCb3VuZGFyeUtleX1cbiAgICAgIHZhbHVlPXt7XG4gICAgICAgIGJvdW5kYXJ5VHlwZSxcbiAgICAgICAgc2V0Qm91bmRhcnlUeXBlOiBzZXRCb3VuZGFyeVR5cGVBbmRSZWxvYWQsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1NlZ21lbnRTdGF0ZUNvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlZ21lbnRTdGF0ZSgpIHtcbiAgcmV0dXJuIHVzZUNvbnRleHQoU2VnbWVudFN0YXRlQ29udGV4dClcbn1cbiJdLCJuYW1lcyI6WyJTRUdNRU5UX0VYUExPUkVSX1NJTVVMQVRFRF9FUlJPUl9NRVNTQUdFIiwiU2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGUiLCJTZWdtZW50U3RhdGVQcm92aWRlciIsIlNlZ21lbnRWaWV3Tm9kZSIsIlNlZ21lbnRWaWV3U3RhdGVOb2RlIiwidXNlU2VnbWVudFN0YXRlIiwiU2VnbWVudFRyaWVOb2RlIiwidHlwZSIsInBhZ2VQYXRoIiwiYm91bmRhcnlUeXBlIiwic2V0Qm91bmRhcnlUeXBlIiwibm9kZVN0YXRlIiwidXNlTWVtbyIsInVzZUxheW91dEVmZmVjdCIsImRpc3BhdGNoZXIiLCJzZWdtZW50RXhwbG9yZXJOb2RlQWRkIiwic2VnbWVudEV4cGxvcmVyTm9kZVJlbW92ZSIsIk5vdEZvdW5kU2VnbWVudE5vZGUiLCJub3RGb3VuZCIsIkVycm9yU2VnbWVudE5vZGUiLCJFcnJvciIsImZvcmV2ZXIiLCJQcm9taXNlIiwiTG9hZGluZ1NlZ21lbnROb2RlIiwidXNlIiwicGFnZSIsInNlZ21lbnRFeHBsb3JlclVwZGF0ZVJvdXRlU3RhdGUiLCJzZWdtZW50Tm9kZSIsImNoaWxkcmVuIiwiU2VnbWVudFN0YXRlQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VTdGF0ZSIsImVycm9yQm91bmRhcnlLZXkiLCJzZXRFcnJvckJvdW5kYXJ5S2V5IiwicmVsb2FkQm91bmRhcnkiLCJ1c2VDYWxsYmFjayIsInByZXYiLCJzZXRCb3VuZGFyeVR5cGVBbmRSZWxvYWQiLCJQcm92aWRlciIsInZhbHVlIiwidXNlQ29udGV4dCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js":
/*!***************************************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js ***!
\***************************************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getIsTerminalLoggingEnabled: function() {\n return getIsTerminalLoggingEnabled;\n },\n getTerminalLoggingConfig: function() {\n return getTerminalLoggingConfig;\n }\n});\nfunction getTerminalLoggingConfig() {\n try {\n return JSON.parse(\"false\" || 0);\n } catch (e) {\n return false;\n }\n}\nfunction getIsTerminalLoggingEnabled() {\n const config = getTerminalLoggingConfig();\n return Boolean(config);\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=terminal-logging-config.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC90ZXJtaW5hbC1sb2dnaW5nLWNvbmZpZy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0EsMEJBQTBCLE9BQWlELElBQUksQ0FBTztBQUN0RixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx5REFBeUQsYUFBYTtBQUN0RTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3Rlcm1pbmFsLWxvZ2dpbmctY29uZmlnLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgZ2V0SXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkOiBudWxsLFxuICAgIGdldFRlcm1pbmFsTG9nZ2luZ0NvbmZpZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBnZXRJc1Rlcm1pbmFsTG9nZ2luZ0VuYWJsZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0SXNUZXJtaW5hbExvZ2dpbmdFbmFibGVkO1xuICAgIH0sXG4gICAgZ2V0VGVybWluYWxMb2dnaW5nQ29uZmlnOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFRlcm1pbmFsTG9nZ2luZ0NvbmZpZztcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGdldFRlcm1pbmFsTG9nZ2luZ0NvbmZpZygpIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShwcm9jZXNzLmVudi5fX05FWFRfQlJPV1NFUl9ERUJVR19JTkZPX0lOX1RFUk1JTkFMIHx8ICdmYWxzZScpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGdldElzVGVybWluYWxMb2dnaW5nRW5hYmxlZCgpIHtcbiAgICBjb25zdCBjb25maWcgPSBnZXRUZXJtaW5hbExvZ2dpbmdDb25maWcoKTtcbiAgICByZXR1cm4gQm9vbGVhbihjb25maWcpO1xufVxuXG5pZiAoKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBleHBvcnRzLmRlZmF1bHQgPT09ICdvYmplY3QnICYmIGV4cG9ydHMuZGVmYXVsdCAhPT0gbnVsbCkpICYmIHR5cGVvZiBleHBvcnRzLmRlZmF1bHQuX19lc01vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMuZGVmYXVsdCwgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuICBPYmplY3QuYXNzaWduKGV4cG9ydHMuZGVmYXVsdCwgZXhwb3J0cyk7XG4gIG1vZHVsZS5leHBvcnRzID0gZXhwb3J0cy5kZWZhdWx0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD10ZXJtaW5hbC1sb2dnaW5nLWNvbmZpZy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js":
/*!*******************************************************************************************!*\
!*** ./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js ***!
\*******************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useAppDevRenderingIndicator\", ({\n enumerable: true,\n get: function() {\n return useAppDevRenderingIndicator;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst _nextdevtools = __webpack_require__(/*! next/dist/compiled/next-devtools */ \"(ssr)/./node_modules/next/dist/compiled/next-devtools/index.js\");\nconst useAppDevRenderingIndicator = ()=>{\n const [isPending, startTransition] = (0, _react.useTransition)();\n (0, _react.useEffect)(()=>{\n if (isPending) {\n _nextdevtools.dispatcher.renderingIndicatorShow();\n } else {\n _nextdevtools.dispatcher.renderingIndicatorHide();\n }\n }, [\n isPending\n ]);\n return startTransition;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-app-dev-rendering-indicator.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL3VzZS1hcHAtZGV2LXJlbmRlcmluZy1pbmRpY2F0b3IuanMiLCJtYXBwaW5ncyI6Ijs7OzsrREFLYUE7OztlQUFBQTs7O21DQUg0QjswQ0FDZDtBQUVwQixNQUFNQSw4QkFBOEI7SUFDekMsTUFBTSxDQUFDQyxXQUFXQyxnQkFBZ0IsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsYUFBQUE7SUFFckNDLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixJQUFJSCxXQUFXO1lBQ2JJLGNBQUFBLFVBQVUsQ0FBQ0Msc0JBQXNCO1FBQ25DLE9BQU87WUFDTEQsY0FBQUEsVUFBVSxDQUFDRSxzQkFBc0I7UUFDbkM7SUFDRixHQUFHO1FBQUNOO0tBQVU7SUFFZCxPQUFPQztBQUNUIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvdXNlLWFwcC1kZXYtcmVuZGVyaW5nLWluZGljYXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlVHJhbnNpdGlvbiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZGlzcGF0Y2hlciB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LWRldnRvb2xzJ1xuXG5leHBvcnQgY29uc3QgdXNlQXBwRGV2UmVuZGVyaW5nSW5kaWNhdG9yID0gKCkgPT4ge1xuICBjb25zdCBbaXNQZW5kaW5nLCBzdGFydFRyYW5zaXRpb25dID0gdXNlVHJhbnNpdGlvbigpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNQZW5kaW5nKSB7XG4gICAgICBkaXNwYXRjaGVyLnJlbmRlcmluZ0luZGljYXRvclNob3coKVxuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaGVyLnJlbmRlcmluZ0luZGljYXRvckhpZGUoKVxuICAgIH1cbiAgfSwgW2lzUGVuZGluZ10pXG5cbiAgcmV0dXJuIHN0YXJ0VHJhbnNpdGlvblxufVxuIl0sIm5hbWVzIjpbInVzZUFwcERldlJlbmRlcmluZ0luZGljYXRvciIsImlzUGVuZGluZyIsInN0YXJ0VHJhbnNpdGlvbiIsInVzZVRyYW5zaXRpb24iLCJ1c2VFZmZlY3QiLCJkaXNwYXRjaGVyIiwicmVuZGVyaW5nSW5kaWNhdG9yU2hvdyIsInJlbmRlcmluZ0luZGljYXRvckhpZGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/pages/_error.js":
/*!************************************************!*\
!*** ./node_modules/next/dist/pages/_error.js ***!
\************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Error;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"(ssr)/./node_modules/next/dist/shared/lib/head.js\"));\nconst statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\nfunction _getInitialProps(param) {\n let { req, res, err } = param;\n const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n let hostname;\n if (false) {} else if (req) {\n const { getRequestMeta } = __webpack_require__(/*! ../server/request-meta */ \"(ssr)/./node_modules/next/dist/server/request-meta.js\");\n const initUrl = getRequestMeta(req, 'initURL');\n if (initUrl) {\n const url = new URL(initUrl);\n hostname = url.hostname;\n }\n }\n return {\n statusCode,\n hostname\n };\n}\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n desc: {\n lineHeight: '48px'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px'\n },\n wrap: {\n display: 'inline-block'\n }\n};\nclass Error extends _react.default.Component {\n render() {\n const { statusCode, withDarkMode = true } = this.props;\n const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.error,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: statusCode ? statusCode + \": \" + title : 'Application error: a client-side exception has occurred'\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.desc,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* CSS minified from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n ${\n withDarkMode\n ? `@media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }`\n : ''\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\" + (withDarkMode ? '@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}' : '')\n }\n }),\n statusCode ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: styles.h1,\n children: statusCode\n }) : null,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.wrap,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.h2,\n children: [\n this.props.title || statusCode ? title : /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"Application error: a client-side exception has occurred\",\n ' ',\n Boolean(this.props.hostname) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n \"while loading \",\n this.props.hostname\n ]\n }),\n ' ',\n \"(see the browser console for more information)\"\n ]\n }),\n \".\"\n ]\n })\n })\n ]\n })\n ]\n });\n }\n}\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O2VBZ0ZxQkE7Ozs7OzRFQWhGSDsyRUFDRDtBQUdqQixNQUFNQyxjQUEwQztJQUM5QyxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0FBQ1A7QUFTQSxTQUFTQyxpQkFBaUIsS0FJUjtJQUpRLE1BQ3hCQyxHQUFHLEVBQ0hDLEdBQUcsRUFDSEMsR0FBRyxFQUNhLEdBSlE7SUFLeEIsTUFBTUMsYUFDSkYsT0FBT0EsSUFBSUUsVUFBVSxHQUFHRixJQUFJRSxVQUFVLEdBQUdELE1BQU1BLElBQUlDLFVBQVUsR0FBSTtJQUVuRSxJQUFJQztJQUVKLElBQUksS0FBNkIsRUFBRSxFQUVsQyxNQUFNLElBQUlKLEtBQUs7UUFDZCxNQUFNLEVBQUVPLGNBQWMsRUFBRSxHQUN0QkMsbUJBQU9BLENBQUMscUZBQXdCO1FBRWxDLE1BQU1DLFVBQVVGLGVBQWVQLEtBQUs7UUFDcEMsSUFBSVMsU0FBUztZQUNYLE1BQU1DLE1BQU0sSUFBSUMsSUFBSUY7WUFDcEJMLFdBQVdNLElBQUlOLFFBQVE7UUFDekI7SUFDRjtJQUVBLE9BQU87UUFBRUQ7UUFBWUM7SUFBUztBQUNoQztBQUVBLE1BQU1RLFNBQThDO0lBQ2xEQyxPQUFPO1FBQ0wsMEZBQTBGO1FBQzFGQyxZQUNFO1FBQ0ZDLFFBQVE7UUFDUkMsV0FBVztRQUNYQyxTQUFTO1FBQ1RDLGVBQWU7UUFDZkMsWUFBWTtRQUNaQyxnQkFBZ0I7SUFDbEI7SUFDQUMsTUFBTTtRQUNKQyxZQUFZO0lBQ2Q7SUFDQUMsSUFBSTtRQUNGTixTQUFTO1FBQ1RPLFFBQVE7UUFDUkMsY0FBYztRQUNkQyxVQUFVO1FBQ1ZDLFlBQVk7UUFDWkMsZUFBZTtJQUNqQjtJQUNBQyxJQUFJO1FBQ0ZILFVBQVU7UUFDVkMsWUFBWTtRQUNaTCxZQUFZO0lBQ2Q7SUFDQVEsTUFBTTtRQUNKYixTQUFTO0lBQ1g7QUFDRjtBQUtlLE1BQU1wQixjQUFzQmtDLE9BQUFBLE9BQUssQ0FBQ0MsU0FBUztJQU14REMsU0FBUztRQUNQLE1BQU0sRUFBRTlCLFVBQVUsRUFBRStCLGVBQWUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDQyxLQUFLO1FBQ3RELE1BQU1DLFFBQ0osSUFBSSxDQUFDRCxLQUFLLENBQUNDLEtBQUssSUFDaEJ0QyxXQUFXLENBQUNLLFdBQVcsSUFDdkI7UUFFRixxQkFDRSxzQkFBQ2tDLE9BQUFBO1lBQUlDLE9BQU8xQixPQUFPQyxLQUFLOzs4QkFDdEIscUJBQUMwQixNQUFBQSxPQUFJOzhCQUNILG1DQUFDSCxTQUFBQTtrQ0FDRWpDLGFBQ01BLGFBQVcsT0FBSWlDLFFBQ2xCOzs7OEJBR1Isc0JBQUNDLE9BQUFBO29CQUFJQyxPQUFPMUIsT0FBT1MsSUFBSTs7c0NBQ3JCLHFCQUFDaUIsU0FBQUE7NEJBQ0NFLHlCQUF5QjtnQ0FDdkI7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFnQkMsR0FDREMsUUFBUyxtR0FDUFAsQ0FBQUEsZUFDSSxvSUFDQSxHQUFDOzRCQUVUOzt3QkFHRC9CLGFBQUFBLFdBQUFBLEdBQ0MscUJBQUNvQixNQUFBQTs0QkFBR21CLFdBQVU7NEJBQWdCSixPQUFPMUIsT0FBT1csRUFBRTtzQ0FDM0NwQjs2QkFFRDtzQ0FDSixxQkFBQ2tDLE9BQUFBOzRCQUFJQyxPQUFPMUIsT0FBT2tCLElBQUk7c0NBQ3JCLG9DQUFDRCxNQUFBQTtnQ0FBR1MsT0FBTzFCLE9BQU9pQixFQUFFOztvQ0FDakIsSUFBSSxDQUFDTSxLQUFLLENBQUNDLEtBQUssSUFBSWpDLGFBQ25CaUMsUUFFQSxXQUZBQSxHQUVBOzs0Q0FBRTs0Q0FDd0Q7NENBQ3ZETyxRQUFRLElBQUksQ0FBQ1IsS0FBSyxDQUFDL0IsUUFBUSxLQUMxQixXQUQwQixHQUMxQjs7b0RBQUU7b0RBQWUsSUFBSSxDQUFDK0IsS0FBSyxDQUFDL0IsUUFBUTs7OzRDQUNuQzs0Q0FBSTs7O29DQUdUOzs7Ozs7OztJQU9kO0FBQ0Y7QUEzRXFCUCxNQUNaK0MsV0FBQUEsR0FBYztBQURGL0MsTUFHWmdELGVBQUFBLEdBQWtCOUM7QUFITkYsTUFJWmlELG1CQUFBQSxHQUFzQi9DIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvc3JjL3BhZ2VzL19lcnJvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IEhlYWQgZnJvbSAnLi4vc2hhcmVkL2xpYi9oZWFkJ1xuaW1wb3J0IHR5cGUgeyBOZXh0UGFnZUNvbnRleHQgfSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuXG5jb25zdCBzdGF0dXNDb2RlczogeyBbY29kZTogbnVtYmVyXTogc3RyaW5nIH0gPSB7XG4gIDQwMDogJ0JhZCBSZXF1ZXN0JyxcbiAgNDA0OiAnVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZCcsXG4gIDQwNTogJ01ldGhvZCBOb3QgQWxsb3dlZCcsXG4gIDUwMDogJ0ludGVybmFsIFNlcnZlciBFcnJvcicsXG59XG5cbmV4cG9ydCB0eXBlIEVycm9yUHJvcHMgPSB7XG4gIHN0YXR1c0NvZGU6IG51bWJlclxuICBob3N0bmFtZT86IHN0cmluZ1xuICB0aXRsZT86IHN0cmluZ1xuICB3aXRoRGFya01vZGU/OiBib29sZWFuXG59XG5cbmZ1bmN0aW9uIF9nZXRJbml0aWFsUHJvcHMoe1xuICByZXEsXG4gIHJlcyxcbiAgZXJyLFxufTogTmV4dFBhZ2VDb250ZXh0KTogUHJvbWlzZTxFcnJvclByb3BzPiB8IEVycm9yUHJvcHMge1xuICBjb25zdCBzdGF0dXNDb2RlID1cbiAgICByZXMgJiYgcmVzLnN0YXR1c0NvZGUgPyByZXMuc3RhdHVzQ29kZSA6IGVyciA/IGVyci5zdGF0dXNDb2RlISA6IDQwNFxuXG4gIGxldCBob3N0bmFtZVxuXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIGhvc3RuYW1lID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lXG4gIH0gZWxzZSBpZiAocmVxKSB7XG4gICAgY29uc3QgeyBnZXRSZXF1ZXN0TWV0YSB9ID1cbiAgICAgIHJlcXVpcmUoJy4uL3NlcnZlci9yZXF1ZXN0LW1ldGEnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9zZXJ2ZXIvcmVxdWVzdC1tZXRhJylcblxuICAgIGNvbnN0IGluaXRVcmwgPSBnZXRSZXF1ZXN0TWV0YShyZXEsICdpbml0VVJMJylcbiAgICBpZiAoaW5pdFVybCkge1xuICAgICAgY29uc3QgdXJsID0gbmV3IFVSTChpbml0VXJsKVxuICAgICAgaG9zdG5hbWUgPSB1cmwuaG9zdG5hbWVcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBzdGF0dXNDb2RlLCBob3N0bmFtZSB9XG59XG5cbmNvbnN0IHN0eWxlczogUmVjb3JkPHN0cmluZywgUmVhY3QuQ1NTUHJvcGVydGllcz4gPSB7XG4gIGVycm9yOiB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2Jsb2IvbWFpbi9tb2Rlcm4tbm9ybWFsaXplLmNzcyNMMzgtTDUyXG4gICAgZm9udEZhbWlseTpcbiAgICAgICdzeXN0ZW0tdWksXCJTZWdvZSBVSVwiLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiJyxcbiAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICB9LFxuICBkZXNjOiB7XG4gICAgbGluZUhlaWdodDogJzQ4cHgnLFxuICB9LFxuICBoMToge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgIG1hcmdpbjogJzAgMjBweCAwIDAnLFxuICAgIHBhZGRpbmdSaWdodDogMjMsXG4gICAgZm9udFNpemU6IDI0LFxuICAgIGZvbnRXZWlnaHQ6IDUwMCxcbiAgICB2ZXJ0aWNhbEFsaWduOiAndG9wJyxcbiAgfSxcbiAgaDI6IHtcbiAgICBmb250U2l6ZTogMTQsXG4gICAgZm9udFdlaWdodDogNDAwLFxuICAgIGxpbmVIZWlnaHQ6ICcyOHB4JyxcbiAgfSxcbiAgd3JhcDoge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICB9LFxufVxuXG4vKipcbiAqIGBFcnJvcmAgY29tcG9uZW50IHVzZWQgZm9yIGhhbmRsaW5nIGVycm9ycy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRXJyb3I8UCA9IHt9PiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQICYgRXJyb3JQcm9wcz4ge1xuICBzdGF0aWMgZGlzcGxheU5hbWUgPSAnRXJyb3JQYWdlJ1xuXG4gIHN0YXRpYyBnZXRJbml0aWFsUHJvcHMgPSBfZ2V0SW5pdGlhbFByb3BzXG4gIHN0YXRpYyBvcmlnR2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wc1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IHN0YXR1c0NvZGUsIHdpdGhEYXJrTW9kZSA9IHRydWUgfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCB0aXRsZSA9XG4gICAgICB0aGlzLnByb3BzLnRpdGxlIHx8XG4gICAgICBzdGF0dXNDb2Rlc1tzdGF0dXNDb2RlXSB8fFxuICAgICAgJ0FuIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkJ1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5lcnJvcn0+XG4gICAgICAgIDxIZWFkPlxuICAgICAgICAgIDx0aXRsZT5cbiAgICAgICAgICAgIHtzdGF0dXNDb2RlXG4gICAgICAgICAgICAgID8gYCR7c3RhdHVzQ29kZX06ICR7dGl0bGV9YFxuICAgICAgICAgICAgICA6ICdBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkJ31cbiAgICAgICAgICA8L3RpdGxlPlxuICAgICAgICA8L0hlYWQ+XG4gICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5kZXNjfT5cbiAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIC8qIENTUyBtaW5pZmllZCBmcm9tXG4gICAgICAgICAgICAgICAgYm9keSB7IG1hcmdpbjogMDsgY29sb3I6ICMwMDA7IGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgICAgICAgICAgICAubmV4dC1lcnJvci1oMSB7XG4gICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIC4zKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAke1xuICAgICAgICAgICAgICAgICAgd2l0aERhcmtNb2RlXG4gICAgICAgICAgICAgICAgICAgID8gYEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAgICAgICAgICAgICAgIGJvZHkgeyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogIzAwMDsgfVxuICAgICAgICAgICAgICAgICAgLm5leHQtZXJyb3ItaDEge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIC4zKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgX19odG1sOiBgYm9keXtjb2xvcjojMDAwO2JhY2tncm91bmQ6I2ZmZjttYXJnaW46MH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjMpfSR7XG4gICAgICAgICAgICAgICAgd2l0aERhcmtNb2RlXG4gICAgICAgICAgICAgICAgICA/ICdAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspe2JvZHl7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiMwMDB9Lm5leHQtZXJyb3ItaDF7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4zKX19J1xuICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cblxuICAgICAgICAgIHtzdGF0dXNDb2RlID8gKFxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm5leHQtZXJyb3ItaDFcIiBzdHlsZT17c3R5bGVzLmgxfT5cbiAgICAgICAgICAgICAge3N0YXR1c0NvZGV9XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy53cmFwfT5cbiAgICAgICAgICAgIDxoMiBzdHlsZT17c3R5bGVzLmgyfT5cbiAgICAgICAgICAgICAge3RoaXMucHJvcHMudGl0bGUgfHwgc3RhdHVzQ29kZSA/IChcbiAgICAgICAgICAgICAgICB0aXRsZVxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbiBlcnJvcjogYSBjbGllbnQtc2lkZSBleGNlcHRpb24gaGFzIG9jY3VycmVkeycgJ31cbiAgICAgICAgICAgICAgICAgIHtCb29sZWFuKHRoaXMucHJvcHMuaG9zdG5hbWUpICYmIChcbiAgICAgICAgICAgICAgICAgICAgPD53aGlsZSBsb2FkaW5nIHt0aGlzLnByb3BzLmhvc3RuYW1lfTwvPlxuICAgICAgICAgICAgICAgICAgKX17JyAnfVxuICAgICAgICAgICAgICAgICAgKHNlZSB0aGUgYnJvd3NlciBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uKVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAuXG4gICAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkVycm9yIiwic3RhdHVzQ29kZXMiLCJfZ2V0SW5pdGlhbFByb3BzIiwicmVxIiwicmVzIiwiZXJyIiwic3RhdHVzQ29kZSIsImhvc3RuYW1lIiwid2luZG93IiwibG9jYXRpb24iLCJnZXRSZXF1ZXN0TWV0YSIsInJlcXVpcmUiLCJpbml0VXJsIiwidXJsIiwiVVJMIiwic3R5bGVzIiwiZXJyb3IiLCJmb250RmFtaWx5IiwiaGVpZ2h0IiwidGV4dEFsaWduIiwiZGlzcGxheSIsImZsZXhEaXJlY3Rpb24iLCJhbGlnbkl0ZW1zIiwianVzdGlmeUNvbnRlbnQiLCJkZXNjIiwibGluZUhlaWdodCIsImgxIiwibWFyZ2luIiwicGFkZGluZ1JpZ2h0IiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwidmVydGljYWxBbGlnbiIsImgyIiwid3JhcCIsIlJlYWN0IiwiQ29tcG9uZW50IiwicmVuZGVyIiwid2l0aERhcmtNb2RlIiwicHJvcHMiLCJ0aXRsZSIsImRpdiIsInN0eWxlIiwiSGVhZCIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiY2xhc3NOYW1lIiwiQm9vbGVhbiIsImRpc3BsYXlOYW1lIiwiZ2V0SW5pdGlhbFByb3BzIiwib3JpZ0dldEluaXRpYWxQcm9wcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/pages/_error.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js":
/*!***********************************************************************!*\
!*** ./node_modules/next/dist/server/app-render/dynamic-rendering.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Postpone: function() {\n return Postpone;\n },\n PreludeState: function() {\n return PreludeState;\n },\n abortAndThrowOnSynchronousRequestDataAccess: function() {\n return abortAndThrowOnSynchronousRequestDataAccess;\n },\n abortOnSynchronousPlatformIOAccess: function() {\n return abortOnSynchronousPlatformIOAccess;\n },\n accessedDynamicData: function() {\n return accessedDynamicData;\n },\n annotateDynamicAccess: function() {\n return annotateDynamicAccess;\n },\n consumeDynamicAccess: function() {\n return consumeDynamicAccess;\n },\n createDynamicTrackingState: function() {\n return createDynamicTrackingState;\n },\n createDynamicValidationState: function() {\n return createDynamicValidationState;\n },\n createHangingInputAbortSignal: function() {\n return createHangingInputAbortSignal;\n },\n createPostponedAbortSignal: function() {\n return createPostponedAbortSignal;\n },\n formatDynamicAPIAccesses: function() {\n return formatDynamicAPIAccesses;\n },\n getFirstDynamicReason: function() {\n return getFirstDynamicReason;\n },\n isDynamicPostpone: function() {\n return isDynamicPostpone;\n },\n isPrerenderInterruptedError: function() {\n return isPrerenderInterruptedError;\n },\n markCurrentScopeAsDynamic: function() {\n return markCurrentScopeAsDynamic;\n },\n postponeWithTracking: function() {\n return postponeWithTracking;\n },\n throwIfDisallowedDynamic: function() {\n return throwIfDisallowedDynamic;\n },\n throwToInterruptStaticGeneration: function() {\n return throwToInterruptStaticGeneration;\n },\n trackAllowedDynamicAccess: function() {\n return trackAllowedDynamicAccess;\n },\n trackDynamicDataInDynamicRender: function() {\n return trackDynamicDataInDynamicRender;\n },\n trackFallbackParamAccessed: function() {\n return trackFallbackParamAccessed;\n },\n trackSynchronousPlatformIOAccessInDev: function() {\n return trackSynchronousPlatformIOAccessInDev;\n },\n trackSynchronousRequestDataAccessInDev: function() {\n return trackSynchronousRequestDataAccessInDev;\n },\n useDynamicRouteParams: function() {\n return useDynamicRouteParams;\n }\n});\nconst _react = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _hooksservercontext = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(ssr)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ./work-unit-async-storage.external */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _metadataconstants = __webpack_require__(/*! ../../lib/metadata/metadata-constants */ \"(ssr)/./node_modules/next/dist/lib/metadata/metadata-constants.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(ssr)/./node_modules/next/dist/lib/scheduler.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst hasPostpone = typeof _react.default.unstable_postpone === 'function';\nfunction createDynamicTrackingState(isDebugDynamicAccesses) {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null\n };\n}\nfunction createDynamicValidationState() {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: []\n };\n}\nfunction getFirstDynamicReason(trackingState) {\n var _trackingState_dynamicAccesses_;\n return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;\n}\nfunction markCurrentScopeAsDynamic(store, workUnitStore, expression) {\n if (workUnitStore) {\n if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {\n // inside cache scopes marking a scope as dynamic has no effect because the outer cache scope\n // creates a cache boundary. This is subtly different from reading a dynamic data source which is\n // forbidden inside a cache scope.\n return;\n }\n }\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return;\n if (store.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E553\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'prerender-ppr') {\n postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n workUnitStore.revalidate = 0;\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E550\",\n enumerable: false,\n configurable: true\n });\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n } else if ( true && workUnitStore && workUnitStore.type === 'request') {\n workUnitStore.usedDynamic = true;\n }\n }\n}\nfunction trackFallbackParamAccessed(store, expression) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!prerenderStore || prerenderStore.type !== 'prerender-ppr') return;\n postponeWithTracking(store.route, expression, prerenderStore.dynamicTracking);\n}\nfunction throwToInterruptStaticGeneration(expression, store, prerenderStore) {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E558\",\n enumerable: false,\n configurable: true\n });\n prerenderStore.revalidate = 0;\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n}\nfunction trackDynamicDataInDynamicRender(_store, workUnitStore) {\n if (workUnitStore) {\n if (workUnitStore.type === 'cache' || workUnitStore.type === 'unstable-cache') {\n // inside cache scopes marking a scope as dynamic has no effect because the outer cache scope\n // creates a cache boundary. This is subtly different from reading a dynamic data source which is\n // forbidden inside a cache scope.\n return;\n }\n // TODO: it makes no sense to have these work unit store types during a dev render.\n if (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-client' || workUnitStore.type === 'prerender-legacy') {\n workUnitStore.revalidate = 0;\n }\n if ( true && workUnitStore.type === 'request') {\n workUnitStore.usedDynamic = true;\n }\n }\n}\nfunction abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`;\n const error = createPrerenderInterruptedError(reason);\n prerenderStore.controller.abort(error);\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n}\nfunction trackSynchronousPlatformIOAccessInDev(requestStore) {\n // We don't actually have a controller to abort but we do the semantic equivalent by\n // advancing the request store out of prerender mode\n requestStore.prerenderPhase = false;\n}\nfunction abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {\n const prerenderSignal = prerenderStore.controller.signal;\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack;\n }\n }\n }\n throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);\n}\nconst trackSynchronousRequestDataAccessInDev = trackSynchronousPlatformIOAccessInDev;\nfunction Postpone({ reason, route }) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null;\n postponeWithTracking(route, reason, dynamicTracking);\n}\nfunction postponeWithTracking(route, expression, dynamicTracking) {\n assertPostpone();\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n _react.default.unstable_postpone(createPostponeReason(route, expression));\n}\nfunction createPostponeReason(route, expression) {\n return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`;\n}\nfunction isDynamicPostpone(err) {\n if (typeof err === 'object' && err !== null && typeof err.message === 'string') {\n return isDynamicPostponeReason(err.message);\n }\n return false;\n}\nfunction isDynamicPostponeReason(reason) {\n return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error');\n}\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), \"__NEXT_ERROR_CODE\", {\n value: \"E296\",\n enumerable: false,\n configurable: true\n });\n}\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';\nfunction createPrerenderInterruptedError(message) {\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.digest = NEXT_PRERENDER_INTERRUPTED;\n return error;\n}\nfunction isPrerenderInterruptedError(error) {\n return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;\n}\nfunction accessedDynamicData(dynamicAccesses) {\n return dynamicAccesses.length > 0;\n}\nfunction consumeDynamicAccess(serverDynamic, clientDynamic) {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);\n return serverDynamic.dynamicAccesses;\n}\nfunction formatDynamicAPIAccesses(dynamicAccesses) {\n return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{\n stack = stack.split('\\n') // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4).filter((line)=>{\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false;\n }\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' (<anonymous>)')) {\n return false;\n }\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false;\n }\n return true;\n }).join('\\n');\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`;\n });\n}\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), \"__NEXT_ERROR_CODE\", {\n value: \"E224\",\n enumerable: false,\n configurable: true\n });\n }\n}\nfunction createPostponedAbortSignal(reason) {\n assertPostpone();\n const controller = new AbortController();\n // We get our hands on a postpone instance by calling postpone and catching the throw\n try {\n _react.default.unstable_postpone(reason);\n } catch (x) {\n controller.abort(x);\n }\n return controller.signal;\n}\nfunction createHangingInputAbortSignal(workUnitStore) {\n const controller = new AbortController();\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If the input\n // we're waiting on is coming from another cache, we do want to wait for it so that\n // we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(()=>{\n controller.abort();\n });\n } else {\n // Otherwise we're in the final render and we should already have all our caches\n // filled. We might still be waiting on some microtasks so we wait one tick before\n // giving up. When we give up, we still want to render the content of this cache\n // as deeply as we can so that we can suspend as deeply as possible in the tree\n // or not at all if we don't end up waiting for the input.\n (0, _scheduler.scheduleOnNextTick)(()=>controller.abort());\n }\n return controller.signal;\n}\nfunction annotateDynamicAccess(expression, prerenderStore) {\n const dynamicTracking = prerenderStore.dynamicTracking;\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,\n expression\n });\n }\n}\nfunction useDynamicRouteParams(expression) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (workStore && workStore.isStaticGeneration && workStore.fallbackRouteParams && workStore.fallbackRouteParams.size > 0) {\n // There are fallback route params, we should track these as dynamic\n // accesses.\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n // We're prerendering with dynamicIO or PPR or both\n if (workUnitStore.type === 'prerender-client') {\n // We are in a prerender with dynamicIO semantics\n // We are going to hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole\n _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, expression));\n } else if (workUnitStore.type === 'prerender-ppr') {\n // We're prerendering with PPR\n postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n throwToInterruptStaticGeneration(expression, workStore, workUnitStore);\n }\n }\n }\n}\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(<anonymous>\\)/;\nconst hasSuspenseAfterBodyOrHtmlRegex = /\\n\\s+at (?:body|html) \\(<anonymous>\\)[\\s\\S]*?\\n\\s+at Suspense \\(<anonymous>\\)/;\nconst hasMetadataRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasViewportRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`);\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${_metadataconstants.OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`);\nfunction trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return;\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true;\n return;\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true;\n return;\n } else if (hasSuspenseAfterBodyOrHtmlRegex.test(componentStack)) {\n // This prerender has a Suspense boundary above the body which\n // effectively opts the page into allowing 100% dynamic rendering\n dynamicValidation.hasAllowedDynamic = true;\n dynamicValidation.hasSuspenseAboveBody = true;\n return;\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true;\n return;\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);\n return;\n } else {\n const message = `Route \"${workStore.route}\": A component accessed data, headers, params, searchParams, or a short-lived cache without a Suspense boundary nor a \"use cache\" above it. See more info: https://nextjs.org/docs/messages/next-prerender-missing-suspense`;\n const error = createErrorWithComponentOrOwnerStack(message, componentStack);\n dynamicValidation.dynamicErrors.push(error);\n return;\n }\n}\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */ function createErrorWithComponentOrOwnerStack(message, componentStack) {\n const ownerStack = true && _react.default.captureOwnerStack ? _react.default.captureOwnerStack() : null;\n const error = Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n error.stack = error.name + ': ' + message + (ownerStack ?? componentStack);\n return error;\n}\nvar PreludeState = /*#__PURE__*/ function(PreludeState) {\n PreludeState[PreludeState[\"Full\"] = 0] = \"Full\";\n PreludeState[PreludeState[\"Empty\"] = 1] = \"Empty\";\n PreludeState[PreludeState[\"Errored\"] = 2] = \"Errored\";\n return PreludeState;\n}({});\nfunction logDisallowedDynamicError(workStore, error) {\n console.error(error);\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`);\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`);\n }\n }\n}\nfunction throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) {\n if (workStore.invalidDynamicUsageError) {\n logDisallowedDynamicError(workStore, workStore.invalidDynamicUsageError);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n if (prelude !== 0) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return;\n }\n if (serverDynamic.syncDynamicErrorWithStack) {\n // There is no shell and the server did something sync dynamic likely\n // leading to an early termination of the prerender before the shell\n // could be completed. We terminate the build/validating render.\n logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors;\n if (dynamicErrors.length > 0) {\n for(let i = 0; i < dynamicErrors.length; i++){\n logDisallowedDynamicError(workStore, dynamicErrors[i]);\n }\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(`Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n if (prelude === 1) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(`Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n } else {\n if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) {\n console.error(`Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`);\n throw new _staticgenerationbailout.StaticGenBailoutError();\n }\n }\n} //# sourceMappingURL=dynamic-rendering.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW9CQzs7Ozs7Ozs7Ozs7O0lBZ1ZlQSxRQUFRO2VBQVJBOztJQTJUSkMsWUFBWTtlQUFaQTs7SUFwV0lDLDJDQUEyQztlQUEzQ0E7O0lBckNBQyxrQ0FBa0M7ZUFBbENBOztJQXdLQUMsbUJBQW1CO2VBQW5CQTs7SUE0R0FDLHFCQUFxQjtlQUFyQkE7O0lBdEdBQyxvQkFBb0I7ZUFBcEJBOztJQS9XQUMsMEJBQTBCO2VBQTFCQTs7SUFVQUMsNEJBQTRCO2VBQTVCQTs7SUFtYkFDLDZCQUE2QjtlQUE3QkE7O0lBakJBQywwQkFBMEI7ZUFBMUJBOztJQWxEQUMsd0JBQXdCO2VBQXhCQTs7SUF0V0FDLHFCQUFxQjtlQUFyQkE7O0lBZ1NBQyxpQkFBaUI7ZUFBakJBOztJQXdDQUMsMkJBQTJCO2VBQTNCQTs7SUEzVEFDLHlCQUF5QjtlQUF6QkE7O0lBdVBBQyxvQkFBb0I7ZUFBcEJBOztJQXdVQUMsd0JBQXdCO2VBQXhCQTs7SUEvZUFDLGdDQUFnQztlQUFoQ0E7O0lBK1pBQyx5QkFBeUI7ZUFBekJBOztJQXRZQUMsK0JBQStCO2VBQS9CQTs7SUF6Q0FDLDBCQUEwQjtlQUExQkE7O0lBbUhBQyxxQ0FBcUM7ZUFBckNBOztJQWlESEMsc0NBQXNDO2VBQXRDQTs7SUErTkdDLHFCQUFxQjtlQUFyQkE7OzswRUExaEJFO2dEQUVpQjtxREFDRzswREFDRDtzREFDSjttREFDRTsrQ0FLNUI7dUNBQzRCOzs7Ozs7QUFFbkMsTUFBTUMsY0FBYyxPQUFPQyxPQUFBQSxPQUFLLENBQUNDLGlCQUFpQixLQUFLO0FBd0NoRCxTQUFTcEIsMkJBQ2RxQixzQkFBMkM7SUFFM0MsT0FBTztRQUNMQTtRQUNBQyxpQkFBaUIsRUFBRTtRQUNuQkMsMkJBQTJCO0lBQzdCO0FBQ0Y7QUFFTyxTQUFTdEI7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QmtGLGtCQUFrQmxGLGFBQWE7UUFDckQsSUFBSUEsY0FBY2dELE1BQU0sR0FBRyxHQUFHO1lBQzVCLElBQUssSUFBSThDLElBQUksR0FBR0EsSUFBSTlGLGNBQWNnRCxNQUFNLEVBQUU4QyxJQUFLO2dCQUM3Q04sMEJBQTBCeEIsV0FBV2hFLGFBQWEsQ0FBQzhGLEVBQUU7WUFDdkQ7WUFFQSxNQUFNLElBQUlyRix5QkFBQUEscUJBQXFCO1FBQ2pDO1FBRUEsc0VBQXNFO1FBQ3RFLHdEQUF3RDtRQUN4RCx5RUFBeUU7UUFDekUsd0RBQXdEO1FBQ3hELElBQUl5RSxrQkFBa0JwRixrQkFBa0IsRUFBRTtZQUN4QzJGLFFBQVE3RCxLQUFLLENBQ1gsQ0FBQyxPQUFPLEVBQUVvQyxVQUFVdEQsS0FBSyxDQUFDLDhRQUE4USxDQUFDO1lBRTNTLE1BQU0sSUFBSUQseUJBQUFBLHFCQUFxQjtRQUNqQztRQUVBLElBQUltRixZQUFBQSxHQUFnQztZQUNsQyw2RUFBNkU7WUFDN0UsaUZBQWlGO1lBQ2pGLDJDQUEyQztZQUMzQ0gsUUFBUTdELEtBQUssQ0FDWCxDQUFDLE9BQU8sRUFBRW9DLFVBQVV0RCxLQUFLLENBQUMsd0dBQXdHLENBQUM7WUFFckksTUFBTSxJQUFJRCx5QkFBQUEscUJBQXFCO1FBQ2pDO0lBQ0YsT0FBTztRQUNMLElBQ0V5RSxrQkFBa0JuRixpQkFBaUIsS0FBSyxTQUN4Q21GLGtCQUFrQnJGLGtCQUFrQixFQUNwQztZQUNBNEYsUUFBUTdELEtBQUssQ0FDWCxDQUFDLE9BQU8sRUFBRW9DLFVBQVV0RCxLQUFLLENBQUMsOFBBQThQLENBQUM7WUFFM1IsTUFBTSxJQUFJRCx5QkFBQUEscUJBQXFCO1FBQ2pDO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NlcnZlci9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGZ1bmN0aW9ucyBwcm92aWRlZCBieSB0aGlzIG1vZHVsZSBhcmUgdXNlZCB0byBjb21tdW5pY2F0ZSBjZXJ0YWluIHByb3BlcnRpZXNcbiAqIGFib3V0IHRoZSBjdXJyZW50bHkgcnVubmluZyBjb2RlIHNvIHRoYXQgTmV4dC5qcyBjYW4gbWFrZSBkZWNpc2lvbnMgb24gaG93IHRvIGhhbmRsZVxuICogdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGluIGRpZmZlcmVudCByZW5kZXJpbmcgbW9kZXMgc3VjaCBhcyBwcmUtcmVuZGVyaW5nLCByZXN1bWluZywgYW5kIFNTUi5cbiAqXG4gKiBUb2RheSBOZXh0LmpzIHRyZWF0cyBhbGwgY29kZSBhcyBwb3RlbnRpYWxseSBzdGF0aWMuIENlcnRhaW4gQVBJcyBtYXkgb25seSBtYWtlIHNlbnNlIHdoZW4gZHluYW1pY2FsbHkgcmVuZGVyaW5nLlxuICogVHJhZGl0aW9uYWxseSB0aGlzIG1lYW50IGRlb3B0aW5nIHRoZSBlbnRpcmUgcmVuZGVyIHRvIGR5bmFtaWMgaG93ZXZlciB3aXRoIFBQUiB3ZSBjYW4gbm93IGRlb3B0IHBhcnRzXG4gKiBvZiBhIFJlYWN0IHRyZWUgYXMgZHluYW1pYyB3aGlsZSBzdGlsbCBrZWVwaW5nIG90aGVyIHBhcnRzIHN0YXRpYy4gVGhlcmUgYXJlIHJlYWxseSB0d28gZGlmZmVyZW50IGtpbmRzIG9mXG4gKiBEeW5hbWljIGluZGljYXRpb25zLlxuICpcbiAqIFRoZSBmaXJzdCBpcyBzaW1wbHkgYW4gaW50ZW50aW9uIHRvIGJlIGR5bmFtaWMuIHVuc3RhYmxlX25vU3RvcmUgaXMgYW4gZXhhbXBsZSBvZiB0aGlzIHdoZXJlXG4gKiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb2RlIHNpbXBseSBkZWNsYXJlcyB0aGF0IHRoZSBjdXJyZW50IHNjb3BlIGlzIGR5bmFtaWMgYnV0IGlmIHlvdSB1c2UgaXRcbiAqIGluc2lkZSB1bnN0YWJsZV9jYWNoZSBpdCBjYW4gc3RpbGwgYmUgY2FjaGVkLiBUaGlzIHR5cGUgb2YgaW5kaWNhdGlvbiBjYW4gYmUgcmVtb3ZlZCBpZiB3ZSBldmVyXG4gKiBtYWtlIHRoZSBkZWZhdWx0IGR5bmFtaWMgdG8gYmVnaW4gd2l0aCBiZWNhdXNlIHRoZSBvbmx5IHdheSB5b3Ugd291bGQgZXZlciBiZSBzdGF0aWMgaXMgaW5zaWRlXG4gKiBhIGNhY2hlIHNjb3BlIHdoaWNoIHRoaXMgaW5kaWNhdGlvbiBkb2VzIG5vdCBhZmZlY3QuXG4gKlxuICogVGhlIHNlY29uZCBpcyBhbiBpbmRpY2F0aW9uIHRoYXQgYSBkeW5hbWljIGRhdGEgc291cmNlIHdhcyByZWFkLiBUaGlzIGlzIGEgc3Ryb25nZXIgZm9ybSBvZiBkeW5hbWljXG4gKiBiZWNhdXNlIGl0IG1lYW5zIHRoYXQgaXQgaXMgaW5hcHByb3ByaWF0ZSB0byBjYWNoZSB0aGlzIGF0IGFsbC4gdXNpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlIGluc2lkZVxuICogdW5zdGFibGVfY2FjaGUgc2hvdWxkIGVycm9yLiBJZiB5b3Ugd2FudCB0byB1c2Ugc29tZSBkeW5hbWljIGRhdGEgaW5zaWRlIHVuc3RhYmxlX2NhY2hlIHlvdSBzaG91bGRcbiAqIHJlYWQgdGhhdCBkYXRhIG91dHNpZGUgdGhlIGNhY2hlIGFuZCBwYXNzIGl0IGluIGFzIGFuIGFyZ3VtZW50IHRvIHRoZSBjYWNoZWQgZnVuY3Rpb24uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBXb3JrU3RvcmUgfSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB0eXBlIHtcbiAgV29ya1VuaXRTdG9yZSxcbiAgUmVxdWVzdFN0b3JlLFxuICBQcmVyZW5kZXJTdG9yZUxlZ2FjeSxcbiAgUHJlcmVuZGVyU3RvcmVNb2Rlcm4sXG59IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbi8vIE9uY2UgcG9zdHBvbmUgaXMgaW4gc3RhYmxlIHdlIHNob3VsZCBzd2l0Y2ggdG8gaW1wb3J0aW5nIHRoZSBwb3N0cG9uZSBleHBvcnQgZGlyZWN0bHlcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgRHluYW1pY1NlcnZlckVycm9yIH0gZnJvbSAnLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQnXG5pbXBvcnQgeyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IgfSBmcm9tICcuLi8uLi9jbGllbnQvY29tcG9uZW50cy9zdGF0aWMtZ2VuZXJhdGlvbi1iYWlsb3V0J1xuaW1wb3J0IHsgd29ya1VuaXRBc3luY1N0b3JhZ2UgfSBmcm9tICcuL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgd29ya0FzeW5jU3RvcmFnZSB9IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgbWFrZUhhbmdpbmdQcm9taXNlIH0gZnJvbSAnLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHMnXG5pbXBvcnQge1xuICBNRVRBREFUQV9CT1VOREFSWV9OQU1FLFxuICBWSUVXUE9SVF9CT1VOREFSWV9OQU1FLFxuICBPVVRMRVRfQk9VTkRBUllfTkFNRSxcbn0gZnJvbSAnLi4vLi4vbGliL21ldGFkYXRhL21ldGFkYXRhLWNvbnN0YW50cydcbmltcG9ydCB7IHNjaGVkdWxlT25OZXh0VGljayB9IGZyb20gJy4uLy4uL2xpYi9zY2hlZHVsZXInXG5cbmNvbnN0IGhhc1Bvc3Rwb25lID0gdHlwZW9mIFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lID09PSAnZnVuY3Rpb24nXG5cbmV4cG9ydCB0eXBlIER5bmFtaWNBY2Nlc3MgPSB7XG4gIC8qKlxuICAgKiBJZiBkZWJ1Z2dpbmcsIHRoaXMgd2lsbCBjb250YWluIHRoZSBzdGFjayB0cmFjZSBvZiB3aGVyZSB0aGUgZHluYW1pYyBhY2Nlc3NcbiAgICogb2NjdXJyZWQuIFRoaXMgaXMgdXNlZCB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIgYWJvdXQgd2h5XG4gICAqIHRoZWlyIHBhZ2UgaXMgYmVpbmcgcmVuZGVyZWQgZHluYW1pY2FsbHkuXG4gICAqL1xuICBzdGFjaz86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgZXhwcmVzc2lvbiB0aGF0IHdhcyBhY2Nlc3NlZCBkeW5hbWljYWxseS5cbiAgICovXG4gIGV4cHJlc3Npb246IHN0cmluZ1xufVxuXG4vLyBTdG9yZXMgZHluYW1pYyByZWFzb25zIHVzZWQgZHVyaW5nIGFuIFJTQyByZW5kZXIuXG5leHBvcnQgdHlwZSBEeW5hbWljVHJhY2tpbmdTdGF0ZSA9IHtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgc3RhY2sgaW5mb3JtYXRpb24gd2lsbCBhbHNvIGJlIHRyYWNrZWQgZHVyaW5nIGR5bmFtaWMgYWNjZXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlczogYm9vbGVhbiB8IHVuZGVmaW5lZFxuXG4gIC8qKlxuICAgKiBUaGUgZHluYW1pYyBhY2Nlc3NlcyB0aGF0IG9jY3VycmVkIGR1cmluZyB0aGUgcmVuZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1pY0FjY2Vzc2VzOiBBcnJheTxEeW5hbWljQWNjZXNzPlxuXG4gIHN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2s6IG51bGwgfCBFcnJvclxufVxuXG4vLyBTdG9yZXMgZHluYW1pYyByZWFzb25zIHVzZWQgZHVyaW5nIGFuIFNTUiByZW5kZXIuXG5leHBvcnQgdHlwZSBEeW5hbWljVmFsaWRhdGlvblN0YXRlID0ge1xuICBoYXNTdXNwZW5zZUFib3ZlQm9keTogYm9vbGVhblxuICBoYXNEeW5hbWljTWV0YWRhdGE6IGJvb2xlYW5cbiAgaGFzRHluYW1pY1ZpZXdwb3J0OiBib29sZWFuXG4gIGhhc0FsbG93ZWREeW5hbWljOiBib29sZWFuXG4gIGR5bmFtaWNFcnJvcnM6IEFycmF5PEVycm9yPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHluYW1pY1RyYWNraW5nU3RhdGUoXG4gIGlzRGVidWdEeW5hbWljQWNjZXNzZXM6IGJvb2xlYW4gfCB1bmRlZmluZWRcbik6IER5bmFtaWNUcmFja2luZ1N0YXRlIHtcbiAgcmV0dXJuIHtcbiAgICBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzLFxuICAgIGR5bmFtaWNBY2Nlc3NlczogW10sXG4gICAgc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjazogbnVsbCxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSgpOiBEeW5hbWljVmFsaWRhdGlvblN0YXRlIHtcbiAgcmV0dXJuIHtcbiAgICBoYXNTdXNwZW5zZUFib3ZlQm9keTogZmFsc2UsXG4gICAgaGFzRHluYW1pY01ldGFkYXRhOiBmYWxzZSxcbiAgICBoYXNEeW5hbWljVmlld3BvcnQ6IGZhbHNlLFxuICAgIGhhc0FsbG93ZWREeW5hbWljOiBmYWxzZSxcbiAgICBkeW5hbWljRXJyb3JzOiBbXSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rmlyc3REeW5hbWljUmVhc29uKFxuICB0cmFja2luZ1N0YXRlOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKTogdW5kZWZpbmVkIHwgc3RyaW5nIHtcbiAgcmV0dXJuIHRyYWNraW5nU3RhdGUuZHluYW1pY0FjY2Vzc2VzWzBdPy5leHByZXNzaW9uXG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBjb21tdW5pY2F0ZXMgdGhhdCB0aGUgY3VycmVudCBzY29wZSBzaG91bGQgYmUgdHJlYXRlZCBhcyBkeW5hbWljLlxuICpcbiAqIEluIG1vc3QgY2FzZXMgdGhpcyBmdW5jdGlvbiBpcyBhIG5vLW9wIGJ1dCBpZiBjYWxsZWQgZHVyaW5nXG4gKiBhIFBQUiBwcmVyZW5kZXIgaXQgd2lsbCBwb3N0cG9uZSB0aGUgY3VycmVudCBzdWItdHJlZSBhbmQgY2FsbGluZ1xuICogaXQgZHVyaW5nIGEgbm9ybWFsIHByZXJlbmRlciB3aWxsIGNhdXNlIHRoZSBlbnRpcmUgcHJlcmVuZGVyIHRvIGFib3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXJrQ3VycmVudFNjb3BlQXNEeW5hbWljKFxuICBzdG9yZTogV29ya1N0b3JlLFxuICB3b3JrVW5pdFN0b3JlOiB1bmRlZmluZWQgfCBFeGNsdWRlPFdvcmtVbml0U3RvcmUsIFByZXJlbmRlclN0b3JlTW9kZXJuPixcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiB2b2lkIHtcbiAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICBpZiAoXG4gICAgICB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdjYWNoZScgfHxcbiAgICAgIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3Vuc3RhYmxlLWNhY2hlJ1xuICAgICkge1xuICAgICAgLy8gaW5zaWRlIGNhY2hlIHNjb3BlcyBtYXJraW5nIGEgc2NvcGUgYXMgZHluYW1pYyBoYXMgbm8gZWZmZWN0IGJlY2F1c2UgdGhlIG91dGVyIGNhY2hlIHNjb3BlXG4gICAgICAvLyBjcmVhdGVzIGEgY2FjaGUgYm91bmRhcnkuIFRoaXMgaXMgc3VidGx5IGRpZmZlcmVudCBmcm9tIHJlYWRpbmcgYSBkeW5hbWljIGRhdGEgc291cmNlIHdoaWNoIGlzXG4gICAgICAvLyBmb3JiaWRkZW4gaW5zaWRlIGEgY2FjaGUgc2NvcGUuXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cblxuICAvLyBJZiB3ZSdyZSBmb3JjaW5nIGR5bmFtaWMgcmVuZGVyaW5nIG9yIHdlJ3JlIGZvcmNpbmcgc3RhdGljIHJlbmRlcmluZywgd2VcbiAgLy8gZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBoZXJlIGJlY2F1c2UgdGhlIGVudGlyZSBwYWdlIGlzIGFscmVhZHkgZHluYW1pY1xuICAvLyBvciBpdCdzIHN0YXRpYyBhbmQgaXQgc2hvdWxkIG5vdCB0aHJvdyBvciBwb3N0cG9uZSBoZXJlLlxuICBpZiAoc3RvcmUuZm9yY2VEeW5hbWljIHx8IHN0b3JlLmZvcmNlU3RhdGljKSByZXR1cm5cblxuICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICAgIGBSb3V0ZSAke3N0b3JlLnJvdXRlfSB3aXRoIFxcYGR5bmFtaWMgPSBcImVycm9yXCJcXGAgY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgJHtleHByZXNzaW9ufVxcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYFxuICAgIClcbiAgfVxuXG4gIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgICAgICAgc3RvcmUucm91dGUsXG4gICAgICAgIGV4cHJlc3Npb24sXG4gICAgICAgIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICApXG4gICAgfSBlbHNlIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItbGVnYWN5Jykge1xuICAgICAgd29ya1VuaXRTdG9yZS5yZXZhbGlkYXRlID0gMFxuXG4gICAgICAvLyBXZSBhcmVuJ3QgcHJlcmVuZGVyaW5nIGJ1dCB3ZSBhcmUgZ2VuZXJhdGluZyBhIHN0YXRpYyBwYWdlLiBXZSBuZWVkIHRvIGJhaWwgb3V0IG9mIHN0YXRpYyBnZW5lcmF0aW9uXG4gICAgICBjb25zdCBlcnIgPSBuZXcgRHluYW1pY1NlcnZlckVycm9yKFxuICAgICAgICBgUm91dGUgJHtzdG9yZS5yb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9keW5hbWljLXNlcnZlci1lcnJvcmBcbiAgICAgIClcbiAgICAgIHN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZXhwcmVzc2lvblxuICAgICAgc3RvcmUuZHluYW1pY1VzYWdlU3RhY2sgPSBlcnIuc3RhY2tcblxuICAgICAgdGhyb3cgZXJyXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmXG4gICAgICB3b3JrVW5pdFN0b3JlICYmXG4gICAgICB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdyZXF1ZXN0J1xuICAgICkge1xuICAgICAgd29ya1VuaXRTdG9yZS51c2VkRHluYW1pYyA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGNvbW11bmljYXRlcyB0aGF0IHNvbWUgZHluYW1pYyBwYXRoIHBhcmFtZXRlciB3YXMgcmVhZC4gVGhpc1xuICogZGlmZmVycyBmcm9tIHRoZSBtb3JlIGdlbmVyYWwgYHRyYWNrRHluYW1pY0RhdGFBY2Nlc3NlZGAgaW4gdGhhdCBpdCBpcyB3aWxsXG4gKiBub3QgZXJyb3Igd2hlbiBgZHluYW1pYyA9IFwiZXJyb3JcImAgaXMgc2V0LlxuICpcbiAqIEBwYXJhbSBzdG9yZSBUaGUgc3RhdGljIGdlbmVyYXRpb24gc3RvcmVcbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBleHByZXNzaW9uIHRoYXQgd2FzIGFjY2Vzc2VkIGR5bmFtaWNhbGx5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFja0ZhbGxiYWNrUGFyYW1BY2Nlc3NlZChcbiAgc3RvcmU6IFdvcmtTdG9yZSxcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiB2b2lkIHtcbiAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGlmICghcHJlcmVuZGVyU3RvcmUgfHwgcHJlcmVuZGVyU3RvcmUudHlwZSAhPT0gJ3ByZXJlbmRlci1wcHInKSByZXR1cm5cblxuICBwb3N0cG9uZVdpdGhUcmFja2luZyhzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nKVxufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbWVhbnQgdG8gYmUgdXNlZCB3aGVuIHByZXJlbmRlcmluZyB3aXRob3V0IGR5bmFtaWNJTyBvciBQUFIuXG4gKiBXaGVuIGNhbGxlZCBkdXJpbmcgYSBidWlsZCBpdCB3aWxsIGNhdXNlIE5leHQuanMgdG8gY29uc2lkZXIgdGhlIHJvdXRlIGFzIGR5bmFtaWMuXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbihcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBzdG9yZTogV29ya1N0b3JlLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVMZWdhY3lcbik6IG5ldmVyIHtcbiAgLy8gV2UgYXJlbid0IHByZXJlbmRlcmluZyBidXQgd2UgYXJlIGdlbmVyYXRpbmcgYSBzdGF0aWMgcGFnZS4gV2UgbmVlZCB0byBiYWlsIG91dCBvZiBzdGF0aWMgZ2VuZXJhdGlvblxuICBjb25zdCBlcnIgPSBuZXcgRHluYW1pY1NlcnZlckVycm9yKFxuICAgIGBSb3V0ZSAke3N0b3JlLnJvdXRlfSBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCBcXGAke2V4cHJlc3Npb259XFxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2R5bmFtaWMtc2VydmVyLWVycm9yYFxuICApXG5cbiAgcHJlcmVuZGVyU3RvcmUucmV2YWxpZGF0ZSA9IDBcblxuICBzdG9yZS5keW5hbWljVXNhZ2VEZXNjcmlwdGlvbiA9IGV4cHJlc3Npb25cbiAgc3RvcmUuZHluYW1pY1VzYWdlU3RhY2sgPSBlcnIuc3RhY2tcblxuICB0aHJvdyBlcnJcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIHRvIHRyYWNrIHdoZXRoZXIgc29tZXRoaW5nIGR5bmFtaWMgaGFwcGVuZWQgZXZlbiB3aGVuXG4gKiB3ZSBhcmUgaW4gYSBkeW5hbWljIHJlbmRlci4gVGhpcyBpcyB1c2VmdWwgZm9yIERldiB3aGVyZSBhbGwgcmVuZGVycyBhcmUgZHluYW1pYyBidXRcbiAqIHdlIHN0aWxsIHRyYWNrIHdoZXRoZXIgZHluYW1pYyBBUElzIHdlcmUgYWNjZXNzZWQgZm9yIGhlbHBmdWwgbWVzc2FnaW5nXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyKFxuICBfc3RvcmU6IFdvcmtTdG9yZSxcbiAgd29ya1VuaXRTdG9yZTogdm9pZCB8IFdvcmtVbml0U3RvcmVcbikge1xuICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgIGlmIChcbiAgICAgIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ2NhY2hlJyB8fFxuICAgICAgd29ya1VuaXRTdG9yZS50eXBlID09PSAndW5zdGFibGUtY2FjaGUnXG4gICAgKSB7XG4gICAgICAvLyBpbnNpZGUgY2FjaGUgc2NvcGVzIG1hcmtpbmcgYSBzY29wZSBhcyBkeW5hbWljIGhhcyBubyBlZmZlY3QgYmVjYXVzZSB0aGUgb3V0ZXIgY2FjaGUgc2NvcGVcbiAgICAgIC8vIGNyZWF0ZXMgYSBjYWNoZSBib3VuZGFyeS4gVGhpcyBpcyBzdWJ0bHkgZGlmZmVyZW50IGZyb20gcmVhZGluZyBhIGR5bmFtaWMgZGF0YSBzb3VyY2Ugd2hpY2ggaXNcbiAgICAgIC8vIGZvcmJpZGRlbiBpbnNpZGUgYSBjYWNoZSBzY29wZS5cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICAvLyBUT0RPOiBpdCBtYWtlcyBubyBzZW5zZSB0byBoYXZlIHRoZXNlIHdvcmsgdW5pdCBzdG9yZSB0eXBlcyBkdXJpbmcgYSBkZXYgcmVuZGVyLlxuICAgIGlmIChcbiAgICAgIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlcicgfHxcbiAgICAgIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1jbGllbnQnIHx8XG4gICAgICB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItbGVnYWN5J1xuICAgICkge1xuICAgICAgd29ya1VuaXRTdG9yZS5yZXZhbGlkYXRlID0gMFxuICAgIH1cbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJlxuICAgICAgd29ya1VuaXRTdG9yZS50eXBlID09PSAncmVxdWVzdCdcbiAgICApIHtcbiAgICAgIHdvcmtVbml0U3RvcmUudXNlZER5bmFtaWMgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4gIHByZXJlbmRlclN0b3JlOiBQcmVyZW5kZXJTdG9yZU1vZGVyblxuKTogdm9pZCB7XG4gIGNvbnN0IHJlYXNvbiA9IGBSb3V0ZSAke3JvdXRlfSBuZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS5gXG5cbiAgY29uc3QgZXJyb3IgPSBjcmVhdGVQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yKHJlYXNvbilcblxuICBwcmVyZW5kZXJTdG9yZS5jb250cm9sbGVyLmFib3J0KGVycm9yKVxuXG4gIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgZHluYW1pY1RyYWNraW5nLmR5bmFtaWNBY2Nlc3Nlcy5wdXNoKHtcbiAgICAgIC8vIFdoZW4gd2UgYXJlbid0IGRlYnVnZ2luZywgd2UgZG9uJ3QgbmVlZCB0byBjcmVhdGUgYW5vdGhlciBlcnJvciBmb3IgdGhlXG4gICAgICAvLyBzdGFjayB0cmFjZS5cbiAgICAgIHN0YWNrOiBkeW5hbWljVHJhY2tpbmcuaXNEZWJ1Z0R5bmFtaWNBY2Nlc3Nlc1xuICAgICAgICA/IG5ldyBFcnJvcigpLnN0YWNrXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZXhwcmVzc2lvbixcbiAgICB9KVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhYm9ydE9uU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4gIGVycm9yV2l0aFN0YWNrOiBFcnJvcixcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlTW9kZXJuXG4pOiB2b2lkIHtcbiAgY29uc3QgZHluYW1pY1RyYWNraW5nID0gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gIGFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSlcbiAgLy8gSXQgaXMgaW1wb3J0YW50IHRoYXQgd2Ugc2V0IHRoaXMgdHJhY2tpbmcgdmFsdWUgYWZ0ZXIgYWJvcnRpbmcuIEFib3J0cyBhcmUgZXhlY3V0ZWRcbiAgLy8gc3luY2hyb25vdXNseSBleGNlcHQgZm9yIHRoZSBjYXNlIHdoZXJlIHlvdSBhYm9ydCBkdXJpbmcgcmVuZGVyIGl0c2VsZi4gQnkgc2V0dGluZyB0aGlzXG4gIC8vIHZhbHVlIGxhdGUgd2UgY2FuIHVzZSBpdCB0byBkZXRlcm1pbmUgaWYgYW55IG9mIHRoZSBhYm9ydGVkIHRhc2tzIGFyZSB0aGUgdGFzayB0aGF0XG4gIC8vIGNhbGxlZCB0aGUgc3luYyBJTyBleHByZXNzaW9uIGluIHRoZSBmaXJzdCBwbGFjZS5cbiAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgIGlmIChkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9PT0gbnVsbCkge1xuICAgICAgZHluYW1pY1RyYWNraW5nLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2sgPSBlcnJvcldpdGhTdGFja1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldihcbiAgcmVxdWVzdFN0b3JlOiBSZXF1ZXN0U3RvcmVcbik6IHZvaWQge1xuICAvLyBXZSBkb24ndCBhY3R1YWxseSBoYXZlIGEgY29udHJvbGxlciB0byBhYm9ydCBidXQgd2UgZG8gdGhlIHNlbWFudGljIGVxdWl2YWxlbnQgYnlcbiAgLy8gYWR2YW5jaW5nIHRoZSByZXF1ZXN0IHN0b3JlIG91dCBvZiBwcmVyZW5kZXIgbW9kZVxuICByZXF1ZXN0U3RvcmUucHJlcmVuZGVyUGhhc2UgPSBmYWxzZVxufVxuXG4vKipcbiAqIHVzZSB0aGlzIGZ1bmN0aW9uIHdoZW4gcHJlcmVuZGVyaW5nIHdpdGggZHluYW1pY0lPLiBJZiB3ZSBhcmUgZG9pbmcgYVxuICogcHJvc3BlY3RpdmUgcHJlcmVuZGVyIHdlIGRvbid0IGFjdHVhbGx5IGFib3J0IGJlY2F1c2Ugd2Ugd2FudCB0byBkaXNjb3ZlclxuICogYWxsIGNhY2hlcyBmb3IgdGhlIHNoZWxsLiBJZiB0aGlzIGlzIHRoZSBhY3R1YWwgcHJlcmVuZGVyIHdlIGRvIGFib3J0LlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gYWNjZXB0cyBhIHByZXJlbmRlclN0b3JlIGJ1dCB0aGUgY2FsbGVyIHNob3VsZCBlbnN1cmUgd2UncmVcbiAqIGFjdHVhbGx5IHJ1bm5pbmcgaW4gZHluYW1pY0lPIG1vZGUuXG4gKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhYm9ydEFuZFRocm93T25TeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmcsXG4gIGVycm9yV2l0aFN0YWNrOiBFcnJvcixcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlTW9kZXJuXG4pOiBuZXZlciB7XG4gIGNvbnN0IHByZXJlbmRlclNpZ25hbCA9IHByZXJlbmRlclN0b3JlLmNvbnRyb2xsZXIuc2lnbmFsXG4gIGlmIChwcmVyZW5kZXJTaWduYWwuYWJvcnRlZCA9PT0gZmFsc2UpIHtcbiAgICAvLyBUT0RPIGl0IHdvdWxkIGJlIGJldHRlciB0byBtb3ZlIHRoaXMgYWJvcnRlZCBjaGVjayBpbnRvIHRoZSBjYWxsc2l0ZSBzbyB3ZSBjYW4gYXZvaWQgbWFraW5nXG4gICAgLy8gdGhlIGVycm9yIG9iamVjdCB3aGVuIGl0IGlzbid0IHJlbGV2YW50IHRvIHRoZSBhYm9ydGluZyBvZiB0aGUgcHJlcmVuZGVyIGhvd2V2ZXJcbiAgICAvLyBzaW5jZSB3ZSBuZWVkIHRoZSB0aHJvdyBzZW1hbnRpY3MgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHdlIGFib3J0IGl0IGlzIGVhc2llciB0byBsYW5kXG4gICAgLy8gdGhpcyB3YXkuIFNlZSBob3cgdGhpcyB3YXMgaGFuZGxlZCB3aXRoIGBhYm9ydE9uU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzYCBmb3IgYSBjbG9zZXJcbiAgICAvLyB0byBpZGVhbCBpbXBsZW1lbnRhdGlvblxuICAgIGFib3J0T25TeW5jaHJvbm91c0R5bmFtaWNEYXRhQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSlcbiAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdGhhdCB3ZSBzZXQgdGhpcyB0cmFja2luZyB2YWx1ZSBhZnRlciBhYm9ydGluZy4gQWJvcnRzIGFyZSBleGVjdXRlZFxuICAgIC8vIHN5bmNocm9ub3VzbHkgZXhjZXB0IGZvciB0aGUgY2FzZSB3aGVyZSB5b3UgYWJvcnQgZHVyaW5nIHJlbmRlciBpdHNlbGYuIEJ5IHNldHRpbmcgdGhpc1xuICAgIC8vIHZhbHVlIGxhdGUgd2UgY2FuIHVzZSBpdCB0byBkZXRlcm1pbmUgaWYgYW55IG9mIHRoZSBhYm9ydGVkIHRhc2tzIGFyZSB0aGUgdGFzayB0aGF0XG4gICAgLy8gY2FsbGVkIHRoZSBzeW5jIElPIGV4cHJlc3Npb24gaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgIGNvbnN0IGR5bmFtaWNUcmFja2luZyA9IHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICAgIGlmIChkeW5hbWljVHJhY2tpbmcpIHtcbiAgICAgIGlmIChkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9PT0gbnVsbCkge1xuICAgICAgICBkeW5hbWljVHJhY2tpbmcuc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayA9IGVycm9yV2l0aFN0YWNrXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHRocm93IGNyZWF0ZVByZXJlbmRlckludGVycnVwdGVkRXJyb3IoXG4gICAgYFJvdXRlICR7cm91dGV9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LmBcbiAgKVxufVxuXG4vLyBGb3Igbm93IHRoZXNlIGltcGxlbWVudGF0aW9ucyBhcmUgdGhlIHNhbWUgc28gd2UganVzdCByZWV4cG9ydFxuZXhwb3J0IGNvbnN0IHRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2ID1cbiAgdHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldlxuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHdpbGwgY2FsbCBgUmVhY3QucG9zdHBvbmVgIHRoYXQgdGhyb3dzIHRoZSBwb3N0cG9uZWQgZXJyb3IuXG4gKi9cbnR5cGUgUG9zdHBvbmVQcm9wcyA9IHtcbiAgcmVhc29uOiBzdHJpbmdcbiAgcm91dGU6IHN0cmluZ1xufVxuZXhwb3J0IGZ1bmN0aW9uIFBvc3Rwb25lKHsgcmVhc29uLCByb3V0ZSB9OiBQb3N0cG9uZVByb3BzKTogbmV2ZXIge1xuICBjb25zdCBwcmVyZW5kZXJTdG9yZSA9IHdvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKClcbiAgY29uc3QgZHluYW1pY1RyYWNraW5nID1cbiAgICBwcmVyZW5kZXJTdG9yZSAmJiBwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcidcbiAgICAgID8gcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICA6IG51bGxcbiAgcG9zdHBvbmVXaXRoVHJhY2tpbmcocm91dGUsIHJlYXNvbiwgZHluYW1pY1RyYWNraW5nKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9zdHBvbmVXaXRoVHJhY2tpbmcoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGV4cHJlc3Npb246IHN0cmluZyxcbiAgZHluYW1pY1RyYWNraW5nOiBudWxsIHwgRHluYW1pY1RyYWNraW5nU3RhdGVcbik6IG5ldmVyIHtcbiAgYXNzZXJ0UG9zdHBvbmUoKVxuICBpZiAoZHluYW1pY1RyYWNraW5nKSB7XG4gICAgZHluYW1pY1RyYWNraW5nLmR5bmFtaWNBY2Nlc3Nlcy5wdXNoKHtcbiAgICAgIC8vIFdoZW4gd2UgYXJlbid0IGRlYnVnZ2luZywgd2UgZG9uJ3QgbmVlZCB0byBjcmVhdGUgYW5vdGhlciBlcnJvciBmb3IgdGhlXG4gICAgICAvLyBzdGFjayB0cmFjZS5cbiAgICAgIHN0YWNrOiBkeW5hbWljVHJhY2tpbmcuaXNEZWJ1Z0R5bmFtaWNBY2Nlc3Nlc1xuICAgICAgICA/IG5ldyBFcnJvcigpLnN0YWNrXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZXhwcmVzc2lvbixcbiAgICB9KVxuICB9XG5cbiAgUmVhY3QudW5zdGFibGVfcG9zdHBvbmUoY3JlYXRlUG9zdHBvbmVSZWFzb24ocm91dGUsIGV4cHJlc3Npb24pKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQb3N0cG9uZVJlYXNvbihyb3V0ZTogc3RyaW5nLCBleHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIChcbiAgICBgUm91dGUgJHtyb3V0ZX0gbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkICR7ZXhwcmVzc2lvbn0uIGAgK1xuICAgIGBSZWFjdCB0aHJvd3MgdGhpcyBzcGVjaWFsIG9iamVjdCB0byBpbmRpY2F0ZSB3aGVyZS4gSXQgc2hvdWxkIG5vdCBiZSBjYXVnaHQgYnkgYCArXG4gICAgYHlvdXIgb3duIHRyeS9jYXRjaC4gTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcHByLWNhdWdodC1lcnJvcmBcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEeW5hbWljUG9zdHBvbmUoZXJyOiB1bmtub3duKSB7XG4gIGlmIChcbiAgICB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJlxuICAgIGVyciAhPT0gbnVsbCAmJlxuICAgIHR5cGVvZiAoZXJyIGFzIGFueSkubWVzc2FnZSA9PT0gJ3N0cmluZydcbiAgKSB7XG4gICAgcmV0dXJuIGlzRHluYW1pY1Bvc3Rwb25lUmVhc29uKChlcnIgYXMgYW55KS5tZXNzYWdlKVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBpc0R5bmFtaWNQb3N0cG9uZVJlYXNvbihyZWFzb246IHN0cmluZykge1xuICByZXR1cm4gKFxuICAgIHJlYXNvbi5pbmNsdWRlcyhcbiAgICAgICduZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQnXG4gICAgKSAmJlxuICAgIHJlYXNvbi5pbmNsdWRlcyhcbiAgICAgICdMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wcHItY2F1Z2h0LWVycm9yJ1xuICAgIClcbiAgKVxufVxuXG5pZiAoaXNEeW5hbWljUG9zdHBvbmVSZWFzb24oY3JlYXRlUG9zdHBvbmVSZWFzb24oJyUlJScsICdeXl4nKSkgPT09IGZhbHNlKSB7XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICAnSW52YXJpYW50OiBpc0R5bmFtaWNQb3N0cG9uZSBtaXNpZGVudGlmaWVkIGEgcG9zdHBvbmUgcmVhc29uLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMnXG4gIClcbn1cblxuY29uc3QgTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQgPSAnTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQnXG5cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlckludGVycnVwdGVkRXJyb3IobWVzc2FnZTogc3RyaW5nKTogRXJyb3Ige1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKVxuICA7KGVycm9yIGFzIGFueSkuZGlnZXN0ID0gTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURURcbiAgcmV0dXJuIGVycm9yXG59XG5cbnR5cGUgRGlnZXN0RXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBzdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvcihcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIERpZ2VzdEVycm9yIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmXG4gICAgZXJyb3IgIT09IG51bGwgJiZcbiAgICAoZXJyb3IgYXMgYW55KS5kaWdlc3QgPT09IE5FWFRfUFJFUkVOREVSX0lOVEVSUlVQVEVEICYmXG4gICAgJ25hbWUnIGluIGVycm9yICYmXG4gICAgJ21lc3NhZ2UnIGluIGVycm9yICYmXG4gICAgZXJyb3IgaW5zdGFuY2VvZiBFcnJvclxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY2Nlc3NlZER5bmFtaWNEYXRhKFxuICBkeW5hbWljQWNjZXNzZXM6IEFycmF5PER5bmFtaWNBY2Nlc3M+XG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIGR5bmFtaWNBY2Nlc3Nlcy5sZW5ndGggPiAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdW1lRHluYW1pY0FjY2VzcyhcbiAgc2VydmVyRHluYW1pYzogRHluYW1pY1RyYWNraW5nU3RhdGUsXG4gIGNsaWVudER5bmFtaWM6IER5bmFtaWNUcmFja2luZ1N0YXRlXG4pOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVsnZHluYW1pY0FjY2Vzc2VzJ10ge1xuICAvLyBXZSBtdXRhdGUgYmVjYXVzZSB3ZSBvbmx5IGNhbGwgdGhpcyBvbmNlIHdlIGFyZSBubyBsb25nZXIgd3JpdGluZ1xuICAvLyB0byB0aGUgZHluYW1pY1RyYWNraW5nU3RhdGUgYW5kIGl0J3MgbW9yZSBlZmZpY2llbnQgdGhhbiBjcmVhdGluZyBhIG5ld1xuICAvLyBhcnJheS5cbiAgc2VydmVyRHluYW1pYy5keW5hbWljQWNjZXNzZXMucHVzaCguLi5jbGllbnREeW5hbWljLmR5bmFtaWNBY2Nlc3NlcylcbiAgcmV0dXJuIHNlcnZlckR5bmFtaWMuZHluYW1pY0FjY2Vzc2VzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREeW5hbWljQVBJQWNjZXNzZXMoXG4gIGR5bmFtaWNBY2Nlc3NlczogQXJyYXk8RHluYW1pY0FjY2Vzcz5cbik6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGR5bmFtaWNBY2Nlc3Nlc1xuICAgIC5maWx0ZXIoXG4gICAgICAoYWNjZXNzKTogYWNjZXNzIGlzIFJlcXVpcmVkPER5bmFtaWNBY2Nlc3M+ID0+XG4gICAgICAgIHR5cGVvZiBhY2Nlc3Muc3RhY2sgPT09ICdzdHJpbmcnICYmIGFjY2Vzcy5zdGFjay5sZW5ndGggPiAwXG4gICAgKVxuICAgIC5tYXAoKHsgZXhwcmVzc2lvbiwgc3RhY2sgfSkgPT4ge1xuICAgICAgc3RhY2sgPSBzdGFja1xuICAgICAgICAuc3BsaXQoJ1xcbicpXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgXCJFcnJvcjogXCIgcHJlZml4IGZyb20gdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHN0YWNrIHRyYWNlIGFzXG4gICAgICAgIC8vIHdlbGwgYXMgdGhlIGZpcnN0IDQgbGluZXMgb2YgdGhlIHN0YWNrIHRyYWNlIHdoaWNoIGlzIHRoZSBkaXN0YW5jZVxuICAgICAgICAvLyBmcm9tIHRoZSB1c2VyIGNvZGUgYW5kIHRoZSBgbmV3IEVycm9yKCkuc3RhY2tgIGNhbGwuXG4gICAgICAgIC5zbGljZSg0KVxuICAgICAgICAuZmlsdGVyKChsaW5lKSA9PiB7XG4gICAgICAgICAgLy8gRXhjbHVkZSBOZXh0LmpzIGludGVybmFscyBmcm9tIHRoZSBzdGFjayB0cmFjZS5cbiAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnbm9kZV9tb2R1bGVzL25leHQvJykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEV4Y2x1ZGUgYW5vbnltb3VzIGZ1bmN0aW9ucyBmcm9tIHRoZSBzdGFjayB0cmFjZS5cbiAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnICg8YW5vbnltb3VzPiknKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRXhjbHVkZSBOb2RlLmpzIGludGVybmFscyBmcm9tIHRoZSBzdGFjayB0cmFjZS5cbiAgICAgICAgICBpZiAobGluZS5pbmNsdWRlcygnIChub2RlOicpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9KVxuICAgICAgICAuam9pbignXFxuJylcbiAgICAgIHJldHVybiBgRHluYW1pYyBBUEkgVXNhZ2UgRGVidWcgLSAke2V4cHJlc3Npb259OlxcbiR7c3RhY2t9YFxuICAgIH0pXG59XG5cbmZ1bmN0aW9uIGFzc2VydFBvc3Rwb25lKCkge1xuICBpZiAoIWhhc1Bvc3Rwb25lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFyaWFudDogUmVhY3QudW5zdGFibGVfcG9zdHBvbmUgaXMgbm90IGRlZmluZWQuIFRoaXMgc3VnZ2VzdHMgdGhlIHdyb25nIHZlcnNpb24gb2YgUmVhY3Qgd2FzIGxvYWRlZC4gVGhpcyBpcyBhIGJ1ZyBpbiBOZXh0LmpzYFxuICAgIClcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrIHRvIGFsbG93IHVzIHRvIGFib3J0IGEgcmVuZGVyIHVzaW5nIGEgUG9zdHBvbmUgaW5zdGFuY2UgaW5zdGVhZCBvZiBhbiBFcnJvciB3aGljaCBjaGFuZ2VzIFJlYWN0J3NcbiAqIGFib3J0IHNlbWFudGljcyBzbGlnaHRseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBvc3Rwb25lZEFib3J0U2lnbmFsKHJlYXNvbjogc3RyaW5nKTogQWJvcnRTaWduYWwge1xuICBhc3NlcnRQb3N0cG9uZSgpXG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcbiAgLy8gV2UgZ2V0IG91ciBoYW5kcyBvbiBhIHBvc3Rwb25lIGluc3RhbmNlIGJ5IGNhbGxpbmcgcG9zdHBvbmUgYW5kIGNhdGNoaW5nIHRoZSB0aHJvd1xuICB0cnkge1xuICAgIFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lKHJlYXNvbilcbiAgfSBjYXRjaCAoeDogdW5rbm93bikge1xuICAgIGNvbnRyb2xsZXIuYWJvcnQoeClcbiAgfVxuICByZXR1cm4gY29udHJvbGxlci5zaWduYWxcbn1cblxuLyoqXG4gKiBJbiBhIHByZXJlbmRlciwgd2UgbWF5IGVuZCB1cCB3aXRoIGhhbmdpbmcgUHJvbWlzZXMgYXMgaW5wdXRzIGR1ZSB0aGVtXG4gKiBzdGFsbGluZyBvbiBjb25uZWN0aW9uKCkgb3IgYmVjYXVzZSB0aGV5J3JlIGxvYWRpbmcgZHluYW1pYyBkYXRhLiBJbiB0aGF0XG4gKiBjYXNlIHdlIG5lZWQgdG8gYWJvcnQgdGhlIGVuY29kaW5nIG9mIGFyZ3VtZW50cyBzaW5jZSB0aGV5J2xsIG5ldmVyIGNvbXBsZXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGFuZ2luZ0lucHV0QWJvcnRTaWduYWwoXG4gIHdvcmtVbml0U3RvcmU6IFByZXJlbmRlclN0b3JlTW9kZXJuXG4pOiBBYm9ydFNpZ25hbCB7XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKClcblxuICBpZiAod29ya1VuaXRTdG9yZS5jYWNoZVNpZ25hbCkge1xuICAgIC8vIElmIHdlIGhhdmUgYSBjYWNoZVNpZ25hbCBpdCBtZWFucyB3ZSdyZSBpbiBhIHByb3NwZWN0aXZlIHJlbmRlci4gSWYgdGhlIGlucHV0XG4gICAgLy8gd2UncmUgd2FpdGluZyBvbiBpcyBjb21pbmcgZnJvbSBhbm90aGVyIGNhY2hlLCB3ZSBkbyB3YW50IHRvIHdhaXQgZm9yIGl0IHNvIHRoYXRcbiAgICAvLyB3ZSBjYW4gcmVzb2x2ZSB0aGlzIGNhY2hlIGVudHJ5IHRvby5cbiAgICB3b3JrVW5pdFN0b3JlLmNhY2hlU2lnbmFsLmlucHV0UmVhZHkoKS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnRyb2xsZXIuYWJvcnQoKVxuICAgIH0pXG4gIH0gZWxzZSB7XG4gICAgLy8gT3RoZXJ3aXNlIHdlJ3JlIGluIHRoZSBmaW5hbCByZW5kZXIgYW5kIHdlIHNob3VsZCBhbHJlYWR5IGhhdmUgYWxsIG91ciBjYWNoZXNcbiAgICAvLyBmaWxsZWQuIFdlIG1pZ2h0IHN0aWxsIGJlIHdhaXRpbmcgb24gc29tZSBtaWNyb3Rhc2tzIHNvIHdlIHdhaXQgb25lIHRpY2sgYmVmb3JlXG4gICAgLy8gZ2l2aW5nIHVwLiBXaGVuIHdlIGdpdmUgdXAsIHdlIHN0aWxsIHdhbnQgdG8gcmVuZGVyIHRoZSBjb250ZW50IG9mIHRoaXMgY2FjaGVcbiAgICAvLyBhcyBkZWVwbHkgYXMgd2UgY2FuIHNvIHRoYXQgd2UgY2FuIHN1c3BlbmQgYXMgZGVlcGx5IGFzIHBvc3NpYmxlIGluIHRoZSB0cmVlXG4gICAgLy8gb3Igbm90IGF0IGFsbCBpZiB3ZSBkb24ndCBlbmQgdXAgd2FpdGluZyBmb3IgdGhlIGlucHV0LlxuICAgIHNjaGVkdWxlT25OZXh0VGljaygoKSA9PiBjb250cm9sbGVyLmFib3J0KCkpXG4gIH1cblxuICByZXR1cm4gY29udHJvbGxlci5zaWduYWxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFubm90YXRlRHluYW1pY0FjY2VzcyhcbiAgZXhwcmVzc2lvbjogc3RyaW5nLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVNb2Rlcm5cbikge1xuICBjb25zdCBkeW5hbWljVHJhY2tpbmcgPSBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmdcbiAgaWYgKGR5bmFtaWNUcmFja2luZykge1xuICAgIGR5bmFtaWNUcmFja2luZy5keW5hbWljQWNjZXNzZXMucHVzaCh7XG4gICAgICBzdGFjazogZHluYW1pY1RyYWNraW5nLmlzRGVidWdEeW5hbWljQWNjZXNzZXNcbiAgICAgICAgPyBuZXcgRXJyb3IoKS5zdGFja1xuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGV4cHJlc3Npb24sXG4gICAgfSlcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRHluYW1pY1JvdXRlUGFyYW1zKGV4cHJlc3Npb246IHN0cmluZykge1xuICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKClcblxuICBpZiAoXG4gICAgd29ya1N0b3JlICYmXG4gICAgd29ya1N0b3JlLmlzU3RhdGljR2VuZXJhdGlvbiAmJlxuICAgIHdvcmtTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zICYmXG4gICAgd29ya1N0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXMuc2l6ZSA+IDBcbiAgKSB7XG4gICAgLy8gVGhlcmUgYXJlIGZhbGxiYWNrIHJvdXRlIHBhcmFtcywgd2Ugc2hvdWxkIHRyYWNrIHRoZXNlIGFzIGR5bmFtaWNcbiAgICAvLyBhY2Nlc3Nlcy5cbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgd2l0aCBkeW5hbWljSU8gb3IgUFBSIG9yIGJvdGhcbiAgICAgIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItY2xpZW50Jykge1xuICAgICAgICAvLyBXZSBhcmUgaW4gYSBwcmVyZW5kZXIgd2l0aCBkeW5hbWljSU8gc2VtYW50aWNzXG4gICAgICAgIC8vIFdlIGFyZSBnb2luZyB0byBoYW5nIGhlcmUgYW5kIG5ldmVyIHJlc29sdmUuIFRoaXMgd2lsbCBjYXVzZSB0aGUgY3VycmVudGx5XG4gICAgICAgIC8vIHJlbmRlcmluZyBjb21wb25lbnQgdG8gZWZmZWN0aXZlbHkgYmUgYSBkeW5hbWljIGhvbGVcbiAgICAgICAgUmVhY3QudXNlKG1ha2VIYW5naW5nUHJvbWlzZSh3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCwgZXhwcmVzc2lvbikpXG4gICAgICB9IGVsc2UgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgIC8vIFdlJ3JlIHByZXJlbmRlcmluZyB3aXRoIFBQUlxuICAgICAgICBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgICAgICAgICB3b3JrU3RvcmUucm91dGUsXG4gICAgICAgICAgZXhwcmVzc2lvbixcbiAgICAgICAgICB3b3JrVW5pdFN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICAgICAgICApXG4gICAgICB9IGVsc2UgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1sZWdhY3knKSB7XG4gICAgICAgIHRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuY29uc3QgaGFzU3VzcGVuc2VSZWdleCA9IC9cXG5cXHMrYXQgU3VzcGVuc2UgXFwoPGFub255bW91cz5cXCkvXG5jb25zdCBoYXNTdXNwZW5zZUFmdGVyQm9keU9ySHRtbFJlZ2V4ID1cbiAgL1xcblxccythdCAoPzpib2R5fGh0bWwpIFxcKDxhbm9ueW1vdXM+XFwpW1xcc1xcU10qP1xcblxccythdCBTdXNwZW5zZSBcXCg8YW5vbnltb3VzPlxcKS9cbmNvbnN0IGhhc01ldGFkYXRhUmVnZXggPSBuZXcgUmVnRXhwKFxuICBgXFxcXG5cXFxccythdCAke01FVEFEQVRBX0JPVU5EQVJZX05BTUV9W1xcXFxuXFxcXHNdYFxuKVxuY29uc3QgaGFzVmlld3BvcnRSZWdleCA9IG5ldyBSZWdFeHAoXG4gIGBcXFxcblxcXFxzK2F0ICR7VklFV1BPUlRfQk9VTkRBUllfTkFNRX1bXFxcXG5cXFxcc11gXG4pXG5jb25zdCBoYXNPdXRsZXRSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxuXFxcXHMrYXQgJHtPVVRMRVRfQk9VTkRBUllfTkFNRX1bXFxcXG5cXFxcc11gKVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhY2tBbGxvd2VkRHluYW1pY0FjY2VzcyhcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGNvbXBvbmVudFN0YWNrOiBzdHJpbmcsXG4gIGR5bmFtaWNWYWxpZGF0aW9uOiBEeW5hbWljVmFsaWRhdGlvblN0YXRlLFxuICBjbGllbnREeW5hbWljOiBEeW5hbWljVHJhY2tpbmdTdGF0ZVxuKSB7XG4gIGlmIChoYXNPdXRsZXRSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gdHJhY2sgdGhhdCB0aGlzIGlzIGR5bmFtaWMuIEl0IGlzIG9ubHkgc28gd2hlbiBzb21ldGhpbmcgZWxzZSBpcyBhbHNvIGR5bmFtaWMuXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoaGFzTWV0YWRhdGFSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0R5bmFtaWNNZXRhZGF0YSA9IHRydWVcbiAgICByZXR1cm5cbiAgfSBlbHNlIGlmIChoYXNWaWV3cG9ydFJlZ2V4LnRlc3QoY29tcG9uZW50U3RhY2spKSB7XG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY1ZpZXdwb3J0ID0gdHJ1ZVxuICAgIHJldHVyblxuICB9IGVsc2UgaWYgKGhhc1N1c3BlbnNlQWZ0ZXJCb2R5T3JIdG1sUmVnZXgudGVzdChjb21wb25lbnRTdGFjaykpIHtcbiAgICAvLyBUaGlzIHByZXJlbmRlciBoYXMgYSBTdXNwZW5zZSBib3VuZGFyeSBhYm92ZSB0aGUgYm9keSB3aGljaFxuICAgIC8vIGVmZmVjdGl2ZWx5IG9wdHMgdGhlIHBhZ2UgaW50byBhbGxvd2luZyAxMDAlIGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzQWxsb3dlZER5bmFtaWMgPSB0cnVlXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzU3VzcGVuc2VBYm92ZUJvZHkgPSB0cnVlXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoaGFzU3VzcGVuc2VSZWdleC50ZXN0KGNvbXBvbmVudFN0YWNrKSkge1xuICAgIC8vIHRoaXMgZXJyb3IgaGFkIGEgU3VzcGVuc2UgYm91bmRhcnkgYWJvdmUgaXQgc28gd2UgZG9uJ3QgbmVlZCB0byByZXBvcnQgaXQgYXMgYSBzb3VyY2VcbiAgICAvLyBvZiBkaXNhbGxvd2VkXG4gICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzQWxsb3dlZER5bmFtaWMgPSB0cnVlXG4gICAgcmV0dXJuXG4gIH0gZWxzZSBpZiAoY2xpZW50RHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKSB7XG4gICAgLy8gVGhpcyB0YXNrIHdhcyB0aGUgdGFzayB0aGF0IGNhbGxlZCB0aGUgc3luYyBlcnJvci5cbiAgICBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzLnB1c2goXG4gICAgICBjbGllbnREeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2tcbiAgICApXG4gICAgcmV0dXJuXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBSb3V0ZSBcIiR7d29ya1N0b3JlLnJvdXRlfVwiOiBBIGNvbXBvbmVudCBhY2Nlc3NlZCBkYXRhLCBoZWFkZXJzLCBwYXJhbXMsIHNlYXJjaFBhcmFtcywgb3IgYSBzaG9ydC1saXZlZCBjYWNoZSB3aXRob3V0IGEgU3VzcGVuc2UgYm91bmRhcnkgbm9yIGEgXCJ1c2UgY2FjaGVcIiBhYm92ZSBpdC4gU2VlIG1vcmUgaW5mbzogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1wcmVyZW5kZXItbWlzc2luZy1zdXNwZW5zZWBcbiAgICBjb25zdCBlcnJvciA9IGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudE9yT3duZXJTdGFjayhtZXNzYWdlLCBjb21wb25lbnRTdGFjaylcbiAgICBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzLnB1c2goZXJyb3IpXG4gICAgcmV0dXJuXG4gIH1cbn1cblxuLyoqXG4gKiBJbiBkZXYgbW9kZSwgd2UgcHJlZmVyIHVzaW5nIHRoZSBvd25lciBzdGFjaywgb3RoZXJ3aXNlIHRoZSBwcm92aWRlZFxuICogY29tcG9uZW50IHN0YWNrIGlzIHVzZWQuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yV2l0aENvbXBvbmVudE9yT3duZXJTdGFjayhcbiAgbWVzc2FnZTogc3RyaW5nLFxuICBjb21wb25lbnRTdGFjazogc3RyaW5nXG4pIHtcbiAgY29uc3Qgb3duZXJTdGFjayA9XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBSZWFjdC5jYXB0dXJlT3duZXJTdGFja1xuICAgICAgPyBSZWFjdC5jYXB0dXJlT3duZXJTdGFjaygpXG4gICAgICA6IG51bGxcblxuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKVxuICBlcnJvci5zdGFjayA9IGVycm9yLm5hbWUgKyAnOiAnICsgbWVzc2FnZSArIChvd25lclN0YWNrID8/IGNvbXBvbmVudFN0YWNrKVxuICByZXR1cm4gZXJyb3Jcbn1cblxuZXhwb3J0IGVudW0gUHJlbHVkZVN0YXRlIHtcbiAgRnVsbCA9IDAsXG4gIEVtcHR5ID0gMSxcbiAgRXJyb3JlZCA9IDIsXG59XG5cbmZ1bmN0aW9uIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3Iod29ya1N0b3JlOiBXb3JrU3RvcmUsIGVycm9yOiBFcnJvcik6IHZvaWQge1xuICBjb25zb2xlLmVycm9yKGVycm9yKVxuXG4gIGlmICghd29ya1N0b3JlLmRldikge1xuICAgIGlmICh3b3JrU3RvcmUuaGFzUmVhZGFibGVFcnJvclN0YWNrcykge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFRvIGdldCBhIG1vcmUgZGV0YWlsZWQgc3RhY2sgdHJhY2UgYW5kIHBpbnBvaW50IHRoZSBpc3N1ZSwgc3RhcnQgdGhlIGFwcCBpbiBkZXZlbG9wbWVudCBtb2RlIGJ5IHJ1bm5pbmcgXFxgbmV4dCBkZXZcXGAsIHRoZW4gb3BlbiBcIiR7d29ya1N0b3JlLnJvdXRlfVwiIGluIHlvdXIgYnJvd3NlciB0byBpbnZlc3RpZ2F0ZSB0aGUgZXJyb3IuYFxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBUbyBnZXQgYSBtb3JlIGRldGFpbGVkIHN0YWNrIHRyYWNlIGFuZCBwaW5wb2ludCB0aGUgaXNzdWUsIHRyeSBvbmUgb2YgdGhlIGZvbGxvd2luZzpcbiAgLSBTdGFydCB0aGUgYXBwIGluIGRldmVsb3BtZW50IG1vZGUgYnkgcnVubmluZyBcXGBuZXh0IGRldlxcYCwgdGhlbiBvcGVuIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgaW4geW91ciBicm93c2VyIHRvIGludmVzdGlnYXRlIHRoZSBlcnJvci5cbiAgLSBSZXJ1biB0aGUgcHJvZHVjdGlvbiBidWlsZCB3aXRoIFxcYG5leHQgYnVpbGQgLS1kZWJ1Zy1wcmVyZW5kZXJcXGAgdG8gZ2VuZXJhdGUgYmV0dGVyIHN0YWNrIHRyYWNlcy5gKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dJZkRpc2FsbG93ZWREeW5hbWljKFxuICB3b3JrU3RvcmU6IFdvcmtTdG9yZSxcbiAgcHJlbHVkZTogUHJlbHVkZVN0YXRlLFxuICBkeW5hbWljVmFsaWRhdGlvbjogRHluYW1pY1ZhbGlkYXRpb25TdGF0ZSxcbiAgc2VydmVyRHluYW1pYzogRHluYW1pY1RyYWNraW5nU3RhdGVcbik6IHZvaWQge1xuICBpZiAod29ya1N0b3JlLmludmFsaWREeW5hbWljVXNhZ2VFcnJvcikge1xuICAgIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3Iod29ya1N0b3JlLCB3b3JrU3RvcmUuaW52YWxpZER5bmFtaWNVc2FnZUVycm9yKVxuICAgIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoKVxuICB9XG5cbiAgaWYgKHByZWx1ZGUgIT09IFByZWx1ZGVTdGF0ZS5GdWxsKSB7XG4gICAgaWYgKGR5bmFtaWNWYWxpZGF0aW9uLmhhc1N1c3BlbnNlQWJvdmVCb2R5KSB7XG4gICAgICAvLyBUaGlzIHJvdXRlIGhhcyBvcHRlZCBpbnRvIGFsbG93aW5nIGZ1bGx5IGR5bmFtaWMgcmVuZGVyaW5nXG4gICAgICAvLyBieSBpbmNsdWRpbmcgYSBTdXNwZW5zZSBib3VuZGFyeSBhYm92ZSB0aGUgYm9keS4gSW4gdGhpcyBjYXNlXG4gICAgICAvLyBhIGxhY2sgb2YgYSBzaGVsbCBpcyBub3QgY29uc2lkZXJlZCBkaXNhbGxvd2VkIHNvIHdlIHNpbXBseSByZXR1cm5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChzZXJ2ZXJEeW5hbWljLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spIHtcbiAgICAgIC8vIFRoZXJlIGlzIG5vIHNoZWxsIGFuZCB0aGUgc2VydmVyIGRpZCBzb21ldGhpbmcgc3luYyBkeW5hbWljIGxpa2VseVxuICAgICAgLy8gbGVhZGluZyB0byBhbiBlYXJseSB0ZXJtaW5hdGlvbiBvZiB0aGUgcHJlcmVuZGVyIGJlZm9yZSB0aGUgc2hlbGxcbiAgICAgIC8vIGNvdWxkIGJlIGNvbXBsZXRlZC4gV2UgdGVybWluYXRlIHRoZSBidWlsZC92YWxpZGF0aW5nIHJlbmRlci5cbiAgICAgIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3IoXG4gICAgICAgIHdvcmtTdG9yZSxcbiAgICAgICAgc2VydmVyRHluYW1pYy5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrXG4gICAgICApXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG5cbiAgICAvLyBXZSBkaWRuJ3QgaGF2ZSBhbnkgc3luYyBiYWlsb3V0cyBidXQgdGhlcmUgbWF5IGJlIHVzZXIgY29kZSB3aGljaFxuICAgIC8vIGJsb2NrZWQgdGhlIHJvb3QuIFdlIHdvdWxkIGhhdmUgY2FwdHVyZWQgdGhlc2UgZHVyaW5nIHRoZSBwcmVyZW5kZXJcbiAgICAvLyBhbmQgY2FuIGxvZyB0aGVtIGhlcmUgYW5kIHRoZW4gdGVybWluYXRlIHRoZSBidWlsZC92YWxpZGF0aW5nIHJlbmRlclxuICAgIGNvbnN0IGR5bmFtaWNFcnJvcnMgPSBkeW5hbWljVmFsaWRhdGlvbi5keW5hbWljRXJyb3JzXG4gICAgaWYgKGR5bmFtaWNFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkeW5hbWljRXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3Iod29ya1N0b3JlLCBkeW5hbWljRXJyb3JzW2ldKVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG5cbiAgICAvLyBJZiB3ZSBnb3QgdGhpcyBmYXIgdGhlbiB0aGUgb25seSBvdGhlciB0aGluZyB0aGF0IGNvdWxkIGJlIGJsb2NraW5nXG4gICAgLy8gdGhlIHJvb3QgaXMgZHluYW1pYyBWaWV3cG9ydC4gSWYgdGhpcyBpcyBkeW5hbWljIHRoZW5cbiAgICAvLyB5b3UgbmVlZCB0byBvcHQgaW50byB0aGF0IGJ5IGFkZGluZyBhIFN1c3BlbnNlIGJvdW5kYXJ5IGFib3ZlIHRoZSBib2R5XG4gICAgLy8gdG8gaW5kaWNhdGUgeW91ciBhcmUgb2sgd2l0aCBmdWxseSBkeW5hbWljIHJlbmRlcmluZy5cbiAgICBpZiAoZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY1ZpZXdwb3J0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgUm91dGUgXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBoYXMgYSBcXGBnZW5lcmF0ZVZpZXdwb3J0XFxgIHRoYXQgZGVwZW5kcyBvbiBSZXF1ZXN0IGRhdGEgKFxcYGNvb2tpZXMoKVxcYCwgZXRjLi4uKSBvciB1bmNhY2hlZCBleHRlcm5hbCBkYXRhIChcXGBmZXRjaCguLi4pXFxgLCBldGMuLi4pIHdpdGhvdXQgZXhwbGljaXRseSBhbGxvd2luZyBmdWxseSBkeW5hbWljIHJlbmRlcmluZy4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXByZXJlbmRlci1keW5hbWljLXZpZXdwb3J0YFxuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuXG4gICAgaWYgKHByZWx1ZGUgPT09IFByZWx1ZGVTdGF0ZS5FbXB0eSkge1xuICAgICAgLy8gSWYgd2UgZXZlciBnZXQgdGhpcyBmYXIgdGhlbiB3ZSBtZXNzZWQgdXAgdGhlIHRyYWNraW5nIG9mIGludmFsaWQgZHluYW1pYy5cbiAgICAgIC8vIFdlIHN0aWxsIGFkaGVyZSB0byB0aGUgY29uc3RyYWludCB0aGF0IHlvdSBtdXN0IHByb2R1Y2UgYSBzaGVsbCBidXQgaW52aXRlIHRoZVxuICAgICAgLy8gdXNlciB0byByZXBvcnQgdGhpcyBhcyBhIGJ1ZyBpbiBOZXh0LmpzLlxuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFJvdXRlIFwiJHt3b3JrU3RvcmUucm91dGV9XCIgZGlkIG5vdCBwcm9kdWNlIGEgc3RhdGljIHNoZWxsIGFuZCBOZXh0LmpzIHdhcyB1bmFibGUgdG8gZGV0ZXJtaW5lIGEgcmVhc29uLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMuYFxuICAgICAgKVxuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcigpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChcbiAgICAgIGR5bmFtaWNWYWxpZGF0aW9uLmhhc0FsbG93ZWREeW5hbWljID09PSBmYWxzZSAmJlxuICAgICAgZHluYW1pY1ZhbGlkYXRpb24uaGFzRHluYW1pY01ldGFkYXRhXG4gICAgKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBgUm91dGUgXCIke3dvcmtTdG9yZS5yb3V0ZX1cIiBoYXMgYSBcXGBnZW5lcmF0ZU1ldGFkYXRhXFxgIHRoYXQgZGVwZW5kcyBvbiBSZXF1ZXN0IGRhdGEgKFxcYGNvb2tpZXMoKVxcYCwgZXRjLi4uKSBvciB1bmNhY2hlZCBleHRlcm5hbCBkYXRhIChcXGBmZXRjaCguLi4pXFxgLCBldGMuLi4pIHdoZW4gdGhlIHJlc3Qgb2YgdGhlIHJvdXRlIGRvZXMgbm90LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLWR5bmFtaWMtbWV0YWRhdGFgXG4gICAgICApXG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKClcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJQb3N0cG9uZSIsIlByZWx1ZGVTdGF0ZSIsImFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3MiLCJhYm9ydE9uU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzIiwiYWNjZXNzZWREeW5hbWljRGF0YSIsImFubm90YXRlRHluYW1pY0FjY2VzcyIsImNvbnN1bWVEeW5hbWljQWNjZXNzIiwiY3JlYXRlRHluYW1pY1RyYWNraW5nU3RhdGUiLCJjcmVhdGVEeW5hbWljVmFsaWRhdGlvblN0YXRlIiwiY3JlYXRlSGFuZ2luZ0lucHV0QWJvcnRTaWduYWwiLCJjcmVhdGVQb3N0cG9uZWRBYm9ydFNpZ25hbCIsImZvcm1hdER5bmFtaWNBUElBY2Nlc3NlcyIsImdldEZpcnN0RHluYW1pY1JlYXNvbiIsImlzRHluYW1pY1Bvc3Rwb25lIiwiaXNQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yIiwibWFya0N1cnJlbnRTY29wZUFzRHluYW1pYyIsInBvc3Rwb25lV2l0aFRyYWNraW5nIiwidGhyb3dJZkRpc2FsbG93ZWREeW5hbWljIiwidGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24iLCJ0cmFja0FsbG93ZWREeW5hbWljQWNjZXNzIiwidHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlciIsInRyYWNrRmFsbGJhY2tQYXJhbUFjY2Vzc2VkIiwidHJhY2tTeW5jaHJvbm91c1BsYXRmb3JtSU9BY2Nlc3NJbkRldiIsInRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2IiwidXNlRHluYW1pY1JvdXRlUGFyYW1zIiwiaGFzUG9zdHBvbmUiLCJSZWFjdCIsInVuc3RhYmxlX3Bvc3Rwb25lIiwiaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlcyIsImR5bmFtaWNBY2Nlc3NlcyIsInN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2siLCJoYXNTdXNwZW5zZUFib3ZlQm9keSIsImhhc0R5bmFtaWNNZXRhZGF0YSIsImhhc0R5bmFtaWNWaWV3cG9ydCIsImhhc0FsbG93ZWREeW5hbWljIiwiZHluYW1pY0Vycm9ycyIsInRyYWNraW5nU3RhdGUiLCJleHByZXNzaW9uIiwic3RvcmUiLCJ3b3JrVW5pdFN0b3JlIiwidHlwZSIsImZvcmNlRHluYW1pYyIsImZvcmNlU3RhdGljIiwiZHluYW1pY1Nob3VsZEVycm9yIiwiU3RhdGljR2VuQmFpbG91dEVycm9yIiwicm91dGUiLCJkeW5hbWljVHJhY2tpbmciLCJyZXZhbGlkYXRlIiwiZXJyIiwiRHluYW1pY1NlcnZlckVycm9yIiwiZHluYW1pY1VzYWdlRGVzY3JpcHRpb24iLCJkeW5hbWljVXNhZ2VTdGFjayIsInN0YWNrIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidXNlZER5bmFtaWMiLCJwcmVyZW5kZXJTdG9yZSIsIndvcmtVbml0QXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJfc3RvcmUiLCJhYm9ydE9uU3luY2hyb25vdXNEeW5hbWljRGF0YUFjY2VzcyIsInJlYXNvbiIsImVycm9yIiwiY3JlYXRlUHJlcmVuZGVySW50ZXJydXB0ZWRFcnJvciIsImNvbnRyb2xsZXIiLCJhYm9ydCIsInB1c2giLCJFcnJvciIsInVuZGVmaW5lZCIsImVycm9yV2l0aFN0YWNrIiwicmVxdWVzdFN0b3JlIiwicHJlcmVuZGVyUGhhc2UiLCJwcmVyZW5kZXJTaWduYWwiLCJzaWduYWwiLCJhYm9ydGVkIiwiYXNzZXJ0UG9zdHBvbmUiLCJjcmVhdGVQb3N0cG9uZVJlYXNvbiIsIm1lc3NhZ2UiLCJpc0R5bmFtaWNQb3N0cG9uZVJlYXNvbiIsImluY2x1ZGVzIiwiTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQiLCJkaWdlc3QiLCJsZW5ndGgiLCJzZXJ2ZXJEeW5hbWljIiwiY2xpZW50RHluYW1pYyIsImZpbHRlciIsImFjY2VzcyIsIm1hcCIsInNwbGl0Iiwic2xpY2UiLCJsaW5lIiwiam9pbiIsIkFib3J0Q29udHJvbGxlciIsIngiLCJjYWNoZVNpZ25hbCIsImlucHV0UmVhZHkiLCJ0aGVuIiwic2NoZWR1bGVPbk5leHRUaWNrIiwid29ya1N0b3JlIiwid29ya0FzeW5jU3RvcmFnZSIsImlzU3RhdGljR2VuZXJhdGlvbiIsImZhbGxiYWNrUm91dGVQYXJhbXMiLCJzaXplIiwidXNlIiwibWFrZUhhbmdpbmdQcm9taXNlIiwicmVuZGVyU2lnbmFsIiwiaGFzU3VzcGVuc2VSZWdleCIsImhhc1N1c3BlbnNlQWZ0ZXJCb2R5T3JIdG1sUmVnZXgiLCJoYXNNZXRhZGF0YVJlZ2V4IiwiUmVnRXhwIiwiTUVUQURBVEFfQk9VTkRBUllfTkFNRSIsImhhc1ZpZXdwb3J0UmVnZXgiLCJWSUVXUE9SVF9CT1VOREFSWV9OQU1FIiwiaGFzT3V0bGV0UmVnZXgiLCJPVVRMRVRfQk9VTkRBUllfTkFNRSIsImNvbXBvbmVudFN0YWNrIiwiZHluYW1pY1ZhbGlkYXRpb24iLCJ0ZXN0IiwiY3JlYXRlRXJyb3JXaXRoQ29tcG9uZW50T3JPd25lclN0YWNrIiwib3duZXJTdGFjayIsImNhcHR1cmVPd25lclN0YWNrIiwibmFtZSIsImxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3IiLCJjb25zb2xlIiwiZGV2IiwiaGFzUmVhZGFibGVFcnJvclN0YWNrcyIsInByZWx1ZGUiLCJpbnZhbGlkRHluYW1pY1VzYWdlRXJyb3IiLCJpIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js":
/*!*****************************************************************************************!*\
!*** ./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js ***!
\*****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createDedupedByCallsiteServerErrorLoggerDev\", ({\n enumerable: true,\n get: function() {\n return createDedupedByCallsiteServerErrorLoggerDev;\n }\n}));\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nconst errorRef = {\n current: null\n};\n// React.cache is currently only available in canary/experimental React channels.\nconst cache = typeof _react.cache === 'function' ? _react.cache : (fn)=>fn;\n// When Dynamic IO is enabled, we record these as errors so that they\n// are captured by the dev overlay as it's more critical to fix these\n// when enabled.\nconst logErrorOrWarn = false ? 0 : console.warn;\n// We don't want to dedupe across requests.\n// The developer might've just attempted to fix the warning so we should warn again if it still happens.\nconst flushCurrentErrorIfNew = cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- cache key\n(key)=>{\n try {\n logErrorOrWarn(errorRef.current);\n } finally{\n errorRef.current = null;\n }\n});\nfunction createDedupedByCallsiteServerErrorLoggerDev(getMessage) {\n return function logDedupedError(...args) {\n const message = getMessage(...args);\n if (true) {\n var _stack;\n const callStackFrames = (_stack = new Error().stack) == null ? void 0 : _stack.split('\\n');\n if (callStackFrames === undefined || callStackFrames.length < 4) {\n logErrorOrWarn(message);\n } else {\n // Error:\n // logDedupedError\n // asyncApiBeingAccessedSynchronously\n // <userland callsite>\n // TODO: This breaks if sourcemaps with ignore lists are enabled.\n const key = callStackFrames[4];\n errorRef.current = message;\n flushCurrentErrorIfNew(key);\n }\n } else {}\n };\n}\n\n//# sourceMappingURL=create-deduped-by-callsite-server-error-logger.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9jcmVhdGUtZGVkdXBlZC1ieS1jYWxsc2l0ZS1zZXJ2ZXItZXJyb3ItbG9nZ2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0VBQThFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsdURBQXVELG1CQUFPLENBQUMsaUdBQU87QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLE1BQTZCLEdBQUcsQ0FBYTtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsS0FBSyxFQUVOO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvY3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXZcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXY7XG4gICAgfVxufSk7XG5jb25zdCBfcmVhY3QgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShub2RlSW50ZXJvcCkge1xuICAgIGlmICh0eXBlb2YgV2Vha01hcCAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcbiAgICByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uKG5vZGVJbnRlcm9wKSB7XG4gICAgICAgIHJldHVybiBub2RlSW50ZXJvcCA/IGNhY2hlTm9kZUludGVyb3AgOiBjYWNoZUJhYmVsSW50ZXJvcDtcbiAgICB9KShub2RlSW50ZXJvcCk7XG59XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkKG9iaiwgbm9kZUludGVyb3ApIHtcbiAgICBpZiAoIW5vZGVJbnRlcm9wICYmIG9iaiAmJiBvYmouX19lc01vZHVsZSkge1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG9iaiAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcbiAgICBpZiAoY2FjaGUgJiYgY2FjaGUuaGFzKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuICAgIH1cbiAgICB2YXIgbmV3T2JqID0ge1xuICAgICAgICBfX3Byb3RvX186IG51bGxcbiAgICB9O1xuICAgIHZhciBoYXNQcm9wZXJ0eURlc2NyaXB0b3IgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBmb3IodmFyIGtleSBpbiBvYmope1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqLCBrZXksIGRlc2MpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG5ld09iai5kZWZhdWx0ID0gb2JqO1xuICAgIGlmIChjYWNoZSkge1xuICAgICAgICBjYWNoZS5zZXQob2JqLCBuZXdPYmopO1xuICAgIH1cbiAgICByZXR1cm4gbmV3T2JqO1xufVxuY29uc3QgZXJyb3JSZWYgPSB7XG4gICAgY3VycmVudDogbnVsbFxufTtcbi8vIFJlYWN0LmNhY2hlIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBjYW5hcnkvZXhwZXJpbWVudGFsIFJlYWN0IGNoYW5uZWxzLlxuY29uc3QgY2FjaGUgPSB0eXBlb2YgX3JlYWN0LmNhY2hlID09PSAnZnVuY3Rpb24nID8gX3JlYWN0LmNhY2hlIDogKGZuKT0+Zm47XG4vLyBXaGVuIER5bmFtaWMgSU8gaXMgZW5hYmxlZCwgd2UgcmVjb3JkIHRoZXNlIGFzIGVycm9ycyBzbyB0aGF0IHRoZXlcbi8vIGFyZSBjYXB0dXJlZCBieSB0aGUgZGV2IG92ZXJsYXkgYXMgaXQncyBtb3JlIGNyaXRpY2FsIHRvIGZpeCB0aGVzZVxuLy8gd2hlbiBlbmFibGVkLlxuY29uc3QgbG9nRXJyb3JPcldhcm4gPSBwcm9jZXNzLmVudi5fX05FWFRfRFlOQU1JQ19JTyA/IGNvbnNvbGUuZXJyb3IgOiBjb25zb2xlLndhcm47XG4vLyBXZSBkb24ndCB3YW50IHRvIGRlZHVwZSBhY3Jvc3MgcmVxdWVzdHMuXG4vLyBUaGUgZGV2ZWxvcGVyIG1pZ2h0J3ZlIGp1c3QgYXR0ZW1wdGVkIHRvIGZpeCB0aGUgd2FybmluZyBzbyB3ZSBzaG91bGQgd2FybiBhZ2FpbiBpZiBpdCBzdGlsbCBoYXBwZW5zLlxuY29uc3QgZmx1c2hDdXJyZW50RXJyb3JJZk5ldyA9IGNhY2hlKC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgLS0gY2FjaGUga2V5XG4oa2V5KT0+e1xuICAgIHRyeSB7XG4gICAgICAgIGxvZ0Vycm9yT3JXYXJuKGVycm9yUmVmLmN1cnJlbnQpO1xuICAgIH0gZmluYWxseXtcbiAgICAgICAgZXJyb3JSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBjcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KGdldE1lc3NhZ2UpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gbG9nRGVkdXBlZEVycm9yKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGdldE1lc3NhZ2UoLi4uYXJncyk7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgX3N0YWNrO1xuICAgICAgICAgICAgY29uc3QgY2FsbFN0YWNrRnJhbWVzID0gKF9zdGFjayA9IG5ldyBFcnJvcigpLnN0YWNrKSA9PSBudWxsID8gdm9pZCAwIDogX3N0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgIGlmIChjYWxsU3RhY2tGcmFtZXMgPT09IHVuZGVmaW5lZCB8fCBjYWxsU3RhY2tGcmFtZXMubGVuZ3RoIDwgNCkge1xuICAgICAgICAgICAgICAgIGxvZ0Vycm9yT3JXYXJuKG1lc3NhZ2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBFcnJvcjpcbiAgICAgICAgICAgICAgICAvLyAgIGxvZ0RlZHVwZWRFcnJvclxuICAgICAgICAgICAgICAgIC8vICAgYXN5bmNBcGlCZWluZ0FjY2Vzc2VkU3luY2hyb25vdXNseVxuICAgICAgICAgICAgICAgIC8vICAgPHVzZXJsYW5kIGNhbGxzaXRlPlxuICAgICAgICAgICAgICAgIC8vIFRPRE86IFRoaXMgYnJlYWtzIGlmIHNvdXJjZW1hcHMgd2l0aCBpZ25vcmUgbGlzdHMgYXJlIGVuYWJsZWQuXG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gY2FsbFN0YWNrRnJhbWVzWzRdO1xuICAgICAgICAgICAgICAgIGVycm9yUmVmLmN1cnJlbnQgPSBtZXNzYWdlO1xuICAgICAgICAgICAgICAgIGZsdXNoQ3VycmVudEVycm9ySWZOZXcoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvZ0Vycm9yT3JXYXJuKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/dev/hot-reloader-types.js":
/*!*****************************************************************!*\
!*** ./node_modules/next/dist/server/dev/hot-reloader-types.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HMR_ACTIONS_SENT_TO_BROWSER\", ({\n enumerable: true,\n get: function() {\n return HMR_ACTIONS_SENT_TO_BROWSER;\n }\n}));\nvar HMR_ACTIONS_SENT_TO_BROWSER = /*#__PURE__*/ function(HMR_ACTIONS_SENT_TO_BROWSER) {\n HMR_ACTIONS_SENT_TO_BROWSER[\"ADDED_PAGE\"] = \"addedPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"REMOVED_PAGE\"] = \"removedPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"RELOAD_PAGE\"] = \"reloadPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_COMPONENT_CHANGES\"] = \"serverComponentChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"MIDDLEWARE_CHANGES\"] = \"middlewareChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"CLIENT_CHANGES\"] = \"clientChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_ONLY_CHANGES\"] = \"serverOnlyChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SYNC\"] = \"sync\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"BUILT\"] = \"built\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"BUILDING\"] = \"building\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"DEV_PAGES_MANIFEST_UPDATE\"] = \"devPagesManifestUpdate\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"TURBOPACK_MESSAGE\"] = \"turbopack-message\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_ERROR\"] = \"serverError\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"TURBOPACK_CONNECTED\"] = \"turbopack-connected\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"ISR_MANIFEST\"] = \"isrManifest\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"DEV_INDICATOR\"] = \"devIndicator\";\n return HMR_ACTIONS_SENT_TO_BROWSER;\n}({});\n\n//# sourceMappingURL=hot-reloader-types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0RBQThEO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVI7XG4gICAgfVxufSk7XG52YXIgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIpIHtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJBRERFRF9QQUdFXCJdID0gXCJhZGRlZFBhZ2VcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJSRU1PVkVEX1BBR0VcIl0gPSBcInJlbW92ZWRQYWdlXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiUkVMT0FEX1BBR0VcIl0gPSBcInJlbG9hZFBhZ2VcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJTRVJWRVJfQ09NUE9ORU5UX0NIQU5HRVNcIl0gPSBcInNlcnZlckNvbXBvbmVudENoYW5nZXNcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJNSURETEVXQVJFX0NIQU5HRVNcIl0gPSBcIm1pZGRsZXdhcmVDaGFuZ2VzXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiQ0xJRU5UX0NIQU5HRVNcIl0gPSBcImNsaWVudENoYW5nZXNcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJTRVJWRVJfT05MWV9DSEFOR0VTXCJdID0gXCJzZXJ2ZXJPbmx5Q2hhbmdlc1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlNZTkNcIl0gPSBcInN5bmNcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJCVUlMVFwiXSA9IFwiYnVpbHRcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJCVUlMRElOR1wiXSA9IFwiYnVpbGRpbmdcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJERVZfUEFHRVNfTUFOSUZFU1RfVVBEQVRFXCJdID0gXCJkZXZQYWdlc01hbmlmZXN0VXBkYXRlXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiVFVSQk9QQUNLX01FU1NBR0VcIl0gPSBcInR1cmJvcGFjay1tZXNzYWdlXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiU0VSVkVSX0VSUk9SXCJdID0gXCJzZXJ2ZXJFcnJvclwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlRVUkJPUEFDS19DT05ORUNURURcIl0gPSBcInR1cmJvcGFjay1jb25uZWN0ZWRcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJJU1JfTUFOSUZFU1RcIl0gPSBcImlzck1hbmlmZXN0XCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiREVWX0lORElDQVRPUlwiXSA9IFwiZGV2SW5kaWNhdG9yXCI7XG4gICAgcmV0dXJuIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUjtcbn0oe30pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob3QtcmVsb2FkZXItdHlwZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/dev/hot-reloader-types.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/server/dynamic-rendering-utils.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isHangingPromiseRejectionError: function() {\n return isHangingPromiseRejectionError;\n },\n makeHangingPromise: function() {\n return makeHangingPromise;\n }\n});\nfunction isHangingPromiseRejectionError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === HANGING_PROMISE_REJECTION;\n}\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION';\nclass HangingPromiseRejectionError extends Error {\n constructor(expression){\n super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context.`), this.expression = expression, this.digest = HANGING_PROMISE_REJECTION;\n }\n}\nconst abortListenersBySignal = new WeakMap();\nfunction makeHangingPromise(signal, expression) {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(expression));\n } else {\n const hangingPromise = new Promise((_, reject)=>{\n const boundRejection = reject.bind(null, new HangingPromiseRejectionError(expression));\n let currentListeners = abortListenersBySignal.get(signal);\n if (currentListeners) {\n currentListeners.push(boundRejection);\n } else {\n const listeners = [\n boundRejection\n ];\n abortListenersBySignal.set(signal, listeners);\n signal.addEventListener('abort', ()=>{\n for(let i = 0; i < listeners.length; i++){\n listeners[i]();\n }\n }, {\n once: true\n });\n }\n });\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject);\n return hangingPromise;\n }\n}\nfunction ignoreReject() {}\n\n//# sourceMappingURL=dynamic-rendering-utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9keW5hbWljLXJlbmRlcmluZy11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsWUFBWSxzR0FBc0csWUFBWTtBQUNwSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHNCQUFzQjtBQUN6RDtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yOiBudWxsLFxuICAgIG1ha2VIYW5naW5nUHJvbWlzZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc0hhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yO1xuICAgIH0sXG4gICAgbWFrZUhhbmdpbmdQcm9taXNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1ha2VIYW5naW5nUHJvbWlzZTtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGlzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcihlcnIpIHtcbiAgICBpZiAodHlwZW9mIGVyciAhPT0gJ29iamVjdCcgfHwgZXJyID09PSBudWxsIHx8ICEoJ2RpZ2VzdCcgaW4gZXJyKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBlcnIuZGlnZXN0ID09PSBIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OO1xufVxuY29uc3QgSEFOR0lOR19QUk9NSVNFX1JFSkVDVElPTiA9ICdIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OJztcbmNsYXNzIEhhbmdpbmdQcm9taXNlUmVqZWN0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoZXhwcmVzc2lvbil7XG4gICAgICAgIHN1cGVyKGBEdXJpbmcgcHJlcmVuZGVyaW5nLCAke2V4cHJlc3Npb259IHJlamVjdHMgd2hlbiB0aGUgcHJlcmVuZGVyIGlzIGNvbXBsZXRlLiBUeXBpY2FsbHkgdGhlc2UgZXJyb3JzIGFyZSBoYW5kbGVkIGJ5IFJlYWN0IGJ1dCBpZiB5b3UgbW92ZSAke2V4cHJlc3Npb259IHRvIGEgZGlmZmVyZW50IGNvbnRleHQgYnkgdXNpbmcgXFxgc2V0VGltZW91dFxcYCwgXFxgYWZ0ZXJcXGAsIG9yIHNpbWlsYXIgZnVuY3Rpb25zIHlvdSBtYXkgb2JzZXJ2ZSB0aGlzIGVycm9yIGFuZCB5b3Ugc2hvdWxkIGhhbmRsZSBpdCBpbiB0aGF0IGNvbnRleHQuYCksIHRoaXMuZXhwcmVzc2lvbiA9IGV4cHJlc3Npb24sIHRoaXMuZGlnZXN0ID0gSEFOR0lOR19QUk9NSVNFX1JFSkVDVElPTjtcbiAgICB9XG59XG5jb25zdCBhYm9ydExpc3RlbmVyc0J5U2lnbmFsID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIG1ha2VIYW5naW5nUHJvbWlzZShzaWduYWwsIGV4cHJlc3Npb24pIHtcbiAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yKGV4cHJlc3Npb24pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBoYW5naW5nUHJvbWlzZSA9IG5ldyBQcm9taXNlKChfLCByZWplY3QpPT57XG4gICAgICAgICAgICBjb25zdCBib3VuZFJlamVjdGlvbiA9IHJlamVjdC5iaW5kKG51bGwsIG5ldyBIYW5naW5nUHJvbWlzZVJlamVjdGlvbkVycm9yKGV4cHJlc3Npb24pKTtcbiAgICAgICAgICAgIGxldCBjdXJyZW50TGlzdGVuZXJzID0gYWJvcnRMaXN0ZW5lcnNCeVNpZ25hbC5nZXQoc2lnbmFsKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50TGlzdGVuZXJzKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudExpc3RlbmVycy5wdXNoKGJvdW5kUmVqZWN0aW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdGVuZXJzID0gW1xuICAgICAgICAgICAgICAgICAgICBib3VuZFJlamVjdGlvblxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgYWJvcnRMaXN0ZW5lcnNCeVNpZ25hbC5zZXQoc2lnbmFsLCBsaXN0ZW5lcnMpO1xuICAgICAgICAgICAgICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsICgpPT57XG4gICAgICAgICAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCBsaXN0ZW5lcnMubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXJzW2ldKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgIG9uY2U6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFdlIGFyZSBmaW5lIGlmIG5vIG9uZSBhY3R1YWxseSBhd2FpdHMgdGhpcyBwcm9taXNlLiBXZSBzaG91bGRuJ3QgY29uc2lkZXIgdGhpcyBhbiB1bmhhbmRsZWQgcmVqZWN0aW9uIHNvXG4gICAgICAgIC8vIHdlIGF0dGFjaCBhIG5vb3AgY2F0Y2ggaGFuZGxlciBoZXJlIHRvIHN1cHByZXNzIHRoaXMgd2FybmluZy4gSWYgeW91IGFjdHVhbGx5IGF3YWl0IHNvbWV3aGVyZSBvciBjb25zdHJ1Y3RcbiAgICAgICAgLy8geW91ciBvd24gcHJvbWlzZSBvdXQgb2YgaXQgeW91J2xsIG5lZWQgdG8gZW5zdXJlIHlvdSBoYW5kbGUgdGhlIGVycm9yIHdoZW4gaXQgcmVqZWN0cy5cbiAgICAgICAgaGFuZ2luZ1Byb21pc2UuY2F0Y2goaWdub3JlUmVqZWN0KTtcbiAgICAgICAgcmV0dXJuIGhhbmdpbmdQcm9taXNlO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGlnbm9yZVJlamVjdCgpIHt9XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWR5bmFtaWMtcmVuZGVyaW5nLXV0aWxzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js":
/*!***********************************************************************!*\
!*** ./node_modules/next/dist/server/lib/router-utils/is-postpone.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isPostpone\", ({\n enumerable: true,\n get: function() {\n return isPostpone;\n }\n}));\nconst REACT_POSTPONE_TYPE = Symbol.for('react.postpone');\nfunction isPostpone(error) {\n return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE;\n}\n\n//# sourceMappingURL=is-postpone.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvcm91dGVyLXV0aWxzL2lzLXBvc3Rwb25lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsOENBQTZDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi9yb3V0ZXItdXRpbHMvaXMtcG9zdHBvbmUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc1Bvc3Rwb25lXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc1Bvc3Rwb25lO1xuICAgIH1cbn0pO1xuY29uc3QgUkVBQ1RfUE9TVFBPTkVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnBvc3Rwb25lJyk7XG5mdW5jdGlvbiBpc1Bvc3Rwb25lKGVycm9yKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgZXJyb3IuJCR0eXBlb2YgPT09IFJFQUNUX1BPU1RQT05FX1RZUEU7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXBvc3Rwb25lLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/lib/router-utils/is-postpone.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/request-meta.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/server/request-meta.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/* eslint-disable no-redeclare */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n NEXT_REQUEST_META: function() {\n return NEXT_REQUEST_META;\n },\n addRequestMeta: function() {\n return addRequestMeta;\n },\n getRequestMeta: function() {\n return getRequestMeta;\n },\n removeRequestMeta: function() {\n return removeRequestMeta;\n },\n setRequestMeta: function() {\n return setRequestMeta;\n }\n});\nconst NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta');\nfunction getRequestMeta(req, key) {\n const meta = req[NEXT_REQUEST_META] || {};\n return typeof key === 'string' ? meta[key] : meta;\n}\nfunction setRequestMeta(req, meta) {\n req[NEXT_REQUEST_META] = meta;\n return meta;\n}\nfunction addRequestMeta(request, key, value) {\n const meta = getRequestMeta(request);\n meta[key] = value;\n return setRequestMeta(request, meta);\n}\nfunction removeRequestMeta(request, key) {\n const meta = getRequestMeta(request);\n delete meta[key];\n return setRequestMeta(request, meta);\n}\n\n//# sourceMappingURL=request-meta.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0LW1ldGEuanMiLCJtYXBwaW5ncyI6IkFBQUEsa0NBQStDO0FBQy9DLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcmVxdWVzdC1tZXRhLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlZGVjbGFyZSAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIE5FWFRfUkVRVUVTVF9NRVRBOiBudWxsLFxuICAgIGFkZFJlcXVlc3RNZXRhOiBudWxsLFxuICAgIGdldFJlcXVlc3RNZXRhOiBudWxsLFxuICAgIHJlbW92ZVJlcXVlc3RNZXRhOiBudWxsLFxuICAgIHNldFJlcXVlc3RNZXRhOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIE5FWFRfUkVRVUVTVF9NRVRBOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUkVRVUVTVF9NRVRBO1xuICAgIH0sXG4gICAgYWRkUmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gYWRkUmVxdWVzdE1ldGE7XG4gICAgfSxcbiAgICBnZXRSZXF1ZXN0TWV0YTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRSZXF1ZXN0TWV0YTtcbiAgICB9LFxuICAgIHJlbW92ZVJlcXVlc3RNZXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlbW92ZVJlcXVlc3RNZXRhO1xuICAgIH0sXG4gICAgc2V0UmVxdWVzdE1ldGE6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2V0UmVxdWVzdE1ldGE7XG4gICAgfVxufSk7XG5jb25zdCBORVhUX1JFUVVFU1RfTUVUQSA9IFN5bWJvbC5mb3IoJ05leHRJbnRlcm5hbFJlcXVlc3RNZXRhJyk7XG5mdW5jdGlvbiBnZXRSZXF1ZXN0TWV0YShyZXEsIGtleSkge1xuICAgIGNvbnN0IG1ldGEgPSByZXFbTkVYVF9SRVFVRVNUX01FVEFdIHx8IHt9O1xuICAgIHJldHVybiB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyA/IG1ldGFba2V5XSA6IG1ldGE7XG59XG5mdW5jdGlvbiBzZXRSZXF1ZXN0TWV0YShyZXEsIG1ldGEpIHtcbiAgICByZXFbTkVYVF9SRVFVRVNUX01FVEFdID0gbWV0YTtcbiAgICByZXR1cm4gbWV0YTtcbn1cbmZ1bmN0aW9uIGFkZFJlcXVlc3RNZXRhKHJlcXVlc3QsIGtleSwgdmFsdWUpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0UmVxdWVzdE1ldGEocmVxdWVzdCk7XG4gICAgbWV0YVtrZXldID0gdmFsdWU7XG4gICAgcmV0dXJuIHNldFJlcXVlc3RNZXRhKHJlcXVlc3QsIG1ldGEpO1xufVxuZnVuY3Rpb24gcmVtb3ZlUmVxdWVzdE1ldGEocmVxdWVzdCwga2V5KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldFJlcXVlc3RNZXRhKHJlcXVlc3QpO1xuICAgIGRlbGV0ZSBtZXRhW2tleV07XG4gICAgcmV0dXJuIHNldFJlcXVlc3RNZXRhKHJlcXVlc3QsIG1ldGEpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXF1ZXN0LW1ldGEuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/request-meta.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/request/params.js":
/*!*********************************************************!*\
!*** ./node_modules/next/dist/server/request/params.js ***!
\*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createParamsFromClient: function() {\n return createParamsFromClient;\n },\n createPrerenderParamsForClientSegment: function() {\n return createPrerenderParamsForClientSegment;\n },\n createServerParamsForMetadata: function() {\n return createServerParamsForMetadata;\n },\n createServerParamsForRoute: function() {\n return createServerParamsForRoute;\n },\n createServerParamsForServerSegment: function() {\n return createServerParamsForServerSegment;\n }\n});\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(ssr)/./node_modules/next/dist/lib/scheduler.js\");\nconst _dynamicaccessasyncstorageexternal = __webpack_require__(/*! ../app-render/dynamic-access-async-storage.external */ \"../app-render/dynamic-access-async-storage.external\");\nfunction createParamsFromClient(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\n}\nconst createServerParamsForMetadata = createServerParamsForServerSegment;\nfunction createServerParamsForRoute(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\n}\nfunction createServerParamsForServerSegment(underlyingParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderParams(underlyingParams, workStore, workUnitStore);\n default:\n }\n }\n return createRenderParams(underlyingParams, workStore);\n}\nfunction createPrerenderParamsForClientSegment(underlyingParams, workStore) {\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (prerenderStore && (prerenderStore.type === 'prerender' || prerenderStore.type === 'prerender-client')) {\n const fallbackParams = workStore.fallbackRouteParams;\n if (fallbackParams) {\n for(let key in underlyingParams){\n if (fallbackParams.has(key)) {\n // This params object has one of more fallback params so we need to consider\n // the awaiting of this params object \"dynamic\". Since we are in dynamicIO mode\n // we encode this as a promise that never resolves\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`params`');\n }\n }\n }\n }\n // We're prerendering in a mode that does not abort. We resolve the promise without\n // any tracking because we're just transporting a value from server to client where the tracking\n // will be applied.\n return Promise.resolve(underlyingParams);\n}\nfunction createPrerenderParams(underlyingParams, workStore, prerenderStore) {\n const fallbackParams = workStore.fallbackRouteParams;\n if (fallbackParams) {\n let hasSomeFallbackParams = false;\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n hasSomeFallbackParams = true;\n break;\n }\n }\n if (hasSomeFallbackParams) {\n // params need to be treated as dynamic because we have at least one fallback param\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n // We are in a dynamicIO prerender\n return makeHangingParams(underlyingParams, prerenderStore);\n default:\n return makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore);\n }\n }\n }\n // We don't have any fallback params so we have an entirely static safe params object\n return makeUntrackedExoticParams(underlyingParams);\n}\nfunction createRenderParams(underlyingParams, workStore) {\n if ( true && !workStore.isPrefetchRequest) {\n if (false) {}\n return makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, workStore);\n } else {\n if (false) {}\n return makeUntrackedExoticParams(underlyingParams);\n }\n}\nconst CachedParams = new WeakMap();\nconst fallbackParamsProxyHandler = {\n get: function get(target, prop, receiver) {\n if (prop === 'then' || prop === 'catch' || prop === 'finally') {\n const originalMethod = _reflect.ReflectAdapter.get(target, prop, receiver);\n return ({\n [prop]: (...args)=>{\n const store = _dynamicaccessasyncstorageexternal.dynamicAccessAsyncStorage.getStore();\n if (store) {\n store.abortController.abort(Object.defineProperty(new Error(`Accessed fallback \\`params\\` during prerendering.`), \"__NEXT_ERROR_CODE\", {\n value: \"E691\",\n enumerable: false,\n configurable: true\n }));\n }\n return new Proxy(originalMethod.apply(target, args), fallbackParamsProxyHandler);\n }\n })[prop];\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n};\nfunction makeHangingParams(underlyingParams, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = new Proxy((0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`params`'), fallbackParamsProxyHandler);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeErroringExoticParams(underlyingParams, fallbackParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const augmentedUnderlying = {\n ...underlyingParams\n };\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(augmentedUnderlying);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n if (fallbackParams.has(prop)) {\n Object.defineProperty(augmentedUnderlying, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n enumerable: true\n });\n Object.defineProperty(promise, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n }\n });\n return promise;\n}\nfunction makeUntrackedExoticParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n });\n return promise;\n}\nfunction makeUntrackedParams(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = Promise.resolve(underlyingParams);\n CachedParams.set(underlyingParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticParamsWithDevWarnings(underlyingParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingParams)));\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n promise[prop] = underlyingParams[prop];\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticParamsWithDevWarnings`, but just\n// logging the sync access without actually defining the params on the promise.\nfunction makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, store) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingParams)));\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (// We are accessing a property that was proxied to the promise instance\n proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n const expression = '`...params` or similar expression';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore && workUnitStore.type === 'request' && workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore;\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);\n }\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createParamsAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createParamsAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E307\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`params\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E482\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FNTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxpQkFBaUIsbUJBQU8sQ0FBQyw0SEFBd0M7QUFDakUsMEJBQTBCLG1CQUFPLENBQUMsOEdBQWlDO0FBQ25FLHNDQUFzQyxtQkFBTyxDQUFDLHVIQUFnRDtBQUM5Rix3QkFBd0IsbUJBQU8sQ0FBQyxzR0FBa0M7QUFDbEUsc0JBQXNCLG1CQUFPLENBQUMsOEdBQXNDO0FBQ3BFLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxrREFBa0QsbUJBQU8sQ0FBQyxrSkFBbUQ7QUFDN0csbUJBQW1CLG1CQUFPLENBQUMsNEVBQXFCO0FBQ2hELDJDQUEyQyxtQkFBTyxDQUFDLGdIQUFxRDtBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUFzQztBQUM5QyxZQUFZLEtBQTZCLEVBQUUsRUFFbEM7QUFDVDtBQUNBLE1BQU07QUFDTixZQUFZLEtBQTZCLEVBQUUsRUFFbEM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekIscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsTUFBTTtBQUMzQyw4Q0FBOEMsT0FBTyxPQUFPLFdBQVc7QUFDdkU7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxxQ0FBcUMsTUFBTTtBQUMzQyw4Q0FBOEMsT0FBTyxPQUFPLFdBQVcscU1BQXFNLCtDQUErQztBQUMzVDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLHdCQUF3QixjQUFjO0FBQ3RDO0FBQ0Esd0JBQXdCLGNBQWMsV0FBVyxjQUFjO0FBQy9EO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiwyQkFBMkI7QUFDMUQsd0NBQXdDLGNBQWM7QUFDdEQ7QUFDQSwwQ0FBMEMsa0NBQWtDO0FBQzVFO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3BhcmFtcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQ6IG51bGwsXG4gICAgY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YTogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZTogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50OiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUGFyYW1zRnJvbUNsaWVudDtcbiAgICB9LFxuICAgIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyUGFyYW1zRm9yQ2xpZW50U2VnbWVudDtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhO1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGU7XG4gICAgfSxcbiAgICBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ7XG4gICAgfVxufSk7XG5jb25zdCBfcmVmbGVjdCA9IHJlcXVpcmUoXCIuLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmdcIik7XG5jb25zdCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2ludmFyaWFudGVycm9yID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yXCIpO1xuY29uc3QgX3JlZmxlY3R1dGlscyA9IHJlcXVpcmUoXCIuLi8uLi9zaGFyZWQvbGliL3V0aWxzL3JlZmxlY3QtdXRpbHNcIik7XG5jb25zdCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzID0gcmVxdWlyZShcIi4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzXCIpO1xuY29uc3QgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIgPSByZXF1aXJlKFwiLi4vY3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlclwiKTtcbmNvbnN0IF9zY2hlZHVsZXIgPSByZXF1aXJlKFwiLi4vLi4vbGliL3NjaGVkdWxlclwiKTtcbmNvbnN0IF9keW5hbWljYWNjZXNzYXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci9keW5hbWljLWFjY2Vzcy1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuZnVuY3Rpb24gY3JlYXRlUGFyYW1zRnJvbUNsaWVudCh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSk7XG59XG5jb25zdCBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JNZXRhZGF0YSA9IGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ7XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JSb3V0ZSh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlUmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSk7XG59XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJQYXJhbXNGb3JTZXJ2ZXJTZWdtZW50KHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJQYXJhbXModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQodW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKSB7XG4gICAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmIChwcmVyZW5kZXJTdG9yZSAmJiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlcicgfHwgcHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1jbGllbnQnKSkge1xuICAgICAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgIGZvcihsZXQga2V5IGluIHVuZGVybHlpbmdQYXJhbXMpe1xuICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHBhcmFtcyBvYmplY3QgaGFzIG9uZSBvZiBtb3JlIGZhbGxiYWNrIHBhcmFtcyBzbyB3ZSBuZWVkIHRvIGNvbnNpZGVyXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBhd2FpdGluZyBvZiB0aGlzIHBhcmFtcyBvYmplY3QgXCJkeW5hbWljXCIuIFNpbmNlIHdlIGFyZSBpbiBkeW5hbWljSU8gbW9kZVxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBlbmNvZGUgdGhpcyBhcyBhIHByb21pc2UgdGhhdCBuZXZlciByZXNvbHZlc1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgcGFyYW1zYCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgZG9lcyBub3QgYWJvcnQuIFdlIHJlc29sdmUgdGhlIHByb21pc2Ugd2l0aG91dFxuICAgIC8vIGFueSB0cmFja2luZyBiZWNhdXNlIHdlJ3JlIGp1c3QgdHJhbnNwb3J0aW5nIGEgdmFsdWUgZnJvbSBzZXJ2ZXIgdG8gY2xpZW50IHdoZXJlIHRoZSB0cmFja2luZ1xuICAgIC8vIHdpbGwgYmUgYXBwbGllZC5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpO1xufVxuZnVuY3Rpb24gY3JlYXRlUHJlcmVuZGVyUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBmYWxsYmFja1BhcmFtcyA9IHdvcmtTdG9yZS5mYWxsYmFja1JvdXRlUGFyYW1zO1xuICAgIGlmIChmYWxsYmFja1BhcmFtcykge1xuICAgICAgICBsZXQgaGFzU29tZUZhbGxiYWNrUGFyYW1zID0gZmFsc2U7XG4gICAgICAgIGZvcihjb25zdCBrZXkgaW4gdW5kZXJseWluZ1BhcmFtcyl7XG4gICAgICAgICAgICBpZiAoZmFsbGJhY2tQYXJhbXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICBoYXNTb21lRmFsbGJhY2tQYXJhbXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChoYXNTb21lRmFsbGJhY2tQYXJhbXMpIHtcbiAgICAgICAgICAgIC8vIHBhcmFtcyBuZWVkIHRvIGJlIHRyZWF0ZWQgYXMgZHluYW1pYyBiZWNhdXNlIHdlIGhhdmUgYXQgbGVhc3Qgb25lIGZhbGxiYWNrIHBhcmFtXG4gICAgICAgICAgICBzd2l0Y2gocHJlcmVuZGVyU3RvcmUudHlwZSl7XG4gICAgICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIGluIGEgZHluYW1pY0lPIHByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZUhhbmdpbmdQYXJhbXModW5kZXJseWluZ1BhcmFtcywgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcywgZmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IGhhdmUgYW55IGZhbGxiYWNrIHBhcmFtcyBzbyB3ZSBoYXZlIGFuIGVudGlyZWx5IHN0YXRpYyBzYWZlIHBhcmFtcyBvYmplY3RcbiAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVJlbmRlclBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgIXdvcmtTdG9yZS5pc1ByZWZldGNoUmVxdWVzdCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0RZTkFNSUNfSU8pIHtcbiAgICAgICAgICAgIHJldHVybiBtYWtlRHluYW1pY2FsbHlUcmFja2VkUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgd29ya1N0b3JlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0RZTkFNSUNfSU8pIHtcbiAgICAgICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkRXhvdGljUGFyYW1zKHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIH1cbn1cbmNvbnN0IENhY2hlZFBhcmFtcyA9IG5ldyBXZWFrTWFwKCk7XG5jb25zdCBmYWxsYmFja1BhcmFtc1Byb3h5SGFuZGxlciA9IHtcbiAgICBnZXQ6IGZ1bmN0aW9uIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgIGlmIChwcm9wID09PSAndGhlbicgfHwgcHJvcCA9PT0gJ2NhdGNoJyB8fCBwcm9wID09PSAnZmluYWxseScpIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgcmV0dXJuICh7XG4gICAgICAgICAgICAgICAgW3Byb3BdOiAoLi4uYXJncyk9PntcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RvcmUgPSBfZHluYW1pY2FjY2Vzc2FzeW5jc3RvcmFnZWV4dGVybmFsLmR5bmFtaWNBY2Nlc3NBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0b3JlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yZS5hYm9ydENvbnRyb2xsZXIuYWJvcnQoT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgQWNjZXNzZWQgZmFsbGJhY2sgXFxgcGFyYW1zXFxgIGR1cmluZyBwcmVyZW5kZXJpbmcuYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU2OTFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb3h5KG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRhcmdldCwgYXJncyksIGZhbGxiYWNrUGFyYW1zUHJveHlIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVtwcm9wXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgIH1cbn07XG5mdW5jdGlvbiBtYWtlSGFuZ2luZ1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb3h5KCgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkocHJlcmVuZGVyU3RvcmUucmVuZGVyU2lnbmFsLCAnYHBhcmFtc2AnKSwgZmFsbGJhY2tQYXJhbXNQcm94eUhhbmRsZXIpO1xuICAgIENhY2hlZFBhcmFtcy5zZXQodW5kZXJseWluZ1BhcmFtcywgcHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlRXJyb3JpbmdFeG90aWNQYXJhbXModW5kZXJseWluZ1BhcmFtcywgZmFsbGJhY2tQYXJhbXMsIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgYXVnbWVudGVkVW5kZXJseWluZyA9IHtcbiAgICAgICAgLi4udW5kZXJseWluZ1BhcmFtc1xuICAgIH07XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShhdWdtZW50ZWRVbmRlcmx5aW5nKTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb21pc2UpO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgIC8vIFRoZXNlIHByb3BlcnRpZXMgY2Fubm90IGJlIHNoYWRvd2VkIGJlY2F1c2UgdGhleSBuZWVkIHRvIGJlIHRoZVxuICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmYWxsYmFja1BhcmFtcy5oYXMocHJvcCkpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXVnbWVudGVkVW5kZXJseWluZywgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdwYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEluIG1vc3QgZHluYW1pYyBBUElzIHdlIGFsc28gdGhyb3cgaWYgYGR5bmFtaWMgPSBcImVycm9yXCJgIGhvd2V2ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBwYXJhbXMgaXMgb25seSBkeW5hbWljIHdoZW4gd2UncmUgZ2VuZXJhdGluZyBhIGZhbGxiYWNrIHNoZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgZXZlbiB3aGVuIGBkeW5hbWljID0gXCJlcnJvclwiYCB3ZSBzdGlsbCBzdXBwb3J0IGdlbmVyYXRpbmcgZHluYW1pY1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFsbGJhY2sgc2hlbGxzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIHJlbW92ZSB0aGlzIGNvbW1lbnQgd2hlbiBkeW5hbWljSU8gaXMgdGhlIGRlZmF1bHQgc2luY2UgdGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpbGwgYmUgbm8gYGR5bmFtaWMgPSBcImVycm9yXCJgXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gZHluYW1pY0lPKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW4gbW9zdCBkeW5hbWljIEFQSXMgd2UgYWxzbyB0aHJvdyBpZiBgZHluYW1pYyA9IFwiZXJyb3JcImAgaG93ZXZlclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHBhcmFtcyBpcyBvbmx5IGR5bmFtaWMgd2hlbiB3ZSdyZSBnZW5lcmF0aW5nIGEgZmFsbGJhY2sgc2hlbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBldmVuIHdoZW4gYGR5bmFtaWMgPSBcImVycm9yXCJgIHdlIHN0aWxsIHN1cHBvcnQgZ2VuZXJhdGluZyBkeW5hbWljXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmYWxsYmFjayBzaGVsbHNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gcmVtb3ZlIHRoaXMgY29tbWVudCB3aGVuIGR5bmFtaWNJTyBpcyB0aGUgZGVmYXVsdCBzaW5jZSB0aGVyZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2lsbCBiZSBubyBgZHluYW1pYyA9IFwiZXJyb3JcImBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuZXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZEV4b3RpY1BhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgLy8gdHJ1ZSB1bmRlcmx5aW5nIHZhbHVlIGZvciBQcm9taXNlcyB0byB3b3JrIGNvcnJlY3RseSBhdCBydW50aW1lXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBwcm9taXNlW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZFBhcmFtcyh1bmRlcmx5aW5nUGFyYW1zKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhcmFtcyk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNQYXJhbXNXaXRoRGV2V2FybmluZ3ModW5kZXJseWluZ1BhcmFtcywgc3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRQYXJhbXMgPSBDYWNoZWRQYXJhbXMuZ2V0KHVuZGVybHlpbmdQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFBhcmFtcztcbiAgICB9XG4gICAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gICAgLy8gc3VwcG9ydHMgY29weWluZyB3aXRoIHNwcmVhZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byB1bm5lY2Vzc2FyaWx5XG4gICAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKT0+KDAsIF9zY2hlZHVsZXIuc2NoZWR1bGVJbW1lZGlhdGUpKCgpPT5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpKSk7XG4gICAgY29uc3QgcHJveGllZFByb3BlcnRpZXMgPSBuZXcgU2V0KCk7XG4gICAgY29uc3QgdW5wcm94aWVkUHJvcGVydGllcyA9IFtdO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgICAgIC8vIHRydWUgdW5kZXJseWluZyB2YWx1ZSBmb3IgUHJvbWlzZXMgdG8gd29yayBjb3JyZWN0bHkgYXQgcnVudGltZVxuICAgICAgICAgICAgdW5wcm94aWVkUHJvcGVydGllcy5wdXNoKHByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuYWRkKHByb3ApO1xuICAgICAgICAgICAgcHJvbWlzZVtwcm9wXSA9IHVuZGVybHlpbmdQYXJhbXNbcHJvcF07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICgvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCB3YXMgcHJveGllZCB0byB0aGUgcHJvbWlzZSBpbnN0YW5jZVxuICAgICAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoJ3BhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5kZWxldGUocHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2AuLi5wYXJhbXNgIG9yIHNpbWlsYXIgZXhwcmVzc2lvbic7XG4gICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuLy8gU2ltaWxhciB0byBgbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1BhcmFtc1dpdGhEZXZXYXJuaW5nc2AsIGJ1dCBqdXN0XG4vLyBsb2dnaW5nIHRoZSBzeW5jIGFjY2VzcyB3aXRob3V0IGFjdHVhbGx5IGRlZmluaW5nIHRoZSBwYXJhbXMgb24gdGhlIHByb21pc2UuXG5mdW5jdGlvbiBtYWtlRHluYW1pY2FsbHlUcmFja2VkUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdQYXJhbXMsIHN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRQYXJhbXM7XG4gICAgfVxuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PigwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+cmVzb2x2ZSh1bmRlcmx5aW5nUGFyYW1zKSkpO1xuICAgIGNvbnN0IHByb3hpZWRQcm9wZXJ0aWVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHVucHJveGllZFByb3BlcnRpZXMgPSBbXTtcbiAgICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nUGFyYW1zKS5mb3JFYWNoKChwcm9wKT0+e1xuICAgICAgICBpZiAoX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAgICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICAgICAgICAgIHVucHJveGllZFByb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IHdhcyBwcm94aWVkIHRvIHRoZSBwcm9taXNlIGluc3RhbmNlXG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgncGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQgKHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuZGVsZXRlKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKHRhcmdldCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgLi4ucGFyYW1zYCBvciBzaW1pbGFyIGV4cHJlc3Npb24nO1xuICAgICAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihzdG9yZS5yb3V0ZSwgZXhwcmVzc2lvbiwgdW5wcm94aWVkUHJvcGVydGllcyk7XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5vd25LZXlzKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUgJiYgd29ya1VuaXRTdG9yZS50eXBlID09PSAncmVxdWVzdCcgJiYgd29ya1VuaXRTdG9yZS5wcmVyZW5kZXJQaGFzZSA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBXaGVuIHdlJ3JlIHJlbmRlcmluZyBkeW5hbWljYWxseSBpbiBkZXYgd2UgbmVlZCB0byBhZHZhbmNlIG91dCBvZiB0aGVcbiAgICAgICAgLy8gUHJlcmVuZGVyIGVudmlyb25tZW50IHdoZW4gd2UgcmVhZCBSZXF1ZXN0IGRhdGEgc3luY2hyb25vdXNseVxuICAgICAgICBjb25zdCByZXF1ZXN0U3RvcmUgPSB3b3JrVW5pdFN0b3JlO1xuICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYpKHJlcXVlc3RTdG9yZSk7XG4gICAgfVxuICAgIC8vIEluIGFsbCBjYXNlcyB3ZSB3YXJuIG5vcm1hbGx5XG4gICAgaWYgKG1pc3NpbmdQcm9wZXJ0aWVzICYmIG1pc3NpbmdQcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uKTtcbiAgICB9XG59XG5jb25zdCB3YXJuRm9yU3luY0FjY2VzcyA9ICgwLCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlci5jcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KShjcmVhdGVQYXJhbXNBY2Nlc3NFcnJvcik7XG5jb25zdCB3YXJuRm9ySW5jb21wbGV0ZUVudW1lcmF0aW9uID0gKDAsIF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGNyZWF0ZUluY29tcGxldGVFbnVtZXJhdGlvbkVycm9yKTtcbmZ1bmN0aW9uIGNyZWF0ZVBhcmFtc0FjY2Vzc0Vycm9yKHJvdXRlLCBleHByZXNzaW9uKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGAke3ByZWZpeH11c2VkICR7ZXhwcmVzc2lvbn0uIGAgKyBgXFxgcGFyYW1zXFxgIHNob3VsZCBiZSBhd2FpdGVkIGJlZm9yZSB1c2luZyBpdHMgcHJvcGVydGllcy4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTMwN1wiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpIHtcbiAgICBjb25zdCBwcmVmaXggPSByb3V0ZSA/IGBSb3V0ZSBcIiR7cm91dGV9XCIgYCA6ICdUaGlzIHJvdXRlICc7XG4gICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArIGBcXGBwYXJhbXNcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICsgYFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB3ZXJlIG5vdCBhdmFpbGFibGUgdGhyb3VnaCBlbnVtZXJhdGlvbiBgICsgYGJlY2F1c2UgdGhleSBjb25mbGljdCB3aXRoIGJ1aWx0aW4gcHJvcGVydHkgbmFtZXM6IGAgKyBgJHtkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMobWlzc2luZ1Byb3BlcnRpZXMpfS4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTQ4MlwiLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG59XG5mdW5jdGlvbiBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMocHJvcGVydGllcykge1xuICAgIHN3aXRjaChwcm9wZXJ0aWVzLmxlbmd0aCl7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgX2ludmFyaWFudGVycm9yLkludmFyaWFudEVycm9yKCdFeHBlY3RlZCBkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMgdG8gYmUgY2FsbGVkIHdpdGggYSBub24tZW1wdHkgbGlzdCBvZiBzdHJpbmdzLicpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNTMxXCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgYDtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIGBcXGAke3Byb3BlcnRpZXNbMF19XFxgIGFuZCBcXGAke3Byb3BlcnRpZXNbMV19XFxgYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSAnJztcbiAgICAgICAgICAgICAgICBmb3IobGV0IGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGggLSAxOyBpKyspe1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiArPSBgXFxgJHtwcm9wZXJ0aWVzW2ldfVxcYCwgYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYCwgYW5kIFxcYCR7cHJvcGVydGllc1twcm9wZXJ0aWVzLmxlbmd0aCAtIDFdfVxcYGA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICAgICAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFyYW1zLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/request/params.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/request/search-params.js":
/*!****************************************************************!*\
!*** ./node_modules/next/dist/server/request/search-params.js ***!
\****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createPrerenderSearchParamsForClientPage: function() {\n return createPrerenderSearchParamsForClientPage;\n },\n createSearchParamsFromClient: function() {\n return createSearchParamsFromClient;\n },\n createServerSearchParamsForMetadata: function() {\n return createServerSearchParamsForMetadata;\n },\n createServerSearchParamsForServerPage: function() {\n return createServerSearchParamsForServerPage;\n },\n makeErroringExoticSearchParamsForUseCache: function() {\n return makeErroringExoticSearchParamsForUseCache;\n }\n});\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(ssr)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(ssr)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(ssr)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(ssr)/./node_modules/next/dist/server/request/utils.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(ssr)/./node_modules/next/dist/lib/scheduler.js\");\nfunction createSearchParamsFromClient(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderSearchParams(workStore, workUnitStore);\n default:\n }\n }\n return createRenderSearchParams(underlyingSearchParams, workStore);\n}\nconst createServerSearchParamsForMetadata = createServerSearchParamsForServerPage;\nfunction createServerSearchParamsForServerPage(underlyingSearchParams, workStore) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderSearchParams(workStore, workUnitStore);\n default:\n }\n }\n return createRenderSearchParams(underlyingSearchParams, workStore);\n}\nfunction createPrerenderSearchParamsForClientPage(workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (prerenderStore && (prerenderStore.type === 'prerender' || prerenderStore.type === 'prerender-client')) {\n // dynamicIO Prerender\n // We're prerendering in a mode that aborts (dynamicIO) and should stall\n // the promise to ensure the RSC side is considered dynamic\n return (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`searchParams`');\n }\n // We're prerendering in a mode that does not aborts. We resolve the promise without\n // any tracking because we're just transporting a value from server to client where the tracking\n // will be applied.\n return Promise.resolve({});\n}\nfunction createPrerenderSearchParams(workStore, prerenderStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n }\n switch(prerenderStore.type){\n case 'prerender':\n case 'prerender-client':\n // We are in a dynamicIO (PPR or otherwise) prerender\n return makeHangingSearchParams(prerenderStore);\n default:\n // The remaining cases are prerender-ppr and prerender-legacy\n // We are in a legacy static generation and need to interrupt the prerender\n // when search params are accessed.\n return makeErroringExoticSearchParams(workStore, prerenderStore);\n }\n}\nfunction createRenderSearchParams(underlyingSearchParams, workStore) {\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // dictionary object.\n return Promise.resolve({});\n } else {\n if ( true && !workStore.isPrefetchRequest) {\n if (false) {}\n return makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, workStore);\n } else {\n if (false) {}\n return makeUntrackedExoticSearchParams(underlyingSearchParams, workStore);\n }\n }\n}\nconst CachedSearchParams = new WeakMap();\nconst CachedSearchParamsForUseCache = new WeakMap();\nfunction makeHangingSearchParams(prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(prerenderStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`searchParams`');\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n (0, _dynamicrendering.annotateDynamicAccess)(expression, prerenderStore);\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n default:\n {\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n }\n });\n CachedSearchParams.set(prerenderStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringExoticSearchParams(workStore, prerenderStore) {\n const cachedSearchParams = CachedSearchParams.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const underlyingSearchParams = {};\n // For search params we don't construct a ReactPromise because we want to interrupt\n // rendering on any property access that was not set from outside and so we only want\n // to have properties like value and status if React sets them.\n const promise = Promise.resolve(underlyingSearchParams);\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it.\n // We know it isn't a dynamic access because it can only be something\n // that was previously written to the promise and thus not an underlying searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n switch(prop){\n case 'then':\n {\n const expression = '`await searchParams`, `searchParams.then`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n case 'status':\n {\n const expression = '`use(searchParams)`, `searchParams.status`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return;\n }\n default:\n {\n if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n },\n has (target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests trigger dynamic. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string') {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n return false;\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys () {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n if (workStore.dynamicShouldError) {\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(workStore.route, expression);\n } else if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n }\n });\n CachedSearchParams.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeErroringExoticSearchParamsForUseCache(workStore) {\n const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve({});\n const proxiedPromise = new Proxy(promise, {\n get: function get(target, prop, receiver) {\n if (Object.hasOwn(promise, prop)) {\n // The promise has this property directly. we must return it. We know it\n // isn't a dynamic access because it can only be something that was\n // previously written to the promise and thus not an underlying\n // searchParam value\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, get);\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has: function has(target, prop) {\n // We don't expect key checking to be used except for testing the existence of\n // searchParams so we make all has tests throw an error. this means that `promise.then`\n // can resolve to the then function on the Promise prototype but 'then' in promise will assume\n // you are testing whether the searchParams has a 'then' property.\n if (typeof prop === 'string' && (prop === 'then' || !_reflectutils.wellKnownProperties.has(prop))) {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, has);\n }\n return _reflect.ReflectAdapter.has(target, prop);\n },\n ownKeys: function ownKeys() {\n (0, _utils.throwForSearchParamsAccessInUseCache)(workStore, ownKeys);\n }\n });\n CachedSearchParamsForUseCache.set(workStore, proxiedPromise);\n return proxiedPromise;\n}\nfunction makeUntrackedExoticSearchParams(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (!_reflectutils.wellKnownProperties.has(prop)) {\n Object.defineProperty(promise, prop, {\n get () {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(store, workUnitStore);\n return underlyingSearchParams[prop];\n },\n set (value) {\n Object.defineProperty(promise, prop, {\n value,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n return promise;\n}\nfunction makeUntrackedSearchParams(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const promise = Promise.resolve(underlyingSearchParams);\n CachedSearchParams.set(underlyingSearchParams, promise);\n return promise;\n}\nfunction makeDynamicallyTrackedExoticSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n // We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying\n // searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender\n // indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking\n // at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger\n // dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce\n // this initialization concept so we omit the dynamic check until after we've constructed our resolved promise.\n let promiseInitialized = false;\n const proxiedUnderlying = new Proxy(underlyingSearchParams, {\n get (target, prop, receiver) {\n if (typeof prop === 'string' && promiseInitialized) {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(store, workUnitStore);\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (store.dynamicShouldError) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n if (store.dynamicShouldError) {\n const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n return Reflect.ownKeys(target);\n }\n });\n // We don't use makeResolvedReactPromise here because searchParams\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingSearchParams)));\n promise.then(()=>{\n promiseInitialized = true;\n });\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n Object.defineProperty(promise, prop, {\n get () {\n return proxiedUnderlying[prop];\n },\n set (newValue) {\n Object.defineProperty(promise, prop, {\n value: newValue,\n writable: true,\n enumerable: true\n });\n },\n enumerable: true,\n configurable: true\n });\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (prop === 'then' && store.dynamicShouldError) {\n const expression = '`searchParams.then`';\n (0, _utils.throwWithStaticGenerationBailoutErrorWithDynamicError)(store.route, expression);\n }\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n syncIODev(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n syncIODev(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\n// Similar to `makeDynamicallyTrackedExoticSearchParamsWithDevWarnings`, but\n// just logging the sync access without actually defining the search params on\n// the promise.\nfunction makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, store) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const unproxiedProperties = [];\n const promise = Promise.resolve(underlyingSearchParams);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n unproxiedProperties.push(prop);\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n warnForSyncAccess(store.route, expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n const expression = '`Object.keys(searchParams)` or similar';\n warnForIncompleteEnumeration(store.route, expression, unproxiedProperties);\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction syncIODev(route, expression, missingProperties) {\n // In all cases we warn normally\n if (missingProperties && missingProperties.length > 0) {\n warnForIncompleteEnumeration(route, expression, missingProperties);\n } else {\n warnForSyncAccess(route, expression);\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore && workUnitStore.type === 'request' && workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore;\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);\n }\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createSearchAccessError);\nconst warnForIncompleteEnumeration = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createIncompleteEnumerationError);\nfunction createSearchAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E249\",\n enumerable: false,\n configurable: true\n });\n}\nfunction createIncompleteEnumerationError(route, expression, missingProperties) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`searchParams\\` should be awaited before using its properties. ` + `The following properties were not available through enumeration ` + `because they conflict with builtin or well-known property names: ` + `${describeListOfPropertyNames(missingProperties)}. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E2\",\n enumerable: false,\n configurable: true\n });\n}\nfunction describeListOfPropertyNames(properties) {\n switch(properties.length){\n case 0:\n throw Object.defineProperty(new _invarianterror.InvariantError('Expected describeListOfPropertyNames to be called with a non-empty list of strings.'), \"__NEXT_ERROR_CODE\", {\n value: \"E531\",\n enumerable: false,\n configurable: true\n });\n case 1:\n return `\\`${properties[0]}\\``;\n case 2:\n return `\\`${properties[0]}\\` and \\`${properties[1]}\\``;\n default:\n {\n let description = '';\n for(let i = 0; i < properties.length - 1; i++){\n description += `\\`${properties[i]}\\`, `;\n }\n description += `, and \\`${properties[properties.length - 1]}\\``;\n return description;\n }\n }\n}\n\n//# sourceMappingURL=search-params.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBTUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsaUJBQWlCLG1CQUFPLENBQUMsNEhBQXdDO0FBQ2pFLDBCQUEwQixtQkFBTyxDQUFDLDhHQUFpQztBQUNuRSxzQ0FBc0MsbUJBQU8sQ0FBQyx1SEFBZ0Q7QUFDOUYsd0JBQXdCLG1CQUFPLENBQUMsc0dBQWtDO0FBQ2xFLCtCQUErQixtQkFBTyxDQUFDLG9HQUE0QjtBQUNuRSxrREFBa0QsbUJBQU8sQ0FBQyxrSkFBbUQ7QUFDN0csc0JBQXNCLG1CQUFPLENBQUMsOEdBQXNDO0FBQ3BFLGVBQWUsbUJBQU8sQ0FBQyx1RUFBUztBQUNoQyxtQkFBbUIsbUJBQU8sQ0FBQyw0RUFBcUI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQSx3QkFBd0IsY0FBYyxXQUFXLGNBQWM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDJCQUEyQjtBQUMxRCx3Q0FBd0MsY0FBYztBQUN0RDtBQUNBLDBDQUEwQyxrQ0FBa0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3Qvc2VhcmNoLXBhcmFtcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2U6IG51bGwsXG4gICAgY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudDogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YTogbnVsbCxcbiAgICBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlOiBudWxsLFxuICAgIG1ha2VFcnJvcmluZ0V4b3RpY1NlYXJjaFBhcmFtc0ZvclVzZUNhY2hlOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTtcbiAgICB9LFxuICAgIGNyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudDtcbiAgICB9LFxuICAgIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhO1xuICAgIH0sXG4gICAgY3JlYXRlU2VydmVyU2VhcmNoUGFyYW1zRm9yU2VydmVyUGFnZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlO1xuICAgIH0sXG4gICAgbWFrZUVycm9yaW5nRXhvdGljU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gbWFrZUVycm9yaW5nRXhvdGljU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGU7XG4gICAgfVxufSk7XG5jb25zdCBfcmVmbGVjdCA9IHJlcXVpcmUoXCIuLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmdcIik7XG5jb25zdCBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX2ludmFyaWFudGVycm9yID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yXCIpO1xuY29uc3QgX2R5bmFtaWNyZW5kZXJpbmd1dGlscyA9IHJlcXVpcmUoXCIuLi9keW5hbWljLXJlbmRlcmluZy11dGlsc1wiKTtcbmNvbnN0IF9jcmVhdGVkZWR1cGVkYnljYWxsc2l0ZXNlcnZlcmVycm9ybG9nZ2VyID0gcmVxdWlyZShcIi4uL2NyZWF0ZS1kZWR1cGVkLWJ5LWNhbGxzaXRlLXNlcnZlci1lcnJvci1sb2dnZXJcIik7XG5jb25zdCBfcmVmbGVjdHV0aWxzID0gcmVxdWlyZShcIi4uLy4uL3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlsc1wiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL3V0aWxzXCIpO1xuY29uc3QgX3NjaGVkdWxlciA9IHJlcXVpcmUoXCIuLi8uLi9saWIvc2NoZWR1bGVyXCIpO1xuZnVuY3Rpb24gY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpIHtcbiAgICBjb25zdCB3b3JrVW5pdFN0b3JlID0gX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgICBzd2l0Y2god29ya1VuaXRTdG9yZS50eXBlKXtcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG59XG5jb25zdCBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JNZXRhZGF0YSA9IGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U7XG5mdW5jdGlvbiBjcmVhdGVTZXJ2ZXJTZWFyY2hQYXJhbXNGb3JTZXJ2ZXJQYWdlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICAgIHN3aXRjaCh3b3JrVW5pdFN0b3JlLnR5cGUpe1xuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcywgd29ya1N0b3JlKTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2Uod29ya1N0b3JlKSB7XG4gICAgaWYgKHdvcmtTdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAgIC8vIGRpY3Rpb25hcnkgb2JqZWN0LlxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgICB9XG4gICAgY29uc3QgcHJlcmVuZGVyU3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgIGlmIChwcmVyZW5kZXJTdG9yZSAmJiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlcicgfHwgcHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1jbGllbnQnKSkge1xuICAgICAgICAvLyBkeW5hbWljSU8gUHJlcmVuZGVyXG4gICAgICAgIC8vIFdlJ3JlIHByZXJlbmRlcmluZyBpbiBhIG1vZGUgdGhhdCBhYm9ydHMgKGR5bmFtaWNJTykgYW5kIHNob3VsZCBzdGFsbFxuICAgICAgICAvLyB0aGUgcHJvbWlzZSB0byBlbnN1cmUgdGhlIFJTQyBzaWRlIGlzIGNvbnNpZGVyZWQgZHluYW1pY1xuICAgICAgICByZXR1cm4gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgc2VhcmNoUGFyYW1zYCcpO1xuICAgIH1cbiAgICAvLyBXZSdyZSBwcmVyZW5kZXJpbmcgaW4gYSBtb2RlIHRoYXQgZG9lcyBub3QgYWJvcnRzLiBXZSByZXNvbHZlIHRoZSBwcm9taXNlIHdpdGhvdXRcbiAgICAvLyBhbnkgdHJhY2tpbmcgYmVjYXVzZSB3ZSdyZSBqdXN0IHRyYW5zcG9ydGluZyBhIHZhbHVlIGZyb20gc2VydmVyIHRvIGNsaWVudCB3aGVyZSB0aGUgdHJhY2tpbmdcbiAgICAvLyB3aWxsIGJlIGFwcGxpZWQuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG59XG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSkge1xuICAgIGlmICh3b3JrU3RvcmUuZm9yY2VTdGF0aWMpIHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYyB3ZSBvdmVycmlkZSBhbGwgb3RoZXIgbG9naWMgYW5kIGFsd2F5cyBqdXN0IHJldHVybiBhbiBlbXB0eVxuICAgICAgICAvLyBkaWN0aW9uYXJ5IG9iamVjdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfVxuICAgIHN3aXRjaChwcmVyZW5kZXJTdG9yZS50eXBlKXtcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgICAvLyBXZSBhcmUgaW4gYSBkeW5hbWljSU8gKFBQUiBvciBvdGhlcndpc2UpIHByZXJlbmRlclxuICAgICAgICAgICAgcmV0dXJuIG1ha2VIYW5naW5nU2VhcmNoUGFyYW1zKHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIFRoZSByZW1haW5pbmcgY2FzZXMgYXJlIHByZXJlbmRlci1wcHIgYW5kIHByZXJlbmRlci1sZWdhY3lcbiAgICAgICAgICAgIC8vIFdlIGFyZSBpbiBhIGxlZ2FjeSBzdGF0aWMgZ2VuZXJhdGlvbiBhbmQgbmVlZCB0byBpbnRlcnJ1cHQgdGhlIHByZXJlbmRlclxuICAgICAgICAgICAgLy8gd2hlbiBzZWFyY2ggcGFyYW1zIGFyZSBhY2Nlc3NlZC5cbiAgICAgICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdFeG90aWNTZWFyY2hQYXJhbXMod29ya1N0b3JlLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSkge1xuICAgIGlmICh3b3JrU3RvcmUuZm9yY2VTdGF0aWMpIHtcbiAgICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYyB3ZSBvdmVycmlkZSBhbGwgb3RoZXIgbG9naWMgYW5kIGFsd2F5cyBqdXN0IHJldHVybiBhbiBlbXB0eVxuICAgICAgICAvLyBkaWN0aW9uYXJ5IG9iamVjdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmICF3b3JrU3RvcmUuaXNQcmVmZXRjaFJlcXVlc3QpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfRFlOQU1JQ19JTykge1xuICAgICAgICAgICAgICAgIHJldHVybiBtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHdvcmtTdG9yZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9EWU5BTUlDX0lPKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRTZWFyY2hQYXJhbXModW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB3b3JrU3RvcmUpO1xuICAgICAgICB9XG4gICAgfVxufVxuY29uc3QgQ2FjaGVkU2VhcmNoUGFyYW1zID0gbmV3IFdlYWtNYXAoKTtcbmNvbnN0IENhY2hlZFNlYXJjaFBhcmFtc0ZvclVzZUNhY2hlID0gbmV3IFdlYWtNYXAoKTtcbmZ1bmN0aW9uIG1ha2VIYW5naW5nU2VhcmNoUGFyYW1zKHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldChwcmVyZW5kZXJTdG9yZSk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm9taXNlID0gKDAsIF9keW5hbWljcmVuZGVyaW5ndXRpbHMubWFrZUhhbmdpbmdQcm9taXNlKShwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsICdgc2VhcmNoUGFyYW1zYCcpO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0Lmhhc093bihwcm9taXNlLCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBwcm9taXNlIGhhcyB0aGlzIHByb3BlcnR5IGRpcmVjdGx5LiB3ZSBtdXN0IHJldHVybiBpdC5cbiAgICAgICAgICAgICAgICAvLyBXZSBrbm93IGl0IGlzbid0IGEgZHluYW1pYyBhY2Nlc3MgYmVjYXVzZSBpdCBjYW4gb25seSBiZSBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAvLyB0aGF0IHdhcyBwcmV2aW91c2x5IHdyaXR0ZW4gdG8gdGhlIHByb21pc2UgYW5kIHRodXMgbm90IGFuIHVuZGVybHlpbmcgc2VhcmNoUGFyYW0gdmFsdWVcbiAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoKHByb3Ape1xuICAgICAgICAgICAgICAgIGNhc2UgJ3RoZW4nOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2Bhd2FpdCBzZWFyY2hQYXJhbXNgLCBgc2VhcmNoUGFyYW1zLnRoZW5gLCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5hbm5vdGF0ZUR5bmFtaWNBY2Nlc3MpKGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdzdGF0dXMnOlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2B1c2Uoc2VhcmNoUGFyYW1zKWAsIGBzZWFyY2hQYXJhbXMuc3RhdHVzYCwgb3Igc2ltaWxhcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcuYW5ub3RhdGVEeW5hbWljQWNjZXNzKShleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldChwcmVyZW5kZXJTdG9yZSwgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbmZ1bmN0aW9uIG1ha2VFcnJvcmluZ0V4b3RpY1NlYXJjaFBhcmFtcyh3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldCh3b3JrU3RvcmUpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgdW5kZXJseWluZ1NlYXJjaFBhcmFtcyA9IHt9O1xuICAgIC8vIEZvciBzZWFyY2ggcGFyYW1zIHdlIGRvbid0IGNvbnN0cnVjdCBhIFJlYWN0UHJvbWlzZSBiZWNhdXNlIHdlIHdhbnQgdG8gaW50ZXJydXB0XG4gICAgLy8gcmVuZGVyaW5nIG9uIGFueSBwcm9wZXJ0eSBhY2Nlc3MgdGhhdCB3YXMgbm90IHNldCBmcm9tIG91dHNpZGUgYW5kIHNvIHdlIG9ubHkgd2FudFxuICAgIC8vIHRvIGhhdmUgcHJvcGVydGllcyBsaWtlIHZhbHVlIGFuZCBzdGF0dXMgaWYgUmVhY3Qgc2V0cyB0aGVtLlxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmIChPYmplY3QuaGFzT3duKHByb21pc2UsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIHByb21pc2UgaGFzIHRoaXMgcHJvcGVydHkgZGlyZWN0bHkuIHdlIG11c3QgcmV0dXJuIGl0LlxuICAgICAgICAgICAgICAgIC8vIFdlIGtub3cgaXQgaXNuJ3QgYSBkeW5hbWljIGFjY2VzcyBiZWNhdXNlIGl0IGNhbiBvbmx5IGJlIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgIC8vIHRoYXQgd2FzIHByZXZpb3VzbHkgd3JpdHRlbiB0byB0aGUgcHJvbWlzZSBhbmQgdGh1cyBub3QgYW4gdW5kZXJseWluZyBzZWFyY2hQYXJhbSB2YWx1ZVxuICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgY2FzZSAndGhlbic6XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGF3YWl0IHNlYXJjaFBhcmFtc2AsIGBzZWFyY2hQYXJhbXMudGhlbmAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RhdHVzJzpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgdXNlKHNlYXJjaFBhcmFtcylgLCBgc2VhcmNoUGFyYW1zLnN0YXR1c2AsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiAhX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcikod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZXJlbmRlclN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCBleHByZXNzaW9uLCBwcmVyZW5kZXJTdG9yZS5keW5hbWljVHJhY2tpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uKShleHByZXNzaW9uLCB3b3JrU3RvcmUsIHByZXJlbmRlclN0b3JlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICAvLyBXZSBkb24ndCBleHBlY3Qga2V5IGNoZWNraW5nIHRvIGJlIHVzZWQgZXhjZXB0IGZvciB0ZXN0aW5nIHRoZSBleGlzdGVuY2Ugb2ZcbiAgICAgICAgICAgIC8vIHNlYXJjaFBhcmFtcyBzbyB3ZSBtYWtlIGFsbCBoYXMgdGVzdHMgdHJpZ2dlciBkeW5hbWljLiB0aGlzIG1lYW5zIHRoYXQgYHByb21pc2UudGhlbmBcbiAgICAgICAgICAgIC8vIGNhbiByZXNvbHZlIHRvIHRoZSB0aGVuIGZ1bmN0aW9uIG9uIHRoZSBQcm9taXNlIHByb3RvdHlwZSBidXQgJ3RoZW4nIGluIHByb21pc2Ugd2lsbCBhc3N1bWVcbiAgICAgICAgICAgIC8vIHlvdSBhcmUgdGVzdGluZyB3aGV0aGVyIHRoZSBzZWFyY2hQYXJhbXMgaGFzIGEgJ3RoZW4nIHByb3BlcnR5LlxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGR5bmFtaWNJTylcbiAgICAgICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuaGFzKHRhcmdldCwgcHJvcCk7XG4gICAgICAgIH0sXG4gICAgICAgIG93bktleXMgKCkge1xuICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgey4uLnNlYXJjaFBhcmFtc31gLCBgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwcmVyZW5kZXJTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgICAgICAgICAvLyBQUFIgUHJlcmVuZGVyIChubyBkeW5hbWljSU8pXG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnBvc3Rwb25lV2l0aFRyYWNraW5nKSh3b3JrU3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHByZXJlbmRlclN0b3JlLmR5bmFtaWNUcmFja2luZyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKGV4cHJlc3Npb24sIHdvcmtTdG9yZSwgcHJlcmVuZGVyU3RvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldCh3b3JrU3RvcmUsIHByb3hpZWRQcm9taXNlKTtcbiAgICByZXR1cm4gcHJveGllZFByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlRXJyb3JpbmdFeG90aWNTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZSh3b3JrU3RvcmUpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZS5nZXQod29ya1N0b3JlKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKE9iamVjdC5oYXNPd24ocHJvbWlzZSwgcHJvcCkpIHtcbiAgICAgICAgICAgICAgICAvLyBUaGUgcHJvbWlzZSBoYXMgdGhpcyBwcm9wZXJ0eSBkaXJlY3RseS4gd2UgbXVzdCByZXR1cm4gaXQuIFdlIGtub3cgaXRcbiAgICAgICAgICAgICAgICAvLyBpc24ndCBhIGR5bmFtaWMgYWNjZXNzIGJlY2F1c2UgaXQgY2FuIG9ubHkgYmUgc29tZXRoaW5nIHRoYXQgd2FzXG4gICAgICAgICAgICAgICAgLy8gcHJldmlvdXNseSB3cml0dGVuIHRvIHRoZSBwcm9taXNlIGFuZCB0aHVzIG5vdCBhbiB1bmRlcmx5aW5nXG4gICAgICAgICAgICAgICAgLy8gc2VhcmNoUGFyYW0gdmFsdWVcbiAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiAocHJvcCA9PT0gJ3RoZW4nIHx8ICFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSkge1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dGb3JTZWFyY2hQYXJhbXNBY2Nlc3NJblVzZUNhY2hlKSh3b3JrU3RvcmUsIGdldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBoYXM6IGZ1bmN0aW9uIGhhcyh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGV4cGVjdCBrZXkgY2hlY2tpbmcgdG8gYmUgdXNlZCBleGNlcHQgZm9yIHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvZlxuICAgICAgICAgICAgLy8gc2VhcmNoUGFyYW1zIHNvIHdlIG1ha2UgYWxsIGhhcyB0ZXN0cyB0aHJvdyBhbiBlcnJvci4gdGhpcyBtZWFucyB0aGF0IGBwcm9taXNlLnRoZW5gXG4gICAgICAgICAgICAvLyBjYW4gcmVzb2x2ZSB0byB0aGUgdGhlbiBmdW5jdGlvbiBvbiB0aGUgUHJvbWlzZSBwcm90b3R5cGUgYnV0ICd0aGVuJyBpbiBwcm9taXNlIHdpbGwgYXNzdW1lXG4gICAgICAgICAgICAvLyB5b3UgYXJlIHRlc3Rpbmcgd2hldGhlciB0aGUgc2VhcmNoUGFyYW1zIGhhcyBhICd0aGVuJyBwcm9wZXJ0eS5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycgJiYgKHByb3AgPT09ICd0aGVuJyB8fCAhX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkpIHtcbiAgICAgICAgICAgICAgICAoMCwgX3V0aWxzLnRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZSkod29ya1N0b3JlLCBoYXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzOiBmdW5jdGlvbiBvd25LZXlzKCkge1xuICAgICAgICAgICAgKDAsIF91dGlscy50aHJvd0ZvclNlYXJjaFBhcmFtc0FjY2Vzc0luVXNlQ2FjaGUpKHdvcmtTdG9yZSwgb3duS2V5cyk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXNGb3JVc2VDYWNoZS5zZXQod29ya1N0b3JlLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtcyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICAvLyBXZSBkb24ndCB1c2UgbWFrZVJlc29sdmVkUmVhY3RQcm9taXNlIGhlcmUgYmVjYXVzZSBzZWFyY2hQYXJhbXNcbiAgICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJvbWlzZSk7XG4gICAgT2JqZWN0LmtleXModW5kZXJseWluZ1NlYXJjaFBhcmFtcykuZm9yRWFjaCgocHJvcCk9PntcbiAgICAgICAgaWYgKCFfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvbWlzZSwgcHJvcCwge1xuICAgICAgICAgICAgICAgIGdldCAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmtVbml0U3RvcmUgPSBfd29ya3VuaXRhc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcikoc3RvcmUsIHdvcmtVbml0U3RvcmUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZXJseWluZ1NlYXJjaFBhcmFtc1twcm9wXTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG59XG5mdW5jdGlvbiBtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpIHtcbiAgICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNlYXJjaFBhcmFtcztcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBDYWNoZWRTZWFyY2hQYXJhbXMuc2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHByb21pc2UpO1xuICAgIHJldHVybiBwcm9taXNlO1xufVxuZnVuY3Rpb24gbWFrZUR5bmFtaWNhbGx5VHJhY2tlZEV4b3RpY1NlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBzdG9yZSkge1xuICAgIGNvbnN0IGNhY2hlZFNlYXJjaFBhcmFtcyA9IENhY2hlZFNlYXJjaFBhcmFtcy5nZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcyk7XG4gICAgaWYgKGNhY2hlZFNlYXJjaFBhcmFtcykge1xuICAgICAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zO1xuICAgIH1cbiAgICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1bnByb3hpZWRQcm9wZXJ0aWVzID0gW107XG4gICAgLy8gV2UgaGF2ZSBhbiB1bmZvcnR1bmF0ZSBzZXF1ZW5jZSBvZiBldmVudHMgdGhhdCByZXF1aXJlcyB0aGlzIGluaXRpYWxpemF0aW9uIGxvZ2ljLiBXZSB3YW50IHRvIGluc3RydW1lbnQgdGhlIHVuZGVybHlpbmdcbiAgICAvLyBzZWFyY2hQYXJhbXMgb2JqZWN0IHRvIGRldGVjdCBpZiB5b3UgYXJlIGFjY2Vzc2luZyB2YWx1ZXMgaW4gZGV2LiBUaGlzIGlzIHVzZWQgZm9yIHdhcm5pbmdzIGFuZCBmb3IgdGhpbmdzIGxpa2UgdGhlIHN0YXRpYyBwcmVyZW5kZXJcbiAgICAvLyBpbmRpY2F0b3IuIEhvd2V2ZXIgd2hlbiB3ZSBwYXNzIHRoaXMgcHJveHkgdG8gb3VyIFByb21pc2UucmVzb2x2ZSgpIGJlbG93IHRoZSBWTSBjaGVja3MgaWYgdGhlIHJlc29sdmVkIHZhbHVlIGlzIGEgcHJvbWlzZSBieSBsb29raW5nXG4gICAgLy8gYXQgdGhlIGAudGhlbmAgcHJvcGVydHkuIFRvIG91ciBkeW5hbWljIHRyYWNraW5nIGxvZ2ljIHRoaXMgaXMgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBhIGB0aGVuYCBzZWFyY2hQYXJhbSBhbmQgc28gd2Ugd291bGQgbm9ybWFsbHkgdHJpZ2dlclxuICAgIC8vIGR5bmFtaWMgdHJhY2tpbmcuIEhvd2V2ZXIgd2Uga25vdyB0aGF0IHRoaXMgLnRoZW4gaXMgbm90IHJlYWwgZHluYW1pYyBhY2Nlc3MsIGl0J3MganVzdCBob3cgdGhlbmFibGVzIHJlc29sdmUgaW4gc2VxdWVuY2UuIFNvIHdlIGludHJvZHVjZVxuICAgIC8vIHRoaXMgaW5pdGlhbGl6YXRpb24gY29uY2VwdCBzbyB3ZSBvbWl0IHRoZSBkeW5hbWljIGNoZWNrIHVudGlsIGFmdGVyIHdlJ3ZlIGNvbnN0cnVjdGVkIG91ciByZXNvbHZlZCBwcm9taXNlLlxuICAgIGxldCBwcm9taXNlSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICBjb25zdCBwcm94aWVkVW5kZXJseWluZyA9IG5ldyBQcm94eSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiBwcm9taXNlSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAoMCwgX3JlZmxlY3R1dGlscy5kZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgICAgICAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIpKHN0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIGhhcyAodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHN0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBpZiAoc3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgey4uLnNlYXJjaFBhcmFtc31gLCBgT2JqZWN0LmtleXMoc2VhcmNoUGFyYW1zKWAsIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHNlYXJjaFBhcmFtc1xuICAgIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAgIC8vIGluc3RydW1lbnQgdGhlIHByb21pc2Ugd2l0aCBzcHJlYWRhYmxlIHByb3BlcnRpZXMgb2YgUmVhY3RQcm9taXNlLlxuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSk9PigwLCBfc2NoZWR1bGVyLnNjaGVkdWxlSW1tZWRpYXRlKSgoKT0+cmVzb2x2ZSh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKSkpO1xuICAgIHByb21pc2UudGhlbigoKT0+e1xuICAgICAgICBwcm9taXNlSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH0pO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgICAgIC8vIHRydWUgdW5kZXJseWluZyB2YWx1ZSBmb3IgUHJvbWlzZXMgdG8gd29yayBjb3JyZWN0bHkgYXQgcnVudGltZVxuICAgICAgICAgICAgdW5wcm94aWVkUHJvcGVydGllcy5wdXNoKHByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuYWRkKHByb3ApO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsIHByb3AsIHtcbiAgICAgICAgICAgICAgICBnZXQgKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJveGllZFVuZGVybHlpbmdbcHJvcF07XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCBwcm9wLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBwcm94aWVkUHJvbWlzZSA9IG5ldyBQcm94eShwcm9taXNlLCB7XG4gICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgaWYgKHByb3AgPT09ICd0aGVuJyAmJiBzdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BzZWFyY2hQYXJhbXMudGhlbmAnO1xuICAgICAgICAgICAgICAgICgwLCBfdXRpbHMudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkgJiYgKHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSB8fCAvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwcm9taXNlIG5vclxuICAgICAgICAgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtcy5cbiAgICAgICAgICAgICAgICBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApID09PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgc3luY0lPRGV2KHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQgKHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuZGVsZXRlKHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Quc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKTtcbiAgICAgICAgfSxcbiAgICAgICAgaGFzICh0YXJnZXQsIHByb3ApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkgJiYgKHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSB8fCAvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwcm9taXNlIG5vclxuICAgICAgICAgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtcy5cbiAgICAgICAgICAgICAgICBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApID09PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSkoJ3NlYXJjaFBhcmFtcycsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICBzeW5jSU9EZXYoc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgICAgICB9LFxuICAgICAgICBvd25LZXlzICh0YXJnZXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcylgIG9yIHNpbWlsYXInO1xuICAgICAgICAgICAgc3luY0lPRGV2KHN0b3JlLnJvdXRlLCBleHByZXNzaW9uLCB1bnByb3hpZWRQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIENhY2hlZFNlYXJjaFBhcmFtcy5zZXQodW5kZXJseWluZ1NlYXJjaFBhcmFtcywgcHJveGllZFByb21pc2UpO1xuICAgIHJldHVybiBwcm94aWVkUHJvbWlzZTtcbn1cbi8vIFNpbWlsYXIgdG8gYG1ha2VEeW5hbWljYWxseVRyYWNrZWRFeG90aWNTZWFyY2hQYXJhbXNXaXRoRGV2V2FybmluZ3NgLCBidXRcbi8vIGp1c3QgbG9nZ2luZyB0aGUgc3luYyBhY2Nlc3Mgd2l0aG91dCBhY3R1YWxseSBkZWZpbmluZyB0aGUgc2VhcmNoIHBhcmFtcyBvblxuLy8gdGhlIHByb21pc2UuXG5mdW5jdGlvbiBtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMsIHN0b3JlKSB7XG4gICAgY29uc3QgY2FjaGVkU2VhcmNoUGFyYW1zID0gQ2FjaGVkU2VhcmNoUGFyYW1zLmdldCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKTtcbiAgICBpZiAoY2FjaGVkU2VhcmNoUGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRTZWFyY2hQYXJhbXM7XG4gICAgfVxuICAgIGNvbnN0IHByb3hpZWRQcm9wZXJ0aWVzID0gbmV3IFNldCgpO1xuICAgIGNvbnN0IHVucHJveGllZFByb3BlcnRpZXMgPSBbXTtcbiAgICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpO1xuICAgIE9iamVjdC5rZXlzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpLmZvckVhY2goKHByb3ApPT57XG4gICAgICAgIGlmIChfcmVmbGVjdHV0aWxzLndlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAgICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgICAgICAgIC8vIHRydWUgdW5kZXJseWluZyB2YWx1ZSBmb3IgUHJvbWlzZXMgdG8gd29yayBjb3JyZWN0bHkgYXQgcnVudGltZVxuICAgICAgICAgICAgdW5wcm94aWVkUHJvcGVydGllcy5wdXNoKHByb3ApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJveGllZFByb3BlcnRpZXMuYWRkKHByb3ApO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAoIV9yZWZsZWN0dXRpbHMud2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkgJiYgKHByb3hpZWRQcm9wZXJ0aWVzLmhhcyhwcm9wKSB8fCAvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwcm9taXNlIG5vclxuICAgICAgICAgICAgICAgIC8vIHRoZSB1bmRlcmx5aW5nIHNlYXJjaFBhcmFtcy5cbiAgICAgICAgICAgICAgICBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApID09PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICgwLCBfcmVmbGVjdHV0aWxzLmRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MpKCdzZWFyY2hQYXJhbXMnLCBwcm9wKTtcbiAgICAgICAgICAgICAgICAgICAgd2FybkZvclN5bmNBY2Nlc3Moc3RvcmUucm91dGUsIGV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCAodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5kZWxldGUocHJvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwcm9wLCB2YWx1ZSwgcmVjZWl2ZXIpO1xuICAgICAgICB9LFxuICAgICAgICBoYXMgKHRhcmdldCwgcHJvcCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmICghX3JlZmxlY3R1dGlscy53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSAmJiAocHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApIHx8IC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHByb21pc2Ugbm9yXG4gICAgICAgICAgICAgICAgLy8gdGhlIHVuZGVybHlpbmcgc2VhcmNoUGFyYW1zLlxuICAgICAgICAgICAgICAgIFJlZmxlY3QuaGFzKHRhcmdldCwgcHJvcCkgPT09IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gKDAsIF9yZWZsZWN0dXRpbHMuZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KSgnc2VhcmNoUGFyYW1zJywgcHJvcCk7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHN0b3JlLnJvdXRlLCBleHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKTtcbiAgICAgICAgfSxcbiAgICAgICAgb3duS2V5cyAodGFyZ2V0KSB7XG4gICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpYCBvciBzaW1pbGFyJztcbiAgICAgICAgICAgIHdhcm5Gb3JJbmNvbXBsZXRlRW51bWVyYXRpb24oc3RvcmUucm91dGUsIGV4cHJlc3Npb24sIHVucHJveGllZFByb3BlcnRpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBwcm94aWVkUHJvbWlzZSk7XG4gICAgcmV0dXJuIHByb3hpZWRQcm9taXNlO1xufVxuZnVuY3Rpb24gc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uLCBtaXNzaW5nUHJvcGVydGllcykge1xuICAgIC8vIEluIGFsbCBjYXNlcyB3ZSB3YXJuIG5vcm1hbGx5XG4gICAgaWYgKG1pc3NpbmdQcm9wZXJ0aWVzICYmIG1pc3NpbmdQcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbihyb3V0ZSwgZXhwcmVzc2lvbiwgbWlzc2luZ1Byb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uKTtcbiAgICB9XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtVbml0U3RvcmUgJiYgd29ya1VuaXRTdG9yZS50eXBlID09PSAncmVxdWVzdCcgJiYgd29ya1VuaXRTdG9yZS5wcmVyZW5kZXJQaGFzZSA9PT0gdHJ1ZSkge1xuICAgICAgICAvLyBXaGVuIHdlJ3JlIHJlbmRlcmluZyBkeW5hbWljYWxseSBpbiBkZXYgd2UgbmVlZCB0byBhZHZhbmNlIG91dCBvZiB0aGVcbiAgICAgICAgLy8gUHJlcmVuZGVyIGVudmlyb25tZW50IHdoZW4gd2UgcmVhZCBSZXF1ZXN0IGRhdGEgc3luY2hyb25vdXNseVxuICAgICAgICBjb25zdCByZXF1ZXN0U3RvcmUgPSB3b3JrVW5pdFN0b3JlO1xuICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYpKHJlcXVlc3RTdG9yZSk7XG4gICAgfVxufVxuY29uc3Qgd2FybkZvclN5bmNBY2Nlc3MgPSAoMCwgX2NyZWF0ZWRlZHVwZWRieWNhbGxzaXRlc2VydmVyZXJyb3Jsb2dnZXIuY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldikoY3JlYXRlU2VhcmNoQWNjZXNzRXJyb3IpO1xuY29uc3Qgd2FybkZvckluY29tcGxldGVFbnVtZXJhdGlvbiA9ICgwLCBfY3JlYXRlZGVkdXBlZGJ5Y2FsbHNpdGVzZXJ2ZXJlcnJvcmxvZ2dlci5jcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KShjcmVhdGVJbmNvbXBsZXRlRW51bWVyYXRpb25FcnJvcik7XG5mdW5jdGlvbiBjcmVhdGVTZWFyY2hBY2Nlc3NFcnJvcihyb3V0ZSwgZXhwcmVzc2lvbikge1xuICAgIGNvbnN0IHByZWZpeCA9IHJvdXRlID8gYFJvdXRlIFwiJHtyb3V0ZX1cIiBgIDogJ1RoaXMgcm91dGUgJztcbiAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgJHtwcmVmaXh9dXNlZCAke2V4cHJlc3Npb259LiBgICsgYFxcYHNlYXJjaFBhcmFtc1xcYCBzaG91bGQgYmUgYXdhaXRlZCBiZWZvcmUgdXNpbmcgaXRzIHByb3BlcnRpZXMuIGAgKyBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkUyNDlcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gY3JlYXRlSW5jb21wbGV0ZUVudW1lcmF0aW9uRXJyb3Iocm91dGUsIGV4cHJlc3Npb24sIG1pc3NpbmdQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnO1xuICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGAke3ByZWZpeH11c2VkICR7ZXhwcmVzc2lvbn0uIGAgKyBgXFxgc2VhcmNoUGFyYW1zXFxgIHNob3VsZCBiZSBhd2FpdGVkIGJlZm9yZSB1c2luZyBpdHMgcHJvcGVydGllcy4gYCArIGBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgd2VyZSBub3QgYXZhaWxhYmxlIHRocm91Z2ggZW51bWVyYXRpb24gYCArIGBiZWNhdXNlIHRoZXkgY29uZmxpY3Qgd2l0aCBidWlsdGluIG9yIHdlbGwta25vd24gcHJvcGVydHkgbmFtZXM6IGAgKyBgJHtkZXNjcmliZUxpc3RPZlByb3BlcnR5TmFtZXMobWlzc2luZ1Byb3BlcnRpZXMpfS4gYCArIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgdmFsdWU6IFwiRTJcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuZnVuY3Rpb24gZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzKHByb3BlcnRpZXMpIHtcbiAgICBzd2l0Y2gocHJvcGVydGllcy5sZW5ndGgpe1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IF9pbnZhcmlhbnRlcnJvci5JbnZhcmlhbnRFcnJvcignRXhwZWN0ZWQgZGVzY3JpYmVMaXN0T2ZQcm9wZXJ0eU5hbWVzIHRvIGJlIGNhbGxlZCB3aXRoIGEgbm9uLWVtcHR5IGxpc3Qgb2Ygc3RyaW5ncy4nKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTUzMVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYGA7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBgXFxgJHtwcm9wZXJ0aWVzWzBdfVxcYCBhbmQgXFxgJHtwcm9wZXJ0aWVzWzFdfVxcYGA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gJyc7XG4gICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoIC0gMTsgaSsrKXtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gKz0gYFxcYCR7cHJvcGVydGllc1tpXX1cXGAsIGA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICs9IGAsIGFuZCBcXGAke3Byb3BlcnRpZXNbcHJvcGVydGllcy5sZW5ndGggLSAxXX1cXGBgO1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlYXJjaC1wYXJhbXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/request/search-params.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/request/utils.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/server/request/utils.js ***!
\********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isRequestAPICallableInsideAfter: function() {\n return isRequestAPICallableInsideAfter;\n },\n throwForSearchParamsAccessInUseCache: function() {\n return throwForSearchParamsAccessInUseCache;\n },\n throwWithStaticGenerationBailoutError: function() {\n return throwWithStaticGenerationBailoutError;\n },\n throwWithStaticGenerationBailoutErrorWithDynamicError: function() {\n return throwWithStaticGenerationBailoutErrorWithDynamicError;\n }\n});\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _aftertaskasyncstorageexternal = __webpack_require__(/*! ../app-render/after-task-async-storage.external */ \"../app-render/after-task-async-storage.external\");\nfunction throwWithStaticGenerationBailoutError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E576\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E543\",\n enumerable: false,\n configurable: true\n });\n}\nfunction throwForSearchParamsAccessInUseCache(workStore, constructorOpt) {\n const error = Object.defineProperty(new Error(`Route ${workStore.route} used \"searchParams\" inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \"searchParams\" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E634\",\n enumerable: false,\n configurable: true\n });\n Error.captureStackTrace(error, constructorOpt);\n workStore.invalidDynamicUsageError ??= error;\n throw error;\n}\nfunction isRequestAPICallableInsideAfter() {\n const afterTaskStore = _aftertaskasyncstorageexternal.afterTaskAsyncStorage.getStore();\n return (afterTaskStore == null ? void 0 : afterTaskStore.rootTaskSpawnPhase) === 'action';\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3V0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW9DZ0JBLCtCQUErQjtlQUEvQkE7O0lBZEFDLG9DQUFvQztlQUFwQ0E7O0lBbEJBQyxxQ0FBcUM7ZUFBckNBOztJQVNBQyxxREFBcUQ7ZUFBckRBOzs7cURBYnNCOzJEQUNBO0FBRy9CLFNBQVNELHNDQUNkRSxLQUFhLEVBQ2JDLFVBQWtCO0lBRWxCLE1BQU0scUJBRUwsQ0FGSyxJQUFJQyx5QkFBQUEscUJBQXFCLENBQzdCLENBQUMsTUFBTSxFQUFFRixNQUFNLGlEQUFpRCxFQUFFQyxXQUFXLDBIQUEwSCxDQUFDLEdBRHBNO2VBQUE7b0JBQUE7c0JBQUE7SUFFTjtBQUNGO0FBRU8sU0FBU0Ysc0RBQ2RDLEtBQWEsRUFDYkMsVUFBa0I7SUFFbEIsTUFBTSxxQkFFTCxDQUZLLElBQUlDLHlCQUFBQSxxQkFBcUIsQ0FDN0IsQ0FBQyxNQUFNLEVBQUVGLE1BQU0sNEVBQTRFLEVBQUVDLFdBQVcsMEhBQTBILENBQUMsR0FEL047ZUFBQTtvQkFBQTtzQkFBQTtJQUVOO0FBQ0Y7QUFFTyxTQUFTSixxQ0FDZE0sU0FBb0IsRUFDcEJDLGNBQXdCO0lBRXhCLE1BQU1DLFFBQVEscUJBRWIsQ0FGYSxJQUFJQyxNQUNoQixDQUFDLE1BQU0sRUFBRUgsVUFBVUgsS0FBSyxDQUFDLG9WQUFvVixDQUFDLEdBRGxXO2VBQUE7b0JBQUE7c0JBQUE7SUFFZDtJQUVBTSxNQUFNQyxpQkFBaUIsQ0FBQ0YsT0FBT0Q7SUFDL0JELFVBQVVLLHdCQUF3QixLQUFLSDtJQUV2QyxNQUFNQTtBQUNSO0FBRU8sU0FBU1Q7SUFDZCxNQUFNYSxpQkFBaUJDLCtCQUFBQSxxQkFBcUIsQ0FBQ0MsUUFBUTtJQUNyRCxPQUFPRixDQUFBQSxrQkFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsZUFBZ0JHLGtCQUFBQSxNQUF1QjtBQUNoRCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NlcnZlci9yZXF1ZXN0L3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRpY0dlbkJhaWxvdXRFcnJvciB9IGZyb20gJy4uLy4uL2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQnXG5pbXBvcnQgeyBhZnRlclRhc2tBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi9hcHAtcmVuZGVyL2FmdGVyLXRhc2stYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB0eXBlIHsgV29ya1N0b3JlIH0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yKFxuICByb3V0ZTogc3RyaW5nLFxuICBleHByZXNzaW9uOiBzdHJpbmdcbik6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICBgUm91dGUgJHtyb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtleHByZXNzaW9ufS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcihcbiAgcm91dGU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pOiBuZXZlciB7XG4gIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gICAgYFJvdXRlICR7cm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCAke2V4cHJlc3Npb259LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZShcbiAgd29ya1N0b3JlOiBXb3JrU3RvcmUsXG4gIGNvbnN0cnVjdG9yT3B0OiBGdW5jdGlvblxuKTogbmV2ZXIge1xuICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJzZWFyY2hQYXJhbXNcIiBpbnNpZGUgXCJ1c2UgY2FjaGVcIi4gQWNjZXNzaW5nIER5bmFtaWMgZGF0YSBzb3VyY2VzIGluc2lkZSBhIGNhY2hlIHNjb3BlIGlzIG5vdCBzdXBwb3J0ZWQuIElmIHlvdSBuZWVkIHRoaXMgZGF0YSBpbnNpZGUgYSBjYWNoZWQgZnVuY3Rpb24gdXNlIFwic2VhcmNoUGFyYW1zXCIgb3V0c2lkZSBvZiB0aGUgY2FjaGVkIGZ1bmN0aW9uIGFuZCBwYXNzIHRoZSByZXF1aXJlZCBkeW5hbWljIGRhdGEgaW4gYXMgYW4gYXJndW1lbnQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1yZXF1ZXN0LWluLXVzZS1jYWNoZWBcbiAgKVxuXG4gIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKGVycm9yLCBjb25zdHJ1Y3Rvck9wdClcbiAgd29ya1N0b3JlLmludmFsaWREeW5hbWljVXNhZ2VFcnJvciA/Pz0gZXJyb3JcblxuICB0aHJvdyBlcnJvclxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXF1ZXN0QVBJQ2FsbGFibGVJbnNpZGVBZnRlcigpIHtcbiAgY29uc3QgYWZ0ZXJUYXNrU3RvcmUgPSBhZnRlclRhc2tBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICByZXR1cm4gYWZ0ZXJUYXNrU3RvcmU/LnJvb3RUYXNrU3Bhd25QaGFzZSA9PT0gJ2FjdGlvbidcbn1cbiJdLCJuYW1lcyI6WyJpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyIiwidGhyb3dGb3JTZWFyY2hQYXJhbXNBY2Nlc3NJblVzZUNhY2hlIiwidGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvciIsInRocm93V2l0aFN0YXRpY0dlbmVyYXRpb25CYWlsb3V0RXJyb3JXaXRoRHluYW1pY0Vycm9yIiwicm91dGUiLCJleHByZXNzaW9uIiwiU3RhdGljR2VuQmFpbG91dEVycm9yIiwid29ya1N0b3JlIiwiY29uc3RydWN0b3JPcHQiLCJlcnJvciIsIkVycm9yIiwiY2FwdHVyZVN0YWNrVHJhY2UiLCJpbnZhbGlkRHluYW1pY1VzYWdlRXJyb3IiLCJhZnRlclRhc2tTdG9yZSIsImFmdGVyVGFza0FzeW5jU3RvcmFnZSIsImdldFN0b3JlIiwicm9vdFRhc2tTcGF3blBoYXNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/request/utils.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?2eb7":
/*!*********************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/module.compiled.js ***!
\*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nif (false) {} else {\n if (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/app-page.runtime.dev.js */ \"next/dist/compiled/next-server/app-page.runtime.dev.js\");\n }\n } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZC5qcz8yZWI3IiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLEtBQXFDLEVBQUUsRUFjMUMsQ0FBQztBQUNOLFlBQVksSUFBc0M7QUFDbEQsZ0JBQWdCLEtBQXFCLEVBQUUsRUFFMUIsQ0FBQztBQUNkLGdCQUFnQiw0SkFBa0Y7QUFDbEc7QUFDQSxVQUFVLEtBQUssRUFNTjtBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmpzJyk7XG59IGVsc2Uge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX1JFQUNUKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLWV4cGVyaW1lbnRhbC5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS1leHBlcmltZW50YWwucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS10dXJiby1leHBlcmltZW50YWwucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UtdHVyYm8ucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuY29tcGlsZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?2eb7\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22":
/*!*********************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/module.compiled.js ***!
\*********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nif (false) {} else {\n if (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/app-page.runtime.dev.js */ \"next/dist/compiled/next-server/app-page.runtime.dev.js\");\n }\n } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZC5qcz9mYjIyIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRixRQUFRLEtBQXFDLEVBQUUsRUFjMUMsQ0FBQztBQUNOLFlBQVksSUFBc0M7QUFDbEQsZ0JBQWdCLEtBQXFCLEVBQUUsRUFFMUIsQ0FBQztBQUNkLGdCQUFnQiw0SkFBa0Y7QUFDbEc7QUFDQSxVQUFVLEtBQUssRUFNTjtBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmpzJyk7XG59IGVsc2Uge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX1JFQUNUKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLWV4cGVyaW1lbnRhbC5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS1leHBlcmltZW50YWwucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcGFnZS10dXJiby1leHBlcmltZW50YWwucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLXR1cmJvLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXBhZ2UtdHVyYm8ucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1wYWdlLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuY29tcGlsZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/amp-context.js":
/*!***********************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/amp-context.js ***!
\***********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored.contexts.AmpContext;\n\n//# sourceMappingURL=amp-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2FtcC1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2Isc0xBQWlGOztBQUVqRiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9hbXAtY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uQW1wQ29udGV4dDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW1wLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/amp-context.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js":
/*!******************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js ***!
\******************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored.contexts.AppRouterContext;\n\n//# sourceMappingURL=app-router-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2FwcC1yb3V0ZXItY29udGV4dC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDRMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvY29udGV4dHMvYXBwLXJvdXRlci1jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsnY29udGV4dHMnXS5BcHBSb3V0ZXJDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcm91dGVyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js":
/*!********************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js ***!
\********************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored.contexts.HeadManagerContext;\n\n//# sourceMappingURL=head-manager-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2hlYWQtbWFuYWdlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOExBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9oZWFkLW1hbmFnZXItY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uSGVhZE1hbmFnZXJDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZWFkLW1hbmFnZXItY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js":
/*!********************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js ***!
\********************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored.contexts.HooksClientContext;\n\n//# sourceMappingURL=hooks-client-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2hvb2tzLWNsaWVudC1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOExBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9ob29rcy1jbGllbnQtY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uSG9va3NDbGllbnRDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob29rcy1jbGllbnQtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js":
/*!********************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js ***!
\********************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored.contexts.ImageConfigContext;\n\n//# sourceMappingURL=image-config-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2ltYWdlLWNvbmZpZy1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOExBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9pbWFnZS1jb25maWctY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uSW1hZ2VDb25maWdDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1jb25maWctY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js":
/*!**************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js ***!
\**************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored.contexts.RouterContext;\n\n//# sourceMappingURL=router-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL3JvdXRlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IseUxBQW9GOztBQUVwRiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9yb3V0ZXItY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uUm91dGVyQ29udGV4dDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js":
/*!********************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js ***!
\********************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored.contexts.ServerInsertedHtml;\n\n//# sourceMappingURL=server-inserted-html.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL3NlcnZlci1pbnNlcnRlZC1odG1sLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOExBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9zZXJ2ZXItaW5zZXJ0ZWQtaHRtbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uU2VydmVySW5zZXJ0ZWRIdG1sO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXItaW5zZXJ0ZWQtaHRtbC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js":
/*!****************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js ***!
\****************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored[\"react-ssr\"].ReactDOM;\n\n//# sourceMappingURL=react-dom.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1kb20uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYix3TEFBZ0Y7O0FBRWhGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1kb20uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1zc3InXS5SZWFjdERPTTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3QtZG9tLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js":
/*!****************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js ***!
\****************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored[\"react-ssr\"].ReactJsxDevRuntime;\n\n//# sourceMappingURL=react-jsx-dev-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixrTUFBMEY7O0FBRTFGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydyZWFjdC1zc3InXS5SZWFjdEpzeERldlJ1bnRpbWU7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWpzeC1kZXYtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js":
/*!************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js ***!
\************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored[\"react-ssr\"].ReactJsxRuntime;\n\n//# sourceMappingURL=react-jsx-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1qc3gtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLCtMQUF1Rjs7QUFFdkYiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvc3NyL3JlYWN0LWpzeC1ydW50aW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3Qtc3NyJ10uUmVhY3RKc3hSdW50aW1lO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1qc3gtcnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js":
/*!**************************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js ***!
\**************************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored[\"react-ssr\"].ReactServerDOMWebpackClient;\n\n//# sourceMappingURL=react-server-dom-webpack-client.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2stY2xpZW50LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsMk1BQW1HOztBQUVuRyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9zc3IvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ3JlYWN0LXNzciddLlJlYWN0U2VydmVyRE9NV2VicGFja0NsaWVudDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrLWNsaWVudC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js":
/*!************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js ***!
\************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored[\"react-ssr\"].React;\n\n//# sourceMappingURL=react.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLHFMQUE2RTs7QUFFN0UiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvdmVuZG9yZWQvc3NyL3JlYWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3Qtc3NyJ10uUmVhY3Q7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js":
/*!******************************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js ***!
\******************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ReflectAdapter\", ({\n enumerable: true,\n get: function() {\n return ReflectAdapter;\n }\n}));\nclass ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function') {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n}\n\n//# sourceMappingURL=reflect.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlZmxlY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWZsZWN0QWRhcHRlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXI7XG4gICAgfVxufSk7XG5jbGFzcyBSZWZsZWN0QWRhcHRlciB7XG4gICAgc3RhdGljIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5iaW5kKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBzdGF0aWMgc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgfVxuICAgIHN0YXRpYyBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgIH1cbiAgICBzdGF0aWMgZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KHRhcmdldCwgcHJvcCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWZsZWN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/amp-mode.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/shared/lib/amp-mode.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isInAmpMode\", ({\n enumerable: true,\n get: function() {\n return isInAmpMode;\n }\n}));\nfunction isInAmpMode(param) {\n let { ampFirst = false, hybrid = false, hasQuery = false } = param === void 0 ? {} : param;\n return ampFirst || hybrid && hasQuery;\n} //# sourceMappingURL=amp-mode.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLW1vZGUuanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0FBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFlBQVk7SUFBQSxNQUMxQkMsV0FBVyxLQUFLLEVBQ2hCQyxTQUFTLEtBQUssRUFDZEMsV0FBVyxLQUFLLEVBQ2pCLEdBSjJCLG1CQUl4QixDQUFDLElBSnVCO0lBSzFCLE9BQU9GLFlBQWFDLFVBQVVDO0FBQ2hDIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9hbXAtbW9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNJbkFtcE1vZGUoe1xuICBhbXBGaXJzdCA9IGZhbHNlLFxuICBoeWJyaWQgPSBmYWxzZSxcbiAgaGFzUXVlcnkgPSBmYWxzZSxcbn0gPSB7fSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYW1wRmlyc3QgfHwgKGh5YnJpZCAmJiBoYXNRdWVyeSlcbn1cbiJdLCJuYW1lcyI6WyJpc0luQW1wTW9kZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/amp-mode.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/constants.js":
/*!********************************************************!*\
!*** ./node_modules/next/dist/shared/lib/constants.js ***!
\********************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n APP_BUILD_MANIFEST: function() {\n return APP_BUILD_MANIFEST;\n },\n APP_CLIENT_INTERNALS: function() {\n return APP_CLIENT_INTERNALS;\n },\n APP_PATHS_MANIFEST: function() {\n return APP_PATHS_MANIFEST;\n },\n APP_PATH_ROUTES_MANIFEST: function() {\n return APP_PATH_ROUTES_MANIFEST;\n },\n BARREL_OPTIMIZATION_PREFIX: function() {\n return BARREL_OPTIMIZATION_PREFIX;\n },\n BLOCKED_PAGES: function() {\n return BLOCKED_PAGES;\n },\n BUILD_ID_FILE: function() {\n return BUILD_ID_FILE;\n },\n BUILD_MANIFEST: function() {\n return BUILD_MANIFEST;\n },\n CLIENT_PUBLIC_FILES_PATH: function() {\n return CLIENT_PUBLIC_FILES_PATH;\n },\n CLIENT_REFERENCE_MANIFEST: function() {\n return CLIENT_REFERENCE_MANIFEST;\n },\n CLIENT_STATIC_FILES_PATH: function() {\n return CLIENT_STATIC_FILES_PATH;\n },\n CLIENT_STATIC_FILES_RUNTIME_AMP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_AMP;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN_APP;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\n },\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: function() {\n return CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH;\n },\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK: function() {\n return CLIENT_STATIC_FILES_RUNTIME_WEBPACK;\n },\n COMPILER_INDEXES: function() {\n return COMPILER_INDEXES;\n },\n COMPILER_NAMES: function() {\n return COMPILER_NAMES;\n },\n CONFIG_FILES: function() {\n return CONFIG_FILES;\n },\n DEFAULT_RUNTIME_WEBPACK: function() {\n return DEFAULT_RUNTIME_WEBPACK;\n },\n DEFAULT_SANS_SERIF_FONT: function() {\n return DEFAULT_SANS_SERIF_FONT;\n },\n DEFAULT_SERIF_FONT: function() {\n return DEFAULT_SERIF_FONT;\n },\n DEV_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return DEV_CLIENT_MIDDLEWARE_MANIFEST;\n },\n DEV_CLIENT_PAGES_MANIFEST: function() {\n return DEV_CLIENT_PAGES_MANIFEST;\n },\n DYNAMIC_CSS_MANIFEST: function() {\n return DYNAMIC_CSS_MANIFEST;\n },\n EDGE_RUNTIME_WEBPACK: function() {\n return EDGE_RUNTIME_WEBPACK;\n },\n EDGE_UNSUPPORTED_NODE_APIS: function() {\n return EDGE_UNSUPPORTED_NODE_APIS;\n },\n EXPORT_DETAIL: function() {\n return EXPORT_DETAIL;\n },\n EXPORT_MARKER: function() {\n return EXPORT_MARKER;\n },\n FUNCTIONS_CONFIG_MANIFEST: function() {\n return FUNCTIONS_CONFIG_MANIFEST;\n },\n IMAGES_MANIFEST: function() {\n return IMAGES_MANIFEST;\n },\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: function() {\n return INTERCEPTION_ROUTE_REWRITE_MANIFEST;\n },\n MIDDLEWARE_BUILD_MANIFEST: function() {\n return MIDDLEWARE_BUILD_MANIFEST;\n },\n MIDDLEWARE_MANIFEST: function() {\n return MIDDLEWARE_MANIFEST;\n },\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: function() {\n return MIDDLEWARE_REACT_LOADABLE_MANIFEST;\n },\n MODERN_BROWSERSLIST_TARGET: function() {\n return _modernbrowserslisttarget.default;\n },\n NEXT_BUILTIN_DOCUMENT: function() {\n return NEXT_BUILTIN_DOCUMENT;\n },\n NEXT_FONT_MANIFEST: function() {\n return NEXT_FONT_MANIFEST;\n },\n PAGES_MANIFEST: function() {\n return PAGES_MANIFEST;\n },\n PHASE_DEVELOPMENT_SERVER: function() {\n return PHASE_DEVELOPMENT_SERVER;\n },\n PHASE_EXPORT: function() {\n return PHASE_EXPORT;\n },\n PHASE_INFO: function() {\n return PHASE_INFO;\n },\n PHASE_PRODUCTION_BUILD: function() {\n return PHASE_PRODUCTION_BUILD;\n },\n PHASE_PRODUCTION_SERVER: function() {\n return PHASE_PRODUCTION_SERVER;\n },\n PHASE_TEST: function() {\n return PHASE_TEST;\n },\n PRERENDER_MANIFEST: function() {\n return PRERENDER_MANIFEST;\n },\n REACT_LOADABLE_MANIFEST: function() {\n return REACT_LOADABLE_MANIFEST;\n },\n ROUTES_MANIFEST: function() {\n return ROUTES_MANIFEST;\n },\n RSC_MODULE_TYPES: function() {\n return RSC_MODULE_TYPES;\n },\n SERVER_DIRECTORY: function() {\n return SERVER_DIRECTORY;\n },\n SERVER_FILES_MANIFEST: function() {\n return SERVER_FILES_MANIFEST;\n },\n SERVER_PROPS_ID: function() {\n return SERVER_PROPS_ID;\n },\n SERVER_REFERENCE_MANIFEST: function() {\n return SERVER_REFERENCE_MANIFEST;\n },\n STATIC_PROPS_ID: function() {\n return STATIC_PROPS_ID;\n },\n STATIC_STATUS_PAGES: function() {\n return STATIC_STATUS_PAGES;\n },\n STRING_LITERAL_DROP_BUNDLE: function() {\n return STRING_LITERAL_DROP_BUNDLE;\n },\n SUBRESOURCE_INTEGRITY_MANIFEST: function() {\n return SUBRESOURCE_INTEGRITY_MANIFEST;\n },\n SYSTEM_ENTRYPOINTS: function() {\n return SYSTEM_ENTRYPOINTS;\n },\n TRACE_OUTPUT_VERSION: function() {\n return TRACE_OUTPUT_VERSION;\n },\n TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST;\n },\n TURBO_TRACE_DEFAULT_MEMORY_LIMIT: function() {\n return TURBO_TRACE_DEFAULT_MEMORY_LIMIT;\n },\n UNDERSCORE_NOT_FOUND_ROUTE: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE;\n },\n UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE_ENTRY;\n },\n WEBPACK_STATS: function() {\n return WEBPACK_STATS;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./modern-browserslist-target */ \"(ssr)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\"));\nconst COMPILER_NAMES = {\n client: 'client',\n server: 'server',\n edgeServer: 'edge-server'\n};\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\nconst UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found';\nconst UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = \"\" + UNDERSCORE_NOT_FOUND_ROUTE + \"/page\";\nconst PHASE_EXPORT = 'phase-export';\nconst PHASE_PRODUCTION_BUILD = 'phase-production-build';\nconst PHASE_PRODUCTION_SERVER = 'phase-production-server';\nconst PHASE_DEVELOPMENT_SERVER = 'phase-development-server';\nconst PHASE_TEST = 'phase-test';\nconst PHASE_INFO = 'phase-info';\nconst PAGES_MANIFEST = 'pages-manifest.json';\nconst WEBPACK_STATS = 'webpack-stats.json';\nconst APP_PATHS_MANIFEST = 'app-paths-manifest.json';\nconst APP_PATH_ROUTES_MANIFEST = 'app-path-routes-manifest.json';\nconst BUILD_MANIFEST = 'build-manifest.json';\nconst APP_BUILD_MANIFEST = 'app-build-manifest.json';\nconst FUNCTIONS_CONFIG_MANIFEST = 'functions-config-manifest.json';\nconst SUBRESOURCE_INTEGRITY_MANIFEST = 'subresource-integrity-manifest';\nconst NEXT_FONT_MANIFEST = 'next-font-manifest';\nconst EXPORT_MARKER = 'export-marker.json';\nconst EXPORT_DETAIL = 'export-detail.json';\nconst PRERENDER_MANIFEST = 'prerender-manifest.json';\nconst ROUTES_MANIFEST = 'routes-manifest.json';\nconst IMAGES_MANIFEST = 'images-manifest.json';\nconst SERVER_FILES_MANIFEST = 'required-server-files.json';\nconst DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json';\nconst MIDDLEWARE_MANIFEST = 'middleware-manifest.json';\nconst TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST = '_clientMiddlewareManifest.json';\nconst DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json';\nconst REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json';\nconst SERVER_DIRECTORY = 'server';\nconst CONFIG_FILES = [\n 'next.config.js',\n 'next.config.mjs',\n 'next.config.ts'\n];\nconst BUILD_ID_FILE = 'BUILD_ID';\nconst BLOCKED_PAGES = [\n '/_document',\n '/_app',\n '/_error'\n];\nconst CLIENT_PUBLIC_FILES_PATH = 'public';\nconst CLIENT_STATIC_FILES_PATH = 'static';\nconst STRING_LITERAL_DROP_BUNDLE = '__NEXT_DROP_CLIENT_FILE__';\nconst NEXT_BUILTIN_DOCUMENT = '__NEXT_BUILTIN_DOCUMENT__';\nconst BARREL_OPTIMIZATION_PREFIX = '__barrel_optimize__';\nconst CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest';\nconst SERVER_REFERENCE_MANIFEST = 'server-reference-manifest';\nconst MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest';\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = 'middleware-react-loadable-manifest';\nconst INTERCEPTION_ROUTE_REWRITE_MANIFEST = 'interception-route-rewrite-manifest';\nconst DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest';\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\nconst APP_CLIENT_INTERNALS = 'app-pages-internals';\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills';\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\nconst DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime';\nconst EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack';\nconst STATIC_PROPS_ID = '__N_SSG';\nconst SERVER_PROPS_ID = '__N_SSP';\nconst DEFAULT_SERIF_FONT = {\n name: 'Times New Roman',\n xAvgCharWidth: 821,\n azAvgWidth: 854.3953488372093,\n unitsPerEm: 2048\n};\nconst DEFAULT_SANS_SERIF_FONT = {\n name: 'Arial',\n xAvgCharWidth: 904,\n azAvgWidth: 934.5116279069767,\n unitsPerEm: 2048\n};\nconst STATIC_STATUS_PAGES = [\n '/500'\n];\nconst TRACE_OUTPUT_VERSION = 1;\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: 'client',\n server: 'server'\n};\nconst EDGE_UNSUPPORTED_NODE_APIS = [\n 'clearImmediate',\n 'setImmediate',\n 'BroadcastChannel',\n 'ByteLengthQueuingStrategy',\n 'CompressionStream',\n 'CountQueuingStrategy',\n 'DecompressionStream',\n 'DomException',\n 'MessageChannel',\n 'MessageEvent',\n 'MessagePort',\n 'ReadableByteStreamController',\n 'ReadableStreamBYOBRequest',\n 'ReadableStreamDefaultController',\n 'TransformStreamDefaultController',\n 'WritableStreamDefaultController'\n];\nconst SYSTEM_ENTRYPOINTS = new Set([\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP\n]);\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW1DYUEsa0JBQWtCO2VBQWxCQTs7SUFpREFDLG9CQUFvQjtlQUFwQkE7O0lBcERBQyxrQkFBa0I7ZUFBbEJBOztJQUNBQyx3QkFBd0I7ZUFBeEJBOztJQThCQUMsMEJBQTBCO2VBQTFCQTs7SUFMQUMsYUFBYTtlQUFiQTs7SUFEQUMsYUFBYTtlQUFiQTs7SUF2QkFDLGNBQWM7ZUFBZEE7O0lBeUJBQyx3QkFBd0I7ZUFBeEJBOztJQU9BQyx5QkFBeUI7ZUFBekJBOztJQU5BQyx3QkFBd0I7ZUFBeEJBOztJQTRCQUMsK0JBQStCO2VBQS9CQTs7SUFQQUMsZ0NBQWdDO2VBQWhDQTs7SUFDQUMsb0NBQW9DO2VBQXBDQTs7SUFVQUMscUNBQXFDO2VBQXJDQTs7SUFDQUMsNENBQTRDO2VBQTVDQTs7SUFQQUMseUNBQXlDO2VBQXpDQTs7SUFJQUMsbUNBQW1DO2VBQW5DQTs7SUE1RUFDLGdCQUFnQjtlQUFoQkE7O0lBUkFDLGNBQWM7ZUFBZEE7O0lBOENBQyxZQUFZO2VBQVpBOztJQTRDQUMsdUJBQXVCO2VBQXZCQTs7SUFVQUMsdUJBQXVCO2VBQXZCQTs7SUFOQUMsa0JBQWtCO2VBQWxCQTs7SUFuREFDLDhCQUE4QjtlQUE5QkE7O0lBSkFDLHlCQUF5QjtlQUF6QkE7O0lBaUNBQyxvQkFBb0I7ZUFBcEJBOztJQW1CQUMsb0JBQW9CO2VBQXBCQTs7SUE2QkFDLDBCQUEwQjtlQUExQkE7O0lBdEZBQyxhQUFhO2VBQWJBOztJQURBQyxhQUFhO2VBQWJBOztJQUhBQyx5QkFBeUI7ZUFBekJBOztJQU9BQyxlQUFlO2VBQWZBOztJQWdDQUMsbUNBQW1DO2VBQW5DQTs7SUFMQUMseUJBQXlCO2VBQXpCQTs7SUF4QkFDLG1CQUFtQjtlQUFuQkE7O0lBMEJBQyxrQ0FBa0M7ZUFBbENBOztJQXRFSkMsMEJBQTBCO2VBQTFCQSwwQkFBQUEs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d0M7QUFDOUMsTUFBTUMsK0NBQStDc0QsT0FDMUR2RDtBQUVLLE1BQU1PLDBCQUEwQjtBQUNoQyxNQUFNTSx1QkFBdUI7QUFDN0IsTUFBTTRCLGtCQUFrQjtBQUN4QixNQUFNRixrQkFBa0I7QUFDeEIsTUFBTTlCLHFCQUFxQjtJQUNoQytDLE1BQU07SUFDTkMsZUFBZTtJQUNmQyxZQUFZO0lBQ1pDLFlBQVk7QUFDZDtBQUNPLE1BQU1uRCwwQkFBMEI7SUFDckNnRCxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2Q7QUFDTyxNQUFNakIsc0JBQXNCO0lBQUM7Q0FBTztBQUNwQyxNQUFNSSx1QkFBdUI7QUFFN0IsTUFBTUUsbUNBQW1DO0FBRXpDLE1BQU1aLG1CQUFtQjtJQUM5QmdCLFFBQVE7SUFDUkMsUUFBUTtBQUNWO0FBTU8sTUFBTXZDLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sTUFBTStCLHFCQUFxQixJQUFJZSxJQUFZO0lBQ2hEOUQ7SUFDQUk7SUFDQUw7SUFDQUU7Q0FDRCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCBmcm9tICcuL21vZGVybi1icm93c2Vyc2xpc3QtdGFyZ2V0J1xuXG5leHBvcnQgeyBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCB9XG5cbmV4cG9ydCB0eXBlIFZhbHVlT2Y8VD4gPSBSZXF1aXJlZDxUPltrZXlvZiBUXVxuXG5leHBvcnQgY29uc3QgQ09NUElMRVJfTkFNRVMgPSB7XG4gIGNsaWVudDogJ2NsaWVudCcsXG4gIHNlcnZlcjogJ3NlcnZlcicsXG4gIGVkZ2VTZXJ2ZXI6ICdlZGdlLXNlcnZlcicsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIENvbXBpbGVyTmFtZVZhbHVlcyA9IFZhbHVlT2Y8dHlwZW9mIENPTVBJTEVSX05BTUVTPlxuXG5leHBvcnQgY29uc3QgQ09NUElMRVJfSU5ERVhFUzoge1xuICBbY29tcGlsZXJLZXkgaW4gQ29tcGlsZXJOYW1lVmFsdWVzXTogbnVtYmVyXG59ID0ge1xuICBbQ09NUElMRVJfTkFNRVMuY2xpZW50XTogMCxcbiAgW0NPTVBJTEVSX05BTUVTLnNlcnZlcl06IDEsXG4gIFtDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXTogMixcbn0gYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IFVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFID0gJy9fbm90LWZvdW5kJ1xuZXhwb3J0IGNvbnN0IFVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFX0VOVFJZID0gYCR7VU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEV9L3BhZ2VgXG5leHBvcnQgY29uc3QgUEhBU0VfRVhQT1JUID0gJ3BoYXNlLWV4cG9ydCdcbmV4cG9ydCBjb25zdCBQSEFTRV9QUk9EVUNUSU9OX0JVSUxEID0gJ3BoYXNlLXByb2R1Y3Rpb24tYnVpbGQnXG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9TRVJWRVIgPSAncGhhc2UtcHJvZHVjdGlvbi1zZXJ2ZXInXG5leHBvcnQgY29uc3QgUEhBU0VfREVWRUxPUE1FTlRfU0VSVkVSID0gJ3BoYXNlLWRldmVsb3BtZW50LXNlcnZlcidcbmV4cG9ydCBjb25zdCBQSEFTRV9URVNUID0gJ3BoYXNlLXRlc3QnXG5leHBvcnQgY29uc3QgUEhBU0VfSU5GTyA9ICdwaGFzZS1pbmZvJ1xuZXhwb3J0IGNvbnN0IFBBR0VTX01BTklGRVNUID0gJ3BhZ2VzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgV0VCUEFDS19TVEFUUyA9ICd3ZWJwYWNrLXN0YXRzLmpzb24nXG5leHBvcnQgY29uc3QgQVBQX1BBVEhTX01BTklGRVNUID0gJ2FwcC1wYXRocy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIX1JPVVRFU19NQU5JRkVTVCA9ICdhcHAtcGF0aC1yb3V0ZXMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBCVUlMRF9NQU5JRkVTVCA9ICdidWlsZC1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9CVUlMRF9NQU5JRkVTVCA9ICdhcHAtYnVpbGQtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBGVU5DVElPTlNfQ09ORklHX01BTklGRVNUID0gJ2Z1bmN0aW9ucy1jb25maWctbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBTVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QgPSAnc3VicmVzb3VyY2UtaW50ZWdyaXR5LW1hbmlmZXN0J1xuZXhwb3J0IGNvbnN0IE5FWFRfRk9OVF9NQU5JRkVTVCA9ICduZXh0LWZvbnQtbWFuaWZlc3QnXG5leHBvcnQgY29uc3QgRVhQT1JUX01BUktFUiA9ICdleHBvcnQtbWFya2VyLmpzb24nXG5leHBvcnQgY29uc3QgRVhQT1JUX0RFVEFJTCA9ICdleHBvcnQtZGV0YWlsLmpzb24nXG5leHBvcnQgY29uc3QgUFJFUkVOREVSX01BTklGRVNUID0gJ3ByZXJlbmRlci1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFJPVVRFU19NQU5JRkVTVCA9ICdyb3V0ZXMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBJTUFHRVNfTUFOSUZFU1QgPSAnaW1hZ2VzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU0VSVkVSX0ZJTEVTX01BTklGRVNUID0gJ3JlcXVpcmVkLXNlcnZlci1maWxlcy5qc29uJ1xuZXhwb3J0IGNvbnN0IERFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QgPSAnX2RldlBhZ2VzTWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX01BTklGRVNUID0gJ21pZGRsZXdhcmUtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QgPVxuICAnX2NsaWVudE1pZGRsZXdhcmVNYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IERFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCA9ICdfZGV2TWlkZGxld2FyZU1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QgPSAncmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBTRVJWRVJfRElSRUNUT1JZID0gJ3NlcnZlcidcbmV4cG9ydCBjb25zdCBDT05GSUdfRklMRVMgPSBbXG4gICduZXh0LmNvbmZpZy5qcycsXG4gICduZXh0LmNvbmZpZy5tanMnLFxuICAnbmV4dC5jb25maWcudHMnLFxuXVxuZXhwb3J0IGNvbnN0IEJVSUxEX0lEX0ZJTEUgPSAnQlVJTERfSUQnXG5leHBvcnQgY29uc3QgQkxPQ0tFRF9QQUdFUyA9IFsnL19kb2N1bWVudCcsICcvX2FwcCcsICcvX2Vycm9yJ11cbmV4cG9ydCBjb25zdCBDTElFTlRfUFVCTElDX0ZJTEVTX1BBVEggPSAncHVibGljJ1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCA9ICdzdGF0aWMnXG5leHBvcnQgY29uc3QgU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUgPSAnX19ORVhUX0RST1BfQ0xJRU5UX0ZJTEVfXydcbmV4cG9ydCBjb25zdCBORVhUX0JVSUxUSU5fRE9DVU1FTlQgPSAnX19ORVhUX0JVSUxUSU5fRE9DVU1FTlRfXydcbmV4cG9ydCBjb25zdCBCQVJSRUxfT1BUSU1JWkFUSU9OX1BSRUZJWCA9ICdfX2JhcnJlbF9vcHRpbWl6ZV9fJ1xuXG4vLyBzZXJ2ZXIvW2VudHJ5XS9wYWdlX2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfUkVGRVJFTkNFX01BTklGRVNUID0gJ2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdFxuZXhwb3J0IGNvbnN0IFNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QgPSAnc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9taWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0J1xuLy8gc2VydmVyL21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX1JFQUNUX0xPQURBQkxFX01BTklGRVNUID1cbiAgJ21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvaW50ZXJjZXB0aW9uLXJvdXRlLXJld3JpdGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfUkVXUklURV9NQU5JRkVTVCA9XG4gICdpbnRlcmNlcHRpb24tcm91dGUtcmV3cml0ZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9keW5hbWljLWNzcy1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IERZTkFNSUNfQ1NTX01BTklGRVNUID0gJ2R5bmFtaWMtY3NzLW1hbmlmZXN0J1xuXG4vLyBzdGF0aWMvcnVudGltZS9tYWluLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4gPSBgbWFpbmBcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAgPSBgJHtDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTn0tYXBwYFxuLy8gbmV4dCBpbnRlcm5hbCBjbGllbnQgY29tcG9uZW50cyBjaHVuayBmb3IgbGF5b3V0c1xuZXhwb3J0IGNvbnN0IEFQUF9DTElFTlRfSU5URVJOQUxTID0gJ2FwcC1wYWdlcy1pbnRlcm5hbHMnXG4vLyBzdGF0aWMvcnVudGltZS9yZWFjdC1yZWZyZXNoLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1JFQUNUX1JFRlJFU0ggPSBgcmVhY3QtcmVmcmVzaGBcbi8vIHN0YXRpYy9ydW50aW1lL2FtcC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAgPSBgYW1wYFxuLy8gc3RhdGljL3J1bnRpbWUvd2VicGFjay5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9XRUJQQUNLID0gYHdlYnBhY2tgXG4vLyBzdGF0aWMvcnVudGltZS9wb2x5ZmlsbHMuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTID0gJ3BvbHlmaWxscydcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCA9IFN5bWJvbChcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU1xuKVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUlVOVElNRV9XRUJQQUNLID0gJ3dlYnBhY2stcnVudGltZSdcbmV4cG9ydCBjb25zdCBFREdFX1JVTlRJTUVfV0VCUEFDSyA9ICdlZGdlLXJ1bnRpbWUtd2VicGFjaydcbmV4cG9ydCBjb25zdCBTVEFUSUNfUFJPUFNfSUQgPSAnX19OX1NTRydcbmV4cG9ydCBjb25zdCBTRVJWRVJfUFJPUFNfSUQgPSAnX19OX1NTUCdcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFUklGX0ZPTlQgPSB7XG4gIG5hbWU6ICdUaW1lcyBOZXcgUm9tYW4nLFxuICB4QXZnQ2hhcldpZHRoOiA4MjEsXG4gIGF6QXZnV2lkdGg6IDg1NC4zOTUzNDg4MzcyMDkzLFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0FOU19TRVJJRl9GT05UID0ge1xuICBuYW1lOiAnQXJpYWwnLFxuICB4QXZnQ2hhcldpZHRoOiA5MDQsXG4gIGF6QXZnV2lkdGg6IDkzNC41MTE2Mjc5MDY5NzY3LFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IFNUQVRJQ19TVEFUVVNfUEFHRVMgPSBbJy81MDAnXVxuZXhwb3J0IGNvbnN0IFRSQUNFX09VVFBVVF9WRVJTSU9OID0gMVxuLy8gaW4gYE1CYFxuZXhwb3J0IGNvbnN0IFRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUID0gNjAwMFxuXG5leHBvcnQgY29uc3QgUlNDX01PRFVMRV9UWVBFUyA9IHtcbiAgY2xpZW50OiAnY2xpZW50JyxcbiAgc2VydmVyOiAnc2VydmVyJyxcbn0gYXMgY29uc3RcblxuLy8gY29tcGFyaW5nXG4vLyBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL2VkZ2UtcnVudGltZVxuLy8gd2l0aFxuLy8gaHR0cHM6Ly9ub2RlanMub3JnL2RvY3MvbGF0ZXN0L2FwaS9nbG9iYWxzLmh0bWxcbmV4cG9ydCBjb25zdCBFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyA9IFtcbiAgJ2NsZWFySW1tZWRpYXRlJyxcbiAgJ3NldEltbWVkaWF0ZScsXG4gICdCcm9hZGNhc3RDaGFubmVsJyxcbiAgJ0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3knLFxuICAnQ29tcHJlc3Npb25TdHJlYW0nLFxuICAnQ291bnRRdWV1aW5nU3RyYXRlZ3knLFxuICAnRGVjb21wcmVzc2lvblN0cmVhbScsXG4gICdEb21FeGNlcHRpb24nLFxuICAnTWVzc2FnZUNoYW5uZWwnLFxuICAnTWVzc2FnZUV2ZW50JyxcbiAgJ01lc3NhZ2VQb3J0JyxcbiAgJ1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXInLFxuICAnUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdCcsXG4gICdSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1RyYW5zZm9ybVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1dyaXRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXInLFxuXVxuXG5leHBvcnQgY29uc3QgU1lTVEVNX0VOVFJZUE9JTlRTID0gbmV3IFNldDxzdHJpbmc+KFtcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4sXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNILFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QLFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAsXG5dKVxuIl0sIm5hbWVzIjpbIkFQUF9CVUlMRF9NQU5JRkVTVCIsIkFQUF9DTElFTlRfSU5URVJOQUxTIiwiQVBQX1BBVEhTX01BTklGRVNUIiwiQVBQX1BBVEhfUk9VVEVTX01BTklGRVNUIiwiQkFSUkVMX09QVElNSVpBVElPTl9QUkVGSVgiLCJCTE9DS0VEX1BBR0VTIiwiQlVJTERfSURfRklMRSIsIkJVSUxEX01BTklGRVNUIiwiQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIIiwiQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTiIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOX0FQUCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFMiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNIIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1dFQlBBQ0siLCJDT01QSUxFUl9JTkRFWEVTIiwiQ09NUElMRVJfTkFNRVMiLCJDT05GSUdfRklMRVMiLCJERUZBVUxUX1JVTlRJTUVfV0VCUEFDSyIsIkRFRkFVTFRfU0FOU19TRVJJRl9GT05UIiwiREVGQVVMVF9TRVJJRl9GT05UIiwiREVWX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUIiwiREVWX0NMSUVOVF9QQUdFU19NQU5JRkVTVCIsIkRZTkFNSUNfQ1NTX01BTklGRVNUIiwiRURHRV9SVU5USU1FX1dFQlBBQ0siLCJFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyIsIkVYUE9SVF9ERVRBSUwiLCJFWFBPUlRfTUFSS0VSIiwiRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCIsIklNQUdFU19NQU5JRkVTVCIsIklOVEVSQ0VQVElPTl9ST1VURV9SRVdSSVRFX01BTklGRVNUIiwiTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCIsIk1JRERMRVdBUkVfTUFOSUZFU1QiLCJNSURETEVXQVJFX1JFQUNUX0xPQURBQkxFX01BTklGRVNUIiwiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJORVhUX0JVSUxUSU5fRE9DVU1FTlQiLCJORVhUX0ZPTlRfTUFOSUZFU1QiLCJQQUdFU19NQU5JRkVTVCIsIlBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiIsIlBIQVNFX0VYUE9SVCIsIlBIQVNFX0lORk8iLCJQSEFTRV9QUk9EVUNUSU9OX0JVSUxEIiwiUEhBU0VfUFJPRFVDVElPTl9TRVJWRVIiLCJQSEFTRV9URVNUIiwiUFJFUkVOREVSX01BTklGRVNUIiwiUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QiLCJST1VURVNfTUFOSUZFU1QiLCJSU0NfTU9EVUxFX1RZUEVTIiwiU0VSVkVSX0RJUkVDVE9SWSIsIlNFUlZFUl9GSUxFU19NQU5JRkVTVCIsIlNFUlZFUl9QUk9QU19JRCIsIlNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QiLCJTVEFUSUNfUFJPUFNfSUQiLCJTVEFUSUNfU1RBVFVTX1BBR0VTIiwiU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUiLCJTVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QiLCJTWVNURU1fRU5UUllQT0lOVFMiLCJUUkFDRV9PVVRQVVRfVkVSU0lPTiIsIlRVUkJPUEFDS19DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIlRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUIiwiVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEUiLCJVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSIsIldFQlBBQ0tfU1RBVFMiLCJjbGllbnQiLCJzZXJ2ZXIiLCJlZGdlU2VydmVyIiwiU3ltYm9sIiwibmFtZSIsInhBdmdDaGFyV2lkdGgiLCJhekF2Z1dpZHRoIiwidW5pdHNQZXJFbSIsIlNldCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/constants.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/error-source.js":
/*!***********************************************************!*\
!*** ./node_modules/next/dist/shared/lib/error-source.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n decorateServerError: function() {\n return decorateServerError;\n },\n getErrorSource: function() {\n return getErrorSource;\n }\n});\nconst symbolError = Symbol.for('NextjsError');\nfunction getErrorSource(error) {\n return error[symbolError] || null;\n}\nfunction decorateServerError(error, type) {\n Object.defineProperty(error, symbolError, {\n writable: false,\n enumerable: false,\n configurable: false,\n value: type\n });\n} //# sourceMappingURL=error-source.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3Itc291cmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVFnQkEsbUJBQW1CO2VBQW5CQTs7SUFOQUMsY0FBYztlQUFkQTs7O0FBRmhCLE1BQU1DLGNBQWNDLE9BQU9DLEdBQUcsQ0FBQztBQUV4QixTQUFTSCxlQUFlSSxLQUFZO0lBQ3pDLE9BQVFBLEtBQWEsQ0FBQ0gsWUFBWSxJQUFJO0FBQ3hDO0FBSU8sU0FBU0Ysb0JBQW9CSyxLQUFZLEVBQUVDLElBQXFCO0lBQ3JFQyxPQUFPQyxjQUFjLENBQUNILE9BQU9ILGFBQWE7UUFDeENPLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxjQUFjO1FBQ2RDLE9BQU9OO0lBQ1Q7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvZXJyb3Itc291cmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHN5bWJvbEVycm9yID0gU3ltYm9sLmZvcignTmV4dGpzRXJyb3InKVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JTb3VyY2UoZXJyb3I6IEVycm9yKTogJ3NlcnZlcicgfCAnZWRnZS1zZXJ2ZXInIHwgbnVsbCB7XG4gIHJldHVybiAoZXJyb3IgYXMgYW55KVtzeW1ib2xFcnJvcl0gfHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBFcnJvclNvdXJjZVR5cGUgPSAnZWRnZS1zZXJ2ZXInIHwgJ3NlcnZlcidcblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29yYXRlU2VydmVyRXJyb3IoZXJyb3I6IEVycm9yLCB0eXBlOiBFcnJvclNvdXJjZVR5cGUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycm9yLCBzeW1ib2xFcnJvciwge1xuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiB0eXBlLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImRlY29yYXRlU2VydmVyRXJyb3IiLCJnZXRFcnJvclNvdXJjZSIsInN5bWJvbEVycm9yIiwiU3ltYm9sIiwiZm9yIiwiZXJyb3IiLCJ0eXBlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ3cml0YWJsZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ2YWx1ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/error-source.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/errors/constants.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/errors/constants.js ***!
\***************************************************************/
/***/ ((module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"MISSING_ROOT_TAGS_ERROR\", ({\n enumerable: true,\n get: function() {\n return MISSING_ROOT_TAGS_ERROR;\n }\n}));\nconst MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3JzL2NvbnN0YW50cy5qcyIsIm1hcHBpbmdzIjoiOzs7OzJEQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSwwQkFBMEIiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9zaGFyZWQvbGliL2Vycm9ycy9jb25zdGFudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE1JU1NJTkdfUk9PVF9UQUdTX0VSUk9SID0gJ05FWFRfTUlTU0lOR19ST09UX1RBR1MnXG4iXSwibmFtZXMiOlsiTUlTU0lOR19ST09UX1RBR1NfRVJST1IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/errors/constants.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/format-webpack-messages.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/format-webpack-messages.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("/**\nMIT License\n\nCopyright (c) 2015-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return formatWebpackMessages;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"(ssr)/./node_modules/next/dist/compiled/strip-ansi/index.js\"));\n// This file is based on https://github.com/facebook/create-react-app/blob/7b1a32be6ec9f99a6c9a3c66813f3ac09c4736b9/packages/react-dev-utils/formatWebpackMessages.js\n// It's been edited to remove chalk and CRA-specific logic\nconst friendlySyntaxErrorLabel = 'Syntax error:';\nconst WEBPACK_BREAKING_CHANGE_POLYFILLS = '\\n\\nBREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.';\nfunction isLikelyASyntaxError(message) {\n return (0, _stripansi.default)(message).includes(friendlySyntaxErrorLabel);\n}\nlet hadMissingSassError = false;\n// Cleans up webpack error messages.\nfunction formatMessage(message, verbose, importTraceNote) {\n // TODO: Replace this once webpack 5 is stable\n if (typeof message === 'object' && message.message) {\n const filteredModuleTrace = message.moduleTrace && message.moduleTrace.filter((trace)=>!/next-(middleware|client-pages|route|edge-function)-loader\\.js/.test(trace.originName));\n let body = message.message;\n const breakingChangeIndex = body.indexOf(WEBPACK_BREAKING_CHANGE_POLYFILLS);\n if (breakingChangeIndex >= 0) {\n body = body.slice(0, breakingChangeIndex);\n }\n message = (message.moduleName ? (0, _stripansi.default)(message.moduleName) + '\\n' : '') + (message.file ? (0, _stripansi.default)(message.file) + '\\n' : '') + body + (message.details && verbose ? '\\n' + message.details : '') + (filteredModuleTrace && filteredModuleTrace.length ? (importTraceNote || '\\n\\nImport trace for requested module:') + filteredModuleTrace.map((trace)=>\"\\n\" + trace.moduleName).join('') : '') + (message.stack && verbose ? '\\n' + message.stack : '');\n }\n let lines = message.split('\\n');\n // Strip Webpack-added headers off errors/warnings\n // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js\n lines = lines.filter((line)=>!/Module [A-z ]+\\(from/.test(line));\n // Transform parsing error into syntax error\n // TODO: move this to our ESLint formatter?\n lines = lines.map((line)=>{\n const parsingError = /Line (\\d+):(?:(\\d+):)?\\s*Parsing error: (.+)$/.exec(line);\n if (!parsingError) {\n return line;\n }\n const [, errorLine, errorColumn, errorMessage] = parsingError;\n return friendlySyntaxErrorLabel + \" \" + errorMessage + \" (\" + errorLine + \":\" + errorColumn + \")\";\n });\n message = lines.join('\\n');\n // Smoosh syntax errors (commonly found in CSS)\n message = message.replace(/SyntaxError\\s+\\((\\d+):(\\d+)\\)\\s*(.+?)\\n/g, \"\" + friendlySyntaxErrorLabel + \" $3 ($1:$2)\\n\");\n // Clean up export errors\n message = message.replace(/^.*export '(.+?)' was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$2'.\");\n message = message.replace(/^.*export 'default' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$2' does not contain a default export (imported as '$1').\");\n message = message.replace(/^.*export '(.+?)' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$3' (imported as '$2').\");\n lines = message.split('\\n');\n // Remove leading newline\n if (lines.length > 2 && lines[1].trim() === '') {\n lines.splice(1, 1);\n }\n // Cleans up verbose \"module not found\" messages for files and packages.\n if (lines[1] && lines[1].startsWith('Module not found: ')) {\n lines = [\n lines[0],\n lines[1].replace('Error: ', '').replace('Module not found: Cannot find file:', 'Cannot find file:'),\n ...lines.slice(2)\n ];\n }\n // Add helpful message for users trying to use Sass for the first time\n if (lines[1] && lines[1].match(/Cannot find module.+sass/)) {\n // ./file.module.scss (<<loader info>>) => ./file.module.scss\n const firstLine = lines[0].split('!');\n lines[0] = firstLine[firstLine.length - 1];\n lines[1] = \"To use Next.js' built-in Sass support, you first need to install `sass`.\\n\";\n lines[1] += 'Run `npm i sass` or `yarn add sass` inside your workspace.\\n';\n lines[1] += '\\nLearn more: https://nextjs.org/docs/messages/install-sass';\n // dispose of unhelpful stack trace\n lines = lines.slice(0, 2);\n hadMissingSassError = true;\n } else if (hadMissingSassError && message.match(/(sass-loader|resolve-url-loader: CSS error)/)) {\n // dispose of unhelpful stack trace following missing sass module\n lines = [];\n }\n if (!verbose) {\n message = lines.join('\\n');\n // Internal stacks are generally useless so we strip them... with the\n // exception of stacks containing `webpack:` because they're normally\n // from user code generated by Webpack. For more information see\n // https://github.com/facebook/create-react-app/pull/1050\n message = message.replace(/^\\s*at\\s((?!webpack:).)*:\\d+:\\d+[\\s)]*(\\n|$)/gm, '') // at ... ...:x:y\n ;\n message = message.replace(/^\\s*at\\s<anonymous>(\\n|$)/gm, '') // at <anonymous>\n ;\n message = message.replace(/File was processed with these loaders:\\n(.+[\\\\/](next[\\\\/]dist[\\\\/].+|@next[\\\\/]react-refresh-utils[\\\\/]loader)\\.js\\n)*You may need an additional loader to handle the result of these loaders.\\n/g, '');\n lines = message.split('\\n');\n }\n // Remove duplicated newlines\n lines = lines.filter((line, index, arr)=>index === 0 || line.trim() !== '' || line.trim() !== arr[index - 1].trim());\n // Reassemble the message\n message = lines.join('\\n');\n return message.trim();\n}\nfunction formatWebpackMessages(json, verbose) {\n const formattedErrors = json.errors.map((message)=>{\n const isUnknownNextFontError = message.message.includes('An error occurred in `next/font`.');\n return formatMessage(message, isUnknownNextFontError || verbose);\n });\n const formattedWarnings = json.warnings.map((message)=>{\n return formatMessage(message, verbose);\n });\n // Reorder errors to put the most relevant ones first.\n let reactServerComponentsError = -1;\n for(let i = 0; i < formattedErrors.length; i++){\n const error = formattedErrors[i];\n if (error.includes('ReactServerComponentsError')) {\n reactServerComponentsError = i;\n break;\n }\n }\n // Move the reactServerComponentsError to the top if it exists\n if (reactServerComponentsError !== -1) {\n const error = formattedErrors.splice(reactServerComponentsError, 1);\n formattedErrors.unshift(error[0]);\n }\n const result = {\n ...json,\n errors: formattedErrors,\n warnings: formattedWarnings\n };\n if (!verbose && result.errors.some(isLikelyASyntaxError)) {\n // If there are any syntax errors, show just them.\n result.errors = result.errors.filter(isLikelyASyntaxError);\n result.warnings = [];\n }\n return result;\n} //# sourceMappingURL=format-webpack-messages.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXMuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkE7Ozs7MkNBaUtBOzs7ZUFBd0JBOzs7O2dGQWhLRjtBQUN0QixxS0FBcUs7QUFDckssMERBQTBEO0FBRTFELE1BQU1DLDJCQUEyQjtBQUVqQyxNQUFNQyxvQ0FDSjtBQUVGLFNBQVNDLHFCQUFxQkMsT0FBZTtJQUMzQyxPQUFPQyxDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxTQUFTRSxRQUFRLENBQUNMO0FBQ3JDO0FBRUEsSUFBSU0sc0JBQXNCO0FBRTFCLG9DQUFvQztBQUNwQyxTQUFTQyxjQUNQSixPQUFZLEVBQ1pLLE9BQWlCLEVBQ2pCQyxlQUF5QjtJQUV6Qiw4Q0FBOEM7SUFDOUMsSUFBSSxPQUFPTixZQUFZLFlBQVlBLFFBQVFBLE9BQU8sRUFBRTtRQUNsRCxNQUFNTyxzQkFDSlAsUUFBUVEsV0FBVyxJQUNuQlIsUUFBUVEsV0FBVyxDQUFDQyxNQUFNLENBQ3hCLENBQUNDLFFBQ0MsQ0FBQyxnRUFBZ0VDLElBQUksQ0FDbkVELE1BQU1FLFVBQVU7UUFJeEIsSUFBSUMsT0FBT2IsUUFBUUEsT0FBTztRQUMxQixNQUFNYyxzQkFBc0JELEtBQUtFLE9BQU8sQ0FBQ2pCO1FBQ3pDLElBQUlnQix1QkFBdUIsR0FBRztZQUM1QkQsT0FBT0EsS0FBS0csS0FBSyxDQUFDLEdBQUdGO1FBQ3ZCO1FBRUFkLFVBQ0dBLENBQUFBLFFBQVFpQixVQUFVLEdBQUdoQixDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxRQUFRaUIsVUFBVSxJQUFJLE9BQU8sR0FBQyxHQUM3RGpCLENBQUFBLFFBQVFrQixJQUFJLEdBQUdqQixDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxRQUFRa0IsSUFBSSxJQUFJLE9BQU8sR0FBQyxHQUNsREwsT0FDQ2IsQ0FBQUEs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QUNELEtBQUssQ0FBQyxFQUFFO0lBQ2xDO0lBRUEsTUFBTUUsU0FBUztRQUNiLEdBQUdWLElBQUk7UUFDUEUsUUFBUUQ7UUFDUkksVUFBVUQ7SUFDWjtJQUNBLElBQUksQ0FBQ3ZDLFdBQVc2QyxPQUFPUixNQUFNLENBQUNTLElBQUksQ0FBQ3BELHVCQUF1QjtRQUN4RCxrREFBa0Q7UUFDbERtRCxPQUFPUixNQUFNLEdBQUdRLE9BQU9SLE1BQU0sQ0FBQ2pDLE1BQU0sQ0FBQ1Y7UUFDckNtRCxPQUFPTCxRQUFRLEdBQUcsRUFBRTtJQUN0QjtJQUNBLE9BQU9LO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2Zvcm1hdC13ZWJwYWNrLW1lc3NhZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuTUlUIExpY2Vuc2VcblxuQ29weXJpZ2h0IChjKSAyMDE1LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG5jb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG5JTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG5TT0ZUV0FSRS5cbiovXG5pbXBvcnQgc3RyaXBBbnNpIGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpJ1xuLy8gVGhpcyBmaWxlIGlzIGJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwL2Jsb2IvN2IxYTMyYmU2ZWM5Zjk5YTZjOWEzYzY2ODEzZjNhYzA5YzQ3MzZiOS9wYWNrYWdlcy9yZWFjdC1kZXYtdXRpbHMvZm9ybWF0V2VicGFja01lc3NhZ2VzLmpzXG4vLyBJdCdzIGJlZW4gZWRpdGVkIHRvIHJlbW92ZSBjaGFsayBhbmQgQ1JBLXNwZWNpZmljIGxvZ2ljXG5cbmNvbnN0IGZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCA9ICdTeW50YXggZXJyb3I6J1xuXG5jb25zdCBXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMgPVxuICAnXFxuXFxuQlJFQUtJTkcgQ0hBTkdFOiB3ZWJwYWNrIDwgNSB1c2VkIHRvIGluY2x1ZGUgcG9seWZpbGxzIGZvciBub2RlLmpzIGNvcmUgbW9kdWxlcyBieSBkZWZhdWx0LidcblxuZnVuY3Rpb24gaXNMaWtlbHlBU3ludGF4RXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gIHJldHVybiBzdHJpcEFuc2kobWVzc2FnZSkuaW5jbHVkZXMoZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsKVxufVxuXG5sZXQgaGFkTWlzc2luZ1Nhc3NFcnJvciA9IGZhbHNlXG5cbi8vIENsZWFucyB1cCB3ZWJwYWNrIGVycm9yIG1lc3NhZ2VzLlxuZnVuY3Rpb24gZm9ybWF0TWVzc2FnZShcbiAgbWVzc2FnZTogYW55LFxuICB2ZXJib3NlPzogYm9vbGVhbixcbiAgaW1wb3J0VHJhY2VOb3RlPzogYm9vbGVhblxuKSB7XG4gIC8vIFRPRE86IFJlcGxhY2UgdGhpcyBvbmNlIHdlYnBhY2sgNSBpcyBzdGFibGVcbiAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnb2JqZWN0JyAmJiBtZXNzYWdlLm1lc3NhZ2UpIHtcbiAgICBjb25zdCBmaWx0ZXJlZE1vZHVsZVRyYWNlID1cbiAgICAgIG1lc3NhZ2UubW9kdWxlVHJhY2UgJiZcbiAgICAgIG1lc3NhZ2UubW9kdWxlVHJhY2UuZmlsdGVyKFxuICAgICAgICAodHJhY2U6IGFueSkgPT5cbiAgICAgICAgICAhL25leHQtKG1pZGRsZXdhcmV8Y2xpZW50LXBhZ2VzfHJvdXRlfGVkZ2UtZnVuY3Rpb24pLWxvYWRlclxcLmpzLy50ZXN0KFxuICAgICAgICAgICAgdHJhY2Uub3JpZ2luTmFtZVxuICAgICAgICAgIClcbiAgICAgIClcblxuICAgIGxldCBib2R5ID0gbWVzc2FnZS5tZXNzYWdlXG4gICAgY29uc3QgYnJlYWtpbmdDaGFuZ2VJbmRleCA9IGJvZHkuaW5kZXhPZihXRUJQQUNLX0JSRUFLSU5HX0NIQU5HRV9QT0xZRklMTFMpXG4gICAgaWYgKGJyZWFraW5nQ2hhbmdlSW5kZXggPj0gMCkge1xuICAgICAgYm9keSA9IGJvZHkuc2xpY2UoMCwgYnJlYWtpbmdDaGFuZ2VJbmRleClcbiAgICB9XG5cbiAgICBtZXNzYWdlID1cbiAgICAgIChtZXNzYWdlLm1vZHVsZU5hbWUgPyBzdHJpcEFuc2kobWVzc2FnZS5tb2R1bGVOYW1lKSArICdcXG4nIDogJycpICtcbiAgICAgIChtZXNzYWdlLmZpbGUgPyBzdHJpcEFuc2kobWVzc2FnZS5maWxlKSArICdcXG4nIDogJycpICtcbiAgICAgIGJvZHkgK1xuICAgICAgKG1lc3NhZ2UuZGV0YWlscyAmJiB2ZXJib3NlID8gJ1xcbicgKyBtZXNzYWdlLmRldGFpbHMgOiAnJykgK1xuICAgICAgKGZpbHRlcmVkTW9kdWxlVHJhY2UgJiYgZmlsdGVyZWRNb2R1bGVUcmFjZS5sZW5ndGhcbiAgICAgICAgPyAoaW1wb3J0VHJhY2VOb3RlIHx8ICdcXG5cXG5JbXBvcnQgdHJhY2UgZm9yIHJlcXVlc3RlZCBtb2R1bGU6JykgK1xuICAgICAgICAgIGZpbHRlcmVkTW9kdWxlVHJhY2VcbiAgICAgICAgICAgIC5tYXAoKHRyYWNlOiBhbnkpID0+IGBcXG4ke3RyYWNlLm1vZHVsZU5hbWV9YClcbiAgICAgICAgICAgIC5qb2luKCcnKVxuICAgICAgICA6ICcnKSArXG4gICAgICAobWVzc2FnZS5zdGFjayAmJiB2ZXJib3NlID8gJ1xcbicgKyBtZXNzYWdlLnN0YWNrIDogJycpXG4gIH1cbiAgbGV0IGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJylcblxuICAvLyBTdHJpcCBXZWJwYWNrLWFkZGVkIGhlYWRlcnMgb2ZmIGVycm9ycy93YXJuaW5nc1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay93ZWJwYWNrL2Jsb2IvbWFzdGVyL2xpYi9Nb2R1bGVFcnJvci5qc1xuICBsaW5lcyA9IGxpbmVzLmZpbHRlcigobGluZTogc3RyaW5nKSA9PiAhL01vZHVsZSBbQS16IF0rXFwoZnJvbS8udGVzdChsaW5lKSlcblxuICAvLyBUcmFuc2Zvcm0gcGFyc2luZyBlcnJvciBpbnRvIHN5bnRheCBlcnJvclxuICAvLyBUT0RPOiBtb3ZlIHRoaXMgdG8gb3VyIEVTTGludCBmb3JtYXR0ZXI/XG4gIGxpbmVzID0gbGluZXMubWFwKChsaW5lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBwYXJzaW5nRXJyb3IgPSAvTGluZSAoXFxkKyk6KD86KFxcZCspOik/XFxzKlBhcnNpbmcgZXJyb3I6ICguKykkLy5leGVjKFxuICAgICAgbGluZVxuICAgIClcbiAgICBpZiAoIXBhcnNpbmdFcnJvcikge1xuICAgICAgcmV0dXJuIGxpbmVcbiAgICB9XG4gICAgY29uc3QgWywgZXJyb3JMaW5lLCBlcnJvckNvbHVtbiwgZXJyb3JNZXNzYWdlXSA9IHBhcnNpbmdFcnJvclxuICAgIHJldHVybiBgJHtmcmllbmRseVN5bnRheEVycm9yTGFiZWx9ICR7ZXJyb3JNZXNzYWdlfSAoJHtlcnJvckxpbmV9OiR7ZXJyb3JDb2x1bW59KWBcbiAgfSlcblxuICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJylcbiAgLy8gU21vb3NoIHN5bnRheCBlcnJvcnMgKGNvbW1vbmx5IGZvdW5kIGluIENTUylcbiAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAvU3ludGF4RXJyb3JcXHMrXFwoKFxcZCspOihcXGQrKVxcKVxccyooLis/KVxcbi9nLFxuICAgIGAke2ZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbH0gJDMgKCQxOiQyKVxcbmBcbiAgKVxuICAvLyBDbGVhbiB1cCBleHBvcnQgZXJyb3JzXG4gIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgL14uKmV4cG9ydCAnKC4rPyknIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSxcbiAgICBgQXR0ZW1wdGVkIGltcG9ydCBlcnJvcjogJyQxJyBpcyBub3QgZXhwb3J0ZWQgZnJvbSAnJDInLmBcbiAgKVxuICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgIC9eLipleHBvcnQgJ2RlZmF1bHQnIFxcKGltcG9ydGVkIGFzICcoLis/KSdcXCkgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLFxuICAgIGBBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDInIGRvZXMgbm90IGNvbnRhaW4gYSBkZWZhdWx0IGV4cG9ydCAoaW1wb3J0ZWQgYXMgJyQxJykuYFxuICApXG4gIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgL14uKmV4cG9ydCAnKC4rPyknIFxcKGltcG9ydGVkIGFzICcoLis/KSdcXCkgd2FzIG5vdCBmb3VuZCBpbiAnKC4rPyknLiokL2dtLFxuICAgIGBBdHRlbXB0ZWQgaW1wb3J0IGVycm9yOiAnJDEnIGlzIG5vdCBleHBvcnRlZCBmcm9tICckMycgKGltcG9ydGVkIGFzICckMicpLmBcbiAgKVxuICBsaW5lcyA9IG1lc3NhZ2Uuc3BsaXQoJ1xcbicpXG5cbiAgLy8gUmVtb3ZlIGxlYWRpbmcgbmV3bGluZVxuICBpZiAobGluZXMubGVuZ3RoID4gMiAmJiBsaW5lc1sxXS50cmltKCkgPT09ICcnKSB7XG4gICAgbGluZXMuc3BsaWNlKDEsIDEpXG4gIH1cblxuICAvLyBDbGVhbnMgdXAgdmVyYm9zZSBcIm1vZHVsZSBub3QgZm91bmRcIiBtZXNzYWdlcyBmb3IgZmlsZXMgYW5kIHBhY2thZ2VzLlxuICBpZiAobGluZXNbMV0gJiYgbGluZXNbMV0uc3RhcnRzV2l0aCgnTW9kdWxlIG5vdCBmb3VuZDogJykpIHtcbiAgICBsaW5lcyA9IFtcbiAgICAgIGxpbmVzWzBdLFxuICAgICAgbGluZXNbMV1cbiAgICAgICAgLnJlcGxhY2UoJ0Vycm9yOiAnLCAnJylcbiAgICAgICAgLnJlcGxhY2UoJ01vZHVsZSBub3QgZm91bmQ6IENhbm5vdCBmaW5kIGZpbGU6JywgJ0Nhbm5vdCBmaW5kIGZpbGU6JyksXG4gICAgICAuLi5saW5lcy5zbGljZSgyKSxcbiAgICBdXG4gIH1cblxuICAvLyBBZGQgaGVscGZ1bCBtZXNzYWdlIGZvciB1c2VycyB0cnlpbmcgdG8gdXNlIFNhc3MgZm9yIHRoZSBmaXJzdCB0aW1lXG4gIGlmIChsaW5lc1sxXSAmJiBsaW5lc1sxXS5tYXRjaCgvQ2Fubm90IGZpbmQgbW9kdWxlLitzYXNzLykpIHtcbiAgICAvLyAuL2ZpbGUubW9kdWxlLnNjc3MgKDw8bG9hZGVyIGluZm8+PikgPT4gLi9maWxlLm1vZHVsZS5zY3NzXG4gICAgY29uc3QgZmlyc3RMaW5lID0gbGluZXNbMF0uc3BsaXQoJyEnKVxuICAgIGxpbmVzWzBdID0gZmlyc3RMaW5lW2ZpcnN0TGluZS5sZW5ndGggLSAxXVxuXG4gICAgbGluZXNbMV0gPVxuICAgICAgXCJUbyB1c2UgTmV4dC5qcycgYnVpbHQtaW4gU2FzcyBzdXBwb3J0LCB5b3UgZmlyc3QgbmVlZCB0byBpbnN0YWxsIGBzYXNzYC5cXG5cIlxuICAgIGxpbmVzWzFdICs9ICdSdW4gYG5wbSBpIHNhc3NgIG9yIGB5YXJuIGFkZCBzYXNzYCBpbnNpZGUgeW91ciB3b3Jrc3BhY2UuXFxuJ1xuICAgIGxpbmVzWzFdICs9ICdcXG5MZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnN0YWxsLXNhc3MnXG5cbiAgICAvLyBkaXNwb3NlIG9mIHVuaGVscGZ1bCBzdGFjayB0cmFjZVxuICAgIGxpbmVzID0gbGluZXMuc2xpY2UoMCwgMilcbiAgICBoYWRNaXNzaW5nU2Fzc0Vycm9yID0gdHJ1ZVxuICB9IGVsc2UgaWYgKFxuICAgIGhhZE1pc3NpbmdTYXNzRXJyb3IgJiZcbiAgICBtZXNzYWdlLm1hdGNoKC8oc2Fzcy1sb2FkZXJ8cmVzb2x2ZS11cmwtbG9hZGVyOiBDU1MgZXJyb3IpLylcbiAgKSB7XG4gICAgLy8gZGlzcG9zZSBvZiB1bmhlbHBmdWwgc3RhY2sgdHJhY2UgZm9sbG93aW5nIG1pc3Npbmcgc2FzcyBtb2R1bGVcbiAgICBsaW5lcyA9IFtdXG4gIH1cblxuICBpZiAoIXZlcmJvc2UpIHtcbiAgICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJylcbiAgICAvLyBJbnRlcm5hbCBzdGFja3MgYXJlIGdlbmVyYWxseSB1c2VsZXNzIHNvIHdlIHN0cmlwIHRoZW0uLi4gd2l0aCB0aGVcbiAgICAvLyBleGNlcHRpb24gb2Ygc3RhY2tzIGNvbnRhaW5pbmcgYHdlYnBhY2s6YCBiZWNhdXNlIHRoZXkncmUgbm9ybWFsbHlcbiAgICAvLyBmcm9tIHVzZXIgY29kZSBnZW5lcmF0ZWQgYnkgV2VicGFjay4gRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2NyZWF0ZS1yZWFjdC1hcHAvcHVsbC8xMDUwXG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgIC9eXFxzKmF0XFxzKCg/IXdlYnBhY2s6KS4pKjpcXGQrOlxcZCtbXFxzKV0qKFxcbnwkKS9nbSxcbiAgICAgICcnXG4gICAgKSAvLyBhdCAuLi4gLi4uOng6eVxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL15cXHMqYXRcXHM8YW5vbnltb3VzPihcXG58JCkvZ20sICcnKSAvLyBhdCA8YW5vbnltb3VzPlxuXG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAgIC9GaWxlIHdhcyBwcm9jZXNzZWQgd2l0aCB0aGVzZSBsb2FkZXJzOlxcbiguK1tcXFxcL10obmV4dFtcXFxcL11kaXN0W1xcXFwvXS4rfEBuZXh0W1xcXFwvXXJlYWN0LXJlZnJlc2gtdXRpbHNbXFxcXC9dbG9hZGVyKVxcLmpzXFxuKSpZb3UgbWF5IG5lZWQgYW4gYWRkaXRpb25hbCBsb2FkZXIgdG8gaGFuZGxlIHRoZSByZXN1bHQgb2YgdGhlc2UgbG9hZGVycy5cXG4vZyxcbiAgICAgICcnXG4gICAgKVxuXG4gICAgbGluZXMgPSBtZXNzYWdlLnNwbGl0KCdcXG4nKVxuICB9XG5cbiAgLy8gUmVtb3ZlIGR1cGxpY2F0ZWQgbmV3bGluZXNcbiAgbGluZXMgPSAobGluZXMgYXMgc3RyaW5nW10pLmZpbHRlcihcbiAgICAobGluZSwgaW5kZXgsIGFycikgPT5cbiAgICAgIGluZGV4ID09PSAwIHx8IGxpbmUudHJpbSgpICE9PSAnJyB8fCBsaW5lLnRyaW0oKSAhPT0gYXJyW2luZGV4IC0gMV0udHJpbSgpXG4gIClcblxuICAvLyBSZWFzc2VtYmxlIHRoZSBtZXNzYWdlXG4gIG1lc3NhZ2UgPSBsaW5lcy5qb2luKCdcXG4nKVxuICByZXR1cm4gbWVzc2FnZS50cmltKClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9ybWF0V2VicGFja01lc3NhZ2VzKGpzb246IGFueSwgdmVyYm9zZT86IGJvb2xlYW4pIHtcbiAgY29uc3QgZm9ybWF0dGVkRXJyb3JzID0ganNvbi5lcnJvcnMubWFwKChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICBjb25zdCBpc1Vua25vd25OZXh0Rm9udEVycm9yID0gbWVzc2FnZS5tZXNzYWdlLmluY2x1ZGVzKFxuICAgICAgJ0FuIGVycm9yIG9jY3VycmVkIGluIGBuZXh0L2ZvbnRgLidcbiAgICApXG4gICAgcmV0dXJuIGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgaXNVbmtub3duTmV4dEZvbnRFcnJvciB8fCB2ZXJib3NlKVxuICB9KVxuICBjb25zdCBmb3JtYXR0ZWRXYXJuaW5ncyA9IGpzb24ud2FybmluZ3MubWFwKChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICByZXR1cm4gZm9ybWF0TWVzc2FnZShtZXNzYWdlLCB2ZXJib3NlKVxuICB9KVxuXG4gIC8vIFJlb3JkZXIgZXJyb3JzIHRvIHB1dCB0aGUgbW9zdCByZWxldmFudCBvbmVzIGZpcnN0LlxuICBsZXQgcmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgPSAtMVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkRXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgZXJyb3IgPSBmb3JtYXR0ZWRFcnJvcnNbaV1cbiAgICBpZiAoZXJyb3IuaW5jbHVkZXMoJ1JlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yJykpIHtcbiAgICAgIHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yID0gaVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICAvLyBNb3ZlIHRoZSByZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciB0byB0aGUgdG9wIGlmIGl0IGV4aXN0c1xuICBpZiAocmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgIT09IC0xKSB7XG4gICAgY29uc3QgZXJyb3IgPSBmb3JtYXR0ZWRFcnJvcnMuc3BsaWNlKHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yLCAxKVxuICAgIGZvcm1hdHRlZEVycm9ycy51bnNoaWZ0KGVycm9yWzBdKVxuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLmpzb24sXG4gICAgZXJyb3JzOiBmb3JtYXR0ZWRFcnJvcnMsXG4gICAgd2FybmluZ3M6IGZvcm1hdHRlZFdhcm5pbmdzLFxuICB9XG4gIGlmICghdmVyYm9zZSAmJiByZXN1bHQuZXJyb3JzLnNvbWUoaXNMaWtlbHlBU3ludGF4RXJyb3IpKSB7XG4gICAgLy8gSWYgdGhlcmUgYXJlIGFueSBzeW50YXggZXJyb3JzLCBzaG93IGp1c3QgdGhlbS5cbiAgICByZXN1bHQuZXJyb3JzID0gcmVzdWx0LmVycm9ycy5maWx0ZXIoaXNMaWtlbHlBU3ludGF4RXJyb3IpXG4gICAgcmVzdWx0Lndhcm5pbmdzID0gW11cbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG4iXSwibmFtZXMiOlsiZm9ybWF0V2VicGFja01lc3NhZ2VzIiwiZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsIiwiV0VCUEFDS19CUkVBS0lOR19DSEFOR0VfUE9MWUZJTExTIiwiaXNMaWtlbHlBU3ludGF4RXJyb3IiLCJtZXNzYWdlIiwic3RyaXBBbnNpIiwiaW5jbHVkZXMiLCJoYWRNaXNzaW5nU2Fzc0Vycm9yIiwiZm9ybWF0TWVzc2FnZSIsInZlcmJvc2UiLCJpbXBvcnRUcmFjZU5vdGUiLCJmaWx0ZXJlZE1vZHVsZVRyYWNlIiwibW9kdWxlVHJhY2UiLCJmaWx0ZXIiLCJ0cmFjZSIsInRlc3QiLCJvcmlnaW5OYW1lIiwiYm9keSIsImJyZWFraW5nQ2hhbmdlSW5kZXgiLCJpbmRleE9mIiwic2xpY2UiLCJtb2R1bGVOYW1lIiwiZmlsZSIsImRldGFpbHMiLCJsZW5ndGgiLCJtYXAiLCJqb2luIiwic3RhY2siLCJsaW5lcyIsInNwbGl0IiwibGluZSIsInBhcnNpbmdFcnJvciIsImV4ZWMiLCJlcnJvckxpbmUiLCJlcnJvckNvbHVtbiIsImVycm9yTWVzc2FnZSIsInJlcGxhY2UiLCJ0cmltIiwic3BsaWNlIiwic3RhcnRzV2l0aCIsIm1hdGNoIiwiZmlyc3RMaW5lIiwiaW5kZXgiLCJhcnIiLCJqc29uIiwiZm9ybWF0dGVkRXJyb3JzIiwiZXJyb3JzIiwiaXNVbmtub3duTmV4dEZvbnRFcnJvciIsImZvcm1hdHRlZFdhcm5pbmdzIiwid2FybmluZ3MiLCJyZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciIsImkiLCJlcnJvciIsInVuc2hpZnQiLCJyZXN1bHQiLCJzb21lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/format-webpack-messages.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/get-img-props.js":
/*!************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/get-img-props.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getImgProps\", ({\n enumerable: true,\n get: function() {\n return getImgProps;\n }\n}));\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nconst _imageblursvg = __webpack_require__(/*! ./image-blur-svg */ \"(ssr)/./node_modules/next/dist/shared/lib/image-blur-svg.js\");\nconst _imageconfig = __webpack_require__(/*! ./image-config */ \"(ssr)/./node_modules/next/dist/shared/lib/image-config.js\");\nconst VALID_LOADING_VALUES = [\n 'lazy',\n 'eager',\n undefined\n];\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined\n];\nfunction isStaticRequire(src) {\n return src.default !== undefined;\n}\nfunction isStaticImageData(src) {\n return src.src !== undefined;\n}\nfunction isStaticImport(src) {\n return !!src && typeof src === 'object' && (isStaticRequire(src) || isStaticImageData(src));\n}\nconst allImgs = new Map();\nlet perfObserver;\nfunction getInt(x) {\n if (typeof x === 'undefined') {\n return x;\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN;\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10);\n }\n return NaN;\n}\nfunction getWidths(param, width, sizes) {\n let { deviceSizes, allSizes } = param;\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g;\n const percentSizes = [];\n for(let match; match = viewportWidthRe.exec(sizes); match){\n percentSizes.push(parseInt(match[2]));\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01;\n return {\n widths: allSizes.filter((s)=>s >= deviceSizes[0] * smallestRatio),\n kind: 'w'\n };\n }\n return {\n widths: allSizes,\n kind: 'w'\n };\n }\n if (typeof width !== 'number') {\n return {\n widths: deviceSizes,\n kind: 'w'\n };\n }\n const widths = [\n ...new Set(// > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [\n width,\n width * 2 /*, width * 3*/ \n ].map((w)=>allSizes.find((p)=>p >= w) || allSizes[allSizes.length - 1]))\n ];\n return {\n widths,\n kind: 'x'\n };\n}\nfunction generateImgAttrs(param) {\n let { config, src, unoptimized, width, quality, sizes, loader } = param;\n if (unoptimized) {\n return {\n src,\n srcSet: undefined,\n sizes: undefined\n };\n }\n const { widths, kind } = getWidths(config, width, sizes);\n const last = widths.length - 1;\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths.map((w, i)=>loader({\n config,\n src,\n quality,\n width: w\n }) + \" \" + (kind === 'w' ? w : i + 1) + kind).join(', '),\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({\n config,\n src,\n quality,\n width: widths[last]\n })\n };\n}\nfunction getImgProps(param, _state) {\n let { src, sizes, unoptimized = false, priority = false, loading, className, quality, width, height, fill = false, style, overrideSrc, onLoad, onLoadingComplete, placeholder = 'empty', blurDataURL, fetchPriority, decoding = 'async', layout, objectFit, objectPosition, lazyBoundary, lazyRoot, ...rest } = param;\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state;\n let config;\n let c = imgConf || _imageconfig.imageConfigDefault;\n if ('allSizes' in c) {\n config = c;\n } else {\n var _c_qualities;\n const allSizes = [\n ...c.deviceSizes,\n ...c.imageSizes\n ].sort((a, b)=>a - b);\n const deviceSizes = c.deviceSizes.sort((a, b)=>a - b);\n const qualities = (_c_qualities = c.qualities) == null ? void 0 : _c_qualities.sort((a, b)=>a - b);\n config = {\n ...c,\n allSizes,\n deviceSizes,\n qualities\n };\n }\n if (typeof defaultLoader === 'undefined') {\n throw Object.defineProperty(new Error('images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'), \"__NEXT_ERROR_CODE\", {\n value: \"E163\",\n enumerable: false,\n configurable: true\n });\n }\n let loader = rest.loader || defaultLoader;\n // Remove property so it's not spread on <img> element\n delete rest.loader;\n delete rest.srcSet;\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader;\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" is missing \"loader\" prop.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader\"), \"__NEXT_ERROR_CODE\", {\n value: \"E252\",\n enumerable: false,\n configurable: true\n });\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader;\n loader = (obj)=>{\n const { config: _, ...opts } = obj;\n return customImageLoader(opts);\n };\n }\n if (layout) {\n if (layout === 'fill') {\n fill = true;\n }\n const layoutToStyle = {\n intrinsic: {\n maxWidth: '100%',\n height: 'auto'\n },\n responsive: {\n width: '100%',\n height: 'auto'\n }\n };\n const layoutToSizes = {\n responsive: '100vw',\n fill: '100vw'\n };\n const layoutStyle = layoutToStyle[layout];\n if (layoutStyle) {\n style = {\n ...style,\n ...layoutStyle\n };\n }\n const layoutSizes = layoutToSizes[layout];\n if (layoutSizes && !sizes) {\n sizes = layoutSizes;\n }\n }\n let staticSrc = '';\n let widthInt = getInt(width);\n let heightInt = getInt(height);\n let blurWidth;\n let blurHeight;\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src;\n if (!staticImageData.src) {\n throw Object.defineProperty(new Error(\"An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received \" + JSON.stringify(staticImageData)), \"__NEXT_ERROR_CODE\", {\n value: \"E460\",\n enumerable: false,\n configurable: true\n });\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw Object.defineProperty(new Error(\"An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received \" + JSON.stringify(staticImageData)), \"__NEXT_ERROR_CODE\", {\n value: \"E48\",\n enumerable: false,\n configurable: true\n });\n }\n blurWidth = staticImageData.blurWidth;\n blurHeight = staticImageData.blurHeight;\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width;\n heightInt = staticImageData.height;\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width;\n heightInt = Math.round(staticImageData.height * ratio);\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height;\n widthInt = Math.round(staticImageData.width * ratio);\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc;\n let isLazy = !priority && (loading === 'lazy' || typeof loading === 'undefined');\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n isLazy = false;\n }\n if (config.unoptimized) {\n unoptimized = true;\n }\n if (isDefaultLoader && !config.dangerouslyAllowSVG && src.split('?', 1)[0].endsWith('.svg')) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true;\n }\n const qualityInt = getInt(quality);\n if (true) {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw Object.defineProperty(new Error(\"Image Optimization using the default loader is not compatible with `{ output: 'export' }`.\\n Possible solutions:\\n - Remove `{ output: 'export' }` and run \\\"next start\\\" to run server mode including the Image Optimization API.\\n - Configure `{ images: { unoptimized: true } }` in `next.config.js` to disable the Image Optimization API.\\n Read more: https://nextjs.org/docs/messages/export-image-api\"), \"__NEXT_ERROR_CODE\", {\n value: \"E500\",\n enumerable: false,\n configurable: true\n });\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true;\n } else {\n if (fill) {\n if (width) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"width\" and \"fill\" properties. Only one should be used.'), \"__NEXT_ERROR_CODE\", {\n value: \"E96\",\n enumerable: false,\n configurable: true\n });\n }\n if (height) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"height\" and \"fill\" properties. Only one should be used.'), \"__NEXT_ERROR_CODE\", {\n value: \"E115\",\n enumerable: false,\n configurable: true\n });\n }\n if ((style == null ? void 0 : style.position) && style.position !== 'absolute') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.'), \"__NEXT_ERROR_CODE\", {\n value: \"E216\",\n enumerable: false,\n configurable: true\n });\n }\n if ((style == null ? void 0 : style.width) && style.width !== '100%') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.'), \"__NEXT_ERROR_CODE\", {\n value: \"E73\",\n enumerable: false,\n configurable: true\n });\n }\n if ((style == null ? void 0 : style.height) && style.height !== '100%') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.'), \"__NEXT_ERROR_CODE\", {\n value: \"E404\",\n enumerable: false,\n configurable: true\n });\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" is missing required \"width\" property.'), \"__NEXT_ERROR_CODE\", {\n value: \"E451\",\n enumerable: false,\n configurable: true\n });\n } else if (isNaN(widthInt)) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has invalid \"width\" property. Expected a numeric value in pixels but received \"' + width + '\".'), \"__NEXT_ERROR_CODE\", {\n value: \"E66\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof heightInt === 'undefined') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" is missing required \"height\" property.'), \"__NEXT_ERROR_CODE\", {\n value: \"E397\",\n enumerable: false,\n configurable: true\n });\n } else if (isNaN(heightInt)) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has invalid \"height\" property. Expected a numeric value in pixels but received \"' + height + '\".'), \"__NEXT_ERROR_CODE\", {\n value: \"E444\",\n enumerable: false,\n configurable: true\n });\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.'), \"__NEXT_ERROR_CODE\", {\n value: \"E176\",\n enumerable: false,\n configurable: true\n });\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.'), \"__NEXT_ERROR_CODE\", {\n value: \"E21\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has invalid \"loading\" property. Provided \"' + loading + '\" should be one of ' + VALID_LOADING_VALUES.map(String).join(',') + \".\"), \"__NEXT_ERROR_CODE\", {\n value: \"E357\",\n enumerable: false,\n configurable: true\n });\n }\n if (priority && loading === 'lazy') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"priority\" and \"loading=\\'lazy\\'\" properties. Only one should be used.'), \"__NEXT_ERROR_CODE\", {\n value: \"E218\",\n enumerable: false,\n configurable: true\n });\n }\n if (placeholder !== 'empty' && placeholder !== 'blur' && !placeholder.startsWith('data:image/')) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has invalid \"placeholder\" property \"' + placeholder + '\".'), \"__NEXT_ERROR_CODE\", {\n value: \"E431\",\n enumerable: false,\n configurable: true\n });\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.');\n }\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = [\n 'jpeg',\n 'png',\n 'webp',\n 'avif'\n ] // should match next-image-loader\n ;\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has \"placeholder=\\'blur\\'\" property but is missing the \"blurDataURL\" property.\\n Possible solutions:\\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\\n - Change the \"src\" property to a static import with one of the supported file types: ' + VALID_BLUR_EXT.join(',') + ' (animated images not supported)\\n - Remove the \"placeholder\" property, effectively no blur effect\\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url'), \"__NEXT_ERROR_CODE\", {\n value: \"E371\",\n enumerable: false,\n configurable: true\n });\n }\n if ('ref' in rest) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.');\n }\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75\n });\n let url;\n try {\n url = new URL(urlStr);\n } catch (err) {}\n if (urlStr === src || url && url.pathname === src && !url.search) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width\");\n }\n }\n if (onLoadingComplete) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.');\n }\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot\n })){\n if (legacyValue) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has legacy prop \"' + legacyKey + '\". Did you forget to run the codemod?' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13\");\n }\n }\n if (false) {}\n }\n const imgStyle = Object.assign(fill ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition\n } : {}, showAltText ? {} : {\n color: 'transparent'\n }, style);\n const backgroundImage = !blurComplete && placeholder !== 'empty' ? placeholder === 'blur' ? 'url(\"data:image/svg+xml;charset=utf-8,' + (0, _imageblursvg.getImageBlurSvg)({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '',\n objectFit: imgStyle.objectFit\n }) + '\")' : 'url(\"' + placeholder + '\")' // assume `data:image/`\n : null;\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(imgStyle.objectFit) ? imgStyle.objectFit : imgStyle.objectFit === 'fill' ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover';\n let placeholderStyle = backgroundImage ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage\n } : {};\n if (true) {\n if (placeholderStyle.backgroundImage && placeholder === 'blur' && (blurDataURL == null ? void 0 : blurDataURL.startsWith('/'))) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = 'url(\"' + blurDataURL + '\")';\n }\n }\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader\n });\n if (true) {\n if (false) {}\n }\n const props = {\n ...rest,\n loading: isLazy ? 'lazy' : loading,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: {\n ...imgStyle,\n ...placeholderStyle\n },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src\n };\n const meta = {\n unoptimized,\n priority,\n placeholder,\n fill\n };\n return {\n props,\n meta\n };\n} //# sourceMappingURL=get-img-props.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZ2V0LWltZy1wcm9wcy5qcyIsIm1hcHBpbmdzIjoiOzs7OytDQWlRZ0JBOzs7ZUFBQUE7OztzQ0FqUVM7MENBQ087eUNBQ0c7QUErRW5DLE1BQU1DLHVCQUF1QjtJQUFDO0lBQVE7SUFBU0M7Q0FBVTtBQUV6RCw4REFBOEQ7QUFDOUQsTUFBTUMsaUNBQWlDO0lBQ3JDO0lBQ0E7SUFDQTtJQUNBO0lBQ0FEO0NBQ0Q7QUE0QkQsU0FBU0UsZ0JBQ1BDLEdBQW9DO0lBRXBDLE9BQVFBLElBQXNCQyxPQUFPLEtBQUtKO0FBQzVDO0FBRUEsU0FBU0ssa0JBQ1BGLEdBQW9DO0lBRXBDLE9BQVFBLElBQXdCQSxHQUFHLEtBQUtIO0FBQzFDO0FBRUEsU0FBU00sZUFBZUgsR0FBMEI7SUFDaEQsT0FDRSxDQUFDLENBQUNBLE9BQ0YsT0FBT0EsUUFBUSxZQUNkRCxDQUFBQSxnQkFBZ0JDLFFBQ2ZFLGtCQUFrQkYsSUFBQUEsQ0FBbUI7QUFFM0M7QUFFQSxNQUFNSSxVQUFVLElBQUlDO0FBSXBCLElBQUlDO0FBRUosU0FBU0MsT0FBT0MsQ0FBVTtJQUN4QixJQUFJLE9BQU9BLE1BQU0sYUFBYTtRQUM1QixPQUFPQTtJQUNUO0lBQ0EsSUFBSSxPQUFPQSxNQUFNLFVBQVU7UUFDekIsT0FBT0MsT0FBT0MsUUFBUSxDQUFDRixLQUFLQSxJQUFJRztJQUNsQztJQUNBLElBQUksT0FBT0gsTUFBTSxZQUFZLFdBQVdJLElBQUksQ0FBQ0osSUFBSTtRQUMvQyxPQUFPSyxTQUFTTCxHQUFHO0lBQ3JCO0lBQ0EsT0FBT0c7QUFDVDtBQUVBLFNBQVNHLFVBQ1AsS0FBc0MsRUFDdENDLEtBQXlCLEVBQ3pCQyxLQUF5QjtJQUZ6QixNQUFFQyxXQUFXLEVBQUVDLFFBQVEsRUFBZSxHQUF0QztJQUlBLElBQUlGLE9BQU87UUFDVCx5REFBeUQ7UUFDekQsTUFBTUcsa0JBQWtCO1FBQ3hCLE1BQU1DLGVBQWUsRUFBRTtRQUN2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QUFjekksS0FBSztRQUMxQjBCLFFBQVErRyxjQUFjL0csTUFBTTtRQUM1QjFDLEtBQUtxRCxlQUFlb0csY0FBY3pKLEdBQUc7SUFDdkM7SUFDQSxNQUFNZ0ssT0FBTztRQUFFekg7UUFBYVE7UUFBVVM7UUFBYUw7SUFBSztJQUN4RCxPQUFPO1FBQUU0RztRQUFPQztJQUFLO0FBQ3ZCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9nZXQtaW1nLXByb3BzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi91dGlscy93YXJuLW9uY2UnXG5pbXBvcnQgeyBnZXRJbWFnZUJsdXJTdmcgfSBmcm9tICcuL2ltYWdlLWJsdXItc3ZnJ1xuaW1wb3J0IHsgaW1hZ2VDb25maWdEZWZhdWx0IH0gZnJvbSAnLi9pbWFnZS1jb25maWcnXG5pbXBvcnQgdHlwZSB7XG4gIEltYWdlQ29uZmlnQ29tcGxldGUsXG4gIEltYWdlTG9hZGVyUHJvcHMsXG4gIEltYWdlTG9hZGVyUHJvcHNXaXRoQ29uZmlnLFxufSBmcm9tICcuL2ltYWdlLWNvbmZpZydcblxuaW1wb3J0IHR5cGUgeyBDU1NQcm9wZXJ0aWVzLCBKU1ggfSBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0aWNJbWFnZURhdGEge1xuICBzcmM6IHN0cmluZ1xuICBoZWlnaHQ6IG51bWJlclxuICB3aWR0aDogbnVtYmVyXG4gIGJsdXJEYXRhVVJMPzogc3RyaW5nXG4gIGJsdXJXaWR0aD86IG51bWJlclxuICBibHVySGVpZ2h0PzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGljUmVxdWlyZSB7XG4gIGRlZmF1bHQ6IFN0YXRpY0ltYWdlRGF0YVxufVxuXG5leHBvcnQgdHlwZSBTdGF0aWNJbXBvcnQgPSBTdGF0aWNSZXF1aXJlIHwgU3RhdGljSW1hZ2VEYXRhXG5cbmV4cG9ydCB0eXBlIEltYWdlUHJvcHMgPSBPbWl0PFxuICBKU1guSW50cmluc2ljRWxlbWVudHNbJ2ltZyddLFxuICAnc3JjJyB8ICdzcmNTZXQnIHwgJ3JlZicgfCAnYWx0JyB8ICd3aWR0aCcgfCAnaGVpZ2h0JyB8ICdsb2FkaW5nJ1xuPiAmIHtcbiAgc3JjOiBzdHJpbmcgfCBTdGF0aWNJbXBvcnRcbiAgYWx0OiBzdHJpbmdcbiAgd2lkdGg/OiBudW1iZXIgfCBgJHtudW1iZXJ9YFxuICBoZWlnaHQ/OiBudW1iZXIgfCBgJHtudW1iZXJ9YFxuICBmaWxsPzogYm9vbGVhblxuICBsb2FkZXI/OiBJbWFnZUxvYWRlclxuICBxdWFsaXR5PzogbnVtYmVyIHwgYCR7bnVtYmVyfWBcbiAgcHJpb3JpdHk/OiBib29sZWFuXG4gIGxvYWRpbmc/OiBMb2FkaW5nVmFsdWVcbiAgcGxhY2Vob2xkZXI/OiBQbGFjZWhvbGRlclZhbHVlXG4gIGJsdXJEYXRhVVJMPzogc3RyaW5nXG4gIHVub3B0aW1pemVkPzogYm9vbGVhblxuICBvdmVycmlkZVNyYz86IHN0cmluZ1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBvbkxvYWRgIGluc3RlYWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvY29tcG9uZW50cy9pbWFnZSNvbmxvYWRcbiAgICovXG4gIG9uTG9hZGluZ0NvbXBsZXRlPzogT25Mb2FkaW5nQ29tcGxldGVcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgZmlsbGAgcHJvcCBpbnN0ZWFkIG9mIGBsYXlvdXQ9XCJmaWxsXCJgIG9yIGNoYW5nZSBpbXBvcnQgdG8gYG5leHQvbGVnYWN5L2ltYWdlYC5cbiAgICogQHNlZSBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvbGVnYWN5L2ltYWdlXG4gICAqL1xuICBsYXlvdXQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgc3R5bGVgIHByb3AgaW5zdGVhZC5cbiAgICovXG4gIG9iamVjdEZpdD86IHN0cmluZ1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBzdHlsZWAgcHJvcCBpbnN0ZWFkLlxuICAgKi9cbiAgb2JqZWN0UG9zaXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgcHJvcCBkb2VzIG5vdCBkbyBhbnl0aGluZy5cbiAgICovXG4gIGxhenlCb3VuZGFyeT86IHN0cmluZ1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBwcm9wIGRvZXMgbm90IGRvIGFueXRoaW5nLlxuICAgKi9cbiAgbGF6eVJvb3Q/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgSW1nUHJvcHMgPSBPbWl0PEltYWdlUHJvcHMsICdzcmMnIHwgJ2xvYWRlcic+ICYge1xuICBsb2FkaW5nOiBMb2FkaW5nVmFsdWVcbiAgd2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZFxuICBoZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZFxuICBzdHlsZTogTm9uTnVsbGFibGU8SlNYLkludHJpbnNpY0VsZW1lbnRzWydpbWcnXVsnc3R5bGUnXT5cbiAgc2l6ZXM6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBzcmNTZXQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBzcmM6IHN0cmluZ1xufVxuXG5jb25zdCBWQUxJRF9MT0FESU5HX1ZBTFVFUyA9IFsnbGF6eScsICdlYWdlcicsIHVuZGVmaW5lZF0gYXMgY29uc3RcblxuLy8gT2JqZWN0LWZpdCB2YWx1ZXMgdGhhdCBhcmUgbm90IHZhbGlkIGJhY2tncm91bmQtc2l6ZSB2YWx1ZXNcbmNvbnN0IElOVkFMSURfQkFDS0dST1VORF9TSVpFX1ZBTFVFUyA9IFtcbiAgJy1tb3otaW5pdGlhbCcsXG4gICdmaWxsJyxcbiAgJ25vbmUnLFxuICAnc2NhbGUtZG93bicsXG4gIHVuZGVmaW5lZCxcbl1cbnR5cGUgTG9hZGluZ1ZhbHVlID0gKHR5cGVvZiBWQUxJRF9MT0FESU5HX1ZBTFVFUylbbnVtYmVyXVxudHlwZSBJbWFnZUNvbmZpZyA9IEltYWdlQ29uZmlnQ29tcGxldGUgJiB7XG4gIGFsbFNpemVzOiBudW1iZXJbXVxuICBvdXRwdXQ/OiAnc3RhbmRhbG9uZScgfCAnZXhwb3J0J1xufVxuXG5leHBvcnQgdHlwZSBJbWFnZUxvYWRlciA9IChwOiBJbWFnZUxvYWRlclByb3BzKSA9PiBzdHJpbmdcblxuLy8gRG8gbm90IGV4cG9ydCAtIHRoaXMgaXMgYW4gaW50ZXJuYWwgdHlwZSBvbmx5XG4vLyBiZWNhdXNlIGBuZXh0LmNvbmZpZy5qc2AgaXMgb25seSBtZWFudCBmb3IgdGhlXG4vLyBidWlsdC1pbiBsb2FkZXJzLCBub3QgZm9yIGEgY3VzdG9tIGxvYWRlcigpIHByb3AuXG50eXBlIEltYWdlTG9hZGVyV2l0aENvbmZpZyA9IChwOiBJbWFnZUxvYWRlclByb3BzV2l0aENvbmZpZykgPT4gc3RyaW5nXG5cbmV4cG9ydCB0eXBlIFBsYWNlaG9sZGVyVmFsdWUgPSAnYmx1cicgfCAnZW1wdHknIHwgYGRhdGE6aW1hZ2UvJHtzdHJpbmd9YFxuZXhwb3J0IHR5cGUgT25Mb2FkID0gUmVhY3QuUmVhY3RFdmVudEhhbmRsZXI8SFRNTEltYWdlRWxlbWVudD4gfCB1bmRlZmluZWRcbmV4cG9ydCB0eXBlIE9uTG9hZGluZ0NvbXBsZXRlID0gKGltZzogSFRNTEltYWdlRWxlbWVudCkgPT4gdm9pZFxuXG5leHBvcnQgdHlwZSBQbGFjZWhvbGRlclN0eWxlID0gUGFydGlhbDxcbiAgUGljazxcbiAgICBDU1NQcm9wZXJ0aWVzLFxuICAgIHwgJ2JhY2tncm91bmRTaXplJ1xuICAgIHwgJ2JhY2tncm91bmRQb3NpdGlvbidcbiAgICB8ICdiYWNrZ3JvdW5kUmVwZWF0J1xuICAgIHwgJ2JhY2tncm91bmRJbWFnZSdcbiAgPlxuPlxuXG5mdW5jdGlvbiBpc1N0YXRpY1JlcXVpcmUoXG4gIHNyYzogU3RhdGljUmVxdWlyZSB8IFN0YXRpY0ltYWdlRGF0YVxuKTogc3JjIGlzIFN0YXRpY1JlcXVpcmUge1xuICByZXR1cm4gKHNyYyBhcyBTdGF0aWNSZXF1aXJlKS5kZWZhdWx0ICE9PSB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gaXNTdGF0aWNJbWFnZURhdGEoXG4gIHNyYzogU3RhdGljUmVxdWlyZSB8IFN0YXRpY0ltYWdlRGF0YVxuKTogc3JjIGlzIFN0YXRpY0ltYWdlRGF0YSB7XG4gIHJldHVybiAoc3JjIGFzIFN0YXRpY0ltYWdlRGF0YSkuc3JjICE9PSB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gaXNTdGF0aWNJbXBvcnQoc3JjOiBzdHJpbmcgfCBTdGF0aWNJbXBvcnQpOiBzcmMgaXMgU3RhdGljSW1wb3J0IHtcbiAgcmV0dXJuIChcbiAgICAhIXNyYyAmJlxuICAgIHR5cGVvZiBzcmMgPT09ICdvYmplY3QnICYmXG4gICAgKGlzU3RhdGljUmVxdWlyZShzcmMgYXMgU3RhdGljSW1wb3J0KSB8fFxuICAgICAgaXNTdGF0aWNJbWFnZURhdGEoc3JjIGFzIFN0YXRpY0ltcG9ydCkpXG4gIClcbn1cblxuY29uc3QgYWxsSW1ncyA9IG5ldyBNYXA8XG4gIHN0cmluZyxcbiAgeyBzcmM6IHN0cmluZzsgcHJpb3JpdHk6IGJvb2xlYW47IHBsYWNlaG9sZGVyOiBQbGFjZWhvbGRlclZhbHVlIH1cbj4oKVxubGV0IHBlcmZPYnNlcnZlcjogUGVyZm9ybWFuY2VPYnNlcnZlciB8IHVuZGVmaW5lZFxuXG5mdW5jdGlvbiBnZXRJbnQoeDogdW5rbm93bik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGlmICh0eXBlb2YgeCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4geFxuICB9XG4gIGlmICh0eXBlb2YgeCA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKHgpID8geCA6IE5hTlxuICB9XG4gIGlmICh0eXBlb2YgeCA9PT0gJ3N0cmluZycgJiYgL15bMC05XSskLy50ZXN0KHgpKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KHgsIDEwKVxuICB9XG4gIHJldHVybiBOYU5cbn1cblxuZnVuY3Rpb24gZ2V0V2lkdGhzKFxuICB7IGRldmljZVNpemVzLCBhbGxTaXplcyB9OiBJbWFnZUNvbmZpZyxcbiAgd2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgc2l6ZXM6IHN0cmluZyB8IHVuZGVmaW5lZFxuKTogeyB3aWR0aHM6IG51bWJlcltdOyBraW5kOiAndycgfCAneCcgfSB7XG4gIGlmIChzaXplcykge1xuICAgIC8vIEZpbmQgYWxsIHRoZSBcInZ3XCIgcGVyY2VudCBzaXplcyB1c2VkIGluIHRoZSBzaXplcyBwcm9wXG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aFJlID0gLyhefFxccykoMT9cXGQ/XFxkKXZ3L2dcbiAgICBjb25zdCBwZXJjZW50U2l6ZXMgPSBbXVxuICAgIGZvciAobGV0IG1hdGNoOyAobWF0Y2ggPSB2aWV3cG9ydFdpZHRoUmUuZXhlYyhzaXplcykpOyBtYXRjaCkge1xuICAgICAgcGVyY2VudFNpemVzLnB1c2gocGFyc2VJbnQobWF0Y2hbMl0pKVxuICAgIH1cbiAgICBpZiAocGVyY2VudFNpemVzLmxlbmd0aCkge1xuICAgICAgY29uc3Qgc21hbGxlc3RSYXRpbyA9IE1hdGgubWluKC4uLnBlcmNlbnRTaXplcykgKiAwLjAxXG4gICAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aHM6IGFsbFNpemVzLmZpbHRlcigocykgPT4gcyA+PSBkZXZpY2VTaXplc1swXSAqIHNtYWxsZXN0UmF0aW8pLFxuICAgICAgICBraW5kOiAndycsXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHdpZHRoczogYWxsU2l6ZXMsIGtpbmQ6ICd3JyB9XG4gIH1cbiAgaWYgKHR5cGVvZiB3aWR0aCAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4geyB3aWR0aHM6IGRldmljZVNpemVzLCBraW5kOiAndycgfVxuICB9XG5cbiAgY29uc3Qgd2lkdGhzID0gW1xuICAgIC4uLm5ldyBTZXQoXG4gICAgICAvLyA+IFRoaXMgbWVhbnMgdGhhdCBtb3N0IE9MRUQgc2NyZWVucyB0aGF0IHNheSB0aGV5IGFyZSAzeCByZXNvbHV0aW9uLFxuICAgICAgLy8gPiBhcmUgYWN0dWFsbHkgM3ggaW4gdGhlIGdyZWVuIGNvbG9yLCBidXQgb25seSAxLjV4IGluIHRoZSByZWQgYW5kXG4gICAgICAvLyA+IGJsdWUgY29sb3JzLiBTaG93aW5nIGEgM3ggcmVzb2x1dGlvbiBpbWFnZSBpbiB0aGUgYXBwIHZzIGEgMnhcbiAgICAgIC8vID4gcmVzb2x1dGlvbiBpbWFnZSB3aWxsIGJlIHZpc3VhbGx5IHRoZSBzYW1lLCB0aG91Z2ggdGhlIDN4IGltYWdlXG4gICAgICAvLyA+IHRha2VzIHNpZ25pZmljYW50bHkgbW9yZSBkYXRhLiBFdmVuIHRydWUgM3ggcmVzb2x1dGlvbiBzY3JlZW5zIGFyZVxuICAgICAgLy8gPiB3YXN0ZWZ1bCBhcyB0aGUgaHVtYW4gZXllIGNhbm5vdCBzZWUgdGhhdCBsZXZlbCBvZiBkZXRhaWwgd2l0aG91dFxuICAgICAgLy8gPiBzb21ldGhpbmcgbGlrZSBhIG1hZ25pZnlpbmcgZ2xhc3MuXG4gICAgICAvLyBodHRwczovL2Jsb2cudHdpdHRlci5jb20vZW5naW5lZXJpbmcvZW5fdXMvdG9waWNzL2luZnJhc3RydWN0dXJlLzIwMTkvY2FwcGluZy1pbWFnZS1maWRlbGl0eS1vbi11bHRyYS1oaWdoLXJlc29sdXRpb24tZGV2aWNlcy5odG1sXG4gICAgICBbd2lkdGgsIHdpZHRoICogMiAvKiwgd2lkdGggKiAzKi9dLm1hcChcbiAgICAgICAgKHcpID0+IGFsbFNpemVzLmZpbmQoKHApID0+IHAgPj0gdykgfHwgYWxsU2l6ZXNbYWxsU2l6ZXMubGVuZ3RoIC0gMV1cbiAgICAgIClcbiAgICApLFxuICBdXG4gIHJldHVybiB7IHdpZHRocywga2luZDogJ3gnIH1cbn1cblxudHlwZSBHZW5JbWdBdHRyc0RhdGEgPSB7XG4gIGNvbmZpZzogSW1hZ2VDb25maWdcbiAgc3JjOiBzdHJpbmdcbiAgdW5vcHRpbWl6ZWQ6IGJvb2xlYW5cbiAgbG9hZGVyOiBJbWFnZUxvYWRlcldpdGhDb25maWdcbiAgd2lkdGg/OiBudW1iZXJcbiAgcXVhbGl0eT86IG51bWJlclxuICBzaXplcz86IHN0cmluZ1xufVxuXG50eXBlIEdlbkltZ0F0dHJzUmVzdWx0ID0ge1xuICBzcmM6IHN0cmluZ1xuICBzcmNTZXQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBzaXplczogc3RyaW5nIHwgdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlSW1nQXR0cnMoe1xuICBjb25maWcsXG4gIHNyYyxcbiAgdW5vcHRpbWl6ZWQsXG4gIHdpZHRoLFxuICBxdWFsaXR5LFxuICBzaXplcyxcbiAgbG9hZGVyLFxufTogR2VuSW1nQXR0cnNEYXRhKTogR2VuSW1nQXR0cnNSZXN1bHQge1xuICBpZiAodW5vcHRpbWl6ZWQpIHtcbiAgICByZXR1cm4geyBzcmMsIHNyY1NldDogdW5kZWZpbmVkLCBzaXplczogdW5kZWZpbmVkIH1cbiAgfVxuXG4gIGNvbnN0IHsgd2lkdGhzLCBraW5kIH0gPSBnZXRXaWR0aHMoY29uZmlnLCB3aWR0aCwgc2l6ZXMpXG4gIGNvbnN0IGxhc3QgPSB3aWR0aHMubGVuZ3RoIC0gMVxuXG4gIHJldHVybiB7XG4gICAgc2l6ZXM6ICFzaXplcyAmJiBraW5kID09PSAndycgPyAnMTAwdncnIDogc2l6ZXMsXG4gICAgc3JjU2V0OiB3aWR0aHNcbiAgICAgIC5tYXAoXG4gICAgICAgICh3LCBpKSA9PlxuICAgICAgICAgIGAke2xvYWRlcih7IGNvbmZpZywgc3JjLCBxdWFsaXR5LCB3aWR0aDogdyB9KX0gJHtcbiAgICAgICAgICAgIGtpbmQgPT09ICd3JyA/IHcgOiBpICsgMVxuICAgICAgICAgIH0ke2tpbmR9YFxuICAgICAgKVxuICAgICAgLmpvaW4oJywgJyksXG5cbiAgICAvLyBJdCdzIGludGVuZGVkIHRvIGtlZXAgYHNyY2AgdGhlIGxhc3QgYXR0cmlidXRlIGJlY2F1c2UgUmVhY3QgdXBkYXRlc1xuICAgIC8vIGF0dHJpYnV0ZXMgaW4gb3JkZXIuIElmIHdlIGtlZXAgYHNyY2AgdGhlIGZpcnN0IG9uZSwgU2FmYXJpIHdpbGxcbiAgICAvLyBpbW1lZGlhdGVseSBzdGFydCB0byBmZXRjaCBgc3JjYCwgYmVmb3JlIGBzaXplc2AgYW5kIGBzcmNTZXRgIGFyZSBldmVuXG4gICAgLy8gdXBkYXRlZCBieSBSZWFjdC4gVGhhdCBjYXVzZXMgbXVsdGlwbGUgdW5uZWNlc3NhcnkgcmVxdWVzdHMgaWYgYHNyY1NldGBcbiAgICAvLyBhbmQgYHNpemVzYCBhcmUgZGVmaW5lZC5cbiAgICAvLyBUaGlzIGJ1ZyBjYW5ub3QgYmUgcmVwcm9kdWNlZCBpbiBDaHJvbWUgb3IgRmlyZWZveC5cbiAgICBzcmM6IGxvYWRlcih7IGNvbmZpZywgc3JjLCBxdWFsaXR5LCB3aWR0aDogd2lkdGhzW2xhc3RdIH0pLFxuICB9XG59XG5cbi8qKlxuICogQSBzaGFyZWQgZnVuY3Rpb24sIHVzZWQgb24gYm90aCBjbGllbnQgYW5kIHNlcnZlciwgdG8gZ2VuZXJhdGUgdGhlIHByb3BzIGZvciA8aW1nPi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEltZ1Byb3BzKFxuICB7XG4gICAgc3JjLFxuICAgIHNpemVzLFxuICAgIHVub3B0aW1pemVkID0gZmFsc2UsXG4gICAgcHJpb3JpdHkgPSBmYWxzZSxcbiAgICBsb2FkaW5nLFxuICAgIGNsYXNzTmFtZSxcbiAgICBxdWFsaXR5LFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBmaWxsID0gZmFsc2UsXG4gICAgc3R5bGUsXG4gICAgb3ZlcnJpZGVTcmMsXG4gICAgb25Mb2FkLFxuICAgIG9uTG9hZGluZ0NvbXBsZXRlLFxuICAgIHBsYWNlaG9sZGVyID0gJ2VtcHR5JyxcbiAgICBibHVyRGF0YVVSTCxcbiAgICBmZXRjaFByaW9yaXR5LFxuICAgIGRlY29kaW5nID0gJ2FzeW5jJyxcbiAgICBsYXlvdXQsXG4gICAgb2JqZWN0Rml0LFxuICAgIG9iamVjdFBvc2l0aW9uLFxuICAgIGxhenlCb3VuZGFyeSxcbiAgICBsYXp5Um9vdCxcbiAgICAuLi5yZXN0XG4gIH06IEltYWdlUHJvcHMsXG4gIF9zdGF0ZToge1xuICAgIGRlZmF1bHRMb2FkZXI6IEltYWdlTG9hZGVyV2l0aENvbmZpZ1xuICAgIGltZ0NvbmY6IEltYWdlQ29uZmlnQ29tcGxldGVcbiAgICBzaG93QWx0VGV4dD86IGJvb2xlYW5cbiAgICBibHVyQ29tcGxldGU/OiBib29sZWFuXG4gIH1cbik6IHtcbiAgcHJvcHM6IEltZ1Byb3BzXG4gIG1ldGE6IHtcbiAgICB1bm9wdGltaXplZDogYm9vbGVhblxuICAgIHByaW9yaXR5OiBib29sZWFuXG4gICAgcGxhY2Vob2xkZXI6IE5vbk51bGxhYmxlPEltYWdlUHJvcHNbJ3BsYWNlaG9sZGVyJ10+XG4gICAgZmlsbDogYm9vbGVhblxuICB9XG59IHtcbiAgY29uc3QgeyBpbWdDb25mLCBzaG93QWx0VGV4dCwgYmx1ckNvbXBsZXRlLCBkZWZhdWx0TG9hZGVyIH0gPSBfc3RhdGVcbiAgbGV0IGNvbmZpZzogSW1hZ2VDb25maWdcbiAgbGV0IGMgPSBpbWdDb25mIHx8IGltYWdlQ29uZmlnRGVmYXVsdFxuICBpZiAoJ2FsbFNpemVzJyBpbiBjKSB7XG4gICAgY29uZmlnID0gYyBhcyBJbWFnZUNvbmZpZ1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGFsbFNpemVzID0gWy4uLmMuZGV2aWNlU2l6ZXMsIC4uLmMuaW1hZ2VTaXplc10uc29ydCgoYSwgYikgPT4gYSAtIGIpXG4gICAgY29uc3QgZGV2aWNlU2l6ZXMgPSBjLmRldmljZVNpemVzLnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuICAgIGNvbnN0IHF1YWxpdGllcyA9IGMucXVhbGl0aWVzPy5zb3J0KChhLCBiKSA9PiBhIC0gYilcbiAgICBjb25maWcgPSB7IC4uLmMsIGFsbFNpemVzLCBkZXZpY2VTaXplcywgcXVhbGl0aWVzIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgZGVmYXVsdExvYWRlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnaW1hZ2VzLmxvYWRlckZpbGUgZGV0ZWN0ZWQgYnV0IHRoZSBmaWxlIGlzIG1pc3NpbmcgZGVmYXVsdCBleHBvcnQuXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnZhbGlkLWltYWdlcy1jb25maWcnXG4gICAgKVxuICB9XG4gIGxldCBsb2FkZXI6IEltYWdlTG9hZGVyV2l0aENvbmZpZyA9IHJlc3QubG9hZGVyIHx8IGRlZmF1bHRMb2FkZXJcblxuICAvLyBSZW1vdmUgcHJvcGVydHkgc28gaXQncyBub3Qgc3ByZWFkIG9uIDxpbWc+IGVsZW1lbnRcbiAgZGVsZXRlIHJlc3QubG9hZGVyXG4gIGRlbGV0ZSAocmVzdCBhcyBhbnkpLnNyY1NldFxuXG4gIC8vIFRoaXMgc3BlY2lhbCB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgdXNlclxuICAvLyBkaWRuJ3QgZGVmaW5lIGEgXCJsb2FkZXJcIiBwcm9wIG9yIFwibG9hZGVyXCIgY29uZmlnLlxuICBjb25zdCBpc0RlZmF1bHRMb2FkZXIgPSAnX19uZXh0X2ltZ19kZWZhdWx0JyBpbiBsb2FkZXJcblxuICBpZiAoaXNEZWZhdWx0TG9hZGVyKSB7XG4gICAgaWYgKGNvbmZpZy5sb2FkZXIgPT09ICdjdXN0b20nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGlzIG1pc3NpbmcgXCJsb2FkZXJcIiBwcm9wLmAgK1xuICAgICAgICAgIGBcXG5SZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaW1hZ2UtbWlzc2luZy1sb2FkZXJgXG4gICAgICApXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFRoZSB1c2VyIGRlZmluZWQgYSBcImxvYWRlclwiIHByb3Agb3IgY29uZmlnLlxuICAgIC8vIFNpbmNlIHRoZSBjb25maWcgb2JqZWN0IGlzIGludGVybmFsIG9ubHksIHdlXG4gICAgLy8gbXVzdCBub3QgcGFzcyBpdCB0byB0aGUgdXNlci1kZWZpbmVkIFwibG9hZGVyXCIuXG4gICAgY29uc3QgY3VzdG9tSW1hZ2VMb2FkZXIgPSBsb2FkZXIgYXMgSW1hZ2VMb2FkZXJcbiAgICBsb2FkZXIgPSAob2JqKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbmZpZzogXywgLi4ub3B0cyB9ID0gb2JqXG4gICAgICByZXR1cm4gY3VzdG9tSW1hZ2VMb2FkZXIob3B0cylcbiAgICB9XG4gIH1cblxuICBpZiAobGF5b3V0KSB7XG4gICAgaWYgKGxheW91dCA9PT0gJ2ZpbGwnKSB7XG4gICAgICBmaWxsID0gdHJ1ZVxuICAgIH1cbiAgICBjb25zdCBsYXlvdXRUb1N0eWxlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkPiA9IHtcbiAgICAgIGludHJpbnNpYzogeyBtYXhXaWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJyB9LFxuICAgICAgcmVzcG9uc2l2ZTogeyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJyB9LFxuICAgIH1cbiAgICBjb25zdCBsYXlvdXRUb1NpemVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+ID0ge1xuICAgICAgcmVzcG9uc2l2ZTogJzEwMHZ3JyxcbiAgICAgIGZpbGw6ICcxMDB2dycsXG4gICAgfVxuICAgIGNvbnN0IGxheW91dFN0eWxlID0gbGF5b3V0VG9TdHlsZVtsYXlvdXRdXG4gICAgaWYgKGxheW91dFN0eWxlKSB7XG4gICAgICBzdHlsZSA9IHsgLi4uc3R5bGUsIC4uLmxheW91dFN0eWxlIH1cbiAgICB9XG4gICAgY29uc3QgbGF5b3V0U2l6ZXMgPSBsYXlvdXRUb1NpemVzW2xheW91dF1cbiAgICBpZiAobGF5b3V0U2l6ZXMgJiYgIXNpemVzKSB7XG4gICAgICBzaXplcyA9IGxheW91dFNpemVzXG4gICAgfVxuICB9XG5cbiAgbGV0IHN0YXRpY1NyYyA9ICcnXG4gIGxldCB3aWR0aEludCA9IGdldEludCh3aWR0aClcbiAgbGV0IGhlaWdodEludCA9IGdldEludChoZWlnaHQpXG4gIGxldCBibHVyV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZFxuICBsZXQgYmx1ckhlaWdodDogbnVtYmVyIHwgdW5kZWZpbmVkXG4gIGlmIChpc1N0YXRpY0ltcG9ydChzcmMpKSB7XG4gICAgY29uc3Qgc3RhdGljSW1hZ2VEYXRhID0gaXNTdGF0aWNSZXF1aXJlKHNyYykgPyBzcmMuZGVmYXVsdCA6IHNyY1xuXG4gICAgaWYgKCFzdGF0aWNJbWFnZURhdGEuc3JjKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIHNyYy4gUmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBzdGF0aWNJbWFnZURhdGFcbiAgICAgICAgKX1gXG4gICAgICApXG4gICAgfVxuICAgIGlmICghc3RhdGljSW1hZ2VEYXRhLmhlaWdodCB8fCAhc3RhdGljSW1hZ2VEYXRhLndpZHRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIGhlaWdodCBhbmQgd2lkdGguIFJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgc3RhdGljSW1hZ2VEYXRhXG4gICAgICAgICl9YFxuICAgICAgKVxuICAgIH1cblxuICAgIGJsdXJXaWR0aCA9IHN0YXRpY0ltYWdlRGF0YS5ibHVyV2lkdGhcbiAgICBibHVySGVpZ2h0ID0gc3RhdGljSW1hZ2VEYXRhLmJsdXJIZWlnaHRcbiAgICBibHVyRGF0YVVSTCA9IGJsdXJEYXRhVVJMIHx8IHN0YXRpY0ltYWdlRGF0YS5ibHVyRGF0YVVSTFxuICAgIHN0YXRpY1NyYyA9IHN0YXRpY0ltYWdlRGF0YS5zcmNcblxuICAgIGlmICghZmlsbCkge1xuICAgICAgaWYgKCF3aWR0aEludCAmJiAhaGVpZ2h0SW50KSB7XG4gICAgICAgIHdpZHRoSW50ID0gc3RhdGljSW1hZ2VEYXRhLndpZHRoXG4gICAgICAgIGhlaWdodEludCA9IHN0YXRpY0ltYWdlRGF0YS5oZWlnaHRcbiAgICAgIH0gZWxzZSBpZiAod2lkdGhJbnQgJiYgIWhlaWdodEludCkge1xuICAgICAgICBjb25zdCByYXRpbyA9IHdpZHRoSW50IC8gc3RhdGljSW1hZ2VEYXRhLndpZHRoXG4gICAgICAgIGhlaWdodEludCA9IE1hdGgucm91bmQoc3RhdGljSW1hZ2VEYXRhLmhlaWdodCAqIHJhdGlvKVxuICAgICAgfSBlbHNlIGlmICghd2lkdGhJbnQgJiYgaGVpZ2h0SW50KSB7XG4gICAgICAgIGNvbnN0IHJhdGlvID0gaGVpZ2h0SW50IC8gc3RhdGljSW1hZ2VEYXRhLmhlaWdodFxuICAgICAgICB3aWR0aEludCA9IE1hdGgucm91bmQoc3RhdGljSW1hZ2VEYXRhLndpZHRoICogcmF0aW8pXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHNyYyA9IHR5cGVvZiBzcmMgPT09ICdzdHJpbmcnID8gc3JjIDogc3RhdGljU3JjXG5cbiAgbGV0IGlzTGF6eSA9XG4gICAgIXByaW9yaXR5ICYmIChsb2FkaW5nID09PSAnbGF6eScgfHwgdHlwZW9mIGxvYWRpbmcgPT09ICd1bmRlZmluZWQnKVxuICBpZiAoIXNyYyB8fCBzcmMuc3RhcnRzV2l0aCgnZGF0YTonKSB8fCBzcmMuc3RhcnRzV2l0aCgnYmxvYjonKSkge1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUVFAvQmFzaWNzX29mX0hUVFAvRGF0YV9VUklzXG4gICAgdW5vcHRpbWl6ZWQgPSB0cnVlXG4gICAgaXNMYXp5ID0gZmFsc2VcbiAgfVxuICBpZiAoY29uZmlnLnVub3B0aW1pemVkKSB7XG4gICAgdW5vcHRpbWl6ZWQgPSB0cnVlXG4gIH1cbiAgaWYgKFxuICAgIGlzRGVmYXVsdExvYWRlciAmJlxuICAgICFjb25maWcuZGFuZ2Vyb3VzbHlBbGxvd1NWRyAmJlxuICAgIHNyYy5zcGxpdCgnPycsIDEpWzBdLmVuZHNXaXRoKCcuc3ZnJylcbiAgKSB7XG4gICAgLy8gU3BlY2lhbCBjYXNlIHRvIG1ha2Ugc3ZnIHNlcnZlIGFzLWlzIHRvIGF2b2lkIHByb3h5aW5nXG4gICAgLy8gdGhyb3VnaCB0aGUgYnVpbHQtaW4gSW1hZ2UgT3B0aW1pemF0aW9uIEFQSS5cbiAgICB1bm9wdGltaXplZCA9IHRydWVcbiAgfVxuXG4gIGNvbnN0IHF1YWxpdHlJbnQgPSBnZXRJbnQocXVhbGl0eSlcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChjb25maWcub3V0cHV0ID09PSAnZXhwb3J0JyAmJiBpc0RlZmF1bHRMb2FkZXIgJiYgIXVub3B0aW1pemVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbWFnZSBPcHRpbWl6YXRpb24gdXNpbmcgdGhlIGRlZmF1bHQgbG9hZGVyIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggXFxgeyBvdXRwdXQ6ICdleHBvcnQnIH1cXGAuXG4gIFBvc3NpYmxlIHNvbHV0aW9uczpcbiAgICAtIFJlbW92ZSBcXGB7IG91dHB1dDogJ2V4cG9ydCcgfVxcYCBhbmQgcnVuIFwibmV4dCBzdGFydFwiIHRvIHJ1biBzZXJ2ZXIgbW9kZSBpbmNsdWRpbmcgdGhlIEltYWdlIE9wdGltaXphdGlvbiBBUEkuXG4gICAgLSBDb25maWd1cmUgXFxgeyBpbWFnZXM6IHsgdW5vcHRpbWl6ZWQ6IHRydWUgfSB9XFxgIGluIFxcYG5leHQuY29uZmlnLmpzXFxgIHRvIGRpc2FibGUgdGhlIEltYWdlIE9wdGltaXphdGlvbiBBUEkuXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZXhwb3J0LWltYWdlLWFwaWBcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKCFzcmMpIHtcbiAgICAgIC8vIFJlYWN0IGRvZXNuJ3Qgc2hvdyB0aGUgc3RhY2sgdHJhY2UgYW5kIHRoZXJlJ3NcbiAgICAgIC8vIG5vIGBzcmNgIHRvIGhlbHAgaWRlbnRpZnkgd2hpY2ggaW1hZ2UsIHNvIHdlXG4gICAgICAvLyBpbnN0ZWFkIGNvbnNvbGUuZXJyb3IocmVmKSBkdXJpbmcgbW91bnQuXG4gICAgICB1bm9wdGltaXplZCA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZpbGwpIHtcbiAgICAgICAgaWYgKHdpZHRoKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGJvdGggXCJ3aWR0aFwiIGFuZCBcImZpbGxcIiBwcm9wZXJ0aWVzLiBPbmx5IG9uZSBzaG91bGQgYmUgdXNlZC5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGlmIChoZWlnaHQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgYm90aCBcImhlaWdodFwiIGFuZCBcImZpbGxcIiBwcm9wZXJ0aWVzLiBPbmx5IG9uZSBzaG91bGQgYmUgdXNlZC5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdHlsZT8ucG9zaXRpb24gJiYgc3R5bGUucG9zaXRpb24gIT09ICdhYnNvbHV0ZScpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgYm90aCBcImZpbGxcIiBhbmQgXCJzdHlsZS5wb3NpdGlvblwiIHByb3BlcnRpZXMuIEltYWdlcyB3aXRoIFwiZmlsbFwiIGFsd2F5cyB1c2UgcG9zaXRpb24gYWJzb2x1dGUgLSBpdCBjYW5ub3QgYmUgbW9kaWZpZWQuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3R5bGU/LndpZHRoICYmIHN0eWxlLndpZHRoICE9PSAnMTAwJScpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgYm90aCBcImZpbGxcIiBhbmQgXCJzdHlsZS53aWR0aFwiIHByb3BlcnRpZXMuIEltYWdlcyB3aXRoIFwiZmlsbFwiIGFsd2F5cyB1c2Ugd2lkdGggMTAwJSAtIGl0IGNhbm5vdCBiZSBtb2RpZmllZC5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdHlsZT8uaGVpZ2h0ICYmIHN0eWxlLmhlaWdodCAhPT0gJzEwMCUnKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGJvdGggXCJmaWxsXCIgYW5kIFwic3R5bGUuaGVpZ2h0XCIgcHJvcGVydGllcy4gSW1hZ2VzIHdpdGggXCJmaWxsXCIgYWx3YXlzIHVzZSBoZWlnaHQgMTAwJSAtIGl0IGNhbm5vdCBiZSBtb2RpZmllZC5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodHlwZW9mIHdpZHRoSW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJ3aWR0aFwiIHByb3BlcnR5LmBcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSBpZiAoaXNOYU4od2lkdGhJbnQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGludmFsaWQgXCJ3aWR0aFwiIHByb3BlcnR5LiBFeHBlY3RlZCBhIG51bWVyaWMgdmFsdWUgaW4gcGl4ZWxzIGJ1dCByZWNlaXZlZCBcIiR7d2lkdGh9XCIuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGhlaWdodEludCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBpcyBtaXNzaW5nIHJlcXVpcmVkIFwiaGVpZ2h0XCIgcHJvcGVydHkuYFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIGlmIChpc05hTihoZWlnaHRJbnQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGludmFsaWQgXCJoZWlnaHRcIiBwcm9wZXJ0eS4gRXhwZWN0ZWQgYSBudW1lcmljIHZhbHVlIGluIHBpeGVscyBidXQgcmVjZWl2ZWQgXCIke2hlaWdodH1cIi5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250cm9sLXJlZ2V4XG4gICAgICAgIGlmICgvXltcXHgwMC1cXHgyMF0vLnRlc3Qoc3JjKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGNhbm5vdCBzdGFydCB3aXRoIGEgc3BhY2Ugb3IgY29udHJvbCBjaGFyYWN0ZXIuIFVzZSBzcmMudHJpbVN0YXJ0KCkgdG8gcmVtb3ZlIGl0IG9yIGVuY29kZVVSSUNvbXBvbmVudChzcmMpIHRvIGtlZXAgaXQuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleFxuICAgICAgICBpZiAoL1tcXHgwMC1cXHgyMF0kLy50ZXN0KHNyYykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBjYW5ub3QgZW5kIHdpdGggYSBzcGFjZSBvciBjb250cm9sIGNoYXJhY3Rlci4gVXNlIHNyYy50cmltRW5kKCkgdG8gcmVtb3ZlIGl0IG9yIGVuY29kZVVSSUNvbXBvbmVudChzcmMpIHRvIGtlZXAgaXQuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIVZBTElEX0xPQURJTkdfVkFMVUVTLmluY2x1ZGVzKGxvYWRpbmcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBpbnZhbGlkIFwibG9hZGluZ1wiIHByb3BlcnR5LiBQcm92aWRlZCBcIiR7bG9hZGluZ31cIiBzaG91bGQgYmUgb25lIG9mICR7VkFMSURfTE9BRElOR19WQUxVRVMubWFwKFxuICAgICAgICAgIFN0cmluZ1xuICAgICAgICApLmpvaW4oJywnKX0uYFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAocHJpb3JpdHkgJiYgbG9hZGluZyA9PT0gJ2xhenknKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBib3RoIFwicHJpb3JpdHlcIiBhbmQgXCJsb2FkaW5nPSdsYXp5J1wiIHByb3BlcnRpZXMuIE9ubHkgb25lIHNob3VsZCBiZSB1c2VkLmBcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKFxuICAgICAgcGxhY2Vob2xkZXIgIT09ICdlbXB0eScgJiZcbiAgICAgIHBsYWNlaG9sZGVyICE9PSAnYmx1cicgJiZcbiAgICAgICFwbGFjZWhvbGRlci5zdGFydHNXaXRoKCdkYXRhOmltYWdlLycpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBpbnZhbGlkIFwicGxhY2Vob2xkZXJcIiBwcm9wZXJ0eSBcIiR7cGxhY2Vob2xkZXJ9XCIuYFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAocGxhY2Vob2xkZXIgIT09ICdlbXB0eScpIHtcbiAgICAgIGlmICh3aWR0aEludCAmJiBoZWlnaHRJbnQgJiYgd2lkdGhJbnQgKiBoZWlnaHRJbnQgPCAxNjAwKSB7XG4gICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGlzIHNtYWxsZXIgdGhhbiA0MHg0MC4gQ29uc2lkZXIgcmVtb3ZpbmcgdGhlIFwicGxhY2Vob2xkZXJcIiBwcm9wZXJ0eSB0byBpbXByb3ZlIHBlcmZvcm1hbmNlLmBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAocGxhY2Vob2xkZXIgPT09ICdibHVyJyAmJiAhYmx1ckRhdGFVUkwpIHtcbiAgICAgIGNvbnN0IFZBTElEX0JMVVJfRVhUID0gWydqcGVnJywgJ3BuZycsICd3ZWJwJywgJ2F2aWYnXSAvLyBzaG91bGQgbWF0Y2ggbmV4dC1pbWFnZS1sb2FkZXJcblxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgXCJwbGFjZWhvbGRlcj0nYmx1cidcIiBwcm9wZXJ0eSBidXQgaXMgbWlzc2luZyB0aGUgXCJibHVyRGF0YVVSTFwiIHByb3BlcnR5LlxuICAgICAgICBQb3NzaWJsZSBzb2x1dGlvbnM6XG4gICAgICAgICAgLSBBZGQgYSBcImJsdXJEYXRhVVJMXCIgcHJvcGVydHksIHRoZSBjb250ZW50cyBzaG91bGQgYmUgYSBzbWFsbCBEYXRhIFVSTCB0byByZXByZXNlbnQgdGhlIGltYWdlXG4gICAgICAgICAgLSBDaGFuZ2UgdGhlIFwic3JjXCIgcHJvcGVydHkgdG8gYSBzdGF0aWMgaW1wb3J0IHdpdGggb25lIG9mIHRoZSBzdXBwb3J0ZWQgZmlsZSB0eXBlczogJHtWQUxJRF9CTFVSX0VYVC5qb2luKFxuICAgICAgICAgICAgJywnXG4gICAgICAgICAgKX0gKGFuaW1hdGVkIGltYWdlcyBub3Qgc3VwcG9ydGVkKVxuICAgICAgICAgIC0gUmVtb3ZlIHRoZSBcInBsYWNlaG9sZGVyXCIgcHJvcGVydHksIGVmZmVjdGl2ZWx5IG5vIGJsdXIgZWZmZWN0XG4gICAgICAgIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcGxhY2Vob2xkZXItYmx1ci1kYXRhLXVybGBcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKCdyZWYnIGluIHJlc3QpIHtcbiAgICAgIHdhcm5PbmNlKFxuICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBpcyB1c2luZyB1bnN1cHBvcnRlZCBcInJlZlwiIHByb3BlcnR5LiBDb25zaWRlciB1c2luZyB0aGUgXCJvbkxvYWRcIiBwcm9wZXJ0eSBpbnN0ZWFkLmBcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAoIXVub3B0aW1pemVkICYmICFpc0RlZmF1bHRMb2FkZXIpIHtcbiAgICAgIGNvbnN0IHVybFN0ciA9IGxvYWRlcih7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgc3JjLFxuICAgICAgICB3aWR0aDogd2lkdGhJbnQgfHwgNDAwLFxuICAgICAgICBxdWFsaXR5OiBxdWFsaXR5SW50IHx8IDc1LFxuICAgICAgfSlcbiAgICAgIGxldCB1cmw6IFVSTCB8IHVuZGVmaW5lZFxuICAgICAgdHJ5IHtcbiAgICAgICAgdXJsID0gbmV3IFVSTCh1cmxTdHIpXG4gICAgICB9IGNhdGNoIChlcnIpIHt9XG4gICAgICBpZiAodXJsU3RyID09PSBzcmMgfHwgKHVybCAmJiB1cmwucGF0aG5hbWUgPT09IHNyYyAmJiAhdXJsLnNlYXJjaCkpIHtcbiAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgYEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGEgXCJsb2FkZXJcIiBwcm9wZXJ0eSB0aGF0IGRvZXMgbm90IGltcGxlbWVudCB3aWR0aC4gUGxlYXNlIGltcGxlbWVudCBpdCBvciB1c2UgdGhlIFwidW5vcHRpbWl6ZWRcIiBwcm9wZXJ0eSBpbnN0ZWFkLmAgK1xuICAgICAgICAgICAgYFxcblJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1pbWFnZS1taXNzaW5nLWxvYWRlci13aWR0aGBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvbkxvYWRpbmdDb21wbGV0ZSkge1xuICAgICAgd2Fybk9uY2UoXG4gICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGlzIHVzaW5nIGRlcHJlY2F0ZWQgXCJvbkxvYWRpbmdDb21wbGV0ZVwiIHByb3BlcnR5LiBQbGVhc2UgdXNlIHRoZSBcIm9uTG9hZFwiIHByb3BlcnR5IGluc3RlYWQuYFxuICAgICAgKVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2xlZ2FjeUtleSwgbGVnYWN5VmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHtcbiAgICAgIGxheW91dCxcbiAgICAgIG9iamVjdEZpdCxcbiAgICAgIG9iamVjdFBvc2l0aW9uLFxuICAgICAgbGF6eUJvdW5kYXJ5LFxuICAgICAgbGF6eVJvb3QsXG4gICAgfSkpIHtcbiAgICAgIGlmIChsZWdhY3lWYWx1ZSkge1xuICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgbGVnYWN5IHByb3AgXCIke2xlZ2FjeUtleX1cIi4gRGlkIHlvdSBmb3JnZXQgdG8gcnVuIHRoZSBjb2RlbW9kP2AgK1xuICAgICAgICAgICAgYFxcblJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1pbWFnZS11cGdyYWRlLXRvLTEzYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICFwZXJmT2JzZXJ2ZXIgJiZcbiAgICAgIHdpbmRvdy5QZXJmb3JtYW5jZU9ic2VydmVyXG4gICAgKSB7XG4gICAgICBwZXJmT2JzZXJ2ZXIgPSBuZXcgUGVyZm9ybWFuY2VPYnNlcnZlcigoZW50cnlMaXN0KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cnlMaXN0LmdldEVudHJpZXMoKSkge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmUgLSBtaXNzaW5nIFwiTGFyZ2VzdENvbnRlbnRmdWxQYWludFwiIGNsYXNzIHdpdGggXCJlbGVtZW50XCIgcHJvcFxuICAgICAgICAgIGNvbnN0IGltZ1NyYyA9IGVudHJ5Py5lbGVtZW50Py5zcmMgfHwgJydcbiAgICAgICAgICBjb25zdCBsY3BJbWFnZSA9IGFsbEltZ3MuZ2V0KGltZ1NyYylcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBsY3BJbWFnZSAmJlxuICAgICAgICAgICAgIWxjcEltYWdlLnByaW9yaXR5ICYmXG4gICAgICAgICAgICBsY3BJbWFnZS5wbGFjZWhvbGRlciA9PT0gJ2VtcHR5JyAmJlxuICAgICAgICAgICAgIWxjcEltYWdlLnNyYy5zdGFydHNXaXRoKCdkYXRhOicpICYmXG4gICAgICAgICAgICAhbGNwSW1hZ2Uuc3JjLnN0YXJ0c1dpdGgoJ2Jsb2I6JylcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vd2ViLmRldi9sY3AvI21lYXN1cmUtbGNwLWluLWphdmFzY3JpcHRcbiAgICAgICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke2xjcEltYWdlLnNyY31cIiB3YXMgZGV0ZWN0ZWQgYXMgdGhlIExhcmdlc3QgQ29udGVudGZ1bCBQYWludCAoTENQKS4gUGxlYXNlIGFkZCB0aGUgXCJwcmlvcml0eVwiIHByb3BlcnR5IGlmIHRoaXMgaW1hZ2UgaXMgYWJvdmUgdGhlIGZvbGQuYCArXG4gICAgICAgICAgICAgICAgYFxcblJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2ltYWdlI3ByaW9yaXR5YFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHRyeSB7XG4gICAgICAgIHBlcmZPYnNlcnZlci5vYnNlcnZlKHtcbiAgICAgICAgICB0eXBlOiAnbGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50JyxcbiAgICAgICAgICBidWZmZXJlZDogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBMb2cgZXJyb3IgYnV0IGRvbid0IGNyYXNoIHRoZSBhcHBcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IGltZ1N0eWxlID0gT2JqZWN0LmFzc2lnbihcbiAgICBmaWxsXG4gICAgICA/IHtcbiAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICBvYmplY3RGaXQsXG4gICAgICAgICAgb2JqZWN0UG9zaXRpb24sXG4gICAgICAgIH1cbiAgICAgIDoge30sXG4gICAgc2hvd0FsdFRleHQgPyB7fSA6IHsgY29sb3I6ICd0cmFuc3BhcmVudCcgfSxcbiAgICBzdHlsZVxuICApXG5cbiAgY29uc3QgYmFja2dyb3VuZEltYWdlID1cbiAgICAhYmx1ckNvbXBsZXRlICYmIHBsYWNlaG9sZGVyICE9PSAnZW1wdHknXG4gICAgICA/IHBsYWNlaG9sZGVyID09PSAnYmx1cidcbiAgICAgICAgPyBgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJHtnZXRJbWFnZUJsdXJTdmcoe1xuICAgICAgICAgICAgd2lkdGhJbnQsXG4gICAgICAgICAgICBoZWlnaHRJbnQsXG4gICAgICAgICAgICBibHVyV2lkdGgsXG4gICAgICAgICAgICBibHVySGVpZ2h0LFxuICAgICAgICAgICAgYmx1ckRhdGFVUkw6IGJsdXJEYXRhVVJMIHx8ICcnLCAvLyBhc3N1bWUgbm90IHVuZGVmaW5lZFxuICAgICAgICAgICAgb2JqZWN0Rml0OiBpbWdTdHlsZS5vYmplY3RGaXQsXG4gICAgICAgICAgfSl9XCIpYFxuICAgICAgICA6IGB1cmwoXCIke3BsYWNlaG9sZGVyfVwiKWAgLy8gYXNzdW1lIGBkYXRhOmltYWdlL2BcbiAgICAgIDogbnVsbFxuXG4gIGNvbnN0IGJhY2tncm91bmRTaXplID0gIUlOVkFMSURfQkFDS0dST1VORF9TSVpFX1ZBTFVFUy5pbmNsdWRlcyhcbiAgICBpbWdTdHlsZS5vYmplY3RGaXRcbiAgKVxuICAgID8gaW1nU3R5bGUub2JqZWN0Rml0XG4gICAgOiBpbWdTdHlsZS5vYmplY3RGaXQgPT09ICdmaWxsJ1xuICAgICAgPyAnMTAwJSAxMDAlJyAvLyB0aGUgYmFja2dyb3VuZC1zaXplIGVxdWl2YWxlbnQgb2YgYGZpbGxgXG4gICAgICA6ICdjb3ZlcidcblxuICBsZXQgcGxhY2Vob2xkZXJTdHlsZTogUGxhY2Vob2xkZXJTdHlsZSA9IGJhY2tncm91bmRJbWFnZVxuICAgID8ge1xuICAgICAgICBiYWNrZ3JvdW5kU2l6ZSxcbiAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiBpbWdTdHlsZS5vYmplY3RQb3NpdGlvbiB8fCAnNTAlIDUwJScsXG4gICAgICAgIGJhY2tncm91bmRSZXBlYXQ6ICduby1yZXBlYXQnLFxuICAgICAgICBiYWNrZ3JvdW5kSW1hZ2UsXG4gICAgICB9XG4gICAgOiB7fVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGlmIChcbiAgICAgIHBsYWNlaG9sZGVyU3R5bGUuYmFja2dyb3VuZEltYWdlICYmXG4gICAgICBwbGFjZWhvbGRlciA9PT0gJ2JsdXInICYmXG4gICAgICBibHVyRGF0YVVSTD8uc3RhcnRzV2l0aCgnLycpXG4gICAgKSB7XG4gICAgICAvLyBEdXJpbmcgYG5leHQgZGV2YCwgd2UgZG9uJ3Qgd2FudCB0byBnZW5lcmF0ZSBibHVyIHBsYWNlaG9sZGVycyB3aXRoIHdlYnBhY2tcbiAgICAgIC8vIGJlY2F1c2UgaXQgY2FuIGRlbGF5IHN0YXJ0aW5nIHRoZSBkZXYgc2VydmVyLiBJbnN0ZWFkLCBgbmV4dC1pbWFnZS1sb2FkZXIuanNgXG4gICAgICAvLyB3aWxsIGlubGluZSBhIHNwZWNpYWwgdXJsIHRvIGxhemlseSBnZW5lcmF0ZSB0aGUgYmx1ciBwbGFjZWhvbGRlciBhdCByZXF1ZXN0IHRpbWUuXG4gICAgICBwbGFjZWhvbGRlclN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoXCIke2JsdXJEYXRhVVJMfVwiKWBcbiAgICB9XG4gIH1cblxuICBjb25zdCBpbWdBdHRyaWJ1dGVzID0gZ2VuZXJhdGVJbWdBdHRycyh7XG4gICAgY29uZmlnLFxuICAgIHNyYyxcbiAgICB1bm9wdGltaXplZCxcbiAgICB3aWR0aDogd2lkdGhJbnQsXG4gICAgcXVhbGl0eTogcXVhbGl0eUludCxcbiAgICBzaXplcyxcbiAgICBsb2FkZXIsXG4gIH0pXG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCBmdWxsVXJsOiBVUkxcbiAgICAgIHRyeSB7XG4gICAgICAgIGZ1bGxVcmwgPSBuZXcgVVJMKGltZ0F0dHJpYnV0ZXMuc3JjKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBmdWxsVXJsID0gbmV3IFVSTChpbWdBdHRyaWJ1dGVzLnNyYywgd2luZG93LmxvY2F0aW9uLmhyZWYpXG4gICAgICB9XG4gICAgICBhbGxJbWdzLnNldChmdWxsVXJsLmhyZWYsIHsgc3JjLCBwcmlvcml0eSwgcGxhY2Vob2xkZXIgfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBwcm9wczogSW1nUHJvcHMgPSB7XG4gICAgLi4ucmVzdCxcbiAgICBsb2FkaW5nOiBpc0xhenkgPyAnbGF6eScgOiBsb2FkaW5nLFxuICAgIGZldGNoUHJpb3JpdHksXG4gICAgd2lkdGg6IHdpZHRoSW50LFxuICAgIGhlaWdodDogaGVpZ2h0SW50LFxuICAgIGRlY29kaW5nLFxuICAgIGNsYXNzTmFtZSxcbiAgICBzdHlsZTogeyAuLi5pbWdTdHlsZSwgLi4ucGxhY2Vob2xkZXJTdHlsZSB9LFxuICAgIHNpemVzOiBpbWdBdHRyaWJ1dGVzLnNpemVzLFxuICAgIHNyY1NldDogaW1nQXR0cmlidXRlcy5zcmNTZXQsXG4gICAgc3JjOiBvdmVycmlkZVNyYyB8fCBpbWdBdHRyaWJ1dGVzLnNyYyxcbiAgfVxuICBjb25zdCBtZXRhID0geyB1bm9wdGltaXplZCwgcHJpb3JpdHksIHBsYWNlaG9sZGVyLCBmaWxsIH1cbiAgcmV0dXJuIHsgcHJvcHMsIG1ldGEgfVxufVxuIl0sIm5hbWVzIjpbImdldEltZ1Byb3BzIiwiVkFMSURfTE9BRElOR19WQUxVRVMiLCJ1bmRlZmluZWQiLCJJTlZBTElEX0JBQ0tHUk9VTkRfU0laRV9WQUxVRVMiLCJpc1N0YXRpY1JlcXVpcmUiLCJzcmMiLCJkZWZhdWx0IiwiaXNTdGF0aWNJbWFnZURhdGEiLCJpc1N0YXRpY0ltcG9ydCIsImFsbEltZ3MiLCJNYXAiLCJwZXJmT2JzZXJ2ZXIiLCJnZXRJbnQiLCJ4IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJOYU4iLCJ0ZXN0IiwicGFyc2VJbnQiLCJnZXRXaWR0aHMiLCJ3aWR0aCIsInNpemVzIiwiZGV2aWNlU2l6ZXMiLCJhbGxTaXplcyIsInZpZXdwb3J0V2lkdGhSZSIsInBlcmNlbnRTaXplcyIsIm1hdGNoIiwiZXhlYyIsInB1c2giLCJsZW5ndGgiLCJzbWFsbGVzdFJhdGlvIiwiTWF0aCIsIm1pbiIsIndpZHRocyIsImZpbHRlciIsInMiLCJraW5kIiwiU2V0IiwibWFwIiwidyIsImZpbmQiLCJwIiwiZ2VuZXJhdGVJbWdBdHRycyIsImNvbmZpZyIsInVub3B0aW1pemVkIiwicXVhbGl0eSIsImxvYWRlciIsInNyY1NldCIsImxhc3QiLCJpIiwiam9pbiIsIl9zdGF0ZSIsInByaW9yaXR5IiwibG9hZGluZyIsImNsYXNzTmFtZSIsImhlaWdodCIsImZpbGwiLCJzdHlsZSIsIm92ZXJyaWRlU3JjIiwib25Mb2FkIiwib25Mb2FkaW5nQ29tcGxldGUiLCJwbGFjZWhvbGRlciIsImJsdXJEYXRhVVJMIiwiZmV0Y2hQcmlvcml0eSIsImRlY29kaW5nIiwibGF5b3V0Iiwib2JqZWN0Rml0Iiwib2JqZWN0UG9zaXRpb24iLCJsYXp5Qm91bmRhcnkiLCJsYXp5Um9vdCIsInJlc3QiLCJpbWdDb25mIiwic2hvd0FsdFRleHQiLCJibHVyQ29tcGxldGUiLCJkZWZhdWx0TG9hZGVyIiwiYyIsImltYWdlQ29uZmlnRGVmYXVsdCIsImltYWdlU2l6ZXMiLCJzb3J0IiwiYSIsImIiLCJxdWFsaXRpZXMiLCJFcnJvciIsImlzRGVmYXVsdExvYWRlciIsImN1c3RvbUltYWdlTG9hZGVyIiwib2JqIiwiXyIsIm9wdHMiLCJsYXlvdXRUb1N0eWxlIiwiaW50cmluc2ljIiwibWF4V2lkdGgiLCJyZXNwb25zaXZlIiwibGF5b3V0VG9TaXplcyIsImxheW91dFN0eWxlIiwibGF5b3V0U2l6ZXMiLCJzdGF0aWNTcmMiLCJ3aWR0aEludCIsImhlaWdodEludCIsImJsdXJXaWR0aCIsImJsdXJIZWlnaHQiLCJzdGF0aWNJbWFnZURhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwicmF0aW8iLCJyb3VuZCIsImlzTGF6eSIsInN0YXJ0c1dpdGgiLCJkYW5nZXJvdXNseUFsbG93U1ZHIiwic3BsaXQiLCJlbmRzV2l0aCIsInF1YWxpdHlJbnQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJvdXRwdXQiLCJwb3NpdGlvbiIsImlzTmFOIiwiaW5jbHVkZXMiLCJTdHJpbmciLCJ3YXJuT25jZSIsIlZBTElEX0JMVVJfRVhUIiwidXJsU3RyIiwidXJsIiwiVVJMIiwiZXJyIiwicGF0aG5hbWUiLCJzZWFyY2giLCJsZWdhY3lLZXkiLCJsZWdhY3lWYWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJ3aW5kb3ciLCJQZXJmb3JtYW5jZU9ic2VydmVyIiwiZW50cnlMaXN0IiwiZW50cnkiLCJnZXRFbnRyaWVzIiwiaW1nU3JjIiwiZWxlbWVudCIsImxjcEltYWdlIiwiZ2V0Iiwib2JzZXJ2ZSIsInR5cGUiLCJidWZmZXJlZCIsImNvbnNvbGUiLCJlcnJvciIsImltZ1N0eWxlIiwiYXNzaWduIiwibGVmdCIsInRvcCIsInJpZ2h0IiwiYm90dG9tIiwiY29sb3IiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJnZXRJbWFnZUJsdXJTdmciLCJiYWNrZ3JvdW5kU2l6ZSIsInBsYWNlaG9sZGVyU3R5bGUiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kUmVwZWF0IiwiaW1nQXR0cmlidXRlcyIsImZ1bGxVcmwiLCJlIiwibG9jYXRpb24iLCJocmVmIiwic2V0IiwicHJvcHMiLCJtZXRhIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/get-img-props.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/hash.js":
/*!***************************************************!*\
!*** ./node_modules/next/dist/shared/lib/hash.js ***!
\***************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// http://www.cse.yorku.ca/~oz/hash.html\n// More specifically, 32-bit hash via djbxor\n// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765)\n// This is due to number type differences between rust for turbopack to js number types,\n// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching\n// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation\n// as can gaurantee determinstic output from 32bit hash.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n djb2Hash: function() {\n return djb2Hash;\n },\n hexHash: function() {\n return hexHash;\n }\n});\nfunction djb2Hash(str) {\n let hash = 5381;\n for(let i = 0; i < str.length; i++){\n const char = str.charCodeAt(i);\n hash = (hash << 5) + hash + char & 0xffffffff;\n }\n return hash >>> 0;\n}\nfunction hexHash(str) {\n return djb2Hash(str).toString(36).slice(0, 5);\n} //# sourceMappingURL=hash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsNENBQTRDO0FBQzVDLGlIQUFpSDtBQUNqSCx3RkFBd0Y7QUFDeEYsZ0dBQWdHO0FBQ2hHLHdIQUF3SDtBQUN4SCx3REFBd0Q7Ozs7Ozs7Ozs7Ozs7SUFDeENBLFFBQVE7ZUFBUkE7O0lBU0FDLE9BQU87ZUFBUEE7OztBQVRULFNBQVNELFNBQVNFLEdBQVc7SUFDbEMsSUFBSUMsT0FBTztJQUNYLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJRixJQUFJRyxNQUFNLEVBQUVELElBQUs7UUFDbkMsTUFBTUUsT0FBT0osSUFBSUssVUFBVSxDQUFDSDtRQUM1QkQsT0FBU0EsQ0FBQUEsU0FBUSxJQUFLQSxPQUFPRyxPQUFRO0lBQ3ZDO0lBQ0EsT0FBT0gsU0FBUztBQUNsQjtBQUVPLFNBQVNGLFFBQVFDLEdBQVc7SUFDakMsT0FBT0YsU0FBU0UsS0FBS00sUUFBUSxDQUFDLElBQUlDLEtBQUssQ0FBQyxHQUFHO0FBQzdDIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9oYXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHA6Ly93d3cuY3NlLnlvcmt1LmNhL35vei9oYXNoLmh0bWxcbi8vIE1vcmUgc3BlY2lmaWNhbGx5LCAzMi1iaXQgaGFzaCB2aWEgZGpieG9yXG4vLyAocmVmOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9lcGxhd2xlc3MvNTI4MTNiMWQ4YWQ5YWY1MTBkODU/cGVybWFsaW5rX2NvbW1lbnRfaWQ9MzM2Nzc2NSNnaXN0Y29tbWVudC0zMzY3NzY1KVxuLy8gVGhpcyBpcyBkdWUgdG8gbnVtYmVyIHR5cGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBydXN0IGZvciB0dXJib3BhY2sgdG8ganMgbnVtYmVyIHR5cGVzLFxuLy8gd2hlcmUgcnVzdCBkb2VzIG5vdCBoYXZlIGVhc3kgd2F5IHRvIHJlcHJlZXNudCBqcydzIDUzLWJpdCBmbG9hdCBudW1iZXIgdHlwZSBmb3IgdGhlIG1hdGNoaW5nXG4vLyBvdmVyZmxvdyBiZWhhdmlvci4gVGhpcyBpcyBtb3JlIGBjb3JyZWN0YCBpbiB0ZXJtcyBvZiBoYXZpbmcgY2Fub25pY2FsIGhhc2ggYWNyb3NzIGRpZmZlcmVudCBydW50aW1lIC8gaW1wbGVtZW50YXRpb25cbi8vIGFzIGNhbiBnYXVyYW50ZWUgZGV0ZXJtaW5zdGljIG91dHB1dCBmcm9tIDMyYml0IGhhc2guXG5leHBvcnQgZnVuY3Rpb24gZGpiMkhhc2goc3RyOiBzdHJpbmcpIHtcbiAgbGV0IGhhc2ggPSA1MzgxXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGFzaCA9ICgoaGFzaCA8PCA1KSArIGhhc2ggKyBjaGFyKSAmIDB4ZmZmZmZmZmZcbiAgfVxuICByZXR1cm4gaGFzaCA+Pj4gMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGV4SGFzaChzdHI6IHN0cmluZykge1xuICByZXR1cm4gZGpiMkhhc2goc3RyKS50b1N0cmluZygzNikuc2xpY2UoMCwgNSlcbn1cbiJdLCJuYW1lcyI6WyJkamIySGFzaCIsImhleEhhc2giLCJzdHIiLCJoYXNoIiwiaSIsImxlbmd0aCIsImNoYXIiLCJjaGFyQ29kZUF0IiwidG9TdHJpbmciLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/hash.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/head.js":
/*!***************************************************!*\
!*** ./node_modules/next/dist/shared/lib/head.js ***!
\***************************************************/
/***/ ((module, exports, __webpack_require__) => {
"use strict";
eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n defaultHead: function() {\n return defaultHead;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _sideeffect = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./side-effect */ \"(ssr)/./node_modules/next/dist/shared/lib/side-effect.js\"));\nconst _ampcontextsharedruntime = __webpack_require__(/*! ./amp-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/amp-context.js\");\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js\");\nconst _ampmode = __webpack_require__(/*! ./amp-mode */ \"(ssr)/./node_modules/next/dist/shared/lib/amp-mode.js\");\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }, \"charset\")\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }, \"viewport\"));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === _react.default.Fragment) {\n return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n 'name',\n 'httpEquiv',\n 'charSet',\n 'itemProp'\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (true) {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? '<script> tag with src=\"' + c.props['src'] + '\"' : \"inline <script>\";\n (0, _warnonce.warnOnce)(\"Do not add <script> tags using next/head (see \" + srcMessage + \"). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component\");\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n (0, _warnonce.warnOnce)('Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"' + c.props['href'] + '\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');\n }\n }\n return /*#__PURE__*/ _react.default.cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head(param) {\n let { children } = param;\n const ampState = (0, _react.useContext)(_ampcontextsharedruntime.AmpStateContext);\n const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampmode.isInAmpMode)(ampState),\n children: children\n });\n}\nconst _default = Head;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFnTEEsT0FBbUI7ZUFBbkI7O0lBbktnQkEsV0FBVztlQUFYQTs7Ozs7OzZFQVg0QjtpRkFDekI7cURBQ2E7NkRBQ0c7cUNBQ1A7c0NBQ0g7QUFNbEIsU0FBU0EsWUFBWUMsU0FBaUI7SUFBakJBLElBQUFBLGNBQUFBLEtBQUFBLEdBQUFBLFlBQVk7SUFDdEMsTUFBTUMsT0FBTztzQkFBQyxxQkFBQ0MsUUFBQUE7WUFBS0MsU0FBUTtXQUFZO0tBQWE7SUFDckQsSUFBSSxDQUFDSCxXQUFXO1FBQ2RDLEtBQUtHLElBQUksZUFDUCxxQkFBQ0YsUUFBQUE7WUFBS0csTUFBSztZQUFXQyxTQUFRO1dBQXlCO0lBRTNEO0lBQ0EsT0FBT0w7QUFDVDtBQUVBLFNBQVNNLGlCQUNQQyxJQUFvQyxFQUNwQ0MsS0FBMkM7SUFFM0MsOEZBQThGO0lBQzlGLElBQUksT0FBT0EsVUFBVSxZQUFZLE9BQU9BLFVBQVUsVUFBVTtRQUMxRCxPQUFPRDtJQUNUO0lBQ0Esa0NBQWtDO0lBQ2xDLElBQUlDLE1BQU1DLElBQUksS0FBS0MsT0FBQUEsT0FBSyxDQUFDQyxRQUFRLEVBQUU7UUFDakMsT0FBT0osS0FBS0ssTUFBTSxDQUNoQixPQUNBRixPQUFLLENBQUNHLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDTixNQUFNTyxLQUFLLENBQUNDLFFBQVEsRUFBRUMsTUFBTSxDQUNqRCxDQUVFQyxjQUNBQztZQUVBLElBQ0UsT0FBT0Esa0JBQWtCLFlBQ3pCLE9BQU9BLGtCQUFrQixVQUN6QjtnQkFDQSxPQUFPRDtZQUNUO1lBQ0EsT0FBT0EsYUFBYU4sTUFBTSxDQUFDTztRQUM3QixHQUNBLEVBQUU7SUFHUjtJQUNBLE9BQU9aLEtBQUtLLE1BQU0sQ0FBQ0o7QUFDckI7QUFFQSxNQUFNWSxZQUFZO0lBQUM7SUFBUTtJQUFhO0lBQVc7Q0FBVztBQUU5RDs7OztBQUlB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QUFBLFFBQUFBLEVBQ0csd0ZBQXFGTCxFQUFFaEMsS0FBSyxDQUFDLE9BQU8sR0FBQztZQUUxRztRQUNGO1FBQ0EscUJBQU9MLE9BQUFBLE9BQUssQ0FBQzJDLFlBQVksQ0FBQ04sR0FBRztZQUFFakI7UUFBSTtJQUNyQztBQUNKO0FBRUE7OztDQUdDLEdBQ0QsU0FBU3dCLEtBQUssS0FBMkM7SUFBM0MsTUFBRXRDLFFBQVEsRUFBaUMsR0FBM0M7SUFDWixNQUFNdUMsV0FBV0MsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MseUJBQUFBLGVBQWU7SUFDM0MsTUFBTUMsY0FBY0YsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0csaUNBQUFBLGtCQUFrQjtJQUNqRCxxQkFDRSxxQkFBQ0MsWUFBQUEsT0FBTTtRQUNMQyx5QkFBeUJuQjtRQUN6QmdCLGFBQWFBO1FBQ2IzRCxXQUFXK0QsQ0FBQUEsR0FBQUEsU0FBQUEsV0FBQUEsRUFBWVA7a0JBRXRCdkM7O0FBR1A7TUFFQSxXQUFlc0MiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2hlYWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCBFZmZlY3QgZnJvbSAnLi9zaWRlLWVmZmVjdCdcbmltcG9ydCB7IEFtcFN0YXRlQ29udGV4dCB9IGZyb20gJy4vYW1wLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBIZWFkTWFuYWdlckNvbnRleHQgfSBmcm9tICcuL2hlYWQtbWFuYWdlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgaXNJbkFtcE1vZGUgfSBmcm9tICcuL2FtcC1tb2RlJ1xuaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuL3V0aWxzL3dhcm4tb25jZSdcblxudHlwZSBXaXRoSW5BbXBNb2RlID0ge1xuICBpbkFtcE1vZGU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSk6IEpTWC5FbGVtZW50W10ge1xuICBjb25zdCBoZWFkID0gWzxtZXRhIGNoYXJTZXQ9XCJ1dGYtOFwiIGtleT1cImNoYXJzZXRcIiAvPl1cbiAgaWYgKCFpbkFtcE1vZGUpIHtcbiAgICBoZWFkLnB1c2goXG4gICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoXCIga2V5PVwidmlld3BvcnRcIiAvPlxuICAgIClcbiAgfVxuICByZXR1cm4gaGVhZFxufVxuXG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KFxuICBsaXN0OiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gIGNoaWxkOiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBudW1iZXIgfCBzdHJpbmdcbik6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PiB7XG4gIC8vIFJlYWN0IGNoaWxkcmVuIGNhbiBiZSBcInN0cmluZ1wiIG9yIFwibnVtYmVyXCIgaW4gdGhpcyBjYXNlIHdlIGlnbm9yZSB0aGVtIGZvciBiYWNrd2FyZHMgY29tcGF0XG4gIGlmICh0eXBlb2YgY2hpbGQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbGlzdFxuICB9XG4gIC8vIEFkZHMgc3VwcG9ydCBmb3IgUmVhY3QuRnJhZ21lbnRcbiAgaWYgKGNoaWxkLnR5cGUgPT09IFJlYWN0LkZyYWdtZW50KSB7XG4gICAgcmV0dXJuIGxpc3QuY29uY2F0KFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBAdHlwZXMvcmVhY3QgZG9lcyBub3QgcmVtb3ZlIGZyYWdtZW50cyBidXQgdGhpcyBjb3VsZCBhbHNvIHJldHVybiBSZWFjdFBvcnRhbFtdXG4gICAgICBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQHR5cGVzL3JlYWN0IGRvZXMgbm90IHJlbW92ZSBmcmFnbWVudHMgYnV0IHRoaXMgY291bGQgYWxzbyByZXR1cm4gUmVhY3RQb3J0YWxbXVxuICAgICAgICAoXG4gICAgICAgICAgZnJhZ21lbnRMaXN0OiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gICAgICAgICAgZnJhZ21lbnRDaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVtYmVyIHwgc3RyaW5nXG4gICAgICAgICk6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PiA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICAgICB0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ251bWJlcidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3RcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdC5jb25jYXQoZnJhZ21lbnRDaGlsZClcbiAgICAgICAgfSxcbiAgICAgICAgW11cbiAgICAgIClcbiAgICApXG4gIH1cbiAgcmV0dXJuIGxpc3QuY29uY2F0KGNoaWxkKVxufVxuXG5jb25zdCBNRVRBVFlQRVMgPSBbJ25hbWUnLCAnaHR0cEVxdWl2JywgJ2NoYXJTZXQnLCAnaXRlbVByb3AnXVxuXG4vKlxuIHJldHVybnMgYSBmdW5jdGlvbiBmb3IgZmlsdGVyaW5nIGhlYWQgY2hpbGQgZWxlbWVudHNcbiB3aGljaCBzaG91bGRuJ3QgYmUgZHVwbGljYXRlZCwgbGlrZSA8dGl0bGUvPlxuIEFsc28gYWRkcyBzdXBwb3J0IGZvciBkZWR1cGxpY2F0ZWQgYGtleWAgcHJvcGVydGllc1xuKi9cbmZ1bmN0aW9uIHVuaXF1ZSgpIHtcbiAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKVxuICBjb25zdCB0YWdzID0gbmV3IFNldCgpXG4gIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKVxuICBjb25zdCBtZXRhQ2F0ZWdvcmllczogeyBbbWV0YXR5cGU6IHN0cmluZ106IFNldDxzdHJpbmc+IH0gPSB7fVxuXG4gIHJldHVybiAoaDogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4pID0+IHtcbiAgICBsZXQgaXNVbmlxdWUgPSB0cnVlXG4gICAgbGV0IGhhc0tleSA9IGZhbHNlXG5cbiAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICBoYXNLZXkgPSB0cnVlXG4gICAgICBjb25zdCBrZXkgPSBoLmtleS5zbGljZShoLmtleS5pbmRleE9mKCckJykgKyAxKVxuICAgICAgaWYgKGtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAga2V5cy5hZGQoa2V5KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWZhdWx0LWNhc2VcbiAgICBzd2l0Y2ggKGgudHlwZSkge1xuICAgICAgY2FzZSAndGl0bGUnOlxuICAgICAgY2FzZSAnYmFzZSc6XG4gICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhZ3MuYWRkKGgudHlwZSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbWV0YSc6XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXVxuICAgICAgICAgIGlmICghaC5wcm9wcy5oYXNPd25Qcm9wZXJ0eShtZXRhdHlwZSkpIGNvbnRpbnVlXG5cbiAgICAgICAgICBpZiAobWV0YXR5cGUgPT09ICdjaGFyU2V0Jykge1xuICAgICAgICAgICAgaWYgKG1ldGFUeXBlcy5oYXMobWV0YXR5cGUpKSB7XG4gICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1ldGFUeXBlcy5hZGQobWV0YXR5cGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV1cbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBtZXRhQ2F0ZWdvcmllc1ttZXRhdHlwZV0gfHwgbmV3IFNldCgpXG4gICAgICAgICAgICBpZiAoKG1ldGF0eXBlICE9PSAnbmFtZScgfHwgIWhhc0tleSkgJiYgY2F0ZWdvcmllcy5oYXMoY2F0ZWdvcnkpKSB7XG4gICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNhdGVnb3JpZXMuYWRkKGNhdGVnb3J5KVxuICAgICAgICAgICAgICBtZXRhQ2F0ZWdvcmllc1ttZXRhdHlwZV0gPSBjYXRlZ29yaWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVW5pcXVlXG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGhlYWRDaGlsZHJlbkVsZW1lbnRzIExpc3Qgb2YgY2hpbGRyZW4gb2YgPEhlYWQ+XG4gKi9cbmZ1bmN0aW9uIHJlZHVjZUNvbXBvbmVudHM8VCBleHRlbmRzIHt9ICYgV2l0aEluQW1wTW9kZT4oXG4gIGhlYWRDaGlsZHJlbkVsZW1lbnRzOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gIHByb3BzOiBUXG4pIHtcbiAgY29uc3QgeyBpbkFtcE1vZGUgfSA9IHByb3BzXG4gIHJldHVybiBoZWFkQ2hpbGRyZW5FbGVtZW50c1xuICAgIC5yZWR1Y2Uob25seVJlYWN0RWxlbWVudCwgW10pXG4gICAgLnJldmVyc2UoKVxuICAgIC5jb25jYXQoZGVmYXVsdEhlYWQoaW5BbXBNb2RlKS5yZXZlcnNlKCkpXG4gICAgLmZpbHRlcih1bmlxdWUoKSlcbiAgICAucmV2ZXJzZSgpXG4gICAgLm1hcCgoYzogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4sIGk6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaVxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIG9taXQgSlNPTi1MRCBzdHJ1Y3R1cmVkIGRhdGEgc25pcHBldHMgZnJvbSB0aGUgd2FybmluZ1xuICAgICAgICBpZiAoYy50eXBlID09PSAnc2NyaXB0JyAmJiBjLnByb3BzWyd0eXBlJ10gIT09ICdhcHBsaWNhdGlvbi9sZCtqc29uJykge1xuICAgICAgICAgIGNvbnN0IHNyY01lc3NhZ2UgPSBjLnByb3BzWydzcmMnXVxuICAgICAgICAgICAgPyBgPHNjcmlwdD4gdGFnIHdpdGggc3JjPVwiJHtjLnByb3BzWydzcmMnXX1cImBcbiAgICAgICAgICAgIDogYGlubGluZSA8c2NyaXB0PmBcbiAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgIGBEbyBub3QgYWRkIDxzY3JpcHQ+IHRhZ3MgdXNpbmcgbmV4dC9oZWFkIChzZWUgJHtzcmNNZXNzYWdlfSkuIFVzZSBuZXh0L3NjcmlwdCBpbnN0ZWFkLiBcXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLXNjcmlwdC10YWdzLWluLWhlYWQtY29tcG9uZW50YFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIGlmIChjLnR5cGUgPT09ICdsaW5rJyAmJiBjLnByb3BzWydyZWwnXSA9PT0gJ3N0eWxlc2hlZXQnKSB7XG4gICAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICBgRG8gbm90IGFkZCBzdHlsZXNoZWV0cyB1c2luZyBuZXh0L2hlYWQgKHNlZSA8bGluayByZWw9XCJzdHlsZXNoZWV0XCI+IHRhZyB3aXRoIGhyZWY9XCIke2MucHJvcHNbJ2hyZWYnXX1cIikuIFVzZSBEb2N1bWVudCBpbnN0ZWFkLiBcXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLXN0eWxlc2hlZXRzLWluLWhlYWQtY29tcG9uZW50YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjLCB7IGtleSB9KVxuICAgIH0pXG59XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgaW5qZWN0cyBlbGVtZW50cyB0byBgPGhlYWQ+YCBvZiB5b3VyIHBhZ2UuXG4gKiBUbyBhdm9pZCBkdXBsaWNhdGVkIGB0YWdzYCBpbiBgPGhlYWQ+YCB5b3UgY2FuIHVzZSB0aGUgYGtleWAgcHJvcGVydHksIHdoaWNoIHdpbGwgbWFrZSBzdXJlIGV2ZXJ5IHRhZyBpcyBvbmx5IHJlbmRlcmVkIG9uY2UuXG4gKi9cbmZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICBjb25zdCBhbXBTdGF0ZSA9IHVzZUNvbnRleHQoQW1wU3RhdGVDb250ZXh0KVxuICBjb25zdCBoZWFkTWFuYWdlciA9IHVzZUNvbnRleHQoSGVhZE1hbmFnZXJDb250ZXh0KVxuICByZXR1cm4gKFxuICAgIDxFZmZlY3RcbiAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlPXtyZWR1Y2VDb21wb25lbnRzfVxuICAgICAgaGVhZE1hbmFnZXI9e2hlYWRNYW5hZ2VyfVxuICAgICAgaW5BbXBNb2RlPXtpc0luQW1wTW9kZShhbXBTdGF0ZSl9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRWZmZWN0PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRcbiJdLCJuYW1lcyI6WyJkZWZhdWx0SGVhZCIsImluQW1wTW9kZSIsImhlYWQiLCJtZXRhIiwiY2hhclNldCIsInB1c2giLCJuYW1lIiwiY29udGVudCIsIm9ubHlSZWFjdEVsZW1lbnQiLCJsaXN0IiwiY2hpbGQiLCJ0eXBlIiwiUmVhY3QiLCJGcmFnbWVudCIsImNvbmNhdCIsIkNoaWxkcmVuIiwidG9BcnJheSIsInByb3BzIiwiY2hpbGRyZW4iLCJyZWR1Y2UiLCJmcmFnbWVudExpc3QiLCJmcmFnbWVudENoaWxkIiwiTUVUQVRZUEVTIiwidW5pcXVlIiwia2V5cyIsIlNldCIsInRhZ3MiLCJtZXRhVHlwZXMiLCJtZXRhQ2F0ZWdvcmllcyIsImgiLCJpc1VuaXF1ZSIsImhhc0tleSIsImtleSIsImluZGV4T2YiLCJzbGljZSIsImhhcyIsImFkZCIsImkiLCJsZW4iLCJsZW5ndGgiLCJtZXRhdHlwZSIsImhhc093blByb3BlcnR5IiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRDaGlsZHJlbkVsZW1lbnRzIiwicmV2ZXJzZSIsImZpbHRlciIsIm1hcCIsImMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJzcmNNZXNzYWdlIiwid2Fybk9uY2UiLCJjbG9uZUVsZW1lbnQiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJFZmZlY3QiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/head.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/image-blur-svg.js":
/*!*************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/image-blur-svg.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getImageBlurSvg\", ({\n enumerable: true,\n get: function() {\n return getImageBlurSvg;\n }\n}));\nfunction getImageBlurSvg(param) {\n let { widthInt, heightInt, blurWidth, blurHeight, blurDataURL, objectFit } = param;\n const std = 20;\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt;\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt;\n const viewBox = svgWidth && svgHeight ? \"viewBox='0 0 \" + svgWidth + \" \" + svgHeight + \"'\" : '';\n const preserveAspectRatio = viewBox ? 'none' : objectFit === 'contain' ? 'xMidYMid' : objectFit === 'cover' ? 'xMidYMid slice' : 'none';\n return \"%3Csvg xmlns='http://www.w3.org/2000/svg' \" + viewBox + \"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='\" + std + \"'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='\" + std + \"'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='\" + preserveAspectRatio + \"' style='filter: url(%23b);' href='\" + blurDataURL + \"'/%3E%3C/svg%3E\";\n} //# sourceMappingURL=image-blur-svg.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtYmx1ci1zdmcuanMiLCJtYXBwaW5ncyI6IkFBQUE7O0NBRUM7Ozs7bURBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLGdCQUFnQixLQWMvQjtJQWQrQixNQUM5QkMsUUFBUSxFQUNSQyxTQUFTLEVBQ1RDLFNBQVMsRUFDVEMsVUFBVSxFQUNWQyxXQUFXLEVBQ1hDLFNBQVMsRUFRVixHQWQrQjtJQWU5QixNQUFNQyxNQUFNO0lBQ1osTUFBTUMsV0FBV0wsWUFBWUEsWUFBWSxLQUFLRjtJQUM5QyxNQUFNUSxZQUFZTCxhQUFhQSxhQUFhLEtBQUtGO0lBRWpELE1BQU1RLFVBQ0pGLFlBQVlDLFlBQWEsa0JBQWVELFdBQVMsTUFBR0MsWUFBVSxNQUFLO0lBQ3JFLE1BQU1FLHNCQUFzQkQsVUFDeEIsU0FDQUosY0FBYyxZQUNaLGFBQ0FBLGNBQWMsVUFDWixtQkFDQTtJQUVSLE9BQVEsK0NBQTRDSSxVQUFRLDhGQUEyRkgsTUFBSSxvUUFBaVFBLE1BQUksZ0dBQTZGSSxzQkFBb0Isd0NBQXFDTixjQUFZO0FBQ3BrQiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvaW1hZ2UtYmx1ci1zdmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIHNoYXJlZCBmdW5jdGlvbiwgdXNlZCBvbiBib3RoIGNsaWVudCBhbmQgc2VydmVyLCB0byBnZW5lcmF0ZSBhIFNWRyBibHVyIHBsYWNlaG9sZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW1hZ2VCbHVyU3ZnKHtcbiAgd2lkdGhJbnQsXG4gIGhlaWdodEludCxcbiAgYmx1cldpZHRoLFxuICBibHVySGVpZ2h0LFxuICBibHVyRGF0YVVSTCxcbiAgb2JqZWN0Rml0LFxufToge1xuICB3aWR0aEludD86IG51bWJlclxuICBoZWlnaHRJbnQ/OiBudW1iZXJcbiAgYmx1cldpZHRoPzogbnVtYmVyXG4gIGJsdXJIZWlnaHQ/OiBudW1iZXJcbiAgYmx1ckRhdGFVUkw6IHN0cmluZ1xuICBvYmplY3RGaXQ/OiBzdHJpbmdcbn0pOiBzdHJpbmcge1xuICBjb25zdCBzdGQgPSAyMFxuICBjb25zdCBzdmdXaWR0aCA9IGJsdXJXaWR0aCA/IGJsdXJXaWR0aCAqIDQwIDogd2lkdGhJbnRcbiAgY29uc3Qgc3ZnSGVpZ2h0ID0gYmx1ckhlaWdodCA/IGJsdXJIZWlnaHQgKiA0MCA6IGhlaWdodEludFxuXG4gIGNvbnN0IHZpZXdCb3ggPVxuICAgIHN2Z1dpZHRoICYmIHN2Z0hlaWdodCA/IGB2aWV3Qm94PScwIDAgJHtzdmdXaWR0aH0gJHtzdmdIZWlnaHR9J2AgOiAnJ1xuICBjb25zdCBwcmVzZXJ2ZUFzcGVjdFJhdGlvID0gdmlld0JveFxuICAgID8gJ25vbmUnXG4gICAgOiBvYmplY3RGaXQgPT09ICdjb250YWluJ1xuICAgICAgPyAneE1pZFlNaWQnXG4gICAgICA6IG9iamVjdEZpdCA9PT0gJ2NvdmVyJ1xuICAgICAgICA/ICd4TWlkWU1pZCBzbGljZSdcbiAgICAgICAgOiAnbm9uZSdcblxuICByZXR1cm4gYCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnICR7dmlld0JveH0lM0UlM0NmaWx0ZXIgaWQ9J2InIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0nc1JHQiclM0UlM0NmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249JyR7c3RkfScvJTNFJTNDZmVDb2xvck1hdHJpeCB2YWx1ZXM9JzEgMCAwIDAgMCAwIDEgMCAwIDAgMCAwIDEgMCAwIDAgMCAwIDEwMCAtMScgcmVzdWx0PSdzJy8lM0UlM0NmZUZsb29kIHg9JzAnIHk9JzAnIHdpZHRoPScxMDAlMjUnIGhlaWdodD0nMTAwJTI1Jy8lM0UlM0NmZUNvbXBvc2l0ZSBvcGVyYXRvcj0nb3V0JyBpbj0ncycvJTNFJTNDZmVDb21wb3NpdGUgaW4yPSdTb3VyY2VHcmFwaGljJy8lM0UlM0NmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249JyR7c3RkfScvJTNFJTNDL2ZpbHRlciUzRSUzQ2ltYWdlIHdpZHRoPScxMDAlMjUnIGhlaWdodD0nMTAwJTI1JyB4PScwJyB5PScwJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPScke3ByZXNlcnZlQXNwZWN0UmF0aW99JyBzdHlsZT0nZmlsdGVyOiB1cmwoJTIzYik7JyBocmVmPScke2JsdXJEYXRhVVJMfScvJTNFJTNDL3N2ZyUzRWBcbn1cbiJdLCJuYW1lcyI6WyJnZXRJbWFnZUJsdXJTdmciLCJ3aWR0aEludCIsImhlaWdodEludCIsImJsdXJXaWR0aCIsImJsdXJIZWlnaHQiLCJibHVyRGF0YVVSTCIsIm9iamVjdEZpdCIsInN0ZCIsInN2Z1dpZHRoIiwic3ZnSGVpZ2h0Iiwidmlld0JveCIsInByZXNlcnZlQXNwZWN0UmF0aW8iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/image-blur-svg.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/image-config.js":
/*!***********************************************************!*\
!*** ./node_modules/next/dist/shared/lib/image-config.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n VALID_LOADERS: function() {\n return VALID_LOADERS;\n },\n imageConfigDefault: function() {\n return imageConfigDefault;\n }\n});\nconst VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom'\n];\nconst imageConfigDefault = {\n deviceSizes: [\n 640,\n 750,\n 828,\n 1080,\n 1200,\n 1920,\n 2048,\n 3840\n ],\n imageSizes: [\n 16,\n 32,\n 48,\n 64,\n 96,\n 128,\n 256,\n 384\n ],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 60,\n formats: [\n 'image/webp'\n ],\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: \"script-src 'none'; frame-src 'none'; sandbox;\",\n contentDispositionType: 'attachment',\n localPatterns: undefined,\n remotePatterns: [],\n qualities: undefined,\n unoptimized: false\n}; //# sourceMappingURL=image-config.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxhQUFhO2VBQWJBOztJQWlJQUMsa0JBQWtCO2VBQWxCQTs7O0FBaklOLE1BQU1ELGdCQUFnQjtJQUMzQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUEySE0sTUFBTUMscUJBQTBDO0lBQ3JEQyxhQUFhO1FBQUM7UUFBSztRQUFLO1FBQUs7UUFBTTtRQUFNO1FBQU07UUFBTTtLQUFLO0lBQzFEQyxZQUFZO1FBQUM7UUFBSTtRQUFJO1FBQUk7UUFBSTtRQUFJO1FBQUs7UUFBSztLQUFJO0lBQy9DQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsWUFBWTtJQUNaQyxTQUFTLEVBQUU7SUFDWEMscUJBQXFCO0lBQ3JCQyxpQkFBaUI7SUFDakJDLFNBQVM7UUFBQztLQUFhO0lBQ3ZCQyxxQkFBcUI7SUFDckJDLHVCQUF3QjtJQUN4QkMsd0JBQXdCO0lBQ3hCQyxlQUFlQztJQUNmQyxnQkFBZ0IsRUFBRTtJQUNsQkMsV0FBV0Y7SUFDWEcsYUFBYTtBQUNmIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pbWFnZS1jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZBTElEX0xPQURFUlMgPSBbXG4gICdkZWZhdWx0JyxcbiAgJ2ltZ2l4JyxcbiAgJ2Nsb3VkaW5hcnknLFxuICAnYWthbWFpJyxcbiAgJ2N1c3RvbScsXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIExvYWRlclZhbHVlID0gKHR5cGVvZiBWQUxJRF9MT0FERVJTKVtudW1iZXJdXG5cbmV4cG9ydCB0eXBlIEltYWdlTG9hZGVyUHJvcHMgPSB7XG4gIHNyYzogc3RyaW5nXG4gIHdpZHRoOiBudW1iZXJcbiAgcXVhbGl0eT86IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBJbWFnZUxvYWRlclByb3BzV2l0aENvbmZpZyA9IEltYWdlTG9hZGVyUHJvcHMgJiB7XG4gIGNvbmZpZzogUmVhZG9ubHk8SW1hZ2VDb25maWc+XG59XG5cbmV4cG9ydCB0eXBlIExvY2FsUGF0dGVybiA9IHtcbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIG9yIHdpbGRjYXJkLlxuICAgKiBTaW5nbGUgYCpgIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LlxuICAgKiBEb3VibGUgYCoqYCBtYXRjaGVzIGFueSBudW1iZXIgb2YgcGF0aCBzZWdtZW50cy5cbiAgICovXG4gIHBhdGhuYW1lPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIHF1ZXJ5IHN0cmluZyBzdWNoIGFzIGA/dj0xYCBvclxuICAgKiBlbXB0eSBzdHJpbmcgbWVhbmluZyBubyBxdWVyeSBzdHJpbmcuXG4gICAqL1xuICBzZWFyY2g/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgUmVtb3RlUGF0dGVybiA9IHtcbiAgLyoqXG4gICAqIE11c3QgYmUgYGh0dHBgIG9yIGBodHRwc2AuXG4gICAqL1xuICBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcydcblxuICAvKipcbiAgICogQ2FuIGJlIGxpdGVyYWwgb3Igd2lsZGNhcmQuXG4gICAqIFNpbmdsZSBgKmAgbWF0Y2hlcyBhIHNpbmdsZSBzdWJkb21haW4uXG4gICAqIERvdWJsZSBgKipgIG1hdGNoZXMgYW55IG51bWJlciBvZiBzdWJkb21haW5zLlxuICAgKi9cbiAgaG9zdG5hbWU6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgbGl0ZXJhbCBwb3J0IHN1Y2ggYXMgYDgwODBgIG9yIGVtcHR5IHN0cmluZ1xuICAgKiBtZWFuaW5nIG5vIHBvcnQuXG4gICAqL1xuICBwb3J0Pzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIG9yIHdpbGRjYXJkLlxuICAgKiBTaW5nbGUgYCpgIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LlxuICAgKiBEb3VibGUgYCoqYCBtYXRjaGVzIGFueSBudW1iZXIgb2YgcGF0aCBzZWdtZW50cy5cbiAgICovXG4gIHBhdGhuYW1lPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIHF1ZXJ5IHN0cmluZyBzdWNoIGFzIGA/dj0xYCBvclxuICAgKiBlbXB0eSBzdHJpbmcgbWVhbmluZyBubyBxdWVyeSBzdHJpbmcuXG4gICAqL1xuICBzZWFyY2g/OiBzdHJpbmdcbn1cblxudHlwZSBJbWFnZUZvcm1hdCA9ICdpbWFnZS9hdmlmJyB8ICdpbWFnZS93ZWJwJ1xuXG4vKipcbiAqIEltYWdlIGNvbmZpZ3VyYXRpb25zXG4gKlxuICogQHNlZSBbSW1hZ2UgY29uZmlndXJhdGlvbiBvcHRpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjY29uZmlndXJhdGlvbi1vcHRpb25zKVxuICovXG5leHBvcnQgdHlwZSBJbWFnZUNvbmZpZ0NvbXBsZXRlID0ge1xuICAvKiogQHNlZSBbRGV2aWNlIHNpemVzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNkZXZpY2Utc2l6ZXMpICovXG4gIGRldmljZVNpemVzOiBudW1iZXJbXVxuXG4gIC8qKiBAc2VlIFtJbWFnZSBzaXppbmcgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vb3B0aW1pemluZy9pbWFnZXMjaW1hZ2Utc2l6aW5nKSAqL1xuICBpbWFnZVNpemVzOiBudW1iZXJbXVxuXG4gIC8qKiBAc2VlIFtJbWFnZSBsb2FkZXJzIGNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9sZWdhY3kvaW1hZ2UjbG9hZGVyKSAqL1xuICBsb2FkZXI6IExvYWRlclZhbHVlXG5cbiAgLyoqIEBzZWUgW0ltYWdlIGxvYWRlciBjb25maWd1cmF0aW9uXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvbGVnYWN5L2ltYWdlI2xvYWRlci1jb25maWd1cmF0aW9uKSAqL1xuICBwYXRoOiBzdHJpbmdcblxuICAvKiogQHNlZSBbSW1hZ2UgbG9hZGVyIGNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNsb2FkZXItY29uZmlndXJhdGlvbikgKi9cbiAgbG9hZGVyRmlsZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcmVtb3RlUGF0dGVybnNgIGluc3RlYWQuXG4gICAqL1xuICBkb21haW5zOiBzdHJpbmdbXVxuXG4gIC8qKiBAc2VlIFtEaXNhYmxlIHN0YXRpYyBpbWFnZSBpbXBvcnQgY29uZmlndXJhdGlvbl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2ltYWdlI2Rpc2FibGUtc3RhdGljLWltcG9ydHMpICovXG4gIGRpc2FibGVTdGF0aWNJbWFnZXM6IGJvb2xlYW5cblxuICAvKiogQHNlZSBbQ2FjaGUgYmVoYXZpb3JdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNjYWNoaW5nLWJlaGF2aW9yKSAqL1xuICBtaW5pbXVtQ2FjaGVUVEw6IG51bWJlclxuXG4gIC8qKiBAc2VlIFtBY2NlcHRhYmxlIGZvcm1hdHNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNhY2NlcHRhYmxlLWZvcm1hdHMpICovXG4gIGZvcm1hdHM6IEltYWdlRm9ybWF0W11cblxuICAvKiogQHNlZSBbRGFuZ2Vyb3VzbHkgQWxsb3cgU1ZHXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjZGFuZ2Vyb3VzbHktYWxsb3ctc3ZnKSAqL1xuICBkYW5nZXJvdXNseUFsbG93U1ZHOiBib29sZWFuXG5cbiAgLyoqIEBzZWUgW0NvbnRlbnQgU2VjdXJpdHkgUG9saWN5XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjY29udGVudHNlY3VyaXR5cG9saWN5KSAqL1xuICBjb250ZW50U2VjdXJpdHlQb2xpY3k6IHN0cmluZ1xuXG4gIC8qKiBAc2VlIFtDb250ZW50IERpc3Bvc2l0aW9uIFR5cGVdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNjb250ZW50ZGlzcG9zaXRpb250eXBlKSAqL1xuICBjb250ZW50RGlzcG9zaXRpb25UeXBlOiAnaW5saW5lJyB8ICdhdHRhY2htZW50J1xuXG4gIC8qKiBAc2VlIFtSZW1vdGUgUGF0dGVybnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNyZW1vdGVwYXR0ZXJucykgKi9cbiAgcmVtb3RlUGF0dGVybnM6IEFycmF5PFVSTCB8IFJlbW90ZVBhdHRlcm4+XG5cbiAgLyoqIEBzZWUgW0xvY2FsIFBhdHRlcm5zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjbG9jYWxQYXR0ZXJucykgKi9cbiAgbG9jYWxQYXR0ZXJuczogTG9jYWxQYXR0ZXJuW10gfCB1bmRlZmluZWRcblxuICAvKiogQHNlZSBbUXVhbGl0aWVzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjcXVhbGl0aWVzKSAqL1xuICBxdWFsaXRpZXM6IG51bWJlcltdIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEBzZWUgW1Vub3B0aW1pemVkXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjdW5vcHRpbWl6ZWQpICovXG4gIHVub3B0aW1pemVkOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIEltYWdlQ29uZmlnID0gUGFydGlhbDxJbWFnZUNvbmZpZ0NvbXBsZXRlPlxuXG5leHBvcnQgY29uc3QgaW1hZ2VDb25maWdEZWZhdWx0OiBJbWFnZUNvbmZpZ0NvbXBsZXRlID0ge1xuICBkZXZpY2VTaXplczogWzY0MCwgNzUwLCA4MjgsIDEwODAsIDEyMDAsIDE5MjAsIDIwNDgsIDM4NDBdLFxuICBpbWFnZVNpemVzOiBbMTYsIDMyLCA0OCwgNjQsIDk2LCAxMjgsIDI1NiwgMzg0XSxcbiAgcGF0aDogJy9fbmV4dC9pbWFnZScsXG4gIGxvYWRlcjogJ2RlZmF1bHQnLFxuICBsb2FkZXJGaWxlOiAnJyxcbiAgZG9tYWluczogW10sXG4gIGRpc2FibGVTdGF0aWNJbWFnZXM6IGZhbHNlLFxuICBtaW5pbXVtQ2FjaGVUVEw6IDYwLFxuICBmb3JtYXRzOiBbJ2ltYWdlL3dlYnAnXSxcbiAgZGFuZ2Vyb3VzbHlBbGxvd1NWRzogZmFsc2UsXG4gIGNvbnRlbnRTZWN1cml0eVBvbGljeTogYHNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94O2AsXG4gIGNvbnRlbnREaXNwb3NpdGlvblR5cGU6ICdhdHRhY2htZW50JyxcbiAgbG9jYWxQYXR0ZXJuczogdW5kZWZpbmVkLCAvLyBkZWZhdWx0OiBhbGxvdyBhbGwgbG9jYWwgaW1hZ2VzXG4gIHJlbW90ZVBhdHRlcm5zOiBbXSwgLy8gZGVmYXVsdDogYWxsb3cgbm8gcmVtb3RlIGltYWdlc1xuICBxdWFsaXRpZXM6IHVuZGVmaW5lZCwgLy8gZGVmYXVsdDogYWxsb3cgYWxsIHF1YWxpdGllc1xuICB1bm9wdGltaXplZDogZmFsc2UsXG59XG4iXSwibmFtZXMiOlsiVkFMSURfTE9BREVSUyIsImltYWdlQ29uZmlnRGVmYXVsdCIsImRldmljZVNpemVzIiwiaW1hZ2VTaXplcyIsInBhdGgiLCJsb2FkZXIiLCJsb2FkZXJGaWxlIiwiZG9tYWlucyIsImRpc2FibGVTdGF0aWNJbWFnZXMiLCJtaW5pbXVtQ2FjaGVUVEwiLCJmb3JtYXRzIiwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyIsImNvbnRlbnRTZWN1cml0eVBvbGljeSIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiLCJsb2NhbFBhdHRlcm5zIiwidW5kZWZpbmVkIiwicmVtb3RlUGF0dGVybnMiLCJxdWFsaXRpZXMiLCJ1bm9wdGltaXplZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/image-config.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/image-external.js":
/*!*************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/image-external.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n getImageProps: function() {\n return getImageProps;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _getimgprops = __webpack_require__(/*! ./get-img-props */ \"(ssr)/./node_modules/next/dist/shared/lib/get-img-props.js\");\nconst _imagecomponent = __webpack_require__(/*! ../../client/image-component */ \"(ssr)/./node_modules/next/dist/client/image-component.js\");\nconst _imageloader = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/shared/lib/image-loader */ \"(ssr)/./node_modules/next/dist/shared/lib/image-loader.js\"));\nfunction getImageProps(imgProps) {\n const { props } = (0, _getimgprops.getImgProps)(imgProps, {\n defaultLoader: _imageloader.default,\n // This is replaced by webpack define plugin\n imgConf: {\"deviceSizes\":[640,750,828,1080,1200,1920,2048,3840],\"imageSizes\":[16,32,48,64,96,128,256,384],\"path\":\"/_next/image\",\"loader\":\"default\",\"dangerouslyAllowSVG\":false,\"unoptimized\":false,\"domains\":[],\"remotePatterns\":[{\"protocol\":\"https\",\"hostname\":\"nextcloud.biohazardvfx.com\"},{\"protocol\":\"https\",\"hostname\":\"f.io\"},{\"protocol\":\"https\",\"hostname\":\"utfs.io\"},{\"protocol\":\"https\",\"hostname\":\"placehold.co\"},{\"protocol\":\"https\",\"hostname\":\"placeholder.com\"},{\"protocol\":\"https\",\"hostname\":\"picsum.photos\"}]}\n });\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)){\n if (value === undefined) {\n delete props[key];\n }\n }\n return {\n props\n };\n}\nconst _default = _imagecomponent.Image; //# sourceMappingURL=image-external.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtZXh0ZXJuYWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBaUNBLE9BQW9CO2VBQXBCOztJQWpCZ0JBLGFBQWE7ZUFBYkE7Ozs7eUNBYlk7NENBQ047a0ZBR0k7QUFTbkIsU0FBU0EsY0FBY0MsUUFBb0I7SUFDaEQsTUFBTSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWUYsVUFBVTtRQUN0Q0csZUFBQUEsYUFBQUEsT0FBYTtRQUNiLDRDQUE0QztRQUM1Q0MsU0FBU0Msd2ZBQTZCO0lBQ3hDO0lBQ0EsdUVBQXVFO0lBQ3ZFLHdFQUF3RTtJQUN4RSx3REFBd0Q7SUFDeEQsS0FBSyxNQUFNLENBQUNHLEtBQUtDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDVixPQUFRO1FBQ2hELElBQUlRLFVBQVVHLFdBQVc7WUFDdkIsT0FBT1gsS0FBSyxDQUFDTyxJQUEwQjtRQUN6QztJQUNGO0lBQ0EsT0FBTztRQUFFUDtJQUFNO0FBQ2pCO01BRUEsV0FBZVksZ0JBQUFBLEtBQUsiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2ltYWdlLWV4dGVybmFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEltYWdlQ29uZmlnQ29tcGxldGUsIEltYWdlTG9hZGVyUHJvcHMgfSBmcm9tICcuL2ltYWdlLWNvbmZpZydcbmltcG9ydCB0eXBlIHsgSW1hZ2VQcm9wcywgSW1hZ2VMb2FkZXIsIFN0YXRpY0ltYWdlRGF0YSB9IGZyb20gJy4vZ2V0LWltZy1wcm9wcydcblxuaW1wb3J0IHsgZ2V0SW1nUHJvcHMgfSBmcm9tICcuL2dldC1pbWctcHJvcHMnXG5pbXBvcnQgeyBJbWFnZSB9IGZyb20gJy4uLy4uL2NsaWVudC9pbWFnZS1jb21wb25lbnQnXG5cbi8vIFRoaXMgaXMgcmVwbGFjZWQgYnkgd2VicGFjayBhbGlhc1xuaW1wb3J0IGRlZmF1bHRMb2FkZXIgZnJvbSAnbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtbG9hZGVyJ1xuXG4vKipcbiAqIEZvciBtb3JlIGFkdmFuY2VkIHVzZSBjYXNlcywgeW91IGNhbiBjYWxsIGBnZXRJbWFnZVByb3BzKClgXG4gKiB0byBnZXQgdGhlIHByb3BzIHRoYXQgd291bGQgYmUgcGFzc2VkIHRvIHRoZSB1bmRlcmx5aW5nIGA8aW1nPmAgZWxlbWVudCxcbiAqIGFuZCBpbnN0ZWFkIHBhc3MgdG8gdGhlbSB0byBhbm90aGVyIGNvbXBvbmVudCwgc3R5bGUsIGNhbnZhcywgZXRjLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgZG9jczogYGdldEltYWdlUHJvcHNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9jb21wb25lbnRzL2ltYWdlI2dldGltYWdlcHJvcHMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbWFnZVByb3BzKGltZ1Byb3BzOiBJbWFnZVByb3BzKSB7XG4gIGNvbnN0IHsgcHJvcHMgfSA9IGdldEltZ1Byb3BzKGltZ1Byb3BzLCB7XG4gICAgZGVmYXVsdExvYWRlcixcbiAgICAvLyBUaGlzIGlzIHJlcGxhY2VkIGJ5IHdlYnBhY2sgZGVmaW5lIHBsdWdpblxuICAgIGltZ0NvbmY6IHByb2Nlc3MuZW52Ll9fTkVYVF9JTUFHRV9PUFRTIGFzIGFueSBhcyBJbWFnZUNvbmZpZ0NvbXBsZXRlLFxuICB9KVxuICAvLyBOb3JtYWxseSB3ZSBkb24ndCBjYXJlIGFib3V0IHVuZGVmaW5lZCBwcm9wcyBiZWNhdXNlIHdlIHBhc3MgdG8gSlNYLFxuICAvLyBidXQgdGhpcyBleHBvcnRlZCBmdW5jdGlvbiBjb3VsZCBiZSB1c2VkIGJ5IHRoZSBlbmQgdXNlciBmb3IgYW55dGhpbmdcbiAgLy8gc28gd2UgZGVsZXRlIHVuZGVmaW5lZCBwcm9wcyB0byBjbGVhbiBpdCB1cCBhIGxpdHRsZS5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocHJvcHMpKSB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBwcm9wc1trZXkgYXMga2V5b2YgdHlwZW9mIHByb3BzXVxuICAgIH1cbiAgfVxuICByZXR1cm4geyBwcm9wcyB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlXG5cbmV4cG9ydCB0eXBlIHsgSW1hZ2VQcm9wcywgSW1hZ2VMb2FkZXJQcm9wcywgSW1hZ2VMb2FkZXIsIFN0YXRpY0ltYWdlRGF0YSB9XG4iXSwibmFtZXMiOlsiZ2V0SW1hZ2VQcm9wcyIsImltZ1Byb3BzIiwicHJvcHMiLCJnZXRJbWdQcm9wcyIsImRlZmF1bHRMb2FkZXIiLCJpbWdDb25mIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JTUFHRV9PUFRTIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIiwidW5kZWZpbmVkIiwiSW1hZ2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/image-external.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/image-loader.js":
/*!***********************************************************!*\
!*** ./node_modules/next/dist/shared/lib/image-loader.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst DEFAULT_Q = 75;\nfunction defaultLoader(param) {\n let { config, src, width, quality } = param;\n var _config_qualities;\n if (true) {\n const missingValues = [];\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src');\n if (!width) missingValues.push('width');\n if (missingValues.length > 0) {\n throw Object.defineProperty(new Error(\"Next Image Optimization requires \" + missingValues.join(', ') + \" to be provided. Make sure you pass them as props to the `next/image` component. Received: \" + JSON.stringify({\n src,\n width,\n quality\n })), \"__NEXT_ERROR_CODE\", {\n value: \"E188\",\n enumerable: false,\n configurable: true\n });\n }\n if (src.startsWith('//')) {\n throw Object.defineProperty(new Error('Failed to parse src \"' + src + '\" on `next/image`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)'), \"__NEXT_ERROR_CODE\", {\n value: \"E360\",\n enumerable: false,\n configurable: true\n });\n }\n if (src.startsWith('/') && config.localPatterns) {\n if (true) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } = __webpack_require__(/*! ./match-local-pattern */ \"(ssr)/./node_modules/next/dist/shared/lib/match-local-pattern.js\");\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw Object.defineProperty(new Error(\"Invalid src prop (\" + src + \") on `next/image` does not match `images.localPatterns` configured in your `next.config.js`\\n\" + \"See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns\"), \"__NEXT_ERROR_CODE\", {\n value: \"E426\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc;\n try {\n parsedSrc = new URL(src);\n } catch (err) {\n console.error(err);\n throw Object.defineProperty(new Error('Failed to parse src \"' + src + '\" on `next/image`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)'), \"__NEXT_ERROR_CODE\", {\n value: \"E63\",\n enumerable: false,\n configurable: true\n });\n }\n if (true) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } = __webpack_require__(/*! ./match-remote-pattern */ \"(ssr)/./node_modules/next/dist/shared/lib/match-remote-pattern.js\");\n if (!hasRemoteMatch(config.domains, config.remotePatterns, parsedSrc)) {\n throw Object.defineProperty(new Error(\"Invalid src prop (\" + src + ') on `next/image`, hostname \"' + parsedSrc.hostname + '\" is not configured under images in your `next.config.js`\\n' + \"See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host\"), \"__NEXT_ERROR_CODE\", {\n value: \"E231\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n if (quality && config.qualities && !config.qualities.includes(quality)) {\n throw Object.defineProperty(new Error(\"Invalid quality prop (\" + quality + \") on `next/image` does not match `images.qualities` configured in your `next.config.js`\\n\" + \"See more info: https://nextjs.org/docs/messages/next-image-unconfigured-qualities\"), \"__NEXT_ERROR_CODE\", {\n value: \"E623\",\n enumerable: false,\n configurable: true\n });\n }\n }\n const q = quality || ((_config_qualities = config.qualities) == null ? void 0 : _config_qualities.reduce((prev, cur)=>Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q) ? cur : prev)) || DEFAULT_Q;\n return config.path + \"?url=\" + encodeURIComponent(src) + \"&w=\" + width + \"&q=\" + q + (src.startsWith('/_next/static/media/') && false ? 0 : '');\n}\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true;\nconst _default = defaultLoader; //# sourceMappingURL=image-loader.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtbG9hZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBMkdBOzs7ZUFBQTs7O0FBekdBLE1BQU1BLFlBQVk7QUFFbEIsU0FBU0MsY0FBYyxLQUtNO0lBTE4sTUFDckJDLE1BQU0sRUFDTkMsR0FBRyxFQUNIQyxLQUFLLEVBQ0xDLE9BQU8sRUFDb0IsR0FMTjtRQXVGbkJIO0lBakZGLElBQUlJLElBQW9CLEVBQW1CO1FBQ3pDLE1BQU1HLGdCQUFnQixFQUFFO1FBRXhCLHlEQUF5RDtRQUN6RCxJQUFJLENBQUNOLEtBQUtNLGNBQWNDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUNOLE9BQU9LLGNBQWNDLElBQUk7UUFFOUIsSUFBSUQsY0FBY0UsTUFBTSxHQUFHLEdBQUc7WUFDNUIsTUFBTSxxQkFNTCxDQU5LLElBQUlDLE1BQ1Asc0NBQW1DSCxjQUFjSSxJQUFJLENBQ3BELFFBQ0EsZ0dBQStGQyxLQUFLQyxTQUFTLENBQzdHO2dCQUFFWjtnQkFBS0M7Z0JBQU9DO1lBQVEsS0FKcEI7dUJBQUE7NEJBQUE7OEJBQUE7WUFNTjtRQUNGO1FBRUEsSUFBSUYsSUFBSWEsVUFBVSxDQUFDLE9BQU87WUFDeEIsTUFBTSxxQkFFTCxDQUZLLElBQUlKLE1BQ1AsMEJBQXVCVCxNQUFJLDJHQUR4Qjt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFFQSxJQUFJQSxJQUFJYSxVQUFVLENBQUMsUUFBUWQsT0FBT2UsYUFBYSxFQUFFO1lBQy9DLElBQ0VYLElBRW1DLEVBQ25DO2dCQUNBLHVFQUF1RTtnQkFDdkUsTUFBTSxFQUFFYSxhQUFhLEVBQUUsR0FDckJDLG1CQUFPQSxDQUFDLCtGQUF1QjtnQkFDakMsSUFBSSxDQUFDRCxjQUFjakIsT0FBT2UsYUFBYSxFQUFFZCxNQUFNO29CQUM3QyxNQUFNLHFCQUdMLENBSEssSUFBSVMsTUFDUCx1QkFBb0JULE1BQUksa0dBQ3RCLDBGQUZDOytCQUFBO29DQUFBO3NDQUFBO29CQUdOO2dCQUNGO1lBQ0Y7UUFDRjtRQUVBLElBQUksQ0FBQ0EsSUFBSWEsVUFBVSxDQUFDLFFBQVNkLENBQUFBLE9BQU9tQixPQUFPLElBQUluQixPQUFPb0IsY0FBQUEsR0FBaUI7WUFDckUsSUFBSUM7WUFDSixJQUFJO2dCQUNGQSxZQUFZLElBQUlDLElBQUlyQjtZQUN0QixFQUFFLE9BQU9zQixLQUFLO2dCQUNaQyxRQUFRQyxLQUFLLENBQUNGO2dCQUNkLE1BQU0scUJBRUwsQ0FGSyxJQUFJYixNQUNQLDBCQUF1QlQsTUFBSSxrSUFEeEI7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUVBLElBQ0VHLElBRW1DLEVBQ25DO2dCQUNBLHVFQUF1RTtnQkFDdkUsTUFBTSxFQUFFc0IsY0FBYyxFQUFFLEdBQ3RCUixtQkFBT0EsQ0FBQyxpR0FBd0I7Z0JBQ2xDLElBQ0UsQ0FBQ1EsZUFBZTFCLE9BQU9tQixPQUFPLEVBQUduQixPQUFPb0IsY0FBYyxFQUFHQyxZQUN6RDtvQkFDQSxNQUFNLHFCQUdMLENBSEssSUFBSVgsTUFDUCx1QkFBb0JULE1BQUksa0NBQWlDb0IsVUFBVU0sUUFBUSxHQUFDLGdFQUMxRSxpRkFGQzsrQkFBQTtvQ0FBQTtzQ0FBQTtvQkFHTjtnQkFDRjtZQUNGO1FBQ0Y7UUFFQSxJQUFJeEIsV0FBV0gsT0FBTzRCLFNBQVMsSUFBSSxDQUFDNUIsT0FBTzRCLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDMUIsVUFBVTtZQUN0RSxNQUFNLHFCQUdMLENBSEssSUFBSU8sTUFDUCwyQkFBd0JQLFVBQVEsOEZBQzlCLHNGQUZDO3VCQUFBOzRCQUFBOzhCQUFBO1lBR047UUFDRjtJQUNGO0lBRUEsTUFBTTJCLElBQ0ozQixXQUFBQSxDQUFBQSxDQUNBSCxvQkFBQUEsT0FBTzRCLFNBQUFBLEtBQVMsZ0JBQWhCNUIsa0JBQWtCK0IsTUFBTSxDQUFDLENBQUNDLE1BQU1DLE1BQzlCQyxLQUFLQyxHQUFHLENBQUNGLE1BQU1uQyxhQUFhb0MsS0FBS0MsR0FBRyxDQUFDSCxPQUFPbEMsYUFBYW1DLE1BQU1ELEtBQUFBLEtBRWpFbEM7SUFFRixPQUFVRSxPQUFPb0MsSUFBSSxHQUFDLFVBQU9DLG1CQUFtQnBDLE9BQUssUUFBS0MsUUFBTSxRQUFLNEIsSUFDbkU3QixDQUFBQSxJQUFJYSxVQUFVLENBQUMsMkJBQTJCVixLQUE4QixHQUNuRSxDQUFxQyxHQUN0QyxHQUFDO0FBRVQ7QUFFQSwrREFBK0Q7QUFDL0QsMkRBQTJEO0FBQzNETCxjQUFjd0Msa0JBQWtCLEdBQUc7TUFFbkMsV0FBZXhDIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pbWFnZS1sb2FkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbWFnZUxvYWRlclByb3BzV2l0aENvbmZpZyB9IGZyb20gJy4vaW1hZ2UtY29uZmlnJ1xuXG5jb25zdCBERUZBVUxUX1EgPSA3NVxuXG5mdW5jdGlvbiBkZWZhdWx0TG9hZGVyKHtcbiAgY29uZmlnLFxuICBzcmMsXG4gIHdpZHRoLFxuICBxdWFsaXR5LFxufTogSW1hZ2VMb2FkZXJQcm9wc1dpdGhDb25maWcpOiBzdHJpbmcge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNvbnN0IG1pc3NpbmdWYWx1ZXMgPSBbXVxuXG4gICAgLy8gdGhlc2Ugc2hvdWxkIGFsd2F5cyBiZSBwcm92aWRlZCBidXQgbWFrZSBzdXJlIHRoZXkgYXJlXG4gICAgaWYgKCFzcmMpIG1pc3NpbmdWYWx1ZXMucHVzaCgnc3JjJylcbiAgICBpZiAoIXdpZHRoKSBtaXNzaW5nVmFsdWVzLnB1c2goJ3dpZHRoJylcblxuICAgIGlmIChtaXNzaW5nVmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE5leHQgSW1hZ2UgT3B0aW1pemF0aW9uIHJlcXVpcmVzICR7bWlzc2luZ1ZhbHVlcy5qb2luKFxuICAgICAgICAgICcsICdcbiAgICAgICAgKX0gdG8gYmUgcHJvdmlkZWQuIE1ha2Ugc3VyZSB5b3UgcGFzcyB0aGVtIGFzIHByb3BzIHRvIHRoZSBcXGBuZXh0L2ltYWdlXFxgIGNvbXBvbmVudC4gUmVjZWl2ZWQ6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgeyBzcmMsIHdpZHRoLCBxdWFsaXR5IH1cbiAgICAgICAgKX1gXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHNyYy5zdGFydHNXaXRoKCcvLycpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gcGFyc2Ugc3JjIFwiJHtzcmN9XCIgb24gXFxgbmV4dC9pbWFnZVxcYCwgcHJvdG9jb2wtcmVsYXRpdmUgVVJMICgvLykgbXVzdCBiZSBjaGFuZ2VkIHRvIGFuIGFic29sdXRlIFVSTCAoaHR0cDovLyBvciBodHRwczovLylgXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHNyYy5zdGFydHNXaXRoKCcvJykgJiYgY29uZmlnLmxvY2FsUGF0dGVybnMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICd0ZXN0JyAmJlxuICAgICAgICAvLyBtaWNyb21hdGNoIGlzbid0IGNvbXBhdGlibGUgd2l0aCBlZGdlIHJ1bnRpbWVcbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZSdcbiAgICAgICkge1xuICAgICAgICAvLyBXZSB1c2UgZHluYW1pYyByZXF1aXJlIGJlY2F1c2UgdGhpcyBzaG91bGQgb25seSBlcnJvciBpbiBkZXZlbG9wbWVudFxuICAgICAgICBjb25zdCB7IGhhc0xvY2FsTWF0Y2ggfSA9XG4gICAgICAgICAgcmVxdWlyZSgnLi9tYXRjaC1sb2NhbC1wYXR0ZXJuJykgYXMgdHlwZW9mIGltcG9ydCgnLi9tYXRjaC1sb2NhbC1wYXR0ZXJuJylcbiAgICAgICAgaWYgKCFoYXNMb2NhbE1hdGNoKGNvbmZpZy5sb2NhbFBhdHRlcm5zLCBzcmMpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEludmFsaWQgc3JjIHByb3AgKCR7c3JjfSkgb24gXFxgbmV4dC9pbWFnZVxcYCBkb2VzIG5vdCBtYXRjaCBcXGBpbWFnZXMubG9jYWxQYXR0ZXJuc1xcYCBjb25maWd1cmVkIGluIHlvdXIgXFxgbmV4dC5jb25maWcuanNcXGBcXG5gICtcbiAgICAgICAgICAgICAgYFNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaW1hZ2UtdW5jb25maWd1cmVkLWxvY2FscGF0dGVybnNgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFzcmMuc3RhcnRzV2l0aCgnLycpICYmIChjb25maWcuZG9tYWlucyB8fCBjb25maWcucmVtb3RlUGF0dGVybnMpKSB7XG4gICAgICBsZXQgcGFyc2VkU3JjOiBVUkxcbiAgICAgIHRyeSB7XG4gICAgICAgIHBhcnNlZFNyYyA9IG5ldyBVUkwoc3JjKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEZhaWxlZCB0byBwYXJzZSBzcmMgXCIke3NyY31cIiBvbiBcXGBuZXh0L2ltYWdlXFxgLCBpZiB1c2luZyByZWxhdGl2ZSBpbWFnZSBpdCBtdXN0IHN0YXJ0IHdpdGggYSBsZWFkaW5nIHNsYXNoIFwiL1wiIG9yIGJlIGFuIGFic29sdXRlIFVSTCAoaHR0cDovLyBvciBodHRwczovLylgXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Rlc3QnICYmXG4gICAgICAgIC8vIG1pY3JvbWF0Y2ggaXNuJ3QgY29tcGF0aWJsZSB3aXRoIGVkZ2UgcnVudGltZVxuICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJ1xuICAgICAgKSB7XG4gICAgICAgIC8vIFdlIHVzZSBkeW5hbWljIHJlcXVpcmUgYmVjYXVzZSB0aGlzIHNob3VsZCBvbmx5IGVycm9yIGluIGRldmVsb3BtZW50XG4gICAgICAgIGNvbnN0IHsgaGFzUmVtb3RlTWF0Y2ggfSA9XG4gICAgICAgICAgcmVxdWlyZSgnLi9tYXRjaC1yZW1vdGUtcGF0dGVybicpIGFzIHR5cGVvZiBpbXBvcnQoJy4vbWF0Y2gtcmVtb3RlLXBhdHRlcm4nKVxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWhhc1JlbW90ZU1hdGNoKGNvbmZpZy5kb21haW5zISwgY29uZmlnLnJlbW90ZVBhdHRlcm5zISwgcGFyc2VkU3JjKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW52YWxpZCBzcmMgcHJvcCAoJHtzcmN9KSBvbiBcXGBuZXh0L2ltYWdlXFxgLCBob3N0bmFtZSBcIiR7cGFyc2VkU3JjLmhvc3RuYW1lfVwiIGlzIG5vdCBjb25maWd1cmVkIHVuZGVyIGltYWdlcyBpbiB5b3VyIFxcYG5leHQuY29uZmlnLmpzXFxgXFxuYCArXG4gICAgICAgICAgICAgIGBTZWUgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LWltYWdlLXVuY29uZmlndXJlZC1ob3N0YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChxdWFsaXR5ICYmIGNvbmZpZy5xdWFsaXRpZXMgJiYgIWNvbmZpZy5xdWFsaXRpZXMuaW5jbHVkZXMocXVhbGl0eSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgcXVhbGl0eSBwcm9wICgke3F1YWxpdHl9KSBvbiBcXGBuZXh0L2ltYWdlXFxgIGRvZXMgbm90IG1hdGNoIFxcYGltYWdlcy5xdWFsaXRpZXNcXGAgY29uZmlndXJlZCBpbiB5b3VyIFxcYG5leHQuY29uZmlnLmpzXFxgXFxuYCArXG4gICAgICAgICAgYFNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaW1hZ2UtdW5jb25maWd1cmVkLXF1YWxpdGllc2BcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBjb25zdCBxID1cbiAgICBxdWFsaXR5IHx8XG4gICAgY29uZmlnLnF1YWxpdGllcz8ucmVkdWNlKChwcmV2LCBjdXIpID0+XG4gICAgICBNYXRoLmFicyhjdXIgLSBERUZBVUxUX1EpIDwgTWF0aC5hYnMocHJldiAtIERFRkFVTFRfUSkgPyBjdXIgOiBwcmV2XG4gICAgKSB8fFxuICAgIERFRkFVTFRfUVxuXG4gIHJldHVybiBgJHtjb25maWcucGF0aH0/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHNyYyl9Jnc9JHt3aWR0aH0mcT0ke3F9JHtcbiAgICBzcmMuc3RhcnRzV2l0aCgnL19uZXh0L3N0YXRpYy9tZWRpYS8nKSAmJiBwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSURcbiAgICAgID8gYCZkcGw9JHtwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSUR9YFxuICAgICAgOiAnJ1xuICB9YFxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBkZXRlcm1pbmUgaWYgdGhlIGltcG9ydCBpcyB0aGUgZGVmYXVsdCBsb2FkZXJcbi8vIG9yIGEgY3VzdG9tIGxvYWRlciBkZWZpbmVkIGJ5IHRoZSB1c2VyIGluIG5leHQuY29uZmlnLmpzXG5kZWZhdWx0TG9hZGVyLl9fbmV4dF9pbWdfZGVmYXVsdCA9IHRydWVcblxuZXhwb3J0IGRlZmF1bHQgZGVmYXVsdExvYWRlclxuIl0sIm5hbWVzIjpbIkRFRkFVTFRfUSIsImRlZmF1bHRMb2FkZXIiLCJjb25maWciLCJzcmMiLCJ3aWR0aCIsInF1YWxpdHkiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJtaXNzaW5nVmFsdWVzIiwicHVzaCIsImxlbmd0aCIsIkVycm9yIiwiam9pbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFydHNXaXRoIiwibG9jYWxQYXR0ZXJucyIsIk5FWFRfUlVOVElNRSIsImhhc0xvY2FsTWF0Y2giLCJyZXF1aXJlIiwiZG9tYWlucyIsInJlbW90ZVBhdHRlcm5zIiwicGFyc2VkU3JjIiwiVVJMIiwiZXJyIiwiY29uc29sZSIsImVycm9yIiwiaGFzUmVtb3RlTWF0Y2giLCJob3N0bmFtZSIsInF1YWxpdGllcyIsImluY2x1ZGVzIiwicSIsInJlZHVjZSIsInByZXYiLCJjdXIiLCJNYXRoIiwiYWJzIiwicGF0aCIsImVuY29kZVVSSUNvbXBvbmVudCIsIk5FWFRfREVQTE9ZTUVOVF9JRCIsIl9fbmV4dF9pbWdfZGVmYXVsdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/image-loader.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/invariant-error.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"InvariantError\", ({\n enumerable: true,\n get: function() {\n return InvariantError;\n }\n}));\nclass InvariantError extends Error {\n constructor(message, options){\n super(\"Invariant: \" + (message.endsWith('.') ? message : message + '.') + \" This is a bug in Next.js.\", options);\n this.name = 'InvariantError';\n }\n} //# sourceMappingURL=invariant-error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHVCQUF1QkM7SUFDbENDLFlBQVlDLE9BQWUsRUFBRUMsT0FBc0IsQ0FBRTtRQUNuRCxLQUFLLENBQ0YsZ0JBQWFELENBQUFBLFFBQVFFLFFBQVEsQ0FBQyxPQUFPRixVQUFVQSxVQUFVLElBQUUsR0FBRSw4QkFDOURDO1FBRUYsSUFBSSxDQUFDRSxJQUFJLEdBQUc7SUFDZDtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEludmFyaWFudEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBFcnJvck9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIGBJbnZhcmlhbnQ6ICR7bWVzc2FnZS5lbmRzV2l0aCgnLicpID8gbWVzc2FnZSA6IG1lc3NhZ2UgKyAnLid9IFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcy5gLFxuICAgICAgb3B0aW9uc1xuICAgIClcbiAgICB0aGlzLm5hbWUgPSAnSW52YXJpYW50RXJyb3InXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJJbnZhcmlhbnRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJtZXNzYWdlIiwib3B0aW9ucyIsImVuZHNXaXRoIiwibmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/is-plain-object.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\nfunction getObjectClassLabel(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isPlainObject(value) {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');\n} //# sourceMappingURL=is-plain-object.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFnQkEsbUJBQW1CO2VBQW5CQTs7SUFJQUMsYUFBYTtlQUFiQTs7O0FBSlQsU0FBU0Qsb0JBQW9CRSxLQUFVO0lBQzVDLE9BQU9DLE9BQU9DLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNKO0FBQ3hDO0FBRU8sU0FBU0QsY0FBY0MsS0FBVTtJQUN0QyxJQUFJRixvQkFBb0JFLFdBQVcsbUJBQW1CO1FBQ3BELE9BQU87SUFDVDtJQUVBLE1BQU1FLFlBQVlELE9BQU9JLGNBQWMsQ0FBQ0w7SUFFeEM7Ozs7Ozs7O0dBUUMsR0FDRCxPQUFPRSxjQUFjLFFBQVFBLFVBQVVJLGNBQWMsQ0FBQztBQUN4RCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSlcblxuICAvKipcbiAgICogdGhpcyB1c2VkIHRvIGJlIHByZXZpb3VzbHk6XG4gICAqXG4gICAqIGByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZWBcbiAgICpcbiAgICogYnV0IEVkZ2UgUnVudGltZSBleHBvc2UgT2JqZWN0IGZyb20gdm0sIGJlaW5nIHRoYXQga2luZCBvZiB0eXBlLWNoZWNraW5nIHdyb25nbHkgZmFpbC5cbiAgICpcbiAgICogSXQgd2FzIGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc2luY2UgaXQncyByZXNpbGllbnQgdG8gc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlLmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRPYmplY3RDbGFzc0xhYmVsIiwiaXNQbGFpbk9iamVjdCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJoYXNPd25Qcm9wZXJ0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/is-plain-object.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/is-thenable.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/shared/lib/is-thenable.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isThenable\", ({\n enumerable: true,\n get: function() {\n return isThenable;\n }\n}));\nfunction isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n} //# sourceMappingURL=is-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0M7Ozs7OENBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQ2RDLE9BQXVCO0lBRXZCLE9BQ0VBLFlBQVksUUFDWixPQUFPQSxZQUFZLFlBQ25CLFVBQVVBLFdBQ1YsT0FBT0EsUUFBUUMsSUFBSSxLQUFLO0FBRTVCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pcy10aGVuYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIHRvIHNlZSBpZiBhIHZhbHVlIGlzIFRoZW5hYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9taXNlIHRoZSBtYXliZS10aGVuYWJsZSB2YWx1ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdGhlbmFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGU8VCA9IHVua25vd24+KFxuICBwcm9taXNlOiBQcm9taXNlPFQ+IHwgVFxuKTogcHJvbWlzZSBpcyBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9taXNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHByb21pc2UgPT09ICdvYmplY3QnICYmXG4gICAgJ3RoZW4nIGluIHByb21pc2UgJiZcbiAgICB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpc1RoZW5hYmxlIiwicHJvbWlzZSIsInRoZW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/is-thenable.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js":
/*!**************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js ***!
\**************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// This has to be a shared module which is shared between client component error boundary and dynamic component\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BailoutToCSRError: function() {\n return BailoutToCSRError;\n },\n isBailoutToCSRError: function() {\n return isBailoutToCSRError;\n }\n});\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING';\nclass BailoutToCSRError extends Error {\n constructor(reason){\n super(\"Bail out to client-side rendering: \" + reason), this.reason = reason, this.digest = BAILOUT_TO_CSR;\n }\n}\nfunction isBailoutToCSRError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === BAILOUT_TO_CSR;\n} //# sourceMappingURL=bailout-to-csr.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtHQUErRzs7Ozs7Ozs7Ozs7OztJQUlsR0EsaUJBQWlCO2VBQWpCQTs7SUFTR0MsbUJBQW1CO2VBQW5CQTs7O0FBWmhCLE1BQU1DLGlCQUFpQjtBQUdoQixNQUFNRiwwQkFBMEJHO0lBR3JDQyxZQUE0QkMsTUFBYyxDQUFFO1FBQzFDLEtBQUssQ0FBRSx3Q0FBcUNBLFNBQUFBLElBQUFBLENBRGxCQSxNQUFBQSxHQUFBQSxRQUFBQSxJQUFBQSxDQUZaQyxNQUFBQSxHQUFTSjtJQUl6QjtBQUNGO0FBR08sU0FBU0Qsb0JBQW9CTSxHQUFZO0lBQzlDLElBQUksT0FBT0EsUUFBUSxZQUFZQSxRQUFRLFFBQVEsQ0FBRSxhQUFZQSxHQUFBQSxDQUFFLEVBQUk7UUFDakUsT0FBTztJQUNUO0lBRUEsT0FBT0EsSUFBSUQsTUFBTSxLQUFLSjtBQUN4QiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgaGFzIHRvIGJlIGEgc2hhcmVkIG1vZHVsZSB3aGljaCBpcyBzaGFyZWQgYmV0d2VlbiBjbGllbnQgY29tcG9uZW50IGVycm9yIGJvdW5kYXJ5IGFuZCBkeW5hbWljIGNvbXBvbmVudFxuY29uc3QgQkFJTE9VVF9UT19DU1IgPSAnQkFJTE9VVF9UT19DTElFTlRfU0lERV9SRU5ERVJJTkcnXG5cbi8qKiBBbiBlcnJvciB0aGF0IHNob3VsZCBiZSB0aHJvd24gd2hlbiB3ZSB3YW50IHRvIGJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZy4gKi9cbmV4cG9ydCBjbGFzcyBCYWlsb3V0VG9DU1JFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGRpZ2VzdCA9IEJBSUxPVVRfVE9fQ1NSXG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJlYXNvbjogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZzogJHtyZWFzb259YClcbiAgfVxufVxuXG4vKiogQ2hlY2tzIGlmIGEgcGFzc2VkIGFyZ3VtZW50IGlzIGFuIGVycm9yIHRoYXQgaXMgdGhyb3duIGlmIHdlIHdhbnQgdG8gYmFpbCBvdXQgdG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyOiB1bmtub3duKTogZXJyIGlzIEJhaWxvdXRUb0NTUkVycm9yIHtcbiAgaWYgKHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8IGVyciA9PT0gbnVsbCB8fCAhKCdkaWdlc3QnIGluIGVycikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnIuZGlnZXN0ID09PSBCQUlMT1VUX1RPX0NTUlxufVxuIl0sIm5hbWVzIjpbIkJhaWxvdXRUb0NTUkVycm9yIiwiaXNCYWlsb3V0VG9DU1JFcnJvciIsIkJBSUxPVVRfVE9fQ1NSIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsInJlYXNvbiIsImRpZ2VzdCIsImVyciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/match-local-pattern.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/match-local-pattern.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n hasLocalMatch: function() {\n return hasLocalMatch;\n },\n matchLocalPattern: function() {\n return matchLocalPattern;\n }\n});\nconst _picomatch = __webpack_require__(/*! next/dist/compiled/picomatch */ \"(ssr)/./node_modules/next/dist/compiled/picomatch/index.js\");\nfunction matchLocalPattern(pattern, url) {\n if (pattern.search !== undefined) {\n if (pattern.search !== url.search) {\n return false;\n }\n }\n var _pattern_pathname;\n if (!(0, _picomatch.makeRe)((_pattern_pathname = pattern.pathname) != null ? _pattern_pathname : '**', {\n dot: true\n }).test(url.pathname)) {\n return false;\n }\n return true;\n}\nfunction hasLocalMatch(localPatterns, urlPathAndQuery) {\n if (!localPatterns) {\n // if the user didn't define \"localPatterns\", we allow all local images\n return true;\n }\n const url = new URL(urlPathAndQuery, 'http://n');\n return localPatterns.some((p)=>matchLocalPattern(p, url));\n} //# sourceMappingURL=match-local-pattern.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWF0Y2gtbG9jYWwtcGF0dGVybi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFrQmdCQSxhQUFhO2VBQWJBOztJQWRBQyxpQkFBaUI7ZUFBakJBOzs7dUNBSE87QUFHaEIsU0FBU0Esa0JBQWtCQyxPQUFxQixFQUFFQyxHQUFRO0lBQy9ELElBQUlELFFBQVFFLE1BQU0sS0FBS0MsV0FBVztRQUNoQyxJQUFJSCxRQUFRRSxNQUFNLEtBQUtELElBQUlDLE1BQU0sRUFBRTtZQUNqQyxPQUFPO1FBQ1Q7SUFDRjtRQUVZRjtJQUFaLElBQUksQ0FBQ0ksQ0FBQUEsR0FBQUEsV0FBQUEsTUFBQUEsRUFBT0osQ0FBQUEsb0JBQUFBLFFBQVFLLFFBQUFBLEtBQVEsT0FBaEJMLG9CQUFvQixNQUFNO1FBQUVNLEtBQUs7SUFBSyxHQUFHQyxJQUFJLENBQUNOLElBQUlJLFFBQVEsR0FBRztRQUN2RSxPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFFTyxTQUFTUCxjQUNkVSxhQUF5QyxFQUN6Q0MsZUFBdUI7SUFFdkIsSUFBSSxDQUFDRCxlQUFlO1FBQ2xCLHVFQUF1RTtRQUN2RSxPQUFPO0lBQ1Q7SUFDQSxNQUFNUCxNQUFNLElBQUlTLElBQUlELGlCQUFpQjtJQUNyQyxPQUFPRCxjQUFjRyxJQUFJLENBQUMsQ0FBQ0MsSUFBTWIsa0JBQWtCYSxHQUFHWDtBQUN4RCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvbWF0Y2gtbG9jYWwtcGF0dGVybi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExvY2FsUGF0dGVybiB9IGZyb20gJy4vaW1hZ2UtY29uZmlnJ1xuaW1wb3J0IHsgbWFrZVJlIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3BpY29tYXRjaCdcblxuLy8gTW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGFsc28gbW9kaWZ5IHdyaXRlSW1hZ2VzTWFuaWZlc3QoKVxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoTG9jYWxQYXR0ZXJuKHBhdHRlcm46IExvY2FsUGF0dGVybiwgdXJsOiBVUkwpOiBib29sZWFuIHtcbiAgaWYgKHBhdHRlcm4uc2VhcmNoICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAocGF0dGVybi5zZWFyY2ggIT09IHVybC5zZWFyY2gpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGlmICghbWFrZVJlKHBhdHRlcm4ucGF0aG5hbWUgPz8gJyoqJywgeyBkb3Q6IHRydWUgfSkudGVzdCh1cmwucGF0aG5hbWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzTG9jYWxNYXRjaChcbiAgbG9jYWxQYXR0ZXJuczogTG9jYWxQYXR0ZXJuW10gfCB1bmRlZmluZWQsXG4gIHVybFBhdGhBbmRRdWVyeTogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgaWYgKCFsb2NhbFBhdHRlcm5zKSB7XG4gICAgLy8gaWYgdGhlIHVzZXIgZGlkbid0IGRlZmluZSBcImxvY2FsUGF0dGVybnNcIiwgd2UgYWxsb3cgYWxsIGxvY2FsIGltYWdlc1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgY29uc3QgdXJsID0gbmV3IFVSTCh1cmxQYXRoQW5kUXVlcnksICdodHRwOi8vbicpXG4gIHJldHVybiBsb2NhbFBhdHRlcm5zLnNvbWUoKHApID0+IG1hdGNoTG9jYWxQYXR0ZXJuKHAsIHVybCkpXG59XG4iXSwibmFtZXMiOlsiaGFzTG9jYWxNYXRjaCIsIm1hdGNoTG9jYWxQYXR0ZXJuIiwicGF0dGVybiIsInVybCIsInNlYXJjaCIsInVuZGVmaW5lZCIsIm1ha2VSZSIsInBhdGhuYW1lIiwiZG90IiwidGVzdCIsImxvY2FsUGF0dGVybnMiLCJ1cmxQYXRoQW5kUXVlcnkiLCJVUkwiLCJzb21lIiwicCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/match-local-pattern.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/match-remote-pattern.js":
/*!*******************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/match-remote-pattern.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n hasRemoteMatch: function() {\n return hasRemoteMatch;\n },\n matchRemotePattern: function() {\n return matchRemotePattern;\n }\n});\nconst _picomatch = __webpack_require__(/*! next/dist/compiled/picomatch */ \"(ssr)/./node_modules/next/dist/compiled/picomatch/index.js\");\nfunction matchRemotePattern(pattern, url) {\n if (pattern.protocol !== undefined) {\n if (pattern.protocol.replace(/:$/, '') !== url.protocol.replace(/:$/, '')) {\n return false;\n }\n }\n if (pattern.port !== undefined) {\n if (pattern.port !== url.port) {\n return false;\n }\n }\n if (pattern.hostname === undefined) {\n throw Object.defineProperty(new Error(\"Pattern should define hostname but found\\n\" + JSON.stringify(pattern)), \"__NEXT_ERROR_CODE\", {\n value: \"E410\",\n enumerable: false,\n configurable: true\n });\n } else {\n if (!(0, _picomatch.makeRe)(pattern.hostname).test(url.hostname)) {\n return false;\n }\n }\n if (pattern.search !== undefined) {\n if (pattern.search !== url.search) {\n return false;\n }\n }\n var _pattern_pathname;\n // Should be the same as writeImagesManifest()\n if (!(0, _picomatch.makeRe)((_pattern_pathname = pattern.pathname) != null ? _pattern_pathname : '**', {\n dot: true\n }).test(url.pathname)) {\n return false;\n }\n return true;\n}\nfunction hasRemoteMatch(domains, remotePatterns, url) {\n return domains.some((domain)=>url.hostname === domain) || remotePatterns.some((p)=>matchRemotePattern(p, url));\n} //# sourceMappingURL=match-remote-pattern.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWF0Y2gtcmVtb3RlLXBhdHRlcm4uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBMkNnQkEsY0FBYztlQUFkQTs7SUF2Q0FDLGtCQUFrQjtlQUFsQkE7Ozt1Q0FITztBQUdoQixTQUFTQSxtQkFDZEMsT0FBNEIsRUFDNUJDLEdBQVE7SUFFUixJQUFJRCxRQUFRRSxRQUFRLEtBQUtDLFdBQVc7UUFDbEMsSUFBSUgsUUFBUUUsUUFBUSxDQUFDRSxPQUFPLENBQUMsTUFBTSxRQUFRSCxJQUFJQyxRQUFRLENBQUNFLE9BQU8sQ0FBQyxNQUFNLEtBQUs7WUFDekUsT0FBTztRQUNUO0lBQ0Y7SUFDQSxJQUFJSixRQUFRSyxJQUFJLEtBQUtGLFdBQVc7UUFDOUIsSUFBSUgsUUFBUUssSUFBSSxLQUFLSixJQUFJSSxJQUFJLEVBQUU7WUFDN0IsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJTCxRQUFRTSxRQUFRLEtBQUtILFdBQVc7UUFDbEMsTUFBTSxxQkFFTCxDQUZLLElBQUlJLE1BQ1AsK0NBQTRDQyxLQUFLQyxTQUFTLENBQUNULFdBRHhEO21CQUFBO3dCQUFBOzBCQUFBO1FBRU47SUFDRixPQUFPO1FBQ0wsSUFBSSxDQUFDVSxDQUFBQSxHQUFBQSxXQUFBQSxNQUFBQSxFQUFPVixRQUFRTSxRQUFRLEVBQUVLLElBQUksQ0FBQ1YsSUFBSUssUUFBUSxHQUFHO1lBQ2hELE9BQU87UUFDVDtJQUNGO0lBRUEsSUFBSU4sUUFBUVksTUFBTSxLQUFLVCxXQUFXO1FBQ2hDLElBQUlILFFBQVFZLE1BQU0sS0FBS1gsSUFBSVcsTUFBTSxFQUFFO1lBQ2pDLE9BQU87UUFDVDtJQUNGO1FBR1laO0lBRFosOENBQThDO0lBQzlDLElBQUksQ0FBQ1UsQ0FBQUEsR0FBQUEsV0FBQUEsTUFBQUEsRUFBT1YsQ0FBQUEsb0JBQUFBLFFBQVFhLFFBQUFBLEtBQVEsT0FBaEJiLG9CQUFvQixNQUFNO1FBQUVjLEtBQUs7SUFBSyxHQUFHSCxJQUFJLENBQUNWLElBQUlZLFFBQVEsR0FBRztRQUN2RSxPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFFTyxTQUFTZixlQUNkaUIsT0FBaUIsRUFDakJDLGNBQTBDLEVBQzFDZixHQUFRO0lBRVIsT0FDRWMsUUFBUUUsSUFBSSxDQUFDLENBQUNDLFNBQVdqQixJQUFJSyxRQUFRLEtBQUtZLFdBQzFDRixlQUFlQyxJQUFJLENBQUMsQ0FBQ0UsSUFBTXBCLG1CQUFtQm9CLEdBQUdsQjtBQUVyRCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvbWF0Y2gtcmVtb3RlLXBhdHRlcm4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZW1vdGVQYXR0ZXJuIH0gZnJvbSAnLi9pbWFnZS1jb25maWcnXG5pbXBvcnQgeyBtYWtlUmUgfSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvcGljb21hdGNoJ1xuXG4vLyBNb2RpZnlpbmcgdGhpcyBmdW5jdGlvbiBzaG91bGQgYWxzbyBtb2RpZnkgd3JpdGVJbWFnZXNNYW5pZmVzdCgpXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hSZW1vdGVQYXR0ZXJuKFxuICBwYXR0ZXJuOiBSZW1vdGVQYXR0ZXJuIHwgVVJMLFxuICB1cmw6IFVSTFxuKTogYm9vbGVhbiB7XG4gIGlmIChwYXR0ZXJuLnByb3RvY29sICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAocGF0dGVybi5wcm90b2NvbC5yZXBsYWNlKC86JC8sICcnKSAhPT0gdXJsLnByb3RvY29sLnJlcGxhY2UoLzokLywgJycpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgaWYgKHBhdHRlcm4ucG9ydCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHBhdHRlcm4ucG9ydCAhPT0gdXJsLnBvcnQpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGlmIChwYXR0ZXJuLmhvc3RuYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgUGF0dGVybiBzaG91bGQgZGVmaW5lIGhvc3RuYW1lIGJ1dCBmb3VuZFxcbiR7SlNPTi5zdHJpbmdpZnkocGF0dGVybil9YFxuICAgIClcbiAgfSBlbHNlIHtcbiAgICBpZiAoIW1ha2VSZShwYXR0ZXJuLmhvc3RuYW1lKS50ZXN0KHVybC5ob3N0bmFtZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGlmIChwYXR0ZXJuLnNlYXJjaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHBhdHRlcm4uc2VhcmNoICE9PSB1cmwuc2VhcmNoKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cblxuICAvLyBTaG91bGQgYmUgdGhlIHNhbWUgYXMgd3JpdGVJbWFnZXNNYW5pZmVzdCgpXG4gIGlmICghbWFrZVJlKHBhdHRlcm4ucGF0aG5hbWUgPz8gJyoqJywgeyBkb3Q6IHRydWUgfSkudGVzdCh1cmwucGF0aG5hbWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzUmVtb3RlTWF0Y2goXG4gIGRvbWFpbnM6IHN0cmluZ1tdLFxuICByZW1vdGVQYXR0ZXJuczogQXJyYXk8UmVtb3RlUGF0dGVybiB8IFVSTD4sXG4gIHVybDogVVJMXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBkb21haW5zLnNvbWUoKGRvbWFpbikgPT4gdXJsLmhvc3RuYW1lID09PSBkb21haW4pIHx8XG4gICAgcmVtb3RlUGF0dGVybnMuc29tZSgocCkgPT4gbWF0Y2hSZW1vdGVQYXR0ZXJuKHAsIHVybCkpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJoYXNSZW1vdGVNYXRjaCIsIm1hdGNoUmVtb3RlUGF0dGVybiIsInBhdHRlcm4iLCJ1cmwiLCJwcm90b2NvbCIsInVuZGVmaW5lZCIsInJlcGxhY2UiLCJwb3J0IiwiaG9zdG5hbWUiLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJtYWtlUmUiLCJ0ZXN0Iiwic2VhcmNoIiwicGF0aG5hbWUiLCJkb3QiLCJkb21haW5zIiwicmVtb3RlUGF0dGVybnMiLCJzb21lIiwiZG9tYWluIiwicCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/match-remote-pattern.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/modern-browserslist-target.js ***!
\*************************************************************************/
/***/ ((module) => {
"use strict";
eval("// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS.\n// Keep file changes in sync with the corresponding `.d.ts` files.\n/**\n * These are the browser versions that support all of the following:\n * static import: https://caniuse.com/es6-module\n * dynamic import: https://caniuse.com/es6-module-dynamic-import\n * import.meta: https://caniuse.com/mdn-javascript_operators_import_meta\n */ \nconst MODERN_BROWSERSLIST_TARGET = [\n 'chrome 64',\n 'edge 79',\n 'firefox 67',\n 'opera 51',\n 'safari 12'\n];\nmodule.exports = MODERN_BROWSERSLIST_TARGET; //# sourceMappingURL=modern-browserslist-target.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiLCJtYXBwaW5ncyI6IkFBQUEsb0ZBQW9GO0FBQ3BGLGtFQUFrRTtBQUNsRTs7Ozs7Q0FLQztBQUNELE1BQU1BLDZCQUE2QjtJQUNqQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFREMsT0FBT0MsT0FBTyxHQUFHRiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTm90ZTogVGhpcyBmaWxlIGlzIEpTIGJlY2F1c2UgaXQncyB1c2VkIGJ5IHRoZSB0YXNrZmlsZS1zd2MuanMgZmlsZSwgd2hpY2ggaXMgSlMuXG4vLyBLZWVwIGZpbGUgY2hhbmdlcyBpbiBzeW5jIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgYC5kLnRzYCBmaWxlcy5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBicm93c2VyIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBhbGwgb2YgdGhlIGZvbGxvd2luZzpcbiAqIHN0YXRpYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZVxuICogZHluYW1pYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZS1keW5hbWljLWltcG9ydFxuICogaW1wb3J0Lm1ldGE6IGh0dHBzOi8vY2FuaXVzZS5jb20vbWRuLWphdmFzY3JpcHRfb3BlcmF0b3JzX2ltcG9ydF9tZXRhXG4gKi9cbmNvbnN0IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUID0gW1xuICAnY2hyb21lIDY0JyxcbiAgJ2VkZ2UgNzknLFxuICAnZmlyZWZveCA2NycsXG4gICdvcGVyYSA1MScsXG4gICdzYWZhcmkgMTInLFxuXVxuXG5tb2R1bGUuZXhwb3J0cyA9IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUXG4iXSwibmFtZXMiOlsiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJtb2R1bGUiLCJleHBvcnRzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/normalized-asset-prefix.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizedAssetPrefix\", ({\n enumerable: true,\n get: function() {\n return normalizedAssetPrefix;\n }\n}));\nfunction normalizedAssetPrefix(assetPrefix) {\n // remove all leading slashes and trailing slashes\n const escapedAssetPrefix = (assetPrefix == null ? void 0 : assetPrefix.replace(/^\\/+|\\/+$/g, '')) || false;\n // if an assetPrefix was '/', we return empty string\n // because it could be an unnecessary trailing slash\n if (!escapedAssetPrefix) {\n return '';\n }\n if (URL.canParse(escapedAssetPrefix)) {\n const url = new URL(escapedAssetPrefix).toString();\n return url.endsWith('/') ? url.slice(0, -1) : url;\n }\n // assuming assetPrefix here is a pathname-style,\n // restore the leading slash\n return \"/\" + escapedAssetPrefix;\n} //# sourceMappingURL=normalized-asset-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbm9ybWFsaXplZC1hc3NldC1wcmVmaXguanMiLCJtYXBwaW5ncyI6Ijs7Ozt5REFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLHNCQUFzQkMsV0FBK0I7SUFDbkUsa0RBQWtEO0lBQ2xELE1BQU1DLHFCQUFxQkQsQ0FBQUEsZUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsWUFBYUUsT0FBTyxDQUFDLGNBQWMsUUFBTztJQUVyRSxvREFBb0Q7SUFDcEQsb0RBQW9EO0lBQ3BELElBQUksQ0FBQ0Qsb0JBQW9CO1FBQ3ZCLE9BQU87SUFDVDtJQUVBLElBQUlFLElBQUlDLFFBQVEsQ0FBQ0gscUJBQXFCO1FBQ3BDLE1BQU1JLE1BQU0sSUFBSUYsSUFBSUYsb0JBQW9CSyxRQUFRO1FBQ2hELE9BQU9ELElBQUlFLFFBQVEsQ0FBQyxPQUFPRixJQUFJRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUtIO0lBQ2hEO0lBRUEsaURBQWlEO0lBQ2pELDRCQUE0QjtJQUM1QixPQUFRLE1BQUdKO0FBQ2IiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9zaGFyZWQvbGliL25vcm1hbGl6ZWQtYXNzZXQtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVkQXNzZXRQcmVmaXgoYXNzZXRQcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIC8vIHJlbW92ZSBhbGwgbGVhZGluZyBzbGFzaGVzIGFuZCB0cmFpbGluZyBzbGFzaGVzXG4gIGNvbnN0IGVzY2FwZWRBc3NldFByZWZpeCA9IGFzc2V0UHJlZml4Py5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCAnJykgfHwgZmFsc2VcblxuICAvLyBpZiBhbiBhc3NldFByZWZpeCB3YXMgJy8nLCB3ZSByZXR1cm4gZW1wdHkgc3RyaW5nXG4gIC8vIGJlY2F1c2UgaXQgY291bGQgYmUgYW4gdW5uZWNlc3NhcnkgdHJhaWxpbmcgc2xhc2hcbiAgaWYgKCFlc2NhcGVkQXNzZXRQcmVmaXgpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGlmIChVUkwuY2FuUGFyc2UoZXNjYXBlZEFzc2V0UHJlZml4KSkge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoZXNjYXBlZEFzc2V0UHJlZml4KS50b1N0cmluZygpXG4gICAgcmV0dXJuIHVybC5lbmRzV2l0aCgnLycpID8gdXJsLnNsaWNlKDAsIC0xKSA6IHVybFxuICB9XG5cbiAgLy8gYXNzdW1pbmcgYXNzZXRQcmVmaXggaGVyZSBpcyBhIHBhdGhuYW1lLXN0eWxlLFxuICAvLyByZXN0b3JlIHRoZSBsZWFkaW5nIHNsYXNoXG4gIHJldHVybiBgLyR7ZXNjYXBlZEFzc2V0UHJlZml4fWBcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVkQXNzZXRQcmVmaXgiLCJhc3NldFByZWZpeCIsImVzY2FwZWRBc3NldFByZWZpeCIsInJlcGxhY2UiLCJVUkwiLCJjYW5QYXJzZSIsInVybCIsInRvU3RyaW5nIiwiZW5kc1dpdGgiLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/normalized-asset-prefix.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js":
/*!*****************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***!
\*****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction ensureLeadingSlash(path) {\n return path.startsWith('/') ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQW1CQyxJQUFZO0lBQzdDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQyxPQUFPRCxPQUFRLE1BQUdBO0FBQzNDIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgbGVhZGluZyBzbGFzaC5cbiAqIElmIHRoZXJlIGlzIG5vdCBhIGxlYWRpbmcgc2xhc2gsIG9uZSBpcyBhZGRlZCwgb3RoZXJ3aXNlIGl0IGlzIG5vb3AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVMZWFkaW5nU2xhc2gocGF0aDogc3RyaW5nKSB7XG4gIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IHBhdGggOiBgLyR7cGF0aH1gXG59XG4iXSwibmFtZXMiOlsiZW5zdXJlTGVhZGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js":
/*!***************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js ***!
\***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathPrefix\", ({\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n} //# sourceMappingURL=add-path-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU1nQkE7OztlQUFBQTs7O3VDQU5VO0FBTW5CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVDLFNBQVNFLFdBQVdDLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogQWRkcyB0aGUgcHJvdmlkZWQgcHJlZml4IHRvIHRoZSBnaXZlbiBwYXRoLiBJdCBmaXJzdCBlbnN1cmVzIHRoYXQgdGhlIHBhdGhcbiAqIGlzIGluZGVlZCBzdGFydGluZyB3aXRoIGEgc2xhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQYXRoUHJlZml4KHBhdGg6IHN0cmluZywgcHJlZml4Pzogc3RyaW5nKSB7XG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykgfHwgIXByZWZpeCkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBgJHtwcmVmaXh9JHtwYXRobmFtZX0ke3F1ZXJ5fSR7aGFzaH1gXG59XG4iXSwibmFtZXMiOlsiYWRkUGF0aFByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giLCJwYXJzZVBhdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js":
/*!*********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"(ssr)/./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"(ssr)/./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.ensureLeadingSlash)(route.split('/').reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0, _segment.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, ''));\n}\nfunction normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, '$1');\n} //# sourceMappingURL=app-paths.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFzQmdCQSxnQkFBZ0I7ZUFBaEJBOztJQW1DQUMsZUFBZTtlQUFmQTs7O2dEQXpEbUI7cUNBQ0o7QUFxQnhCLFNBQVNELGlCQUFpQkUsS0FBYTtJQUM1QyxPQUFPQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0JBQUFBLEVBQ0xELE1BQU1FLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDakQsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNaLE9BQU9EO1FBQ1Q7UUFFQSxzQkFBc0I7UUFDdEIsSUFBSUksQ0FBQUEsR0FBQUEsU0FBQUEsY0FBQUEsRUFBZUgsVUFBVTtZQUMzQixPQUFPRDtRQUNUO1FBRUEsaUNBQWlDO1FBQ2pDLElBQUlDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSztZQUN0QixPQUFPRDtRQUNUO1FBRUEsdURBQXVEO1FBQ3ZELElBQ0dDLENBQUFBLFlBQVksVUFBVUEsWUFBWSxRQUFNLElBQ3pDQyxVQUFVQyxTQUFTRSxNQUFNLEdBQUcsR0FDNUI7WUFDQSxPQUFPTDtRQUNUO1FBRUEsT0FBVUEsV0FBUyxNQUFHQztJQUN4QixHQUFHO0FBRVA7QUFNTyxTQUFTTixnQkFBZ0JXLEdBQVc7SUFDekMsT0FBT0EsSUFBSUMsT0FBTyxDQUNoQixlQUNBO0FBR0oiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVuc3VyZUxlYWRpbmdTbGFzaCB9IGZyb20gJy4uLy4uL3BhZ2UtcGF0aC9lbnN1cmUtbGVhZGluZy1zbGFzaCdcbmltcG9ydCB7IGlzR3JvdXBTZWdtZW50IH0gZnJvbSAnLi4vLi4vc2VnbWVudCdcblxuLyoqXG4gKiBOb3JtYWxpemVzIGFuIGFwcCByb3V0ZSBzbyBpdCByZXByZXNlbnRzIHRoZSBhY3R1YWwgcmVxdWVzdCBwYXRoLiBFc3NlbnRpYWxseVxuICogcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nIHRyYW5zZm9ybWF0aW9uczpcbiAqXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3BhZ2VgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcGFnZWAgdG8gYC9hY2NvdW50YFxuICogLSBgL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9wYWdlYCB0byBgL2BcbiAqIC0gYC8oZGFzaGJvYXJkKS91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgLyhkYXNoYm9hcmQpL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcm91dGVgIHRvIGAvdXNlci9baWRdYFxuICogLSBgL2FjY291bnQvcm91dGVgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC9yb3V0ZWAgdG8gYC9gXG4gKiAtIGAvYCB0byBgL2BcbiAqXG4gKiBAcGFyYW0gcm91dGUgdGhlIGFwcCByb3V0ZSB0byBub3JtYWxpemVcbiAqIEByZXR1cm5zIHRoZSBub3JtYWxpemVkIHBhdGhuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBcHBQYXRoKHJvdXRlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGVuc3VyZUxlYWRpbmdTbGFzaChcbiAgICByb3V0ZS5zcGxpdCgnLycpLnJlZHVjZSgocGF0aG5hbWUsIHNlZ21lbnQsIGluZGV4LCBzZWdtZW50cykgPT4ge1xuICAgICAgLy8gRW1wdHkgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoIXNlZ21lbnQpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIEdyb3VwcyBhcmUgaWdub3JlZC5cbiAgICAgIGlmIChpc0dyb3VwU2VnbWVudChzZWdtZW50KSkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gUGFyYWxsZWwgc2VnbWVudHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoc2VnbWVudFswXSA9PT0gJ0AnKSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBUaGUgbGFzdCBzZWdtZW50IChpZiBpdCdzIGEgbGVhZikgc2hvdWxkIGJlIGlnbm9yZWQuXG4gICAgICBpZiAoXG4gICAgICAgIChzZWdtZW50ID09PSAncGFnZScgfHwgc2VnbWVudCA9PT0gJ3JvdXRlJykgJiZcbiAgICAgICAgaW5kZXggPT09IHNlZ21lbnRzLmxlbmd0aCAtIDFcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGAke3BhdGhuYW1lfS8ke3NlZ21lbnR9YFxuICAgIH0sICcnKVxuICApXG59XG5cbi8qKlxuICogU3RyaXBzIHRoZSBgLnJzY2AgZXh0ZW5zaW9uIGlmIGl0J3MgaW4gdGhlIHBhdGhuYW1lLlxuICogU2luY2UgdGhpcyBmdW5jdGlvbiBpcyB1c2VkIG9uIGZ1bGwgdXJscyBpdCBjaGVja3MgYD9gIGZvciBzZWFyY2hQYXJhbXMgaGFuZGxpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSc2NVUkwodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHVybC5yZXBsYWNlKFxuICAgIC9cXC5yc2MoJHxcXD8pLyxcbiAgICAvLyAkMSBlbnN1cmVzIGA/YCBpcyBwcmVzZXJ2ZWRcbiAgICAnJDEnXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVBcHBQYXRoIiwibm9ybWFsaXplUnNjVVJMIiwicm91dGUiLCJlbnN1cmVMZWFkaW5nU2xhc2giLCJzcGxpdCIsInJlZHVjZSIsInBhdGhuYW1lIiwic2VnbWVudCIsImluZGV4Iiwic2VnbWVudHMiLCJpc0dyb3VwU2VnbWVudCIsImxlbmd0aCIsInVybCIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js":
/*!**************************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js ***!
\**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"computeCacheBustingSearchParam\", ({\n enumerable: true,\n get: function() {\n return computeCacheBustingSearchParam;\n }\n}));\nconst _hash = __webpack_require__(/*! ../../hash */ \"(ssr)/./node_modules/next/dist/shared/lib/hash.js\");\nfunction computeCacheBustingSearchParam(prefetchHeader, segmentPrefetchHeader, stateTreeHeader, nextUrlHeader) {\n if (prefetchHeader === undefined && segmentPrefetchHeader === undefined && stateTreeHeader === undefined && nextUrlHeader === undefined) {\n return '';\n }\n return (0, _hash.hexHash)([\n prefetchHeader || '0',\n segmentPrefetchHeader || '0',\n stateTreeHeader || '0',\n nextUrlHeader || '0'\n ].join(','));\n} //# sourceMappingURL=cache-busting-search-param.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2NhY2hlLWJ1c3Rpbmctc2VhcmNoLXBhcmFtLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0VBRWdCQTs7O2VBQUFBOzs7a0NBRlE7QUFFakIsU0FBU0EsK0JBQ2RDLGNBQTZDLEVBQzdDQyxxQkFBb0QsRUFDcERDLGVBQThDLEVBQzlDQyxhQUE0QztJQUU1QyxJQUNFSCxtQkFBbUJJLGFBQ25CSCwwQkFBMEJHLGFBQzFCRixvQkFBb0JFLGFBQ3BCRCxrQkFBa0JDLFdBQ2xCO1FBQ0EsT0FBTztJQUNUO0lBQ0EsT0FBT0MsQ0FBQUEsR0FBQUEsTUFBQUEsT0FBQUEsRUFDTDtRQUNFTCxrQkFBa0I7UUFDbEJDLHlCQUF5QjtRQUN6QkMsbUJBQW1CO1FBQ25CQyxpQkFBaUI7S0FDbEIsQ0FBQ0csSUFBSSxDQUFDO0FBRVgiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvY2FjaGUtYnVzdGluZy1zZWFyY2gtcGFyYW0udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGV4SGFzaCB9IGZyb20gJy4uLy4uL2hhc2gnXG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlQ2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0oXG4gIHByZWZldGNoSGVhZGVyOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgc2VnbWVudFByZWZldGNoSGVhZGVyOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgc3RhdGVUcmVlSGVhZGVyOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgbmV4dFVybEhlYWRlcjogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWRcbik6IHN0cmluZyB7XG4gIGlmIChcbiAgICBwcmVmZXRjaEhlYWRlciA9PT0gdW5kZWZpbmVkICYmXG4gICAgc2VnbWVudFByZWZldGNoSGVhZGVyID09PSB1bmRlZmluZWQgJiZcbiAgICBzdGF0ZVRyZWVIZWFkZXIgPT09IHVuZGVmaW5lZCAmJlxuICAgIG5leHRVcmxIZWFkZXIgPT09IHVuZGVmaW5lZFxuICApIHtcbiAgICByZXR1cm4gJydcbiAgfVxuICByZXR1cm4gaGV4SGFzaChcbiAgICBbXG4gICAgICBwcmVmZXRjaEhlYWRlciB8fCAnMCcsXG4gICAgICBzZWdtZW50UHJlZmV0Y2hIZWFkZXIgfHwgJzAnLFxuICAgICAgc3RhdGVUcmVlSGVhZGVyIHx8ICcwJyxcbiAgICAgIG5leHRVcmxIZWFkZXIgfHwgJzAnLFxuICAgIF0uam9pbignLCcpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJjb21wdXRlQ2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0iLCJwcmVmZXRjaEhlYWRlciIsInNlZ21lbnRQcmVmZXRjaEhlYWRlciIsInN0YXRlVHJlZUhlYWRlciIsIm5leHRVcmxIZWFkZXIiLCJ1bmRlZmluZWQiLCJoZXhIYXNoIiwiam9pbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js":
/*!*********************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js ***!
\*********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"disableSmoothScrollDuringRouteTransition\", ({\n enumerable: true,\n get: function() {\n return disableSmoothScrollDuringRouteTransition;\n }\n}));\nconst _warnonce = __webpack_require__(/*! ../../utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction disableSmoothScrollDuringRouteTransition(fn, options) {\n if (options === void 0) options = {};\n // if only the hash is changed, we don't need to disable smooth scrolling\n // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX\n if (options.onlyHashChange) {\n fn();\n return;\n }\n const htmlElement = document.documentElement;\n const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth';\n // Since this is a breaking change, this is temporarily flagged\n // and will be false by default.\n // In the next major (v16), this will be automatically enabled\n if (false) {} else {\n // Old behavior: always manipulate styles, but warn about upcoming change\n // Warn if smooth scrolling is detected but no data attribute is present\n if ( true && !hasDataAttribute && getComputedStyle(htmlElement).scrollBehavior === 'smooth') {\n (0, _warnonce.warnOnce)('Detected `scroll-behavior: smooth` on the `<html>` element. In a future version, ' + 'Next.js will no longer automatically disable smooth scrolling during route transitions. ' + 'To prepare for this change, add `data-scroll-behavior=\"smooth\"` to your <html> element. ' + 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior');\n }\n }\n // Proceed with temporarily disabling smooth scrolling\n const existing = htmlElement.style.scrollBehavior;\n htmlElement.style.scrollBehavior = 'auto';\n if (!options.dontForceLayout) {\n // In Chrome-based browsers we need to force reflow before calling `scrollTo`.\n // Otherwise it will not pickup the change in scrollBehavior\n // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042\n htmlElement.getClientRects();\n }\n fn();\n htmlElement.style.scrollBehavior = existing;\n} //# sourceMappingURL=disable-smooth-scroll.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Rpc2FibGUtc21vb3RoLXNjcm9sbC5qcyIsIm1hcHBpbmdzIjoiOzs7OzRFQU1nQkE7OztlQUFBQTs7O3NDQU5TO0FBTWxCLFNBQVNBLHlDQUNkQyxFQUFjLEVBQ2RDLE9BQXFFO0lBQXJFQSxJQUFBQSxZQUFBQSxLQUFBQSxHQUFBQSxVQUFtRSxDQUFDO0lBRXBFLHlFQUF5RTtJQUN6RSw2RkFBNkY7SUFDN0YsSUFBSUEsUUFBUUMsY0FBYyxFQUFFO1FBQzFCRjtRQUNBO0lBQ0Y7SUFFQSxNQUFNRyxjQUFjQyxTQUFTQyxlQUFlO0lBQzVDLE1BQU1DLG1CQUFtQkgsWUFBWUksT0FBTyxDQUFDQyxjQUFjLEtBQUs7SUFFaEUsK0RBQStEO0lBQy9ELGdDQUFnQztJQUNoQyw4REFBOEQ7SUFDOUQsSUFBSUMsS0FBeUMsRUFBRSxFQU05QyxNQUFNO1FBQ0wseUVBQXlFO1FBRXpFLHdFQUF3RTtRQUN4RSxJQUNFQSxLQUFvQixJQUNwQixDQUFDSCxvQkFDRE8saUJBQWlCVixhQUFhSyxjQUFjLEtBQUssVUFDakQ7WUFDQU0sQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRSxzRkFDRSw2RkFDQSw2RkFDQTtRQUVOO0lBQ0Y7SUFFQSxzREFBc0Q7SUFDdEQsTUFBTUMsV0FBV1osWUFBWWEsS0FBSyxDQUFDUixjQUFjO0lBQ2pETCxZQUFZYSxLQUFLLENBQUNSLGNBQWMsR0FBRztJQUNuQyxJQUFJLENBQUNQLFFBQVFnQixlQUFlLEVBQUU7UUFDNUIsOEVBQThFO1FBQzlFLDREQUE0RDtRQUM1RCx5RkFBeUY7UUFDekZkLFlBQVllLGNBQWM7SUFDNUI7SUFDQWxCO0lBQ0FHLFlBQVlhLEtBQUssQ0FBQ1IsY0FBYyxHQUFHTztBQUNyQyIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9kaXNhYmxlLXNtb290aC1zY3JvbGwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuLi8uLi91dGlscy93YXJuLW9uY2UnXG5cbi8qKlxuICogUnVuIGZ1bmN0aW9uIHdpdGggYHNjcm9sbC1iZWhhdmlvcjogYXV0b2AgYXBwbGllZCB0byBgPGh0bWwvPmAuXG4gKiBUaGlzIGNzcyBjaGFuZ2Ugd2lsbCBiZSByZXZlcnRlZCBhZnRlciB0aGUgZnVuY3Rpb24gZmluaXNoZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uKFxuICBmbjogKCkgPT4gdm9pZCxcbiAgb3B0aW9uczogeyBkb250Rm9yY2VMYXlvdXQ/OiBib29sZWFuOyBvbmx5SGFzaENoYW5nZT86IGJvb2xlYW4gfSA9IHt9XG4pIHtcbiAgLy8gaWYgb25seSB0aGUgaGFzaCBpcyBjaGFuZ2VkLCB3ZSBkb24ndCBuZWVkIHRvIGRpc2FibGUgc21vb3RoIHNjcm9sbGluZ1xuICAvLyB3ZSBvbmx5IGNhcmUgdG8gcHJldmVudCBzbW9vdGggc2Nyb2xsaW5nIHdoZW4gbmF2aWdhdGluZyB0byBhIG5ldyBwYWdlIHRvIGF2b2lkIGphcnJpbmcgVVhcbiAgaWYgKG9wdGlvbnMub25seUhhc2hDaGFuZ2UpIHtcbiAgICBmbigpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICBjb25zdCBoYXNEYXRhQXR0cmlidXRlID0gaHRtbEVsZW1lbnQuZGF0YXNldC5zY3JvbGxCZWhhdmlvciA9PT0gJ3Ntb290aCdcblxuICAvLyBTaW5jZSB0aGlzIGlzIGEgYnJlYWtpbmcgY2hhbmdlLCB0aGlzIGlzIHRlbXBvcmFyaWx5IGZsYWdnZWRcbiAgLy8gYW5kIHdpbGwgYmUgZmFsc2UgYnkgZGVmYXVsdC5cbiAgLy8gSW4gdGhlIG5leHQgbWFqb3IgKHYxNiksIHRoaXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGVuYWJsZWRcbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9PUFRJTUlaRV9ST1VURVJfU0NST0xMKSB7XG4gICAgaWYgKCFoYXNEYXRhQXR0cmlidXRlKSB7XG4gICAgICAvLyBObyBzbW9vdGggc2Nyb2xsaW5nIGNvbmZpZ3VyZWQsIHJ1biBkaXJlY3RseSB3aXRob3V0IHN0eWxlIG1hbmlwdWxhdGlvblxuICAgICAgZm4oKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIE9sZCBiZWhhdmlvcjogYWx3YXlzIG1hbmlwdWxhdGUgc3R5bGVzLCBidXQgd2FybiBhYm91dCB1cGNvbWluZyBjaGFuZ2VcblxuICAgIC8vIFdhcm4gaWYgc21vb3RoIHNjcm9sbGluZyBpcyBkZXRlY3RlZCBidXQgbm8gZGF0YSBhdHRyaWJ1dGUgaXMgcHJlc2VudFxuICAgIGlmIChcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnICYmXG4gICAgICAhaGFzRGF0YUF0dHJpYnV0ZSAmJlxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShodG1sRWxlbWVudCkuc2Nyb2xsQmVoYXZpb3IgPT09ICdzbW9vdGgnXG4gICAgKSB7XG4gICAgICB3YXJuT25jZShcbiAgICAgICAgJ0RldGVjdGVkIGBzY3JvbGwtYmVoYXZpb3I6IHNtb290aGAgb24gdGhlIGA8aHRtbD5gIGVsZW1lbnQuIEluIGEgZnV0dXJlIHZlcnNpb24sICcgK1xuICAgICAgICAgICdOZXh0LmpzIHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgZGlzYWJsZSBzbW9vdGggc2Nyb2xsaW5nIGR1cmluZyByb3V0ZSB0cmFuc2l0aW9ucy4gJyArXG4gICAgICAgICAgJ1RvIHByZXBhcmUgZm9yIHRoaXMgY2hhbmdlLCBhZGQgYGRhdGEtc2Nyb2xsLWJlaGF2aW9yPVwic21vb3RoXCJgIHRvIHlvdXIgPGh0bWw+IGVsZW1lbnQuICcgK1xuICAgICAgICAgICdMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9taXNzaW5nLWRhdGEtc2Nyb2xsLWJlaGF2aW9yJ1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIC8vIFByb2NlZWQgd2l0aCB0ZW1wb3JhcmlseSBkaXNhYmxpbmcgc21vb3RoIHNjcm9sbGluZ1xuICBjb25zdCBleGlzdGluZyA9IGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yXG4gIGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nXG4gIGlmICghb3B0aW9ucy5kb250Rm9yY2VMYXlvdXQpIHtcbiAgICAvLyBJbiBDaHJvbWUtYmFzZWQgYnJvd3NlcnMgd2UgbmVlZCB0byBmb3JjZSByZWZsb3cgYmVmb3JlIGNhbGxpbmcgYHNjcm9sbFRvYC5cbiAgICAvLyBPdGhlcndpc2UgaXQgd2lsbCBub3QgcGlja3VwIHRoZSBjaGFuZ2UgaW4gc2Nyb2xsQmVoYXZpb3JcbiAgICAvLyBNb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2lzc3Vlcy80MDcxOSNpc3N1ZWNvbW1lbnQtMTMzNjI0ODA0MlxuICAgIGh0bWxFbGVtZW50LmdldENsaWVudFJlY3RzKClcbiAgfVxuICBmbigpXG4gIGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gZXhpc3Rpbmdcbn1cbiJdLCJuYW1lcyI6WyJkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uIiwiZm4iLCJvcHRpb25zIiwib25seUhhc2hDaGFuZ2UiLCJodG1sRWxlbWVudCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiaGFzRGF0YUF0dHJpYnV0ZSIsImRhdGFzZXQiLCJzY3JvbGxCZWhhdmlvciIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfT1BUSU1JWkVfUk9VVEVSX1NDUk9MTCIsIk5PREVfRU5WIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsIndhcm5PbmNlIiwiZXhpc3RpbmciLCJzdHlsZSIsImRvbnRGb3JjZUxheW91dCIsImdldENsaWVudFJlY3RzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/format-url.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || '';\n let pathname = urlObj.pathname || '';\n let hash = urlObj.hash || '';\n let query = urlObj.query || '';\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n if (query && typeof query === 'object') {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || '';\n if (protocol && !protocol.endsWith(':')) protocol += ':';\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes'\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBQ3ZDLHNEQUFzRDtBQUN0RCxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLGdFQUFnRTtBQUNoRSxzRUFBc0U7QUFDdEUsc0VBQXNFO0FBQ3RFLDRFQUE0RTtBQUM1RSxxRUFBcUU7QUFDckUsd0JBQXdCO0FBQ3hCLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsNkRBQTZEO0FBQzdELDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUM1RSx5Q0FBeUM7Ozs7Ozs7Ozs7Ozs7SUFRekJBLFNBQVM7ZUFBVEE7O0lBNkRBQyxvQkFBb0I7ZUFBcEJBOztJQWZIQyxhQUFhO2VBQWJBOzs7O21GQWxEZ0I7QUFFN0IsTUFBTUMsbUJBQW1CO0FBRWxCLFNBQVNILFVBQVVJLE1BQWlCO0lBQ3pDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUUsR0FBR0Y7SUFDekIsSUFBSUcsV0FBV0gsT0FBT0csUUFBUSxJQUFJO0lBQ2xDLElBQUlDLFdBQVdKLE9BQU9JLFFBQVEsSUFBSTtJQUNsQyxJQUFJQyxPQUFPTCxPQUFPSyxJQUFJLElBQUk7SUFDMUIsSUFBSUMsUUFBUU4sT0FBT00sS0FBSyxJQUFJO0lBQzVCLElBQUlDLE9BQXVCO0lBRTNCTixPQUFPQSxPQUFPTyxtQkFBbUJQLE1BQU1RLE9BQU8sQ0FBQyxRQUFRLE9BQU8sTUFBTTtJQUVwRSxJQUFJVCxPQUFPTyxJQUFJLEVBQUU7UUFDZkEsT0FBT04sT0FBT0QsT0FBT08sSUFBSTtJQUMzQixPQUFPLElBQUlMLFVBQVU7UUFDbkJLLE9BQU9OLE9BQVEsRUFBQ0MsU0FBU1EsT0FBTyxDQUFDLE9BQVEsTUFBR1IsV0FBUyxNQUFLQSxRQUFBQSxDQUFPO1FBQ2pFLElBQUlGLE9BQU9XLElBQUksRUFBRTtZQUNmSixRQUFRLE1BQU1QLE9BQU9XLElBQUk7UUFDM0I7SUFDRjtJQUVBLElBQUlMLFNBQVMsT0FBT0EsVUFBVSxVQUFVO1FBQ3RDQSxRQUFRTSxPQUFPQyxhQUFZQyxzQkFBc0IsQ0FBQ1I7SUFDcEQ7SUFFQSxJQUFJUyxTQUFTZixPQUFPZSxNQUFNLElBQUtULFNBQVUsTUFBR0EsU0FBWTtJQUV4RCxJQUFJSCxZQUFZLENBQUNBLFNBQVNhLFFBQVEsQ0FBQyxNQUFNYixZQUFZO0lBRXJELElBQ0VILE9BQU9pQixPQUFPLElBQ1osRUFBQ2QsWUFBWUosaUJBQWlCbUIsSUFBSSxDQUFDZixTQUFBQSxDQUFRLElBQU1JLFNBQVMsT0FDNUQ7UUFDQUEsT0FBTyxPQUFRQSxDQUFBQSxRQUFRLEdBQUM7UUFDeEIsSUFBSUgsWUFBWUEsUUFBUSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxXQUFXLE1BQU1BO0lBQ3hELE9BQU8sSUFBSSxDQUFDRyxNQUFNO1FBQ2hCQSxPQUFPO0lBQ1Q7SUFFQSxJQUFJRixRQUFRQSxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUtBLE9BQU8sTUFBTUE7SUFDMUMsSUFBSVUsVUFBVUEsTUFBTSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxTQUFTLE1BQU1BO0lBRWhEWCxXQUFXQSxTQUFTSyxPQUFPLENBQUMsU0FBU0Q7SUFDckNPLFNBQVNBLE9BQU9OLE9BQU8sQ0FBQyxLQUFLO0lBRTdCLE9BQVEsS0FBRU4sV0FBV0ksT0FBT0gsV0FBV1csU0FBU1Y7QUFDbEQ7QUFFTyxNQUFNUCxnQkFBZ0I7SUFDM0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRCxxQkFBcUJzQixHQUFjO0lBQ2pELElBQUlDLElBQW9CLEVBQW9CO1FBQzFDLElBQUlELFFBQVEsUUFBUSxPQUFPQSxRQUFRLFVBQVU7WUFDM0NJLE9BQU9DLElBQUksQ0FBQ0wsS0FBS00sT0FBTyxDQUFDLENBQUNDO2dCQUN4QixJQUFJLENBQUM1QixjQUFjNkIsUUFBUSxDQUFDRCxNQUFNO29CQUNoQ0UsUUFBUUMsSUFBSSxDQUNULHVEQUFvREg7Z0JBRXpEO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBTzlCLFVBQVV1QjtBQUNuQiIsInNvdXJjZXMiOlsiL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEZvcm1hdCBmdW5jdGlvbiBtb2RpZmllZCBmcm9tIG5vZGVqc1xuLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGFcbi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGVcbi8vIFwiU29mdHdhcmVcIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZ1xuLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLFxuLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdFxuLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlXG4vLyBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZFxuLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTU1xuLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRlxuLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTlxuLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sXG4vLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Jcbi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEVcbi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB0eXBlIHsgVXJsT2JqZWN0IH0gZnJvbSAndXJsJ1xuaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAnLi9xdWVyeXN0cmluZydcblxuY29uc3Qgc2xhc2hlZFByb3RvY29scyA9IC9odHRwcz98ZnRwfGdvcGhlcnxmaWxlL1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VXJsKHVybE9iajogVXJsT2JqZWN0KSB7XG4gIGxldCB7IGF1dGgsIGhvc3RuYW1lIH0gPSB1cmxPYmpcbiAgbGV0IHByb3RvY29sID0gdXJsT2JqLnByb3RvY29sIHx8ICcnXG4gIGxldCBwYXRobmFtZSA9IHVybE9iai5wYXRobmFtZSB8fCAnJ1xuICBsZXQgaGFzaCA9IHVybE9iai5oYXNoIHx8ICcnXG4gIGxldCBxdWVyeSA9IHVybE9iai5xdWVyeSB8fCAnJ1xuICBsZXQgaG9zdDogc3RyaW5nIHwgZmFsc2UgPSBmYWxzZVxuXG4gIGF1dGggPSBhdXRoID8gZW5jb2RlVVJJQ29tcG9uZW50KGF1dGgpLnJlcGxhY2UoLyUzQS9pLCAnOicpICsgJ0AnIDogJydcblxuICBpZiAodXJsT2JqLmhvc3QpIHtcbiAgICBob3N0ID0gYXV0aCArIHVybE9iai5ob3N0XG4gIH0gZWxzZSBpZiAoaG9zdG5hbWUpIHtcbiAgICBob3N0ID0gYXV0aCArICh+aG9zdG5hbWUuaW5kZXhPZignOicpID8gYFske2hvc3RuYW1lfV1gIDogaG9zdG5hbWUpXG4gICAgaWYgKHVybE9iai5wb3J0KSB7XG4gICAgICBob3N0ICs9ICc6JyArIHVybE9iai5wb3J0XG4gICAgfVxuICB9XG5cbiAgaWYgKHF1ZXJ5ICYmIHR5cGVvZiBxdWVyeSA9PT0gJ29iamVjdCcpIHtcbiAgICBxdWVyeSA9IFN0cmluZyhxdWVyeXN0cmluZy51cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHF1ZXJ5IGFzIFBhcnNlZFVybFF1ZXJ5KSlcbiAgfVxuXG4gIGxldCBzZWFyY2ggPSB1cmxPYmouc2VhcmNoIHx8IChxdWVyeSAmJiBgPyR7cXVlcnl9YCkgfHwgJydcblxuICBpZiAocHJvdG9jb2wgJiYgIXByb3RvY29sLmVuZHNXaXRoKCc6JykpIHByb3RvY29sICs9ICc6J1xuXG4gIGlmIChcbiAgICB1cmxPYmouc2xhc2hlcyB8fFxuICAgICgoIXByb3RvY29sIHx8IHNsYXNoZWRQcm90b2NvbHMudGVzdChwcm90b2NvbCkpICYmIGhvc3QgIT09IGZhbHNlKVxuICApIHtcbiAgICBob3N0ID0gJy8vJyArIChob3N0IHx8ICcnKVxuICAgIGlmIChwYXRobmFtZSAmJiBwYXRobmFtZVswXSAhPT0gJy8nKSBwYXRobmFtZSA9ICcvJyArIHBhdGhuYW1lXG4gIH0gZWxzZSBpZiAoIWhvc3QpIHtcbiAgICBob3N0ID0gJydcbiAgfVxuXG4gIGlmIChoYXNoICYmIGhhc2hbMF0gIT09ICcjJykgaGFzaCA9ICcjJyArIGhhc2hcbiAgaWYgKHNlYXJjaCAmJiBzZWFyY2hbMF0gIT09ICc/Jykgc2VhcmNoID0gJz8nICsgc2VhcmNoXG5cbiAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9bPyNdL2csIGVuY29kZVVSSUNvbXBvbmVudClcbiAgc2VhcmNoID0gc2VhcmNoLnJlcGxhY2UoJyMnLCAnJTIzJylcblxuICByZXR1cm4gYCR7cHJvdG9jb2x9JHtob3N0fSR7cGF0aG5hbWV9JHtzZWFyY2h9JHtoYXNofWBcbn1cblxuZXhwb3J0IGNvbnN0IHVybE9iamVjdEtleXMgPSBbXG4gICdhdXRoJyxcbiAgJ2hhc2gnLFxuICAnaG9zdCcsXG4gICdob3N0bmFtZScsXG4gICdocmVmJyxcbiAgJ3BhdGgnLFxuICAncGF0aG5hbWUnLFxuICAncG9ydCcsXG4gICdwcm90b2NvbCcsXG4gICdxdWVyeScsXG4gICdzZWFyY2gnLFxuICAnc2xhc2hlcycsXG5dXG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRXaXRoVmFsaWRhdGlvbih1cmw6IFVybE9iamVjdCk6IHN0cmluZyB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGlmICh1cmwgIT09IG51bGwgJiYgdHlwZW9mIHVybCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIE9iamVjdC5rZXlzKHVybCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmICghdXJsT2JqZWN0S2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFVua25vd24ga2V5IHBhc3NlZCB2aWEgdXJsT2JqZWN0IGludG8gdXJsLmZvcm1hdDogJHtrZXl9YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZm9ybWF0VXJsKHVybClcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXRVcmwiLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybE9iamVjdEtleXMiLCJzbGFzaGVkUHJvdG9jb2xzIiwidXJsT2JqIiwiYXV0aCIsImhvc3RuYW1lIiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImhhc2giLCJxdWVyeSIsImhvc3QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiaW5kZXhPZiIsInBvcnQiLCJTdHJpbmciLCJxdWVyeXN0cmluZyIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJlbmRzV2l0aCIsInNsYXNoZXMiLCJ0ZXN0IiwidXJsIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJpbmNsdWRlcyIsImNvbnNvbGUiLCJ3YXJuIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js":
/*!*********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/html-bots.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// This regex contains the bots that we need to do a blocking render for and can't safely stream the response\n// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTML_LIMITED_BOT_UA_RE\", ({\n enumerable: true,\n get: function() {\n return HTML_LIMITED_BOT_UA_RE;\n }\n}));\nconst HTML_LIMITED_BOT_UA_RE = /Mediapartners-Google|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti/i; //# sourceMappingURL=html-bots.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2h0bWwtYm90cy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2R0FBNkc7QUFDN0csc0tBQXNLOzs7OzswREFDekpBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHlCQUNYIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2h0bWwtYm90cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIHJlZ2V4IGNvbnRhaW5zIHRoZSBib3RzIHRoYXQgd2UgbmVlZCB0byBkbyBhIGJsb2NraW5nIHJlbmRlciBmb3IgYW5kIGNhbid0IHNhZmVseSBzdHJlYW0gdGhlIHJlc3BvbnNlXG4vLyBkdWUgdG8gaG93IHRoZXkgcGFyc2UgdGhlIERPTS4gRm9yIGV4YW1wbGUsIHRoZXkgbWlnaHQgZXhwbGljaXRseSBjaGVjayBmb3IgbWV0YWRhdGEgaW4gdGhlIGBoZWFkYCB0YWcsIHNvIHdlIGNhbid0IHN0cmVhbSBtZXRhZGF0YSB0YWdzIGFmdGVyIHRoZSBgaGVhZGAgd2FzIHNlbnQuXG5leHBvcnQgY29uc3QgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSA9XG4gIC9NZWRpYXBhcnRuZXJzLUdvb2dsZXxDaHJvbWUtTGlnaHRob3VzZXxTbHVycHxEdWNrRHVja0JvdHxiYWlkdXNwaWRlcnx5YW5kZXh8c29nb3V8Yml0bHlib3R8dHVtYmxyfHZrU2hhcmV8cXVvcmEgbGluayBwcmV2aWV3fHJlZGRpdGJvdHxpYV9hcmNoaXZlcnxCaW5nYm90fEJpbmdQcmV2aWV3fGFwcGxlYm90fGZhY2Vib29rZXh0ZXJuYWxoaXR8ZmFjZWJvb2tjYXRhbG9nfFR3aXR0ZXJib3R8TGlua2VkSW5Cb3R8U2xhY2tib3R8RGlzY29yZGJvdHxXaGF0c0FwcHxTa3lwZVVyaVByZXZpZXd8WWV0aS9pXG4iXSwibmFtZXMiOlsiSFRNTF9MSU1JVEVEX0JPVF9VQV9SRSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js":
/*!*******************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/interception-routes.js ***!
\*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ./app-paths */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)'\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split('/')){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>\"), \"__NEXT_ERROR_CODE\", {\n value: \"E269\",\n enumerable: false,\n configurable: true\n });\n }\n interceptingRoute = (0, _apppaths.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = \"/\" + interceptedRoute;\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute;\n }\n break;\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..) marker at the root level, use (.) instead.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E207\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw Object.defineProperty(new Error(\"Invalid interception route: \" + path + \". Cannot use (..)(..) marker at the root level or one level up.\"), \"__NEXT_ERROR_CODE\", {\n value: \"E486\",\n enumerable: false,\n configurable: true\n });\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw Object.defineProperty(new Error('Invariant: unexpected marker'), \"__NEXT_ERROR_CODE\", {\n value: \"E112\",\n enumerable: false,\n configurable: true\n });\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n} //# sourceMappingURL=interception-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBR2FBLDBCQUEwQjtlQUExQkE7O0lBa0JHQyxtQ0FBbUM7ZUFBbkNBOztJQVhBQywwQkFBMEI7ZUFBMUJBOzs7c0NBVmlCO0FBRzFCLE1BQU1GLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sU0FBU0UsMkJBQTJCQyxJQUFZO0lBQ3JELHdDQUF3QztJQUN4QyxPQUNFQSxLQUNHQyxLQUFLLENBQUMsS0FDTkMsSUFBSSxDQUFDLENBQUNDLFVBQ0xOLDJCQUEyQkssSUFBSSxDQUFDLENBQUNFLElBQU1ELFFBQVFFLFVBQVUsQ0FBQ0QsU0FDdERFO0FBRVo7QUFFTyxTQUFTUixvQ0FBb0NFLElBQVk7SUFDOUQsSUFBSU8sbUJBQ0ZDLFFBQ0FDO0lBRUYsS0FBSyxNQUFNTixXQUFXSCxLQUFLQyxLQUFLLENBQUMsS0FBTTtRQUNyQ08sU0FBU1gsMkJBQTJCSyxJQUFJLENBQUMsQ0FBQ0UsSUFBTUQsUUFBUUUsVUFBVSxDQUFDRDtRQUNuRSxJQUFJSSxRQUFROztZQUNULENBQUNELG1CQUFtQkUsaUJBQWlCLEdBQUdULEtBQUtDLEtBQUssQ0FBQ08sUUFBUTtZQUM1RDtRQUNGO0lBQ0Y7SUFFQSxJQUFJLENBQUNELHFCQUFxQixDQUFDQyxVQUFVLENBQUNDLGtCQUFrQjtRQUN0RCxNQUFNLHFCQUVMLENBRkssSUFBSUMsTUFDUCxpQ0FBOEJWLE9BQUssc0ZBRGhDO21CQUFBO3dCQUFBOzBCQUFBO1FBRU47SUFDRjtJQUVBTyxvQkFBb0JJLENBQUFBLEdBQUFBLFVBQUFBLGdCQUFBQSxFQUFpQkosbUJBQW1CLGlEQUFpRDs7SUFFekcsT0FBUUM7UUFDTixLQUFLO1lBQ0gsb0lBQW9JO1lBQ3BJLElBQUlELHNCQUFzQixLQUFLO2dCQUM3QkUsbUJBQW9CLE1BQUdBO1lBQ3pCLE9BQU87Z0JBQ0xBLG1CQUFtQkYsb0JBQW9CLE1BQU1FO1lBQy9DO1lBQ0E7UUFDRixLQUFLO1lBQ0gsdUhBQXVIO1lBQ3ZILElBQUlGLHNCQUFzQixLQUFLO2dCQUM3QixNQUFNLHFCQUVMLENBRkssSUFBSUcsTUFDUCxpQ0FBOEJWLE9BQUssaUVBRGhDOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0Y7WUFDQVMsbUJBQW1CRixrQkFDaEJOLEtBQUssQ0FBQyxLQUNOVyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQ1ZDLE1BQU0sQ0FBQ0osa0JBQ1BLLElBQUksQ0FBQztZQUNSO1FBQ0YsS0FBSztZQUNILGtJQUFrSTtZQUNsSUwsbUJBQW1CLE1BQU1BO1lBQ3pCO1FBQ0YsS0FBSztZQUNILGlJQUFpSTtZQUVqSSxNQUFNTSx5QkFBeUJSLGtCQUFrQk4sS0FBSyxDQUFDO1lBQ3ZELElBQUljLHVCQUF1QkMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3RDLE1BQU0scUJBRUwsQ0FGSyxJQUFJTixNQUNQLGlDQUE4QlYsT0FBSyxvRUFEaEM7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUVBUyxtQkFBbUJNLHVCQUNoQkgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUNWQyxNQUFNLENBQUNKLGtCQUNQSyxJQUFJLENBQUM7WUFDUjtRQUNGO1lBQ0UsTUFBTSxxQkFBeUMsQ0FBekMsSUFBSUosTUFBTSxpQ0FBVjt1QkFBQTs0QkFBQTs4QkFBQTtZQUF3QztJQUNsRDtJQUVBLE9BQU87UUFBRUg7UUFBbUJFO0lBQWlCO0FBQy9DIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVyY2VwdGlvbi1yb3V0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplQXBwUGF0aCB9IGZyb20gJy4vYXBwLXBhdGhzJ1xuXG4vLyBvcmRlciBtYXR0ZXJzIGhlcmUsIHRoZSBmaXJzdCBtYXRjaCB3aWxsIGJlIHVzZWRcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyA9IFtcbiAgJyguLikoLi4pJyxcbiAgJyguKScsXG4gICcoLi4pJyxcbiAgJyguLi4pJyxcbl0gYXMgY29uc3RcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBUT0RPLUFQUDogYWRkIG1vcmUgc2VyaW91cyB2YWxpZGF0aW9uXG4gIHJldHVybiAoXG4gICAgcGF0aFxuICAgICAgLnNwbGl0KCcvJylcbiAgICAgIC5maW5kKChzZWdtZW50KSA9PlxuICAgICAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5maW5kKChtKSA9PiBzZWdtZW50LnN0YXJ0c1dpdGgobSkpXG4gICAgICApICE9PSB1bmRlZmluZWRcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24ocGF0aDogc3RyaW5nKSB7XG4gIGxldCBpbnRlcmNlcHRpbmdSb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG1hcmtlcjogKHR5cGVvZiBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUylbbnVtYmVyXSB8IHVuZGVmaW5lZCxcbiAgICBpbnRlcmNlcHRlZFJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcGF0aC5zcGxpdCgnLycpKSB7XG4gICAgbWFya2VyID0gSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSkgPT4gc2VnbWVudC5zdGFydHNXaXRoKG0pKVxuICAgIGlmIChtYXJrZXIpIHtcbiAgICAgIDtbaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGVdID0gcGF0aC5zcGxpdChtYXJrZXIsIDIpXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICghaW50ZXJjZXB0aW5nUm91dGUgfHwgIW1hcmtlciB8fCAhaW50ZXJjZXB0ZWRSb3V0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gTXVzdCBiZSBpbiB0aGUgZm9ybWF0IC88aW50ZXJjZXB0aW5nIHJvdXRlPi8oLi58Li4ufC4uKSguLikvPGludGVyY2VwdGVkIHJvdXRlPmBcbiAgICApXG4gIH1cblxuICBpbnRlcmNlcHRpbmdSb3V0ZSA9IG5vcm1hbGl6ZUFwcFBhdGgoaW50ZXJjZXB0aW5nUm91dGUpIC8vIG5vcm1hbGl6ZSB0aGUgcGF0aCwgZS5nLiAvKGJsb2cpL2ZlZWQgLT4gL2ZlZWRcblxuICBzd2l0Y2ggKG1hcmtlcikge1xuICAgIGNhc2UgJyguKSc6XG4gICAgICAvLyAoLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIHdpdGggc2libGluZyByb3V0ZXMsIHNvIHdlIGp1c3QgbmVlZCB0byBhcHBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlIHRvIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBgLyR7aW50ZXJjZXB0ZWRSb3V0ZX1gXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUgKyAnLycgKyBpbnRlcmNlcHRlZFJvdXRlXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIGNhc2UgJyguLiknOlxuICAgICAgLy8gKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgb25lIGxldmVsIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCBzZWdtZW50IG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwsIHVzZSAoLikgaW5zdGVhZC5gXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGludGVyY2VwdGVkUm91dGUgPSBpbnRlcmNlcHRpbmdSb3V0ZVxuICAgICAgICAuc3BsaXQoJy8nKVxuICAgICAgICAuc2xpY2UoMCwgLTEpXG4gICAgICAgIC5jb25jYXQoaW50ZXJjZXB0ZWRSb3V0ZSlcbiAgICAgICAgLmpvaW4oJy8nKVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4uKSc6XG4gICAgICAvLyAoLi4uKSB3aWxsIG1hdGNoIHRoZSByb3V0ZSBzZWdtZW50IGluIHRoZSByb290IGRpcmVjdG9yeSwgc28gd2UgbmVlZCB0byB1c2UgdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHByZXBlbmQgdGhlIGludGVyY2VwdGVkIHJvdXRlXG4gICAgICBpbnRlcmNlcHRlZFJvdXRlID0gJy8nICsgaW50ZXJjZXB0ZWRSb3V0ZVxuICAgICAgYnJlYWtcbiAgICBjYXNlICcoLi4pKC4uKSc6XG4gICAgICAvLyAoLi4pKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgdHdvIGxldmVscyB1cCwgc28gd2UgbmVlZCB0byByZW1vdmUgdGhlIGxhc3QgdHdvIHNlZ21lbnRzIG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcblxuICAgICAgY29uc3Qgc3BsaXRJbnRlcmNlcHRpbmdSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KCcvJylcbiAgICAgIGlmIChzcGxpdEludGVyY2VwdGluZ1JvdXRlLmxlbmd0aCA8PSAyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIENhbm5vdCB1c2UgKC4uKSguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsIG9yIG9uZSBsZXZlbCB1cC5gXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IHNwbGl0SW50ZXJjZXB0aW5nUm91dGVcbiAgICAgICAgLnNsaWNlKDAsIC0yKVxuICAgICAgICAuY29uY2F0KGludGVyY2VwdGVkUm91dGUpXG4gICAgICAgIC5qb2luKCcvJylcbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlcicpXG4gIH1cblxuICByZXR1cm4geyBpbnRlcmNlcHRpbmdSb3V0ZSwgaW50ZXJjZXB0ZWRSb3V0ZSB9XG59XG4iXSwibmFtZXMiOlsiSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoIiwicGF0aCIsInNwbGl0IiwiZmluZCIsInNlZ21lbnQiLCJtIiwic3RhcnRzV2l0aCIsInVuZGVmaW5lZCIsImludGVyY2VwdGluZ1JvdXRlIiwibWFya2VyIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsIkVycm9yIiwibm9ybWFsaXplQXBwUGF0aCIsInNsaWNlIiwiY29uY2F0Iiwiam9pbiIsInNwbGl0SW50ZXJjZXB0aW5nUm91dGUiLCJsZW5ndGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/interception-routes.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/is-bot.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTML_LIMITED_BOT_UA_RE: function() {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE;\n },\n HTML_LIMITED_BOT_UA_RE_STRING: function() {\n return HTML_LIMITED_BOT_UA_RE_STRING;\n },\n getBotType: function() {\n return getBotType;\n },\n isBot: function() {\n return isBot;\n }\n});\nconst _htmlbots = __webpack_require__(/*! ./html-bots */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/html-bots.js\");\n// Bot crawler that will spin up a headless browser and execute JS.\n// By default, only googlebots are considered as DOM bots. Blow is where the regex is computed from:\n// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers\nconst HEADLESS_BROWSER_BOT_UA_RE = /google/i;\nconst HTML_LIMITED_BOT_UA_RE_STRING = _htmlbots.HTML_LIMITED_BOT_UA_RE.source;\nfunction isDomBotUA(userAgent) {\n return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);\n}\nfunction isHtmlLimitedBotUA(userAgent) {\n return _htmlbots.HTML_LIMITED_BOT_UA_RE.test(userAgent);\n}\nfunction isBot(userAgent) {\n return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);\n}\nfunction getBotType(userAgent) {\n if (isDomBotUA(userAgent)) {\n return 'dom';\n }\n if (isHtmlLimitedBotUA(userAgent)) {\n return 'html';\n }\n return undefined;\n} //# sourceMappingURL=is-bot.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFTU0Esc0JBQXNCO2VBQXRCQSxVQUFBQSxzQkFBc0I7O0lBRmxCQyw2QkFBNkI7ZUFBN0JBOztJQWdCR0MsVUFBVTtlQUFWQTs7SUFKQUMsS0FBSztlQUFMQTs7O3NDQW5CdUI7QUFFdkMsbUVBQW1FO0FBQ25FLG9HQUFvRztBQUNwRyw0RkFBNEY7QUFDNUYsTUFBTUMsNkJBQTZCO0FBRTVCLE1BQU1ILGdDQUFnQ0QsVUFBQUEsc0JBQXNCLENBQUNLLE1BQU07QUFJMUUsU0FBU0MsV0FBV0MsU0FBaUI7SUFDbkMsT0FBT0gsMkJBQTJCSSxJQUFJLENBQUNEO0FBQ3pDO0FBRUEsU0FBU0UsbUJBQW1CRixTQUFpQjtJQUMzQyxPQUFPUCxVQUFBQSxzQkFBc0IsQ0FBQ1EsSUFBSSxDQUFDRDtBQUNyQztBQUVPLFNBQVNKLE1BQU1JLFNBQWlCO0lBQ3JDLE9BQU9ELFdBQVdDLGNBQWNFLG1CQUFtQkY7QUFDckQ7QUFFTyxTQUFTTCxXQUFXSyxTQUFpQjtJQUMxQyxJQUFJRCxXQUFXQyxZQUFZO1FBQ3pCLE9BQU87SUFDVDtJQUNBLElBQUlFLG1CQUFtQkYsWUFBWTtRQUNqQyxPQUFPO0lBQ1Q7SUFDQSxPQUFPRztBQUNUIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVE1MX0xJTUlURURfQk9UX1VBX1JFIH0gZnJvbSAnLi9odG1sLWJvdHMnXG5cbi8vIEJvdCBjcmF3bGVyIHRoYXQgd2lsbCBzcGluIHVwIGEgaGVhZGxlc3MgYnJvd3NlciBhbmQgZXhlY3V0ZSBKUy5cbi8vIEJ5IGRlZmF1bHQsIG9ubHkgZ29vZ2xlYm90cyBhcmUgY29uc2lkZXJlZCBhcyBET00gYm90cy4gQmxvdyBpcyB3aGVyZSB0aGUgcmVnZXggaXMgY29tcHV0ZWQgZnJvbTpcbi8vIHgtcmVmOiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9zZWFyY2gvZG9jcy9jcmF3bGluZy1pbmRleGluZy9nb29nbGUtY29tbW9uLWNyYXdsZXJzXG5jb25zdCBIRUFETEVTU19CUk9XU0VSX0JPVF9VQV9SRSA9IC9nb29nbGUvaVxuXG5leHBvcnQgY29uc3QgSFRNTF9MSU1JVEVEX0JPVF9VQV9SRV9TVFJJTkcgPSBIVE1MX0xJTUlURURfQk9UX1VBX1JFLnNvdXJjZVxuXG5leHBvcnQgeyBIVE1MX0xJTUlURURfQk9UX1VBX1JFIH1cblxuZnVuY3Rpb24gaXNEb21Cb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSEVBRExFU1NfQlJPV1NFUl9CT1RfVUFfUkUudGVzdCh1c2VyQWdlbnQpXG59XG5cbmZ1bmN0aW9uIGlzSHRtbExpbWl0ZWRCb3RVQSh1c2VyQWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gSFRNTF9MSU1JVEVEX0JPVF9VQV9SRS50ZXN0KHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQm90KHVzZXJBZ2VudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0RvbUJvdFVBKHVzZXJBZ2VudCkgfHwgaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdFR5cGUodXNlckFnZW50OiBzdHJpbmcpOiAnZG9tJyB8ICdodG1sJyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpc0RvbUJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2RvbSdcbiAgfVxuICBpZiAoaXNIdG1sTGltaXRlZEJvdFVBKHVzZXJBZ2VudCkpIHtcbiAgICByZXR1cm4gJ2h0bWwnXG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuIl0sIm5hbWVzIjpbIkhUTUxfTElNSVRFRF9CT1RfVUFfUkUiLCJIVE1MX0xJTUlURURfQk9UX1VBX1JFX1NUUklORyIsImdldEJvdFR5cGUiLCJpc0JvdCIsIkhFQURMRVNTX0JST1dTRVJfQk9UX1VBX1JFIiwic291cmNlIiwiaXNEb21Cb3RVQSIsInVzZXJBZ2VudCIsInRlc3QiLCJpc0h0bWxMaW1pdGVkQm90VUEiLCJ1bmRlZmluZWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-bot.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js":
/*!************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/is-local-url.js ***!
\************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isLocalURL\", ({\n enumerable: true,\n get: function() {\n return isLocalURL;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(ssr)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../../client/has-base-path */ \"(ssr)/./node_modules/next/dist/client/has-base-path.js\");\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (!(0, _utils.isAbsoluteUrl)(url)) return true;\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = (0, _utils.getLocationOrigin)();\n const resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && (0, _hasbasepath.hasBasePath)(resolved.pathname);\n } catch (_) {\n return false;\n }\n} //# sourceMappingURL=is-local-url.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWxvY2FsLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7OzhDQU1nQkE7OztlQUFBQTs7O21DQU5pQzt5Q0FDckI7QUFLckIsU0FBU0EsV0FBV0MsR0FBVztJQUNwQyxnRUFBZ0U7SUFDaEUsSUFBSSxDQUFDQyxDQUFBQSxHQUFBQSxPQUFBQSxhQUFBQSxFQUFjRCxNQUFNLE9BQU87SUFDaEMsSUFBSTtRQUNGLDREQUE0RDtRQUM1RCxNQUFNRSxpQkFBaUJDLENBQUFBLEdBQUFBLE9BQUFBLGlCQUFBQTtRQUN2QixNQUFNQyxXQUFXLElBQUlDLElBQUlMLEtBQUtFO1FBQzlCLE9BQU9FLFNBQVNFLE1BQU0sS0FBS0osa0JBQWtCSyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZSCxTQUFTSSxRQUFRO0lBQzVFLEVBQUUsT0FBT0MsR0FBRztRQUNWLE9BQU87SUFDVDtBQUNGIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWxvY2FsLXVybC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0Fic29sdXRlVXJsLCBnZXRMb2NhdGlvbk9yaWdpbiB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgaGFzQmFzZVBhdGggfSBmcm9tICcuLi8uLi8uLi8uLi9jbGllbnQvaGFzLWJhc2UtcGF0aCdcblxuLyoqXG4gKiBEZXRlY3RzIHdoZXRoZXIgYSBnaXZlbiB1cmwgaXMgcm91dGFibGUgYnkgdGhlIE5leHQuanMgcm91dGVyIChicm93c2VyIG9ubHkpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNMb2NhbFVSTCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBwcmV2ZW50IGEgaHlkcmF0aW9uIG1pc21hdGNoIG9uIGhyZWYgZm9yIHVybCB3aXRoIGFuY2hvciByZWZzXG4gIGlmICghaXNBYnNvbHV0ZVVybCh1cmwpKSByZXR1cm4gdHJ1ZVxuICB0cnkge1xuICAgIC8vIGFic29sdXRlIHVybHMgY2FuIGJlIGxvY2FsIGlmIHRoZXkgYXJlIG9uIHRoZSBzYW1lIG9yaWdpblxuICAgIGNvbnN0IGxvY2F0aW9uT3JpZ2luID0gZ2V0TG9jYXRpb25PcmlnaW4oKVxuICAgIGNvbnN0IHJlc29sdmVkID0gbmV3IFVSTCh1cmwsIGxvY2F0aW9uT3JpZ2luKVxuICAgIHJldHVybiByZXNvbHZlZC5vcmlnaW4gPT09IGxvY2F0aW9uT3JpZ2luICYmIGhhc0Jhc2VQYXRoKHJlc29sdmVkLnBhdGhuYW1lKVxuICB9IGNhdGNoIChfKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpc0xvY2FsVVJMIiwidXJsIiwiaXNBYnNvbHV0ZVVybCIsImxvY2F0aW9uT3JpZ2luIiwiZ2V0TG9jYXRpb25PcmlnaW4iLCJyZXNvbHZlZCIsIlVSTCIsIm9yaWdpbiIsImhhc0Jhc2VQYXRoIiwicGF0aG5hbWUiLCJfIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js":
/*!**********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/parse-path.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parsePath\", ({\n enumerable: true,\n get: function() {\n return parsePath;\n }\n}));\nfunction parsePath(path) {\n const hashIndex = path.indexOf('#');\n const queryIndex = path.indexOf('?');\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : ''\n };\n }\n return {\n pathname: path,\n query: '',\n hash: ''\n };\n} //# sourceMappingURL=parse-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGguanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQzs7Ozs2Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsVUFBVUMsSUFBWTtJQUNwQyxNQUFNQyxZQUFZRCxLQUFLRSxPQUFPLENBQUM7SUFDL0IsTUFBTUMsYUFBYUgsS0FBS0UsT0FBTyxDQUFDO0lBQ2hDLE1BQU1FLFdBQVdELGFBQWEsQ0FBQyxLQUFNRixDQUFBQSxZQUFZLEtBQUtFLGFBQWFGLFNBQUFBLENBQVE7SUFFM0UsSUFBSUcsWUFBWUgsWUFBWSxDQUFDLEdBQUc7UUFDOUIsT0FBTztZQUNMSSxVQUFVTCxLQUFLTSxTQUFTLENBQUMsR0FBR0YsV0FBV0QsYUFBYUY7WUFDcERNLE9BQU9ILFdBQ0hKLEtBQUtNLFNBQVMsQ0FBQ0gsWUFBWUYsWUFBWSxDQUFDLElBQUlBLFlBQVlPLGFBQ3hEO1lBQ0pDLE1BQU1SLFlBQVksQ0FBQyxJQUFJRCxLQUFLVSxLQUFLLENBQUNULGFBQWE7UUFDakQ7SUFDRjtJQUVBLE9BQU87UUFBRUksVUFBVUw7UUFBTU8sT0FBTztRQUFJRSxNQUFNO0lBQUc7QUFDL0MiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdpdmVuIGEgcGF0aCB0aGlzIGZ1bmN0aW9uIHdpbGwgZmluZCB0aGUgcGF0aG5hbWUsIHF1ZXJ5IGFuZCBoYXNoIGFuZCByZXR1cm5cbiAqIHRoZW0uIFRoaXMgaXMgdXNlZnVsIHRvIHBhcnNlIGZ1bGwgcGF0aHMgb24gdGhlIGNsaWVudCBzaWRlLlxuICogQHBhcmFtIHBhdGggQSBwYXRoIHRvIHBhcnNlIGUuZy4gL2Zvby9iYXI/aWQ9MSNoYXNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVBhdGgocGF0aDogc3RyaW5nKSB7XG4gIGNvbnN0IGhhc2hJbmRleCA9IHBhdGguaW5kZXhPZignIycpXG4gIGNvbnN0IHF1ZXJ5SW5kZXggPSBwYXRoLmluZGV4T2YoJz8nKVxuICBjb25zdCBoYXNRdWVyeSA9IHF1ZXJ5SW5kZXggPiAtMSAmJiAoaGFzaEluZGV4IDwgMCB8fCBxdWVyeUluZGV4IDwgaGFzaEluZGV4KVxuXG4gIGlmIChoYXNRdWVyeSB8fCBoYXNoSW5kZXggPiAtMSkge1xuICAgIHJldHVybiB7XG4gICAgICBwYXRobmFtZTogcGF0aC5zdWJzdHJpbmcoMCwgaGFzUXVlcnkgPyBxdWVyeUluZGV4IDogaGFzaEluZGV4KSxcbiAgICAgIHF1ZXJ5OiBoYXNRdWVyeVxuICAgICAgICA/IHBhdGguc3Vic3RyaW5nKHF1ZXJ5SW5kZXgsIGhhc2hJbmRleCA+IC0xID8gaGFzaEluZGV4IDogdW5kZWZpbmVkKVxuICAgICAgICA6ICcnLFxuICAgICAgaGFzaDogaGFzaEluZGV4ID4gLTEgPyBwYXRoLnNsaWNlKGhhc2hJbmRleCkgOiAnJyxcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBwYXRobmFtZTogcGF0aCwgcXVlcnk6ICcnLCBoYXNoOiAnJyB9XG59XG4iXSwibmFtZXMiOlsicGFyc2VQYXRoIiwicGF0aCIsImhhc2hJbmRleCIsImluZGV4T2YiLCJxdWVyeUluZGV4IiwiaGFzUXVlcnkiLCJwYXRobmFtZSIsInN1YnN0cmluZyIsInF1ZXJ5IiwidW5kZWZpbmVkIiwiaGFzaCIsInNsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js":
/*!***************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js ***!
\***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pathHasPrefix\", ({\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"(ssr)/./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = (0, _parsepath.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + '/');\n} //# sourceMappingURL=path-has-prefix.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQVNnQkE7OztlQUFBQTs7O3VDQVRVO0FBU25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBYztJQUN4RCxJQUFJLE9BQU9ELFNBQVMsVUFBVTtRQUM1QixPQUFPO0lBQ1Q7SUFFQSxNQUFNLEVBQUVFLFFBQVEsRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVSDtJQUMvQixPQUFPRSxhQUFhRCxVQUFVQyxTQUFTRSxVQUFVLENBQUNILFNBQVM7QUFDN0QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGF0aC1oYXMtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlUGF0aCB9IGZyb20gJy4vcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiBwYXRoIHN0YXJ0cyB3aXRoIGEgZ2l2ZW4gcHJlZml4LiBJdCBlbnN1cmVzIGl0IG1hdGNoZXNcbiAqIGV4YWN0bHkgd2l0aG91dCBjb250YWluaW5nIGV4dHJhIGNoYXJzLiBlLmcuIHByZWZpeCAvZG9jcyBzaG91bGQgcmVwbGFjZVxuICogZm9yIC9kb2NzLCAvZG9jcy8sIC9kb2NzL2EgYnV0IG5vdCAvZG9jc3NzXG4gKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCB0byBjaGVjay5cbiAqIEBwYXJhbSBwcmVmaXggVGhlIHByZWZpeCB0byBjaGVjayBhZ2FpbnN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aEhhc1ByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHsgcGF0aG5hbWUgfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gcGF0aG5hbWUgPT09IHByZWZpeCB8fCBwYXRobmFtZS5zdGFydHNXaXRoKHByZWZpeCArICcvJylcbn1cbiJdLCJuYW1lcyI6WyJwYXRoSGFzUHJlZml4IiwicGF0aCIsInByZWZpeCIsInBhdGhuYW1lIiwicGFyc2VQYXRoIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/querystring.js":
/*!***********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n for (const [key, value] of searchParams.entries()){\n const existing = query[key];\n if (typeof existing === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(existing)) {\n existing.push(value);\n } else {\n query[key] = [\n existing,\n value\n ];\n }\n }\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string') {\n return param;\n }\n if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nfunction urlQueryToSearchParams(query) {\n const searchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query)){\n if (Array.isArray(value)) {\n for (const item of value){\n searchParams.append(key, stringifyUrlQueryParam(item));\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value));\n }\n }\n return searchParams;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n for (const searchParams of searchParamsList){\n for (const key of searchParams.keys()){\n target.delete(key);\n }\n for (const [key, value] of searchParams.entries()){\n target.append(key, value);\n }\n }\n return target;\n} //# sourceMappingURL=querystring.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdEZ0JBLE1BQU07ZUFBTkE7O0lBOUNBQyxzQkFBc0I7ZUFBdEJBOztJQWdDQUMsc0JBQXNCO2VBQXRCQTs7O0FBaENULFNBQVNELHVCQUNkRSxZQUE2QjtJQUU3QixNQUFNQyxRQUF3QixDQUFDO0lBQy9CLEtBQUssTUFBTSxDQUFDQyxLQUFLQyxNQUFNLElBQUlILGFBQWFJLE9BQU8sR0FBSTtRQUNqRCxNQUFNQyxXQUFXSixLQUFLLENBQUNDLElBQUk7UUFDM0IsSUFBSSxPQUFPRyxhQUFhLGFBQWE7WUFDbkNKLEtBQUssQ0FBQ0MsSUFBSSxHQUFHQztRQUNmLE9BQU8sSUFBSUcsTUFBTUMsT0FBTyxDQUFDRixXQUFXO1lBQ2xDQSxTQUFTRyxJQUFJLENBQUNMO1FBQ2hCLE9BQU87WUFDTEYsS0FBSyxDQUFDQyxJQUFJLEdBQUc7Z0JBQUNHO2dCQUFVRjthQUFNO1FBQ2hDO0lBQ0Y7SUFDQSxPQUFPRjtBQUNUO0FBRUEsU0FBU1EsdUJBQXVCQyxLQUFjO0lBQzVDLElBQUksT0FBT0EsVUFBVSxVQUFVO1FBQzdCLE9BQU9BO0lBQ1Q7SUFFQSxJQUNHLE9BQU9BLFVBQVUsWUFBWSxDQUFDQyxNQUFNRCxVQUNyQyxPQUFPQSxVQUFVLFdBQ2pCO1FBQ0EsT0FBT0UsT0FBT0Y7SUFDaEIsT0FBTztRQUNMLE9BQU87SUFDVDtBQUNGO0FBRU8sU0FBU1gsdUJBQXVCRSxLQUFxQjtJQUMxRCxNQUFNRCxlQUFlLElBQUlhO0lBQ3pCLEtBQUssTUFBTSxDQUFDWCxLQUFLQyxNQUFNLElBQUlXLE9BQU9WLE9BQU8sQ0FBQ0gsT0FBUTtRQUNoRCxJQUFJSyxNQUFNQyxPQUFPLENBQUNKLFFBQVE7WUFDeEIsS0FBSyxNQUFNWSxRQUFRWixNQUFPO2dCQUN4QkgsYUFBYWdCLE1BQU0sQ0FBQ2QsS0FBS08sdUJBQXVCTTtZQUNsRDtRQUNGLE9BQU87WUFDTGYsYUFBYWlCLEdBQUcsQ0FBQ2YsS0FBS08sdUJBQXVCTjtRQUMvQztJQUNGO0lBQ0EsT0FBT0g7QUFDVDtBQUVPLFNBQVNILE9BQ2RxQixNQUF1QjtJQUN2QixpQ0FBR0MsbUJBQUg7UUFBR0EsZ0JBQUFBLENBQUgsMkJBQXNDOztJQUV0QyxLQUFLLE1BQU1uQixnQkFBZ0JtQixpQkFBa0I7UUFDM0MsS0FBSyxNQUFNakIsT0FBT0YsYUFBYW9CLElBQUksR0FBSTtZQUNyQ0YsT0FBT0csTUFBTSxDQUFDbkI7UUFDaEI7UUFFQSxLQUFLLE1BQU0sQ0FBQ0EsS0FBS0MsTUFBTSxJQUFJSCxhQUFhSSxPQUFPLEdBQUk7WUFDakRjLE9BQU9GLE1BQU0sQ0FBQ2QsS0FBS0M7UUFDckI7SUFDRjtJQUVBLE9BQU9lO0FBQ1QiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuXG5leHBvcnQgZnVuY3Rpb24gc2VhcmNoUGFyYW1zVG9VcmxRdWVyeShcbiAgc2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXNcbik6IFBhcnNlZFVybFF1ZXJ5IHtcbiAgY29uc3QgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5ID0ge31cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2Ygc2VhcmNoUGFyYW1zLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gcXVlcnlba2V5XVxuICAgIGlmICh0eXBlb2YgZXhpc3RpbmcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBxdWVyeVtrZXldID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpKSB7XG4gICAgICBleGlzdGluZy5wdXNoKHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBxdWVyeVtrZXldID0gW2V4aXN0aW5nLCB2YWx1ZV1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHF1ZXJ5XG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0ocGFyYW06IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHBhcmFtID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXJhbVxuICB9XG5cbiAgaWYgKFxuICAgICh0eXBlb2YgcGFyYW0gPT09ICdudW1iZXInICYmICFpc05hTihwYXJhbSkpIHx8XG4gICAgdHlwZW9mIHBhcmFtID09PSAnYm9vbGVhbidcbiAgKSB7XG4gICAgcmV0dXJuIFN0cmluZyhwYXJhbSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gJydcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhxdWVyeTogUGFyc2VkVXJsUXVlcnkpOiBVUkxTZWFyY2hQYXJhbXMge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocXVlcnkpKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdmFsdWUpIHtcbiAgICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0oaXRlbSkpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlYXJjaFBhcmFtcy5zZXQoa2V5LCBzdHJpbmdpZnlVcmxRdWVyeVBhcmFtKHZhbHVlKSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNlYXJjaFBhcmFtc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduKFxuICB0YXJnZXQ6IFVSTFNlYXJjaFBhcmFtcyxcbiAgLi4uc2VhcmNoUGFyYW1zTGlzdDogVVJMU2VhcmNoUGFyYW1zW11cbik6IFVSTFNlYXJjaFBhcmFtcyB7XG4gIGZvciAoY29uc3Qgc2VhcmNoUGFyYW1zIG9mIHNlYXJjaFBhcmFtc0xpc3QpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBzZWFyY2hQYXJhbXMua2V5cygpKSB7XG4gICAgICB0YXJnZXQuZGVsZXRlKGtleSlcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBzZWFyY2hQYXJhbXMuZW50cmllcygpKSB7XG4gICAgICB0YXJnZXQuYXBwZW5kKGtleSwgdmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldFxufVxuIl0sIm5hbWVzIjpbImFzc2lnbiIsInNlYXJjaFBhcmFtc1RvVXJsUXVlcnkiLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJrZXkiLCJ2YWx1ZSIsImVudHJpZXMiLCJleGlzdGluZyIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJzdHJpbmdpZnlVcmxRdWVyeVBhcmFtIiwicGFyYW0iLCJpc05hTiIsIlN0cmluZyIsIlVSTFNlYXJjaFBhcmFtcyIsIk9iamVjdCIsIml0ZW0iLCJhcHBlbmQiLCJzZXQiLCJ0YXJnZXQiLCJzZWFyY2hQYXJhbXNMaXN0Iiwia2V5cyIsImRlbGV0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js":
/*!*********************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js ***!
\*********************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n}));\nfunction removeTrailingSlash(route) {\n return route.replace(/\\/$/, '') || '/';\n} //# sourceMappingURL=remove-trailing-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0NBTUM7Ozs7dURBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUFvQkMsS0FBYTtJQUMvQyxPQUFPQSxNQUFNQyxPQUFPLENBQUMsT0FBTyxPQUFPO0FBQ3JDIiwic291cmNlcyI6WyIvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIHNsYXNoIGZvciBhIGdpdmVuIHJvdXRlIG9yIHBhZ2UgcGF0aC4gUHJlc2VydmVzIHRoZVxuICogcm9vdCBwYWdlLiBFeGFtcGxlczpcbiAqICAgLSBgL2Zvby9iYXIvYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9mb28vYmFyYCAtPiBgL2Zvby9iYXJgXG4gKiAgIC0gYC9gIC0+IGAvYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVHJhaWxpbmdTbGFzaChyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiByb3V0ZS5yZXBsYWNlKC9cXC8kLywgJycpIHx8ICcvJ1xufVxuIl0sIm5hbWVzIjpbInJlbW92ZVRyYWlsaW5nU2xhc2giLCJyb3V0ZSIsInJlcGxhY2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/segment.js":
/*!******************************************************!*\
!*** ./node_modules/next/dist/shared/lib/segment.js ***!
\******************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nconst PAGE_SEGMENT_KEY = '__PAGE__';\nconst DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLG1CQUFtQjtlQUFuQkE7O0lBREFDLGdCQUFnQjtlQUFoQkE7O0lBaEJHQyw0QkFBNEI7ZUFBNUJBOztJQVRBQyxjQUFjO2VBQWRBOztJQUtBQyxzQkFBc0I7ZUFBdEJBOzs7QUFMVCxTQUFTRCxlQUFlRSxPQUFlO0lBQzVDLHNDQUFzQztJQUN0QyxPQUFPQSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFDLFFBQVEsQ0FBQztBQUNoRDtBQUVPLFNBQVNGLHVCQUF1QkMsT0FBZTtJQUNwRCxPQUFPQSxRQUFRRSxVQUFVLENBQUMsUUFBUUYsWUFBWTtBQUNoRDtBQUVPLFNBQVNILDZCQUNkRyxPQUFnQixFQUNoQkcsWUFBMkQ7SUFFM0QsTUFBTUMsZ0JBQWdCSixRQUFRSyxRQUFRLENBQUNUO0lBRXZDLElBQUlRLGVBQWU7UUFDakIsTUFBTUUsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNMO1FBQ3hDLE9BQU9HLHFCQUFxQixPQUN4QlYsbUJBQW1CLE1BQU1VLG1CQUN6QlY7SUFDTjtJQUVBLE9BQU9JO0FBQ1Q7QUFFTyxNQUFNSixtQkFBbUI7QUFDekIsTUFBTUQsc0JBQXNCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9zZWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFsbGVsUm91dGVTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICByZXR1cm4gc2VnbWVudC5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudCAhPT0gJ0BjaGlsZHJlbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pIHtcbiAgY29uc3QgaXNQYWdlU2VnbWVudCA9IHNlZ21lbnQuaW5jbHVkZXMoUEFHRV9TRUdNRU5UX0tFWSlcblxuICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShzZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09ICd7fSdcbiAgICAgID8gUEFHRV9TRUdNRU5UX0tFWSArICc/JyArIHN0cmluZ2lmaWVkUXVlcnlcbiAgICAgIDogUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSAnX19QQUdFX18nXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9ICdfX0RFRkFVTFRfXydcbiJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwiUEFHRV9TRUdNRU5UX0tFWSIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJpc0dyb3VwU2VnbWVudCIsImlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2VhcmNoUGFyYW1zIiwiaXNQYWdlU2VnbWVudCIsImluY2x1ZGVzIiwic3RyaW5naWZpZWRRdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/segment.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/server-reference-info.js":
/*!********************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/server-reference-info.js ***!
\********************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n extractInfoFromServerReferenceId: function() {\n return extractInfoFromServerReferenceId;\n },\n omitUnusedArgs: function() {\n return omitUnusedArgs;\n }\n});\nfunction extractInfoFromServerReferenceId(id) {\n const infoByte = parseInt(id.slice(0, 2), 16);\n const typeBit = infoByte >> 7 & 0x1;\n const argMask = infoByte >> 1 & 0x3f;\n const restArgs = infoByte & 0x1;\n const usedArgs = Array(6);\n for(let index = 0; index < 6; index++){\n const bitPosition = 5 - index;\n const bit = argMask >> bitPosition & 0x1;\n usedArgs[index] = bit === 1;\n }\n return {\n type: typeBit === 1 ? 'use-cache' : 'server-action',\n usedArgs: usedArgs,\n hasRestArgs: restArgs === 1\n };\n}\nfunction omitUnusedArgs(args, info) {\n const filteredArgs = new Array(args.length);\n for(let index = 0; index < args.length; index++){\n if (index < 6 && info.usedArgs[index] || // This assumes that the server reference info byte has the restArgs bit\n // set to 1 if there are more than 6 args.\n index >= 6 && info.hasRestArgs) {\n filteredArgs[index] = args[index];\n }\n }\n return filteredArgs;\n} //# sourceMappingURL=server-reference-info.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VydmVyLXJlZmVyZW5jZS1pbmZvLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTBCZ0JBLGdDQUFnQztlQUFoQ0E7O0lBaUNBQyxjQUFjO2VBQWRBOzs7QUFqQ1QsU0FBU0QsaUNBQ2RFLEVBQVU7SUFFVixNQUFNQyxXQUFXQyxTQUFTRixHQUFHRyxLQUFLLENBQUMsR0FBRyxJQUFJO0lBQzFDLE1BQU1DLFVBQVdILFlBQVksSUFBSztJQUNsQyxNQUFNSSxVQUFXSixZQUFZLElBQUs7SUFDbEMsTUFBTUssV0FBV0wsV0FBVztJQUM1QixNQUFNTSxXQUFXQyxNQUFNO0lBRXZCLElBQUssSUFBSUMsUUFBUSxHQUFHQSxRQUFRLEdBQUdBLFFBQVM7UUFDdEMsTUFBTUMsY0FBYyxJQUFJRDtRQUN4QixNQUFNRSxNQUFPTixXQUFXSyxjQUFlO1FBQ3ZDSCxRQUFRLENBQUNFLE1BQU0sR0FBR0UsUUFBUTtJQUM1QjtJQUVBLE9BQU87UUFDTEMsTUFBTVIsWUFBWSxJQUFJLGNBQWM7UUFDcENHLFVBQVVBO1FBUVZNLGFBQWFQLGFBQWE7SUFDNUI7QUFDRjtBQU1PLFNBQVNQLGVBQ2RlLElBQWUsRUFDZkMsSUFBeUI7SUFFekIsTUFBTUMsZUFBZSxJQUFJUixNQUFNTSxLQUFLRyxNQUFNO0lBRTFDLElBQUssSUFBSVIsUUFBUSxHQUFHQSxRQUFRSyxLQUFLRyxNQUFNLEVBQUVSLFFBQVM7UUFDaEQsSUFDR0EsUUFBUSxLQUFLTSxLQUFLUixRQUFRLENBQUNFLE1BQU0sSUFDbEMsd0VBQXdFO1FBQ3hFLDBDQUEwQztRQUN6Q0EsU0FBUyxLQUFLTSxLQUFLRixXQUFXLEVBQy9CO1lBQ0FHLFlBQVksQ0FBQ1AsTUFBTSxHQUFHSyxJQUFJLENBQUNMLE1BQU07UUFDbkM7SUFDRjtJQUVBLE9BQU9PO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9zaGFyZWQvbGliL3NlcnZlci1yZWZlcmVuY2UtaW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNlcnZlclJlZmVyZW5jZUluZm8ge1xuICB0eXBlOiAnc2VydmVyLWFjdGlvbicgfCAndXNlLWNhY2hlJ1xuICB1c2VkQXJnczogW2Jvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW4sIGJvb2xlYW5dXG4gIGhhc1Jlc3RBcmdzOiBib29sZWFuXG59XG5cbi8qKlxuICogRXh0cmFjdHMgaW5mbyBhYm91dCB0aGUgc2VydmVyIHJlZmVyZW5jZSBmb3IgdGhlIGdpdmVuIHNlcnZlciByZWZlcmVuY2UgSUQgYnlcbiAqIHBhcnNpbmcgdGhlIGZpcnN0IGJ5dGUgb2YgdGhlIGhleC1lbmNvZGVkIElELlxuICpcbiAqIGBgYFxuICogQml0IHBvc2l0aW9uczogWzddICAgICAgWzZdIFs1XSBbNF0gWzNdIFsyXSBbMV0gIFswXVxuICogQml0czogICAgICAgICAgdHlwZUJpdCAgYXJnTWFzayAgICAgICAgICAgICAgICAgIHJlc3RBcmdzXG4gKiBgYGBcbiAqXG4gKiBJZiB0aGUgYHR5cGVCaXRgIGlzIGAxYCB0aGUgc2VydmVyIHJlZmVyZW5jZSByZXByZXNlbnRzIGEgYFwidXNlIGNhY2hlXCJgXG4gKiBmdW5jdGlvbiwgb3RoZXJ3aXNlIGEgc2VydmVyIGFjdGlvbi5cbiAqXG4gKiBUaGUgYGFyZ01hc2tgIGVuY29kZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gdXNlcyB0aGUgYXJndW1lbnQgYXQgdGhlXG4gKiByZXNwZWN0aXZlIHBvc2l0aW9uLlxuICpcbiAqIFRoZSBgcmVzdEFyZ3NgIGJpdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gdXNlcyBhIHJlc3QgcGFyYW1ldGVyLiBJdCdzXG4gKiBhbHNvIHNldCB0byAxIGlmIHRoZSBmdW5jdGlvbiBoYXMgbW9yZSB0aGFuIDYgYXJncy5cbiAqXG4gKiBAcGFyYW0gaWQgaGV4LWVuY29kZWQgc2VydmVyIHJlZmVyZW5jZSBJRFxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEluZm9Gcm9tU2VydmVyUmVmZXJlbmNlSWQoXG4gIGlkOiBzdHJpbmdcbik6IFNlcnZlclJlZmVyZW5jZUluZm8ge1xuICBjb25zdCBpbmZvQnl0ZSA9IHBhcnNlSW50KGlkLnNsaWNlKDAsIDIpLCAxNilcbiAgY29uc3QgdHlwZUJpdCA9IChpbmZvQnl0ZSA+PiA3KSAmIDB4MVxuICBjb25zdCBhcmdNYXNrID0gKGluZm9CeXRlID4+IDEpICYgMHgzZlxuICBjb25zdCByZXN0QXJncyA9IGluZm9CeXRlICYgMHgxXG4gIGNvbnN0IHVzZWRBcmdzID0gQXJyYXkoNilcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgNjsgaW5kZXgrKykge1xuICAgIGNvbnN0IGJpdFBvc2l0aW9uID0gNSAtIGluZGV4XG4gICAgY29uc3QgYml0ID0gKGFyZ01hc2sgPj4gYml0UG9zaXRpb24pICYgMHgxXG4gICAgdXNlZEFyZ3NbaW5kZXhdID0gYml0ID09PSAxXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHR5cGU6IHR5cGVCaXQgPT09IDEgPyAndXNlLWNhY2hlJyA6ICdzZXJ2ZXItYWN0aW9uJyxcbiAgICB1c2VkQXJnczogdXNlZEFyZ3MgYXMgW1xuICAgICAgYm9vbGVhbixcbiAgICAgIGJvb2xlYW4sXG4gICAgICBib29sZWFuLFxuICAgICAgYm9vbGVhbixcbiAgICAgIGJvb2xlYW4sXG4gICAgICBib29sZWFuLFxuICAgIF0sXG4gICAgaGFzUmVzdEFyZ3M6IHJlc3RBcmdzID09PSAxLFxuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHNwYXJzZSBhcnJheSBjb250YWluaW5nIG9ubHkgdGhlIHVzZWQgYXJndW1lbnRzIGJhc2VkIG9uIHRoZVxuICogcHJvdmlkZWQgYWN0aW9uIGluZm8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvbWl0VW51c2VkQXJncyhcbiAgYXJnczogdW5rbm93bltdLFxuICBpbmZvOiBTZXJ2ZXJSZWZlcmVuY2VJbmZvXG4pOiB1bmtub3duW10ge1xuICBjb25zdCBmaWx0ZXJlZEFyZ3MgPSBuZXcgQXJyYXkoYXJncy5sZW5ndGgpXG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFyZ3MubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgaWYgKFxuICAgICAgKGluZGV4IDwgNiAmJiBpbmZvLnVzZWRBcmdzW2luZGV4XSkgfHxcbiAgICAgIC8vIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSBzZXJ2ZXIgcmVmZXJlbmNlIGluZm8gYnl0ZSBoYXMgdGhlIHJlc3RBcmdzIGJpdFxuICAgICAgLy8gc2V0IHRvIDEgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiA2IGFyZ3MuXG4gICAgICAoaW5kZXggPj0gNiAmJiBpbmZvLmhhc1Jlc3RBcmdzKVxuICAgICkge1xuICAgICAgZmlsdGVyZWRBcmdzW2luZGV4XSA9IGFyZ3NbaW5kZXhdXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZpbHRlcmVkQXJnc1xufVxuIl0sIm5hbWVzIjpbImV4dHJhY3RJbmZvRnJvbVNlcnZlclJlZmVyZW5jZUlkIiwib21pdFVudXNlZEFyZ3MiLCJpZCIsImluZm9CeXRlIiwicGFyc2VJbnQiLCJzbGljZSIsInR5cGVCaXQiLCJhcmdNYXNrIiwicmVzdEFyZ3MiLCJ1c2VkQXJncyIsIkFycmF5IiwiaW5kZXgiLCJiaXRQb3NpdGlvbiIsImJpdCIsInR5cGUiLCJoYXNSZXN0QXJncyIsImFyZ3MiLCJpbmZvIiwiZmlsdGVyZWRBcmdzIiwibGVuZ3RoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/server-reference-info.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/side-effect.js":
/*!**********************************************************!*\
!*** ./node_modules/next/dist/shared/lib/side-effect.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return SideEffect;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\nconst isServer = \"undefined\" === 'undefined';\nconst useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect;\nconst useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect;\nfunction SideEffect(props) {\n const { headManager, reduceComponentsToState } = props;\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean));\n headManager.updateHead(reduceComponentsToState(headElements, props));\n }\n }\n if (isServer) {\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n emitChange();\n }\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.delete(props.children);\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n useClientOnlyEffect({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n return ({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n }\n })[\"SideEffect.useClientOnlyEffect\"];\n }\n }[\"SideEffect.useClientOnlyEffect\"]);\n return null;\n} //# sourceMappingURL=side-effect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FvQkE7OztlQUF3QkE7OzttQ0FuQnVDO0FBZS9ELE1BQU1DLFdBQVcsT0FBT0MsU0FBVztBQUNuQyxNQUFNQyw0QkFBNEJGLFdBQVcsS0FBTyxJQUFJRyxPQUFBQSxlQUFlO0FBQ3ZFLE1BQU1DLHNCQUFzQkosV0FBVyxLQUFPLElBQUlLLE9BQUFBLFNBQVM7QUFFNUMsU0FBU04sV0FBV08sS0FBc0I7SUFDdkQsTUFBTSxFQUFFQyxXQUFXLEVBQUVDLHVCQUF1QixFQUFFLEdBQUdGO0lBRWpELFNBQVNHO1FBQ1AsSUFBSUYsZUFBZUEsWUFBWUcsZ0JBQWdCLEVBQUU7WUFDL0MsTUFBTUMsZUFBZUMsT0FBQUEsUUFBUSxDQUFDQyxPQUFPLENBQ25DQyxNQUFNQyxJQUFJLENBQUNSLFlBQVlHLGdCQUFnQixFQUEwQk0sTUFBTSxDQUNyRUM7WUFHSlYsWUFBWVcsVUFBVSxDQUFDVix3QkFBd0JHLGNBQWNMO1FBQy9EO0lBQ0Y7SUFFQSxJQUFJTixVQUFVO1lBQ1pPO1FBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLGlDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JZLEdBQUcsQ0FBQ2IsTUFBTWMsUUFBUTtRQUNqRFg7SUFDRjtJQUVBUDtnREFBMEI7Z0JBQ3hCSztZQUFBQSxlQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxnQ0FBQUEsWUFBYUcsZ0JBQUFBLEtBQWdCLGdCQUE3QkgsOEJBQStCWSxHQUFHLENBQUNiLE1BQU1jLFFBQVE7WUFDakQ7d0RBQU87d0JBQ0xiO29CQUFBQSxlQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxnQ0FBQUEsWUFBYUcsZ0JBQUFBLEtBQWdCLGdCQUE3QkgsOEJBQStCYyxNQUFNLENBQUNmLE1BQU1jLFFBQVE7Z0JBQ3REOztRQUNGOztJQUVBLGtGQUFrRjtJQUNsRixvRkFBb0Y7SUFDcEYsZ0VBQWdFO0lBQ2hFLHFGQUFxRjtJQUNyRixtRkFBbUY7SUFDbkZsQjtnREFBMEI7WUFDeEIsSUFBSUssYUFBYTtnQkFDZkEsWUFBWWUsY0FBYyxHQUFHYjtZQUMvQjtZQUNBO3dEQUFPO29CQUNMLElBQUlGLGFBQWE7d0JBQ2ZBLFlBQVllLGNBQWMsR0FBR2I7b0JBQy9CO2dCQUNGOztRQUNGOztJQUVBTDswQ0FBb0I7WUFDbEIsSUFBSUcsZUFBZUEsWUFBWWUsY0FBYyxFQUFFO2dCQUM3Q2YsWUFBWWUsY0FBYztnQkFDMUJmLFlBQVllLGNBQWMsR0FBRztZQUMvQjtZQUNBO2tEQUFPO29CQUNMLElBQUlmLGVBQWVBLFlBQVllLGNBQWMsRUFBRTt3QkFDN0NmLFlBQVllLGNBQWM7d0JBQzFCZixZQUFZZSxjQUFjLEdBQUc7b0JBQy9CO2dCQUNGOztRQUNGOztJQUVBLE9BQU87QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvc2lkZS1lZmZlY3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hpbGRyZW4sIHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0LCB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuXG50eXBlIFN0YXRlID0gSlNYLkVsZW1lbnRbXSB8IHVuZGVmaW5lZFxuXG5leHBvcnQgdHlwZSBTaWRlRWZmZWN0UHJvcHMgPSB7XG4gIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiA8VCBleHRlbmRzIHt9PihcbiAgICBjb21wb25lbnRzOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gICAgcHJvcHM6IFRcbiAgKSA9PiBTdGF0ZVxuICBoYW5kbGVTdGF0ZUNoYW5nZT86IChzdGF0ZTogU3RhdGUpID0+IHZvaWRcbiAgaGVhZE1hbmFnZXI6IGFueVxuICBpbkFtcE1vZGU/OiBib29sZWFuXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn1cblxuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJ1xuY29uc3QgdXNlQ2xpZW50T25seUxheW91dEVmZmVjdCA9IGlzU2VydmVyID8gKCkgPT4ge30gOiB1c2VMYXlvdXRFZmZlY3RcbmNvbnN0IHVzZUNsaWVudE9ubHlFZmZlY3QgPSBpc1NlcnZlciA/ICgpID0+IHt9IDogdXNlRWZmZWN0XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNpZGVFZmZlY3QocHJvcHM6IFNpZGVFZmZlY3RQcm9wcykge1xuICBjb25zdCB7IGhlYWRNYW5hZ2VyLCByZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSB9ID0gcHJvcHNcblxuICBmdW5jdGlvbiBlbWl0Q2hhbmdlKCkge1xuICAgIGlmIChoZWFkTWFuYWdlciAmJiBoZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzKSB7XG4gICAgICBjb25zdCBoZWFkRWxlbWVudHMgPSBDaGlsZHJlbi50b0FycmF5KFxuICAgICAgICBBcnJheS5mcm9tKGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMgYXMgU2V0PFJlYWN0LlJlYWN0Tm9kZT4pLmZpbHRlcihcbiAgICAgICAgICBCb29sZWFuXG4gICAgICAgIClcbiAgICAgICkgYXMgUmVhY3QuUmVhY3RFbGVtZW50W11cbiAgICAgIGhlYWRNYW5hZ2VyLnVwZGF0ZUhlYWQocmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoaGVhZEVsZW1lbnRzLCBwcm9wcykpXG4gICAgfVxuICB9XG5cbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmFkZChwcm9wcy5jaGlsZHJlbilcbiAgICBlbWl0Q2hhbmdlKClcbiAgfVxuXG4gIHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGhlYWRNYW5hZ2VyPy5tb3VudGVkSW5zdGFuY2VzPy5hZGQocHJvcHMuY2hpbGRyZW4pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGhlYWRNYW5hZ2VyPy5tb3VudGVkSW5zdGFuY2VzPy5kZWxldGUocHJvcHMuY2hpbGRyZW4pXG4gICAgfVxuICB9KVxuXG4gIC8vIFdlIG5lZWQgdG8gY2FsbCBgdXBkYXRlSGVhZGAgbWV0aG9kIHdoZW5ldmVyIHRoZSBgU2lkZUVmZmVjdGAgaXMgdHJpZ2dlciBpbiBhbGxcbiAgLy8gbGlmZS1jeWNsZXM6IG1vdW50LCB1cGRhdGUsIHVubW91bnQuIEhvd2V2ZXIsIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBgU2lkZUVmZmVjdGBzXG4gIC8vIGJlaW5nIHJlbmRlcmVkLCB3ZSBvbmx5IHRyaWdnZXIgdGhlIG1ldGhvZCBmcm9tIHRoZSBsYXN0IG9uZS5cbiAgLy8gVGhpcyBpcyBlbnN1cmVkIGJ5IGtlZXBpbmcgdGhlIGxhc3QgdW5mbHVzaGVkIGB1cGRhdGVIZWFkYCBpbiB0aGUgYF9wZW5kaW5nVXBkYXRlYFxuICAvLyBzaW5nbGV0b24gaW4gdGhlIGxheW91dCBlZmZlY3QgcGFzcywgYW5kIGFjdHVhbGx5IHRyaWdnZXIgaXQgaW4gdGhlIGVmZmVjdCBwYXNzLlxuICB1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaGVhZE1hbmFnZXIpIHtcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gZW1pdENoYW5nZVxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGhlYWRNYW5hZ2VyKSB7XG4gICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gZW1pdENoYW5nZVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICB1c2VDbGllbnRPbmx5RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaGVhZE1hbmFnZXIgJiYgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUpIHtcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKClcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGhlYWRNYW5hZ2VyICYmIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKSB7XG4gICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKClcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBudWxsXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiU2lkZUVmZmVjdCIsImlzU2VydmVyIiwid2luZG93IiwidXNlQ2xpZW50T25seUxheW91dEVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZUNsaWVudE9ubHlFZmZlY3QiLCJ1c2VFZmZlY3QiLCJwcm9wcyIsImhlYWRNYW5hZ2VyIiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJlbWl0Q2hhbmdlIiwibW91bnRlZEluc3RhbmNlcyIsImhlYWRFbGVtZW50cyIsIkNoaWxkcmVuIiwidG9BcnJheSIsIkFycmF5IiwiZnJvbSIsImZpbHRlciIsIkJvb2xlYW4iLCJ1cGRhdGVIZWFkIiwiYWRkIiwiY2hpbGRyZW4iLCJkZWxldGUiLCJfcGVuZGluZ1VwZGF0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/side-effect.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/utils.js":
/*!****************************************************!*\
!*** ./node_modules/next/dist/shared/lib/utils.js ***!
\****************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? ':' + port : '');\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split('?');\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/').replace(/\\/\\/+/g, '/') + (urlParts[1] ? \"?\" + urlParts.slice(1).join('?') : '');\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw Object.defineProperty(new Error(message), \"__NEXT_ERROR_CODE\", {\n value: \"E394\",\n enumerable: false,\n configurable: true\n });\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== 'undefined';\nconst ST = SP && [\n 'mark',\n 'measure',\n 'getEntriesByName'\n].every((method)=>typeof performance[method] === 'function');\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = 'ENOENT';\n this.name = 'PageNotFoundError';\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = 'ENOENT';\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb2FhQSxXQUFXO2VBQVhBOztJQW9CQUMsdUJBQXVCO2VBQXZCQTs7SUFQQUMsaUJBQWlCO2VBQWpCQTs7SUFaQUMsY0FBYztlQUFkQTs7SUFDQUMsaUJBQWlCO2VBQWpCQTs7SUFUQUMsRUFBRTtlQUFGQTs7SUFDQUMsRUFBRTtlQUFGQTs7SUFsWEFDLFVBQVU7ZUFBVkE7O0lBc1FHQyxRQUFRO2VBQVJBOztJQStCQUMsY0FBYztlQUFkQTs7SUFYQUMsaUJBQWlCO2VBQWpCQTs7SUFLQUMsTUFBTTtlQUFOQTs7SUFQSEMsYUFBYTtlQUFiQTs7SUFtQkdDLFNBQVM7ZUFBVEE7O0lBa0JNQyxtQkFBbUI7ZUFBbkJBOztJQWROQyx3QkFBd0I7ZUFBeEJBOztJQStHQUMsY0FBYztlQUFkQTs7O0FBOVpULE1BQU1ULGFBQWE7SUFBQztJQUFPO0lBQU87SUFBTztJQUFPO0lBQU87Q0FBTztBQXNROUQsU0FBU0MsU0FDZFMsRUFBSztJQUVMLElBQUlDLE9BQU87SUFDWCxJQUFJQztJQUVKLE9BQVE7eUNBQUlDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO1lBQUFBLElBQUFBLENBQUFBLEtBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztRQUNWLElBQUksQ0FBQ0YsTUFBTTtZQUNUQSxPQUFPO1lBQ1BDLFNBQVNGLE1BQU1HO1FBQ2pCO1FBQ0EsT0FBT0Q7SUFDVDtBQUNGO0FBRUEsMERBQTBEO0FBQzFELGdFQUFnRTtBQUNoRSxNQUFNRSxxQkFBcUI7QUFDcEIsTUFBTVQsZ0JBQWdCLENBQUNVLE1BQWdCRCxtQkFBbUJFLElBQUksQ0FBQ0Q7QUFFL0QsU0FBU1o7SUFDZCxNQUFNLEVBQUVjLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsT0FBT0MsUUFB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QUFJLENBQUM5QixJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNpQixPQUFPLEdBQUksa0NBQStCWTtJQUNqRDtBQUNGO0FBRU8sTUFBTTlELDBCQUEwQm1EO0lBQ3JDVSxZQUFZQyxJQUFZLEVBQUVaLE9BQWUsQ0FBRTtRQUN6QyxLQUFLO1FBQ0wsSUFBSSxDQUFDQSxPQUFPLEdBQUksMENBQXVDWSxPQUFLLE1BQUdaO0lBQ2pFO0FBQ0Y7QUFFTyxNQUFNbkQsZ0NBQWdDb0Q7SUFFM0NVLGFBQWM7UUFDWixLQUFLO1FBQ0wsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNiLE9BQU8sR0FBSTtJQUNsQjtBQUNGO0FBV08sU0FBU3BDLGVBQWVrRCxLQUFZO0lBQ3pDLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQztRQUFFaEIsU0FBU2MsTUFBTWQsT0FBTztRQUFFaUIsT0FBT0gsTUFBTUcsS0FBSztJQUFDO0FBQ3JFIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEh0bWxQcm9wcyB9IGZyb20gJy4vaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlLCBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRW52IH0gZnJvbSAnQG5leHQvZW52J1xuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB0eXBlIHsgUHJldmlld0RhdGEgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ09NUElMRVJfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIGZzIGZyb20gJ2ZzJ1xuXG5leHBvcnQgdHlwZSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQ29udGV4dCBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuICBJbml0aWFsUHJvcHMgPSB7fSxcbiAgUHJvcHMgPSB7fSxcbj4gPSBDb21wb25lbnRUeXBlPFByb3BzPiAmIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGluaXRpYWwgcGFnZSBsb2FkIGRhdGEgcG9wdWxhdGlvbi4gRGF0YSByZXR1cm5lZCBmcm9tIGBnZXRJbml0aWFsUHJvcHNgIGlzIHNlcmlhbGl6ZWQgd2hlbiBzZXJ2ZXIgcmVuZGVyZWQuXG4gICAqIE1ha2Ugc3VyZSB0byByZXR1cm4gcGxhaW4gYE9iamVjdGAgd2l0aG91dCB1c2luZyBgRGF0ZWAsIGBNYXBgLCBgU2V0YC5cbiAgICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiBgcGFnZWBcbiAgICovXG4gIGdldEluaXRpYWxQcm9wcz8oY29udGV4dDogQ29udGV4dCk6IEluaXRpYWxQcm9wcyB8IFByb21pc2U8SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFR5cGUgPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgRG9jdW1lbnRDb250ZXh0LFxuICBEb2N1bWVudEluaXRpYWxQcm9wcyxcbiAgRG9jdW1lbnRQcm9wc1xuPlxuXG5leHBvcnQgdHlwZSBBcHBUeXBlPFAgPSB7fT4gPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQXBwQ29udGV4dFR5cGUsXG4gIFAsXG4gIEFwcFByb3BzVHlwZTxhbnksIFA+XG4+XG5cbmV4cG9ydCB0eXBlIEFwcFRyZWVUeXBlID0gQ29tcG9uZW50VHlwZTxcbiAgQXBwSW5pdGlhbFByb3BzICYgeyBbbmFtZTogc3RyaW5nXTogYW55IH1cbj5cblxuLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFdFQl9WSVRBTFMgPSBbJ0NMUycsICdGQ1AnLCAnRklEJywgJ0lOUCcsICdMQ1AnLCAnVFRGQiddIGFzIGNvbnN0XG5leHBvcnQgdHlwZSBOZXh0V2ViVml0YWxzTWV0cmljID0ge1xuICBpZDogc3RyaW5nXG4gIHN0YXJ0VGltZTogbnVtYmVyXG4gIHZhbHVlOiBudW1iZXJcbiAgYXR0cmlidXRpb24/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfVxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbDogJ3dlYi12aXRhbCdcbiAgICAgIG5hbWU6ICh0eXBlb2YgV0VCX1ZJVEFMUylbbnVtYmVyXVxuICAgIH1cbiAgfCB7XG4gICAgICBsYWJlbDogJ2N1c3RvbSdcbiAgICAgIG5hbWU6XG4gICAgICAgIHwgJ05leHQuanMtaHlkcmF0aW9uJ1xuICAgICAgICB8ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInXG4gICAgICAgIHwgJ05leHQuanMtcmVuZGVyJ1xuICAgIH1cbilcblxuZXhwb3J0IHR5cGUgRW5oYW5jZXI8Qz4gPSAoQ29tcG9uZW50OiBDKSA9PiBDXG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudHNFbmhhbmNlciA9XG4gIHwge1xuICAgICAgZW5oYW5jZUFwcD86IEVuaGFuY2VyPEFwcFR5cGU+XG4gICAgICBlbmhhbmNlQ29tcG9uZW50PzogRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG4gICAgfVxuICB8IEVuaGFuY2VyPE5leHRDb21wb25lbnRUeXBlPlxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlUmVzdWx0ID0ge1xuICBodG1sOiBzdHJpbmdcbiAgaGVhZD86IEFycmF5PEpTWC5FbGVtZW50IHwgbnVsbD5cbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyUGFnZSA9IChcbiAgb3B0aW9ucz86IENvbXBvbmVudHNFbmhhbmNlclxuKSA9PiBEb2N1bWVudEluaXRpYWxQcm9wcyB8IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+XG5cbmV4cG9ydCB0eXBlIEJhc2VDb250ZXh0ID0ge1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICBbazogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCB0eXBlIE5FWFRfREFUQSA9IHtcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcGFnZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBidWlsZElkOiBzdHJpbmdcbiAgYXNzZXRQcmVmaXg/OiBzdHJpbmdcbiAgcnVudGltZUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgbmV4dEV4cG9ydD86IGJvb2xlYW5cbiAgYXV0b0V4cG9ydD86IGJvb2xlYW5cbiAgaXNGYWxsYmFjaz86IGJvb2xlYW5cbiAgaXNFeHBlcmltZW50YWxDb21waWxlPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICBlcnI/OiBFcnJvciAmIHtcbiAgICBzdGF0dXNDb2RlPzogbnVtYmVyXG4gICAgc291cmNlPzogdHlwZW9mIENPTVBJTEVSX05BTUVTLnNlcnZlciB8IHR5cGVvZiBDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXG4gIH1cbiAgZ3NwPzogYm9vbGVhblxuICBnc3NwPzogYm9vbGVhblxuICBjdXN0b21TZXJ2ZXI/OiBib29sZWFuXG4gIGdpcD86IGJvb2xlYW5cbiAgYXBwR2lwPzogYm9vbGVhblxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgZG9tYWluTG9jYWxlcz86IHJlYWRvbmx5IERvbWFpbkxvY2FsZVtdXG4gIHNjcmlwdExvYWRlcj86IGFueVtdXG4gIGlzUHJldmlldz86IGJvb2xlYW5cbiAgbm90Rm91bmRTcmNQYWdlPzogc3RyaW5nXG59XG5cbi8qKlxuICogYE5leHRgIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0UGFnZUNvbnRleHQge1xuICAvKipcbiAgICogRXJyb3Igb2JqZWN0IGlmIGVuY291bnRlcmVkIGR1cmluZyByZW5kZXJpbmdcbiAgICovXG4gIGVycj86IChFcnJvciAmIHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSB8IG51bGxcbiAgLyoqXG4gICAqIGBIVFRQYCByZXF1ZXN0IG9iamVjdC5cbiAgICovXG4gIHJlcT86IEluY29taW5nTWVzc2FnZVxuICAvKipcbiAgICogYEhUVFBgIHJlc3BvbnNlIG9iamVjdC5cbiAgICovXG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIC8qKlxuICAgKiBQYXRoIHNlY3Rpb24gb2YgYFVSTGAuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBRdWVyeSBzdHJpbmcgc2VjdGlvbiBvZiBgVVJMYCBwYXJzZWQgYXMgYW4gb2JqZWN0LlxuICAgKi9cbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIC8qKlxuICAgKiBgU3RyaW5nYCBvZiB0aGUgYWN0dWFsIHBhdGggaW5jbHVkaW5nIHF1ZXJ5LlxuICAgKi9cbiAgYXNQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBsb2NhbGVcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogQWxsIGNvbmZpZ3VyZWQgbG9jYWxlc1xuICAgKi9cbiAgbG9jYWxlcz86IHJlYWRvbmx5IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBkZWZhdWx0IGxvY2FsZVxuICAgKi9cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogYENvbXBvbmVudGAgdGhlIHRyZWUgb2YgdGhlIEFwcCB0byB1c2UgaWYgbmVlZGluZyB0byByZW5kZXIgc2VwYXJhdGVseVxuICAgKi9cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbn1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dFR5cGU8Um91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXI+ID0ge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dD5cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbiAgY3R4OiBOZXh0UGFnZUNvbnRleHRcbiAgcm91dGVyOiBSb3V0ZXJcbn1cblxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcyA9IGFueT4gPSB7XG4gIHBhZ2VQcm9wczogUGFnZVByb3BzXG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzVHlwZTxcbiAgUm91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXIsXG4gIFBhZ2VQcm9wcyA9IHt9LFxuPiA9IEFwcEluaXRpYWxQcm9wczxQYWdlUHJvcHM+ICYge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dCwgYW55LCBhbnk+XG4gIHJvdXRlcjogUm91dGVyXG4gIF9fTl9TU0c/OiBib29sZWFuXG4gIF9fTl9TU1A/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50Q29udGV4dCA9IE5leHRQYWdlQ29udGV4dCAmIHtcbiAgcmVuZGVyUGFnZTogUmVuZGVyUGFnZVxuICBkZWZhdWx0R2V0SW5pdGlhbFByb3BzKFxuICAgIGN0eDogRG9jdW1lbnRDb250ZXh0LFxuICAgIG9wdGlvbnM/OiB7IG5vbmNlPzogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRJbml0aWFsUHJvcHMgPSBSZW5kZXJQYWdlUmVzdWx0ICYge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IEl0ZXJhYmxlPFJlYWN0LlJlYWN0Tm9kZT4gfCBKU1guRWxlbWVudFxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFByb3BzID0gRG9jdW1lbnRJbml0aWFsUHJvcHMgJiBIdG1sUHJvcHNcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXVxuICB9PlxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczogUGFydGlhbDx7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH0+XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBkcmFmdE1vZGU/OiBib29sZWFuXG5cbiAgcHJldmlldz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFByZXZpZXcgZGF0YSBzZXQgb24gdGhlIHJlcXVlc3QsIGlmIGFueVxuICAgKiAqL1xuICBwcmV2aWV3RGF0YT86IFByZXZpZXdEYXRhXG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8RGF0YSA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPERhdGE+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8RGF0YT5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFNldCBkcmFmdCBtb2RlXG4gICAqL1xuICBzZXREcmFmdE1vZGU6IChvcHRpb25zOiB7IGVuYWJsZTogYm9vbGVhbiB9KSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIHNldFByZXZpZXdEYXRhOiAoXG4gICAgZGF0YTogb2JqZWN0IHwgc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIChpbiBzZWNvbmRzKSBmb3IgdGhlIHByZXZpZXcgc2Vzc2lvbiB0byBsYXN0IGZvci5cbiAgICAgICAqIFRoZSBnaXZlbiBudW1iZXIgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBieSByb3VuZGluZyBkb3duLlxuICAgICAgICogQnkgZGVmYXVsdCwgbm8gbWF4aW11bSBhZ2UgaXMgc2V0IGFuZCB0aGUgcHJldmlldyBzZXNzaW9uIGZpbmlzaGVzXG4gICAgICAgKiB3aGVuIHRoZSBjbGllbnQgc2h1dHMgZG93biAoYnJvd3NlciBpcyBjbG9zZWQpLlxuICAgICAgICovXG4gICAgICBtYXhBZ2U/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBwYXRoIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIHdvcmsgdW5kZXIuIEJ5IGRlZmF1bHQsXG4gICAgICAgKiB0aGUgcGF0aCBpcyBjb25zaWRlcmVkIHRoZSBcImRlZmF1bHQgcGF0aFwiLCBpLmUuLCBhbnkgcGFnZXMgdW5kZXIgXCIvXCIuXG4gICAgICAgKi9cbiAgICAgIHBhdGg/OiBzdHJpbmdcbiAgICB9XG4gICkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIENsZWFyIHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIGNsZWFyUHJldmlld0RhdGE6IChvcHRpb25zPzogeyBwYXRoPzogc3RyaW5nIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIGEgc3BlY2lmaWMgcGFnZSBhbmQgcmVnZW5lcmF0ZSBpdCB1c2luZyBPbi1EZW1hbmQgSW5jcmVtZW50YWxcbiAgICogU3RhdGljIFJlZ2VuZXJhdGlvbi5cbiAgICogVGhlIHBhdGggc2hvdWxkIGJlIGFuIGFjdHVhbCBwYXRoLCBub3QgYSByZXdyaXR0ZW4gcGF0aC4gRS5nLiBmb3JcbiAgICogXCIvYmxvZy9bc2x1Z11cIiB0aGlzIHNob3VsZCBiZSBcIi9ibG9nL3Bvc3QtMVwiLlxuICAgKiBAbGluayBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb24jb24tZGVtYW5kLXJldmFsaWRhdGlvbi13aXRoLXJldmFsaWRhdGVwYXRoXG4gICAqL1xuICByZXZhbGlkYXRlOiAoXG4gICAgdXJsUGF0aDogc3RyaW5nLFxuICAgIG9wdHM/OiB7XG4gICAgICB1bnN0YWJsZV9vbmx5R2VuZXJhdGVkPzogYm9vbGVhblxuICAgIH1cbiAgKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSBoYW5kbGVyXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlIYW5kbGVyPFQgPSBhbnk+ID0gKFxuICByZXE6IE5leHRBcGlSZXF1ZXN0LFxuICByZXM6IE5leHRBcGlSZXNwb25zZTxUPlxuKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPlxuXG4vKipcbiAqIFV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjT25jZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBSZXR1cm5UeXBlPFQ+PihcbiAgZm46IFRcbik6IFQge1xuICBsZXQgdXNlZCA9IGZhbHNlXG4gIGxldCByZXN1bHQ6IFJldHVyblR5cGU8VD5cblxuICByZXR1cm4gKCguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICghdXNlZCkge1xuICAgICAgdXNlZCA9IHRydWVcbiAgICAgIHJlc3VsdCA9IGZuKC4uLmFyZ3MpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfSkgYXMgVFxufVxuXG4vLyBTY2hlbWU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4xXG4vLyBBYnNvbHV0ZSBVUkw6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tNC4zXG5jb25zdCBBQlNPTFVURV9VUkxfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi9cbmV4cG9ydCBjb25zdCBpc0Fic29sdXRlVXJsID0gKHVybDogc3RyaW5nKSA9PiBBQlNPTFVURV9VUkxfUkVHRVgudGVzdCh1cmwpXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKVxuICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF1cblxuICByZXR1cm4gKFxuICAgIHVybE5vUXVlcnlcbiAgICAgIC8vIGZpcnN0IHdlIHJlcGxhY2UgYW55IG5vbi1lbmNvZGVkIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZFxuICAgICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvXFwvKy9nLCAnLycpICtcbiAgICAodXJsUGFydHNbMV0gPyBgPyR7dXJsUGFydHMuc2xpY2UoMSkuam9pbignPycpfWAgOiAnJylcbiAgKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdldEluaXRpYWxQcm9wczxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0LFxuICBJUCA9IHt9LFxuICBQID0ge30sXG4+KEFwcDogTmV4dENvbXBvbmVudFR5cGU8QywgSVAsIFA+LCBjdHg6IEMpOiBQcm9taXNlPElQPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKEFwcC5wcm90b3R5cGU/LmdldEluaXRpYWxQcm9wcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgIEFwcFxuICAgICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICB9XG4gIH1cbiAgLy8gd2hlbiBjYWxsZWQgZnJvbSBfYXBwIGBjdHhgIGlzIG5lc3RlZCBpbiBgY3R4YFxuICBjb25zdCByZXMgPSBjdHgucmVzIHx8IChjdHguY3R4ICYmIGN0eC5jdHgucmVzKVxuXG4gIGlmICghQXBwLmdldEluaXRpYWxQcm9wcykge1xuICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhZ2VQcm9wczogYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhjdHguQ29tcG9uZW50LCBjdHguY3R4KSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9IGFzIElQXG4gIH1cblxuICBjb25zdCBwcm9wcyA9IGF3YWl0IEFwcC5nZXRJbml0aWFsUHJvcHMoY3R4KVxuXG4gIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGlmICghcHJvcHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgIEFwcFxuICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYFxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgICBBcHBcbiAgICAgICAgKX0gcmV0dXJuZWQgYW4gZW1wdHkgb2JqZWN0IGZyb20gXFxgZ2V0SW5pdGlhbFByb3BzXFxgLiBUaGlzIGRlLW9wdGltaXplcyBhbmQgcHJldmVudHMgYXV0b21hdGljIHN0YXRpYyBvcHRpbWl6YXRpb24uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2VtcHR5LW9iamVjdC1nZXRJbml0aWFsUHJvcHNgXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb3BzXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIChbJ21hcmsnLCAnbWVhc3VyZScsICdnZXRFbnRyaWVzQnlOYW1lJ10gYXMgY29uc3QpLmV2ZXJ5KFxuICAgIChtZXRob2QpID0+IHR5cGVvZiBwZXJmb3JtYW5jZVttZXRob2RdID09PSAnZnVuY3Rpb24nXG4gIClcblxuZXhwb3J0IGNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVFcnJvciBleHRlbmRzIEVycm9yIHt9XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvZGUgPSAnRU5PRU5UJ1xuICAgIHRoaXMubmFtZSA9ICdQYWdlTm90Rm91bmRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgbW9kdWxlIGZvciBwYWdlOiAke3BhZ2V9YFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nU3RhdGljUGFnZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5tZXNzYWdlID0gYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBmaWxlIGZvciBwYWdlOiAke3BhZ2V9ICR7bWVzc2FnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5tZXNzYWdlID0gYENhbm5vdCBmaW5kIHRoZSBtaWRkbGV3YXJlIG1vZHVsZWBcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlRnMge1xuICBleGlzdHNTeW5jOiB0eXBlb2YgZnMuZXhpc3RzU3luY1xuICByZWFkRmlsZTogdHlwZW9mIGZzLnByb21pc2VzLnJlYWRGaWxlXG4gIHJlYWRGaWxlU3luYzogdHlwZW9mIGZzLnJlYWRGaWxlU3luY1xuICB3cml0ZUZpbGUoZjogc3RyaW5nLCBkOiBhbnkpOiBQcm9taXNlPHZvaWQ+XG4gIG1rZGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkIHwgc3RyaW5nPlxuICBzdGF0KGY6IHN0cmluZyk6IFByb21pc2U8eyBtdGltZTogRGF0ZSB9PlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFjayB9KVxufVxuIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwicGVyZm9ybWFuY2UiLCJldmVyeSIsIm1ldGhvZCIsImNvbnN0cnVjdG9yIiwicGFnZSIsImNvZGUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/utils.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/utils/error-once.js":
/*!***************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/utils/error-once.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"errorOnce\", ({\n enumerable: true,\n get: function() {\n return errorOnce;\n }\n}));\nlet errorOnce = (_)=>{};\nif (true) {\n const errors = new Set();\n errorOnce = (msg)=>{\n if (!errors.has(msg)) {\n console.error(msg);\n }\n errors.add(msg);\n };\n} //# sourceMappingURL=error-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvZXJyb3Itb25jZS5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQVdTQTs7O2VBQUFBOzs7QUFYVCxJQUFJQSxZQUFZLENBQUNDLEtBQWU7QUFDaEMsSUFBSUMsSUFBb0IsRUFBbUI7SUFDekMsTUFBTUcsU0FBUyxJQUFJQztJQUNuQk4sWUFBWSxDQUFDTztRQUNYLElBQUksQ0FBQ0YsT0FBT0csR0FBRyxDQUFDRCxNQUFNO1lBQ3BCRSxRQUFRQyxLQUFLLENBQUNIO1FBQ2hCO1FBQ0FGLE9BQU9NLEdBQUcsQ0FBQ0o7SUFDYjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi91dGlscy9lcnJvci1vbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCBlcnJvck9uY2UgPSAoXzogc3RyaW5nKSA9PiB7fVxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgY29uc3QgZXJyb3JzID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZXJyb3JPbmNlID0gKG1zZzogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFlcnJvcnMuaGFzKG1zZykpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IobXNnKVxuICAgIH1cbiAgICBlcnJvcnMuYWRkKG1zZylcbiAgfVxufVxuXG5leHBvcnQgeyBlcnJvck9uY2UgfVxuIl0sIm5hbWVzIjpbImVycm9yT25jZSIsIl8iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJlcnJvcnMiLCJTZXQiLCJtc2ciLCJoYXMiLCJjb25zb2xlIiwiZXJyb3IiLCJhZGQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/utils/error-once.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/utils/reflect-utils.js ***!
\******************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("// This regex will have fast negatives meaning valid identifiers may not pass\n// this test. However this is only used during static generation to provide hints\n// about why a page bailed out of some or all prerendering and we can use bracket notation\n// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`\n// even if this would have been fine too `searchParams.ಠ_ಠ`\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n describeHasCheckingStringProperty: function() {\n return describeHasCheckingStringProperty;\n },\n describeStringPropertyAccess: function() {\n return describeStringPropertyAccess;\n },\n wellKnownProperties: function() {\n return wellKnownProperties;\n }\n});\nconst isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\nfunction describeStringPropertyAccess(target, prop) {\n if (isDefinitelyAValidIdentifier.test(prop)) {\n return \"`\" + target + \".\" + prop + \"`\";\n }\n return \"`\" + target + \"[\" + JSON.stringify(prop) + \"]`\";\n}\nfunction describeHasCheckingStringProperty(target, prop) {\n const stringifiedProp = JSON.stringify(prop);\n return \"`Reflect.has(\" + target + \", \" + stringifiedProp + \")`, `\" + stringifiedProp + \" in \" + target + \"`, or similar\";\n}\nconst wellKnownProperties = new Set([\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toString',\n 'valueOf',\n 'toLocaleString',\n // Promise prototype\n // fallthrough\n 'then',\n 'catch',\n 'finally',\n // React Promise extension\n // fallthrough\n 'status',\n // React introspection\n 'displayName',\n '_debugInfo',\n // Common tested properties\n // fallthrough\n 'toJSON',\n '$$typeof',\n '__esModule'\n]); //# sourceMappingURL=reflect-utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2RUFBNkU7QUFDN0UsaUZBQWlGO0FBQ2pGLDBGQUEwRjtBQUMxRix1RkFBdUY7QUFDdkYsMkRBQTJEOzs7Ozs7Ozs7Ozs7O0lBVTNDQSxpQ0FBaUM7ZUFBakNBOztJQVBBQyw0QkFBNEI7ZUFBNUJBOztJQWVIQyxtQkFBbUI7ZUFBbkJBOzs7QUFqQmIsTUFBTUMsK0JBQStCO0FBRTlCLFNBQVNGLDZCQUE2QkcsTUFBYyxFQUFFQyxJQUFZO0lBQ3ZFLElBQUlGLDZCQUE2QkcsSUFBSSxDQUFDRCxPQUFPO1FBQzNDLE9BQVEsTUFBSUQsU0FBTyxNQUFHQyxPQUFLO0lBQzdCO0lBQ0EsT0FBUSxNQUFJRCxTQUFPLE1BQUdHLEtBQUtDLFNBQVMsQ0FBQ0gsUUFBTTtBQUM3QztBQUVPLFNBQVNMLGtDQUNkSSxNQUFjLEVBQ2RDLElBQVk7SUFFWixNQUFNSSxrQkFBa0JGLEtBQUtDLFNBQVMsQ0FBQ0g7SUFDdkMsT0FBUSxrQkFBZ0JELFNBQU8sT0FBSUssa0JBQWdCLFVBQVNBLGtCQUFnQixTQUFNTCxTQUFPO0FBQzNGO0FBRU8sTUFBTUYsc0JBQXNCLElBQUlRLElBQUk7SUFDekM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBRUEsb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZDtJQUNBO0lBQ0E7SUFFQSwwQkFBMEI7SUFDMUIsY0FBYztJQUNkO0lBRUEsc0JBQXNCO0lBQ3RCO0lBQ0E7SUFFQSwyQkFBMkI7SUFDM0IsY0FBYztJQUNkO0lBQ0E7SUFDQTtDQUNEIiwic291cmNlcyI6WyIvaG9tZS9zcmMvc2hhcmVkL2xpYi91dGlscy9yZWZsZWN0LXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgcmVnZXggd2lsbCBoYXZlIGZhc3QgbmVnYXRpdmVzIG1lYW5pbmcgdmFsaWQgaWRlbnRpZmllcnMgbWF5IG5vdCBwYXNzXG4vLyB0aGlzIHRlc3QuIEhvd2V2ZXIgdGhpcyBpcyBvbmx5IHVzZWQgZHVyaW5nIHN0YXRpYyBnZW5lcmF0aW9uIHRvIHByb3ZpZGUgaGludHNcbi8vIGFib3V0IHdoeSBhIHBhZ2UgYmFpbGVkIG91dCBvZiBzb21lIG9yIGFsbCBwcmVyZW5kZXJpbmcgYW5kIHdlIGNhbiB1c2UgYnJhY2tldCBub3RhdGlvblxuLy8gZm9yIGV4YW1wbGUgd2hpbGUgYOCyoF/gsqBgIGlzIGEgdmFsaWQgaWRlbnRpZmllciBpdCdzIG9rIHRvIHByaW50IGBzZWFyY2hQYXJhbXNbJ+CyoF/gsqAnXWBcbi8vIGV2ZW4gaWYgdGhpcyB3b3VsZCBoYXZlIGJlZW4gZmluZSB0b28gYHNlYXJjaFBhcmFtcy7gsqBf4LKgYFxuY29uc3QgaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllciA9IC9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qJC9cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3ModGFyZ2V0OiBzdHJpbmcsIHByb3A6IHN0cmluZykge1xuICBpZiAoaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllci50ZXN0KHByb3ApKSB7XG4gICAgcmV0dXJuIGBcXGAke3RhcmdldH0uJHtwcm9wfVxcYGBcbiAgfVxuICByZXR1cm4gYFxcYCR7dGFyZ2V0fVske0pTT04uc3RyaW5naWZ5KHByb3ApfV1cXGBgXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZUhhc0NoZWNraW5nU3RyaW5nUHJvcGVydHkoXG4gIHRhcmdldDogc3RyaW5nLFxuICBwcm9wOiBzdHJpbmdcbikge1xuICBjb25zdCBzdHJpbmdpZmllZFByb3AgPSBKU09OLnN0cmluZ2lmeShwcm9wKVxuICByZXR1cm4gYFxcYFJlZmxlY3QuaGFzKCR7dGFyZ2V0fSwgJHtzdHJpbmdpZmllZFByb3B9KVxcYCwgXFxgJHtzdHJpbmdpZmllZFByb3B9IGluICR7dGFyZ2V0fVxcYCwgb3Igc2ltaWxhcmBcbn1cblxuZXhwb3J0IGNvbnN0IHdlbGxLbm93blByb3BlcnRpZXMgPSBuZXcgU2V0KFtcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZicsXG4gICd0b0xvY2FsZVN0cmluZycsXG5cbiAgLy8gUHJvbWlzZSBwcm90b3R5cGVcbiAgLy8gZmFsbHRocm91Z2hcbiAgJ3RoZW4nLFxuICAnY2F0Y2gnLFxuICAnZmluYWxseScsXG5cbiAgLy8gUmVhY3QgUHJvbWlzZSBleHRlbnNpb25cbiAgLy8gZmFsbHRocm91Z2hcbiAgJ3N0YXR1cycsXG5cbiAgLy8gUmVhY3QgaW50cm9zcGVjdGlvblxuICAnZGlzcGxheU5hbWUnLFxuICAnX2RlYnVnSW5mbycsXG5cbiAgLy8gQ29tbW9uIHRlc3RlZCBwcm9wZXJ0aWVzXG4gIC8vIGZhbGx0aHJvdWdoXG4gICd0b0pTT04nLFxuICAnJCR0eXBlb2YnLFxuICAnX19lc01vZHVsZScsXG5dKVxuIl0sIm5hbWVzIjpbImRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSIsImRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MiLCJ3ZWxsS25vd25Qcm9wZXJ0aWVzIiwiaXNEZWZpbml0ZWx5QVZhbGlkSWRlbnRpZmllciIsInRhcmdldCIsInByb3AiLCJ0ZXN0IiwiSlNPTiIsInN0cmluZ2lmeSIsInN0cmluZ2lmaWVkUHJvcCIsIlNldCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/utils/warn-once.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports) => {
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"warnOnce\", ({\n enumerable: true,\n get: function() {\n return warnOnce;\n }\n}));\nlet warnOnce = (_)=>{};\nif (true) {\n const warnings = new Set();\n warnOnce = (msg)=>{\n if (!warnings.has(msg)) {\n console.warn(msg);\n }\n warnings.add(msg);\n };\n} //# sourceMappingURL=warn-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7NENBV1NBOzs7ZUFBQUE7OztBQVhULElBQUlBLFdBQVcsQ0FBQ0MsS0FBZTtBQUMvQixJQUFJQyxJQUFvQixFQUFtQjtJQUN6QyxNQUFNRyxXQUFXLElBQUlDO0lBQ3JCTixXQUFXLENBQUNPO1FBQ1YsSUFBSSxDQUFDRixTQUFTRyxHQUFHLENBQUNELE1BQU07WUFDdEJFLFFBQVFDLElBQUksQ0FBQ0g7UUFDZjtRQUNBRixTQUFTTSxHQUFHLENBQUNKO0lBQ2Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCB3YXJuT25jZSA9IChfOiBzdHJpbmcpID0+IHt9XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBjb25zdCB3YXJuaW5ncyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIHdhcm5PbmNlID0gKG1zZzogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCF3YXJuaW5ncy5oYXMobXNnKSkge1xuICAgICAgY29uc29sZS53YXJuKG1zZylcbiAgICB9XG4gICAgd2FybmluZ3MuYWRkKG1zZylcbiAgfVxufVxuXG5leHBvcnQgeyB3YXJuT25jZSB9XG4iXSwibmFtZXMiOlsid2Fybk9uY2UiLCJfIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwid2FybmluZ3MiLCJTZXQiLCJtc2ciLCJoYXMiLCJjb25zb2xlIiwid2FybiIsImFkZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\n");
/***/ }),
/***/ "(ssr)/./node_modules/next/error.js":
/*!************************************!*\
!*** ./node_modules/next/error.js ***!
\************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval("module.exports = __webpack_require__(/*! ./dist/pages/_error */ \"(ssr)/./node_modules/next/dist/pages/_error.js\")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBQSxpSEFBK0MiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Vycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9kaXN0L3BhZ2VzL19lcnJvcicpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/error.js\n");
/***/ })
};
;